归档文章 (2011-2017)

date
2012/10/28
现有的PT站基本都有RSS订阅功能,他可以按照你所设定的条件进行自动下载并上传,比如HDC这个站除了可以生成RSS外,还有个“下载框”的功能,你只需一次点击,即可自动开始下载,无须再下载-添加-确认等繁琐操作。
Transmission 本身不并支持RSS订阅,因此需借助第三方插件 FlexGet 。本教程不再涉及Transmission安装,具体可参阅前文 Transmission 一键安装包

一、FlexGet 安装

详细安装方法,可参阅FlexGet官方教程 Installing on Linux ,有ROOT权限和没有ROOT权限的安装步骤是不一样的,下面以有ROOT权限为例。

1.1 安装Python

检查Python版本,支持Python 2.6.x - 2.7.x,不支持Python 3
python -V
如果没有则安装Python
yum -y install python2

1.2 安装easy_install

easy_install 工具可以更简便的安装python模块。
yum -y install python-setuptools

1.3 安装FlexGet

easy_install flexget

1.4 验证FlexGet

查看FlexGet版本,验证是否安装成功。
flexget -V

1.5 安装TransmissionRPC

若想要FlexGet支持Transmission,必须安装TransmissionRPC库文件。
easy_install transmissionrpc

二、FlexGet 设置

详细配置方法,可参阅FlexGet官方教程 Configuration
Flexget 的配置文件位于 ~/.flexget/config.yml

2.1 注意事项

  • 严格的缩进要求,必须是2个空格的倍数,不能使用tab
  • 插件要在同一缩进级别,例如(rss, series, download etc),个别插件允许在在别的插件里面。
  • 如果文本值包含{} []%:或者数字,必须加单引号。

2.2 编写配置文件

mkdir -p ~/.flexget/ wget https://wangyan.org/download/conf/config.yml -P ~/.flexget/
notion imagenotion image
https://img.cdn.wangyan.cloud/f/flexget_config.jpg
第1行:tasks是一个顶层容器,表示一个任务,冒号结束。 第2行:空两格,定义这个任务名称例如HDChina,冒号结束。 第3行:空四格,在HDChina指定一个具体的rss地址 第4行:accept_all是过滤器,这里表示全部接受。 第4行:指定种子存放路径。 ……
上图中使用了accept_all不设过滤条件,实际上FlexGet支持众多相当强悍的过滤插件,具体请查阅官方文档:Plugins#filter 。每个过滤插件,官方都有非常详细的介绍,这里不再重复。
关于transmission支持哪些参数,官方插件主页也有详细说明:transmission

2.3 初始化及测试

初始化 SQLite数据库文件,否则会出现“Not running database cleanup on manual run”提示。
flexget --db-cleanup
测试配置文件是否正确,这一步绝不能省略。
flexget --test
看到下图,则说明成功了。
notion imagenotion image
https://img.cdn.wangyan.cloud/f/flexget_test.jpg

三、设置计划任务

“计划任务”意思就是让服务器隔一段时间自动运行一次 Flexget

3.1 自动下载

首先,确定 FlexGet 的绝对路径,命令如下:
which flexget
得到的结果是:/usr/bin/flexget 然后,编辑 crontab ,命令如下:(每5分钟检查一次)
*/5 * * * * /usr/bin/flexget --cron

3.2 自动删除

官方给出的方法是:
transmission-remote -l | grep 100% | grep Done | awk '{print $1}' | xargs -n 1 -J % ./transmission-remote -t % -r
因为xargs 已经不支持-J这个参数了,可以换成下面方法:
for i in `transmission-remote --auth demo:demo-l | grep Stopped | awk '{print $1}' | grep -v ID` do transmission-remote --auth demo:demo -t $i --remove-and-delete > /dev/null 2>&1 done
注:关于自动删除这部分,我会在下篇文章详细讲解。-_-
*/3 * * * * /usr/bin/flexget --cron * * * * * /bin/bash /root/trans_cleanup.sh
参考资料:
If you have any questions, please contact me.