├── CNAME ├── .gitignore ├── favicon.ico ├── archiver ├── aria2.zip └── aria2.conf ├── img ├── glyphicons-halflings.png └── glyphicons-halflings-white.png ├── README.md ├── offline.appcache ├── js ├── jquery.Storage.min.js ├── jquery.base64.min.js ├── jquery.jsonrpc.min.js ├── mustache.min.js ├── jquery.jsonrpc.js ├── bootstrap.min.js ├── peerid.min.js ├── aria2.js └── yaaw.js ├── css ├── bootstrap-responsive.min.css └── main.css ├── usage.html └── index.html /CNAME: -------------------------------------------------------------------------------- 1 | aria2c.com -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.tmp.* 2 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aa65535/yaaw-zh-hans/HEAD/favicon.ico -------------------------------------------------------------------------------- /archiver/aria2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aa65535/yaaw-zh-hans/HEAD/archiver/aria2.zip -------------------------------------------------------------------------------- /img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aa65535/yaaw-zh-hans/HEAD/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aa65535/yaaw-zh-hans/HEAD/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | YAAW-zh-Hans 2 | ---- 3 | 4 | 汉化过的 [YAAW](https://github.com/binux/yaaw) 并修复了一些小BUG 5 | 6 | 访问地址 [aria2c.com](http://aria2c.com/) 7 | 8 | latest commit 26cb28c0c85920f102154b425633e256169abb17 9 | -------------------------------------------------------------------------------- /offline.appcache: -------------------------------------------------------------------------------- 1 | CACHE MANIFEST 2 | #2019-13-02 19:40 3 | 4 | CACHE: 5 | index.html 6 | favicon.ico 7 | css/main.css 8 | css/bootstrap.min.css 9 | css/bootstrap-responsive.min.css 10 | img/glyphicons-halflings-white.png 11 | img/glyphicons-halflings.png 12 | js/jquery-1.7.2.min.js 13 | js/bootstrap.min.js 14 | js/jquery.jsonrpc.min.js 15 | js/jquery.Storage.min.js 16 | js/jquery.base64.min.js 17 | js/mustache.min.js 18 | js/peerid.min.js 19 | js/aria2.js 20 | js/yaaw.js 21 | -------------------------------------------------------------------------------- /js/jquery.Storage.min.js: -------------------------------------------------------------------------------- 1 | !function($){function e(e,t){var n;if("string"==typeof e&&"string"==typeof t)return localStorage[e]=t,!0;if("object"==typeof e&&"undefined"==typeof t){for(n in e)e.hasOwnProperty(n)&&(localStorage[n]=e[n]);return!0}return!1}function t(e,t){var n,r,o;if(n=new Date,n.setTime(n.getTime()+31536e6),r="; expires="+n.toGMTString(),"string"==typeof e&&"string"==typeof t)return document.cookie=e+"="+t+r+"; path=/",!0;if("object"==typeof e&&"undefined"==typeof t){for(o in e)e.hasOwnProperty(o)&&(document.cookie=o+"="+e[o]+r+"; path=/");return!0}return!1}function n(e){return localStorage[e]}function r(e){var t,n,r,o;for(t=e+"=",n=document.cookie.split(";"),r=0;r>16,(b10>>8)&255,b10&255))}switch(pads){case 1:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6);x.push(String.fromCharCode(b10>>16,(b10>>8)&255));break;case 2:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12);x.push(String.fromCharCode(b10>>16));break}return x.join("")}function _getbyte(s,i){var x=s.charCodeAt(i);if(x>255){throw"INVALID_CHARACTER_ERR: DOM Exception 5"}return x}function _encode(s){if(arguments.length!==1){throw"SyntaxError: exactly one argument required"}s=String(s);var i,b10,x=[],imax=s.length-s.length%3;if(s.length===0){return s}for(i=0;i>18));x.push(_ALPHA.charAt((b10>>12)&63));x.push(_ALPHA.charAt((b10>>6)&63));x.push(_ALPHA.charAt(b10&63))}switch(s.length-imax){case 1:b10=_getbyte(s,i)<<16;x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_PADCHAR+_PADCHAR);break;case 2:b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8);x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_ALPHA.charAt((b10>>6)&63)+_PADCHAR);break}return x.join("")}return{decode:_decode,encode:_encode,VERSION:_VERSION}}(jQuery)); 2 | -------------------------------------------------------------------------------- /archiver/aria2.conf: -------------------------------------------------------------------------------- 1 | ## '#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ## 2 | ## 被注释的选项填写的是默认值, 建议在需要修改时再取消注释 ## 3 | 4 | ## 文件保存相关 ## 5 | 6 | # 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置 7 | dir=~/downloads 8 | # 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M 9 | #disk-cache=32M 10 | # 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc 11 | # 预分配所需时间: none < falloc ? trunc < prealloc 12 | # falloc和trunc则需要文件系统和内核支持 13 | # NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项 14 | #file-allocation=none 15 | # 断点续传 16 | continue=true 17 | 18 | ## 下载连接相关 ## 19 | 20 | # 最大同时下载任务数, 运行时可修改, 默认:5 21 | #max-concurrent-downloads=5 22 | # 同一服务器连接数, 添加时可指定, 默认:1 23 | max-connection-per-server=5 24 | # 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M 25 | # 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载 26 | min-split-size=10M 27 | # 单个任务最大线程数, 添加时可指定, 默认:5 28 | #split=5 29 | # 整体下载速度限制, 运行时可修改, 默认:0 30 | #max-overall-download-limit=0 31 | # 单个任务下载速度限制, 默认:0 32 | #max-download-limit=0 33 | # 整体上传速度限制, 运行时可修改, 默认:0 34 | #max-overall-upload-limit=0 35 | # 单个任务上传速度限制, 默认:0 36 | #max-upload-limit=0 37 | # 禁用IPv6, 默认:false 38 | #disable-ipv6=true 39 | # 连接超时时间, 默认:60 40 | #timeout=60 41 | # 最大重试次数, 设置为0表示不限制重试次数, 默认:5 42 | #max-tries=5 43 | # 设置重试等待的秒数, 默认:0 44 | #retry-wait=0 45 | 46 | ## 进度保存相关 ## 47 | 48 | # 从会话文件中读取下载任务 49 | input-file=/etc/aria2/aria2.session 50 | # 在Aria2退出时保存`错误/未完成`的下载任务到会话文件 51 | save-session=/etc/aria2/aria2.session 52 | # 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0 53 | #save-session-interval=60 54 | 55 | ## RPC相关设置 ## 56 | 57 | # 启用RPC, 默认:false 58 | enable-rpc=true 59 | # 允许所有来源, 默认:false 60 | rpc-allow-origin-all=true 61 | # 允许非外部访问, 默认:false 62 | rpc-listen-all=true 63 | # 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同 64 | #event-poll=select 65 | # RPC监听端口, 端口被占用时可以修改, 默认:6800 66 | #rpc-listen-port=6800 67 | # 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项 68 | #rpc-secret= 69 | # 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项 70 | #rpc-user= 71 | # 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项 72 | #rpc-passwd= 73 | # 是否启用 RPC 服务的 SSL/TLS 加密, 74 | # 启用加密后 RPC 服务需要使用 https 或者 wss 协议连接 75 | #rpc-secure=true 76 | # 在 RPC 服务中启用 SSL/TLS 加密时的证书文件, 77 | # 使用 PEM 格式时,您必须通过 --rpc-private-key 指定私钥 78 | #rpc-certificate=/path/to/certificate.pem 79 | # 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件 80 | #rpc-private-key=/path/to/certificate.key 81 | 82 | ## BT/PT下载相关 ## 83 | 84 | # 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true 85 | #follow-torrent=true 86 | # BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999 87 | listen-port=51413 88 | # 单个种子最大连接数, 默认:55 89 | #bt-max-peers=55 90 | # 打开DHT功能, PT需要禁用, 默认:true 91 | enable-dht=false 92 | # 打开IPv6 DHT功能, PT需要禁用 93 | #enable-dht6=false 94 | # DHT网络监听端口, 默认:6881-6999 95 | #dht-listen-port=6881-6999 96 | # 本地节点查找, PT需要禁用, 默认:false 97 | #bt-enable-lpd=false 98 | # 种子交换, PT需要禁用, 默认:true 99 | enable-peer-exchange=false 100 | # 每个种子限速, 对少种的PT很有用, 默认:50K 101 | #bt-request-peer-speed-limit=50K 102 | # 客户端伪装, PT需要 103 | peer-id-prefix=-TR2770- 104 | user-agent=Transmission/2.77 105 | peer-agent=Transmission/2.77 106 | # 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0 107 | seed-ratio=0 108 | # 强制保存会话, 即使任务已经完成, 默认:false 109 | # 较新的版本开启后会在任务完成后依然保留.aria2文件 110 | #force-save=false 111 | # BT校验相关, 默认:true 112 | #bt-hash-check-seed=true 113 | # 继续之前的BT任务时, 无需再次校验, 默认:false 114 | bt-seed-unverified=true 115 | # 保存磁力链接元数据为种子文件(.torrent文件), 默认:false 116 | bt-save-metadata=true 117 | -------------------------------------------------------------------------------- /js/jquery.jsonrpc.min.js: -------------------------------------------------------------------------------- 1 | !function($){$.extend({jsonRPC:{version:"2.0",endPoint:null,namespace:null,setup:function(e){return this._validateConfigParams(e),this.endPoint=e.endPoint,this.namespace=e.namespace,this.auth=this.endPoint.match(/^(?:(?![^:@]+:[^:@\/]*@)[^:\/?#.]+:)?(?:\/\/)?(?:([^:@]*(?::[^:@]*)?)?@)?/)[1],this},withOptions:function(e,t){if(this._validateConfigParams(e),"undefined"==typeof t)throw"No callback specified";origParams={endPoint:this.endPoint,namespace:this.namespace},this.setup(e),t.call(this),this.setup(origParams)},request:function(e,t){return"undefined"==typeof t&&(t={id:1}),"undefined"==typeof t.id&&(t.id=1),this._validateRequestMethod(e),this._validateRequestParams(t.params),this._validateRequestCallbacks(t.success,t.error),this._doRequest(JSON.stringify(this._requestDataObj(e,t.params,t.id)),t),!0},batchRequest:function(e,t){if("undefined"==typeof t&&(t={}),!$.isArray(e)||0===e.length)throw"Invalid requests supplied for jsonRPC batchRequest. Must be an array object that contain at least a method attribute";var n=this;$.each(e,function(e,t){n._validateRequestMethod(t.method),n._validateRequestParams(t.params),"undefined"==typeof t.id&&(t.id=e+1)}),this._validateRequestCallbacks(t.success,t.error);for(var s,r=[],i=0;i0&&"2.0"!==json[0].jsonrpc||!$.isArray(json)&&"2.0"!==json.jsonrpc)throw"Version error";return json}catch(e){return{error:"Aria2 RPC \u670d\u52a1\u5668\u9519\u8bef: "+e,version:"2.0"}}}}})}(jQuery); -------------------------------------------------------------------------------- /js/mustache.min.js: -------------------------------------------------------------------------------- 1 | var Mustache="undefined"!=typeof module&&module.exports||{};!function(e){function n(e){return k.test(e)}function r(e){return String(e).replace(/&(?!\w+;)|[<>"']/g,function(e){return w[e]||e})}function t(e,n,r,t){t=t||"