动画片头
维护者:
Quad (GitHub, Twitter)
Yay295 (GitHub)
要求
必需:
- 较新版本的PHP(包含intl扩展)
- 一个Web服务器
可选:
- Git(便于部署)
- Python 3(用于编码脚本)
- 一些视频转换软件(推荐ffmpeg)
功能
Openings.moe拥有许多功能。以下列出主要功能:
- 从文件夹中随机播放视频
- 列出所有带元数据的视频
- 较少的服务器端处理
- 极简主义视频播放器(作为iframe使用时也能保持良好的外观和功能)
- 简单的元数据结构
- SSA/ASS字幕支持
部署
像普通PHP站点一样部署。不需要重写规则和依赖项。可以使用git clone https://github.com/AniDevTwitter/animeopenings.git
克隆仓库,或者直接下载包含所有文件的zip压缩包并将其放置在Web服务器上。
要显示视频,创建一个video
文件夹并填充视频,然后将视频信息添加到names.php
文件中。
对于其他配置,如替换聊天功能和编辑元数据的结构或名称,你需要自行处理。
更新
只需更新所有已更改的文件。如果使用git,.gitignore
文件应该能防止大多数自定义内容被覆盖。
发布
在此列出是因为GitHub不允许从旧提交创建发布。这些提交被单独列出,因为它们会对未存储在此仓库中的内容(通常是names.php
和eggs.php
)造成重大变更。
-
添加彩蛋 - 此版本添加了对彩蛋视频的支持。它需要在根目录下有一个名为
eggs.php
的文件,类似于names.php
,但其中包含的数组名为$eggs
。即使$eggs
为空,这个文件也是必需的(这个问题在后来得到修复)。 -
本地化Font Awesome源 - 此版本将网站改为使用本地版本的Font Awesome,而不是远程CDN。我们做出这一改变是因为有一天CDN离线,所有图标都无法显示。只需下载Font Awesome 4.4.0并将其放在根目录下,具体路径为
/font-awesome-4.4.0/css/font-awesome.min.css
。四个月后,我们通过这个提交重新回到了CDN。 -
首次尝试自动生成
names.php
第一部分 - 这是我们首次尝试从其他地方存储的数据自动生成names.php
。你当前版本的names.php
仍然可以使用,所以你可以在更新前复制一份,并用它替代新版本。 -
首次尝试自动生成
names.php
第二部分 - 事实证明,我们尝试的方法比预期的计算成本高得多,所以我们决定不这么做。这将names.php
恢复到上一版本的状态。 -
将
botnet.html
和eggs.php
更改为示例文件 - 此版本将botnet.html
和eggs.php
更改为botnet.html.sample
和eggs.php.sample
,这样你在更新前就不需要再做备份了。 -
eggs.php
变更 - 此版本在eggs.php.sample
中添加了一个函数,用于正确合并$names
和$eggs
。确保你的eggs.php
副本中有这个函数。它还为eggs.php
中的每个视频条目添加了一个egg
属性。现在,只有当视频具有egg
属性时,才被视为彩蛋。但是,如果你将彩蛋放在names.php
而不是eggs.php
中,它将在列表页面上显示,尽管它是彩蛋。 -
第二次尝试自动生成
names.php
- 作为我们第二次尝试自动编码和生成names.php
的一部分,存储在names.php
和eggs.php
中的数据发生了变化,视频文件现在有了必需的命名方案。对php文件的更改是文件扩展名不再包含在文件名中,而是存储了可用文件的MIME类型(是的,是文件们,不是文件。我们现在支持同一视频的多种编码。)(示例names.php.sample
文件在后来的提交中更新,在这里)。MIME类型按照输入的顺序使用,所以较小的文件应该先列出。视频文件名的必需格式是{name}-{OP,ED}{0,1,2,...}[{a,b,c,...}][TV][C]-[N]C{BD,DVD,PC,...}
。彩蛋文件不受此要求限制,仍可随意命名。 -
移除
eggs.php
- 由于彩蛋仅通过egg
属性区分,将它们保存在单独的文件中不再有意义。此版本移除了所有对eggs.php
的引用,转而使用egg
属性来区分它们。这意味着彩蛋现在必须遵循与其他文件相同的文件名要求,目前为{name}-{OP,IN,ED}{0,1,2,...}[{a,b,c,...}]-[N]C{BD,DVD,PC,...}
。 -
新增视频行为和类型 - 此版本新增了视频的行为和类型分类。这些新参数的示例和文档可在
config_default.php
中找到。视频类型主要用于筛选,而视频行为则取代了彩蛋和视频的egg
属性。视频行为还允许将视频文件放置在不同的目录中,并按指定间隔播放特定视频,而不是随机播放。后端几乎完全重写以支持这一功能,同时支持通过索引获取随机视频(现在主页每次只获取一个视频的数据,而不是第一次就加载整个列表)。列表API不再支持filenames
和first
参数,而详情API现在支持四个新参数(详细信息仍在开发者API文档页面上)。你现有的names.php
文件仍然可以使用,不过视频现在可以有四个新属性:title
、uid
、type
和behavior
。所有配置文件现在在更改时都会进行验证和缓存,必须通过验证才能使用。 -
详情API返回值分离 - 此版本重新组织了详情API返回的数据。实际的视频数据现在位于"data"下,获取下一个视频的参数现在位于"next"下。此外,"name"参数已重命名为"uid"。
不会进行的事项:
- 压缩JavaScript代码(考虑到用户观看的所有视频大约需要3 Mbit/s的连接速度,压缩带来的带宽收益并不值得,因此对低带宽用户来说没有意义。我更倾向于让开发者直接阅读JavaScript代码。)