之前一直使用最简单的if模块满足不了要求,探索使用新的模块。

if与regexp

这两个都可以用来进行简单的逻辑过滤。主要用在title字段,应用在其他字段也是可以的。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
if:
  - "'Complete' in title": reject
  - "'NYHD' in title": reject
  - "'-RS' in title": reject
  - "'Cinderella.Chef' in title": accept
  - "'Douro.Mainland' in title": accept
regexp:
  accept:
    - game.*of.*Thrones.*s08e.*-GoT
  reject:
    - .*-MT$
    - .*-HDC$
    - .*-MT$

例子如上,if 区分大小写,而regexp不区分大小写,使用正则表达式(注意写全.*)。 写完记得 flexget daemon reload-config 才会生效,我是用的 daemon 模式运行的。 virtualenv 使用/home/rachpt/.flexget/bin/python /home/rachpt/.flexget/bin/flexget daemon reload-config,前面是virtualenv 中的python路径,这个可以用在 systemd 中实现开机自动启动。 使用 /home/rachpt/.flexget/bin/python /home/rachpt/.flexget/bin/flexget execute --try-regexp --tasks my_test_task 检测 my_test_task 的regexp 运行匹配情况(记得每次修改config.yml后reload-config)。

daemon

官方文档很全,大部分都有讲。

1
2
3
4
5
6
7
8
9
schedules:
  - tasks: ['hdchina', 'wiki', 'hdsky', 'byr_an', 'ipt_movies']
    interval:
      minutes: 3
  - tasks: 'ipt_tvs'
    schedule:
      day_of_week: mon
      hour: 8-10
      minute: "*/1"

schedules是一个Top-Level Keys,有两种定时模式,interval 就是等时间间隔运行,以前的文档中有提到使用 seconds,现在好像不行了,也就是说,最小更新频率 1分钟一次(可能说的不对,使用 seconds,check不过)。tasks作用任务字典(一个就使用字符串,记得引号)。

另一种是和 cron 类似的模式,上面的例子,每周一 8-10点每 1分钟运行一次 task ipt-tvs。同样最小单位分钟。

systemd 设置。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
cat /etc/systemd/system/flexget.service
# 或则写到 /usr/lib/systemd/system/flexget.service
[Unit]
Description=Flexget Daemon
After=network.target
[Service]
User=rachpt # 此处我没有使用 root 运行
Type=simple
WorkingDirectory=/home/rachpt/.flexget
ExecStart=/home/rachpt/.flexget/bin/python /home/rachpt/.flexget/bin/flexget daemon start
ExecStop=/home/rachpt/.flexget/bin/python /home/rachpt/.flexget/bin/flexget daemon stop
ExecReload=/home/rachpt/.flexget/bin/python /home/rachpt/.flexget/bin/flexget daemon reload
Nice=19
[Install]
WantedBy=multi-user.target

systemctl reload-daemon && systemctl enable flexget && systemctl start flexget

web-ui

有两个 web-ui,使用v1就行了,区别就是v2还是半残品。

1
2
3
4
5
web_server: 
  port: 9999
  base_url: /
  web_ui: yes
  run_v2: true # 开启v2 webui,关闭注释即可

访问地址不一样,vi: http://127.0.0.1:9999/ ,v2: http://127.0.0.1:9999/v2/

需要设置密码,不能改用户名(flexget),具体看官方文档。 https://flexget.com/Web-UI 。 效果图。

notes-for-flexget-1.jpg

notes-for-flexget-2.jpg

过滤

几个用于的过滤方法。

1
2
3
4
5
size_movie:
  content_size:
    min: 512
    max: 22480
    strict: no

按种子内容大小(体积),单位MB。范围在 512M 至 22480M 之间的才 accept。

1
2
3
exists_movie:
  path: /mnt/data/movies
  allow_different_qualities: better

如果path下已经有 1080p bluray版本资源,那么 720p bluary 就会被 reject掉。

1
2
3
quality:
  - 720p bluray
  - 1080p webdl

按质量挑选,可以使用范围选择。https://flexget.com/Plugins/quality 。

其他

template 中不能使用 过滤规则,比如 if。

可以 自动解压 rar zip 分卷或单个文件,https://flexget.com/Plugins/decompress , https://flexget.com/Plugins/archives ,还有设置 transmission ratio等。

debug 模式:

1
2
3
flexget -L debug --test execute --tasks my-test-task
```