【注意】最后更新于 May 7, 2018,文中内容可能已过时,请谨慎使用。
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
86
|
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
65
|
#!/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
#----------------移动完成---------------#
|