因为需要RSS所以找到了FlexGet,下面就写一下我的安装过程(包括踩到的坑[苦笑])

FlexGet官网:https://flexget.com/
教程根据centos7进行,不同系统可能略有不同。
nano编辑器使用方法:http://man.linuxde.net/nano

准备工作:

Flexget 基于 Python 开发,所以需要先安装 Python,官方给出的建议是 Python 2.7 / Python 3.3-3.5 [如果使用 Deluge 则只能使用 Python 2.7]

python -v  #查看当前python版本(centos7自带有python2.7,所以我不需要再安装)
pip install --upgrade pip  #更新 pip
pip install --upgrade setuptools  #升级至最新的setuptools 以避免出现未知问题

FlexGet安装过程

  1. 全局安装 Flexget,如果想创建独立运行环境,可以了解一下 virtualenv

    pip install flexget

  2. 创建配置目录

    mkdir /root/.flexget

  3. 创建种子下载目录(这步自己确定位置,不单独创建也无所谓)

    mkdir /path/of/your/torrents/download-dir/

  4. 移动到flexget目录

    cd ~/.flexget

  5. 创建并编辑 config.yml(这就是flexget的核心配置文件了)

    nano config.yml

下面给一个示范的配置文件,不要照抄,按需修改。
但注意一点,必须遵守 YAML 格式,即:子项比所属父项多缩进两个半角空格

web_server: #web页面配置项
  bind: 0.0.0.0
  port: 50001 #web页面端口
  web_ui: yes #是否启用web页面,否则为no
  base_url: /flex #web登录路径
  run_v2: yes
schedules: #定时器,设置定时任务
  - tasks: [task1,task2] #任务列表,修改[]内的内容
    schedule:
      minute: " */30 " #分钟,这里为30分钟
      hour: " 00,12 " #小时,这里为每日零点与12点自动执行
**###注意,如果你启用了定时器功能,则必要要启用守护程序,否则定时器等于白设。###**
tasks:
  task1: #任务名
    rss: https://exp.com/rss #RSS订阅地址
    accept_all: no #是否全部下载,是则设置为yes
    if: #if条件规则,在accept_all这项为no时才生效
      - " 'task1' in title": accept #如果"task1"在种子标题内,则下载
      - " 'task2' in title": accept #同上
    download: /RSS/torrents/ #种子下载保存位置
    transmission: #transmission设置项,其他类型的与其类似,请自行修改。
      host: 127.0.0.1 
      port: 9091
      username: exp
      password: exp
  task2:
    rss: https://exp.com/rss
    accept_all: no
    if:
      - " '19' in title": accept
    download: /RSS/torrents/
    transmission:
      host: 127.0.0.1
      port: 9091
      username: exp
      password: exp

以上为flexget的配置文件内容示例,请删除注释内容以防止出现bug。如果不需要某些规则删除即可。
这些配置只是九牛一毛,flexget 的功能很丰富,更多请参考:
插件列表:https://flexget.com/Plugins
IF判断:https://flexget.com/Plugins/if
定时器文档:https://flexget.com/Plugins/Daemon/scheduler

保存完成后,我们来测试一下是否能够正常运行

flexget --test  --loglevel debug execute  #debug测试,不会进行下载。
  • 如果提示 Did not pass schema validation 请检查格式是否正确,一般为缩进错误。请记住,必须遵循 YAML 格式,即:子项比所属父项多缩进两个半角空格。
  • 由于 content-size 参数需要分析 torrent 种子文件,所以在 test 时是不生效。具体请在执行时查看。

测试正常后。我们开始配置 BT 客户端的监控目录。

Transmission:

find / -name settings.json #查找 transmission 配置文件路径
nano /path/of/settings.json #自行替换上面找到的路径编辑配置文件

在配置文件中,增加以下三行并保存

"watch-dir": "/path/of/your/download-dir",  #监控上一步中创建的种子下载目录
"watch-dir-enabled": true, #启用目录监控
"trash-original-torrent-files": true, #清理原有种子

回到终端,执行以下命令运行 flexget 自动下载订阅种子,查看 BT 客户端是否正常添加,如未正常添加,看 flexget 是否有下载种子以及检查 BT 客户端配置是否有错误:

flexget execute

如一切正常。接下来开始为 Flexget 设置最终配置。

如果你启用了 Web-UI,那么执行下面的内容

flexget web passwd password
 #password 为访问 web-ui 的密码,自行修改,有密码强度的要求。
flexget daemon start
 #启动daemon,你会得到一些信息,其中http(s)://yourip:port/flex 就是flexget web-ui 的访问地址了。

启用守护程序

flexget daemon start -d

如果你启用了定时器功能,则必须启动守护程序!否则定时器无效!

关于开机启动,我并没有设置,只需要将守护程序添加到系统开机启动的配置文件里即可。或者重启后手动启动守护程序,效果一样
END