注意:程序作为一款自动化媒体资源管理的工具,本身是不具备任何媒体内容的。仅提供了网站自动化访问技术框架,开放配置描述能力来完成一些网站自动化访问,以及站点用户数据自动记录,统计分析。并且严格限制了对网站访问频率,来保护自动化访问的站点(一天不超过48次)。自动化访问技术仅供个人学习及测试使用。

如何使用自动化访问网站的能力

程序中的站点管理模块,提供了对用户数据分析,以及添加自动化站点的功能入口,但什么网站可以被添加,需要用户自己制作配置描述。

在你指定的/data配置目录内,sites文件夹,是用于存放站点自动化访问的配置文件目录。

在你指定的/data配置目录内,sites文件夹,是用于存放站点自动化访问的配置文件目录。

任何的站点访问支持,都是由sites里配置文件描述规则来决定的,访问哪些网站,获取什么内容,均需要通过yaml配置描述的形式来实现,每个站点的支持需要一个配置文件。

一句话讲明白:你想去什么来源获取内容,就要为这个站点配置一个规则配置文件,然后拷贝到sites目录,重启一下程序,就会加载成功,然后去站点管理中添加。

如何做一个站点配置描述

自己编写配置文件还是有些技术门槛的,至少需要掌握css选择器技术。

在设计之初,为了方便用户自行配置,特意参考并试图兼容Jackett和Prowlarr的描述文件语法,感兴趣可以看prowlarr官方文档

Prowlarr Cardigann YML Definition

配置逻辑和prowlarr文档说明是非常相似的,网络上有很多热心的用户,以交流和学习的目的,分享了一些自己编写的站点配置文件,可以通过观察这些配置,去学习如何适配。

程序与站点交互机制说明

程序遵循配置文件中的规则,以特定的频率,模拟人工访问的技术机制,自动访问配置文件中的链接来完成数据获取,供程序其他功能使用

影片订阅、自定义订阅、养站、站点数据这几大核心功能都需要根站点交互,依赖站点资源,提前划重点,就算你开启了所有功能,订阅、养站、站点数据等等,24小时对单个站点的访问也就在50-60次,哪怕你只用订阅,不开养站,也是这么多次。基本思路和原理如下:

  1. 程序每20到0分钟(+1到60秒,原谅我这个偏移分钟要打,避免特征暴露的太明显),非准点非固定时间,每个用户可能都不一样,偏移的分钟和秒数全是随机的。访问一次站点种子列表页(一般都是/torrents.php),不带任何搜索条件。理论极限24小时内访问站点绝不会超过72次(60m/20m*24),正常情况就是50-60次这样。
  2. 经过上面的步骤,程序像人去访问页面一样,能够看到当前上传下载量,最新的50或100个(不同站点不一样)种子,这些信息。
  3. 把最新拿到的数据,经过计算、查询、与老数据merge,保持历史种子信息状态也是最新的;据我观察,全球还没有任何一个站,发种速度能快到在一个访问周期20-**分钟发满一屏幕种子,50-100个。所以在这一次有效访问中,足矣满足当前机器人所有功能,影片订阅、自定义订阅、养站以及淘汰、站点数据更新,这些功能所需的数据都是由这一次访问就全部完成,绝不多请求一次站点。
  4. 每次访问得到了有效数据后,跟站点就没关系了。就要把数据存放在内存中,持久化到你本地的DB中,交给程序各模块去调度使用了,有订阅的,去这些信息里筛订阅影片种子;设了自定义订阅的,要按你设定的条件找你想要的种子;开养站的,要去这里面筛种子状态,是不是不免费要干掉了,是不是变hr了等等一些计算逻辑。同时还要拿最新的上传和下载总量结果,去计算站点统计数据。这是一个复杂的过程,但都是利用那一次访问得来的数据,在内存里算。 如果你看懂了上面逻辑,就会发现当前的程序,对站点访问来说,不过就是一个勤快的“人”。