这篇教程需要你有一台VPS,并且已安装PHP+mysql+composer
如果你在使用群晖作为你的主要NAS系统,那么说明你至少是一个有眼光的人。因为群晖的NAS管理系统确实非常的棒,不单单是由于操作方便简洁,更是因为它提供很多高级的功能和使用方法能够让你慢慢去发掘。
本篇主要介绍如何自己建立一个RSS源,让群晖的Download Station可以识别并自动添加下载任务。
如果你曾经想过让群晖自动下载最新的电影,那么这篇教程可以给你一点提示。
如果你发现你所需要的资源网站上并没有提供RSS源,那么接下来的这部分内容,或许能够给你提供一个思路,如何自己建立一个RSS源。
首先,在群晖的Download Station中,RSS源的方便程度是要远高于监视Torrent文件夹的,因为后者需要手动将.torrent文件放入监视文件夹中才开始下载,而前者是完全自动化不需要人工干预的,也就是说可能你想看某部电影刚准备下载的时候发现群晖已经为你下载到硬盘上了。所以,如果你希望解放双手,完全利用群晖的空余时间下载资源,那么RSS源是一个非常重要的核心功能。
然后,在进入主题之前,还有一些准备工作要做。
第一件事是选择组装RSS源的方法,这里使用的是suin/php-rss-writer插件来生成XML格式文件
第二件事是准备RSS的数据源,包括资源名称、资源大小以及下载地址,这些都需要在建立RSS源之前都已经准备好。
准备工作完成之后,就进入正式组装阶段了
1.加载第三方插件
suin/php-rss-writer插件
1 |
composer require suin/php-rss-writer |
如果你的RSS的数据源为mysql,那么推荐安装以下这个插件
1 |
composer require joshcam/mysqli-database-class |
2.编辑我们的RSS文件
开头部分
加载composer插件并使用namespace,然后设定输出文件格式为XML
1 2 3 4 5 6 7 8 9 |
<?php // include composer autoload require 'vendor/autoload.php'; use Suin\RSSWriter\Channel; use Suin\RSSWriter\Feed; use Suin\RSSWriter\Item; header("Content-type: text/xml"); |
如果你使用mysql作为数据源,并且使用了上述的mysql插件,那么数据库部分的代码如下
1 2 3 4 5 6 7 |
// init mysql $mysqli = new MysqliDb ('host', 'username', 'password', 'databaseName'); $db = new MysqliDb ($mysqli); // select database and get latest 10 items $db->orderBy("id","DESC"); $torrent = $db->get('get_torrent', 10); |
之后是生成RSS的主程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// init feed $feed = new Feed(); // Set channel info $channel = new Channel(); $channel ->title("my rss service") ->description("cool rss for cool kids") ->url('http://blog.minirplus.com/') ->appendTo($feed); for ($i = 1; $i <= count($torrent); $i++) { // item $item = new Item(); $item ->title($torrent[$i-1]['title']) ->description($torrent[$i-1]['title']) ->url($torrent[$i-1]['page_url']) ->enclosure($filePath, $fileSize, 'application/x-bittorrent') ->appendTo($channel); } echo $feed; |
其中,$channel内是RSS源的配置参数,这部分内容会显示在群晖Download Station的RSS名称中。之后的$item对象就是具体的RSS条目,作为一个下载RSS源,必须要有title和enclosure属性,前一个用于在Download Station中表明条目内容,后一个用于提供下载地址,下载地址可以是torrent种子,也可以直接是文件的下载地址,但是一般前一种比较常用。
OK,完成之后,在浏览器中访问就可以看到生成的RSS源了
之后就可以打开DSM-》Download Station-》RSS Feeds添加RSS源了,如果添加成功,就会在列表中显示RSS源的名称和内容。
Download Station的RSS源的刷新频率可以在Setting-》RSS中自定义
还没完,现在我们虽然已经添加了RSS源,但是还没有设置自动下载,我们切换到Download Filter,添加一个规则,输入名称,之后选项都留空,即下载所有内容,选择下载后的保存地址,点击确定。
这样就完成了用RSS源来配置Download Station自动下载我们需要的内容。
最后是RSS的数据来源,有两种模式
一种是在线模式,即直接用爬虫抓取下载网站的下载链接并输出到RSS源中,这种的好处是不往服务器中写入文件,节省流量,缺点是十分依赖第三方网站的可靠性,一旦第三方网站离线,那么RSS源就会收到影响。
另外一种是离线模式,即下载种子文件到本地,然后在RSS源中只出现本地地址,这种的好处是RSS源的数据和外部网络隔离,不会受第三方网站的影响,缺点则是会在本地保存大量的种子文件,影响服务器文件系统的响应速度。
个人比较推荐离线模式,但是至于如何下载种子文件到本地,又是一个非常大的坑,留着以后慢慢再填吧。
One comment