ayacoo/twitch

提供Twitch在线媒体助手

安装: 4

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:typo3-cms-extension

2.1.1 2024-03-23 23:29 UTC

This package is auto-updated.

Last update: 2024-09-28 11:44:44 UTC


README

1 特性

  • Twitch视频可以作为文件在TYPO3文件列表中创建
  • Twitch视频可以使用和媒体元素输出文本
  • 通过文件列表动作或命令更新元数据

2 使用方法

2.1 前置条件

不幸的是,Twitch没有提供oEmbed接口,因此我们必须通过API查询数据。尽管如此,设置相当快速。

首先,您需要一个带有2FA的Twitch账户,以便可以通过Twitch控制台创建应用程序。

应用程序只需要一个名称和2-3个设置。对我们来说,有趣的是客户端ID,我们还需要它与通信。还必须生成客户端密钥,因为我们需要它来生成令牌。

创建应用程序后,您仍然需要一个令牌。为此,您可以安装Twitch CLI。如果一切安装正常,您可以使用twitch token和输入客户端ID和客户端密钥来生成令牌。请保存此令牌。

现在,在TYPO3安装工具中,您可以存储“令牌”和“客户端ID”两个设置。如果没有这些数据,后端将出现错误,我们将无法从Twitch获取任何数据。

可能需要定期更新令牌。

2.2 安装

使用Composer安装

推荐安装扩展的方式是使用Composer。

在您的基于Composer的TYPO3项目中运行以下命令

composer require ayacoo/twitch

2.3 TypoScript设置

隐私

使用plugin.tx_twitch.settings.privacy = 1,您可以使用数据-src而不是src构建IFrame。如果您需要更多选项来影响HTML,您可以使用PSR-14事件。

2.4 提示

输出

对于输出,直接使用来自Twitch的HTML。

SQL更改

为了避免永久访问oEmbed接口,我们在sys_file_metadata表中添加了一个缩略图字段

TYPO3 v10

如果您想使用TYPO3 v10的扩展,原则上应该可以工作。代码与v10非常接近。您可以通过GitHub分叉创建存储库,并在那里修改/添加必要的行。

视频与剪辑

剪辑是视频的片段。如果您想具体输入它们,您可以通过时间参数来控制输入。如果您希望将剪辑作为数据集,您也可以相对容易地注册一个MediaViewHelper。结构类似于Twitch视频。

3 开发者角

3.1 ModifyTwitchOutputEvent

如果您想修改Twitch HTML的输出,您可以使用ModifyTwitchOutputEvent

事件监听器注册

在您的扩展中,扩展Configuration/Services.yaml一次

Vendor\ExtName\EventListener\TwitchOutputEventListener:
  tags:
    - name: event.listener
      identifier: 'twitch/output'
      event: Ayacoo\Twitch\Event\ModifyTwitchOutputEvent
<?php

namespace Vendor\ExtName\EventListener;

use Ayacoo\Twitch\Event\ModifyTwitchOutputEvent;

class TwitchOutputEventListener
{
    public function __invoke(ModifyTwitchOutputEvent $event): void
    {
        $output = $event->getOutput();
        $output = str_replace('src', 'data-src', $output);
        $event->setOutput($output);
    }
}

3.2 后端预览

在后台,预览由TextMediaRenderer使用。对于在线媒体,它只显示提供者的图标,在这种情况下是twitch。如果您想显示缩略图,例如,您需要自己的渲染器,该渲染器覆盖Textmedia。项目中有可用的示例渲染器。注意:这会覆盖所有文本媒体元素,因此请仅将此渲染器作为基础使用。

您在TCA Configuration/TCA/Overrides/tt_content.php中使用$GLOBALS['TCA']['tt_content']['types']['textmedia']['previewRenderer'] = \Ayacoo\Twitch\Rendering\TwitchPreviewRenderer::class;注册一个渲染器

文档:https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/ContentElements/CustomBackendPreview.html

4 管理角落

4.1 版本和支持

4.2 版本管理

twitch 使用 语义化版本控制,这意味着

  • 修复更新(例如,1.0.0 => 1.0.1)仅包括小错误修复或安全相关的内容,不包含破坏性更改,
  • 小更新(例如,1.0.0 => 1.1.0)包括新功能和较小任务,不包含破坏性更改,
  • 以及 大更新(例如,1.0.0 => 2.0.0)包含破坏性更改,这可能包括重构、功能或错误修复。

4.3 贡献

拉取请求非常欢迎!然而,请别忘了添加一个问题,并将其与您的拉取请求关联起来。这非常有帮助,可以理解要解决的问题类型。

错误修复:请描述您的修复解决了哪种错误,并提供如何重现问题的反馈。我们只会接受我们可以重现的错误修复。

5 感谢 / 通知

  • 特别感谢 Georg Ringer 及其 news 扩展。这是一个构建 TYPO3 扩展的良好模板。例如,这里使用了 README.md 的结构。
  • 还要感谢 b13 的 online-media-updater 扩展。其中一部分被允许包含在这个扩展中。

6 支持

如果您对扩展感到满意,并希望以任何方式支持它,我将非常感激社会机构的支持。