|
本帖最后由 zch11230 于 2015-9-27 23:46 编辑
我用的H218N ,和HG320 RG200E一样的配置 固件都什么的都是通用的。刷的 TOMATO 1.28.20130127 MIPSR2-Arctic K26 USB Full 挂了个移动硬盘混PT 但是觉得添加下载任务不太方便 PT论坛都有一个RSS订阅的功能 有的PT站叫小货车,百度到的方法要装RSS软件 还要装运行库 感觉对资源本来就紧缺的路由太奢侈了 自己写了个脚本,非常轻量级的实现自动添加订阅的种子 感觉挺方便的 特别是不在家的时候。
因为是个人使用 可能通用性上有很大问题 我已经在脚本里面添加了很多中文注释 方便大家自己修改 应该还是比较好懂 看如果大家这个小脚本有需求的话 我再做具体解释吧。
推荐用notepad++打开脚本文件 语言选择shell 看起来更好懂一些 记事本打开没有换行 而且编辑了 放进路由用不了。
使用方法:
1:确定固件支持脚本中所用到的命令:wget,sed,grep,cut,都是些常用命令 反正我没有再装别的库,就可以运行。
2:将附件解压 把ptrss.s放在一个有写权限的目录 我是放在/tmp/mnt/download/opt/sbin下面,并在这个目录下新建一个名为downloaded.txt的空白文档,用来保存已经下载过的种子 以免重复添加任务。
3:用notepad++打开ptrss.s 配置RSS订阅地址(自己PT站里找),Transmission的用户名、密码和程序的绝对地址
4:手动在SSH,telnet中测试,以我的路径为例:sh /tmp/mnt/download/opt/sbin/ptrss.s.
成功的样子,其中1,2,3表示现在RSS订阅了3个种子 其中第一个no表示还没有下载过 所以添加下载任务 返回结果 success 表示任务添加成功,2,3yes表示已经下载过 不再重复添加任务
5:成功后在计划任务里,把上面第4条的命令添加自定义任务 时间间隔根据自己需要设置。我设置的15分钟。
如果失败的,请按下面顺序检查
1.手动在SSH,TELNET 切换到工作目录 执行wget -O rss.txt http://RSS订阅地址 看能否正确的下载rss.txt,内容和网页的源码一样,不能的话 要么地址有问题,要么路由wget命令不支持 ,
2.手动执行第35行的命令grep -E -o 'http.+?download[^"]+' rss.txt 看能否正确的提取出种子的下载链接,如不能可能是正则表达式不对,这个需要提供rss.txt的内容,我才会写对应的正则了,请不要直接贴出你的rss.txt内容,更不要泄漏你的passkey
正常的话应该是这个样子
3.判断跳转有问题 同上面问题一样 每个PT站的内容可能不一样 正则也需要相对更改。
4.添加任务失败 以12行的命令,手动添加任务测试一下 看transmission设置是否支持通过命令添加任务
ptrss.s中的内容:
- #! /bin/bash
- yes(){
- echo "yes"
- }
- no(){
- echo "no"
- #echo link="$1"
- echo "$2" >>downloaded.txt
- #添加任务 注意transmission的绝对地址
- /tmp/mnt/download/opt/bin/transmission-remote -n $TMusername:$TMpassword -a ""$1""
- }
- #脚本开始
- #配置开始
- #RSS订阅地址
- rssad="http://hdbiger.org/torrentrss.php?myrss=1&linktype=dl&uid=10086&passkey=aaaaaaaaaaaaaaaaaaaaaaa"
- #Transmission用户名
- TMusername=admin
- #密码
- TMpassword=admin
- #切换到工作目录
- cd /tmp/mnt/download/opt/sbin
- #配置结束
- #获取RSS订阅资源
- rm -f rss.txt
- wget -O rss.txt $rssad
- #清除因编码带来的多余无用符号
- sed -i "s/amp;//g" rss.txt
- #提取RSS链接
- list=$(grep -E -o 'http.+?download[^"]+' rss.txt)
- #echo $list>list.txt
- #获取RSS链接数目
- listnum=$(grep -E -c 'http.+?download[^"]+' rss.txt)
- #echo $list
- #单个链接循环比较是否已经下载过该资源
- for i in `seq 1 $listnum`; do
- echo $i
- download=$(echo $list | cut -d ' ' -f $i)
- echo $download
- downid=$(echo $download | grep -E -o 'id=[0-9]+')
- #echo $downid
- #downloaded.txt内如果包含则跳转到YES结束 否则跳转到NO开始添加任务
- cat downloaded.txt | grep -q "$downid" && yes || no $download $downid
- done
- rm -f rss.txt
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|