迅雷下载开放引擎
迅雷下载开放引擎是迅雷开放下载技术的重要产品,依托迅雷强大的下载加速技术和将近4亿互联网用户覆盖,开放下载相关调用接口,为第三方客户端软件提供免费、高速、省带宽的下载加速服务。
官方网址:http://thunderplatform.xunlei.com/
在线文档:http://xldoc.xl7.xunlei.com/0000000026/index.html
使用说明
需要附带 XLDownload.dll 和 zlib1.dll 这两个文件(可以从迅雷下载开放引擎 SDK 包中获取)
范例
1.gif (8.99 KB, 下载次数: 209)
2011-6-28 13:42 上传
raw.loadDll("/zlib1.dll");
XL = raw.loadDll("/XLDownload.dll");
XLInitDownloadEngine = XL.api("XLInitDownloadEngine","int()");// 初始化引擎XLUninitDownloadEngine = XL.api("XLUninitDownloadEngine","int()");// 释放引擎XLURLDownloadToFile = XL.api("XLURLDownloadToFile","int(string,string,string,int&)");
XLQueryTaskInfo = XL.api("XLQueryTaskInfo","int(int,int&,long&,long&)");
XLStopTask = XL.api("XLStopTask","void(int)");
XLContinueTask = XL.api("XLContinueTask","int(int)");
XLPauseTask = XL.api("XLPauseTask","int(int, int&)");
XLDownload =class{ctor(url, saveTo, refUrl ="") {this.url = url;this.saveTo = saveTo;this.refUrl = refUrl;
}// 开始下载start =function() {varret, taskId = ..XLURLDownloadToFile(
..string.toUnicode(this.saveTo),
..string.toUnicode(this.url),
..string.toUnicode(this.refUrl),
0
);if(ret != 0/*_XL_SUCCESS*/) {returnfalse;
}this.taskId = taskId;returntrue;
}// 暂停下载pause =function() {if(this.taskId ==null)returnfalse;varret, taskId = ..XLPauseTask(this.taskId, 0);if(ret == 0) {this.taskId = taskId;returntrue;
}else{returnfalse;
}
}// 继续下载resume =function() {if(this.taskId ==null)returnfalse;return..XLContinueTask(this.taskId) == 0;
}// 停止下载stop =function() {if(this.taskId ==null)returnfalse;
..XLStopTask(this.taskId);this.taskId =null;
}
_queryTaskInfo =function() {if(this.taskId ==null)returnfalse;varret, status, fileSize, recvSize = ..XLQueryTaskInfo(this.taskId, 0, 0, 0);returnret == 0, status, fileSize, recvSize;
}
@ {
_get =function(k) {varret, status, fileSize, recvSize;if(k =="status"|| k =="file"|| k =="recv") {
ret, status, fileSize, recvSize =owner._queryTaskInfo();
}select(k) {case"status"{returnret ? status : -1;
}case"file"{return{ size = fileSizeor0 };
}case"recv"{return{ size = recvSizeor0 };
}
}
}
}
}
io.open();
XLInitDownloadEngine();vartask1 = XLDownload("http://dl_dir.qq.com/qqfile/qq/QQ2011/QQ2011Beta3.exe","C:\QQ2011Beta3.exe");vartask2 = XLDownload("http://down.sandai.net/thunder7/Thunder7.2.0.3076.exe","C:\Thunder7.2.0.3076.exe");// 开始任务task1.start();
task2.start();importwin;importfsys;vart = time.tick();while(task1.status < 11 || task2.status < 11) {execute("cls");
io.print("Downloading QQ2011Beta3.exe and Thunder7.2.0.3076.exe..."+'\n');
io.print("QQ2011Beta3.exe");
io.print(
string.format("%.2f%%", task1.recv.size * 100 / task1.file.size),
fsys.formatSize(task1.recv.size) +" / "+ fsys.formatSize(task1.file.size),
string.format("%.2f KB/s", task1.recv.size * 1000 / (time.tick() - t) / 1024)
);
io.print("Thunder7.2.0.3076.exe");
io.print(
string.format("%.2f%%", task2.recv.size * 100 / task2.file.size),
fsys.formatSize(task2.recv.size) +" / "+ fsys.formatSize(task2.file.size),
string.format("%.2f KB/s", task2.recv.size * 1000 / (time.tick() - t) / 1024)
);
win.delay(1000);
}// 无论是正常终止还是强制终止任务,都需要调用 stop() 方法,否则会导致资源泄漏task1.stop();
task2.stop();
io.print("下载完成!");
XLUninitDownloadEngine();