sycx's Blog

Nothing here.

Mac下批量下载迅雷离线文件-AppleScript

  1. [Update]
    1. 2011年6月3日:
      添加了反序功能(默认开启),对非BT类批量下载链接进行倒序,功能开关请直接改代码。

代码整理,并增加了一些注释。

下载:ThunderLixian-110603

  1. 2011年4月28日:
    给AppleScript方法添加了BT类任务支持

新代码请自行打开Service查看,懒得贴上来了..

新Service下载:ThunderLixian-BTSupport

用法:对BT任务点击 "显示BT列表",之后勾选要下载的文件,然后运行Service。

  1. [NEW]Bookmarklet:
    研究了下JavaScript,现学现卖,于是有了个更通用的解决方案
    1. 添加书签:
      迅雷批量

将上方按钮拖到书签栏

  1. 用法:
    如图:

  1. 已知限制:

    1. Safari和Chrome测试可用,但是Firefox3.6无效,原因不知。

    2. 依然不支持BT类任务,哪天我有下到BT资源可能会解决。

  • [Old]AppleScript:
    1. 创建:
      打开Automator,创建一个Service
      拖放一个Action “Run AppleScript”
      复制下方代码进去,保存。
      如图:

    或者直接下载文件:ThunderLixian.workflow 解压放到 ~/Library/Services/

    1. 使用:
      用Safari打开迅雷离线网页,勾选你要下载的文件,然后运行Service

    如此,便会自动调用iGetter批量下载了。

    1. 局限:
      这个Service是随便写来自用的,只达到刚好够用的标准,所以很有局限性:

      1. 所勾选的文件请必须是已下载完成的,而且不支持BT类文件

      2. 调用iGetter下载,要用其它下载工具得自己改代码哦~

      3. 只支持Safari

    2. 初版代码:
      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
      
      tell application "Safari"
      	if (exists document "迅雷会员-离线下载") then
      		set doc to document "迅雷会员-离线下载"
      		set src to "var syO = document.getElementsByName('ck');
      var syVal = syO.length;
      var syList=[];
      for(var i=0; i< syVal;i++){
          if(syO[i].checked == true){
          var taskid = syO[i].value;
          var linkId = 'dl_url'+taskid.toString();
          var oneLink = document.getElementById(linkId).value;
          syList.push(oneLink);
          }}
      syList;"
      		set downList to do JavaScript src in doc
      
      		tell application "iGetter"
      			set newDownList to {}
      			repeat with i from 1 to number of items in downList
      				set this_item to item i of downList
      				-- insert actions here
      				set newItem to {url:this_item}
      				copy newItem to the end of newDownList
      			end repeat
      			DownloadURL newDownList
      		end tell
      	end if
      end tell
  • Comments