acfun:
{"code":"{\"getDanmaku\":\"var arr \\u003d [];\\r\\nfunction getDanmaku(pos){\\r\\n var json\\u003dJSON.parse(http.fetch(\\\"https://m.acfun.cn/rest/mobile-direct/new-danmaku/poll\\\", {\\r\\n headers: { cookie: \\\"_did\\u003dweb;\\\" },\\r\\n body: {\\r\\n videoId: video.id,\\r\\n lastFetchTime: pos.toString()\\r\\n }\\r\\n }).body().string());\\r\\n var list \\u003d json.added.map(v \\u003d\\u003e {\\r\\n return {\\r\\n time: v.position/1000,\\r\\n type: v.mode,\\r\\n textSize: v.size,\\r\\n color: v.color,\\r\\n content: v.body,\\r\\n timeStamp: v.danmakuId\\r\\n };\\r\\n });\\r\\n arr \\u003d arr.concat(list);\\r\\n if(list.length \\u003e 0) getDanmaku(json.fetchTime);\\r\\n}\\r\\ngetDanmaku(0);\\r\\nreturn arr;\\r\\n\",\"getDanmakuKey\":\"\",\"getVideo\":\"return webview(video.url, {\\r\\n \\\"User-Agent\\\": \\\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36\\\"\\r\\n},\\\"\\\", function(request){\\r\\n if(request.getUrl().toString().contains(\\\".m3u8\\\")) return http.makeRequest(request);\\r\\n else return null;\\r\\n});\",\"getVideoInfo\":\"var ep_sort \\u003d episode.sort + Number(line.extra||0);\\r\\nvar doc \\u003d http.fetch(\\\"https://m.acfun.cn/v/?ab\\u003d\\\"+line.id).body().string();\\r\\nvar data \\u003d JSON.parse(/videoInfo *?\\u003d ?(.*?);/.exec(doc)[1]);\\r\\nvar ep \\u003d data.group[(ep_sort - 1) | 0];\\r\\nreturn {\\r\\n site: \\\"acfun\\\",\\r\\n id: ep.videoId,\\r\\n url: \\\"http://www.acfun.cn/bangumi/aa\\\"+ep.bangumiId+\\\"_\\\"+36188+\\\"_\\\"+ep.itemId\\r\\n};\",\"search\":\"var url\\u003d\\\"http://search.aixifan.com/search?q\\u003d\\\";\\r\\nvar json \\u003d JSON.parse(http.fetch(url+key).body().string());\\r\\nreturn json.data.page.ai.map(it \\u003d\\u003e {\\r\\n return {\\r\\n site: \\\"acfun\\\",\\r\\n id: it.contentId,\\r\\n title: it.title\\r\\n };\\r\\n});\"}","color":-177061,"site":"acfun","title":"Acfun","type":"video"}
动漫之家
{"code":"{\"getImage\":\"\",\"getPages\":\"var doc \\u003d Jsoup.parse(http.fetch(episode.url).body().string())\\r\\nvar $ \\u003d () \\u003d\\u003e ({ ready: (a) \\u003d\\u003e a() })\\r\\nvar document \\u003d {}\\r\\nvar mReader \\u003d { initData: (a) \\u003d\\u003e { throw a } }\\r\\ntry { eval(doc.select(\\\"script\\\").toArray().map((v) \\u003d\\u003e v.html()).find((v) \\u003d\\u003e v.includes(\\\"mReader.initData\\\"))) }\\r\\ncatch(e){ data \\u003d e.page_url }\\r\\nreturn data.map(it \\u003d\\u003e ({\\r\\n image: {\\r\\n url: it,\\r\\n header: {\\r\\n referer: \\\"https://m.dmzj.com/\\\"\\r\\n }\\r\\n }\\r\\n}))\",\"getUpdate\":\"var getUpdate \\u003d async((page)\\u003d\\u003e{\\r\\n var url \\u003d \\\"https://m.dmzj.com/latest/\\\"+ page +\\\".json\\\";\\r\\n var json \\u003d JSON.parse(http.fetch(url).body().string());\\r\\n return json.map(it \\u003d\\u003e ({\\r\\n site: \\\"dmzj\\\",\\r\\n id: it.id,\\r\\n air: it.last_update_chapter_name\\r\\n }));\\r\\n});\\r\\nvar tasks \\u003d [];\\r\\nfor(var i \\u003d 0; i \\u003c 10; i++){\\r\\n tasks.push(getUpdate(i));\\r\\n}\\r\\nvar ret \\u003d [];\\r\\nfor(var i in tasks){\\r\\n try{ ret \\u003d ret.concat(await(tasks[i])) } catch(e){}\\r\\n}\\r\\nreturn ret;\",\"getEpisode\":\"var doc \\u003d Jsoup.parse(http.fetch(\\\"https://m.dmzj.com/info/\\\" + line.id + \\\".html\\\").body().string())\\r\\nvar $ \\u003d () \\u003d\\u003e {}\\r\\nvar initIntroData \\u003d (a) \\u003d\\u003e { throw a }\\r\\nvar data \\u003d []\\r\\ntry { eval(doc.select(\\\"script\\\").html()) } catch(e) {\\r\\ne.forEach((v) \\u003d\\u003e data \\u003d data.concat(v.data.map(it \\u003d\\u003e ({\\r\\n site: \\\"dmzj\\\",\\r\\n id: it.id,\\r\\n category: v.title,\\r\\n sort: it.chapter_order / 10,\\r\\n title: it.chapter_name,\\r\\n url: \\\"https://m.dmzj.com/view/\\\" + it.comic_id + \\\"/\\\" + it.id + \\\".html\\\"\\r\\n})).sort((a, b) \\u003d\\u003e a.sort - b.sort))) }\\r\\nreturn data\",\"header\":\"\",\"search\":\"var doc \\u003d Jsoup.parse(http.fetch(\\\"https://m.dmzj.com/search/\\\" + key + \\\".html\\\").body().string())\\r\\nvar $ \\u003d () \\u003d\\u003e {}\\r\\ntry { eval(doc.select(\\\"script\\\").html()) } catch(e) {}\\r\\nreturn serchArry.map(it \\u003d\\u003e ({\\r\\n site: \\\"dmzj\\\",\\r\\n id: it.id,\\r\\n title: it.name\\r\\n}))\"}","color":-15103005,"site":"dmzj","title":"动漫之家","type":"book"}
轻小说文库(需要把账号密码改成自己的):
{"code":"{\"getImage\":\"\",\"getPages\":\"var doc \\u003d Jsoup.parse(http.inflate(http.fetch(episode.url).body().bytes(), \\\"gb2312\\\"))\\r\\nvar content \\u003d doc.selectFirst(\\\"#content\\\");\\r\\ncontent.select(\\\"#contentdp\\\").remove()\\r\\nvar novel \\u003d content.wholeText()\\r\\nnovel \\u003d novel.trim() \\u0026\\u0026 [{\\r\\n content: novel\\r\\n}] || [];\\r\\nreturn novel.concat(content.select(\\\"img\\\").toArray().map((it, index) \\u003d\\u003e ({\\r\\n image: {\\r\\n url: it.attr(\\\"src\\\"),\\r\\n header: {\\r\\n referer: \\\"\\\"\\r\\n }\\r\\n }\\r\\n})))\",\"getUpdate\":\"\",\"getEpisode\":\"var url \\u003d \\\"https://www.wenku8.net/novel/\\\" + parseInt(line.id / 1000) + \\\"/\\\" + line.id + \\\"/\\\"\\r\\nvar doc \\u003d Jsoup.parse(http.inflate(http.fetch(url + \\\"index.htm\\\").body().bytes(), \\\"gb2312\\\"))\\r\\nvar result \\u003d []\\r\\nvar cat \\u003d \\\"\\\"\\r\\nvar index \\u003d 0\\r\\ndoc.select(\\\"td\\\").toArray().forEach((v) \\u003d\\u003e {\\r\\n if(v.hasClass(\\\"vcss\\\")){\\r\\n cat \\u003d v.text()\\r\\n index \\u003d 0\\r\\n }\\r\\n var a \\u003d v.selectFirst(\\\"a\\\")\\r\\n if(a) result.push({\\r\\n site: \\\"wenku8\\\",\\r\\n id: a.attr(\\\"href\\\"),\\r\\n sort: index,\\r\\n category: cat,\\r\\n title: a.text(),\\r\\n url: url + a.attr(\\\"href\\\")\\r\\n })\\r\\n index++;\\r\\n})\\r\\nreturn result\",\"header\":\"\",\"open\":\"\",\"search\":\"var cookie \\u003d App.load(\\\"wenku8_cookie\\\")\\r\\nif(!cookie) {\\r\\n var rsp \\u003d http.fetch(\\\"https://www.wenku8.net/login.php?do\\u003dsubmit\\\", {\\r\\n body: {\\r\\n username: \\\"\\\",\\r\\n password: \\\"\\\",\\r\\n usecookie: \\\"315360000\\\",\\r\\n action: \\\"login\\\",\\r\\n submit: \\\" 登 录 \\\"\\r\\n }\\r\\n })\\r\\n cookie \\u003d rsp.headers(\\\"set-cookie\\\").toArray().map((v) \\u003d\\u003e v.split(\\u0027;\\u0027)[0]).join(\\\";\\\")\\r\\n print(cookie)\\r\\n App.dump(\\\"wenku8_cookie\\\", cookie)\\r\\n}\\r\\n\\r\\nvar rsp \\u003d http.fetch(\\\"https://www.wenku8.net/modules/article/search.php?searchtype\\u003darticlename\\u0026searchkey\\u003d\\\" + java.net.URLEncoder.encode(key, \\\"gb2312\\\"), {\\r\\n headers: { cookie: cookie }\\r\\n})\\r\\nvar doc \\u003d Jsoup.parse(http.inflate(rsp.body().bytes(), \\\"gb2312\\\"));\\r\\nif(rsp.priorResponse()) return [{\\r\\n site: \\\"wenku8\\\",\\r\\n id: /book\\\\/(\\\\d+).htm/.exec(rsp.priorResponse().headers().get(\\\"Location\\\"))[1],\\r\\n title: doc.selectFirst(\\\"#content b\\\").text()\\r\\n}]\\r\\nreturn doc.select(\\\"table.grid b \\u003e a\\\").toArray().map(it \\u003d\\u003e {\\r\\n var id \\u003d /book\\\\/(\\\\d+).htm/.exec(it.attr(\\\"href\\\"))[1];\\r\\n return {\\r\\n site: \\\"wenku8\\\",\\r\\n id: id,\\r\\n title: it.text()\\r\\n }\\r\\n})\"}","color":-9070617,"site":"wenku8","title":"轻小说文库","type":"book"}
网易云音乐
{"code":"{\"getLyric\":\"var json \\u003d JSON.parse(fetch(\\\"https://music.163.com/weapi/song/lyric?csrf_token\\u003d\\\", {\\r\\n id: episode.id,\\r\\n tv: -1,\\r\\n lv: -1,\\r\\n csrf_token: \\\"\\\"\\r\\n}).body().string())\\r\\nreturn {\\r\\n lrc: json.lrc.lyric,\\r\\n tlyric: json.tlyric \\u0026\\u0026 json.tlyric.lyric\\r\\n}\",\"getMusic\":\"var json \\u003d JSON.parse(fetch(\\\"http://music.163.com/weapi/song/enhance/player/url?csrf_token\\u003d\\\", {\\r\\n ids: [episode.id],\\r\\n br: 320000,\\r\\n csrf_token: \\\"\\\"\\r\\n}).body().string())\\r\\nreturn {\\r\\n url: json.data[0].url\\r\\n}\",\"getEpisode\":\"var json \\u003d JSON.parse(fetch(\\\"http://music.163.com/weapi/v1/album/\\\" + line.id + \\\"?csrf_token\\u003d\\\", {\\r\\n album: line.id,\\r\\n csrf_token: \\\"\\\"\\r\\n}).body().string())\\r\\nreturn json.songs.map((it, index) \\u003d\\u003e ({\\r\\n site: \\\"netease\\\",\\r\\n id: it.id,\\r\\n sort: index + 1,\\r\\n title: it.name,\\r\\n url: \\\"https://music.163.com/#/song?id\\u003d\\\" + it.id\\r\\n}))\",\"header\":\"function randomKey(len){\\r\\n var s \\u003d \\u00270123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\\u0027;\\r\\n var r \\u003d \\\"\\\"\\r\\n for(var i\\u003d0; i\\u003clen;i++) r +\\u003d s.charAt(Math.random() * s.length | 0);\\r\\n return r;\\r\\n}\\r\\n\\r\\nfunction getParams(query) {\\r\\n query \\u003d JSON.stringify(query)\\r\\n var nonce \\u003d CryptoJS.enc.Utf8.parse(\\u00270CoJUm6Qyw8W8jud\\u0027);\\r\\n var iv \\u003d CryptoJS.enc.Utf8.parse(\\u00270102030405060708\\u0027);\\r\\n var modulus \\u003d \\u002700e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7\\u0027;\\r\\n var pubKey \\u003d \\u0027010001\\u0027;\\r\\n var genKey \\u003d randomKey(16);\\r\\n var aes \\u003d CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(query), nonce, {\\r\\n iv: iv,\\r\\n mode: CryptoJS.mode.CBC\\r\\n }).toString()\\r\\n var params \\u003d CryptoJS.AES.encrypt(aes, CryptoJS.enc.Utf8.parse(genKey), {\\r\\n iv: iv,\\r\\n mode: CryptoJS.mode.CBC\\r\\n }).toString()\\r\\n var integer \\u003d new java.math.BigInteger(genKey.split(\\u0027\\u0027).reverse().map(c \\u003d\\u003e {\\r\\n return c.charCodeAt(0).toString(16)\\r\\n }).join(\\u0027\\u0027), 16)\\r\\n var pubkeyInt \\u003d new java.math.BigInteger(pubKey, 16);\\r\\n var modulusInt \\u003d new java.math.BigInteger(modulus, 16);\\r\\n var encSecKey \\u003d integer.modPow(pubkeyInt, modulusInt).toString(16)\\r\\n encSecKey \\u003d (new Array(256).join(\\u00270\\u0027) + encSecKey).slice(-256)\\r\\n return {\\r\\n params: params,\\r\\n encSecKey: encSecKey\\r\\n }\\r\\n}\\r\\n\\r\\nfunction fetch(url, body) {\\r\\n return http.fetch(url, {\\r\\n headers: {\\r\\n referer: \\\"http://music.163.com\\\",\\r\\n cookie: \\\"os\\u003duwp; osver\\u003d10.0.10586.318; appver\\u003d1.2.1;\\\"\\r\\n },\\r\\n body: getParams(body)\\r\\n });\\r\\n}\\r\\n\",\"open\":\"\",\"search\":\"var json \\u003d JSON.parse(fetch(\\\"http://music.163.com/weapi/cloudsearch/get/web?csrf_token\\u003d\\\", {\\r\\n s: key,\\r\\n limit: 10,\\r\\n offset: 0,\\r\\n total: true,\\r\\n csrf_token: \\\"\\\",\\r\\n type: 10\\r\\n}).body().string())\\r\\nreturn json.result.albums.map(it \\u003d\\u003e ({\\r\\n site: \\\"netease\\\",\\r\\n id: it.id,\\r\\n title: it.name\\r\\n}))\"}","color":-1703898,"site":"netease","title":"网易云音乐","type":"music"}