导航
导航
文章目录
  1. 一、FlexGet 安装
    1. 1.1 安装Python
    2. 1.2 安装easy_install
    3. 1.3 安装FlexGet
    4. 1.4 验证FlexGet
    5. 1.5 安装TransmissionRPC
  2. 二、FlexGet 设置
    1. 2.1 注意事项
    2. 2.2 编写配置文件
    3. 2.3 初始化及测试
  3. 三、设置计划任务
    1. 3.1 自动下载
    2. 3.2 自动删除

Transmission+FlexGet 实现RSS自动下载

现有的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 http://blog.wangyan.org/download/conf/config.yml -P ~/.flexget/

https://img.cdn.wangyan.org/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

看到下图,则说明成功了。

https://img.cdn.wangyan.org/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

参考资料:

支持一下
扫一扫,支持一下