Skip to content

注意事项

注意:这里出现的所有数字都是集数而不是index下标,在afanime中下标几乎都不可见。

本文档以:源:【押しの子】2期 的创建&推送流程,暂不讨论SP剧集如何处理

合理的集数

afanime会优先筛选本次推送需要的集数,具体为:

  • 不能超出合理的边界:例如全推送集数为12-24,那么必须落到这个集数范围内
  • 不能是已经推送的集数:例如频道中已经推送到了第14集,那么校检的时候会把12-14都跳过

补旧番的不连续性问题现在还未着手解决

推送时

对于NEP仓库中挖掘的(合理的)数字,查询到的最大集数(MaxInNEP)会存储起来。这里上边界很好确定,就是maxInNEP对应的下标。而下边界有以下几种情况:

  • 初始化时的值(current_episode),默认是0
  • 频道中推送过的最新集(current_episode):如15

接下来的事情就很简单,只需要将本次需要范围的链接等信息发送到推送器(pushList)中等待机器人逐个发送即可。我是如何节流的?

多条件匹配

有以下条件会导致所谓的Ani题目不匹配:

  • 不合理的题目 -isValidTitle:和“动画匹配串”不完全匹配
  • 不合理的集数 -isValidEpiNum: 请看合理的集数
  • 不合理的链接 - isValid:检查链接是否有效(目前只判空)

动画匹配串

由于Realsearch是模糊匹配,不对爬取的视频做更细致的筛选,af-anime代为完成了这部分工作。目前的动画匹配串(存储在name_phantom)为全匹配,拉取的视频标题即如果和动画匹配串中的任何一个条件不符合将被跳过:

一个好的动画匹配串应该这样书写(且应该至少有这四种元素,因为字幕组可能会就不同分辨率和字幕语言发多个文件):

ANi | 孤獨搖滾 | 1080P | CHS 分别对应 字幕组or压制组名 | 番名 | 分辨率 | 字幕语言

具体应参考每个番组给出的NEP仓库中的消息标题且将必要的元素用|进行分隔。

这部分在v1正式版上线前会重点优化。

处理突发状况

  • 服务器炸裂->错过拉取重要meta信息->:请尝试提高日推和周拉的频率为主

Model & Class解释

Model

Anime

  • current_episode: 在Telegram频道中已推送的最大集数,可能是15集,默认标记为0集。
  • eps: 自行设置,默认为1,起始集数,例如“【押しの子】2期” 从第12集开始
  • total_episode: 由Bangumi提供,本季总数目(count),例如“【押しの子】2期” 为13 例如“【押しの子】2期” 为12个,去掉SP剧集
  • last_episode: NEP仓库查询串结果中出现的最大集数
  • name_phantom: 目前作为存储动画全匹配串使用

Class

AniSub

描述:为番剧自身提供服务。

  • maxInBangumi: 如从12集开始,一共为12集,则最大为24,这个信息抓取自eps字段的count而非total_episodes,因为后者也包含了SP剧集。

例如:https://api.bgm.tv/v0/subjects/404809;