一般都习惯用服务器挂amule下verycd。可是firefox下无法将ed2k的链接绑定为远程下载。而且verycd的链接里面老有不正常的字符,搞的拖下来的东西文件名一塌糊涂。可明明网页上的链接好好的啊。经过无数次的手动修改文件名(在某次一个网页有100+个链接的时候),我再也忍不住了。决定写个bash来一劳永逸的解决这个问题。
verycd_download.sh:
- #!/usr/bin/env bash
-
-
-
if [ $# -lt '1' ]
-
then
-
echo "show me the url !!!"
-
exit 0
-
fi
-
-
link_fn='/home/lama/.links'
-
amule_fn='/home/lama/.amule_cmd'
-
-
-
curl -q $1 |grep 'ed2k="ed2k' > $link_fn
-
-
echo "#!/usr/bin/env bash" > $amule_fn
-
echo "" >> $amule_fn
-
-
for ea in `cat $link_fn`
-
do
-
fn=`echo $ea| cut -d '>' -f2|sed 's/<\/a$//'`
-
num=`echo $ea|cut -d '"' -f2|cut -d '|' -f 4-`
-
echo "ssh user_name@my_server \"amulecmd -c 'add ed2k://|file|$fn|$num'\""
-
done >> $amule_fn
-
-
chmod +x $amule_fn
-
-
less $amule_fn
-
-
echo "There are `grep -c amulecmd $amule_fn` terms in list"
-
echo -n "Are you ready to download all of them? [Y/n]"
-
read flag
-
-
if [ $flag = "n" -o $flag = "N" ]
-
then
-
exit 0
-
fi
-
-
sh $amule_fn && rm $link_fn $amule_fn
其实就是手动解析verycd的网页,然后把文件名改为使用网页上显示的超链接的字符。最后生成一个bash脚本,每条链接都用ssh让远端的服务器执行一次amulecmd,将任务加载。
如果想下其他站的链接,则需要把里面的正则表达式稍稍改改。如果由于终端编码不对导致文件名乱码,还需要用iconv转一下。
阅读(1384) | 评论(0) | 转发(0) |