flexget-and-transmission-on-ubuntu

Flexget 进阶。自动下载与删除。

安装 flexget

flexget 需要 python2.7, 3.4, 3.5 或者 3.6。(居然支持3.6了 ( ̄▽ ̄)/ )

命令

1
2
3
4
5
6
7
8
9
10
sudo pip3 install flexget

flexget -V # 检查版本
flexget check # 检查配置文件
flexget --test execute # 测试
flexget status # 状态
flexget --db-cleanup # 初始化 SQLite数据库
flexget execute # 运行

which flexget # 查看安装路径,用于 crontab 定时任务

crontab 配置参考

Control daemon:

1
2
3
sudo status flexget
sudo stop flexget
sudo start flexget

yml 配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
templates:
default:
transmission:
host: localhost
port: 9091
username: username
password: 'password'

free_space:
path: /srv/ftp/data
space: 10240

download: /home/rc/Downloads

##----------------##
limit_size:
content_size:
min: 512
max: 61440
strict: no

##----------------##
clean:
clean_transmission:
enabled: yes
host: localhost
port: 9091
username: username
password: 'password'
finished_for: 7 days
tracker: xxxxxxx|xxxxx
delete_files: yes
disable: details

##----------------##
ttg_wiki:
if:
- "'1080p' in title": reject
- "'720p' + 'WiKi' in title": accept

tasks:
byr_test:
rss: https://xxxxx.xxx
accept_all: yes
template:
- default
#- limit_size
content_size:
min: 52
max: 6144
strict: no
transmission:
ratio: 2
path: /srv/ftp/data

##----------------##
wiki:
rss: https://xxxxx.xxx
accept_all: yes
template:
- default
- limit_size
- clean
transmission:
#ratio: 2
path: /srv/ftp/data

##----------------##
hdsky:
rss: https://xxxxx.xxx
template:
- default
- clean
if:
- "'Complete' in title": reject
- "'iPad' in title": accept
content_size:
min: 400
max: 10240
strict: no
transmission:
ratio: 2
path: /srv/ftp/mp4

##----------------##

# 号注释,yml 需要严格对齐,使用两个空格缩进,形成代码块,yml 文件的语法格式:字段+冒号+空格+内容

templates: # 模板。

tasks: # 任务。

transmission 模块需要安装,另外,transmission-daemon或者 GUI 需要设置 rpc。

模块transmission password 记得加上引号。

1
pip install transmissionrpc

space 单位 M,content_size 一样,用于限制大小。download 放的是torrent文件路径。path 为种子内容下载路径。

具体可以参考 官方文档

使用 transmission 模块和使用 watch-dir 相比,更灵活更方便,对不同的 rss ,可以设置不同的分享率 ratio ,以及不同的下载路径 path 。但是添加了的 torrent 文件需要自己写其他脚本删除或者移动。参见其他

后续

使用 flexget 的自动删种可能效果不是很好,需要使用另外的脚本处理。

待续……

参考1参考2 transmission-remote参考3

其他

如果想在种子发布一段时间后猜开始下载,比如越过 新种免费期,可以使用下面的脚本配合 watch-dir 实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
#author [email protected]
#date 2018-05-07
#-----------设置-------------#
# flexget torrent 下载路径
flexgetPath="/home/rachpt/Downloads/temp/"
# transmission watch-dir
autoDownloadPath="/home/rachpt/Downloads/ttg/"
# 间隔时间,秒
intervalsTime=25200
#----------------------------#
filelist=$(find $flexgetPath -iname "*.torrent*")

# 使用换行分割
IFS_OLD=$IFS
IFS=$'\n'

for filename in $filelist
do
modifiedTime=`stat -c %Y "$filename"`
currentTime=`date +%s`

if [ $[$currentTime - $modifiedTime] -gt $intervalsTime ]
then
mv -f "$filename" "$autoDownloadPath${flexgetPath##*/}"
fi
done
IFS=$IFS_OLD

<span id="tr-auto-delete">transmission 完成下载后自动移动种子文件到指定文件夹脚本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash
# author [email protected]
# required dumptorrent to find the real name of torrent
# get dumptorrent here: https://sourceforge.net/projects/dumptorrent/files/
#----------------设置------------------#
dumptorrentPath="/usr/local/bin/dumptorrent"
flexgetPath="/home/rachpt/Downloads/ttg/"
moveTotPath="/home/rachpt/Downloads/finish/"
logoPath="/home/rachpt/Downloads/finish/info"

#----------------日志函数---------------#
function printLogo {
echo "=================================" >> $logoPath
echo "匹配成功" >> $logoPath
echo "下载到了:"$TR_TORRENT_DIR >> $logoPath
echo "种子编号:"$TR_TORRENT_ID >> $logoPath
echo -e "于:"$TR_TIME_LOCALTIME " \c" >> $logoPath
echo "完成对:"$TR_TORRENT_NAME" 的移动!" >> $logoPath
}

#----------------处理空格---------------#
function moveBlank {
find "$1" -name "* *" |
while read name
do
na=$(echo $name | tr ' ' '.')
mv "$name" $na
done
}
#--------------移动种子文件-------------#
moveBlank $flexgetPath

# 生成点分割文件名
function createMoveToPath {
dotTrPath=`echo "$newname" | sed 's/[ ][ ]*/\./g'`

if [ -n $dotTrPath ]
then
totalMoveToPath="$moveTotPath$dotTrPath.torrent"
else
totalMoveToPath="$moveTotPath$newname.torrent"
fi
}

filelist=$(find $flexgetPath -iname "*.torrent.*")
# 使用换行分割
IFS_OLD=$IFS
IFS=$'\n'

for filename in $filelist
do
newname=`$dumptorrentPath "$filename" | gawk 'BEGIN{FS=":"} /Name/{print $2}'`
newname=`echo "$newname" | sed 's/^ [ ]*//g'`

if [ "$newname" = "$TR_TORRENT_NAME" ]
then
createMoveToPath
mv -f "$filename" "$totalMoveToPath" >> $logoPath

printLogo
fi
done
IFS=$IFS_OLD
#----------------移动完成---------------#
---------本文结束感谢阅读---------
Title - Artist
0:00