Chinaunix首页 | 论坛 | 博客
  • 博客访问: 31438
  • 博文数量: 8
  • 博客积分: 206
  • 博客等级: 入伍新兵
  • 技术积分: 115
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-23 03:16
文章分类

全部博文(8)

文章存档

2011年(8)

最近访客

分类: Python/Ruby

2011-03-24 01:26:33

一般都习惯用服务器挂amule下verycd。可是firefox下无法将ed2k的链接绑定为远程下载。而且verycd的链接里面老有不正常的字符,搞的拖下来的东西文件名一塌糊涂。可明明网页上的链接好好的啊。经过无数次的手动修改文件名(在某次一个网页有100+个链接的时候),我再也忍不住了。决定写个bash来一劳永逸的解决这个问题。

verycd_download.sh:
  1. #!/usr/bin/env bash


  2. if [ $# -lt '1' ]
  3. then
  4. echo "show me the url !!!"
  5. exit 0
  6. fi

  7. link_fn='/home/lama/.links'
  8. amule_fn='/home/lama/.amule_cmd'


  9. curl -q $1 |grep 'ed2k="ed2k' > $link_fn

  10. echo "#!/usr/bin/env bash" > $amule_fn
  11. echo "" >> $amule_fn

  12. for ea in `cat $link_fn`
  13. do
  14. fn=`echo $ea| cut -d '>' -f2|sed 's/<\/a$//'`
  15. num=`echo $ea|cut -d '"' -f2|cut -d '|' -f 4-`
  16. echo "ssh user_name@my_server \"amulecmd -c 'add ed2k://|file|$fn|$num'\""
  17. done >> $amule_fn

  18. chmod +x $amule_fn

  19. less $amule_fn

  20. echo "There are `grep -c amulecmd $amule_fn` terms in list"
  21. echo -n "Are you ready to download all of them? [Y/n]"
  22. read flag

  23. if [ $flag = "n" -o $flag = "N" ]
  24. then
  25. exit 0
  26. fi

  27. sh $amule_fn && rm $link_fn $amule_fn
其实就是手动解析verycd的网页,然后把文件名改为使用网页上显示的超链接的字符。最后生成一个bash脚本,每条链接都用ssh让远端的服务器执行一次amulecmd,将任务加载。

如果想下其他站的链接,则需要把里面的正则表达式稍稍改改。如果由于终端编码不对导致文件名乱码,还需要用iconv转一下。

阅读(1309) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~