├── PanDownload_v1.1.1.zip ├── PanDownload_v1.3.5.zip ├── PanDownload_v1.4.3.zip ├── PanDownload_v1.4.7.zip ├── PanDownload_v1.4.9.zip ├── PanDownload_v1.5.0.zip ├── PanDownload_v1.5.2.zip ├── PanDownload_v1.5.4.rar ├── PanDownload_v2.0.1.rar ├── PanDownload_v2.0.3.zip ├── PanDownload_v2.0.4.zip ├── PanDownload_v2.0.5.zip ├── PanDownload_v2.0.6.zip ├── PanDownload_v2.0.9.zip ├── PanDownload_v2.1.0.zip ├── PanDownload_v2.1.1.zip ├── PanDownload_v2.1.3.zip ├── PanDownload_v2.2.2.zip ├── README.md ├── _config.yml └── 插件备份 ├── README.md ├── anime_yxdm.lua ├── download_01.lua ├── search_agefans.lua ├── search_bdfilm.lua ├── search_panduoduo.lua ├── search_qqmusic.lua ├── search_rufengsou.lua ├── search_zhuzhupan.lua ├── serach_58wangpan.lua ├── serach_LOSSLESSMUSIC.lua ├── serach_dalipan.lua ├── serach_lanzousearch.lua ├── serach_mp4ba.lua └── serach_zxzj.lua /PanDownload_v1.1.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v1.1.1.zip -------------------------------------------------------------------------------- /PanDownload_v1.3.5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v1.3.5.zip -------------------------------------------------------------------------------- /PanDownload_v1.4.3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v1.4.3.zip -------------------------------------------------------------------------------- /PanDownload_v1.4.7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v1.4.7.zip -------------------------------------------------------------------------------- /PanDownload_v1.4.9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v1.4.9.zip -------------------------------------------------------------------------------- /PanDownload_v1.5.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v1.5.0.zip -------------------------------------------------------------------------------- /PanDownload_v1.5.2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v1.5.2.zip -------------------------------------------------------------------------------- /PanDownload_v1.5.4.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v1.5.4.rar -------------------------------------------------------------------------------- /PanDownload_v2.0.1.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v2.0.1.rar -------------------------------------------------------------------------------- /PanDownload_v2.0.3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v2.0.3.zip -------------------------------------------------------------------------------- /PanDownload_v2.0.4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v2.0.4.zip -------------------------------------------------------------------------------- /PanDownload_v2.0.5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v2.0.5.zip -------------------------------------------------------------------------------- /PanDownload_v2.0.6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v2.0.6.zip -------------------------------------------------------------------------------- /PanDownload_v2.0.9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v2.0.9.zip -------------------------------------------------------------------------------- /PanDownload_v2.1.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v2.1.0.zip -------------------------------------------------------------------------------- /PanDownload_v2.1.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v2.1.1.zip -------------------------------------------------------------------------------- /PanDownload_v2.1.3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v2.1.3.zip -------------------------------------------------------------------------------- /PanDownload_v2.2.2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minggithubaccount/pandownload_backup/08bb5bf8b6df9c872fa49da0742af53e851cd748/PanDownload_v2.2.2.zip -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pandownload_backup 2 | 应该是最全的pandownload各历史版本备份吧,谨以纪念盘神——蔡某萌。 3 | 4 | 最后,fxxk baidu! 5 | 6 | # 更新记录 7 | v2.2.2 8 | 更新时间: 2020-01-24 9 | 更新内容: 10 | 1.界面优化 11 | 2.bug修复 12 | 13 | v2.1.3 14 | 更新时间: 2019-08-22 15 | 更新内容: 16 | 1.修复bug 17 | 18 | v2.1.1 19 | 更新时间: 2019-06-22 20 | 更新内容: 21 | 1.新增收藏夹和历史记录功能 22 | 2.秒传链接功能优化 23 | 3.修复部分bug 24 | 25 | v2.1.0 26 | 更新时间: 2019-04-22 27 | 更新内容: 28 | 1.修复bug 29 | 30 | v2.0.9 31 | 更新时间: 2019-04-12 32 | 更新内容: 33 | 1.支持远程下载 34 | 2.修复部分bug 35 | 36 | v2.0.6 37 | 更新时间: 2019-02-04 38 | 更新内容: 39 | 1.新增批量转存功能 40 | 2.支持多账号文件搜索 41 | 3.优化使用体验及bug修复 42 | 43 | v2.0.5 44 | 更新时间: 2018-11-16 45 | 更新内容: 46 | 1.支持HTTP/HTTPS下载 47 | 2.新增文件清理功能 48 | 3.新增提取码查询功能 49 | 50 | v2.0.4 51 | 更新时间: 2018-10-17 52 | 更新内容: 53 | 1.修复分享链接无法下载的问题(需登录账号) 54 | 2.支持开机启动 55 | 3.修复部分bug 56 | 57 | v2.0.3 58 | 更新时间: 2018-09-29 59 | 更新内容: 60 | 1.新增资源搜索功能 61 | 2.优化使用体验及bug修复 62 | 63 | v2.0.1 64 | 更新时间: 2018-09-01 65 | 更新内容: 66 | 1.全新界面 67 | 2.多账号管理 68 | 3.支持免登录下载 69 | 4.支持批量下载 70 | 5.新增批量重命名 71 | 6.优化体验及bug修复 72 | 73 | v1.5.4 74 | 更新时间: 2018-03-10 75 | 更新内容: 76 | 1.修复分享链接打开失败的问题 77 | 78 | v1.5.2 79 | 更新时间: 2018-02-16 80 | 更新内容: 81 | 1.修复部分BUG 82 | 83 | v1.5.0 84 | 更新时间: 2018-01-13 85 | 更新内容: 86 | 1.修复部分用户获取下载链接失败的问题 87 | 88 | v1.4.9 89 | 更新时间: 2017-12-26 90 | 更新内容: 91 | 1.修复部分可能导致下载错误的问题 92 | 93 | v1.4.7 94 | 更新时间: 2017-11-22 95 | 更新内容: 96 | 1.支持在线解压500M以内压缩包 97 | 2.支持查看文件属性 98 | 3.文件校验时显示校验进度 99 | 4.修复部分BUG 100 | 101 | v1.4.3 102 | 更新时间: 2017-09-16 103 | 更新内容: 104 | 1.优化软件界面 105 | 2.新增离线下载 106 | 3.新增我的分享 107 | 4.添加提示音效 108 | 5.支持提取下载链接 109 | 6.支持文件复制和移动操作 110 | 7.支持自定义aria2配置 111 | 8.修复下载列表丢失的问题 112 | 9.修复打开分享链接密码错误的问题 113 | 114 | v1.3.5 115 | 更新时间: 2017-06-23 116 | 更新内容: 117 | 1.优化下载功能 118 | 2.新增远程下载 119 | 120 | v1.3.1 121 | 更新时间: 2017-05-26 122 | 更新内容: 123 | 1.优化主菜单 124 | 2.新增自动关机 125 | 3.新增剪贴板监控 126 | 4.新增文件图标 127 | 5.新增最小化到托盘 128 | 6.新增新番下载 129 | 7.支持自定义分享密码 130 | 8.支持打开分享链接 131 | 132 | v1.1.1 133 | 更新时间: 2017-02-26 134 | 更新内容: 135 | 1.新增文件搜索功能 136 | 2.修复扫码登录的BUG 137 | 138 | v1.1.0 139 | 更新时间: 2017-02-19 140 | 更新内容: 141 | 1.已支持XP系统 142 | 2.新增更新检测 143 | 3.新增网页登录方式 (XP系统需升级IE8) 144 | 4.修复部分BUG 145 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate -------------------------------------------------------------------------------- /插件备份/README.md: -------------------------------------------------------------------------------- 1 | pandownload插件备份,仅作备份研究之用,请勿用作商业用途。 2 | -------------------------------------------------------------------------------- /插件备份/anime_yxdm.lua: -------------------------------------------------------------------------------- 1 | local curl = require "lcurl.safe" 2 | local json = require "cjson.safe" 3 | 4 | script_info = { 5 | ["title"] = "怡萱动漫", 6 | ["description"] = "http://www.yxdm.tv/", 7 | ["version"] = "0.0.1", 8 | } 9 | 10 | function request(url) 11 | local r = "" 12 | local c = curl.easy{ 13 | url = url, 14 | httpheader = { 15 | "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36", 16 | "Referer: http://www.yxdm.tv/", 17 | }, 18 | ssl_verifyhost = 0, 19 | ssl_verifypeer = 0, 20 | followlocation = 1, 21 | timeout = 15, 22 | proxy = pd.getProxy(), 23 | writefunction = function(buffer) 24 | r = r .. buffer 25 | return #buffer 26 | end, 27 | } 28 | local _, e = c:perform() 29 | c:close() 30 | return r 31 | end 32 | 33 | function onInitAnime() 34 | local data = request("http://www.yxdm.tv/") 35 | local anime_week = {} 36 | local week = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"} 37 | local sep = {"weektbc_01", "weektbc_02", "weektbc_03", "weektbc_04", "weektbc_05", "weektbc_06", "weektbc_07", ""} 38 | for i = 1, 7 do 39 | local _, _, tmp = string.find(data, sep[i].."(.-)"..sep[i+1]) 40 | local begin = 1 41 | local anime_day = {["title"] = week[i]} 42 | while tmp do 43 | local _, b, name, id = string.find(tmp, '.-更新至:.->([^<>]+).-日期:.->([^<]+) 0 and string.byte(img) == 47 then 65 | img = "http://www.yxdm.tv"..img 66 | end 67 | table.insert(result, {["url"] = "http://www.yxdm.tv/getdlist.php?id="..id, ["title"] = pd.htmlUnescape(title), ["image"] = img, ["icon_size"] = "50,67", ["time"] = time, ["description"] = "更新至:"..desc}) 68 | start = b + 1 69 | end 70 | return result 71 | end 72 | 73 | function onItemClick(item) 74 | local j = json.decode(request(item.url)) 75 | if j == nil or j.data == nil or #j.data == 0 or j.data[1].list == nil or #j.data[1].list == 0 or j.data[1].list[1].url == nil or #j.data[1].list[1].url == 0 then 76 | return ACT_ERROR, "获取资源失败" 77 | end 78 | return ACT_SHARELINK, pd.base64Decode(j.data[1].list[1].url) 79 | end -------------------------------------------------------------------------------- /插件备份/download_01.lua: -------------------------------------------------------------------------------- 1 | local curl = require "lcurl.safe" 2 | local json = require "cjson.safe" 3 | 4 | script_info = { 5 | ["title"] = "高速下载通道", 6 | ["description"] = "百度网盘高速下载脚本,免登录,不限速", 7 | ["version"] = "0.0.1", 8 | } 9 | 10 | accelerate_url = "https://api.panbubu.com/download" 11 | 12 | function onInitTask(task, user, file) 13 | if task:getType() ~= TASK_TYPE_SHARE_BAIDU then 14 | return false 15 | end 16 | local data = "" 17 | local c = curl.easy { 18 | url = accelerate_url, 19 | post = 1, 20 | postfields = json.encode({["dlink"] = file.dlink}), 21 | timeout = 15, 22 | ssl_verifyhost = 0, 23 | ssl_verifypeer = 0, 24 | proxy = pd.getProxy(), 25 | writefunction = function(buffer) 26 | data = data..buffer 27 | return #buffer 28 | end, 29 | } 30 | local _, e = c:perform() 31 | c:close() 32 | if e then 33 | return false 34 | end 35 | local j = json.decode(data) 36 | if j == nil then 37 | return false 38 | end 39 | if j.code ~= 0 then 40 | return false 41 | end 42 | task:setUris(j.urls) 43 | task:setOptions("user-agent", j.ua) 44 | if string.find(j.urls[1], "https?://qdall01.baidupcs.com/file/") then 45 | task:setIcon("icon/limit_rate.png", "高速通道受限") 46 | else 47 | task:setIcon("icon/accelerate.png", "高速通道加速中") 48 | end 49 | return true 50 | end -------------------------------------------------------------------------------- /插件备份/search_agefans.lua: -------------------------------------------------------------------------------- 1 | local curl = require "lcurl.safe" 2 | 3 | script_info = { 4 | ["title"] = "AGE动漫", 5 | ["description"] = "http://donghua.agefans.com/", 6 | ["version"] = "0.0.2", 7 | } 8 | 9 | function onSearch(key, page) 10 | return parse(get("http://donghua.agefans.com/search?page=" .. page .. "&input=" .. pd.urlEncode(key))) 11 | end 12 | 13 | function onItemClick(item) 14 | local act = ACT_SHARELINK 15 | local data = get(item.url) 16 | local _, _, arg = string.find(data, "") 20 | if pwd then 21 | arg = arg .. " " .. pwd 22 | end 23 | end 24 | if arg == nil or #arg == 0 then 25 | act = ACT_ERROR 26 | arg = "获取链接失败" 27 | end 28 | return act, arg 29 | end 30 | 31 | function get(url) 32 | local r = "" 33 | local c = curl.easy{ 34 | url = url, 35 | followlocation = 1, 36 | timeout = 15, 37 | proxy = pd.getProxy(), 38 | writefunction = function(buffer) 39 | r = r .. buffer 40 | return #buffer 41 | end, 42 | } 43 | c:perform() 44 | c:close() 45 | return r 46 | end 47 | 48 | function getEffectiveUrl(url) 49 | local c = curl.easy{ 50 | url = url, 51 | nobody = 1, 52 | followlocation = 1, 53 | timeout = 15, 54 | proxy = pd.getProxy(), 55 | } 56 | c:perform() 57 | local ret = c:getinfo(curl.INFO_EFFECTIVE_URL) 58 | c:close() 59 | if ret == url then 60 | ret = "" 61 | end 62 | return ret 63 | end 64 | 65 | function parse(data) 66 | local result = {} 67 | local start = 1 68 | while true do 69 | local a, b, id, title, time, description = string.find(data, "(.-).-首播时间.-(.-).-cell_imform_desc\">(.-)", start) 70 | if id == nil then 71 | break 72 | end 73 | title = string.gsub(title, "^%s*(.-)%s*$", "%1", 1) 74 | time = string.gsub(time, "^%s*(.-)%s*$", "%1", 1) 75 | description = string.gsub(description, "^%s*(.-)%s*$", "%1", 1) 76 | table.insert(result, {["url"] = "http://donghua.agefans.com/detail/" .. id, ["title"] = pd.htmlUnescape(title), ["image"] = "http://donghua.agefans.com/poster/" .. id .. ".jpg", ["icon_size"] = "48,67", ["time"] = time, ["description"] = pd.htmlUnescape(description)}) 77 | start = b + 1 78 | end 79 | return result 80 | end -------------------------------------------------------------------------------- /插件备份/search_bdfilm.lua: -------------------------------------------------------------------------------- 1 | local curl = require "lcurl.safe" 2 | 3 | script_info = { 4 | ["title"] = "BD影视", 5 | ["description"] = "https://www.bd-film.cc/", 6 | ["version"] = "0.0.1", 7 | } 8 | 9 | function request(url) 10 | local r = "" 11 | local c = curl.easy{ 12 | url = url, 13 | httpheader = { 14 | "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36", 15 | }, 16 | ssl_verifyhost = 0, 17 | ssl_verifypeer = 0, 18 | followlocation = 1, 19 | timeout = 15, 20 | proxy = pd.getProxy(), 21 | writefunction = function(buffer) 22 | r = r .. buffer 23 | return #buffer 24 | end, 25 | } 26 | local _, e = c:perform() 27 | c:close() 28 | return r 29 | end 30 | 31 | function onSearch(keyword, page) 32 | local data = request("https://www.bd-film.cc/search_"..page..".jspx?q="..pd.urlEncode(keyword)) 33 | local result = {} 34 | local start = 1 35 | while true do 36 | local _, b, img, url, title, description = string.find(data, '(.-).-(.-)', start) 37 | if url == nil then 38 | break 39 | end 40 | description = string.gsub(description, "^%s*(.-)%s*$", "%1", 1) 41 | table.insert(result, {["url"] = url, ["title"] = pd.htmlUnescape(title), ["image"] = img, ["icon_size"] = "47,67", ["description"] = description}) 42 | start = b + 1 43 | end 44 | return result 45 | end 46 | 47 | function onItemClick(item) 48 | local act = ACT_SHARELINK 49 | local arg, pwd = "", "" 50 | _, _, arg = string.find(request(item.url), 'diskUrls = "([^"]+)') 51 | if arg then 52 | arg = pd.base64Decode(string.reverse(arg)) 53 | _, _, pwd, arg = string.find(arg, "(.-)||(.+)") 54 | if pwd then 55 | arg = arg.." "..pwd 56 | end 57 | end 58 | if arg == nil then 59 | act = ACT_ERROR 60 | arg = "获取资源失败" 61 | end 62 | return act, arg 63 | end -------------------------------------------------------------------------------- /插件备份/search_panduoduo.lua: -------------------------------------------------------------------------------- 1 | local curl = require "lcurl.safe" 2 | 3 | script_info = { 4 | ["title"] = "盘多多", 5 | ["description"] = "http://www.panduoduo.net/", 6 | ["version"] = "0.0.1", 7 | } 8 | 9 | function onSearch(key, page) 10 | return parse(get("http://www.panduoduo.net/s/comb/n-" .. urlEncode(key) .. "&s-feedtime1&ty-bd/" .. page)) 11 | end 12 | 13 | function onItemClick(item) 14 | local act = ACT_SHARELINK 15 | local _, _, arg = string.find(get(item.url), " 0 then 128 | singer_name = singer_name .. " / " 129 | end 130 | singer_name = singer_name .. singer.title 131 | end 132 | description = "歌手:" .. singer_name 133 | if #song.album.title > 0 and song.album.title ~= " " then 134 | description = description .. " 专辑:" .. song.album.title 135 | item.image = "https://y.gtimg.cn/music/photo_new/T002R300x300M000" .. song.album.mid .. ".jpg" 136 | end 137 | if item.image == nil then 138 | item.image = "https://y.gtimg.cn/music/photo_new/T001R300x300M000" .. singer_mid .. ".jpg" 139 | end 140 | if song.file.size_flac > 0 then 141 | item.file_flac = "1" 142 | end 143 | if song.file.size_320 > 0 then 144 | item.file_320 = "1" 145 | end 146 | if song.file.size_128 > 0 then 147 | item.file_128 = "1" 148 | end 149 | if item.file_flac then 150 | item.title = song.title .. " {f 9}{c #ff6600}SQ{/c}{/f}" 151 | elseif item.file_320 then 152 | item.title = song.title .. " {f 9}{c #31c27c}HQ{/c}{/f}" 153 | else 154 | item.title = song.title 155 | end 156 | item.mid = song.mid 157 | item.name = conv(song.title) 158 | item.singer = conv((string.gsub(singer_name, " / ", ","))) 159 | item.icon_size = "55,55" 160 | item.description = description 161 | item.time = string.format("%02d:%02d", math.floor(song.interval / 60), song.interval % 60) 162 | item.tooltip = song.title 163 | item.showhtml = "true" 164 | return item 165 | end 166 | 167 | function createConfigItem(title, key, val, isSel) 168 | local item = {} 169 | item.title = title 170 | item.key = key 171 | item.val = val 172 | item.icon_size = "14,14" 173 | item.isConfig = "1" 174 | if isSel then 175 | item.image = "option/selected.png" 176 | item.isSel = "1" 177 | else 178 | item.image = "option/normal.png" 179 | item.isSel = "0" 180 | end 181 | return item 182 | end 183 | 184 | function urlEncode(s) 185 | return (string.gsub( 186 | s, 187 | "[^%w%-_%.!~%*'%(%)]", 188 | function(c) 189 | return string.format("%%%02X", string.byte(c)) 190 | end 191 | )) 192 | end 193 | 194 | function conv(s) 195 | s = string.gsub(s, "%?", "?") 196 | s = string.gsub(s, "%*", "*") 197 | s = string.gsub(s, ":", ":") 198 | return s 199 | end -------------------------------------------------------------------------------- /插件备份/search_rufengsou.lua: -------------------------------------------------------------------------------- 1 | local curl = require "lcurl.safe" 2 | 3 | script_info = { 4 | ["title"] = "如风搜", 5 | ["description"] = "http://www.rufengso.net/", 6 | ["version"] = "0.0.1", 7 | } 8 | 9 | 10 | function request(url) 11 | local r = "" 12 | local c = curl.easy{ 13 | url = url, 14 | httpheader = { 15 | "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36", 16 | }, 17 | ssl_verifyhost = 0, 18 | ssl_verifypeer = 0, 19 | followlocation = 1, 20 | timeout = 15, 21 | proxy = pd.getProxy(), 22 | writefunction = function(buffer) 23 | r = r .. buffer 24 | return #buffer 25 | end, 26 | } 27 | local _, e = c:perform() 28 | c:close() 29 | return r 30 | end 31 | 32 | 33 | function onSearch(key, page) 34 | 35 | local data = request("http://www.rufengso.net/s/name/" .. pd.urlEncode(key) .. "/" .. page) 36 | local result = {} 37 | local start = 1 38 | 39 | while true do 40 | 41 | local start_position, end_position, title, href = string.find(data,"
",start) 42 | 43 | if href == nil then 44 | break 45 | end 46 | href = "http://www.rufengso.net" .. href 47 | table.insert(result,{["title"]=title,["href"]=href}) 48 | start = end_position + 1 49 | end 50 | 51 | return result 52 | 53 | end 54 | 55 | function onItemClick(item) 56 | 57 | local url = exRequest(item.href) 58 | if url == nil then 59 | return ACT_MESSAGE, '获取URL失败' 60 | end 61 | 62 | return ACT_SHARELINK, url 63 | 64 | end 65 | 66 | function exRequest(url) 67 | local ret = request(url) 68 | local _, __, href = string.find(ret,'class="dbutton2" href="(.-)"',1) 69 | 70 | ret = request(href) 71 | _,__,url = string.find(ret, "URL='(.-)'") 72 | return url 73 | end 74 | -------------------------------------------------------------------------------- /插件备份/search_zhuzhupan.lua: -------------------------------------------------------------------------------- 1 | local curl = require "lcurl.safe" 2 | 3 | script_info = { 4 | ["title"] = "猪猪盘", 5 | ["description"] = "http://www.zhuzhupan.com/", 6 | ["version"] = "0.0.1", 7 | } 8 | 9 | function onSearch(key, page) 10 | if page == 1 then 11 | return parse(get("http://www.zhuzhupan.com/search?s=1&query=" .. pd.urlEncode(key))) 12 | else 13 | return {} 14 | end 15 | end 16 | 17 | function onItemClick(item) 18 | local act = ACT_SHARELINK 19 | local _, _, arg = string.find(get(item.url), "(https?://pan.baidu.com/s/[A-Za-z0-9-_]+)") 20 | if arg == nil or #arg == 0 then 21 | act = ACT_ERROR 22 | arg = "获取链接失败" 23 | end 24 | return act, arg 25 | end 26 | 27 | function get(url) 28 | local r = "" 29 | local c = curl.easy{ 30 | url = url, 31 | followlocation = 1, 32 | timeout = 15, 33 | cookie = "is_ps2=SUCCESS", 34 | proxy = pd.getProxy(), 35 | writefunction = function(buffer) 36 | r = r .. buffer 37 | return #buffer 38 | end, 39 | } 40 | local _, e = c:perform() 41 | c:close() 42 | return r 43 | end 44 | 45 | function parse(data) 46 | local result = {} 47 | local start = 1 48 | while true do 49 | local a, b, url, title, time = string.find(data, "href=\"(/gotopan_pay%?.-)\".-_blank\">(.-).-分享时间:(%d%d%d%d%-%d%d%-%d%d)", start) 50 | if url == nil then 51 | break 52 | end 53 | local tooltip = string.gsub(title, "(.-)", "%1") 54 | title = string.gsub(title, "(.-)", "{c #ff0000}%1{/c}") 55 | table.insert(result, {["url"] = "http://www.zhuzhupan.com" .. url, ["title"] = title, ["time"] = time, ["showhtml"] = "true", ["tooltip"] = tooltip}) 56 | start = b + 1 57 | end 58 | return result 59 | end -------------------------------------------------------------------------------- /插件备份/serach_58wangpan.lua: -------------------------------------------------------------------------------- 1 | local curl = require "lcurl.safe" 2 | local json = require "cjson.safe" 3 | 4 | 5 | script_info = { 6 | ["title"] = "58网盘", 7 | ["version"] = "0.0.1", 8 | ["description"] = "https://www.58wangpan.com/", 9 | } 10 | 11 | function request(args) 12 | 13 | local cookie = args.cookie or "" 14 | local referer = args.referer or "" 15 | --pd.logInfo("the cccc..:"..cookie) 16 | local header = args.header or {"User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36","Cookie: "..cookie,"Referer: "..referer} 17 | --pd.logInfo("header cookie:"..header[2]) 18 | local method = args.method or "GET" 19 | local para = args.para 20 | local url = args.url 21 | local data = "" 22 | 23 | local c = curl.easy{ 24 | url = url, 25 | ssl_verifyhost = 0, 26 | ssl_verifypeer = 0, 27 | timeout = 15, 28 | proxy = pd.getProxy(), 29 | } 30 | 31 | 32 | if para ~= nil then 33 | c:setopt(curl.OPT_POST, 1) 34 | c:setopt(curl.OPT_POSTFIELDS, para) 35 | end 36 | 37 | if header ~= nil then 38 | c:setopt(curl.OPT_HTTPHEADER, header) 39 | end 40 | 41 | if method == "HEAD" then 42 | c:setopt(curl.OPT_NOBODY, 1) 43 | --c:setopt(curl.OPT_FOLLOWLOCATION, 1) 44 | c:setopt(curl.OPT_HEADERFUNCTION, function(h) 45 | data = data .. h 46 | end) 47 | else 48 | c:setopt(curl.OPT_WRITEFUNCTION, function(buffer) 49 | data = data .. buffer 50 | return #buffer 51 | end) 52 | end 53 | 54 | local _, err = c:perform() 55 | if err == nil and method == "HEAD" then 56 | --data = c:getinfo(curl.INFO_EFFECTIVE_URL) 57 | end 58 | c:close() 59 | 60 | if err then 61 | return nil, tostring(err) 62 | else 63 | return data, nil 64 | end 65 | 66 | 67 | 68 | end 69 | 70 | function onSearch(key,page) 71 | local url = "https://www.58wangpan.com/search/o1kw"..pd.urlEncode(key).."pg"..page 72 | 73 | local result = {} 74 | local start = 1 75 | local p_start,p_end,title,href,fileType,time 76 | local data = request({url=url}) 77 | while true do 78 | p_start,p_end,fileType,href,title,time=string.find(data,'.-.-
(.-)
',start) 79 | 80 | if not href then 81 | pd.logInfo("no href:..") 82 | break 83 | end 84 | 85 | --pd.logInfo("href:"..href) 86 | --pd.logInfo("title:"..title) 87 | --pd.logInfo("singer:"..singer) 88 | --pd.logInfo("songstype:"..songstype) 89 | --pd.logInfo("fileSize:"..fileSize) 90 | --pd.logInfo("time:"..time) 91 | 92 | 93 | href = "https://www.58wangpan.com"..href 94 | --local img = "https://www.58wangpan.com/images/"..fileType..".png" 95 | local tooltip = string.gsub(title, '(.-)', "%1") 96 | title = string.gsub(title,'(.-)', "{c #ff0000}%1{/c}") 97 | pd.logInfo("title:.."..title) 98 | table.insert(result,{["href"]=href, ["title"]=title, ["time"]=time, ["showhtml"] = "true", ["tooltip"] = tooltip, ["fileType"] = fileType}) 99 | 100 | start = p_end + 1 101 | 102 | end 103 | 104 | return result 105 | end 106 | 107 | function onItemClick(item) 108 | local url = getUrl(item.href) 109 | if url then 110 | return ACT_SHARELINK,url 111 | else 112 | return ACT_ERROR,"获取链接失败" 113 | end 114 | 115 | end 116 | 117 | function getUrl(href) 118 | local data = request({url=href}) 119 | local baiduPan_url,url 120 | --pd.logInfo("data:"..data) 121 | local p_start,p_end,fileID = string.find(data,"dialog_fileId = '(.-)'") 122 | if fileID then 123 | url = "https://www.58wangpan.com/redirect/file?id="..fileID 124 | data = request({url=url,referer=href}) 125 | p_start,p_end,baiduPan_url = string.find(data,"var url = '(.-)'") 126 | end 127 | --pd.logInfo("baiduPan_url:"..baiduPan_url) 128 | return baiduPan_url 129 | end 130 | 131 | -------------------------------------------------------------------------------- /插件备份/serach_LOSSLESSMUSIC.lua: -------------------------------------------------------------------------------- 1 | local curl = require "lcurl.safe" 2 | local json = require "cjson.safe" 3 | 4 | 5 | script_info = { 6 | ["title"] = "LOSSLESS MUSIC", 7 | ["version"] = "0.0.1", 8 | ["description"] = "https://www.sq688.com/", 9 | } 10 | 11 | function request(args) 12 | 13 | local cookie = args.cookie or "" 14 | --pd.logInfo("the cccc..:"..cookie) 15 | local header = args.header or {"User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"} 16 | --pd.logInfo("header cookie:"..header[2]) 17 | local method = args.method or "GET" 18 | local para = args.para 19 | local url = args.url 20 | local data = "" 21 | if cookie then 22 | --pd.logInfo("set header cookie:".."Cookie: "..cookie) 23 | table.insert(header,"Cookie: "..cookie) 24 | --pd.logInfo("the header is:"..header[2]) 25 | end 26 | local c = curl.easy{ 27 | url = url, 28 | ssl_verifyhost = 0, 29 | ssl_verifypeer = 0, 30 | timeout = 15, 31 | proxy = pd.getProxy(), 32 | } 33 | 34 | 35 | if para ~= nil then 36 | c:setopt(curl.OPT_POST, 1) 37 | c:setopt(curl.OPT_POSTFIELDS, para) 38 | end 39 | 40 | if header ~= nil then 41 | c:setopt(curl.OPT_HTTPHEADER, header) 42 | end 43 | 44 | if method == "HEAD" then 45 | c:setopt(curl.OPT_NOBODY, 1) 46 | --c:setopt(curl.OPT_FOLLOWLOCATION, 1) 47 | c:setopt(curl.OPT_HEADERFUNCTION, function(h) 48 | data = data .. h 49 | end) 50 | else 51 | c:setopt(curl.OPT_WRITEFUNCTION, function(buffer) 52 | data = data .. buffer 53 | return #buffer 54 | end) 55 | end 56 | 57 | local _, err = c:perform() 58 | if err == nil and method == "HEAD" then 59 | --data = c:getinfo(curl.INFO_EFFECTIVE_URL) 60 | end 61 | c:close() 62 | 63 | if err then 64 | return nil, tostring(err) 65 | else 66 | return data, nil 67 | end 68 | 69 | 70 | 71 | end 72 | 73 | function onSearch(key,page) 74 | local url = "https://www.sq688.com/search.php?key="..pd.urlEncode(key).."&page="..page 75 | 76 | local result = {} 77 | local start = 1 78 | local p_start,p_end,title,href,singer,songstype,fileSize,time 79 | local data = request({url=url}) 80 | while true do 81 | p_start,p_end,href,title,singer,songstype,fileSize,time=string.find(data,' .-(.-).-(.-).-class="songstype">(.-).-(.-).-(%d%d%d%d%-%d%d%-%d%d)',start) 82 | 83 | if not href then 84 | break 85 | end 86 | 87 | --pd.logInfo("href:"..href) 88 | --pd.logInfo("title:"..title) 89 | --pd.logInfo("singer:"..singer) 90 | --pd.logInfo("songstype:"..songstype) 91 | --pd.logInfo("fileSize:"..fileSize) 92 | --pd.logInfo("time:"..time) 93 | 94 | 95 | href = "https://www.sq688.com"..href 96 | 97 | local tooltip = string.gsub(title, key, "%1") 98 | title = string.gsub(title,key, "{c #ff0000}%1{/c}") 99 | local description = "歌手:"..singer.." 文件大小:"..fileSize.." 文件格式:"..songstype 100 | table.insert(result,{["href"]=href, ["title"]=title, ["time"]=time, ["showhtml"] = "true", ["tooltip"] = tooltip, ["check_url"] = "true",["description"] = description}) 101 | 102 | start = p_end + 1 103 | 104 | end 105 | 106 | return result 107 | end 108 | 109 | function onItemClick(item) 110 | local url = getUrl(item.href) 111 | if url then 112 | return ACT_SHARELINK,url 113 | else 114 | return ACT_ERROR,"获取链接失败" 115 | end 116 | 117 | end 118 | 119 | function getUrl(href) 120 | local data = request({url=href}) 121 | --pd.logInfo("data:"..data) 122 | local p_start,p_end,baiduPan_url,password = string.find(data,'.-data%-clipboard%-text="(.-)">') 123 | if password then 124 | baiduPan_url = baiduPan_url .. " " .. password 125 | end 126 | --pd.logInfo("baiduPan_url:"..baiduPan_url) 127 | return baiduPan_url 128 | end 129 | 130 | -------------------------------------------------------------------------------- /插件备份/serach_dalipan.lua: -------------------------------------------------------------------------------- 1 | local curl = require "lcurl.safe" 2 | 3 | script_info = { 4 | ["title"] = "大力盘", 5 | ["description"] = "https://www.dalipan.com/", 6 | ["version"] = "0.0.1", 7 | } 8 | 9 | function request(url,header) 10 | local r = "" 11 | local c = curl.easy{ 12 | url = url, 13 | httpheader = header, 14 | ssl_verifyhost = 0, 15 | ssl_verifypeer = 0, 16 | followlocation = 1, 17 | timeout = 15, 18 | proxy = pd.getProxy(), 19 | writefunction = function(buffer) 20 | r = r .. buffer 21 | return #buffer 22 | end, 23 | } 24 | local _, e = c:perform() 25 | c:close() 26 | return r 27 | end 28 | 29 | 30 | 31 | function onSearch(key, page) 32 | 33 | local header = { 34 | "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36", 35 | } 36 | 37 | local data = request("https://www.dalipan.com/search?keyword=" .. pd.urlEncode(key) .. "&page=" .. page, header) 38 | local result = {} 39 | local start = 1 40 | 41 | while true do 42 | 43 | local a, b, img, id, title, time = string.find(data, '
(.-).-

(.-)

', start) 44 | 45 | if id == nil then 46 | break 47 | end 48 | 49 | --title = string.gsub(title, "^%s*", "", 1) 50 | local tooltip = string.gsub(title, "(.-)", "%1") 51 | title = string.gsub(title, "(.-)", "{c #ff0000}%1{/c}") 52 | table.insert(result, {["id"] = id , ["title"] = title, ["showhtml"] = "true", ["tooltip"] = tooltip, ["time"] = time, ["image"] = "https://dalipan.com" .. img, ["icon_size"] = "35,40"}) 53 | -- table.insert(result, {["url"] = url .. " " .. pwd, ["title"] = title, ["showhtml"] = "true", ["tooltip"] = tooltip, ["check_url"] = "true", ["time"] = time}) 54 | start = b + 1 55 | 56 | end 57 | return result 58 | end 59 | 60 | 61 | function parseDetail(id) 62 | 63 | local deatil_url = "https://www.dalipan.com/detail/".. id 64 | header = { 65 | "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36", 66 | "referer: " .. deatil_url, 67 | } 68 | local image_url = "https://www.dalipan.com/images/recommand.png" 69 | request(image_url, header) 70 | local api_url = 'https://www.dalipan.com/api/private?id=' .. id 71 | local ret = request(api_url, header) 72 | local a, c, pwd, url = string.find(ret, '"pwd": "(.-)",.-"url": "(.-)"') 73 | 74 | return url .. " " .. pwd 75 | 76 | end 77 | 78 | function onItemClick(item) 79 | 80 | local url = parseDetail(item.id) 81 | return ACT_SHARELINK, url 82 | end 83 | 84 | -------------------------------------------------------------------------------- /插件备份/serach_lanzousearch.lua: -------------------------------------------------------------------------------- 1 | local curl = require "lcurl.safe" 2 | local json = require "cjson.safe" 3 | 4 | 5 | script_info = { 6 | ["title"] = "蓝奏云搜索", 7 | ["version"] = "0.0.6", 8 | ["description"] = "搜索蓝奏云资源,点击下载", 9 | } 10 | 11 | function request(args) 12 | 13 | local cookie = args.cookie or "" 14 | --pd.logInfo("the cccc..:"..cookie) 15 | local header = args.header or {"User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"} 16 | --pd.logInfo("header cookie:"..header[2]) 17 | local method = args.method or "GET" 18 | local para = args.para 19 | local url = args.url 20 | local data = "" 21 | if cookie then 22 | --pd.logInfo("set header cookie:".."Cookie: "..cookie) 23 | table.insert(header,"Cookie: "..cookie) 24 | --pd.logInfo("the header is:"..header[2]) 25 | end 26 | local c = curl.easy{ 27 | url = url, 28 | ssl_verifyhost = 0, 29 | ssl_verifypeer = 0, 30 | timeout = 15, 31 | proxy = pd.getProxy(), 32 | } 33 | 34 | 35 | if para ~= nil then 36 | c:setopt(curl.OPT_POST, 1) 37 | c:setopt(curl.OPT_POSTFIELDS, para) 38 | end 39 | 40 | if header ~= nil then 41 | c:setopt(curl.OPT_HTTPHEADER, header) 42 | end 43 | 44 | if method == "HEAD" then 45 | c:setopt(curl.OPT_NOBODY, 1) 46 | --c:setopt(curl.OPT_FOLLOWLOCATION, 1) 47 | c:setopt(curl.OPT_HEADERFUNCTION, function(h) 48 | data = data .. h 49 | end) 50 | else 51 | c:setopt(curl.OPT_WRITEFUNCTION, function(buffer) 52 | data = data .. buffer 53 | return #buffer 54 | end) 55 | end 56 | 57 | local _, err = c:perform() 58 | if err == nil and method == "HEAD" then 59 | --data = c:getinfo(curl.INFO_EFFECTIVE_URL) 60 | end 61 | c:close() 62 | 63 | if err then 64 | return nil, tostring(err) 65 | else 66 | return data, nil 67 | end 68 | 69 | 70 | 71 | end 72 | 73 | function onSearch(key, page) 74 | if page == 1 then 75 | interfaceID = pd.choice({"接口1","接口2"}, 1, "请选择") 76 | if interfaceID == 1 then 77 | engine = "site%3Apan.lanzou.com+" 78 | else 79 | engine = "site%3Awww.lanzous.com+" 80 | end 81 | end 82 | 83 | 84 | local cookie = setCookie() 85 | --pd.logInfo("the cookie is:"..cookie) 86 | local data,p_start,p_end 87 | --pd.logInfo("start send request") 88 | data = request({url="https://www.dogedoge.com/results?q="..engine..""..pd.urlEncode(key).."&p="..page,cookie=cookie}) 89 | 90 | -- Detect the cookie Invalid 91 | if string.find(data,"302 Found") then 92 | pd.logInfo("the cookie is invalid, reset it") 93 | cookie = setCookie("reset") 94 | data = request({url="https://www.dogedoge.com/results?q=site%3Apan.lanzou.com+"..pd.urlEncode(key).."&p="..page,cookie=cookie}) 95 | 96 | end 97 | 98 | --pd.logInfo(data) 99 | 100 | --pd.logInfo("get request data:"..data) 101 | local result = {} 102 | local start = 1 103 | local href,title,lanzou_url 104 | while true do 105 | -- get href and title 106 | --pd.logInfo("start:"..start) 107 | p_start,p_end,href,title = string.find(data,'(.-)',start) 108 | --pd.logInfo("p_end:"..p_end) 109 | if href then 110 | -- get avaliable data 111 | -- pd.logInfo("get title:"..title) 112 | -- pd.logInfo("get href:"..href) 113 | -- complete href 114 | href = "https://www.dogedoge.com" .. href 115 | -- get lanzou url 116 | _,__,lanzou_url = string.find(request({url=href,method="HEAD"}),"Location:.- (%S-)%s") 117 | pd.logInfo("lanzou url:"..lanzou_url) 118 | local single_data = request({url=lanzou_url}) 119 | --pd.logInfo("get lanzou url data:"..(data or "")) 120 | if single_data then 121 | local url_type 122 | if string.find(single_data,"filemoreajax") then 123 | url_type = "list" 124 | else 125 | url_type = "file" 126 | end 127 | --pd.logInfo("this url is "..url_type.." url") 128 | if not string.find(single_data,"输入密码") then 129 | -- the url do not need password 130 | local tooltip = string.gsub(title, "(.-)", "%1") 131 | title = string.gsub(title,"(.-)", "{c #ff0000}%1{/c}") 132 | table.insert(result,{["url"]=lanzou_url, ["title"]=title, ["description"]=lanzou_url, ["showhtml"] = "true", ["tooltip"] = tooltip, ["url_type"] = url_type}) 133 | end 134 | 135 | end 136 | start = p_end + 1 137 | else 138 | --pd.logInfo("this key words has not avaliable url:"..key) 139 | break 140 | end 141 | 142 | end 143 | return result 144 | 145 | end 146 | 147 | function onItemClick(item) 148 | -- get the lanzou_url about clike item 149 | local lanzou_url = item.url 150 | -- get url type 151 | local url_type = item.url_type 152 | local title 153 | -- get real download url 154 | local download_url 155 | if url_type == "list" then 156 | download_url,title = getList(lanzou_url) 157 | --pd.logInfo("get download_url:"..download_url) 158 | else 159 | download_url,title = getSingle(lanzou_url) 160 | --pd.logInfo("get single download_url:"..download_url) 161 | end 162 | 163 | 164 | 165 | -- if download url is nil, return error 166 | 167 | if download_url == nil then 168 | return ACT_ERROR,"不支持的链接" 169 | elseif pd.addUri then 170 | pd.addUri(download_url, {["out"] = title}) 171 | return ACT_MESSAGE, "已添加到下载列表" 172 | else 173 | --pd.logInfo("start to download:"..download_url) 174 | return ACT_DOWNLOAD, download_url 175 | end 176 | 177 | end 178 | 179 | function getSingle(url) 180 | local download_url,header,p_strat,p_end,fileName,fileId 181 | 182 | local data = request({url=url}) 183 | if string.find(data,"输入密码") then 184 | --pd.logInfo("this lanzou url need password"..url) 185 | return nil 186 | end 187 | 188 | if not data then 189 | pd.logInfo("this url can not get data"..url) 190 | return nil 191 | end 192 | -- get file name 193 | p_strat,p_end,fileName = string.find(data,'(.-) %- 蓝奏云') 194 | 195 | -- structure the request header 196 | header = {"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36","referer: ".. url} 197 | 198 | -- get file id 199 | p_strat,p_end,fileId = string.find(data,'[^-]