0) {
+ const result = await getFinalVideo(flag, parseUrls, id);
+ if (result !== null) {
+ return JSON.stringify(result);
+ }
+ }
+
+ if (isVideo(id)) {
+ const result = {
+ parse: 0,
+ playUrl: "",
+ url: id
+ };
+ return JSON.stringify(result);
+ } else {
+ const result = {
+ parse: 1,
+ jx: "1",
+ url: id
+ };
+ return JSON.stringify(result);
+ }
+ } catch (e) {
+ // Handle any error here
+ }
+ return "";
+}
+
+async function search(key, quick) {
+ try {
+ const apiUrl = host;
+ const url = getSearchUrl(apiUrl, encodeURIComponent(key));
+ const json = await request(url, getHeaders(url));
+ const obj = JSON.parse(json);
+ let jsonArray = null;
+ const videos = [];
+
+ if (obj.list instanceof Array) {
+ jsonArray = obj.list;
+ } else if (obj.data instanceof Object && obj.data.list instanceof Array) {
+ jsonArray = obj.data.list;
+ } else if (obj.data instanceof Array) {
+ jsonArray = obj.data;
+ }
+
+ if (jsonArray !== null) {
+ for (const vObj of jsonArray) {
+ if (vObj.vod_id) {
+ const v = {
+ vod_id: vObj.vod_id,
+ vod_name: vObj.vod_name,
+ vod_pic: vObj.vod_pic,
+ vod_remarks: vObj.vod_remarks
+ };
+ videos.push(v);
+ } else {
+ const v = {
+ vod_id: vObj.nextlink,
+ vod_name: vObj.title,
+ vod_pic: vObj.pic,
+ vod_remarks: vObj.state
+ };
+ videos.push(v);
+ }
+ }
+ }
+
+ const result = { list: videos };
+ return JSON.stringify(result);
+ } catch (error) {
+
+ }
+ return "";
+}
+
+
+
+async function getFinalVideo(flag, parseUrls, url) {
+ let htmlPlayUrl = "";
+ for (const parseUrl of parseUrls) {
+ if (parseUrl === "" || parseUrl === "null") {
+ continue;
+ }
+ const playUrl = parseUrl + url;
+ const content = await request(playUrl, null, 10000); // 10秒请求,能更好过滤webjx
+ let tryJson = null;
+ try {
+ tryJson = jsonParse(url, content);
+ } catch (error) { }
+
+ if (tryJson !== null && tryJson.hasOwnProperty("url") && tryJson.hasOwnProperty("header")) {
+ tryJson.header = JSON.stringify(tryJson.header);
+ return tryJson;
+ }
+
+ if (content.includes(" 0) {
+ headers["User-Agent"] = " " + ua;
+ }
+
+ let referer = "";
+ if (jsonPlayData.hasOwnProperty("referer")) {
+ referer = jsonPlayData.referer;
+ } else if (jsonPlayData.hasOwnProperty("Referer")) {
+ referer = jsonPlayData.Referer;
+ }
+ if (referer.trim().length > 0) {
+ headers["Referer"] = " " + referer;
+ }
+
+ headers = fixJsonVodHeader(headers, input, url);
+
+ const taskResult = {
+ header: headers,
+ url: url,
+ parse: "0"
+ };
+
+ return taskResult;
+ } catch (error) {
+
+ }
+ return null;
+}
+
+function isVip(url) {
+ try {
+ let isVip = false;
+ const host = new URL(url).hostname;
+ const vipWebsites = ["iqiyi.com", "v.qq.com", "youku.com", "le.com", "tudou.com", "mgtv.com", "sohu.com", "acfun.cn", "bilibili.com", "baofeng.com", "pptv.com"];
+ for (let b = 0; b < vipWebsites.length; b++) {
+ if (host.includes(vipWebsites[b])) {
+ if (vipWebsites[b] === "iqiyi.com") {
+ // 爱奇艺需要特殊处理
+ if (url.includes("iqiyi.com/a_") || url.includes("iqiyi.com/w_") || url.includes("iqiyi.com/v_")) {
+ isVip = true;
+ break;
+ }
+ } else {
+ isVip = true;
+ break;
+ }
+ }
+ }
+ return isVip;
+ } catch (e) {
+ }
+ return false;
+}
+
+
+function isBlackVodUrl(input, url) {
+ return url.includes("973973.xyz") || url.includes(".fit:");
+}
+
+
+function fixJsonVodHeader(headers, input, url) {
+ if (headers === null) {
+ headers = {};
+ }
+
+ if (input.includes("www.mgtv.com")) {
+ headers["Referer"] = " ";
+ headers["User-Agent"] = " Mozilla/5.0";
+ } else if (url.includes("titan.mgtv")) {
+ headers["Referer"] = " ";
+ headers["User-Agent"] = " Mozilla/5.0";
+ } else if (input.includes("bilibili")) {
+ headers["Referer"] = " https://www.bilibili.com/";
+ headers["User-Agent"] = " " + Misc.UaWinChrome;
+ }
+
+ return headers;
+}
+
+
+
+
+
+const snifferMatch = /http((?!http).){26,}?\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg)\?.*|http((?!http).){26,}\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg)|http((?!http).){26,}\/m3u8\?pt=m3u8.*|http((?!http).)*?default\.ixigua\.com\/.*|http((?!http).)*?cdn-tos[^\?]*|http((?!http).)*?\/obj\/tos[^\?]*|http.*?\/player\/m3u8play\.php\?url=.*|http.*?\/player\/.*?[pP]lay\.php\?url=.*|http.*?\/playlist\/m3u8\/\?vid=.*|http.*?\.php\?type=m3u8&.*|http.*?\/download.aspx\?.*|http.*?\/api\/up_api.php\?.*|https.*?\.66yk\.cn.*|http((?!http).)*?netease\.com\/file\/.*/;
+
+function isVideoFormat(url) {
+ if (snifferMatch.test(url)) {
+ return !url.includes("cdn-tos") || !url.includes(".js");
+ }
+ return false;
+
+}
+
+function isVideo(url) {
+ if (!url.includes(".mp4") || !url.includes(".m3u8")) {
+ return true;
+ }
+ return false;
+}
+
+
+
+
+function UA(url) {
+ if (url.includes(".vod")) {
+ return "okhttp/4.1.0";
+ }
+}
+
+function getCateUrl(URL) {
+ if (URL.includes("api.php/app") || URL.includes("xgapp")) {
+ return URL + "nav?token=";
+ } else if (URL.includes(".vod")) {
+ return URL + "/types";
+ } else {
+ return "";
+ }
+}
+
+function getPlayUrlPrefix(URL) {
+ if (URL.includes("api.php/app") || URL.includes("xgapp")) {
+ return URL + "video_detail?id=";
+ } else if (URL.includes(".vod")) {
+ return URL + "/detail?vod_id=";
+ } else {
+ return "";
+ }
+}
+
+function getRecommendUrl(URL) {
+ if (URL.includes("api.php/app") || URL.includes("xgapp")) {
+ return URL + "index_video?token=";
+ } else if (URL.includes(".vod")) {
+ return URL + "/vodPhbAll";
+ } else {
+ return "";
+ }
+}
+
+function getFilterTypes(URL, typeExtend) {
+ let str = "";
+
+ if (typeExtend !== null) {
+ for (let key in typeExtend) {
+ if (key === "class" || key === "area" || key === "lang" || key === "year") {
+ try {
+
+ str += "筛选" + key + "+全部=+" + typeExtend[key].replace(/,/g, "+") + "\n";
+ } catch (e) { }
+ }
+ }
+ }
+
+ if (URL.includes(".vod")) {
+ str += "\n" + "排序+全部=+最新=time+最热=hits+评分=score";
+ } else if (URL.includes("api.php/app") || URL.includes("xgapp")) {
+ // Do nothing, leave the string as it is.
+ } else {
+ str = "分类+全部=+电影=movie+连续剧=tvplay+综艺=tvshow+动漫=comic+4K=movie_4k+体育=tiyu\n筛选class+全部=+喜剧+爱情+恐怖+动作+科幻+剧情+战争+警匪+犯罪+动画+奇幻+武侠+冒险+枪战+恐怖+悬疑+惊悚+经典+青春+文艺+微电影+古装+历史+运动+农村+惊悚+惊悚+伦理+情色+福利+三级+儿童+网络电影\n筛选area+全部=+大陆+香港+台湾+美国+英国+法国+日本+韩国+德国+泰国+印度+西班牙+加拿大+其他\n筛选year+全部=+2023+2022+2021+2020+2019+2018+2017+2016+2015+2014+2013+2012+2011+2010+2009+2008+2007+2006+2005+2004+2003+2002+2001+2000";
+ }
+
+ return str;
+}
+
+function getCateFilterUrlSuffix(URL) {
+ if (URL.includes("api.php/app") || URL.includes("xgapp")) {
+ return "&class=筛选class&area=筛选area&lang=筛选lang&year=筛选year&limit=18&pg=#PN#";
+ } else if (URL.includes(".vod")) {
+ return "&class=筛选class&area=筛选area&lang=筛选lang&year=筛选year&by=排序&limit=18&page=#PN#";
+ } else {
+ return "&page=#PN#&area=筛选area&type=筛选class&start=筛选year";
+ }
+}
+
+function getCateFilterUrlPrefix(URL) {
+ if (URL.includes("api.php/app") || URL.includes("xgapp")) {
+ return URL + "video?tid=";
+ } else if (URL.includes(".vod")) {
+ return URL + "?type=";
+ } else {
+ return URL + "?ac=list&class=";
+ }
+}
+
+function isBan(key) {
+ return key === "伦理" || key === "情色" || key === "福利";
+}
+
+function getSearchUrl(URL, KEY) {
+ if (URL.includes(".vod")) {
+ return URL + "?wd=" + KEY + "&page=";
+ } else if (URL.includes("api.php/app") || URL.includes("xgapp")) {
+ return URL + "search?text=" + KEY + "&pg=";
+ } else if (urlPattern1.test(URL)) {
+ return URL + "?ac=list&zm=" + KEY + "&page=";
+ }
+ return "";
+}
+
+function findJsonArray(obj, match, result) {
+ Object.keys(obj).forEach((k) => {
+ try {
+ const o = obj[k];
+ if (k === match && Array.isArray(o)) {
+ result.push(o);
+ }
+ if (typeof o === "object" && o !== null) {
+ if (Array.isArray(o)) {
+ o.forEach((item) => {
+ if (typeof item === "object" && item !== null) {
+ findJsonArray(item, match, result);
+ }
+ });
+ } else {
+ findJsonArray(o, match, result);
+ }
+ }
+ } catch (e) {
+ }
+ });
+}
+
+function jsonArr2Str(array) {
+ const strings = [];
+ for (let i = 0; i < array.length; i++) {
+ try {
+ strings.push(array[i]);
+ } catch (e) {
+ }
+ }
+ return strings.join(",");
+}
+
+function getHeaders(URL) {
+ const headers = {};
+ headers["User-Agent"] = UA(URL);
+ return headers;
+}
+
+function isJsonString(str) {
+ try {
+ JSON.parse(str);
+ } catch (e) {
+ return false;
+ }
+ return true;
+}
+
+
+
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
+
diff --git a/cat/js/appysv2.js b/cat/js/appysv2.js
new file mode 100644
index 0000000..e8791b6
--- /dev/null
+++ b/cat/js/appysv2.js
@@ -0,0 +1 @@
+//bbQ0FUT1CxAhRhcHB5c3YyLmpzGC4vbGliL2NhdC5qcxwuL2xpYi91dGlscy5qcxxfX2pzRXZhbFJldHVybgJfClV0aWxzDnNpdGVLZXkQc2l0ZVR5cGUQZXh0SW5mb3MIaW5pdBJnZXRTdHJpbmcIaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFpbAhwbGF5DHNlYXJjaBRnZXRIZWFkZXJzCmlzQmFuGGdldFNlYXJjaFVybBZ1cmxQYXR0ZXJuMRZ1cmxQYXR0ZXJuMhhwYXJzZVBhdHRlcm4acGFyc2VQYXR0ZXJuMRpwYXJzZVBhdHRlcm4yImh0bWxWaWRlb0tleU1hdGNoBFVBFGdldENhdGVVcmwsZ2V0Q2F0ZUZpbHRlclVybFByZWZpeCxnZXRDYXRlRmlsdGVyVXJsU3VmZml4HGdldEZpbHRlclR5cGVzHmdldFJlY29tbWVuZFVybCBnZXRQbGF5VXJsUHJlZml4FnBhcnNlVXJsTWFwFmdlblBsYXlMaXN0GmdldEZpbmFsVmlkZW8SZ2V0QXBpVXJsCGRlc2MgYXBpXC5waHAvLio/L3ZvZCJhcGlcLnBocC8uKz9cLnZvZBAvLitcPy4rPSwuKih1cmx8dnx2aWR8cGhwXD9pZCk9HGh0dHBzPzovL1teL10qFHBsYXllcj1uZXcePGRpdiBpZD0idmlkZW8iLDxkaXYgaWQ9IlteIl0qP3BsYXllciINLwAvAMaJkZj+lKVjGkhsc0pzUGxheWVyXCg2PGlmcmFtZVtcc1xTXSo/c3JjPSJbXiJdKz8iNDx2aWRlb1tcc1xTXSo/c3JjPSJbXiJdKz8iBmNmZwZleHQIc2tleQpzdHlwZQYjIyMGdXJsDGhlYWRlcgZyZXMGcmVxDmhlYWRlcnMOY29udGVudAxmaWx0ZXISanNvbkFycmF5CGpzb24Gb2JqEmZpbHRlclN0cg5jbGFzc2VzAmkEa3YMbmV3Q2xzDHJlc3VsdBRjbGFzc2VzQXJyCGpPYmoQdHlwZU5hbWUMdHlwZUlkFHR5cGVFeHRlbmQOZmlsdGVycxJmaWx0ZXJBcnICawJsDm9uZUxpbmUIdHlwZQp0eXBlTghqT25lEHZhbHVlQXJyAmoGa3ZvBHNwAm4OaXNFbXB0eQpwYXJzZRxoYXNPd25Qcm9wZXJ0eQhsaXN0DmlzQXJyYXkIZGF0YQIKBFwrCHRyaW0CPRJ0eXBlX25hbWUOdHlwZV9pZAhwdXNoFnR5cGVfZXh0ZW5kAisOaW5kZXhPZgVbewmQDnJlcGxhY2UFe3yLVwhhcmVhBTBXOlMIbGFuZwXtiwCKCHllYXIFdF79TgZrZXkCdhJzdWJzdHJpbmcSc3RyaW5naWZ5BHt9BnRpZARwZwxleHRlbmQMYXBpVXJsDnRvdGFsUGcKbGltaXQKdG90YWwMdmlkZW9zCHZPYmoII1BOIw9bewmQYwBsAGEAcwBzAA1bewmQYQByAGUAYQANW3sJkGwAYQBuAGcADVt7CZB5AGUAYQByAAWSY49eEnRvdGFscGFnZRJwYWdlY291bnQKZmxvb3IMdm9kX2lkEHZvZF9uYW1lDnZvZF9waWMWdm9kX3JlbWFya3MQbmV4dGxpbmsKdGl0bGUGcGljCnN0YXRlCHBhZ2UEaWQGdm9kAmUOY29uc29sZQpkZWJ1ZwhmbGFnEnBhcnNlVXJscxppc1ZpZGVvRm9ybWF0BGp4BHdkCnF1aWNrJGVuY29kZVVSSUNvbXBvbmVudAZVUkwUVXNlci1BZ2VudAUmTwZ0BcVgcoIFj3kpUgZLRVkILnZvZBhpb3Blbnl1bi5jb20SL2xpc3Q/d2Q9DCZwYWdlPQg/d2Q9FmFwaS5waHAvYXBwCnhnYXBwGHNlYXJjaD90ZXh0PQgmcGc9CHRlc3QSZXNlbGxhdXRvFjEuMTQuNjMuMTAxCHpqeXMGZGNkCGx4dWUSd2VldGFpLmNuEmhhb2thbmp1MQpmaXQ6OBB6amoubGlmZRBsb3ZlOTk4OQg4ZDhxDmxrLnB4dW4IaGd5eAo1MjF4NQpseHl5eQwwODE4dHYMZGl5b3VpDmRpbGlrdHYKcHB6aHUSYWl0ZXN1Y2FpCnp6LmNpDGNoeGpvbg53YXRjaG1pCnZpcGJwCGJodHYKeGZ5a2wSP2FjPWxpc3QmBndkPQZ6bT0OZnJlZWthbiZEYXJ0LzIuMTQgKGRhcnQ6aW8pBnpzYghma3hzCHhheXMIeGN5cwhzenlzCGR4eXMIeXR5cwhxbnlzJkRhcnQvMi4xNSAoZGFydDppbykYb2todHRwLzQuMS4wGERhbHZpay8yLjEuMBRuYXY/dG9rZW49FC9saXN0P3R5cGUML3R5cGVzEGRpamlheGlhSGh0dHA6Ly93d3cuZGlqaWF4aWEuY29tL2FwaS5waHAvYXBwLxR2aWRlbz90aWQ9EGlvcGVueXVuFi9saXN0P3R5cGU9DD90eXBlPR4/YWM9bGlzdCZjbGFzcz2HASYAYwBsAGEAcwBzAD0AW3sJkGMAbABhAHMAcwAmAGEAcgBlAGEAPQBbewmQYQByAGUAYQAmAGwAYQBuAGcAPQBbewmQbABhAG4AZwAmAHkAZQBhAHIAPQBbewmQeQBlAGEAcgAmAGwAaQBtAGkAdAA9ADEAOAAmAHAAZwA9ACMAUABOACMAlwEmAGMAbABhAHMAcwA9AFt7CZBjAGwAYQBzAHMAJgBhAHIAZQBhAD0AW3sJkGEAcgBlAGEAJgBsAGEAbgBnAD0AW3sJkGwAYQBuAGcAJgB5AGUAYQByAD0AW3sJkHkAZQBhAHIAJgBiAHkAPQCSY49eJgBsAGkAbQBpAHQAPQAxADgAJgBwAGEAZwBlAD0AIwBQAE4AIwBhJgBwAGEAZwBlAD0AIwBQAE4AIwAmAGEAcgBlAGEAPQBbewmQYQByAGUAYQAmAHQAeQBwAGUAPQBbewmQYwBsAGEAcwBzACYAcwB0AGEAcgB0AD0AW3sJkHkAZQBhAHIABnN0cgsrAGhR6JA9ACsAFHJlcGxhY2VBbGwCLD+SY49eKwBoUeiQPQArAABnsGU9AHQAaQBtAGUAKwAAZ+1wPQBoAGkAdABzACsAxIsGUj0AcwBjAG8AcgBlANkFBlJ7fCsAaFHokD0AKwA1dXFfPQBtAG8AdgBpAGUAKwDej+1+Z1I9AHQAdgBwAGwAYQB5ACsA/H56gj0AdAB2AHMAaABvAHcAKwCoUitvPQBjAG8AbQBpAGMAKwA0AEsAPQBtAG8AdgBpAGUAXwA0AGsAKwBTT7KAPQB0AGkAeQB1AAoAW3sJkGMAbABhAHMAcwArAGhR6JA9ACsAnFVnUisAMXLFYCsAUGAWYCsAqFJcTysA0Xl7XisAZ1LFYCsAGGKJTisAZosqUysAr3JqfysAqFI7dSsAR1l7XisAZmugTysAklFplisAqmcYYisAUGAWYCsArGCRdSsAymCaYCsAz354USsAUpclZisAh2V6gisArl81dXFfKwDkU8WIKwCGU/JTKwDQj6hSKwCcUVFnKwDKYJpgKwDKYJpgKwAmTwZ0KwDFYHKCKwCPeSlSKwAJTqd+KwA/UeV6KwBRf9x+NXVxXwoAW3sJkGEAcgBlAGEAKwBoUeiQPQArACdZRpYrAJmZL24rAPBTfm4rAI5//VYrAPGC/VYrANVs/VYrAOVlLGcrAOmX/VYrALdf/VYrAPBs/VYrAHBTpl4rAH+J7XNZcisAoFL/YidZKwB2UdZOCgBbewmQeQBlAGEAcgArAGhR6JA9ADIAMAAyADMAKwAyADAAMgAyACsAMgAwADIAMQArADIAMAAyADAAKwAyADAAMQA5ACsAMgAwADEAOAArADIAMAAxADcAKwAyADAAMQA2ACsAMgAwADEANQArADIAMAAxADQAKwAyADAAMQAzACsAMgAwADEAMgArADIAMAAxADEAKwAyADAAMQAwACsAMgAwADAAOQArADIAMAAwADgAKwAyADAAMAA3ACsAMgAwADAANgArADIAMAAwADUAKwAyADAAMAA0ACsAMgAwADAAMwArADIAMAAwADIAKwAyADAAMAAxACsAMgAwADAAMAAkaW5kZXhfdmlkZW8/dG9rZW49FC92b2RQaGJBbGxKaHR0cHM6Ly93d3cuZGlqaWF4aWEuY29tL2FwaS5waHAvYXBwLyB2aWRlb19kZXRhaWw/aWQ9DDEwMTBkeUJodHRwOi8vd3d3LjEwMTBkeS5jYy9hcGkucGhwL2FwcC8iL2RldGFpbElEP3ZvZF9pZD0eL2RldGFpbD92b2RfaWQ9BnZpZBBwbGF5VXJscxJwbGF5RmxhZ3Mgdm9kVXJsV2l0aFBsYXllcg5wbGF5VXJsCHB1cmwMcGFyc2UxDHBhcnNlcwxwYXJzZTIObWF0Y2hlchBtYXRjaGVyMRBwbGF5TGlzdBhwbGF5TGlzdEtleXMYcGxheUxpc3RVcmxzCHVybHMMdXJsT2JqCnNwSWR4CHBVcmwYYXBpLnBocC9hcHAvEnZvZF9jbGFzcxB2b2RfeWVhchB2b2RfYXJlYRJ2b2RfYWN0b3IYdm9kX2RpcmVjdG9yFnZvZF9jb250ZW50JnZvZF91cmxfd2l0aF9wbGF5ZXIIY29kZRJwYXJzZV9hcGkQaW5jbHVkZXMadm9kX3BsYXlfZnJvbQYkJCQYdm9kX3BsYXlfdXJsEHZvZF9pbmZvGnZvZF9wbGF5X2xpc3QWcGx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
\ No newline at end of file
diff --git a/cat/js/baozimh_open.js b/cat/js/baozimh_open.js
new file mode 100644
index 0000000..bfc7d6f
--- /dev/null
+++ b/cat/js/baozimh_open.js
@@ -0,0 +1,170 @@
+import { Crypto, _, load } from './lib/cat.js';
+
+let key = 'baozimh';
+let url = 'https://cn.baozimh.com';
+const img = 'https://static-tw.baozimh.com/cover/';
+
+const img2 = '?w=285&h=375&q=100';
+
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36';
+
+async function request(reqUrl) {
+ let resp = await req(reqUrl, {
+ headers: {
+ 'User-Agent': UA,
+ },
+ });
+ return resp.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ var html = await request(url + '/classify');
+ const $ = load(html);
+
+ let filterObj = { c1: [] };
+
+ for (const nav of $('div.classify div.nav')) {
+ const as = $(nav).find('a.item');
+ const checkUrl = decodeURIComponent(as[1].attribs.href);
+ const reg = /type=(.*)®ion=(.*)&state=(.*)&filter=(.*)/;
+ const matchs = checkUrl.match(reg);
+ let typeKey = '';
+ let typeIdx = 1;
+ if (matchs[1] != 'all') {
+ typeKey = 'type';
+ typeIdx = 1;
+ } else if (matchs[2] != 'all') {
+ typeKey = 'region';
+ typeIdx = 2;
+ } else if (matchs[3] != 'all') {
+ typeKey = 'state';
+ typeIdx = 3;
+ } else if (matchs[4] != '*') {
+ typeKey = 'filter';
+ typeIdx = 4;
+ }
+ const tvals = [];
+ for (const a of as) {
+ tvals.push({
+ n: $(a).text().trim(),
+ v: decodeURIComponent(a.attribs.href).match(reg)[typeIdx],
+ });
+ }
+ filterObj['c1'].push({
+ key: typeKey,
+ name: '',
+ wrap: typeIdx == 1 ? 1 : 0,
+ init: typeIdx == 4 ? '*' : 'all',
+ value: tvals,
+ });
+ }
+
+ return {
+ class: [{ type_name: 'all', type_id: 'c1' }],
+ filters: filterObj,
+ };
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg == 0) pg = 1;
+ let link = `${url}/api/bzmhq/amp_comic_list?type=${extend.type || 'all'}®ion=${extend.region || 'all'}&state=${extend.state || 'all'}&filter=${extend.filter || '*'}`;
+ link += '&page=' + pg + '&limit=36&language=cn';
+ var html = await request(link);
+ const data = JSON.parse(html);
+ let books = [];
+ for (const book of data.items) {
+ books.push({
+ book_id: book.comic_id,
+ book_name: book.name,
+ book_pic: img + book.topic_img + img2,
+ book_remarks: book.author || '',
+ });
+ }
+ return {
+ page: pg,
+ pagecount: books.length == 36 ? pg + 1 : pg,
+ list: books,
+ };
+}
+
+async function detail(id) {
+ var html = await request(`${url}/comic/${id}`);
+ const $ = load(html);
+ let book = {
+ book_director: $('[data-hid$=og:novel:author]')[0].attribs.content || '',
+ book_content: $('[data-hid$=og:description]')[0].attribs.content || '',
+ };
+
+ const formatUrl = (a) => {
+ return $(a).text().replace(/\$|#/g, ' ').trim() + '$' + decodeURIComponent(a.attribs.href);
+ };
+
+ let urls = _.map($('div#chapter-items a.comics-chapters__item'), formatUrl);
+ urls.push(..._.map($('div#chapters_other_list a.comics-chapters__item'), formatUrl));
+ if (urls.length == 0) {
+ urls = _.reverse(_.map($('div.pure-g a.comics-chapters__item'), formatUrl));
+ }
+ book.volumes = '默認';
+ book.urls = urls.join('#');
+
+ return {
+ list: [book],
+ };
+}
+
+async function play(flag, id, flags) {
+ try {
+ var html = await request(url + id);
+ const $ = load(html);
+
+ var content = [];
+ for (const img of $('amp-img')) {
+ content.push(img.attribs.src);
+ }
+ return {
+ content: content,
+ };
+ } catch (e) {}
+ return {
+ content: [],
+ };
+}
+
+async function search(wd, quick, pg) {
+ var html = await request(`${url}/search?q=${wd}`);
+ const $ = load(html);
+ const books = [];
+ for (const a of $('div.classify-items a.comics-card__poster')) {
+ books.push({
+ book_id: a.attribs.href.replace('/comic/', ''),
+ book_name: a.attribs.title,
+ book_pic: $(a).find('amp-img:first')[0].attribs.src,
+ book_remarks: '',
+ });
+ }
+ return {
+ page: 1,
+ pagecount: 1,
+ list: books,
+ };
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
diff --git a/cat/js/bb_douban_open.js b/cat/js/bb_douban_open.js
new file mode 100644
index 0000000..8169a20
--- /dev/null
+++ b/cat/js/bb_douban_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1CxBBxkb3ViYW5fb3Blbi5qcyxhc3NldHM6Ly9qcy9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuDENyeXB0bwpkYXlqcwxqaW5qYTIGVXJpAl8OXzB4NGRjMw5fMHg0ODg0El8weDQwYjM4MxJfMHg1Y2UxODkSXzB4M2I5ZWFmEl8weDFmMjM4YhJfMHgyMjVjNTISXzB4MzMzOGZjEl8weDE2N2Y3ZBJfMHg1N2FmNGISXzB4MWRiYTZmEl8weDFkNTI4ZhJfMHgyZDllN2YSXzB4NDIyNjMyEl8weDFlOTYxMxJfMHg1MWIwNmESXzB4NTAwODExEl8weDU1ZTc4MxJfMHgxZTVmY2ESXzB4MmZkYmQ1CHR5cGUOcmVwbGFjZQhzb3J0B8SLBlI6AFQvYXBpL3YyL3NreW5ldC9uZXdfcGxheWxpc3RzP3N1YmplY3RfdHlwZT0UY2hhckNvZGVBdApwcml6ZQ53ZXN0ZXJuSHN1YmplY3RfY29sbGVjdGlvbi90dl9qYXBhbmVzZS9pdGVtcyAvYXBpL3YyL2RvdWxpc3QvEGNyaW1pbmFsDR93nluLTvZOOWUWfwxjaGFyQXRIc3ViamVjdF9jb2xsZWN0aW9uL3R2X2RvbWVzdGljL2l0ZW1zCHB1c2gKa29yZWEIcGF0aAxCYXNlNjQKc2hpZnQIY2VpbBRzaG9ydF9uYW1l0AEmb3Nfcm9tPWFuZHJvaWQmYXBwbGU9YzUyZmJiOTliOTA4YmU0ZDAyNjk1NGNjNDM3NGYxNmQmbW9vbmNha2U9MGY2MDcyNjRmYzYzMThhOTJiOWUxM2M2NWRiN2NkM2Mmc3VnYXI9MBBvZmZpY2lhbBZpbnNwaXJhdGlvbhB2aW9sZW5jZRovcG9zdHM/c3RhcnQ9ci9hcGkvdjIvbW92aWUvY2F0ZWdvcnlfcmFua3M/Y291bnQ9MzAmY2F0ZWdvcnk9cmVjZW50X2hvdBQmY2F0ZWdvcnk9CnRpdGxlggFBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPRBob3JyaWJsZQwmdWRpZD0OZmFudGFzeRZibGFja193aGl0ZQZhbGwOY2FydG9vbjBzdWJqZWN0X2NvbGxlY3Rpb25faXRlbXMYZnJvbUNoYXJDb2RlIGJmN2RkZGM3YzljZmU2ZjcMc3BsaWNlSHN1YmplY3RfY29sbGVjdGlvbi90dl9hbWVyaWNhbi9pdGVtcwxyYW5kb20GZW5jFnRvTG93ZXJDYXNlCnBhcnNlMHdxODZ3NzNDbU1PcEhjT2V3NkhDdXl3PQYweDAMeVpTREtVanJldHVybiAoZnVuY3Rpb24oKSB7fS5jb25zdHJ1Y3RvcigicmV0dXJuIHRoaXMiKSggKSk7IFozdzFCTUtZS2dOYXc2WT0Sc3Vic3RyaW5nBmNyXwomX3RzPQm3UeiVc09HcgphY3Rvcgh1bml4CWhR6JB0XuNOBjB4MgZkbF8IdDI1MAx2YVJNY0UMZG91YmFuCGN1cmUSbGlzdF90eXBlEGRpcmVjdG9yCmxhcmdlDmNvbnRlbnQOc3ViamVjdAxub3JtYWwMZmFtaWx5DHJhdGluZwx4SVVZWnJEJmNvdW50PTMwJnVwZGF0ZWRfYXQ9Jml0ZW1zX29ubHk9MUpzdWJqZWN0X2NvbGxlY3Rpb24vdHZfYW5pbWF0aW9uL2l0ZW1zBjB4M2wvYXBpL3YyL3R2L2NhdGVnb3J5X3JhbmtzP2NvdW50PTMwJmNhdGVnb3J5PXJlY2VudF9ob3QJD1z0izllFn8QamFwYW5lc2UIYXRvYgpub3ZlbDYvYXBpL3YyL3N1YmplY3RfY29sbGVjdGlvbi8QTm53OUFjT08IZGF0YQ5pbmRleE9mICZzY29yZV9yYW5nPTAsMTCfAS8AYQBwAGkALwB2ADIALwBtAG8AdgBpAGUALwB0AGEAZwA/AHMAbwByAHQAPQBVACYAcwB0AGEAcgB0AD0AMAAmAGMAbwB1AG4AdAA9ADMAMAAmAHEAPQBoUeiQYl8PXywAaFHokHt8i1csAGhR6JAwVzpTLABoUeiQdF7jTiYAcwBjAG8AcgBlAF8AcgBhAG4AZwA9ADAALAAxADAACWhR6JAwVzpTCGxnYnQMJl9zaWc9CE4pbmwKdG90YWwGcGljBndhciAmbG9jX2lkPTAmc3RhcnQ9CGUwaEUGMHgxHG1vdmllL2hvdF9nYWlhCnNvcnRzCHRhZ3MWZG9jdW1lbnRhcnkUaGlnaF9zY29yZQpzdHlwZRovaXRlbXM/c3RhcnQ9DFNRamV0UQwmdXVpZD0oc2VsZWN0ZWRfY29sbGVjdGlvbnMH/VanTmdSDmNvbnNvbGWmASBwbGF0Zm9ybS9tb2JpbGUgY29tLmRvdWJhbi5mcm9kby83LjkuMCgyMTYpIFJleHhhci8xLjIuMTUxIHBsYXRmb3JtL21vYmlsZSAxLjIuMTUxZT8AYQByAGUAYQA9AGhR6JAmAHMAbwByAHQAPQByAGUAYwBvAG0AbQBlAG4AZAAmAHAAbABhAHkAYQBiAGwAZQA9ADAAJgBsAG8AYwBfAGkAZAA9ADAAJgBzAHQAYQByAHQAPQAKcGFuaWMMYWN0aW9uEEhtYWNTSEExEHNlbGVjdGVkLi9hcGkvdjIvbW92aWUvdGFnP3NvcnQ9GGxpdGVyYXJ5X2FydBImY291bnQ9MzAIeWVhcj5zdWJqZWN0X2NvbGxlY3Rpb24vdHZfaG90L2l0ZW1zEmNsYXNzaWNhbAxtb3ZpbmcIc2tleRJzdHJpbmdpZnkKeW91dGgKaXRlbXMQL2FwaS92Mi/+ASYmcm9tPWFuZHJvaWQmYXBpa2V5PTBkYWQ1NTFlYzBmODRlZDAyOTA3ZmY1YzQyZThlYzcwJnM9cmV4eGFyX25ldyZjaGFubmVsPVlpbmd5b25nYmFvX01hcmtldCZ0aW1lem9uZT1Bc2lhL1NoYW5naGFpJmRldmljZV9pZD0MZGV2aWNlFGRhcmtfaHVtb3IJ0Z5ygn1e2J4SY292ZXJfdXJsDGNvbWVkeQhHRVQm6gFSZXh4YXItQ29yZS8wLjEuMyBhcGktY2xpZW50LzEgY29tLmRvdWJhbi5mcm9kby83LjkuMCgyMTYpIEFuZHJvaWQvMjggcHJvZHVjdC9YaWFvbWkxMSByb20vYW5kcm9pZCBuZXR3b3JrL3dpZmkgdWRpZC8IY2F0ZRRkYXJrX2hvcnNlvwEvAGEAcABpAC8AdgAyAC8AcwB1AGIAagBlAGMAdABfAGMAbwBsAGwAZQBjAHQAaQBvAG4ALwBtAG8AdgBpAGUAXwB0AG8AcAAyADUAMAAvAGkAdABlAG0AcwA/AGEAcgBlAGEAPQBoUeiQJgBzAG8AcgB0AD0AcgBlAGMAbwBtAG0AZQBuAGQAJgBwAGwAYQB5AGEAYgBsAGUAPQAwACYAbABvAGMAXwBpAGQAPQAwACYAcwB0AGEAcgB0AD0AIHc0dkN0OEtEd296Q2xnPT0HNXXGiWdSCDB4MWEwaHR0cHM6Ly9mcm9kby5kb3ViYW4uY29temFiYWNkZWZnaGprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkSXzB4MzZiM2Q2El8weDRkYzMwOBJfMHg0ODg0ZDMSXzB4YTcxZDRkEl8weDIwNGQyZhJfMHgzNTQyZGYSXzB4MmMyOTUyEl8weDJlMWRkORJfMHg2MjgyNTQIMHg4YwRpZAgweDQ1CDB4NWMIMHg4MQgweDE0CDB4NGQIMHg2MiRlbmNvZGVVUklDb21wb25lbnQIMHg3YwImBjB4NggweDdkCDB4NTgIMHgzNQgweDExEl8weGNlYWJjZhJfMHgzZjBiNGISXzB4MzY5Nzg1BnJlcQR1YRRVc2VyLUFnZW50DmhlYWRlcnMGMHg4CDB4MWYSXzB4MzkxYTBhEl8weDI3M2FlYhJfMHg0NjAwMjISXzB4NDcwMzA2El8weDIzZDkwMRJfMHgyY2Y1NjgSXzB4ZmM4MzIyEl8weDVkOTU2ORJfMHgxYTcwYzQIMHg1NwgweDQyBjB4OQgweDY4GHc3N0R2c085d3E5VggweDJlBjB4ZQgweDI3CDltVkEIMHgxNggweDNiCDB4M2MIMHgzNgYweDQIdzcxZgYweGEISGdNMwgweDQ4BmxvZwgweDVkCmxvY2FsCDB4NTQIMHg3YQ5pc0VtcHR5BjB4NwgweDYzCDB4NDkIMHg2NBJfMHg2YjgwNWMIMHg3OQgweDdlEl8weDE2M2Q5OBJfMHgxOTdjNDcSXzB4M2ZiYWI4El8weDNkNjVlZBJfMHg1OTI2ZTAIMHgyYgYweGIIMHgyNAgweDE5CDB4NDQSXzB4MmM0MjNhEl8weDEwMDg4OQYweGQMd2luZG93EF8weDNjZjYwEl8weDI1ZTcxOBJfMHgyNGVjY2USXzB4MjEwOWMwEl8weDIyNGYwNxJfMHgzN2Y5YjASXzB4NTM3ZTA3CDB4NmMIMHg3NwgweDhhCDB4MzASXzB4MWRkN2FjEl8weDFmMzY5ZBJfMHgyYWM4ZjMSXzB4NGM3ZTcxEl8weDQzMGM5YxJfMHg0NWQwYzcSXzB4MTQ2YmQ0El8weDIxMmQyYxJfMHgzOTFiODUSXzB4NWQwNTVmEl8weDM0MjI1ZQIlBDAwCDB4ODMKc2xpY2UkZGVjb2RlVVJJQ29tcG9uZW50CDB4NzASXzB4NTBkMjUyEl8weDU3ZjI4OBJfMHg0NjlkMmYSXzB4MTNmNDM2El8weDNhZTFhYxJfMHgzOTgzNTYSXzB4NDM1MTc3El8weDIxZjdlMhJfMHg1MTJlYjQSXzB4MjY5MmZiEl8weDM3ZjdjOBJfMHgxZTY5OWUSXzB4MWFhNjE2BHt9CDB4MzICdQZrZXkIaW5pdAU1dXFfAm4IMHgzZAJ2CDB4NjkIMHg1MwgweDQ3CDB4NzgFjn9nUgXlZWdSCDB4NzMF6ZdnUkRzdWJqZWN0X2NvbGxlY3Rpb24vdHZfa29yZWFuL2l0ZW1zBahSK28IMHgyNgX8fnqCQnN1YmplY3RfY29sbGVjdGlvbi9zaG93X2hvdC9pdGVtcwR0MQgweDZhBWhR6JAKbW92aWUEdHYIMHg4ZglGjON0R3JVUwgweDgyBb58CZAIMHg0ZQXPfnhRCDB4NTUFt4NWWQgweDcxBdiaBlIIMHg0MQWcaVVTFG1vdmllX2xpc3QIMHgxMggweDY2BTtOmJgKdG9waWMF/FsUbwgweDFkBRRvWFQIMHgxMwX7fBdSDHNlcmllcwgweDY1BU5T7YsOY2hpbmVzZQUna45/CDB4NzIF5WUsZwgweDJhBemX/VYIMHg3YgWcVWdSCDB4NjEFqFJcTwgweDRjBTFyxWAIbG92ZQXReXteHnNjaWVuY2VfZmljdGlvbgWoUjt1CDB4OTAFrGCRdQ5teXN0ZXJ5BcpgmmAIMHg0YgVQYBZgCDB4OGIFr3JqfwgweDc1BQxUJ2AIMHgzNAUYYolOCDB4MzkFR1l7XggweDhkBcVgcoIOZXJvdGljYQXzl1BOCm11c2ljB6p+VV9HcggweDQwBbtsCGEIMHgxYgV6gi9nBmFydAgweDVmCDB4NWUFUpclZggweDU5BXNZJ2AMZmVtYWxlCDB4NzYUcmVhbF9ldmVudAW0ZptSCDB4ODUF0Z59dggweDhlBY5/35gIZm9vZAXFZUyIDHRyYXZlbAU/UeV6CmNoaWxkBbpOJ2AQaHVtYW5pdHkFtlutXggweDIyBYdleoIIMHg1MAgweDI5CDB4MmMFH2G6TggweDU2BbFS118IMHg4NAR0NAgweDNmBXlycoIIMHgyZgV0XuNOCDB4NTIGMHhjCDB4M2UIMHg2Ygh0ZXh0BHQyDnR5cGVfaWQF7XCtZBJ0eXBlX25hbWUFR3KTXggweDE4DFRvcDI1MAR0MwpyYXRpbwVHclVTDmZpbHRlcnMSXzB4M2NmZDdlEl8weDI4MDAxYRJfMHgxNzM2OGQSXzB4MWMyOTM5El8weDIyOTg0NhJfMHgxNGY5YmISXzB4ODBjOTg0El8weDU5NmEzZBJfMHgyYWY4YzgSXzB4NDkxMDRmEl8weDUyNDNkORJfMHgxNDZmZDQQXzB4YzFiNjkQXzB4NTU3NzcSXzB4MzJiZmQzEl8weDQyMjFlNRJfMHgxZjlmODESXzB4MWY2MjRiEl8weDEwODIzNRJfMHg0NWQ5N2USXzB4MmM0ZGY3El8weDQ5ZjE5MhJfMHg1ZDU3MmISXzB4ZDEzN2VmEl8weDI5NjEzORJfMHgzMDk3ZDASXzB4NTFmM2IzEl8weGI2MzBkORJfMHgzNTQ2YTESXzB4M2NkOWRmEl8weDI3ZTc3MRJfMHg0NmJmNTISXzB4MWFiZjgyEl8weDU5MDYxNxJfMHgzMWM1MGYSXzB4Y2E3NGY4El8weDQ3NWFkMxJfMHg1Yjc2NTISXzB4MjFjNjA5El8weGU2NGQ5NwgweDViCDB4NGEIMHg1MQgweDVhCDB4MjMMdm9kX2lkCDB4ODkQdm9kX25hbWUIMHgzOAgweDFlDnZvZF9waWMWdm9kX3JlbWFya3MQcGFyc2VJbnQIcGFnZQgweDM3EnBhZ2Vjb3VudAhsaXN0CDB4NjcIMHg0ZggweDZkAlUOJnN0YXJ0PRgmY291bnQ9MzAmcT0FYl8PXwloUeiQYl8PXwIsBXt8i1cJaFHokHt8i1cFMFc6UwgweDMzCDB4MTUIMHgzMQgweDZlCDB4N2YIMHg4NwgweDQ2CDB4MTAIMHg4MAgweDYwCDB4MjgIMHg2ZggweDg4CDB4M2Egb2ZmaWNpYWxfZG91bGlzdAgweDFjCDB4MTcUc3RhcnRzV2l0aAgweDJkBjB4ZggweDQzCDB4MjUIMHg3NAgweDg2CDB4MjAIMHgyMRJfMHg1YzVkZmUSXzB4MzI4OTZhEl8weDQyOWFiMhJfMHgyZjBjYzQSXzB4Mzc4ODljEl8weDVhMGVmYxJfMHgxMjU1M2MSXzB4Y2VjNTA4El8weDUwYjJmNhJfMHg0MjUwNGUSXzB4YmFkMDM2El8weDUxYzVmYhJfMHg0OGJiN2ISXzB4ZGQzYzBjEl8weDU4ZDExZBJfMHhmZTQzNmQGMHg1CGhvbWUOaG9tZVZvZBBjYXRlZ29yeQxkZXRhaWwIcGxheQxzZWFyY2gPpAMBpgMBABmoAwAFAKoDAAGsAwACrgMAA7ADAASyAwAOAAYBoAEAAAAgGg6SCwCqAwAMrAMBDK4DAgywAwMMsgMEDLQDAA22AwENuAMCCboDAwm8AwQJvgMFCcADBgnCAwcBxAMIAcYDCQHIAwoBygMLAcwDDAHOAw0B0AMOAdIDDwHUAxAB1gMRAdgDEg3aAxMBqAMUAQjoPr4CXwwAvgNfDQC+BF8PAL4FXxAAvgZfEQC+B18SAL4IXxMAvglfFAC+Cl8VAL4LXxYAvgxfGAC+DV8ZACkE7gAAAAQ2AAAABO8AAAAE8AAAAATxAAAABPIAAAAE8wAAAAT0AAAABPUAAAAE9gAAAAT3AAAABPgAAAAE+QAAAAT6AAAABPsAAAAE/AAAAAQwAAAABP0AAAAE/gAAAAT/AAAABAABAAAEAQEAAAQCAQAABAMBAAAEBAEAAAQ3AAAABAUBAAAEBgEAAAQHAQAABAgBAAAECQEAAAQKAQAAJiAABAsBAABMIAAAgAQMAQAATCEAAIAEDQEAAEwiAACABA4BAABMIwAAgAQPAQAATCQAAIAEEAEAAEwlAACABBEBAABMJgAAgAQSAQAATCcAAIAEEwEAAEwoAACABBQBAABMKQAAgAQVAQAATCoAAIAEFgEAAEwrAACABBcBAABMLAAAgAQYAQAATC0AAIAEGQEAAEwuAACABBoBAABMLwAAgAQbAQAATDAAAIAEHAEAAEwxAACABB0BAABMMgAAgARAAAAATDMAAIAEHgEAAEw0AACABB8BAABMNQAAgAQgAQAATDYAAIAEIQEAAEw3AACABCIBAABMOAAAgAQjAQAATDkAAIAEJAEAAEw6AACABCUBAABMOwAAgAQmAQAATDwAAIAEJwEAAEw9AACABCgBAABMPgAAgAQpAQAATD8AAIAEKgEAAExAAACABCsBAABMQQAAgAQsAQAATEIAAIAELQEAAExDAACABC4BAABMRAAAgAQvAQAATEUAAIAEMAEAAExGAACABDEBAABMRwAAgAQyAQAATEgAAIAEMwEAAExJAACABDQBAABMSgAAgAQ1AQAATEsAAIAENgEAAExMAACABDcBAABMTQAAgAQ4AQAATE4AAIAEOQEAAExPAACABDoBAABMUAAAgAQ7AQAATFEAAIAEPAEAAExSAACABD0BAABMUwAAgAQ+AQAATFQAAIAEPwEAAExVAACABEABAABMVgAAgARBAQAATFcAAIAEQgEAAExYAACABEMBAABMWQAAgAREAQAATFoAAIAERQEAAExbAACABEYBAABMXAAAgARHAQAATF0AAIAESAEAAExeAACABEkBAABMXwAAgARKAQAATGAAAIAESwEAAExhAACABEwBAABMYgAAgARNAQAATGMAAIAETgEAAExkAACABE8BAABMZQAAgARQAQAATGYAAIAEUQEAAExnAACABFIBAABMaAAAgARTAQAATGkAAIAEVAEAAExqAACABFUBAABMawAAgARWAQAATGwAAIAEVwEAAExtAACABFgBAABMbgAAgARZAQAATG8AAIAEWgEAAExwAACABFsBAABMcQAAgARcAQAATHIAAIAEXQEAAExzAACABF4BAABMdAAAgARfAQAATHUAAIAEYAEAAEx2AACABGEBAABMdwAAgARiAQAATHgAAIAEYwEAAEx5AACABGQBAABMegAAgARBAAAATHsAAIAEZQEAAEx8AACABGYBAABMfQAAgARnAQAATH4AAIAEaAEAAEx/AACABGkBAABMgAAAgARqAQAATIEAAIAEawEAAEyCAACABGwBAABMgwAAgARtAQAATIQAAIAEbgEAAEyFAACABG8BAABMhgAAgARwAQAATIcAAIAEcQEAAEyIAACABHIBAABMiQAAgARzAQAATIoAAIAEQgAAAEyLAACABHQBAABMjAAAgAR1AQAATI0AAIAEdgEAAEyOAACABHcBAABMjwAAgAR4AQAATJAAAIBfBQC+AGUFALxJAe4OvgFN2wAAAF8GAGUGAAR5AQAA7V8HAAR6AQAAXwgAC18JAL9fCgCzXwsAtJZfDgAEewEAAF8XACmkAwEEAQBAAg5DBgEAAgECAgABEwP4BQABQPoFAAEA/AUBADBhAAC+AE1+AQAAx2IAANCP2O0ppAMBAA5DBgEAAQABBAEAHQH+BQABAPgFAAPPjtfoGNsE/AAAAEjbBAABAABIJAAAJAEADurlKaQDAQAOQwYBAAIBAgIBABED+AUAAQD6BQABAPwFAQAgtAMFDGEAAM+zntNlAADPR8diAAAopAMBAA5DBgHCAwEEAQcFAIgCBYAGAAEAggYBADCEBgEBMIYGAQIgiAYBAyC2AwYMvAMJCLADAwysAwEMqgMADGEDAGECAGEBAGEAAM9lAAAEhQEAAO1lAQAEhgEAAEedZQAABIcBAADtnWUBAASGAQAAR51lAAAEiAEAAO2dZQEABIYBAABHnWUAAASJAQAA7Z2d02UCABHPIQEAx2UDAOxlAAAEigEAAO1IJAAABDcAAABIJAAAyGUEAGUAAASLAQAA7UhlAAAEjAEAAO04jQEAAGIAAGUAAASOAQAA7UgkAADtnQSPAQAAnWIBAJ1lAAAEJwEAAO0kAgDJZQQAZQAABJABAADtR2UAAASRAQAA7UdlAAAEkgEAAO1IYgIAJAEAys9lAAAEkwEAAO2dOI0BAABiAwDtnWUAAASUAQAA7Z1iAQCdKKQDAQAOYgYBxAMCAQIGAwBLA6oGAAEArAYAAQCuBgEAMMYDDgC8AwkItgMGDGEAANvoA78uOJgBAADPCwvQEekLDmUBAASZAQAAR0yaAQAATJsBAADui8c4mAAAAGUCAAScAQAA7UhiAABlAgAEnQEAAO1HJAEALqQDAQAOYgYByAMBCAEHCAOKBAm8BgABAL4GAABAwAYAAUDCBgMAA8QGAAJAxgYABADIBgAFAMoGAAYAzAYKAAO2AwYMvgMKCMADCwjGAw4AuAMHCLwDCQiyAwQM2gMYAM9lAAAEpwEAAO1HEWYBAA7PZQAABKgBAADtRxFmAgAObM8AAABlAAAEqQEAAO1lAAAEqgEAAO0EqwEAAGUAAASsAQAA7WUAAAStAQAA7SYFAMvKu3XBBL4AwASPwgTtDr4BTaABAADIOIoAAADEZQAABK4BAADtBK8BAADuxGUAAASwAQAA7WUAAASxAQAA7e5Is7UkAgBHEegFDrOW5g44igAAAMRlAAAEsgEAAO1lAAAEswEAAO3uR8QEtAEAAAS1AQAA7kcR6QUOs5bmDjiKAAAAxGUAAAS2AQAA7QS3AQAA7kcR6QUOs5bmDg7qDslsCgAAALOW4g7qAi/eEeggDjiKAAAAZQAABLgBAADtcQu+Ak25AQAATLkBAAAWSQ7elmnkAAAAZQAABLoBAADtwQU4uwEAAGUAAAS8AQAA7UhlBADABSQCAIvCBmUAAAS9AQAA7UezpegpbBwAAAA4mAAAAAQaAQAASMAGJAEAEWYFAA4O6gzBB2wHAAAADuoCL2UGAAS+AQAASGUFACQBABHocw5lBQAEhgEAAHFeBwC7KO1lAAAEvwEAAO1IJAAASWUFAASZAQAAcWUAAATAAQAA7WUFAASGAQAAR51lAAAEwQEAAO2dSTi7AQAAZQAABMIBAADtSGUEAMAFOJgAAABlAAAEkgEAAO1IZQUAJAEAJAMAiw4GLqQDAQAOQwYBAAEAAQUCACUBhgcAAQDEBgMBtgMADM+O1+gg22UBAATEAQAA7UjbZQEABMUBAADtSCQAACQBAA7q3SmkAwEADkMGAQACAwIEAwOxAQWMBwABAI4HAAEAkAcAAACSBwABAJQHAAIAtgMADL4GAAHABgEB3M+zntdHyAbdBCoBAABHq+hIvgDsy2UAAATLAQAA7UcR6Q0OwwQ8AQAAcb4BFkkO3WUAAATMAQAA7XG+AkndZQAABM0BAADtcQtJ3WUAAATOAQAA7XGzlkndZQAABM0BAADtR89HyQbFq+hBBt1lAAAEzwEAAO1HqxHoDQ7dBFUBAABxs5YWSQ7dZQAABMwBAADtSMTQJAIAyN1lAAAEzQEAAO1Hz3HEFknqA8XMDsQopAMBAA5DBgEAAAIABAEAKwKgBwAAAKIHAwADtgMADGwYAAAAOJoAAABlAAAE0gEAAO3t7McO6hHIbA0AAAA40wEAAMcO6gIvwyikAwEADkMGAQABBgEHAQKUAQeoBwABAKoHAAAArAcAAQCuBwACALAHAAMAsgcABAC0BwAFALYDAAw4kwAAAM/tZQAABNsBAADtSL0AvQEzvyQCAMm/yrPBBLPBBcVlAAAE3AEAAO1IwAWRwQUkAQDM6FplAAAE3QEAAO1lAAAE3gEAAO1IxCQBAMjEleg6wAS3nOgJu0DDmsSd6gLEx8AEkcEEt5zoIcY4kwAAAAQTAQAASLz/AMO7/sAEmrmtoa0kAQCdzuoCsw7qksYopAMBAAcGPSskB1oAAQAmAAAACAYAAAAEB/X///8LABwEAAAAAQAAAP///38BAAAAAT0ACgYMAAoOQwYBAAIJAggBALACC74HAAEAwAcAAQDCBwAAAMQHAAEAxgcAAgDIBwADAMoHAAQAzAcABQDOBwAGANAHAAcA0gcACAC2AwAMJgAAybPKv8EEv8EFs8EGODwBAADP7dcEMAAAAEfBB8AGwAej6DzABQTqAQAABOsBAADPBPMAAABIwAYkAQBlAAAE7AEAAO1IuxAkAQCdBO0BAABIu/4kAQCdncEFkwbqvzjuAQAAwAXt07PIxLwAAaPoCcXExEmTAerys8jEvAABo+g6xsXER53QZQAABO8BAADtSMTQZQAABL0BAADtR5wkAQCdvAABnMrFxEfHxcRxxcZHScXGw0mTAerBs8izyrPBCMAIz2UAAAS9AQAA7Uej6FrGxcS0nbwAAZzMR528AAGcysXER8fFxHHFxkdJxcbDScAEOJMAAABlAAAETQEAAO1Iz2UAAATvAQAA7UjACCQBAMXFxEfFxkedvAABnEeuJAEAncEEkwjqmMAEKKQDAQAOQwYBAAAAAAAAAAEAKaQDAQAOYgYBygMBDAEnBgDWEg3gBwABAOIHAQAw5AcBATDmBwECIOgHAQMg6gcDCzDsBwQFIO4HBAYg8AcGBzDyBwcIIPQHAQQg9gcBCiD4BwgLMMYDDgDCAwwAugMICLYDBgzEAw0ArAMBDGEKAGEJAGEDAGECAGEBAGEAANvoBwT9AQAALtxlAgBlAwAE/gEAAO2d7cdeBABiAADti8gLCwT/AQAATAACAAC/TDYAAAAETgEAAEwBAgAACwQCAgAATAMCAABlAwAEBAIAAO1MBQIAAAtlAwAEBgIAAO1MAwIAAGUDAAQHAgAA7UwFAgAAC2UDAAQIAgAA7UwDAgAAZQMABAkCAADtTAUCAAALBAoCAABMAwIAAGUDAAS0AQAA7UwFAgAACwQLAgAATAMCAABlAwAEDAIAAO1MBQIAAAsEDQIAAEwDAgAABA4CAABMBQIAAAsEDwIAAEwDAgAAZQMABBACAADtTAUCAAALBBECAABMAwIAAAQSAgAATAUCAAAmCABMQAAAACYBAEwTAgAAC2UDAAQUAgAA7UwAAgAAv0w2AAAAv0wBAgAACwQVAgAATAMCAAC/TAUCAAALBAICAABMAwIAAAQWAgAATAUCAAALZQMABAYCAADtTAMCAAAEFwIAAEwFAgAAJgMATEAAAAALBHQBAABMAAIAAL9MNgAAAGUDAAQYAgAA7UwBAgAACwQVAgAATAMCAABlAwAEGAIAAO1MBQIAAAsEGQIAAEwDAgAAZQMABBoCAADtTAUCAAALBBsCAABMAwIAAGUDAAQcAgAA7UwFAgAACwQdAgAATAMCAABlAwAEHgIAAO1MBQIAAAsEHwIAAEwDAgAAZQMABCACAADtTAUCAAALBCECAABMAwIAAGUDAAQiAgAA7UwFAgAACwQjAgAATAMCAAAEJAIAAEwFAgAAC2UDAAQlAgAA7UwDAgAAZQMABCYCAADtTAUCAAALBCcCAABMAwIAAAQoAgAATAUCAAALBCkCAABMAwIAAGUDAAQqAgAA7UwFAgAACwQrAgAATAMCAABlAwAELAIAAO1MBQIAAAsELQIAAEwDAgAABC4CAABMBQIAACYMAExAAAAAC2UDAAQvAgAA7UwAAgAAv0w2AAAAZQMABBgCAADtTAECAAALBDACAABMAwIAAAQxAgAATAUCAAALBDICAABMAwIAAGUDAAQzAgAA7UwFAgAACwQ0AgAATAMCAABlAwAENQIAAO1MBQIAAAsENgIAAEwDAgAAZQMABDcCAADtTAUCAAAmBABMQAAAAAsEdAEAAEwAAgAAv0w2AAAAZQMABBgCAADtTAECAAALBDgCAABMAwIAAGUDAAQ5AgAA7UwFAgAACwQ6AgAATAMCAABlAwAEOwIAAO1MBQIAAAsEPAIAAEwDAgAABD0CAABMBQIAAAsEPgIAAEwDAgAABD8CAABMBQIAAAsEQAIAAEwDAgAAZQMABEECAADtTAUCAAALBEICAABMAwIAAARDAgAATAUCAAALBEQCAABMAwIAAGUDAARFAgAA7UwFAgAACwRGAgAATAMCAABlAwAERwIAAO1MBQIAAAsESAIAAEwDAgAAZQMABEkCAADtTAUCAAALBEoCAABMAwIAAGUDAARLAgAA7UwFAgAACwRMAgAATAMCAABlAwAETQIAAO1MBQIAAAsETgIAAEwDAgAAZQMABE8CAADtTAUCAAALBFACAABMAwIAAARRAgAATAUCAAALBFICAABMAwIAAARTAgAATAUCAAALBFQCAABMAwIAAGUDAARVAgAA7UwFAgAACwRWAgAATAMCAABlAwAEVwIAAO1MBQIAAAsEWAIAAEwDAgAABFkCAABMBQIAAAtlAwAEWgIAAO1MAwIAAGUDAARbAgAA7UwFAgAACwRcAgAATAMCAABlAwAEXQIAAO1MBQIAAAsEXgIAAEwDAgAABF8CAABMBQIAAAtlAwAEYAIAAO1MAwIAAARhAgAATAUCAAALBGICAABMAwIAAGUDAARjAgAA7UwFAgAACwRkAgAATAMCAABlAwAEZQIAAO1MBQIAAAsEZgIAAEwDAgAABGcCAABMBQIAAAsEaAIAAEwDAgAABGkCAABMBQIAAAsEagIAAEwDAgAABGsCAABMBQIAAAsEbAIAAEwDAgAABG0CAABMBQIAAAsEbgIAAEwDAgAAZQMABG8CAADtTAUCAAALBHACAABMAwIAAGUDAARxAgAA7UwFAgAAC2UDAARyAgAA7UwDAgAAZQMABHMCAADtTAUCAAALBHQCAABMAwIAAGUDAAR1AgAA7UwFAgAACwR2AgAATAMCAABlAwAEdwIAAO1MBQIAACYgAExAAAAAJgQATHgCAADJJgAAymEEAGIBAGUDAAR5AgAA7Ud962UBwQRhBgBhBQAEegIAAGIEAATuAAAAR6lqSwEAAAtiBABlAwAEFAIAAO1HTAACAAC/TDYAAABiBABlAwAEewIAAO1Hs0dMAQIAAMEFJgAAwQYEfAIAAGIEAATuAAAAR6kR6HIOYgQAZQMABHsCAADtRwRBAQAASGUFAOwEYwEAAEgkAABlAwAE7AEAAO1IJAAAJAEAs6MR6DwOYgQAZQMABHsCAADtR2UDAAQ4AQAA7Ui0s2UFAOxlAwAEfQIAAO1IJAAAZQMABOwBAADtSCQAACQDAA5hBwBiBABlAwAEewIAAO1HfepSwQdhCABiBwDBCGIHAGUDAATeAQAA7UgEFQIAACQBALOmEegLDgQVAgAAEWMIAA5iBgBlAwAExAEAAO1IC2IIAEwDAgAAYgcATAUCAAAkAQAOgADorA6DYgUAZQMABH4CAADtcWIGAEliAwBlAwAExAEAAO1IYgUAJAEADoAAaZr+//8OgwsE8AAAAEwAAgAAv0w2AAAAYgEAZQMABH8CAADtR7NHZQMABIACAADtR0wBAgAAwQkmAADBCmELAGIBAARPAQAAR33qLcELYgoABPwAAABIC2ILAASBAgAAR0wDAgAAYgsABDYAAABHTAUCAAAkAQAOgADo0Q6DYgkAZQMABH4CAADtcWIKAEliAwBlAwAExAEAAO1IYgkAJAEADmICAASCAgAAcWIDAEk4mAAAAGUDAASSAQAA7UgLCwQTAgAATIMCAAAEhAIAAEyFAgAACwSCAgAATIMCAAAEhgIAAEyFAgAAC2UDAASHAgAA7UyDAgAABIgCAABMhQIAAAsEiQIAAEyDAgAABCMCAABMhQIAALRMigIAAAsEeAIAAEyDAgAABIsCAABMhQIAALRMigIAACYFAEweAAAAYgIATIwCAAAkAQAupAMBAA5iBgHMAwAAAAEBAAkAxgMOALOW3wT9AQAALqQDAQAOYgYBzgMEJAQKBQCNFiiaCgABAJwKAAEAngoAAQCgCgABAKIKAQAgpAoDATCmCgMCMKgKAwMgqgoEBDCsCgUFIK4KBwEwsAoHBzCyCgcIILQKCAkwtgoJCiC4CgsBMLoKCwwwvAoLDSC+CgwOMMAKDQ8gwgoPASDECg8RIMYKDxIgyAoQEzDKChETMMwKEwEwzgoTFjDQChMXINIKFBgw1AoWATDWChYaMNgKFhsg2goXHDDcChgdIN4KGgEw4AoaHzDiChogIOQKGyEw5gocIjDoChwjIMIDDAC6AwgItgMGDMQDDQCyAwQMYQAA0BHpAw60x7NiAACpEegHDrQRYwAADgQTAgAAz6lpegEAAGEDAGECAGEBANtlAQBlAgAEtQIAAO2d0gT/AQAARxHpBw4ETgEAAJ1lAgAEtgIAAO2dux5iAAC0npqdZQIABLcCAADtne3I3mIBAO2LySYAAMphBABiAgBlAgAEuAIAAO1HEekLDmICAAQSAQAAR33rtQDBBGEFAGIEAGUCAAS5AgAA7UdlAgAEfgIAAO1HEekDDr9lAgAE7AEAAO1IJAAAwQViAwBlAgAExAEAAO1IC2IEAASGAQAAR0y6AgAAYgQAZQIABLsCAADtR0y8AgAAYgQAZQIABL0CAADtRwQyAQAARxHpGQ5iBABlAgAEvQIAAO1HZQIABL4CAADtR0y/AgAAYgUABDAAAABHs6XoDATxAAAAYgUAneoCv0zAAgAAJAEADoAAaUr///8OgziYAAAABGgBAABICzjBAgAAYgAA7UzCAgAAZQQABAEBAABIYgIAZQIABMMCAADtR7semyQBAEzEAgAAYgMATMUCAAAkAQAuZQIABIcCAADtz6lpXgEAAGEIAGEHAGEGANtlAQBlAgAExgIAAO2dux5iAAC0npqdZQIABLcCAADtne3BBt5iBgDti8EHJgAAwQhhCQBiBwBlAgAEuAIAAO1HEekPDmIHAGUCAAQcAQAA7Ud966kAwQlhCgBiCQBlAgAEuQIAAO1HZQIABH4CAADtRxHpAw6/BDcAAABIJAAAwQpiCABlAgAExAEAAO1IC2IJAASGAQAAR0y6AgAAYgkAZQIABLsCAADtR0y8AgAAYgkABEkBAABHBDIBAABHEekVDmIJAGUCAAS9AgAA7UcELwEAAEdMvwIAAGIKAAQwAAAAR7Ol6AwE8QAAAGIKAJ3qAr9MwAIAACQBAA6AAGlW////DoM4mAAAAGUCAASSAQAA7UgLOMECAABiAADtTMICAABlBAAEAQEAAEhiBwBlAgAEwwIAAO1Hux6bJAEATMQCAABiCABMxQIAACQBAC4EggIAAM+padwBAABhDQBhDABhCwDbZQEAZQIABMcCAADtndJlAgAEyAIAAO1HEekHDgTJAgAAnQTKAgAAnbseYgAAtJ6anQTLAgAAndIEzAIAAEcR6QcOBM0CAACdBM4CAACd0gTPAgAARxHpBw4E0AIAAJ0EzgIAAJ3SBNECAABHEekLDmUCAATSAgAA7Z0EzgIAAJ3SBHwCAABHEekLDmUCAATTAgAA7Z1lAgAE1AIAAO2d7cEL3mILAO2LwQwmAADBDWEOAGIMAARAAQAAR33ruQDBDmEPAGIOAGUCAAS5AgAA7UdlAgAEfgIAAO1HEekDDr9lAgAE7AEAAO1IJAAAwQ9iDQBlAgAExAEAAO1IC2IOAASGAQAAR0y6AgAAYg4AZQIABLsCAADtR0y8AgAAYg4AZQIABL0CAADtRwQyAQAARxHpFQ5iDgAESQEAAEdlAgAEvgIAAO1HTL8CAABiDwBlAgAEvQEAAO1Hs6XoEGUCAATVAgAA7WIPAJ3qAr9MwAIAACQBAA6AAGlG////DoM4mAAAAGUCAASSAQAA7UgLOMECAABiAADtTMICAABlBABlAgAE1gIAAO1IYgwAZQIABMMCAADtR7semyQBAEzEAgAAYg0ATMUCAAAkAQAuBIkCAADPqWluAQAAYRIAYREAYRAA22UBAGUCAATXAgAA7Z3twRDeYhAA7YvBESYAAMESYRMAYhEAZQIABNgCAADtR33qasETYhIAZQIABMQBAADtSAtlAgAE2QIAAO1iEwAEhgEAAEedTLoCAABiEwBlAgAE2gIAAO1HEekLDmITAAQKAQAAR0y8AgAAYhMAZQIABNsCAADtR0y/AgAAv0zAAgAAC0x0AQAAJAEADoAA6JQOg9tlAQBlAgAE3AIAAO2d7RFjEAAO3mIQAO2LEWMRAA5hFABiEQAEVwEAAEd96mrBFGISAGUCAATEAQAA7UgLZQIABNkCAADtYhQABIYBAABHnUy6AgAAYhQAZQIABNoCAADtRxHpCw5iFAAECgEAAEdMvAIAAGIUAGUCAATbAgAA7UdMvwIAAL9MwAIAAAtMdAEAACQBAA6AAOiUDoM4mAAAAARoAQAASAu0TMICAAC0TMQCAABiEgBMxQIAACQBAC4EeAIAAM+paW4BAABhFwBhFgBhFQDbZQEAZQIABN0CAADtndJlAgAEFAIAAO1HEekDDr+dZQIABN4CAADtndJlAgAELwIAAO1HEekLDmUCAAQYAgAA7Z1lAgAE3wIAAO2dux5iAAC0npqdBGIBAACd7cEV3mIVAO2LwRYmAADBF2EYAGIWAGUCAAR7AgAA7UezRwRqAQAAR33rhADBGGIXAGUCAATEAQAA7UgLBOACAABiGABlAgAE4QIAAO1HqugWZQIABOICAADtYhgABIYBAABHneoUZQIABNkCAADtYhgABIYBAABHnUy6AgAAYhgABAoBAABHTLwCAABiGABlAgAE2wIAAO1HTL8CAAC/TMACAAALTHQBAAAkAQAOgABpe////w6DOJgAAABlAgAEkgEAAO1ICzjBAgAAYgAA7UzCAgAAZQQAZQIABNYCAADtSGIWAGUCAATDAgAA7Ue7HpskAQBMxAIAAGIXAEzFAgAAJAEALs8E4wIAAEgEIQEAACQBAGl7AQAAYRsAYRoAYRkA22UBAGUCAATkAgAA7Z3PZQIABOUCAADtSLYkAQCdZQIABOYCAADtnbseYgAAtJ6anWUCAATnAgAA7Z3twRneYhkA7YvBGiYAAMEbYRwAYhoAZQIABBwBAADtR33ruQDBHGEdAGIcAGUCAAS5AgAA7UdlAgAEfgIAAO1HEekDDr9lAgAE7AEAAO1IJAAAwR1iGwBlAgAExAEAAO1IC2IcAASGAQAAR0y6AgAAYhwAZQIABLsCAADtR0y8AgAAYhwAZQIABL0CAADtRwQyAQAARxHpGQ5iHABlAgAEvQIAAO1HZQIABL4CAADtR0y/AgAAYh0ABDAAAABHs6XoEGUCAATVAgAA7WIdAJ3qAr9MwAIAACQBAA6AAGlG////DoM4mAAAAGUCAASSAQAA7UgLOMECAABiAADtTMICAABlBABlAgAE1gIAAO1IYhoAZQIABMMCAADtR7semyQBAEzEAgAAYhsATMUCAAAkAQAuzwTjAgAASGUCAATiAgAA7SQBAGmXAQAAYSAAYR8AYR4A22UBAGUCAAToAgAA7Z3PZQIABOUCAADtSLYkAQCdZQIABOkCAADtnbseYgAAtJ6anQQ2AQAAne3BHt5iHgDti8EfJgAAwSBhIQBiHwBlAgAEuAIAAO1HfevdAMEhYSMAYSIAYiEAZQIABJ0BAADtR2UCAATqAgAA7UfBImIiAGUCAAS5AgAA7UdlAgAEfgIAAO1HEekDDr9lAgAE7AEAAO1IJAAAwSNiIABlAgAExAEAAO1IC2IiAASGAQAAR0y6AgAAYiIAZQIABLsCAADtR0y8AgAAYiIAZQIABL0CAADtR2UCAATrAgAA7UcR6RkOYiIAZQIABL0CAADtR2UCAAS+AgAA7UdMvwIAAGIjAGUCAAS9AQAA7UezpegQZQIABNUCAADtYiMAneoCv0zAAgAAJAEADoAAaSL///8OgziYAAAAZQIABJIBAADtSAs4wQIAAGIAAO1MwgIAAGUEAAQBAQAASGIfAGUCAATDAgAA7Ue7HpskAQBMxAIAAGIgAEzFAgAAJAEALgYupAMBAA5iBgHQAwEAAQEAAAYB2AsAAQAE/QEAAC6kAwEADmIGAdIDAgACAQAAAgLaCwABANwLAAEABi6kAwEADmIGAdQDAwADAQAABgPeCwABAOALAAEA4gsAAQAE/QEAAC6kAwEADmIGAdYDAwADAQAABgPkCwABAOYLAAEA6AsAAQAE/QEAAC6kAwEADkMGAdoDAwQDBgMAjAEH6gsAAQDsCwABAO4LAAEA8AsAAADyCwEAIPQLAAEA9gsDAiCyAwQMtgMGDNgDFwxhAQC/xwbQqxHpAw7QyLPJxc+j6HZhAwDR6C5lAABlAQAE/AIAAO1IZQIABDAAAABHuwqeZQIAZQEABL0BAADtR7SeJAIA6jRlAABlAQAE/AIAAO1Is2IBAOgSZQIAZQEABL0BAADtR7Se6g1lAgAEMAAAAEe7C54kAgDKw2UCAGIDAEedx5MC6ofDKKQDAQAOQwYBqAMAAAACBwAyAMgDDwDKAxAAzAMRAM4DEgDQAxMA1AMVANYDFgAL20wBAgAA3Ez9AgAA3Uz+AgAA3kz/AgAAXgQATAADAABeBQBMAQMAAF4GAEwCAwAAKKQDAQA=
\ No newline at end of file
diff --git a/cat/js/bengou_open.js b/cat/js/bengou_open.js
new file mode 100644
index 0000000..7216d2d
--- /dev/null
+++ b/cat/js/bengou_open.js
@@ -0,0 +1,164 @@
+import { Crypto, _, load } from 'assets://js/lib/cat.js';
+
+let key = 'bengou';
+let HOST = 'https://www.bengou.co';
+
+let siteKey = '';
+let siteType = 0;
+
+const PC_UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36';
+
+async function request(reqUrl) {
+ let resp = await req(reqUrl, {
+ headers: {
+ 'User-Agent': PC_UA,
+ },
+ });
+ return resp.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ const classes = [{'type_id':'all','type_name':'all'}];
+ const filterObj = {
+ 'all':[
+ {'key':'type','name':'进度','init':'all','value':[{'n':'全部','v':'all'},{'n':'连载','v':'lianzai'},{'n':'完结','v':'wanjie'}]},
+ {'key':'type','name':'地区','init':'all','value':[{'n':'日韩','v':'rihan'},{'n':'内地','v':'neidi'},{'n':'港台','v':'gangntai'},{'n':'欧美','v':'oumei'},{'n':'其他','v':'qita'}]},
+ {'key':'type','name':'读者','init':'all','value':[{'n':'少年','v':'shaonianqu'},{'n':'少女','v':'shaonvqu'},{'n':'青年','v':'qingnian'},{'n':'少儿','v':'shaoer'}]},
+ {'key':'type','name':'题材','init':'all','value':[{'n':'热血','v':'rexue'},{'n':'格斗','v':'gedou'},{'n':'科幻','v':'kehuan'},{'n':'竞技','v':'jingji'},{'n':'搞笑','v':'gaoxiao'},{'n':'推理','v':'tuili'},{'n':'恐怖','v':'kongbu'},{'n':'耽美','v':'danmei'},{'n':'少女','v':'shaonv'},{'n':'恋爱','v':'lianai'},{'n':'生活','v':'shenghuo'},{'n':'战争','v':'zhanzheng'},{'n':'故事','v':'gushi'},{'n':'冒险','v':'maoxian'},{'n':'魔幻','v':'mohuan'},{'n':'玄幻','v':'xuanhuan'},{'n':'校园','v':'xiaoyuan'},{'n':'悬疑','v':'xuanyi'},{'n':'萌系','v':'mengxi'},{'n':'穿越','v':'chuanyue'},{'n':'后宫','v':'hougong'},{'n':'都市','v':'dushi'},{'n':'武侠','v':'wuxia'},{'n':'历史','v':'lishi'},{'n':'同人','v':'tongren'},{'n':'励志','v':'lizhi'},{'n':'百合','v':'baihe'},{'n':'治愈','v':'zhiyu'},{'n':'机甲','v':'jijia'},{'n':'纯爱','v':'chunai'},{'n':'美食','v':'meishi'},{'n':'血腥','v':'xuexing'},{'n':'僵尸','v':'jiangshi'},{'n':'恶搞','v':'egao'},{'n':'虐心','v':'nuexin'},{'n':'动作','v':'dongzuo'},{'n':'惊险','v':'jingxian'},{'n':'唯美','v':'weimei'},{'n':'震撼','v':'zhenhan'},{'n':'复仇','v':'fuchou'},{'n':'侦探','v':'zhentan'},{'n':'脑洞','v':'naodong'},{'n':'奇幻','v':'qihuan'},{'n':'宫斗','v':'gongdou'},{'n':'爆笑','v':'baoxiao'},{'n':'运动','v':'yundong'},{'n':'青春','v':'qingchun'},{'n':'灵异','v':'lingyi'},{'n':'古风','v':'gufeng'},{'n':'权谋','v':'quanmou'},{'n':'节操','v':'jiecao'},{'n':'明星','v':'mingxing'},{'n':'暗黑','v':'anhei'},{'n':'社会','v':'shehui'},{'n':'浪漫','v':'langman'},{'n':'栏目','v':'lanmu'},{'n':'仙侠','v':'xianxia'}]},
+ {'key':'type','name':'字母','init':'all','value':[{'n':'A','v':'lettera'},{'n':'B','v':'letterb'},{'n':'C','v':'letterc'},{'n':'D','v':'letterd'},{'n':'E','v':'lettere'},{'n':'F','v':'letterf'},{'n':'G','v':'letterg'},{'n':'H','v':'letterh'},{'n':'I','v':'letteri'},{'n':'J','v':'letterj'},{'n':'K','v':'letterk'},{'n':'L','v':'letterl'},{'n':'M','v':'letterm'},{'n':'N','v':'lettern'},{'n':'O','v':'lettero'},{'n':'P','v':'letterp'},{'n':'Q','v':'letterq'},{'n':'R','v':'letterr'},{'n':'S','v':'letters'},{'n':'T','v':'lettert'},{'n':'U','v':'letteru'},{'n':'V','v':'letterv'},{'n':'W','v':'letterw'},{'n':'X','v':'letterx'},{'n':'Y','v':'lettery'},{'n':'Z','v':'letterz'}]},
+ ],
+ };
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg == 0) pg = 1;
+ let page = '';
+ if (pg > 1) {
+ page = `${pg}.html`;
+ }
+ const link = HOST + `/${extend.type || 'all'}/${page}`;
+ const html = await request(link);
+ const $ = load(html);
+ const list = $('.dmList li');
+ const books = _.map(list, (item) => {
+ const $item = $(item);
+ const $a = $item.find('dt a:first');
+ const $img = $item.find('img:first');
+ const $span = $item.find('span:first');
+ return {
+ book_id: $a.attr('href'),
+ book_name: $a.text(),
+ book_pic: $img.attr('src'),
+ book_remarks: $span.text(),
+ };
+ });
+ const hasMore = $('.NewPages a:contains(下一页)').length > 0;
+ return {
+ page: pg,
+ pagecount: hasMore ? pg + 1 : pg,
+ list: books,
+ };
+}
+
+async function detail(id) {
+ const html = await request(HOST + id);
+ const $ = load(html);
+ const book = {
+ book_name: $('.title h1').text(),
+ book_director: $('.info p:contains(原著作者) a').text().trim(),
+ book_content: $('.introduction').text().trim(),
+ book_remarks: $('.title a:first').text(),
+ };
+ const list = $('.plist a');
+ const urls = _.map(list, (item) => {
+ const $item = $(item);
+ let title = $item.text().trim();
+ if (_.isEmpty(title)) {
+ title = '观看'
+ }
+ const href = $item.attr('href');
+ return title + '$' + href;
+ }).join('#');
+ book.volumes = '笨狗';
+ book.urls = urls;
+
+ return {
+ list: [book],
+ };
+}
+
+async function play(flag, id, flags) {
+ try {
+ const html = await request(HOST + id);
+ const matches = html.match(/var qTcms_S_m_murl_e=\"(.*)\";/);
+ const decoded = base64Decode(matches[1]);
+ const picList = decoded.split('$');
+ const content = [];
+ for (let i = 0; i < picList.length; i += 2) {
+ content.push(picList[i]);
+ }
+ return {
+ content: content,
+ };
+ } catch (e) {
+ console.debug('error: ' + e);
+ return {
+ content: '',
+ };
+ }
+}
+
+function base64Decode(text) {
+ return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text));
+}
+
+async function search(wd, quick, pg) {
+ if (pg == 0) pg = 1;
+ let page = '';
+ if (pg > 1) {
+ page = `&page=${pg}`;
+ }
+ const link = HOST + `/statics/search.aspx?key=${encodeURIComponent(wd)}${page}`;
+ const html = await request(link);
+ const $ = load(html);
+ const list = $('.dmList li');
+ const books = _.map(list, (item) => {
+ const $item = $(item);
+ const $a = $item.find('dt a:first');
+ const $img = $item.find('img:first');
+ const $span = $item.find('span:first');
+ return {
+ book_id: $a.attr('href'),
+ book_name: $a.text(),
+ book_pic: $img.attr('src'),
+ book_remarks: $span.text(),
+ };
+ });
+ const hasMore = $('.NewPages a:contains(下一页)').length > 0;
+ return {
+ page: pg,
+ pagecount: hasMore ? pg + 1 : pg,
+ list: books,
+ };
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
diff --git a/cat/js/bili_open.js b/cat/js/bili_open.js
new file mode 100644
index 0000000..5f62fd5
--- /dev/null
+++ b/cat/js/bili_open.js
@@ -0,0 +1,621 @@
+import { Crypto, jinja2, _ } from 'assets://js/lib/cat.js';
+
+let siteKey = '';
+let siteType = 0;
+
+let cookie = '';
+let login = '';
+let vip = false;
+let extendObj = {};
+let bili_jct = '';
+let vod_audio_id = {
+ 30280: 192000,
+ 30232: 132000,
+ 30216: 64000,
+};
+
+let vod_codec = {
+ // 13: 'AV1',
+ 12: 'HEVC',
+ 7: 'AVC',
+};
+
+const UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36';
+
+async function request(reqUrl, ua, buffer) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: ua ? ua : { 'User-Agent': UA },
+ timeout: 60000,
+ buffer: buffer ? 1 : 0,
+ });
+ return res.content;
+}
+
+async function post(reqUrl, postData, ua, posttype) {
+ let res = await req(reqUrl, {
+ method: 'post',
+ headers: ua ? ua : { 'User-Agent': UA },
+ data: postData,
+ timeout: 60000,
+ postType: posttype,
+ });
+ return res.content;
+}
+
+function getHeaders() {
+ const headers = {
+ 'User-Agent': UA,
+ };
+ if (!_.isEmpty(cookie)) {
+ headers.cookie = cookie;
+ }
+ return headers;
+}
+
+async function getCookie() {
+ let result = await req('https://www.bilibili.com', {
+ method: 'get',
+ headers: { 'User-Agent': UA },
+ timeout: 60000,
+ });
+ const setCookieHeaders = result.headers['set-cookie'];
+ cookie = setCookieHeaders.map((kk) => kk.split(';')[0] + ';').join('');
+}
+
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+ let extend = cfg.ext;
+
+ if (cfg.ext.hasOwnProperty('categories')) extend = cfg.ext.categories;
+ if (cfg.ext.hasOwnProperty('cookie')) cookie = cfg.ext.cookie;
+ // 获取csrf
+ const cookies = cookie.split(';');
+ cookies.forEach(cookie => {
+ if (cookie.includes('bili_jct')) {
+ bili_jct = cookie.split('=')[1];
+ }
+ });
+
+ if (_.isEmpty(cookie)) await getCookie();
+ let result = JSON.parse(await request('https://api.bilibili.com/x/web-interface/nav', getHeaders()));
+ login = result.data.isLogin;
+ vip = result.data.vipStatus;
+ const ext = extend.split('#');
+ const jsonData = [
+ {
+ key: 'order',
+ name: '排序',
+ value: [
+ { n: '综合排序', v: '0' },
+ { n: '最多点击', v: 'click' },
+ { n: '最新发布', v: 'pubdate' },
+ { n: '最多弹幕', v: 'dm' },
+ { n: '最多收藏', v: 'stow' },
+ ],
+ },
+ {
+ key: 'duration',
+ name: '时长',
+ value: [
+ { n: '全部时长', v: '0' },
+ { n: '60分钟以上', v: '4' },
+ { n: '30~60分钟', v: '3' },
+ { n: '10~30分钟', v: '2' },
+ { n: '10分钟以下', v: '1' },
+ ],
+ },
+ ];
+ const newarr = [];
+ const d = {};
+ const sc = {
+ type_name: "首页",
+ type_id: "首页",
+ land: 1,
+ ratio: 1.33,
+ }
+ newarr.push(sc);
+ for (const kk of ext) {
+ const c = {
+ type_name: kk,
+ type_id: kk,
+ land: 1,
+ ratio: 1.33,
+ };
+ newarr.push(c);
+ d[kk] = jsonData;
+ }
+ if (!_.isEmpty(bili_jct)) {
+ const hc = {
+ type_name: "历史记录",
+ type_id: "历史记录",
+ land: 1,
+ ratio: 1.33,
+ }
+ newarr.push(hc);
+ }
+ extendObj = {
+ classes: newarr,
+ filter: d,
+ };
+}
+
+function home(filter) {
+ try {
+ const jSONObject = {
+ class: extendObj.classes,
+ };
+ if (filter) {
+ jSONObject.filters = extendObj.filter;
+ }
+ return JSON.stringify(jSONObject);
+ } catch (e) {
+ return '';
+ }
+}
+
+async function homeVod() {
+ try {
+ const list = [];
+ const url = 'https://api.bilibili.com/x/web-interface/index/top/rcmd?ps=14&fresh_idx=1&fresh_idx_1h=1';
+
+ const response = await request(url, getHeaders());
+ const responseData = JSON.parse(response);
+ const vods = responseData.data.item;
+
+ for (const item of vods) {
+ const vod = {};
+ let imageUrl = item.pic;
+ if (imageUrl.startsWith('//')) {
+ imageUrl = 'https:' + imageUrl;
+ }
+ let cd = getFullTime(item.duration);
+
+ vod.vod_id = item.bvid;
+ vod.vod_name = removeTags(item.title);
+ vod.vod_pic = imageUrl;
+ vod.vod_remarks = cd;
+ vod.style = {
+ type: 'rect',
+ ratio: 1.33,
+ },
+ list.push(vod);
+ }
+
+ const result = { list: list };
+ return JSON.stringify(result);
+ } catch (e) { }
+}
+
+async function category(tid, page, filter, ext) {
+ if (page < 1) page = 1;
+ try {
+ if (Object.keys(ext).length > 0 && ext.hasOwnProperty('tid') && ext['tid'].length > 0) {
+ tid = ext['tid'];
+ }
+ let url = '';
+ url = `https://api.bilibili.com/x/web-interface/search/type?search_type=video&keyword=${encodeURIComponent(tid)}`;
+
+ if (Object.keys(ext).length > 0) {
+ for (const k in ext) {
+ if (k == 'tid') {
+ continue;
+ }
+ url += `&${encodeURIComponent(k)}=${encodeURIComponent(ext[k])}`;
+ }
+ }
+
+ url += `&page=${encodeURIComponent(page)}`;
+
+ if (tid == "首页") {
+ url = "https://api.bilibili.com/x/web-interface/index/top/rcmd?ps=14&fresh_idx=" + page + "&fresh_idx_1h=" + page;
+ } else if (tid == "历史记录") {
+ url = "https://api.bilibili.com/x/v2/history?pn=" + page;
+ }
+
+ const data = JSON.parse(await request(url, getHeaders())).data;
+ let items = data.result;
+ if (tid == "首页") {
+ items = data.item;
+ } else if (tid == "历史记录") {
+ items = data;
+ }
+
+ const videos = [];
+ for (const item of items) {
+ const video = {};
+ let pic = item.pic;
+ if (pic.startsWith('//')) {
+ pic = 'https:' + pic;
+ }
+ let cd = getFullTime(item.duration);
+
+ video.vod_remarks = cd;
+ video.vod_id = item.bvid;
+ video.vod_name = removeTags(item.title);
+ video.vod_pic = pic;
+
+ video.style = {
+ type: 'rect',
+ ratio: 1.33,
+ },
+ videos.push(video);
+ }
+
+ const result = {
+ page: page,
+ pagecount: data.numPages ?? (page + 1),
+ limit: videos.length,
+ total: videos.length * (page + 1),
+ list: videos,
+ };
+
+ return JSON.stringify(result);
+ } catch (e) { }
+ return null;
+}
+
+async function detail(ids) {
+ try {
+ const bvid = ids;
+ const detailUrl = `https://api.bilibili.com/x/web-interface/view?bvid=${bvid}`;
+
+ const detailData = JSON.parse(await request(detailUrl, getHeaders())).data;
+ // 记录历史
+ if (!_.isEmpty(bili_jct)) {
+ const historyReport = 'https://api.bilibili.com/x/v2/history/report';
+ let dataPost = {
+ aid: detailData.aid,
+ cid: detailData.cid,
+ csrf: bili_jct,
+ }
+ await post(historyReport, dataPost, getHeaders(), 'form');
+ }
+ let cd = getFullTime(detailData.duration);
+ const aid = detailData.aid;
+ const video = {
+ vod_id: bvid,
+ vod_name: detailData.title,
+ vod_pic: detailData.pic,
+ type_name: detailData.tname,
+ vod_year: '',
+ vod_area: '',
+ vod_remarks: cd,
+ vod_actor: '',
+ vod_director: '',
+ vod_content: detailData.desc,
+ };
+
+ const playurldata = 'https://api.bilibili.com/x/player/playurl?avid=' + aid + '&cid=' + detailData.cid + '&qn=127&fnval=4048&fourk=1';
+ const playurldatas = JSON.parse(await request(playurldata, getHeaders()));
+
+ const playurldatalist = playurldatas.data;
+ const accept_quality = playurldatalist.accept_quality;
+ const accept_description = playurldatalist.accept_description;
+ const qualitylist = [];
+ const descriptionList = [];
+
+ for (let i = 0; i < accept_quality.length; i++) {
+ if (!vip) {
+ if (!login) {
+ if (accept_quality[i] > 32) continue;
+ } else {
+ if (accept_quality[i] > 80) continue;
+ }
+ }
+ descriptionList.push(base64Encode(accept_description[i]));
+ qualitylist.push(accept_quality[i]);
+ }
+
+ let treeMap = {};
+ const jSONArray = detailData.pages;
+ let playList = [];
+ for (let j = 0; j < jSONArray.length; j++) {
+ const jSONObject6 = jSONArray[j];
+ const cid = jSONObject6.cid;
+ const playUrl = j + '$' + aid + '+' + cid + '+' + qualitylist.join(':') + '+' + descriptionList.join(':');
+ playList.push(playUrl);
+ }
+ treeMap['dash'] = playList.join('#');
+ treeMap['mp4'] = playList.join('#');
+
+ const relatedUrl = 'https://api.bilibili.com/x/web-interface/archive/related?bvid=' + bvid;
+ const relatedData = JSON.parse(await request(relatedUrl, getHeaders())).data;
+ playList = [];
+ for (let j = 0; j < relatedData.length; j++) {
+ const jSONObject6 = relatedData[j];
+ const cid = jSONObject6.cid;
+ const title = jSONObject6.title;
+ const aaid = jSONObject6.aid;
+ const playUrl = title + '$' + aaid + '+' + cid + '+' + qualitylist.join(':') + '+' + descriptionList.join(':');
+ playList.push(playUrl);
+ }
+ treeMap['相关'] = playList.join('#');
+
+ video.vod_play_from = Object.keys(treeMap).join("$$$");
+ video.vod_play_url = Object.values(treeMap).join("$$$");
+
+ const list = [video];
+ const result = { list };
+ return JSON.stringify(result);
+ } catch (e) { }
+ return null;
+}
+
+async function play(flag, id, flags) {
+ try {
+ const playHeaders = { Referer: 'https://www.bilibili.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36' };
+ const ids = id.split('+');
+ const aid = ids[0];
+ const cid = ids[1];
+ const qualityIds = ids[2].split(':');
+ const qualityName = ids[3].split(':');
+ const dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + cid;
+ if (flag == 'dash' || flag == '相关') {
+ // dash mpd 代理
+ const js2Base = await js2Proxy(true, siteType, siteKey, 'dash/', {});
+ let urls = [];
+ for (let i = 0; i < qualityIds.length; i++) {
+ urls.push(base64Decode(qualityName[i]), js2Base + base64Encode(aid + '+' + cid + '+' + qualityIds[i]));
+ }
+ return JSON.stringify({
+ parse: 0,
+ url: urls,
+ danmaku: dan,
+ header: playHeaders,
+ });
+ } else if (flag == 'mp4') {
+ // 直链
+ let urls = [];
+ for (let i = 0; i < qualityIds.length; i++) {
+ const url = `https://api.bilibili.com/x/player/playurl?avid=${aid}&cid=${cid}&qn=${qualityIds[i]}&fourk=1`;
+ const resp = JSON.parse(await request(url, getHeaders()));
+ const data = resp.data;
+ if (data.quality != qualityIds[i]) continue;
+ let durl = data.durl[0].url;
+ urls.push(base64Decode(qualityName[i]), durl);
+ }
+
+ return JSON.stringify({
+ parse: 0,
+ url: urls,
+ danmaku: dan,
+ header: playHeaders,
+ });
+ } else {
+ // 音频外挂
+ let urls = [];
+ let audios = [];
+ for (let i = 0; i < qualityIds.length; i++) {
+ const url = `https://api.bilibili.com/x/player/playurl?avid=${aid}&cid=${cid}&qn=${qualityIds[i]}&fnval=4048&fourk=1`;
+ let resp = JSON.parse(await request(url, getHeaders()));
+ const dash = resp.data.dash;
+ const video = dash.video;
+ const audio = dash.audio;
+ for (let j = 0; j < video.length; j++) {
+ const dashjson = video[j];
+ if (dashjson.id == qualityIds[i]) {
+ for (const key in vod_codec) {
+ if (dashjson.codecid == key) {
+ urls.push(base64Decode(qualityName[i]) + ' ' + vod_codec[key], dashjson.baseUrl);
+ }
+ }
+ }
+ }
+ if (audios.length == 0) {
+ for (let j = 0; j < audio.length; j++) {
+ const dashjson = audio[j];
+ for (const key in vod_audio_id) {
+ if (dashjson.id == key) {
+ audios.push({
+ title: _.floor(parseInt(vod_audio_id[key]) / 1024) + 'Kbps',
+ bit: vod_audio_id[key],
+ url: dashjson.baseUrl,
+ });
+ }
+ }
+ }
+ audios = _.sortBy(audios, 'bit');
+ }
+ }
+
+ return JSON.stringify({
+ parse: 0,
+ url: urls,
+ extra: {
+ audio: audios,
+ },
+ header: playHeaders,
+ });
+ }
+ } catch (e) { }
+ return null;
+}
+
+async function search(key, quick, pg) {
+ let page = pg || 1;
+ if (page == 0) page = 1;
+ try {
+ const ext = {
+ duration: '0',
+ };
+ let resp = JSON.parse(await category(key, page, true, ext));
+ const catVideos = resp.list;
+ const pageCount = resp.pagecount;
+ const videos = [];
+ for (let i = 0; i < catVideos.length; ++i) {
+ videos.push(catVideos[i]);
+ }
+ const result = {
+ page: page,
+ pagecount: pageCount,
+ land: 1,
+ ratio: 1.33,
+ list: videos,
+ };
+ return JSON.stringify(result);
+ } catch (e) { }
+ return null;
+}
+
+async function proxy(segments, headers) {
+ let what = segments[0];
+ let url = base64Decode(segments[1]);
+ if (what == 'dash') {
+ const ids = url.split('+');
+ const aid = ids[0];
+ const cid = ids[1];
+ const str5 = ids[2];
+ const urls = `https://api.bilibili.com/x/player/playurl?avid=${aid}&cid=${cid}&qn=${str5}&fnval=4048&fourk=1`;
+ let videoList = '';
+ let audioList = '';
+
+ let resp = JSON.parse(await request(urls, getHeaders()));
+ const dash = resp.data.dash;
+ const video = dash.video;
+ const audio = dash.audio;
+
+ for (let i = 0; i < video.length; i++) {
+ // if (i > 0) continue; // 只取一个
+ const dashjson = video[i];
+ if (dashjson.id == str5) {
+ videoList += getDashMedia(dashjson);
+ }
+ }
+
+ for (let i = 0; i < audio.length; i++) {
+ // if (i > 0) continue;
+ const ajson = audio[i];
+ for (const key in vod_audio_id) {
+ if (ajson.id == key) {
+ audioList += getDashMedia(ajson);
+ }
+ }
+ }
+
+ let mpd = getDash(resp, videoList, audioList);
+
+ return JSON.stringify({
+ code: 200,
+ content: mpd,
+ headers: {
+ 'Content-Type': 'application/dash+xml',
+ },
+ });
+ }
+ return JSON.stringify({
+ code: 500,
+ content: '',
+ });
+}
+
+function getDashMedia(dash) {
+ try {
+ let qnid = dash.id;
+ const codecid = dash.codecid;
+ const media_codecs = dash.codecs;
+ const media_bandwidth = dash.bandwidth;
+ const media_startWithSAP = dash.startWithSap;
+ const media_mimeType = dash.mimeType;
+ const media_BaseURL = dash.baseUrl.replace(/&/g, '&');
+ const media_SegmentBase_indexRange = dash.SegmentBase.indexRange;
+ const media_SegmentBase_Initialization = dash.SegmentBase.Initialization;
+ const mediaType = media_mimeType.split('/')[0];
+ let media_type_params = '';
+
+ if (mediaType == 'video') {
+ const media_frameRate = dash.frameRate;
+ const media_sar = dash.sar;
+ const media_width = dash.width;
+ const media_height = dash.height;
+ media_type_params = `height='${media_height}' width='${media_width}' frameRate='${media_frameRate}' sar='${media_sar}'`;
+ } else if (mediaType == 'audio') {
+ for (const key in vod_audio_id) {
+ if (qnid == key) {
+ const audioSamplingRate = vod_audio_id[key];
+ media_type_params = `numChannels='2' sampleRate='${audioSamplingRate}'`;
+ }
+ }
+ }
+ qnid += '_' + codecid;
+
+ return `
+
+
+ ${media_BaseURL}
+
+
+
+
+ `;
+ } catch (e) {
+ // Handle exceptions here
+ }
+}
+
+function getDash(ja, videoList, audioList) {
+ const duration = ja.data.dash.duration;
+ const minBufferTime = ja.data.dash.minBufferTime;
+ return `
+
+ ${videoList}
+ ${audioList}
+
+ `;
+}
+
+
+function base64Encode(text) {
+ return Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(text));
+}
+
+function base64Decode(text) {
+ return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text));
+}
+
+
+
+function removeTags(input) {
+ return input.replace(/<[^>]*>/g, '');
+}
+
+function getFullTime(numberSec) {
+ let totalSeconds = '';
+ try {
+ var timeParts = numberSec.split(":");
+ var min = parseInt(timeParts[0]);
+ var sec = parseInt(timeParts[1]);
+ totalSeconds = min * 60 + sec;
+ } catch (e) {
+ totalSeconds = parseInt(numberSec);
+ }
+ if (isNaN(totalSeconds)) {
+ return '无效输入';
+ }
+ if (totalSeconds >= 3600) {
+ const hours = Math.floor(totalSeconds / 3600);
+ const remainingSecondsAfterHours = totalSeconds % 3600;
+ const minutes = Math.floor(remainingSecondsAfterHours / 60);
+ const seconds = remainingSecondsAfterHours % 60;
+ return `${hours}小时 ${minutes}分钟 ${seconds}秒`;
+ } else {
+ const minutes = Math.floor(totalSeconds / 60);
+ const seconds = totalSeconds % 60;
+ return `${minutes}分钟 ${seconds}秒`;
+ }
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ proxy: proxy,
+ search: search,
+ };
+}
+
diff --git a/cat/js/bilibili.js b/cat/js/bilibili.js
new file mode 100644
index 0000000..4260eff
--- /dev/null
+++ b/cat/js/bilibili.js
@@ -0,0 +1 @@
+import{Crypto,load,_}from"assets://js/lib/cat.js";let key="bilibili",url="",siteKey="",siteType=0;const UA="Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1",cookie={};async function request(reqUrl,referer,mth,data,hd){var headers={"User-Agent":UA,Cookie:_.map(cookie,(value,key)=>key+"="+value).join(";")},referer=(referer&&(headers.referer=encodeURIComponent(referer)),await req(reqUrl,{method:mth||"get",headers:headers,data:data,postType:"post"===mth?"form":""}));return referer.content}async function init(cfg){siteKey=cfg.skey,siteType=cfg.stype,url=cfg.ext}async function home(filter){return(await request(url)).replaceAll("1$/$1","1$/$0")}async function homeVod(){return"{}"}async function category(tid,pg,filter,extend){pg<=0&&(pg=1);let api=url+"?t="+tid+"&pg="+pg;return extend&&(tid=Object.entries(extend).map(([key,val]=entry)=>"&"+key+"="+val),api=(api+=tid)+("&f="+encodeURIComponent(JSON.stringify(extend)))),request(api)}async function detail(id){return request(url+"?ids="+id)}async function play(flag,id,flags){return request(url.replace("/bilibili","/play")+"?bvid="+id+"&from=open")}async function search(wd,quick){return request(url+"?wd="+wd)}function __jsEvalReturn(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search}}export{__jsEvalReturn};
\ No newline at end of file
diff --git a/cat/js/bilibili_open.js b/cat/js/bilibili_open.js
new file mode 100644
index 0000000..4260eff
--- /dev/null
+++ b/cat/js/bilibili_open.js
@@ -0,0 +1 @@
+import{Crypto,load,_}from"assets://js/lib/cat.js";let key="bilibili",url="",siteKey="",siteType=0;const UA="Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1",cookie={};async function request(reqUrl,referer,mth,data,hd){var headers={"User-Agent":UA,Cookie:_.map(cookie,(value,key)=>key+"="+value).join(";")},referer=(referer&&(headers.referer=encodeURIComponent(referer)),await req(reqUrl,{method:mth||"get",headers:headers,data:data,postType:"post"===mth?"form":""}));return referer.content}async function init(cfg){siteKey=cfg.skey,siteType=cfg.stype,url=cfg.ext}async function home(filter){return(await request(url)).replaceAll("1$/$1","1$/$0")}async function homeVod(){return"{}"}async function category(tid,pg,filter,extend){pg<=0&&(pg=1);let api=url+"?t="+tid+"&pg="+pg;return extend&&(tid=Object.entries(extend).map(([key,val]=entry)=>"&"+key+"="+val),api=(api+=tid)+("&f="+encodeURIComponent(JSON.stringify(extend)))),request(api)}async function detail(id){return request(url+"?ids="+id)}async function play(flag,id,flags){return request(url.replace("/bilibili","/play")+"?bvid="+id+"&from=open")}async function search(wd,quick){return request(url+"?wd="+wd)}function __jsEvalReturn(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search}}export{__jsEvalReturn};
\ No newline at end of file
diff --git a/cat/js/bililive_open.js b/cat/js/bililive_open.js
new file mode 100644
index 0000000..04a60e6
--- /dev/null
+++ b/cat/js/bililive_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1C0ASBiaWxpbGl2ZV9vcGVuLmpzLGFzc2V0czovL2pzL2xpYi9jYXQuanMcX19qc0V2YWxSZXR1cm4CXw5zaXRlS2V5EHNpdGVUeXBlDGNvb2tpZQpsb2dpbgZ2aXAQYmlsaV9qY3QEVUEOcmVxdWVzdBRnZXRIZWFkZXJzEmdldENvb2tpZQhpbml0CGhvbWUOaG9tZVZvZBBjYXRlZ29yeQxkZXRhaWwIcGxheQxzZWFyY2gUcmVtb3ZlVGFnc/IBTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTVfNykgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzkxLjAuNDQ3Mi4xMTQgU2FmYXJpLzUzNy4zNgxyZXFVcmwEdWEMYnVmZmVyBnJlcwZyZXEMbWV0aG9kFFVzZXItQWdlbnQOaGVhZGVycw50aW1lb3V0DmNvbnRlbnQOaXNFbXB0eQxyZXN1bHQgc2V0Q29va2llSGVhZGVyczBodHRwczovL3d3dy5iaWxpYmlsaS5jb20Uc2V0LWNvb2tpZQZtYXAEa2sCOwZjZmcOY29va2llcwhza2V5CnN0eXBlBmV4dBxoYXNPd25Qcm9wZXJ0eRRzdGFydHNXaXRoCGh0dHAOZm9yRWFjaApwYXJzZVhodHRwczovL2FwaS5iaWxpYmlsaS5jb20veC93ZWItaW50ZXJmYWNlL25hdghkYXRhDmlzTG9naW4SdmlwU3RhdHVzEGluY2x1ZGVzAj0MZmlsdGVyCGxpbmsOY2xhc3NlcxJmaWx0ZXJPYmoQc29ydE5hbWWqAWh0dHBzOi8vYXBpLmxpdmUuYmlsaWJpbGkuY29tL3hsaXZlL3dlYi1pbnRlcmZhY2UvdjEvaW5kZXgvZ2V0V2ViQXJlYUxpc3Q/c291cmNlX2lkPTIIZWFjaAUfdTttDHNvcnRCeRJzdHJpbmdpZnkOZmlsdGVycwRpdBJmaWx0ZXJBbGwQdHlwZU5hbWUMdHlwZUlkFGZpbHRlckRhdGEIYXJlYRRhcmVhVmFsdWVzBGlkCHB1c2gOdHlwZV9pZBJ0eXBlX25hbWUIbGFuZApyYXRpbwhsaXN0BmtleQUGUjpTBWhR6JACbgJ2BGV4AmMOaW5kZXhPZghodG1sDHZpZGVvc6IBaHR0cHM6Ly9hcGkubGl2ZS5iaWxpYmlsaS5jb20vcm9vbS92MS9yb29tL2dldF91c2VyX3JlY29tbWVuZD9wYWdlPTEmcGFnZV9zaXplPTIwBnBpYxhzeXN0ZW1fY292ZXIELy8MaHR0cHM6DHJvb21pZAx2b2RfaWQKdGl0bGUQdm9kX25hbWUOdm9kX3BpYwU92EHcGHdhdGNoZWRfc2hvdxR0ZXh0X3NtYWxsCSAAIAA82JndCnVuYW1lFnZvZF9yZW1hcmtzBnRpZARwZwxleHRlbmTAAWh0dHBzOi8vYXBpLmxpdmUuYmlsaWJpbGkuY29tL3hsaXZlL3dlYi1pbnRlcmZhY2UvdjEvc2Vjb25kL2dldExpc3Q/cGxhdGZvcm09d2ViJnBhcmVudF9hcmVhX2lkPRImYXJlYV9pZD0uJnNvcnRfdHlwZT1vbmxpbmUmcGFnZT0IcGFnZRBudW1QYWdlcxJwYWdlY291bnQQcGFnZXNpemUKbGltaXQUbnVtUmVzdWx0cwp0b3RhbBJkZXRhaWxVcmwUZGV0YWlsRGF0YQZyaWQWbGl2ZV9zdGF0dXMGdm9keGh0dHBzOi8vYXBpLmxpdmUuYmlsaWJpbGkuY29tL3Jvb20vdjEvUm9vbS9nZXRfaW5mbz9yb29tX2lkPQ5yb29tX2lkCwBfrWT2ZfSVGv8SbGl2ZV90aW1lDnJlcGxhY2UCLQIuBypnAF+tZBBrZXlmcmFtZSBwYXJlbnRfYXJlYV9uYW1lBC0tEmFyZWFfbmFtZRB2b2RfdHlwZQk/YvSV91Ma/wsAMFUASQBEABr/BnVpZAMAMBJ2b2RfYWN0b3IYdm9kX2RpcmVjdG9yFmRlc2NyaXB0aW9uFnZvZF9jb250ZW50CVOQf5UoV79+GnZvZF9wbGF5X2Zyb20/ZgBsAHYAv37vjZ9TO3UkAHAAbABhAHQAZgBvAHIAbQA9AHcAZQBiACYAcQB1AGEAbABpAHQAeQA9ADQAXwBBIwBmAGwAdgC/fu+N2JoFbiQAcABsAGEAdABmAG8AcgBtAD0AdwBlAGIAJgBxAHUAYQBsAGkAdAB5AD0AMwBfAD0jAGgANQC/fu+Nn1M7dSQAcABsAGEAdABmAG8AcgBtAD0AaAA1ACYAcQB1AGEAbABpAHQ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
\ No newline at end of file
diff --git a/cat/js/book18_open.js b/cat/js/book18_open.js
new file mode 100644
index 0000000..f4bc865
--- /dev/null
+++ b/cat/js/book18_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1CwARxib29rMThfb3Blbi5qcyxhc3NldHM6Ly9qcy9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuCmRheWpzDGppbmphMghsb2FkBlVyaQJfDl8weDE4YzYOXzB4MzA0YhJfMHhjY2I2ODgSXzB4NTNmYzdkEl8weDI0NzhhZRJfMHgyNTIzOTcSXzB4NGQyNjY2El8weDkzYmYzNxJfMHg0MjBkZGISXzB4NWE2MmE4El8weDJiNmQ4NRJfMHg1ZjJmNzkSXzB4NTlmY2ViEl8weDNkODU3YxJfMHg1MmQwOGUHaFGHZSQACHRyaW0Kc3R5cGUcemgtQ04semg7cT0wLjgkL3poLWhhbnMvY2F0ZWdvcnkvDnJlcGxhY2UOYjpmaXJzdCwvemgtaGFucy9hcnRpY2xlL2luZGV4CHRleHQWL3poLWhhbnMvcS8IcHVzaAhlYWNoCHNrZXkIY2F0ZRomcGVyLXBhZ2U9MTAwEi9sb2dvLnBuZxBjaGlsZHJlbgZtYXAIZmluZE5uYXYubXQtMjpmaXJzdCBsaT5hW2hyZWYqPSIvY2F0ZWdvcnkvIl0WZGl2I2NvbnRlbnQOaW5kZXhPZhAvemgtaGFucw5jb250ZW50JHVsLmxpc3QtZ3JvdXAgbGk+YQw/cGFnZT0OYXR0cmlicwhocmVm9gJNb3ppbGxhLzUuMCAoTGludXg7IEFuZHJvaWQgMTE7IE0yMDA3SjNTQyBCdWlsZC9SS1ExLjIwMDgyNi4wMDI7IHd2KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzQuMCBDaHJvbWUvNzcuMC4zODY1LjEyMCBNUVFCcm93c2VyLzYuMiBUQlMvMDQ1NzE0IE1vYmlsZSBTYWZhcmkvNTM3LjM2DGJvb2sxOCxodHRwczovL3d3dy5ib29rMTgub3JnCDB4MTYSXzB4NTE2NGE3El8weDE4YzZiMBJfMHgzMDRiNzMSXzB4NDhiZTgwCnNoaWZ0El8weDQ3YjgzMwZyZXEIMHgxYR5BY2NlcHQtTGFuZ3VhZ2UUVXNlci1BZ2VudA5oZWFkZXJzCDB4MTASXzB4OGI2Mzc5BjB4NAgweDE5El8weDFjMmE3MRJfMHgxNzkyM2YSXzB4ODYxN2Y4El8weDJiMDgyMxJfMHgyY2UyNGQGMHhmBjB4YQYweGMKY2h1bmsOdHlwZV9pZAV/lcd7EnR5cGVfbmFtZQp0bGluZQpyYXRpbwp3aWR0aAgweDFlBe13x3sIMHgxYgUGUnt8DmZpbHRlcnMSXzB4MzUxNjViBjB4MAJuCDB4MTQIMHgxNQJ2El8weDQ2MTRjMhJfMHgzNjA5MzMGMHg1BmtleQhpbml0BjB4MgR7fRJfMHg0Y2FiZWQSXzB4OTFkNDI5El8weDRiNmY1YxJfMHgxNjIzZDkSXzB4MTdhZWRmEl8weDFkN2ZhMxJfMHhjOTM3MTASXzB4MWNjYTk1El8weDNkMDYxORJfMHgyYTJiNmMSXzB4MzlmMjMxCDB4MTMGMHg2CDB4MTEGMHhiCDB4MWQkZGVjb2RlVVJJQ29tcG9uZW50DmJvb2tfaWQSYm9va19uYW1lEGJvb2tfcGljGGJvb2tfcmVtYXJrcwhwYWdlCDB4MTIScGFnZWNvdW50CGxpc3QSXzB4ZDMzNmY5El8weDgyODJiMRJfMHgyZjg5MTYSXzB4MzZiOTlhEl8weDM3OTM0NBJfMHgzZDYyM2MGMHhlEi9hcnRpY2xlLwgweDE3HGRpdi5jb250ZW50IGgxBjB4Mw52b2x1bWVzBWhRLGcIdXJscwYweDgCIxJfMHgzYjYxOTISXzB4MTdiNTg1CDB4MWMIMHgxOAIkEl8weDRmZTY4ORJfMHg1MGYyOTMSXzB4M2JhNWVjEl8weDFmMzkzZhJfMHhmNDRjMWUGMHhkEl8weDQ3NTQ3ORJfMHgyMTQ1YWYSXzB4NDdiYmNkEl8weDM1NjdkMxJfMHgxZDNmZDMSXzB4MmFjNjNlEl8weDM4MGRiZhJfMHg1YTBjMzUSXzB4NTkyNDBkEl8weDUwZmU1YhJfMHgzMWUzMjUGMHgxBjB4OQhkYXRhBjB4Nwhob21lDmhvbWVWb2QQY2F0ZWdvcnkMZGV0YWlsCHBsYXkMc2VhcmNoD6QDAaYDAQAUqAMABQCqAwABrAMAAq4DAAOwAwAEsgMADgAGAaABAAAAHxULiwIAqgMADKwDAQyuAwIMsAMDDLIDBAy0AwANtgMBDbgDAgm6AwMJvAMECb4DBQnAAwYNwgMHAcQDCAHGAwkByAMKAcoDCwHMAwwBzgMNAdADDgGoAw8BCOgvvgJfDAC+A18NAL4EXw4AvgVfDwC+Bl8QAL4HXxEAvghfEgC+CV8TAL4KXxQAKQTpAAAABOoAAAAE6wAAAATsAAAABO0AAAAE7gAAAATvAAAABPAAAAAE8QAAAATyAAAABPMAAAAE9AAAAAT1AAAABPYAAAAE9wAAAAT4AAAABFsAAAAE+QAAAAT6AAAABPsAAAAE/AAAAAT9AAAABP4AAAAE/wAAAAQAAQAABAEBAAAEMAAAAAQCAQAABAMBAAAEBAEAAAQFAQAAJh8AXwUAvgBlBQC8ugHuDr4BTdsAAABfBgAEBgEAAF8HAAQHAQAAXwgAv18JALNfCgBlBgAECAEAAO1fCwAppAMBAgH4DkMGAQACAQICAAETA5IEAAFAlAQAAQCWBAEAMGEAAL4ATQsBAADHYgAA0I/Y7SmkAwEADkMGAQABAAEEAQAdAZgEAAEAkgQAA8+O1+gY2wTzAAAASNsEDQEAAEgkAAAkAQAO6uUppAMBAA5DBgEAAgECAgEAEQOSBAABAJQEAAEAlgQBACC0AwUMYQAAz7Oe02UAAM9Hx2IAACikAwEADmIGAcIDAQABBgIAMAGcBAABALYDBgzAAwsMOA8BAADPCwtlAAAEEAEAAO1MEQEAAGUBAEwSAQAATBMBAADui2UAAAQUAQAA7UcupAMBAA5iBgHEAwEAAQMDACIBqgQAAQC8AwkItgMGDL4DCgjPZQEABBYBAADtRxFmAAAOz2UBAAQXAQAA7UcRZgIADgYupAMBAA5iBgHGAwEEAQYFAosCBbAEAAEAsgQBADC0BAEBcLYEAQJguAQBA3C2AwYMwgMMALoDCAiuAwIMsgMEDGEDAGECAGEBAGEAANxlAgBlAAAEHQEAAO2d7YvHZQMAYgAA7cgLJgAATO0AAADJZQQAZQAABB4BAADtSGIBAGUAAAQfAQAA7e2+ACQCAMplBAAE9AAAAEhlBAAEIAEAAEhiAwC7CCQCAL4BJAIADgsLZQAABB0BAADtTCEBAAAEIgEAAEwjAQAAu/5MJAEAALRMJQEAALz0AUwmAQAAC2UAAAQnAQAA7UwhAQAABCgBAABMIwEAALv+TCQBAAC0TCUBAAC89AFMJgEAAAtlAAAEKQEAAO1MIQEAAAQqAQAATCMBAAC7/kwkAQAAtEwlAQAAvPQBTCYBAAAmAwBMHgAAAGICAEwrAQAALqQDAQAOQgYBAAEAAQQCADMB2AQAAQC0BAENtgMADAtlAADP7WUBAAQtAQAA7UgkAABMLgEAAM9lAQAELwEAAO1HZQEABDABAADtR0wxAQAAKKQDAQAOQgYBAAEBAQMDAE0C5AQAAQDmBAEAMLYDAAy4BAMNtgQCCWEAAAtlAAAENAEAAO1MNQEAAL9MNgAAAGUBALNHBDEBAABHTDYBAADPTEAAAADHZQIAZQAABCkBAADtR2UAAAQ3AQAA7UhiAAAkAQAppAMBAA5iBgHIAwAAAAEAAAYABDgBAAAupAMBAA5iBgHKAwQHBAoEANcCC/IEAAEA9AQAAQD2BAABAPgEAAEA+gQBACD8BAEBMP4EAQIwgAUBAzCCBQEEIIQFAgUwhgUDBiC6AwgItgMGDMIDDACuAwIMYQQAYQMAYQIAYQEAYQAA0BHpAw60x7NiAACpEegHDrQRYwAADmUAANJlAQAENAEAAO1HEekDDs+dZQEABEQBAADtYgAAnWUBAARFAQAA7Z2dyN1iAQDti8llAwBiAgDtyiYAAMEEYQUAYgMAZQEABEYBAADt7X3rowDBBWEGAGIDAGIFAO1lAQAERwEAAO1IZQEABEgBAADtJAEAZQEABC0BAADtSCQAAMEGYgYAEekaDmIDAGIFAO1lAQAELQEAAO1IJAAAEWMGAA5iBABlAQAENwEAAO1ICzhJAQAAYgUAZQEABC8BAADtR2UBAAQwAQAA7UftTEoBAABiBgBMSwEAAGUAAAT4AAAAnUxMAQAAv0xNAQAAJAEADoAAaVz///8OgwtiAABMTgEAALtkYgQAZQEABE8BAADtR6noCGIAALSd6gRiAABMUAEAAGIEAExRAQAALqQDAQAOYgYBzAMBBQEFBQHSAQakBQABAKYFAAAAqAUBAHCqBQECIKwFAQNgrgUDBHC2AwYMwgMMALoDCAiuAwIMsgMEDGEDAGECAGEBANxlAgC/z52d7YvHZQMAw+3IC8kmAADKz2UAAARYAQAA7UgEWQEAACQBALOm6B9iAwBlAAAENwEAAO1IZQAABFoBAADtz50kAQAO6kRhBABiAQAEWwEAAO1lAAAELQEAAO1IJAAAEekDDr/BBGUEAGUAAARcAQAA7UhiAQBlAAAERgEAAO3tvgAkAgAOaAQAYgIABF0BAAAEXgEAAEliAgAEXwEAAHFiAwBlAAAEYAEAAO1IBGEBAAAkAQBJC2ICACYBAExRAQAALqQDAQAOQgYBAAEBAQYEAHsCxAUAAQDGBQEAIKgFAQ22AwAMrgUEDawFAwlhAABlAADP7WUBAAQtAQAA7UgkAABlAQAEZAEAAO1IZQIAvyQCAGUBAARlAQAA7UgkAADHs2IAAGUBAARPAQAA7UepEegJDmUCABFjAAAOZQMABPMAAABIYgAABGYBAACdz2UBAAQvAQAA7UdlAQAEMAEAAO1HnSQBACmkAwEADmIGAc4DAwIDBgQCUwXOBQABANAFAAEA0gUAAQDUBQAAANYFAwADwgMMALoDCAiuAwIMtgMGDGxGAAAA22UBAL/QnZ3ti8cLZQIAw+1lAwAEbAEAAO3tZQMABC0BAADtSCQAAGUDAARkAQAA7Ui9AL0BM78kAgBMAAEAAA8uyGwHAAAADuoCLwcupAMBAAcUYm9vazE4Lm9yZwdmAQEALAAAAAgGAAAABAf1////CwABYgABbwABbwABawABMQABOAADAW8AAXIAAWcADAAKDmIGAdADAwgDCgQAjQML2gUAAQDcBQABAN4FAAEA4AUBACDiBQEBMOQFAQIw5gUBAzDoBQEEIOoFAgUw7AUDBiDuBQMHMLoDCAi2AwYMwgMMAK4DAgxhBABhAwBhAgBhAQBhAADREekDDrTHs2IAAKkR6AcOtBFjAAAOZQAAZQEABHgBAADtnc+dZQEABEQBAADtYgAAnZ3I3WIBAO2LyWUDAGICAO3KJgAAwQRhBQBiAwBlAQAERgEAAO3tfevTAMEFYQcAYQYAYgMAYgUA7WUBAARHAQAA7UhlAQAESAEAAO0kAQBlAQAELQEAAO1IJAAAwQZiBgAR6RoOYgMAYgUA7WUBAAQtAQAA7UgkAAARYwYADmIFAGUBAAR5AQAA7Ue0R+gUYgUABPkAAABHtEcEegEAAEfqAr/BB2IEAGUBAAQ3AQAA7UgLOEkBAABiBQBlAQAELwEAAO1HZQEABDABAADtR+1MSgEAAGIGAExLAQAAZQAAZQEABHsBAADtnUxMAQAAYgcATE0BAAAkAQAOgABpLP///w6DC7v+TCQBAAC0TCUBAAC89AFMJgEAAGIAAExOAQAAuzJiBABlAQAETwEAAO1HqegIYgAAtJ3qBGIAAExQAQAAYgQATFEBAAAupAMBAA5DBgGoAwAAAAIHADIAxAMNAMYDDgDIAw8AygMQAMwDEQDOAxIA0AMTAAvbTDYBAADcTHwBAADdTH0BAADeTH4BAABeBABMfwEAAF4FAEyAAQAAXgYATIEBAAAopAMBAA==
\ No newline at end of file
diff --git a/cat/js/bookan_book_open.js b/cat/js/bookan_book_open.js
new file mode 100644
index 0000000..cf071c5
--- /dev/null
+++ b/cat/js/bookan_book_open.js
@@ -0,0 +1,137 @@
+import { _ } from './lib/cat.js';
+
+let key = 'bookan';
+let url = 'https://api.bookan.com.cn';
+let siteKey = '';
+let siteType = 0;
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ return JSON.stringify({
+ class: [
+ { type_id: '1305', type_name: '少年读物' },
+ { type_id: '1304', type_name: '儿童文学' },
+ { type_id: '1320', type_name: '国学经典' },
+ { type_id: '1306', type_name: '文艺少年' },
+ { type_id: '1309', type_name: '育儿心经' },
+ { type_id: '1310', type_name: '心理哲学' },
+ { type_id: '1307', type_name: '青春励志' },
+ { type_id: '1312', type_name: '历史小说' },
+ { type_id: '1303', type_name: '故事会' },
+ { type_id: '1317', type_name: '音乐戏剧' },
+ { type_id: '1319', type_name: '相声评书' },
+ ],
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ pg = pg || 1;
+ if (pg == 0) pg = 1;
+ let content = await request(`${url}/voice/book/list?instance_id=25304&page=${pg}&category_id=${tid}&num=24`);
+ let data = JSON.parse(content).data;
+ let books = [];
+ for (const book of data.list) {
+ books.push({
+ book_id: book.id,
+ book_name: book.name,
+ book_pic: book.cover,
+ book_remarks: book.extra.author,
+ });
+ }
+ return JSON.stringify({
+ page: data.current_page,
+ pagecount: data.last_page,
+ limit: 24,
+ total: data.total,
+ list: books,
+ });
+}
+
+async function detail(id) {
+ let content = await request(`${url}/voice/album/units?album_id=${id}&page=1&num=200&order=1`);
+ let data = JSON.parse(content).data;
+
+ let book = {
+ audio:1,
+ book_id: id,
+ type_name: '',
+ book_year: '',
+ book_area: '',
+ book_remarks: '',
+ book_actor: '',
+ book_director: '',
+ book_content: '',
+ };
+ let us = _.map(data.list, function (b) {
+ return formatPlayUrl(b.title) + '$' + b.file;
+ }).join('#');
+ book.volumes = '书卷';
+ book.urls = us;
+
+ return JSON.stringify({
+ list: [book],
+ });
+}
+
+function formatPlayUrl(name) {
+ return name
+ .trim()
+ .replace(/<|>|《|》/g, '')
+ .replace(/\$|#/g, ' ')
+ .trim();
+}
+
+async function proxy(segments, headers) {}
+
+async function play(flag, id, flags) {
+ return JSON.stringify({
+ parse: 0,
+ url: id,
+ });
+}
+
+async function search(wd, quick, pg) {
+ pg = pg || 1;
+ if (pg == 0) pg = 1;
+ let content = await request(`https://es.bookan.com.cn/api/v3/voice/book?instanceId=25304&keyword=${wd}&pageNum=${pg}&limitNum=20`);
+ let data = JSON.parse(content).data;
+ let books = [];
+ for (const book of data.list) {
+ books.push({
+ book_id: book.id,
+ book_name: book.name,
+ book_pic: book.cover,
+ book_remarks: book.extra.author,
+ });
+ }
+ return JSON.stringify({
+ page: data.current_page,
+ pagecount: data.last_page,
+ limit: 20,
+ total: data.total,
+ list: books,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
diff --git a/cat/js/bookan_open.js b/cat/js/bookan_open.js
new file mode 100644
index 0000000..b348b92
--- /dev/null
+++ b/cat/js/bookan_open.js
@@ -0,0 +1,137 @@
+import { _ } from './lib/cat.js';
+
+let key = 'bookkan';
+let url = 'https://api.bookan.com.cn';
+let siteKey = '';
+let siteType = 0;
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ return JSON.stringify({
+ class: [
+ { type_id: '1305', type_name: '少年读物' },
+ { type_id: '1304', type_name: '儿童文学' },
+ { type_id: '1320', type_name: '国学经典' },
+ { type_id: '1306', type_name: '文艺少年' },
+ { type_id: '1309', type_name: '育儿心经' },
+ { type_id: '1310', type_name: '心理哲学' },
+ { type_id: '1307', type_name: '青春励志' },
+ { type_id: '1312', type_name: '历史小说' },
+ { type_id: '1303', type_name: '故事会' },
+ { type_id: '1317', type_name: '音乐戏剧' },
+ { type_id: '1319', type_name: '相声评书' },
+ ],
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ pg = pg || 1;
+ if (pg == 0) pg = 1;
+ let content = await request(`${url}/voice/book/list?instance_id=25304&page=${pg}&category_id=${tid}&num=24`);
+ let data = JSON.parse(content).data;
+ let books = [];
+ for (const book of data.list) {
+ books.push({
+ book_id: book.id,
+ book_name: book.name,
+ book_pic: book.cover,
+ book_remarks: book.extra.author,
+ });
+ }
+ return JSON.stringify({
+ page: data.current_page,
+ pagecount: data.last_page,
+ limit: 24,
+ total: data.total,
+ list: books,
+ });
+}
+
+async function detail(id) {
+ let content = await request(`${url}/voice/album/units?album_id=${id}&page=1&num=200&order=1`);
+ let data = JSON.parse(content).data;
+
+ let book = {
+ audio: 1,
+ book_id: id,
+ type_name: '',
+ book_year: '',
+ book_area: '',
+ book_remarks: '',
+ book_actor: '',
+ book_director: '',
+ book_content: '',
+ };
+ let us = _.map(data.list, function (b) {
+ return formatPlayUrl(b.title) + '$' + b.file;
+ }).join('#');
+ book.volumes = '书卷';
+ book.urls = us;
+
+ return JSON.stringify({
+ list: [book],
+ });
+}
+
+function formatPlayUrl(name) {
+ return name
+ .trim()
+ .replace(/<|>|《|》/g, '')
+ .replace(/\$|#/g, ' ')
+ .trim();
+}
+
+async function proxy(segments, headers) {}
+
+async function play(flag, id, flags) {
+ return JSON.stringify({
+ parse: 0,
+ url: id,
+ });
+}
+
+async function search(wd, quick, pg) {
+ pg = pg || 1;
+ if (pg == 0) pg = 1;
+ let content = await request(`https://es.bookan.com.cn/api/v3/voice/book?instanceId=25304&keyword=${wd}&pageNum=${pg}&limitNum=20`);
+ let data = JSON.parse(content).data;
+ let books = [];
+ for (const book of data.list) {
+ books.push({
+ book_id: book.id,
+ book_name: book.name,
+ book_pic: book.cover,
+ book_remarks: book.extra.author,
+ });
+ }
+ return JSON.stringify({
+ page: data.current_page,
+ pagecount: data.last_page,
+ limit: 20,
+ total: data.total,
+ list: books,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
diff --git a/cat/js/boosj_open.js b/cat/js/boosj_open.js
new file mode 100644
index 0000000..caa0c42
--- /dev/null
+++ b/cat/js/boosj_open.js
@@ -0,0 +1,190 @@
+import { load, _ } from './lib/cat.js';
+
+let key = '童趣';
+let HOST = 'https://www.boosj.com';
+let siteKey = '';
+let siteType = 0;
+
+const MOBILE_UA = 'Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36';
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': agentSp || MOBILE_UA,
+ 'Referer': HOST
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ const classes = [{ type_id: '', type_name: '全部' }, { type_id: 28, type_name: '辅食' }, { type_id: 582, type_name: '动画' }, { type_id: 3364, type_name: '儿童舞蹈' }, { type_id: 3366, type_name: '少儿英语' }, { type_id: 3367, type_name: '儿童歌曲' }, { type_id: 3622, type_name: '才艺' }, { type_id: 3782, type_name: '播视自制' }, { type_id: 3822, type_name: '故事' }, { type_id: 3842, type_name: '亲子教育' }, { type_id: 4402, type_name: '美术' }, { type_id: 4583, type_name: '其他' }, { type_id: 4762, type_name: '儿童游戏' }, { type_id: 4842, type_name: '识物' }, { type_id: 4843, type_name: '绘本' }, { type_id: 4844, type_name: '古诗' }, { type_id: 4845, type_name: '科普' }, { type_id: 5102, type_name: '儿童玩具' }, { type_id: 5142, type_name: '播视童趣儿童玩具' }];
+ const filterObj = {};
+ const jsonData = [
+ {
+ key: 'age',
+ name: '年龄段',
+ value: [
+ { n: '全部', v: '' },
+ { n: '6岁以上', v: '?p367=370' },
+ { n: '3~6岁', v: '?p367=369' },
+ { n: '0~3岁', v: '?p367=368' },
+ ],
+ init: '',
+ },
+ {
+ key: 'by',
+ name: '排序',
+ value: [
+ { n: '全部', v: '' },
+ { n: '最新发布', v: 'lately' },
+ { n: '最多播放', v: 'pop' },
+ { n: '最多评论', v: 'view' },
+ ],
+ init: '',
+ },
+ ];
+ return JSON.stringify({
+ class: _.map(classes, (cls) => {
+ cls.land = 1;
+ cls.ratio = 1.78;
+ filterObj[cls.type_id] = jsonData;
+ return cls;
+ }),
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {
+ const link = HOST + '/search_res_3362__3364_1_.html';
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('body div.bj-col4:has(h3)');
+ let videos = _.map(items, (it) => {
+ const a = $(it).find('a:first')[0];
+ const img = $(it).find('img:first')[0];
+ const remarks = $(it).find('span.played')[0];
+ return {
+ vod_id: a.attribs.href,
+ vod_name: a.attribs.title,
+ vod_pic: img.attribs['data-original'],
+ vod_remarks: remarks.children[0].data || '',
+ };
+ });
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0 || typeof (pg) == 'undefined') pg = 1;
+ const link = HOST + '/search_res_3362__' + tid + '_' + pg + '_' + (extend.by || '') + '.html' + (extend.age || '');
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('body div.bj-col4:has(h3)');
+ let videos = _.map(items, (it) => {
+ const a = $(it).find('a:first')[0];
+ const img = $(it).find('img:first')[0];
+ const remarks = $(it).find('span.played')[0];
+ return {
+ vod_id: a.attribs.href,
+ vod_name: a.attribs.title,
+ vod_pic: img.attribs['data-original'],
+ vod_remarks: remarks.children[0].data || '',
+ };
+ });
+ const hasMore = $('div.pub_paging > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 30,
+ total: 30 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const vod = {
+ vod_id: id,
+ vod_remarks: "",
+ };
+ const playlist = ["点击播放" + "$" + vod.vod_id];
+ vod.vod_play_from = "道长在线";
+ vod.vod_play_url = playlist.join("#");
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ const body = JSON.parse(await request('https://gslb.boosj.com/ipv2.json'));
+ body._id = id.match(/\d+/)[0];
+ const json = JSON.parse(await request(buildUrl(body.gslb, body)));
+ const purl = json.url + '?' + json.t
+ // console.debug('童趣purl =====>' + purl); // js_debug.log
+ let headers = {
+ 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 9; 22081212C Build/PQ3B.190801.002)',
+ };
+ return JSON.stringify({
+ parse: 0,
+ url: purl,
+ header: headers,
+ });
+}
+
+async function search(wd, quick) {
+ var data = JSON.parse(await request('https://search.boosj.com/m_ajax?q=' + wd + '&p=' + pg + '&typeId=3362')).body;
+ let videos = _.map(data.result, (it) => {
+ return {
+ vod_id: it.playUrl,
+ vod_name: it.resourceName,
+ vod_pic: it.imageUrl,
+ vod_remarks: it.clickNumStr || '',
+ }
+ });
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: data.pageCount,
+ limit: 30,
+ total: data.rowCount,
+ list: videos,
+ });
+}
+
+function buildUrl(url, obj) {
+ obj = obj || {};
+ if (url.indexOf('?') < 0) {
+ url += '?'
+ }
+ let param_list = [];
+ let keys = Object.keys(obj);
+ keys.forEach(it => {
+ param_list.push(it + '=' + obj[it])
+ });
+ let prs = param_list.join('&');
+ if (keys.length > 0 && !url.endsWith('?')) {
+ url += '&'
+ }
+ url += prs;
+ return url
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/build.js b/cat/js/build.js
new file mode 100644
index 0000000..e54ab65
--- /dev/null
+++ b/cat/js/build.js
@@ -0,0 +1,61 @@
+import fs from 'node:fs';
+import path from 'path';
+import uglifyjs from 'uglify-js';
+
+const copySpider = ['app', 'kunyu77_open', 'alist_open'];
+
+const root = process.cwd();
+
+const src = path.join(root);
+const out = path.join(root, 'dist');
+
+function minify(s, d) {
+ var jsContent = fs.readFileSync(s).toString();
+ jsContent = jsContent.replace('./lib/cat.js', 'assets://js/lib/cat.js');
+ jsContent = jsContent.replace('./cat.js', 'assets://js/lib/cat.js');
+ jsContent = uglifyjs.minify(jsContent, {
+ mangle: false,
+ });
+ fs.writeFileSync(d, jsContent.code);
+}
+
+function listAllFiles(dirPath, arrayOfFiles) {
+ var files = fs.readdirSync(dirPath);
+
+ arrayOfFiles = arrayOfFiles || [];
+
+ files.forEach(function (file) {
+ if (fs.statSync(dirPath + '/' + file).isDirectory()) {
+ arrayOfFiles = listAllFiles(dirPath + '/' + file, arrayOfFiles);
+ } else {
+ arrayOfFiles.push(path.join(dirPath, '/', file));
+ }
+ });
+
+ return arrayOfFiles;
+}
+
+function src2Out() {
+ if (fs.existsSync(out)) fs.rmSync(out, { recursive: true, force: true });
+
+ fs.mkdirSync(out, { recursive: true });
+ const libSrc = path.join(src, 'lib');
+ const libOut = path.join(out, 'lib');
+ fs.mkdirSync(libOut, { recursive: true });
+ const libs = listAllFiles(libSrc);
+ for (let index = 0; index < libs.length; index++) {
+ const element = libs[index];
+ const relative = path.relative(libSrc, element);
+ minify(element, path.join(libOut, relative));
+ }
+
+ for (const sp of copySpider) {
+ minify(path.join(src, sp + '.js'), path.join(out, sp + '.js'));
+ }
+}
+
+src2Out();
+
+fs.copyFileSync(path.join(src, 'config_open.json'), path.join(out, 'config_open.json'));
+
+console.log('done');
diff --git a/cat/js/bulei_open.js b/cat/js/bulei_open.js
new file mode 100644
index 0000000..232e385
--- /dev/null
+++ b/cat/js/bulei_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1CdCRpidWxlaV9vcGVuLmpzLGFzc2V0czovL2pzL2xpYi9jYXQuanMcX19qc0V2YWxSZXR1cm4MQ3J5cHRvCmRheWpzDGppbmphMgZVcmkCXxJfMHg1NDMxOGESXzB4M2RjOTBlDl8weDVhMzYOXzB4MTE5OBJfMHgzNmQ0MGQSXzB4MmIyN2U2El8weGVkYmZkYhJfMHg0OWYyZmISXzB4MjhkZjU2El8weDQ4NjRiMRJfMHgzMmNiMWQSXzB4MThhYjM5El8weDEyYTAyZhJfMHgzMzhmNjASXzB4MjNhODk1El8weDU2Nzk5NhJfMHgyZWIzYWESXzB4MjdhZTIyEl8weDIwYWI1NhJfMHg1YmQxZTMSXzB4MjRkZDY3El8weDU3ZGU5ORJfMHgzYTM4ZTESXzB4MjM3YWMxEl8weDI3NTZkMhJfMHgyZmEwMzYSXzB4YzI0MzY5El8weDVlYmU2YRJfMHg0YjI2NzUSXzB4NGFlZDQ3El8weDRmNmJhZhJfMHg1MWU0NzISXzB4MjgzMzUzEl8weDQ1ODllMxJfMHgzZDgyZDMSXzB4NGZkNjRiEl8weDUwOWNhMhJfMHg0NzMxMTASXzB4MzlmN2VmEl8weDM0NzE4MxJfMHgyMzc2MzUSXzB4NTdmMjc5El8weDFjZmZmNhJfMHg1OGMzYzgSXzB4NGNkN2MwEl8weDU0Y2M0MhJfMHgyYWIxMGMSXzB4MTcyZDUyEl8weDJiOWQ0NBJfMHgyZjllODQSXzB4MjhmOWJhEl8weDFlMDVhMRJfMHg0Y2E2YzQSXzB4M2M4OTZjEl8weDE1OWYxZhJfMHgxY2IwNTASXzB4MTk3OTcyEl8weDEyYjg4MBJfMHgyM2RmNmUSXzB4NzI0ZGFjEF8weDExZmJkEl8weDJmYTY1MBJfMHg0YjIzNjQSXzB4NTIzNmI3El8weDQ0YmZlNhJfMHgyNGMzNWUSXzB4Mjk1ZjA0El8weDUwNTE1NxJfMHg0ZWQzYWUSXzB4MjYzNjkzEl8weDVkYWUzZhJfMHgxOGExZDgSXzB4NGRmNWUzEl8weDE5ZWFiZRJfMHg1Y2Q0YjISXzB4NWQwMTM0El8weDRmZWY0ZhJfMHgzMmM1MTgSXzB4MTdkYTY5El8weDFlNDhkOBJfMHgzYWRmNDYSXzB4OGUzZWVjEl8weDMxZjg1ZBJfMHgxMmJiZWISXzB4NDczYTJkEl8weDQyZDYxZBJfMHgxY2NkMWYSXzB4MjJlMWMwEl8weDNmNGY1ZRJfMHgzNjc3ZTkSXzB4NTJhMDk3El8weDI0ZDJiMRJfMHgxZWEyNDYSXzB4MzQ3YmY0El8weDRkNDIzYRJfMHg0ZjhmMmMSXzB4M2UwNDE0El8weDlmMDFhNBJfMHg1N2UwYzISXzB4MmIyOTBhEl8weGM2YmRiYhJfMHg2MGZkMmQSXzB4MzQ1MzQ4El8weDMzOWY4OBJfMHg1MDBkZjgSXzB4M2NlZTJhEl8weDNmZWFhNBJfMHg1MWYyNGYSXzB4MzM4OGUyEl8weDMxM2Q0MxJfMHg1MTZhNmMSXzB4MTljNmFiEl8weDJkN2ZiNRJfMHhhMDVmODcSXzB4MjcwNWJhEl8weDQyMGYxNxJfMHgxNmY1YTYSXzB4MzE1YzYyEl8weGM1YzYwMxJfMHhjNDQ2ODESXzB4NDEyM2JhEl8weDI0ZTcwOBJfMHgxNzFhYTASXzB4M2E4NDM3El8weDJjMjA3ORJfMHg1ZTJlZGISXzB4Mzc1MDkyEl8weDExNDFjNhJfMHgyYTg4OTUSXzB4NTEwNGZhEl8weDUxOGQwZhJfMHgyYzg5ODUSXzB4NDBjNjIyEl8weDVjOGI3YxJfMHgzNTViMTUSXzB4MmM0MmRkEl8weDE2MWRiYxJfMHg0NWFlZTgSXzB4ZjE3NGViEl8weGRhZWZhMRJfMHg1MTlhZWESXzB4M2JkNTA3El8weDU1ZTg2YxJfMHg0MWY0ZTcSXzB4MTRmNjczEl8weDRkNDNiMhJfMHg0NmE3OGUSXzB4ODgwMzJmEl8weDNjNmJkMhBfMHg2M2ZiZhJfMHgyZWQxYWYSXzB4MWQ4ZmIwEl8weDFlOGQxOBJfMHgzMzkwMmESXzB4M2ZlZDM4El8weDQ5MjA0OBJfMHhlNDVkODQSXzB4MjIwNDZjEl8weDNlNzI4YxJfMHg0MmVkY2QSXzB4YzBiYmUxEl8weDUxOTc0MBJfMHg0OTNlMjYSXzB4MTllYTNjEl8weDVhNzhlYxJfMHg1YzI2YzASXzB4NDgzY2U2El8weGYzOWU4ORJfMHg0ZTVlNjQSXzB4NGNjY2U2El8weDI4NTdmYxJfMHg0MDNiZWESXzB4NDIwMGEzEl8weDUyOTc5ZhJfMHgzYjBlZDMIc2tleRRjaGFyQ29kZUF0EnRvdGFsX291dApuY29kZRBoYXZlZGljdAhIZ00zEGxvY2F0aW9uDmxlbmNvZGUOaGVhZGVycyZpbnZhbGlkIHdpbmRvdyBzaXplGHc3N0R2c085d3E5VhpmbGF0dGVuQ2h1bmtzEHZvZF9uYW1lCHB1c2gadm9kX3BsYXlfZnJvbQhsZW5zFHN0cmluZzJidWYgMDAwMDAwMDAwMDAwMDAwMAZtc2cISDZsUAgyUzVNOmludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrCGUwaEUsL2FwcHRvdjUvdjEvdXNlci9sb2dpbg5pbmRleE9mDG9oanZ3Uw5sZW5iaXRzKGluZmxhdGVTZXREaWN0aW9uYXJ5DHN1YnN0cghVdGY4FnRvTG93ZXJDYXNlFmdldF9wYXJzaW5nCGhlYWQMd2luZG93DmRpc3RkeW4IY2VpbAp0eXBlcxJmb3JtLWRhdGESZGF0YV90eXBlCm1vZGVsLGluY29ycmVjdCBsZW5ndGggY2hlY2sGMHg1CGxhc3QWcGxheWVyX2luZm8Kd25leHQebmVlZCBkaWN0aW9uYXJ5JGludmFsaWQgYmxvY2sgdHlwZQYkJCQSZXh0cmFfbGVuEnZvZF9hY3RvchRyZXBsYWNlQWxsOC9hcHB0b3Y1L3YxL3NlYXJjaC9saXN0cz93ZD0IT28mSBJhdmFpbF9vdXQKdXNlcjEKb3JkZXIMQllMVHVqJnJldHVybiAoZnVuY3Rpb24oKSAIaGNyYwhsYW5nEHN1YmFycmF5ZC9hcHB0b3Y1L3YxL3BhcnNpbmcvcHJveHk/X19wbGF0Zm9ybT1hbmRyb2lkJnNpZ249CGhvbGQIaHR0cBhmcm9tQ2hhckNvZGUURU5DUllQVElPTjB3N1YwV0NiQ2t5dkN2OE9oVlNaOWVNTzAIZWFjaAYweDMMZW5jb2RlEHZvZF95ZWFyCGF0b2IIZGF0ZQh3cmFwCHNhbmUMQmtHd3FZDGRlY29kZQhtb2RlCndzaXplGGluZmxhdGVSZXNldAZwd2QMJnBhZ2U9FHN0YXJ0c1dpdGgMZXh0ZW5kEGRpc3RiaXRzMmludmFsaWQgYml0IGxlbmd0aCByZXBlYXQSdHlwZV9uYW1lCHN0cm0OY29tbWVudAYweDAQbmV4dF9vdXQOdHlwZV9pZApzdGF0ZVh3NkRDa1dRVERjS2ZjY082dzdQQ3RnN0Ruc0tYd3A3Q3RzTzB3N1hDZ2NPawxvZmZzZXQoaW5jb21wYXRpYmxlIHZlcnNpb244aW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwhkbWF4CGhpdHM8L2FwcHRvdjUvdjEvdm9kL2xpc3RzP3R5cGVfaWQ9CHBhZ2UUdXNlci1hZ2VudBBwbGF5X3VybAhjNXNMCnBhcnNlCm9uRW5kCHRleHRARGFsdmlrLzIuMS4wIChMaW51eDsgVTsgQW5kcm9pZCAsaW5jb3JyZWN0IGhlYWRlciBjaGVjawpuZGlzdA5uZXh0X2luDGFzc2lnbgx5WlNES1UMeGZsYWdzEGF2YWlsX2luCG1vbGQYYnVmZmVyIGVycm9yCmV4dHJhDmlzRW1wdHkkbXVzdCBiZSBub24tb2JqZWN0EnN0cmluZ2lmeQx2YVJNY0UGdXJsDHZLbFF2Vgh3b3JrDHJhbmRvbUZ0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scxp2b2RfcGxheV9saXN0CndiaXRzFnRvVXBwZXJDYXNlBjB4NBB0b3RhbF9pbgphZGxlchBwYWdlU2l6ZTQvYXBwdG92NS92MS92b2QvZ2V0Vm9kP2lkPRZ2b2RfY29udGVudAxsZW5keW4OaW5mbGF0ZQp3aGF2ZQ5yZWZlcmVyDHZvZF9pZAh0cmltDG9uRGF0YRJjaHVua1NpemUGd2FzCmNoZWNrCnRvdGFsCnRpdGxlCmVuZGVkCGNhbGwyP19fcGxhdGZvcm09YW5kcm9pZCZzaWduPQhkYXRhDnZvZF9zdWIITilubCppbnZhbGlkIGRpc3RhbmNlcyBzZXQMQmFzZTY0BjB4MghoYXZlDGNoYXJBdAh5ZWFyCHBvc3RIaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrCGJhY2tAe30uY29uc3RydWN0b3IoInJldHVybiB0aGlzIikoICkGa2V5FHV0Zjhib3JkZXIgaW5mbGF0ZUdldEhlYWRlchB2b2RfYXJlYQZtYXA2aW52YWxpZCBsaXRlcmFsL2xlbmd0aHMgc2V0CmJ1bGVpHGhhc093blByb3BlcnR5DHJlc3VsdBRidWYyc3RyaW5nBmVuYxh2b2RfZGlyZWN0b3I4L2FwcHRvdjUvdjEvdXNlci9nZXRVc2VySW5mbwhubGVuDG91dHB1dAhzaWduEnZvZF9jbGFzcwhrZXlzWHc0QWxlOEttRmNPb0FzS09Gc09tYnNPWHc0TERpY09kTnNLS1d5NVh3NmM9DFNRamV0URJzdWJzdHJpbmcMY2h1bmtzKmludmFsaWQgZGlzdGFuY2UgY29kZRRkaWN0aW9uYXJ5CGJpdHMKd29yZHMIY2F0ZQ5yZXBsYWNl2Apkc0tEWmdyRHBjTzFHbXZEak1LNnc2UjJSTU9xdzQ5YXdyWER0OEtvV2NPcUNzS2lhY09lZk1PTE5BUENwaElmdzVGendyQXdDVUFiRndSQ0RockNzMTdEc2NLcFlVRENpc0s1ZGkzRGpNT1l3b2dOdzd6RG44S253bzNDbU1PNUhzT0dWc08xd3BYQ2s4S3NZY083VnhWcE8xTERrOEtydzRzU0ducDBXZ0xEa2NLMlRSZC93NUxEa2NPSHdyaEF3NS9EdHNPTHdwbzZKTUs0dzZvcEFpQlN3b3JDa1JMRGx5ckN0TUthTk1PRlNnVXNMRVBDc1dUQ2dTN0NteXNXd3JQRHJUVERvY0tpdzV4Nnc0Y2N3NERDdFdIQ3A4SzVDR0ZJQVZMQ3N6dGxJUm5DckZNZ2FBSERrTUt1dzVzVVZzS0J3cnpDZ3ljUEhWTjhFVTNEbFZJZ3dwdkN0c0sxd3BWNFQwL0Ryc0tmd3JyRGpEakRsZ1I5dzZKcXdwMFBIc0tpdzVCM2NsQW53N1lldzVwK0ljS0ZQeFREcnNPMHc1eG53NG93TGNLTnc3Z1J3N1pYd29vL3c0eFd3NVVrVHNLUGIwckNnOEtPY2NLdk1Tb1VCaXZEdThPS3c3UER0OE91R2NPN1puRERteDgrdzYxTENuakRsTU94dzRqQ284T0NQY0swdzZyQ2lNS1piY09Md29GNnc3WTd3ckJ6dzRiQ3YxUXV3NVYwRVh0OXc2dkR2c0t5SVJqRHBnSENqay9DbWNPUlFIMHR3Nm5DdmhMRHJjT2JEc0t0dzdrc1BSRlVjRExEZzhLc05YeHR3NC9EamlmRGoxVER0Y0tIdzcxMEhzS3dic0tYSThPc2JzT293NlRDbU1LWXc1eE1HY0tiRnpyRHVRPT0Kc2hpZnQKc2xpY2VyL2FwcHRvdjUvdjEvY29uZmlnL2dldD9wPWFuZHJvaWQmX19wbGF0Zm9ybT1hbmRyb2lkJnNpZ249EmxhbmdfbGlzdA5vcHRpb25zBjB4NhAvYXBwdG92NQZlcnIQc2lnQnl0ZXMGMHgxDnJlbGVhc2UGbG9nDGRvbWFpbgx4SVVZWnIQTm53OUFjT08wdzVWeExpL0NnUm5DcHNLMmRpckRqOEt2CnRva2VuMHdxODZ3NzNDbU1PcEhjT2V3NkhDdXl3PRRpbmZsYXRlRW5kMi9hcHB0b3Y1L3YxL3VzZXIvcmVnaXN0ZXIgWjN3MUJNS1lLZ05hdzZZPRRkYXRhIGVycm9yDGh1YXdlaQpsYWJlbBR3aW5kb3dCaXRzEGRpc3Rjb2RlCFFDeXIMaGVhZGVyKFtvYmplY3QgQXJyYXlCdWZmZXJdDmJ1aWxkSWQMY29uZmlnNmludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZQ52b2RfcGljemFiYWNkZWZnaGprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkmaGVhZGVyIGNyYyBtaXNtYXRjaAh0aW1lDlJlZmVyZXIIMHgyNAgweGNjCDB4MzEIMHhhZAgweDRjCDB4M2KwAmU4Szd3b29PTE1LR0tEUENxWGRxYVU4S1JnRWdYOE9ndzZmRHBoekR1Y09NZThPdFJzTzFMTU9KTkYvRG8wM0RuQmpDaHhuRGpEckN1OEt1QnliRGtzT1BDc0tndzRYQ2xRbkNwc084dzZ2RHZzTzBYV2pDblVuQ204S1hEeTNEdjhLWXdyOUl3cFREajhPYUFsVENtTUtaEHc3UTJ3NWM9CDB4MTYIOCRdMggweDU3CDB4ZjQIMHg3OQgweDQxCGt6NzEIMHg0NQgweDljCDB4OTAIMHhkNggweGFmCDB4NzgIMHg1ZRRaX05PX0ZMVVNIHlpfUEFSVElBTF9GTFVTSBhaX1NZTkNfRkxVU0gYWl9GVUxMX0ZMVVNIEFpfRklOSVNIDlpfQkxPQ0sOWl9UUkVFUwhaX09LGFpfU1RSRUFNX0VORBZaX05FRURfRElDVA5aX0VSUk5PHFpfU1RSRUFNX0VSUk9SGFpfREFUQV9FUlJPUhZaX01FTV9FUlJPUhZaX0JVRl9FUlJPUiBaX05PX0NPTVBSRVNTSU9OGFpfQkVTVF9TUEVFRCRaX0JFU1RfQ09NUFJFU1NJT04qWl9ERUZBVUxUX0NPTVBSRVNTSU9OFFpfRklMVEVSRUQcWl9IVUZGTUFOX09OTFkKWl9STEUOWl9GSVhFRCRaX0RFRkFVTFRfU1RSQVRFR1kQWl9CSU5BUlkMWl9URVhUElpfVU5LTk9XThRaX0RFRkxBVEVEAn4aaW5mbGF0ZVJlc2V0MiBpbmZsYXRlUmVzZXRLZWVwFmluZmxhdGVJbml0GGluZmxhdGVJbml0MhZpbmZsYXRlSW5mbwgweGE5CDB4YWIIMHg5NRRzdHJlYW0gZW5kFGZpbGUgZXJyb3IELTEYc3RyZWFtIGVycm9yBC0yCDB4NTIELTMmaW5zdWZmaWNpZW50IG1lbW9yeQQtNAgweGU0BC01CDB4Y2UELTYIMHhkOAgweGM4CDB4ZDkSXzB4Y2I3NTY5El8weDVhMzZmNhJfMHgxMTk4NDQSXzB4NzhkNDI4El8weDVlODFkZBJfMHg1OWI4ZTgSXzB4NTlhMmJlEl8weDU4ZjZlYggweDcyCDB4M2MSXzB4Mjk0NmRjEl8weDQ2MzcxNRJfMHgzZGU0MjESXzB4Y2U5MTE2El8weGVhZWJkMQgweGExCDB4YjkIMHg3ZggweGVkEl8weGY0ODJjNRJfMHgxYjc1Y2ISXzB4M2JiNWFkEl8weDQwNDAzZAgweGEyBCk7ggFBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPQgweGIzEl8weDQwNDBhNBJfMHgxODBhMWYSXzB4MmE4NGFjEl8weDU3MjY3NRJfMHg0NWViMjgSXzB4NTc2OWMyEl8weDI0OTMzZggweDNhCDB4MTgIMHg3ZRJfMHg5MGFhODkSXzB4MzI0YmFlEl8weDI3N2UyZBJfMHg0YzQ4NmQSXzB4NTRhMDEyEl8weDUxMjdjZRJfMHgxMTkwNWISXzB4NWFhMjUwEl8weDcwMmQzMBJfMHg0ODBkNGUSXzB4MjUwMjk0CDB4YjgCJQQwMAgweDYzJGRlY29kZVVSSUNvbXBvbmVudBJfMHgyNGZlYzYSXzB4OWY4ZWVjEl8weDI1ZjYzNhJfMHgxYmExMTcCewIsAn0GcmVxCDB4MWEMbWV0aG9kCDB4MmQGYWN0CDB4ZDcGYXJnDnRpbWVvdXQOY29udGVudAhhZXNYCDB4NzYSXzB4MTY4MDhhEl8weDRiNzQ3MwgweDY5AiIEIjoGIjoiEl8weDVjODA5NxJfMHg0NmMzMTcSXzB4NTYxMWVlEl8weDU3YjY5NBJfMHgyZDA3MDESXzB4MmU0N2NiEl8weDM5YzIyNRJfMHg4NDEzMGYSXzB4M2YxN2JhEl8weDE1Yzg5MhJfMHgyZjY3MWYUVXNlci1BZ2VudAgweDRkCDB4OGIQcG9zdFR5cGUIMHhhYwgweDZjCDB4YjQIMHg0MgRkawR0cwgweDEzBjB4ZggweGY3BHRvCDB4ODISXzB4NGEwYjBkEl8weDUzNjljYxJfMHgzYzBmNzUSXzB4MTI0NjdiEl8weDQxYTkyYxJfMHg0Yzk2MTkSXzB4MzZjYzE3El8weDM1ODIzZBJfMHg1M2FlYjISXzB4Mzg0MmQ3El8weDM3OGM4NBJfMHgyNTBjNTgSXzB4MjExOGE2El8weDE5YzQ1YxJfMHg1ZTJhMDESXzB4NDE2OTNhEl8weDMwNGU5NhJfMHgxZWI3MmISXzB4NTE2ZTM0El8weDMxZmQxMBJfMHgzMjYyM2QIMHg2MgpzdHlwZQgweDRlIHc0dkN0OEtEd296Q2xnPT0IMHg2ZggweDRhCDB4NTEIOW1WQQgweDdiCDB4MTEIdzcxZggweGM3CDB4NjgOY29uc29sZQ5kZXZpY2UxCmxvY2FsBGlkCDB4ODQEdWEIMHhkYggweDQ2BDsgCDB4OGUOIEJ1aWxkLwgweDVhAikIMHhlOQgweDQ4DmVuYWJsZWQIMHg1YggweDNlCDB4ODUKbGlzdHMSXzB4NWQ3YTZlEl8weDQ5ZTc3MxJfMHg1MmUxNGQSXzB4MWE5NWFlEl8weDU1YTAwNRJfMHg0Nzc1MmMQXzB4ZjEwMWUSXzB4MWVmNTI1El8weDRlMjM5NwgweGUwCDB4NDkIMHhlYggweDMyEl8weDVjMzlmNhJfMHgzMDc3NjcSXzB4NjZhYWQ3El8weDI3ZGIyMRJfMHgxZTBiMDQIMHgxZBJfMHg1Yzc5YTYSXzB4M2FiYTRlEl8weDJjOWY4NhJfMHg1NmJjNzUSXzB4MmVlODI2El8weDQwYmQxYRJfMHg0YTA5YjISXzB4NWI1M2E0El8weDFlMDVhMBJfMHgxOTEwYWISXzB4M2VmN2YzEl8weDI3MzZiZBJfMHg1ZDg2ZmUSXzB4NWViNDMzEl8weGQ1NzQ3NBJfMHg1Yjk4MDgSXzB4NGE1YWNmEl8weGYyNWY4YwgweDNkEl8weDNkMTI1OBJfMHgxZTNiZDkSXzB4NWUxZjI3El8weDI5ZDAyYxJfMHg1MGI1YjYSXzB4MjY4ZjA2El8weDNhNWQ3NxJfMHgxMmNjYzcSXzB4NGY5ZWFiEl8weDQzNjg2YRJfMHg0YmI2NjcSXzB4MjRmNGJjEl8weDJlZDA1NhJfMHgyYjNhNTcSXzB4MTgxNzZiGmdldF9ob21lX2NhdGUIMHhlMwYweGIIMHhjMQgweDMwCDB4OGEFe3yLVwgweDJmEmFyZWFfbGlzdAUwVzpTCGFyZWEIMHgzZgXtiwCKEnllYXJfbGlzdAV0XuNOCGluaXQFaFHokAJuAnYIMHhhZQgweDdkCDB4YTAFkmOPXggweDYwBQBnsGUFAGftcAgweGQxBX1ZxIsKc2NvcmUIMHhlNwgweDM5CDB4NDcOZmlsdGVycxJfMHg0ZTY3ZGMIMHhjNAJ5El8weDRjY2JiNAR7fRJfMHgxMGQ2ODYSXzB4MzM5ODIyEl8weDJmOTdlMBBfMHgxZTQ4ORJfMHgxZWFjNDYSXzB4NTk4Mzk5El8weDRkNTIzZhJfMHg1ZWFmZmISXzB4MTE5ZGMwEl8weDI5YTg4MAgweGE0CDB4ZDMQcGFyc2VJbnQIMHhmOAgweGNhCDB4MTkIMHhkMuQBJmFyZWE9e3tleHQuYXJlYX19Jmxhbmc9e3tleHQubGFuZ319JnllYXI9e3tleHQueWVhcn19Jm9yZGVyPXt7ZXh0Lm9yZGVyfGRlZmF1bHQoInRpbWUiKX19JnR5cGVfbmFtZT17e2V4dC5jbGFzc319BmV4dAgweGJmSiZwYWdlU2l6ZT0yMSZfX3BsYXRmb3JtPWFuZHJvaWQmc2lnbj0IMHg1ZBZ2b2RfcmVtYXJrcwYweGEScGFnZWNvdW50CGxpc3QSXzB4MzIwYzNjEl8weDNkZjgzNxJfMHgxYjgzNDISXzB4MmRjMjg1El8weDJhOGI3MRJfMHg0NGU3OWESXzB4MjY1YTAwEl8weDIyOWNlZhJfMHgxMWM4YTYIMHhmOTImX19wbGF0Zm9ybT1hbmRyb2lkJnNpZ249CDB4NzEIMHgyZQgweGU2CDB4YjIIMHgyMQgweDk5CDB4MjkIMHhmYQgweGYxCDB4OTIIMHhhYQh1cmxzCDB4MjUIMHgyMgIjCDB4NzMIMHg2NggweDk3GHZvZF9wbGF5X3VybBJfMHg1MjAwYTQCJBJfMHg0YTFmNDYSXzB4NDgwOWExEl8weDI5NzYyMRBfMHgyM2U0MRJfMHgyODllNDMSXzB4MWM2OGFiEl8weDUxOWUwMBJfMHgzYTQ3Y2ISXzB4NDg0Y2Y1El8weDUwZmUxNxJfMHg3NmRhOGMIZmluZAgweDFlCDB4NTQIMHhkNQgweGE2DnR1Y2hlbmcIMHhlYxByZWRpcmVjdAgweDZhEHRyeSBuZXh0El8weDJmYjBiORJfMHgxM2YxMmISXzB4YTFmODRhEl8weDUyOGU0NxJfMHg2ODRiYTQSXzB4NDFjOThiEl8weDY1M2IwORJfMHgzMjE4MWYSXzB4NDk4NWE3BHdkCDB4OWI+JnR5cGU9Jl9fcGxhdGZvcm09YW5kcm9pZCZzaWduPQgweDEwCDB4ODkSXzB4NWFhZWRmEl8weDU2ZWU4YwgweDlhAiASXzB4NDJkM2U0El8weDM5Yzk1MhJfMHgzY2EwYjUIMHgzMxBfMHgyZTY0ZhJfMHgxNWU5MTgSXzB4NDdkNmNlEl8weDNkZDdkZBJfMHgxMzZjODgSXzB4MTAxY2IyEl8weDYxMjRkYQgweGMwBC8vDGh0dHBzOggweGE4CDB4ZDQIMHg2MQ5mb3JFYWNoEl8weGE5MzcyYRJfMHgxYzA3MzUSXzB4NGQ5MWFkEl8weDVhZTJlYhJfMHgxN2YzZTkSXzB4NDQwN2E2El8weDMzYmJmNRJfMHhkNjkzZDAIMHhlZggweDUzCmJyYW5kHEhVQVdFSSBNYXRlIDQwCDB4ZjMSXzB4ZmFiZGQ1El8weDJiN2U2ZQgweDI4CDB4ODMSXzB4NTcyMWFiEl8weDRkYmJmMRJfMHgxMDY3ZDESXzB4MWE5MDExEl8weDU5MWViYQgweDQ0CDB4MzgSXzB4MzhmZjJiEl8weDY4ZWFlZhJfMHgyYWFhZjQSXzB4MjhhNTlmEl8weDFjY2Q0MxJfMHgzNmFmNTUSXzB4MjljZmUwEl8weDQ2MjE4ZRJfMHg0OGUyNTMSXzB4YTRjYTI3El8weDRkOWQ2MRJfMHgzZDAzYTQSXzB4MmQwNTg1El8weDJmOTA2YRJfMHgzYmNkYzMSXzB4MmI5YTI1El8weDMyNDU4YxJfMHhmYzFiMTQSXzB4NWEwNjkzEl8weDJkY2U0OBJfMHgxYjViNmYSXzB4MjE4ZmEzEl8weDNhMjVlOBJfMHhmZDZiNjgSXzB4MTQ0NGQ1El8weDI1NmI1MBJfMHg1MTg1MDcSXzB4NDlhNTQzEl8weDQ2NzliYhJfMHg0YTI2NmUSXzB4MmJiMzM5El8weDQ2MjZiMxJfMHg1N2U1OWUQXzB4YWUyYzESXzB4MjQ2OTQxEl8weDI5MDI2MxJfMHg1MDU5NTQSXzB4M2IzODdiEl8weDIwMGNhNRJfMHgzZmQzOTQSXzB4NTQ0YjNkEl8weDExZWI2YhJfMHgyYTRlNGMSXzB4MzRlNzYwEl8weDFiYTUyMAgweGRlCDB4YjcIMHhjOQgweDlkCDB4ZDAIMHhiYwgweDk0CDB4ODcIMHhhNwgweDM3CDB4NmIIMHg1NggweGJiCDB4NzcIMHgzNQgweDdhCDB4YjYIMHhlMhJfMHg0ODgxNWMSXzB4MTdiYjE5El8weDM0YjEwORJfMHgzODIzYWUSXzB4MTc3YTUyEl8weGEyMGYwNxJfMHg0MjBmY2ISXzB4NTc0ODFiEl8weDI4NDZhZhJfMHgxN2RhM2ISXzB4NTlhNWNiEl8weDUxOTNhZRJfMHgzNDk0YTcSXzB4NDRiZWU3El8weGIzMDRlNxJfMHg0NjhmZTgSXzB4Mzk5OGI5El8weDRhZThkZRJfMHgzNDYyYTQSXzB4Mzg3NGRhEl8weDRlOGQ2MRJfMHg1NmIzYzASXzB4NGNkMDhlEl8weDk3NGM1MxJfMHhmYmYxOTgSXzB4MzVjNTc2El8weDQzM2RmNRJfMHgxN2Y5MmUSXzB4NGM2ZDA5El8weDFmOTQwYRJfMHgzNzYwZmESXzB4ZDRmZWE4El8weDNlMjkzOQgweGM1CDB4OTEIMHhiMAYweDkIMHhmMggweGNkCDB4ODAIMHhjMggweDY1CDB4ZGQIMHg2ZQgweDc0CDB4ZWUIMHgxYwYweDgSXzB4OTk4NjlkEl8weDU4MmYxMwgweGNiEl8weDM2MDc2ZBJfMHg5ZmQ5MTUIMHhmNQgweGI1CDB4ZjYIMHg4NhJfMHg1MTIwNTISXzB4NTJmZmRiEl8weDE1MGU2ORJfMHg1ZjU2ZjkSXzB4MmMwOTMzEl8weDJiZDBiZhJfMHgyMTQ1ZDgSXzB4NDY1Mjc5El8weDU1ZGI2MBJfMHgxZDUzZWUSXzB4MWRlZTAzEl8weDQyODg3NRJfMHg1ZDk3NGQSXzB4M2Q0NGNmEl8weDNiZjc5ORJfMHgzYWYxMjYSXzB4MmQ5ZWI2El8weDJmNzIwMBJfMHgxNjcyY2IIMHhhNQgweDkzEl8weGVlMWIzORJfMHgxZGY5N2ESXzB4MTYwY2VlEl8weGU5OWM1NhJfMHgzNTY4ZWISXzB4ZTY5ZmUxEl8weGU2ZjlkYxJfMHgyMjM2MmQSXzB4NDg4OTA2El8weDE1NjliMRJfMHgzMWUwNDASXzB4MmVjZWNhEl8weDNmZDFlMRJfMHgzZTc1NzESXzB4YjE0MmQ0El8weDNmZGZhYRJfMHgxMTZlZDISXzB4NTZjODE3El8weGUxNzlkYhJfMHg1N2VjZGISXzB4NGFjNjdjEl8weDFmZTZjNxJfMHg1NGZmM2ISXzB4NGE1MTEzEl8weDJmM2NkZBJfMHgyM2E1MmESXzB4MWJlZjVmEl8weDI4YTQ2NhJfMHg0M2E2MWMIMHgyYwgweDRiCDB4ZGM0dW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QIMHg2ZDB1bmtub3duIGhlYWRlciBmbGFncyBzZXQIMHhkYQRvcwgweDk4CDB4ZTUIMHgxNQgweDVmCDB4YTMIMHg2NwgweDk2CDB4Y2YIMHgyYggweGYwCDB4MTcwaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0CDB4YzMIMHgxYggweDIzCDB4ODgIMHgxMggweDVjCDB4NjQoaW5jb3JyZWN0IGRhdGEgY2hlY2sIMHg4ZggweDhjEF8weDYxMmM5El8weDU0NjQ0ZRJfMHg0ZjA1NjkSXzB4NDM4NGM2El8weDJlYTI4MxJfMHgxNzdhNzkSXzB4MmEzOGM4El8weDI3N2UyYRJfMHg0ZDJiMGESXzB4MzhhMjgxEl8weDVjZjA4ORJfMHgzOTUyOGQSXzB4NTM3OTVhBjB4ZBJfMHg1OTQ5OWISXzB4OWRhZmIzEl8weDUwNzc5YhJfMHgxYTVmYWUIMHhlYQgweGU4El8weGFjM2UwMBJfMHg0OGZhMjgSXzB4ZGYwYzM0El8weDEzZTc5ZRJfMHgyZWJiZTYSXzB4NWRlMDJhEl8weDI0YWVhORJfMHg0YjU5YmQSXzB4NTM0MjdiEl8weDJkNTgwMRJfMHgxOTE2MjUSXzB4MjI2MDIxEl8weDEwZGMxYRJfMHg0M2E0NDkSXzB4MWU0M2Q0El8weDIzMTdjYhJfMHgzNGVkZmMWVGV4dEVuY29kZXIIMHhiMRJfMHgxNTA5NzESXzB4NWI1OGE5EF8weDI1ODQ3El8weDFmOTU4MRJfMHgxYTAzOTUSXzB4NGViYWNkEl8weDM4YTNjYhJfMHgyZTA1NzMSXzB4NDI5MDBhEl8weDJkMTBiOBJfMHg0ZGYxZDISXzB4NGM5MWE5CDB4OWUWVGV4dERlY29kZXIIMHhiYRJfMHgzMTkyM2ISXzB4MzQyMDczEl8weDY0ODEyYQgweGUxCDB4YzYSXzB4MjI1MDNmEl8weDU5NDk1YxJfMHgxNTQyYTMIMHhkZggweDQwCDB4OGQIMHg1NQgweDQzCDB4MzQIMHgyMAgweDU4CDB4MzYIMHg3NQgweDU5El8weDJiOTRhMhJfMHhiZDEyOTkSXzB4MTM0YmNiCDB4MjYSXzB4NWFjYzcyEl8weGFkZmVkYxJfMHg1MDExYjESXzB4NDQwZDA3El8weDZiMWYyYhJfMHgyNDcyN2ISXzB4M2JkODM0El8weDM1MTA0ZRJfMHgzMjQzMzASXzB4NTE2NDdlEl8weDk5MGY0NRJfMHg0M2Y5ZDUSXzB4NWEyYzY5BjB4NwgweDgxCDB4YmQGMHhjCDB4MWYIMHgyNwgweDRmEF8weDMwOTdkEl8weDNhMjkzZAgweDcwCGhvbWUOaG9tZVZvZBBjYXRlZ29yeQxkZXRhaWwIcGxheQxzZWFyY2gPpAMBpgMBALIBqAMABQCqAwABrAMAAq4DAAOwAwAEsgMADgAGAaABAAIAIrMBOekkArQDAwADtgMGACCqAwAMrAMBDK4DAgywAwMMsgMEDLgDAA26AwENvAMCCb4DAwnAAwQJwgMFCcQDBgnGAwcJyAMICcoDCQnMAwoNzgMLDdADDA3SAw0N1AMODdYDDw3YAxAN2gMRDdwDEgHeAxMB4AMUAeIDFQHkAxYB5gMXAegDGAHqAxkB7AMaCe4DGwnwAxwB8gMdAfQDHgH2Ax8B+AMgAfoDIQ38AyIB/gMjAYAEJAGCBCUBhAQmAYYEJwGIBCgNigQpAYwEKg2OBCsNkAQsDZIELQGUBC4NlgQvDZgEMAGaBDENnAQyDZ4EMw2gBDQNogQ1DaQENg2mBDcNqAQ4DaoEOQ2sBDoNrgQ7DbAEPAGyBD0BtAQ+DbYEPw24BEANugRBDbwEQg2+BEMNwAREDcIERQ3EBEYNxgRHDcgESA3KBEkNzARKDc4ESw3QBEwN0gRNDdQETg3WBE8N2ARQDdoEUQ3cBFIN3gRTDeAEVA3iBFUN5ARWDeYEVw3oBFgN6gRZDewEWg3uBFsN8ARcDfIEXQ30BF4N9gRfDfgEYA36BGEN/ARiDf4EYw2ABWQNggVlDYQFZg2GBWcNiAVoDYoFaQ2MBWoNjgVrDZAFbA2SBW0NlAVuDZYFbw2YBXANmgVxAZwFcg2eBXMNoAV0DaIFdQ2kBXYNpgV3DagFeAmqBXkJrAV6Ca4Few2wBXwNsgV9DbQFfg22BX8NuAWAAQ26BYEBAbwFggEBvgWDAQHABYQBAcIFhQEBxAWGAQHGBYcBAcgFiAEBygWJAQHMBYoBAc4FiwEB0AWMAQ3SBY0BAdQFjgEB1gWPAQHYBZABCdoFkQEN3AWSAQHeBZMBDeAFlAEB4gWVAQHkBZYBAeYFlwEB6AWYAQHqBZkBAewFmgEB7gWbAQHwBZwBDfIFnQEN9AWeAQ32BZ8BDfgFoAEN+gWhAQ38BaIBDf4FowENgAakAQ2CBqUBAYQGpgEBhganAQGIBqgBAYoGqQEBjAaqAQGOBqsBAZAGrAEBqAOtAQEI6H++BF8YAL4FXxkAvgZfGgC+B18bAL4IXxwAvglfHQC+Cl8eAL4LXyEAvgxfIgC+DV8jAL4OXyQAvg9fJQC+EF8nAL4RXygAvhJfKQC+E18qAL4UXysAvhVfLAC+HF92AL4wX50AvjFfnwC+Ml+qAL4zX6sAvjRfrAC+OF+yACkEiQEAAASKAQAABIsBAAAEjAEAAARbAAAABI0BAAAEjgEAAARGAAAABI8BAAAEkAEAAASRAQAABJIBAAAEagAAAASTAQAABJQBAAAElQEAAASWAQAABJcBAAAEmAEAAASZAQAABJoBAAAEmwEAAAScAQAABJ0BAAAEngEAAASfAQAABKABAAAEQAAAAAShAQAABKIBAAAEowEAAASkAQAAJiAABKUBAABMIAAAgASmAQAATCEAAIAEpwEAAEwiAACABKgBAABMIwAAgASpAQAATCQAAIAEqgEAAEwlAACABKsBAABMJgAAgASsAQAATCcAAIAErQEAAEwoAACABK4BAABMKQAAgASvAQAATCoAAIAEcAAAAEwrAACABLABAABMLAAAgASxAQAATC0AAIAEsgEAAEwuAACABLMBAABMLwAAgAS0AQAATDAAAIAEQgAAAEwxAACABLUBAABMMgAAgAS2AQAATDMAAIAEtwEAAEw0AACABLgBAABMNQAAgAS5AQAATDYAAIAEugEAAEw3AACABLsBAABMOAAAgAS8AQAATDkAAIAEvQEAAEw6AACABL4BAABMOwAAgAQbAAAATDwAAIAEvwEAAEw9AACABMABAABMPgAAgATBAQAATD8AAIAEwgEAAExAAACABMMBAABMQQAAgATEAQAATEIAAIAExQEAAExDAACABMYBAABMRAAAgATHAQAATEUAAIAEyAEAAExGAACABMkBAABMRwAAgAR6AAAATEgAAIAEWgAAAExJAACABMoBAABMSgAAgATLAQAATEsAAIAEzAEAAExMAACABM0BAABMTQAAgARtAAAATE4AAIAEzgEAAExPAACABM8BAABMUAAAgATQAQAATFEAAIAE0QEAAExSAACABNIBAABMUwAAgATTAQAATFQAAIAEWAAAAExVAACABDAAAABMVgAAgATUAQAATFcAAIAE1QEAAExYAACABNYBAABMWQAAgATXAQAATFoAAIAE2AEAAExbAACABNkBAABMXAAAgATaAQAATF0AAIAE2wEAAExeAACABNwBAABMXwAAgATdAQAATGAAAIAE3gEAAExhAACABN8BAABMYgAAgATgAQAATGMAAIAE4QEAAExkAACABOIBAABMZQAAgAQ7AAAATGYAAIAE4wEAAExnAACABOQBAABMaAAAgATlAQAATGkAAIAE5gEAAExqAACABOcBAABMawAAgAToAQAATGwAAIAE6QEAAExtAACABOoBAABMbgAAgATrAQAATG8AAIAE7AEAAExwAACABO0BAABMcQAAgATuAQAATHIAAIAE7wEAAExzAACABPABAABMdAAAgATxAQAATHUAAIAENwAAAEx2AACABPIBAABMdwAAgATzAQAATHgAAIAE9AEAAEx5AACABPUBAABMegAAgAT2AQAATHsAAIAE9wEAAEx8AACABPgBAABMfQAAgAT5AQAATH4AAIAE+gEAAEx/AACABPsBAABMgAAAgAT8AQAATIEAAIAE/QEAAEyCAACABP4BAABMgwAAgARdAAAATIQAAIAE/wEAAEyFAACABAACAABMhgAAgAQBAgAATIcAAIAESQAAAEyIAACABAICAABMiQAAgAQDAgAATIoAAIAEBAIAAEyLAACABAUCAABMjAAAgAQGAgAATI0AAIAEBwIAAEyOAACABAgCAABMjwAAgAQJAgAATJAAAIAECgIAAEyRAACABAsCAABMkgAAgAQMAgAATJMAAIAEDQIAAEyUAACABEgAAABMlQAAgAQOAgAATJYAAIAEDwIAAEyXAACABBACAABMmAAAgAQRAgAATJkAAIAEEgIAAEyaAACABBMCAABMmwAAgAQUAgAATJwAAIAEFQIAAEydAACABBYCAABMngAAgAQXAgAATJ8AAIAEGAIAAEygAACABBkCAABMoQAAgAQaAgAATKIAAIAEGwIAAEyjAACABBwCAABMpAAAgAQdAgAATKUAAIAEHgIAAEymAACABB8CAABMpwAAgAQgAgAATKgAAIAEIQIAAEypAACABCICAABMqgAAgAQjAgAATKsAAIAEJAIAAEysAACABEEAAABMrQAAgAQ2AAAATK4AAIAEJQIAAEyvAACABCYCAABMsAAAgAQnAgAATLEAAIAEKAIAAEyyAACABCkCAABMswAAgAQqAgAATLQAAIAEKwIAAEy1AACABCwCAABMtgAAgAQtAgAATLcAAIAELgIAAEy4AACABC8CAABMuQAAgAQwAgAATLoAAIAEMQIAAEy7AACABDICAABMvAAAgAQzAgAATL0AAIAENAIAAEy+AACABDUCAABMvwAAgAQ2AgAATMAAAIAENwIAAEzBAACABDgCAABMwgAAgAQ5AgAATMMAAIAEOgIAAEzEAACABDsCAABMxQAAgAQ8AgAATMYAAIAEPQIAAEzHAACABB4AAABMyAAAgAQ+AgAATMkAAIAEPwIAAEzKAACABEACAABMywAAgARBAgAATMwAAIAEQgIAAEzNAACABEMCAABMzgAAgAREAgAATM8AAIAERQIAAEzQAACABEYCAABM0QAAgARHAgAATNIAAIAESAIAAEzTAACABEkCAABM1AAAgARKAgAATNUAAIAESwIAAEzWAACABEwCAABM1wAAgARNAgAATNgAAIAETgIAAEzZAACABE8CAABM2gAAgARQAgAATNsAAIAEUQIAAEzcAACABFICAABM3QAAgARTAgAATN4AAIAEVAIAAEzfAACABFUCAABM4AAAgARWAgAATOEAAIAEVwIAAEziAACABFgCAABM4wAAgARpAAAATOQAAIAEWQIAAEzlAACABFoCAABM5gAAgARbAgAATOcAAIAEXAIAAEzoAACABF0CAABM6QAAgAReAgAATOoAAIAEXwIAAEzrAACABGACAABM7AAAgARhAgAATO0AAIAEYgIAAEzuAACABGMCAABM7wAAgARkAgAATPAAAIAEZQIAAEzxAACABGYCAABM8gAAgARnAgAATPMAAIAEaAIAAEz0AACABGkCAABM9QAAgARqAgAATPYAAIAEawIAAEz3AACABGwCAABM+AAAgARtAgAATPkAAIAEbgIAAEz6AACAXwUAvgBlBQC8mQDuDr4BTd0AAABfBgBlBgAEbwIAAO1fBwC/XwgAC18JAAtfCgALXwsAs18MAL9fDQCzXw4AZQYABHACAADtZQYABHECAADtZQYABHICAADtZQYABHMCAADtZQYABHQCAADtBHUCAAAEdgIAACYHAF8PAL4CZQ8AvMkA7g6+A03nAAAAXxAAZRAAZQYABHcCAADtBHgCAADuXxEAZRAABOIBAABlBgAEeQIAAO3uJgEAXxIAZRAAZQYABHoCAADtZQYABHsCAADt7l8TAGUQAGUGAAR8AgAA7QR9AgAA7l8UAGUQAGUGAAR+AgAA7WUGAAR/AgAA7e5lEABlBgAEgAIAAO1lBgAEgQIAAO3uJgIAXxUAZRAAZQYABIICAADtZQYABIMCAADt7l8WACYAAJZfFwALXx8AC18gAGUGAASEAgAA7V8mAL4WTQQBAABfLQBlLQBfLgC+F00GAQAAXy8AOKYAAAARZS8A7CE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
\ No newline at end of file
diff --git a/cat/js/caiji.js b/cat/js/caiji.js
new file mode 100644
index 0000000..02c975e
--- /dev/null
+++ b/cat/js/caiji.js
@@ -0,0 +1 @@
+//bbQ0FUT1BTEGNhaWppLmpzLGFzc2V0czovL2pzL2xpYi9jYXQuanMcX19qc0V2YWxSZXR1cm4CXw5zaXRlS2V5EHNpdGVUeXBlBFVBDmJhc2VVcmwUY2F0ZWdvcmllcwhpbml0EmdldEhlYWRlchJnZXRTdHJpbmcIaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFpbAhwbGF5DHNlYXJjaN4BTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEwOS4wLjAuMCBTYWZhcmkvNTM3LjM2BmNmZwhza2V5CnN0eXBlBmV4dAZ1cmwMaGVhZGVyFFVzZXItQWdlbnQGcmVzBnJlcQ5oZWFkZXJzDmNvbnRlbnQMZmlsdGVyDHJlcVVybA5qc29uU3RyCGRhdGEWY2xhc3Nlc3NBcnIOY2xhc3NlcxJmaWx0ZXJPYmoaY2F0ZWdvcmllc09iagZvbmUIY2F0ZQJlCnBhcnNlDmlzRW1wdHkQaW5jbHVkZXMSdHlwZV9uYW1lDnR5cGVfaWQQdHlwZV9waWQIcHVzaBJzdHJpbmdpZnkOZmlsdGVycw5jb25zb2xlCmRlYnVnBHt9BnRpZARwZwxleHRlbmQMdmlkZW9zID9hYz12aWRlb2xpc3QmdD0IJnBnPQhsaXN0DHZvZF9pZBB2b2RfbmFtZQ52b2RfcGljFnZvZF9yZW1hcmtzEHBhcnNlSW50CHBhZ2UScGFnZWNvdW50CmxpbWl0CnRvdGFsBGlkBnZvZCQ/YWM9dmlkZW9saXN0Jmlkcz0Qdm9kX3llYXIQdm9kX2FyZWESdm9kX2FjdG9yGHZvZF9kaXJlY3RvchZ2b2RfY29udGVudBp2b2RfcGxheV9mcm9tGHZvZF9wbGF5X3VybAhmbGFnBHdkCnF1aWNrHD9hYz1kZXRhaWwmd2Q9D6QDAaYDAQAPqAMAAQCqAwAOAAYBoAEAAAABEApLAKoDAAysAwAJrgMBCbADAgmyAwMJtAMECbYDBQG4AwYBugMHAbwDCAG+AwkBwAMKAcIDCwHEAwwBxgMNAagDDgEI6DS+AF8GAL4BXwcAvgJfCAC+A18JAL4EXwoAvgVfCwC+Bl8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
\ No newline at end of file
diff --git a/cat/js/cartoon18_open.js b/cat/js/cartoon18_open.js
new file mode 100644
index 0000000..e811f11
--- /dev/null
+++ b/cat/js/cartoon18_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1C3ASJjYXJ0b29uMThfb3Blbi5qcyxhc3NldHM6Ly9qcy9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuCmRheWpzDGppbmphMghsb2FkBlVyaQJfDl8weDUyOTIOXzB4MTRhNBJfMHgxNzkxMzMSXzB4MTRhMzExEl8weDMyMjFhZRJfMHgxYjdmODkSXzB4MWY0ODRlEl8weDJmOGNjOBJfMHgzNjVmODkSXzB4MjIyYWMxEl8weDVkMmZlYRJfMHgyNzc2OTYSXzB4NDZjODk1El8weDRlYWY1MhJfMHg1NjA2YWYSaW1nOmZpcnN0DmNyZWF0ZWQMJnBhZ2U9Ei9jYXRlZ29yeQh0cmltCHNvcnQiZGl2LmxpbmVzLTI6Zmlyc3T2Ak1vemlsbGEvNS4wIChMaW51eDsgQW5kcm9pZCAxMTsgTTIwMDdKM1NDIEJ1aWxkL1JLUTEuMjAwODI2LjAwMjsgd3YpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wIENocm9tZS83Ny4wLjM4NjUuMTIwIE1RUUJyb3dzZXIvNi4yIFRCUy8wNDU3MTQgTW9iaWxlIFNhZmFyaS81MzcuMzYIZmluZAZtYXAcemgtQ04semg7cT0wLjgOYXR0cmlicxJjYXJ0b29uMTgkYVtocmVmKj0iL3N0b3J5LyJdEGNoaWxkcmVuCHNrZXkKc2NvcmUQZGF0YS1zcmMKc3R5cGUmZGl2I3ZpZGVvcyBkaXYuY2FyZExkaXYuY29udGVudCA+IGRpdi5jb250YWluZXItZmx1aWQgPiBoMw5hOmZpcnN0CHRleHQYJnBlci1wYWdlPTI0ImltZy5jYXJ0b29uLWltYWdlCHB1c2gyaHR0cHM6Ly93d3cuY2FydG9vbjE4LmNvbQhsaW5rCGhyZWYIZWFjaApsaWtlcw5jb250ZW50CHVybHMIMHgxMggweDIxBjB4ZBBfMHg5MmQxZhJfMHg1MjkyODcSXzB4MTRhNDRlEl8weDFhZDUyYgpzaGlmdBJfMHhmMWQyMTIGcmVxCDB4MTAeQWNjZXB0LUxhbmd1YWdlFFVzZXItQWdlbnQOaGVhZGVycwYweDMSXzB4NGYxYzNlCDB4MTUIMHgxOBJfMHg0N2Y4ZjESXzB4MmYxMzNiEl8weDE4ZWIyZRBfMHg2MWI2MxJfMHgxY2MwMDESXzB4MmE2NWM0El8weDVjNjNkMhJfMHgzYTIwMjUSXzB4MjRiODQ4BjB4OQIvDnR5cGVfaWQFaFHokBJ0eXBlX25hbWUGMHhiBmtleQhpbml0BQBnsGUCbgYweDcCdgUAZ31ZBjB4MQUAZxpZCGhpdHMFqGNQgwgweDE2CDB4MWEIMHgxZA5yZXBsYWNlCDB4MjAGMHhmFm5leHRTaWJsaW5nCDB4MTQIMHgxYw5maWx0ZXJzEl8weDMzYjA5YiRkZWNvZGVVUklDb21wb25lbnQIMHgxMQgweDIzBHt9El8weDNiNDEzZhJfMHgzYTJiNGMSXzB4MWExNDdhEl8weDE4ZDNiNRJfMHg0ZTVjMmUSXzB4MTkzNzlkEl8weDVkZDYwORJfMHgxYjU5MTUSXzB4MWU4ZTNlEl8weGUzYWUxOBJfMHgxMjRlNDkSXzB4MTBjMzU4El8weDU4MzU2NBJfMHhmZTY5MzkIMHgyMgw/c29ydD0GMHg4CDB4MWUIMHgxOQYweGUIMHgxYgYweDYGMHhjImRpdi5saW5lcy0xOmZpcnN0DmJvb2tfaWQSYm9va19uYW1lCDB4MTcQYm9va19waWMGMHgyGGJvb2tfcmVtYXJrcwhwYWdlEnBhZ2Vjb3VudAhsaXN0El8weDNlN2FiNhJfMHgzY2U2MWMSXzB4M2JhOTZlEl8weDMwY2Y0MBJfMHgyNzJiM2MGMHgwCDB4MTMFaFEsZw52b2x1bWVzBjB4NQYweDQCIxJfMHg1OThiNjYSXzB4M2Q0ZWQzBjB4YQIkEl8weDFlYTA4MhJfMHg1MTBjNjUSXzB4MWI2YzA0El8weDU4Y2JlNxJfMHgyNjY1YTESXzB4MTkyNWNlEl8weDQwNDQ0YxJfMHgyYzY5MjAIMHgxZhJfMHg5ZTE0NGQSXzB4NGYyZGZjEl8weDQ2YTU4YgYvcS8IaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFpbAhwbGF5DHNlYXJjaA+kAwGmAwEAFKgDAAUAqgMAAawDAAKuAwADsAMABLIDAA4ABgGgAQAAACAVC78CAKoDAAysAwEMrgMCDLADAwyyAwQMtAMADbYDAQ24AwIJugMDCbwDBAm+AwUJwAMGDcIDBwH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
\ No newline at end of file
diff --git a/cat/js/cntv_open.js b/cat/js/cntv_open.js
new file mode 100644
index 0000000..c95fd04
--- /dev/null
+++ b/cat/js/cntv_open.js
@@ -0,0 +1,171 @@
+// 无搜索功能
+import { _ } from './lib/cat.js';
+let key = '视聚场';
+let HOST = 'http://api.cntv.cn';
+let siteKey = '';
+let siteType = 0;
+const MOBILE_UA = 'Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36';
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': agentSp || MOBILE_UA,
+ },
+ });
+ return res.content
+}
+
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype
+}
+
+async function home(filter) {
+ const classes = [
+ { type_id: "TOPC1451559025546574", type_name: "动画大放映" },
+ { type_id: "TOPC1451378857272262", type_name: "第一动画乐园" },
+ { type_id: "TOPC1451557646802924", type_name: "健康之路" },
+ { type_id: "TOPC1451558190239536", type_name: "走进科学" },
+ { type_id: "TOPC1451557893544236", type_name: "探索·发现" },
+ { type_id: "TOPC1451378967257534", type_name: "动物世界" },
+ { type_id: "TOPC1451525103989666", type_name: "人与自然" },
+ { type_id: "TOPC1451558150787467", type_name: "自然传奇" },
+ { type_id: "TOPC1451557421544786", type_name: "地理·中国" },
+ { type_id: "TOPC1451541349400938", type_name: "远方的家" },
+ { type_id: "TOPC1575253587571324", type_name: "跟着书本去旅行" },
+ { type_id: "TOPC1451557052519584", type_name: "百家讲坛" },
+ { type_id: "TOPC1451558856402351", type_name: "空中剧院" },
+ { type_id: "TOPC1451550970356385", type_name: "体坛快讯" },
+ { type_id: "TOPC1451528971114112", type_name: "新闻联播" },
+ { type_id: "TOPC1451558976694518", type_name: "焦点访谈" },
+ { type_id: "TOPC1451464665008914", type_name: "今日说法" },
+ { type_id: "TOPC1451378757637200", type_name: "等着我" },
+ { type_id: "TOPC1451559129520755", type_name: "新闻直播间" },
+ { type_id: "TOPC1451540328102649", type_name: "海峡两岸" },
+ { type_id: "TOPC1451530382483536", type_name: "天网" },
+ { type_id: "TOPC1451540389082713", type_name: "今日关注" },
+ { type_id: "TOPC1665739007799851", type_name: "高端访谈" },
+ { type_id: "TOPC1451464884159276", type_name: "开讲啦" },
+ { type_id: "TOPC1451464884159276", type_name: "故事里的中国" },
+ { type_id: "TOPC1514182710380601", type_name: "对话" },
+ { type_id: "TOPC1451559038345600", type_name: "面对面" },
+ { type_id: "TOPC1451534366388377", type_name: "是真的吗" },
+ { type_id: "TOPC1451467630488780", type_name: "星光大道" },
+ { type_id: "TOPC1451541414450906", type_name: "精彩音乐汇" },
+ { type_id: "TOPC1451534421925242", type_name: "音乐厅" },
+ { type_id: "TOPC1451541994820527", type_name: "民歌·中国" },
+ { type_id: "TOPC1451354597100320", type_name: "中国电影报道" },
+ { type_id: "TOPC1451469943519994", type_name: "星推荐" },
+ { type_id: "TOPC1571217727564820", type_name: "方圆剧阵" },
+ { type_id: "TOPC1650782829200997", type_name: "正大综艺" },
+ { type_id: "TOPC1451530259915198", type_name: "第一时间" },
+ { type_id: "TOPC1451465894294259", type_name: "开门大吉" },
+ { type_id: "TOPC1451464884159276", type_name: "开讲啦" },
+ { type_id: "TOPC1451558858788377", type_name: "共同关注" },
+ { type_id: "TOPC1451527941788652", type_name: "军事报道" },
+ { type_id: "TOPC1451558819463311", type_name: "新闻调查" },
+ { type_id: "TOPC1451559097947700", type_name: "新闻30分" },
+ { type_id: "TOPC1451559066181661", type_name: "新闻1+1" },
+ { type_id: "TOPC1451540448405749", type_name: "今日亚洲" },
+ { type_id: "TOPC1451559129520755", type_name: "新闻直播间" },
+ { type_id: "TOPC1451558428005729", type_name: "24小时" },
+ { type_id: "TOPC1451539894330405", type_name: "中国新闻" },
+ { type_id: "TOPC1451558779639282", type_name: "午夜新闻" },
+ { type_id: "TOPC1451558496100826", type_name: "朝闻天下" },
+ { type_id: "TOPC1451528792881669", type_name: "晚间新闻" },
+ { type_id: "TOPC1451559180488841", type_name: "新闻周刊" },
+ { type_id: "TOPC1601362002656197", type_name: "经济半小时" },
+ { type_id: "TOPC1451533652476962", type_name: "经济大讲堂" },
+ { type_id: "TOPC1453100395512779", type_name: "正点财经" },
+ { type_id: "TOPC1451546588784893", type_name: "生活圈" },
+ { type_id: "TOPC1451526037568184", type_name: "生活提示" },
+ { type_id: "TOPC1451558532019883", type_name: "东方时空" },
+ { type_id: "TOPC1451533782742171", type_name: "经济信息联播" },
+ { type_id: "TOPC1571034705435323", type_name: "今日环球" },
+ { type_id: "TOPC1451543462858283", type_name: "一线" }
+ ];
+ const filterObj = {};
+ return JSON.stringify({
+ class: _.map(classes, (cls) => {
+ cls.land = 1;
+ cls.ratio = 1.78;
+ return cls;
+ }),
+ filters: filterObj,
+ })
+}
+
+async function homeVod() {
+ const data = JSON.parse(await request(HOST + '/NewVideo/getVideoListByColumn?id=TOPC1451558856402351&n=10&sort=desc&p=1&mode=0&serviceId=tvcctv'));
+ let videos = _.map(data.data.list, (it) => {
+ return {
+ vod_id: it.guid,
+ vod_name: it.title,
+ vod_pic: it.image,
+ vod_remarks: it.time || '',
+ }
+ });
+ return JSON.stringify({
+ list: videos,
+ })
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0 || typeof pg == 'undefined') pg = 1;
+ const data = JSON.parse(await request(HOST + '/NewVideo/getVideoListByColumn?id=' + tid + '&n=10&sort=desc&p=' + pg + '&mode=0&serviceId=tvcctv'));
+ let videos = _.map(data.data.list, (it) => {
+ return {
+ vod_id: it.guid,
+ vod_name: it.title,
+ vod_pic: it.image,
+ vod_remarks: it.time || '',
+ }
+ });
+ const pgChk = JSON.parse(await request(HOST + '/NewVideo/getVideoListByColumn?id=' + tid + '&n=10&sort=desc&p=' + (parseInt(pg) + 1) + '&mode=0&serviceId=tvcctv')).data.list;
+ const pgCount = pgChk.length > 0 ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: parseInt(pgCount),
+ limit: 10,
+ total: parseInt(data.total),
+ list: videos,
+ })
+}
+
+async function detail(id) {
+ const vod = {
+ vod_id: id,
+ vod_remarks: '',
+ };
+ const playlist = ['点击播放' + '$' + 'https://hls.cntv.myhwcdn.cn/asp/hls/2000/0303000a/3/default/' + id + '/2000.m3u8'];
+ vod.vod_play_from = key;
+ vod.vod_play_url = playlist.join('#');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ // console.debug('视聚场 id =====>' + id); // js_debug.log
+ return JSON.stringify({
+ parse: 0,
+ url: id,
+ })
+}
+
+async function search(wd, quick, pg) {
+ return '{}'
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ }
+}
\ No newline at end of file
diff --git a/cat/js/config_open.json b/cat/js/config_open.json
new file mode 100644
index 0000000..28ef6fc
--- /dev/null
+++ b/cat/js/config_open.json
@@ -0,0 +1,841 @@
+{
+ "video": {
+ "sites": [
+ {
+ "key": "豆瓣",
+ "name": "🟢 豆瓣👁️",
+ "type": 3,
+ "indexs": 1,
+ "api": "./douban_open.js"
+ },
+ {
+ "key": "doubanbb",
+ "name": "🟢 片单",
+ "type": 3,
+ "indexs": 1,
+ "api": "./doubanbb.js"
+ },
+ {
+ "key": "cntv",
+ "name": "🟢 央视",
+ "type": 3,
+ "api": "./cntv_open.js"
+ },
+ {
+ "key": "玩偶哥哥",
+ "name": "🟢 玩偶",
+ "type": 3,
+ "api": "./wogg_open.js",
+ "ext": "阿里token"
+ },
+ {
+ "key": "玩偶表哥",
+ "name": "🟢 表哥",
+ "type": 3,
+ "api": "./wobg_open.js",
+ "ext": "阿里token"
+ },
+ {
+ "key": "耐看",
+ "name": "🟢 耐看",
+ "type": 3,
+ "api": "./nkvod_open.js"
+ },
+ {
+ "key": "ikanbot",
+ "name": "🟢 爱看",
+ "type": 3,
+ "api": "./ikanbot_bytecode.js"
+ },
+ {
+ "key": "tiantian",
+ "name": "🟢 天天",
+ "type": 3,
+ "api": "./tiantian_open.js"
+ },
+ {
+ "key": "素白白",
+ "name": "🟢 素白",
+ "type": 3,
+ "api": "./subaibai_open.js"
+ },
+ {
+ "key": "低端影视",
+ "name": "🟢 低端",
+ "type": 3,
+ "api": "./ddys_open.js"
+ },
+ {
+ "key": "jojo_yozo",
+ "name": "🟢 JOJO",
+ "type": 3,
+ "api": "./jojo_bytecode.js"
+ },
+ {
+ "key": "电视直播",
+ "name": "🟢 电视",
+ "type": 3,
+ "api": "./caiji.js",
+ "ext": "https://tvbox.serv00.net/live.php"
+ },
+ {
+ "key": "南瓜",
+ "name": "🟢 南瓜①",
+ "type": 3,
+ "api": "./ng_open.js"
+ },
+ {
+ "key": "nangua",
+ "name": "🟢 南瓜②",
+ "type": 3,
+ "api": "./nangua_open.js"
+ },
+
+ {
+ "key": "在线之家",
+ "name": "🟢 在线",
+ "type": 3,
+ "api": "./zxzj_open.js"
+ },
+ {
+ "key": "一起看",
+ "name": "🟢 一起",
+ "type": 3,
+ "api": "./yqktv_open.js"
+ },
+ {
+ "key": "555电影",
+ "name": "🟢 三五",
+ "type": 3,
+ "api": "./555dy_open.js"
+ },
+ {
+ "key": "圣城影视",
+ "name": "🟢 圣城",
+ "type": 3,
+ "api": "./sc1080_open.js"
+ },
+ {
+ "key": "胖虎影视",
+ "name": "🟢 胖虎",
+ "type": 3,
+ "api": "./panghu_open.js"
+ },
+ {
+ "key": "人人影视",
+ "name": "🟢 人人",
+ "type": 3,
+ "api": "./rttks_open.js"
+ },
+ {
+ "key": "图图影视",
+ "name": "🟢 图图",
+ "type": 3,
+ "api": "./tutu_open.js"
+ },
+ {
+ "key": "农民影视",
+ "name": "🟢 农民",
+ "type": 3,
+ "api": "./nmddd_open.js"
+ },
+ {
+ "key": "dsxys",
+ "name": "🟢 师兄",
+ "type": 3,
+ "api": "./dsxys_open.js"
+ },
+ {
+ "key": "anfun",
+ "name": "🟢 Afun",
+ "type": 3,
+ "api": "./anfun_open.js"
+ },
+ {
+ "key": "厂长资源",
+ "name": "🟢 厂长",
+ "type": 3,
+ "api": "./czzy_open.js"
+ },
+ {
+ "key": "爱动漫",
+ "name": "🟢 爱漫",
+ "type": 3,
+ "api": "./adm_open.js"
+ },
+ {
+ "key": "酷我短剧",
+ "name": "🟢 短剧①",
+ "type": 3,
+ "api": "./kuwo_open.js"
+ },
+ {
+ "key": "短剧网",
+ "name": "🟢 短剧②",
+ "type": 3,
+ "api": "./duanju5_open.js"
+ },
+ {
+ "key": "斗鱼直播",
+ "name": "🟢 斗鱼",
+ "type": 3,
+ "api": "./douyu_open.js",
+ "ext": {
+ "from": "official",
+ "custom": "Popkart,跑跑卡丁车#KartRiderDrift,跑跑卡丁车:漂移#PPKDCSY,跑跑手游#PathofExile,流放之路#hjzgwx,火炬之光:无限#CrossGate,魔力宝贝#g_jyhx,劲乐幻想#xjcs,仙境传说#yqk,一起看"
+ }
+ },
+ {
+ "key": "虎牙直播",
+ "name": "🟢 虎牙",
+ "type": 3,
+ "api": "./huya_open.js",
+ "ext": {
+ "from": "official",
+ "custom": "2135,一起看#6245,放映厅#427,流放之路#6399,火炬之光:无限#2891,魔力宝贝#2620,跑跑卡丁车手游#162,跑跑卡丁车#7691,劲乐幻想#2675,仙境传说RO"
+ }
+ },
+ {
+ "key": "我的哔哩",
+ "name": "🟢 我哔",
+ "type": 3,
+ "api": "./mybili_open.js"
+ },
+ {
+ "key": "哔哩",
+ "name": "🟢 哔哩",
+ "type": 3,
+ "api": "./bili_open.js",
+ "ext": {
+ "categories": "音乐#动画#电影#电视剧#番剧#综艺#国创#搞笑#单机游戏#沙雕动画#沙雕穿越#沙雕",
+ "cookie": "DedeUserID=690781341;DedeUserID__ckMd5=cabc96906269c5b6;SESSDATA=2245ba24%2C1684212125%2C466fd%2Ab2;bili_jct=de6fdb60c10f8a83910aa55d79407b4e;"
+ }
+ },
+ {
+ "key": "哔哩直播",
+ "name": "🟢 直播",
+ "type": 3,
+ "api": "./bililive_open.js",
+ "ext": {
+ "cookie": "DedeUserID=690781341;DedeUserID__ckMd5=cabc96906269c5b6;SESSDATA=2245ba24%2C1684212125%2C466fd%2Ab2;bili_jct=de6fdb60c10f8a83910aa55d79407b4e;"
+ }
+ },
+ {
+ "key": "火狐资源",
+ "name": "🟢 火狐",
+ "type": 3,
+ "api": "./caiji.js",
+ "ext": {
+ "url": "https://hhzyapi.com/api.php/provide/vod/from/hhm3u8",
+ "categories": [
+ "内地剧",
+ "欧美剧",
+ "香港剧",
+ "台湾剧",
+ "马泰剧",
+ "韩剧",
+ "日剧",
+ "动作片",
+ "爱情片",
+ "喜剧片",
+ "科幻片",
+ "恐怖片",
+ "剧情片",
+ "战争片",
+ "灾难片",
+ "悬疑片",
+ "犯罪片",
+ "奇幻片",
+ "记录片",
+ "伦理片",
+ "动画片",
+ "中国动漫",
+ "日本动漫",
+ "欧美动漫",
+ "大陆综艺",
+ "日韩综艺",
+ "港台综艺",
+ "欧美综艺"
+ ]
+ }
+ },
+ {
+ "key": "新浪资源",
+ "name": "🟢 新浪",
+ "type": 3,
+ "api": "./caiji.js",
+ "ext": {
+ "url": "https://api.xinlangapi.com/xinlangapi.php/provide/vod/from/xlm3u8",
+ "categories": [
+ "大陆剧",
+ "港澳剧",
+ "台湾剧",
+ "欧美剧",
+ "韩剧",
+ "日剧",
+ "泰剧",
+ "动漫",
+ "动漫电影",
+ "综艺",
+ "动作片",
+ "爱情片",
+ "科幻片",
+ "战争片",
+ "剧情片",
+ "恐怖片",
+ "喜剧片",
+ "纪录片",
+ "伦理片"
+ ]
+ }
+ },
+ {
+ "key": "红牛资源",
+ "name": "🟢 红牛",
+ "type": 3,
+ "api": "./caiji.js",
+ "ext": {
+ "url": "https://www.hongniuzy2.com/api.php/provide/vod/from/hnm3u8/",
+ "categories": [
+ "国产剧",
+ "港澳剧",
+ "台湾剧",
+ "欧美剧",
+ "日剧",
+ "泰剧",
+ "韩剧",
+ "综艺",
+ "动漫",
+ "动漫电影",
+ "动作片",
+ "喜剧片",
+ "爱情片",
+ "科幻片",
+ "恐怖片",
+ "剧情片",
+ "战争片",
+ "纪录片",
+ "伦理片"
+ ]
+ }
+ },
+ {
+ "key": "速播资源",
+ "name": "🟢 速播",
+ "type": 3,
+ "api": "./caiji.js",
+ "ext": {
+ "url": "https://subocaiji.com/api.php/provide/vod/from/subm3u8/",
+ "categories": [
+ "大陆剧",
+ "台湾剧",
+ "韩剧",
+ "美剧",
+ "港澳剧",
+ "日剧",
+ "泰剧",
+ "动作片",
+ "爱情片",
+ "科幻片",
+ "战争片",
+ "剧情片",
+ "恐怖片",
+ "喜剧片",
+ "纪录片",
+ "伦理片",
+ "动漫电影",
+ "中国动漫",
+ "日本动漫",
+ "欧美动漫",
+ "综艺"
+ ]
+ }
+ },
+ {
+ "key": "极速资源",
+ "name": "🟢 极速",
+ "type": 3,
+ "api": "./caiji.js",
+ "ext": {
+ "url": "https://jszyapi.com/api.php/provide/vod/from/jsm3u8/",
+ "categories": [
+ "内地剧",
+ "欧美剧",
+ "香港剧",
+ "台湾剧",
+ "马泰剧",
+ "韩剧",
+ "日剧",
+ "伦理片",
+ "动作片",
+ "爱情片",
+ "喜剧片",
+ "科幻片",
+ "恐怖片",
+ "剧情片",
+ "战争片",
+ "灾难片",
+ "悬疑片",
+ "犯罪片",
+ "奇幻片",
+ "记录片",
+ "动画片",
+ "中国动漫",
+ "日本动漫",
+ "欧美动漫",
+ "大陆综艺",
+ "日韩综艺",
+ "港台综艺",
+ "欧美综艺"
+ ]
+ }
+ },
+ {
+ "key": "光速资源",
+ "name": "🟢 光速",
+ "type": 3,
+ "api": "./caiji.js",
+ "ext": {
+ "url": "https://api.guangsuapi.com/api.php/provide/vod/from/gsm3u8",
+ "categories": [
+ "大陆剧",
+ "欧美剧",
+ "港澳剧",
+ "台湾剧",
+ "泰剧",
+ "韩剧",
+ "日剧",
+ "动作片",
+ "爱情片",
+ "喜剧片",
+ "科幻片",
+ "恐怖片",
+ "战争片",
+ "伦理片",
+ "动漫电影"
+ ]
+ }
+ },
+ {
+ "key": "宅腐TV",
+ "name": "🟢 宅腐",
+ "type": 3,
+ "api": "./appysv2.js",
+ "ext": "http://app.zhaifutvapp.com/ruifenglb_api.php/v1.vod"
+ },
+ {
+ "key": "聚视网",
+ "name": "🟢 央视",
+ "type": 3,
+ "api": "./cntv_open.js"
+ },
+ {
+ "key": "武享UFC",
+ "name": "🟢 UFC",
+ "type": 3,
+ "api": "./ufc_open.js"
+ },
+ {
+ "key": "武享吧",
+ "name": "🟢 武享",
+ "type": 3,
+ "api": "./hula8_open.js"
+ },
+ {
+ "key": "兔小贝",
+ "name": "🟢 小贝",
+ "type": 3,
+ "api": "./tuxiaobei_open.js"
+ },
+ {
+ "key": "贝乐虎",
+ "name": "🟢 乐虎",
+ "type": 3,
+ "api": "./ubestkid_open.js"
+ },
+ {
+ "key": "酷奇MV",
+ "name": "🟢 酷奇",
+ "type": 3,
+ "api": "./kuqimv_open.js"
+ },
+ {
+ "key": "播视网",
+ "name": "🟢 童趣",
+ "type": 3,
+ "api": "./boosj_open.js"
+ },
+ {
+ "key": "短视频",
+ "name": "🟢 短视频",
+ "type": 3,
+ "api": "./sharenice_open.js"
+ },
+ {
+ "key": "push_agent",
+ "name": "♻ 推送",
+ "type": 4,
+ "api": "./push_open.js",
+ "ext": {
+ "token": "阿里token",
+ "cookie": "夸克cookie"
+ }
+ },
+ {
+ "key": "阿里盘寻",
+ "name": "🔍 盘寻",
+ "type": 3,
+ "api": "./pansearch_open.js",
+ "ext": "阿里token"
+ },
+ {
+ "key": "阿里盘搜",
+ "name": "🔍 盘搜",
+ "type": 3,
+ "api": "./pansou_open.js",
+ "ext": "阿里token"
+ },
+ {
+ "key": "阿里七夜",
+ "name": "🔍 七夜",
+ "type": 3,
+ "api": "./dovx_open.js",
+ "ext": "阿里token"
+ },
+ {
+ "key": "小纸条",
+ "name": "🔍 纸条",
+ "type": 3,
+ "api": "./xiaozhitiao_open.js",
+ "ext": "阿里token"
+ },
+ {
+ "key": "UP云搜",
+ "name": "🔍 云搜",
+ "type": 3,
+ "api": "./upyun_open.js",
+ "ext": "阿里token"
+ },
+ {
+ "key": "易搜",
+ "name": "🔍 易搜",
+ "type": 3,
+ "api": "./yiso_open.js",
+ "ext": "阿里token$$$易搜账号cookie"
+ },
+ {
+ "key": "云盘4K",
+ "name": "🔍 云盘",
+ "type": 3,
+ "api": "./yunpan4k_open.js",
+ "ext": "阿里token"
+ },
+ {
+ "key": "找资源",
+ "name": "🔍 资源",
+ "type": 3,
+ "api": "./zhaozy_open.js",
+ "ext": "阿里token$$$找资源账号$$$找资源密码"
+ },
+ {
+ "key": "夸克趣盘搜",
+ "name": "🔍 趣盘",
+ "type": 3,
+ "api": "./funletu_open.js",
+ "ext": "夸克账号cookie"
+ }
+ ]
+ },
+ "read": {
+ "sites": [
+ {
+ "key": "13bqg",
+ "name": "📓 笔趣",
+ "type": 10,
+ "api": "./13bqg_open.js"
+ },
+ {
+ "key": "老白故事",
+ "name": "🎧 老白",
+ "type": 10,
+ "api": "./lbgs_book_open.js"
+ },
+ {
+ "key": "博看书苑",
+ "name": "🎧 博看",
+ "type": 10,
+ "api": "./bookan_book_open.js"
+ },
+ {
+ "key": "爱上你听书网",
+ "name": "🎧 爱听",
+ "type": 10,
+ "api": "./230ts_book_open.js"
+ },
+ {
+ "key": "DJ0898网",
+ "name": "🎧 爱DJ",
+ "type": 10,
+ "api": "./dj0898_book_open.js"
+ }
+ ]
+ },
+ "comic": {
+ "sites": [
+ {
+ "key": "copymanga",
+ "name": "📓 拷贝漫画",
+ "type": 20,
+ "api": "./copymanga_open.js"
+ },
+ {
+ "key": "fengche",
+ "name": "📓 风车漫画",
+ "type": 20,
+ "api": "./fengche_open.js"
+ },
+ {
+ "key": "baozimh",
+ "name": "📓 包子漫画",
+ "type": 20,
+ "api": "./baozimh_open.js"
+ },
+ {
+ "key": "ACG漫画",
+ "name": "📓 ACG漫画",
+ "type": 20,
+ "api": "./acgwd_open.js"
+ },
+ {
+ "key": "mkz",
+ "name": "📓 漫客漫画",
+ "type": 20,
+ "api": "./mkz_open.js"
+ },
+ {
+ "key": "bengou",
+ "name": "📓 笨狗漫画",
+ "type": 20,
+ "api": "./bengou_open.js"
+ }
+ ]
+ },
+ "pan": {
+ "sites": [
+ {
+ "key": "alist",
+ "name": "Alist",
+ "type": 40,
+ "api": "./alist_open.js",
+ "ext": [
+ {
+ "name": "🟢 小雅",
+ "server": "http://124.71.206.236:5678/",
+ "startPage": "/",
+ "showAll": false,
+ "search": true,
+ "headers": {
+ "Authorization": ""
+ },
+ "params": {
+ "/abc": {
+ "password": "123"
+ },
+ "/abc/abc": {
+ "password": "123"
+ }
+ }
+ },
+ {
+ "name": "🟢 合集",
+ "server": "http://www.jczyl.top:5244/"
+ },
+ {
+ "name": "🟢 东哥",
+ "server": "http://101.34.67.237:5244/"
+ },
+ {
+ "name": "🟢 美云",
+ "server": "https://h.dfjx.ltd/"
+ },
+ {
+ "name": "🟢 小新",
+ "server": "https://pan.cdnxin.top/"
+ },
+ {
+ "name": "🟢 白云",
+ "server": "http://breadmyth.asuscomm.com:22222/"
+ },
+ {
+ "name": "🟢 小鸭",
+ "server": "http://www.214728327.xyz:5201/"
+ },
+ {
+ "name": "🟢 瑶瑶",
+ "server": "https://lyly.run.goorm.io/"
+ },
+ {
+ "name": "🟢 潇洒",
+ "server": "https://alist.azad.asia/"
+ },
+ {
+ "name": "🟢 鹏程",
+ "server": "https://pan.pengcheng.team/"
+ },
+ {
+ "name": "🟢 浅唱",
+ "server": "http://vtok.pp.ua/"
+ },
+ {
+ "name": "🟢 小丫",
+ "server": "http://alist.xiaoya.pro/"
+ },
+ {
+ "name": "🟢 触光",
+ "server": "https://pan.ichuguang.com"
+ },
+ {
+ "name": "🟢 弱水",
+ "server": "http://shicheng.wang:555/"
+ },
+ {
+ "name": "🟢 神器",
+ "server": "https://alist.ygxz.xyz/"
+ },
+ {
+ "name": "🟢 资源",
+ "server": "https://pan.ecve.cn/"
+ },
+ {
+ "name": "🟢 雨呢",
+ "server": "https://pan.clun.top/"
+ },
+ {
+ "name": "🟢 oeio",
+ "server": "https://o.oeio.repl.co/"
+ },
+ {
+ "name": "🟢 悦享",
+ "server": "https://nics.eu.org/"
+ },
+ {
+ "name": "🟢 分享",
+ "server": "https://ofoo.ml/"
+ },
+ {
+ "name": "🟢 PRO",
+ "server": "https://alist.prpr.run/"
+ },
+ {
+ "name": "🟢 多多",
+ "server": "https://pan.xwbeta.com"
+ },
+ {
+ "name": "🟢 小陈",
+ "server": "https://ypan.cc/"
+ },
+ {
+ "name": "🟢 只鱼",
+ "server": "https://alist.youte.ml"
+ },
+ {
+ "name": "🟢 七米",
+ "server": "https://al.chirmyram.com"
+ },
+ {
+ "name": "🟢 九帝",
+ "server": "https://alist.shenzjd.com"
+ },
+ {
+ "name": "🟢 白雪",
+ "server": "https://pan.jlbx.xyz"
+ },
+ {
+ "name": "🟢 星梦",
+ "server": "https://pan.bashroot.top"
+ },
+ {
+ "name": "🟢 repl",
+ "server": "https://ali.liucn.repl.co"
+ },
+ {
+ "name": "🟢 讯维",
+ "server": "https://pan.xwbeta.com"
+ }
+ ]
+ }
+ ]
+ },
+ "color": [
+ {
+ "light": {
+ "bg": "https://i2.100024.xyz/2024/01/13/qrnuwt.webp",
+ "bgMask": "0x50ffffff",
+ "primary": "0xFF2B6C00",
+ "onPrimary": "0xFFFFFFFF",
+ "primaryContainer": "0xFFA6F779",
+ "onPrimaryContainer": "0xFF082100",
+ "secondary": "0xFF55624C",
+ "onSecondary": "0xFFFFFFFF",
+ "secondaryContainer": "0xFFD9E7CA",
+ "onSecondaryContainer": "0xFF131F0D",
+ "tertiary": "0xFF386666",
+ "onTertiary": "0xFFFFFFFF",
+ "tertiaryContainer": "0xFFBBEBEB",
+ "onTertiaryContainer": "0xFF002020",
+ "error": "0xFFBA1A1A",
+ "onError": "0xFFFFFFFF",
+ "errorContainer": "0xFFFFDAD6",
+ "onErrorContainer": "0xFF410002",
+ "background": "0xFFFDFDF5",
+ "onBackground": "0xFF1A1C18",
+ "surface": "0xFFFDFDF5",
+ "onSurface": "0xFF1A1C18",
+ "surfaceVariant": "0xFFE0E4D6",
+ "onSurfaceVariant": "0xFF1A1C18",
+ "inverseSurface": "0xFF2F312C",
+ "onInverseSurface": "0xFFF1F1EA",
+ "outline": "0xFF74796D",
+ "outlineVariant": "0xFFC3C8BB",
+ "shadow": "0xFF000000",
+ "scrim": "0xFF000000",
+ "inversePrimary": "0xFF8CDA60",
+ "surfaceTint": "0xFF2B6C00"
+ },
+ "dark": {
+ "bg": "https://i2.100024.xyz/2024/01/13/qrc37o.webp",
+ "bgMask": "0x50000000",
+ "primary": "0xFF8CDA60",
+ "onPrimary": "0xFF133800",
+ "primaryContainer": "0xFF1F5100",
+ "onPrimaryContainer": "0xFFA6F779",
+ "secondary": "0xFFBDCBAF",
+ "onSecondary": "0xFF283420",
+ "secondaryContainer": "0xFF3E4A35",
+ "onSecondaryContainer": "0xFFD9E7CA",
+ "tertiary": "0xFFA0CFCF",
+ "onTertiary": "0xFF003737",
+ "tertiaryContainer": "0xFF1E4E4E",
+ "onTertiaryContainer": "0xFFBBEBEB",
+ "error": "0xFFFFB4AB",
+ "errorContainer": "0xFF93000A",
+ "onError": "0xFF690005",
+ "onErrorContainer": "0xFFFFDAD6",
+ "background": "0xFF1A1C18",
+ "onBackground": "0xFFE3E3DC",
+ "outline": "0xFF8D9286",
+ "onInverseSurface": "0xFF1A1C18",
+ "inverseSurface": "0xFFE3E3DC",
+ "inversePrimary": "0xFF2B6C00",
+ "shadow": "0xFF000000",
+ "surfaceTint": "0xFF8CDA60",
+ "outlineVariant": "0xFF43483E",
+ "scrim": "0xFF000000",
+ "surface": "0xFF1A1C18",
+ "onSurface": "0xFFC7C7C0",
+ "surfaceVariant": "0xFF43483E",
+ "onSurfaceVariant": "0xFFC7C7C0"
+ }
+ }
+ ]
+}
diff --git a/cat/js/config_open99.json b/cat/js/config_open99.json
new file mode 100644
index 0000000..19bdeff
--- /dev/null
+++ b/cat/js/config_open99.json
@@ -0,0 +1,162 @@
+{
+"video": {"sites": [
+{"key":"wogg_open","name":"影视 | 玩偶1","type":3,"api":"assets://js/wogg_open.js","ext":"填自己的32位token"},
+{"key":"wogg","name":"影视 | 玩偶2","type":3,"api":"assets://js/wogg.js","ext":"填自己的32位token"},
+{"key":"ytvip","name":"影视 | 影探","type":3,"api":"assets://js/yt.js","ext":"http://ytcms.lyyytv.cn/api.php/app/"},
+{"key":"yqktv_open","name":"影视 | 一起看","type":3,"api":"assets://js/yqktv_open.js"},
+{"key":"555dy_open","name":"影视 | 555","type":3,"api":"assets://js/555dy_open.js"},
+{"key":"yrzj_open","name":"影视 | 伊人","type":3,"api":"assets://js/yrzj_open.js"},
+{"key":"yzys_open","name":"影视 | 柚子","type":3,"api":"assets://js/yzys_open.js"},
+{"key":"sssp_open","name":"影视 | 速搜","type":3,"api":"assets://js/sssp_open.js"},
+{"key":"bulei_open","name":"影视 | 布雷","type":3,"api":"assets://js/bulei_open.js"},
+{"key":"miku_open","name":"影视 | 咪咕","type":3,"api":"assets://js/miku_open.js"},
+{"key":"tutu_open","name":"影视 | 图图","type":3,"api":"assets://js/tutu_open.js"},
+{"key":"jojo_open","name":"影视 | jojo","type":3,"api":"assets://js/jojo_open.js"},
+{"key":"jiohub","name":"影视 | jiohub","type":3,"api":"assets://js/jiohub.js"},
+{"key":"kunyu77","name":"影视 | 七七1","type":3,"api":"assets://js/kunyu77_open.js"},
+{"key":"kunyu77_yz","name":"影视 | 七七2","type":3,"api":"assets://js/kunyu77.js"},
+{"key":"czzy","name":"影视 | 厂长","type":3,"api":"assets://js/czzy_open.js"},
+{"key":"libvio","name":"影视 | libvio","type":3,"api":"assets://js/libvio_open.js"},
+{"key":"kkys","name":"影视 | 快看","type":3,"api":"assets://js/kkys_open.js"},
+{"key":"ikanbot","name":"影视 | 爱看1","type":3,"api":"assets://js/ikanbot.js"},
+{"key":"ikanbot_open","name":"影视 | 爱看2","type":3,"api":"assets://js/ikanbot_open.js"},
+{"key":"ngys","name":"影视 | 南瓜","type":3,"api":"assets://js/ng_open.js"},
+{"key":"nivod","name":"影视 | 泥巴","type":3,"api":"assets://js/nivod_op.js"},
+{"key":"duboku","name":"影视 | 独播库1","type":3,"api":"assets://js/duboku_open.js"},
+{"key":"duboku2_open","name":"影视 | 独播库2","type":3,"api":"assets://js/duboku2_open.js"},
+{"key":"subaibai","name":"影视 | 素白白","type":3,"api":"assets://js/subaibai_open.js"},
+{"key":"drpy_js_zxzj_open","name":"影视 | 在线之家","type":3,"api":"assets://js/zxzj_open.js"},
+{"key":"drpy_js_boosj_open","name":"少儿 | 童趣","type":3,"api":"assets://js/boosj_open.js"},
+{"key":"drpy_js_tuxiaobei_open","name":"少儿 | 兔小贝","type":3,"api":"assets://js/tuxiaobei_open.js"},
+{"key":"drpy_js_ubestkid_open","name":"少儿 | 贝乐虎","type":3,"api":"assets://js/ubestkid_open.js"},
+{"key":"sharenice","name":"聚合 | 短视频","type":3,"api":"assets://js/sharenice_open.js"},
+{"key":"mybili","name":"视频 | 哔哩1","type":3,"api":"assets://js/mybili_open.js"},
+{"key":"bili_open","name":"视频 | 哔哩2","type":3,"api":"assets://js/bili_open.js","ext":{"categories":"沙雕动画#健身#音乐#舞蹈#风景#美食#科普#历史#法考#医考","cookie":"填自己的cookie"}},
+{"key":"kuqimv","name":"MV | 酷奇","type":3,"api":"assets://js/kuqimv_open.js"},
+{"key":"drpy_js_cntv_open","name":"电视 | 视聚场","type":3,"api":"assets://js/cntv_open.js"},
+{"key":"哈喽","name":"影视 | 哈喽","type":3,"api":"assets://js/appysv2.js","ext":"http://www.miniku.cc/xgapp.php/v1/"},
+{"key":"1080dyw","name":"影视 | 视界","type":3,"api":"assets://js/appysv2.js","ext":"https://www.1080dyw.cc/api.php/v1.vod"},
+{"key":"miniku","name":"影视 | 迷你","type":3,"api":"assets://js/appysv2.js","ext":"http://www.miniku.cc/xgapp.php/v1/"},
+{"key":"aidi","name":"影视 | 爱迪","type":3,"api":"assets://js/appysv2.js","ext":"https://api123.adys.app/xgapp.php/v3/"},
+{"key":"yaya","name":"影视 | 鸭鸭","type":3,"api":"assets://js/appysv2.js","ext":"https://yayayaaapp.ynf.icu/api.php/app/"},
+{"key":"kuku","name":"影视 | 酷酷","type":3,"api":"assets://js/appysv2.js","ext":"http://cms.realdou.cn:35264/api.php/app/"},
+{"key":"beijihu","name":"影视 | 极狐","type":3,"api":"assets://js/appysv2.js","ext":"https://www.kuin.one/api.php/app/"},
+{"key":"kuk","name":"影视 | 天堂","type":3,"api":"assets://js/appysv2.js","ext":"http://dytt996.com/api.php/app/"},
+{"key":"kku","name":"影视 | 酷影","type":3,"api":"assets://js/appysv2.js","ext":"https://www.gsjtlxy.top/xgapp.php/v3/"},
+{"key":"kuu","name":"影视 | 酷客","type":3,"api":"assets://js/appysv2.js","ext":"https://www.kuin.one/api.php/app/"},
+{"key":"ruidou","name":"影视 | 锐豆","type":3,"api":"assets://js/appysv2.js","ext":"http://ys.realdou.cn:2683/api.php/app/"},
+{"key":"mayi","name":"影视 | 蚂蚁","type":3,"api":"assets://js/appysv2.js","ext":"http://wushutvcms.byzz.top/api.php/app/"},
+{"key":"sukan","name":"影视 | 速看","type":3,"api":"assets://js/appysv2.js","ext":"https://sk100.tv/api.php/app/"},
+{"key":"midi","name":"影视 | 明帝","type":3,"api":"assets://js/appysv2.js","ext":"https://ys.md214.cn/api.php/app/"},
+{"key":"dadou","name":"影视 | 大豆","type":3,"api":"assets://js/appysv2.js","ext":"http://www.dadou.cm/api.php/app/"},
+{"key":"qtw","name":"影视 | 彩虹","type":3,"api":"assets://js/appysv2.js","ext":"http://ys.qtw.asia/lvdou_api.php/v1.vod"},
+{"key":"xinlang","name":"影视 | 新浪","type":3,"api":"assets://js/caiji.js","ext":"https://api.xinlangapi.com/xinlangapi.php/provide/vod/from/xlm3u8"},
+{"key":"bdzy","name":"影视 | 百度","type":3,"api":"assets://js/caiji.js","ext":"https://api.apibdzy.com/api.php/provide/vod/from/dbm3u8/"},
+{"key":"bfzy","name":"影视 | 暴风","type":3,"api":"assets://js/caiji.js","ext":"https://bfzyapi.com/api.php/provide/vod/"},
+{"key":"394tv","name":"影视 | 39","type":3,"api":"assets://js/caiji.js","ext":"https://www.394tv.com/api.php/provide/vod/"},
+{"key":"languang","name":"影视 | 蓝光","type":3,"api":"assets://js/caiji.js","ext":"http://www.zzrhgg.com/api.php/provide/vod/"},
+{"key":"lehuo","name":"影视 | 乐活","type":3,"api":"assets://js/caiji.js","ext":"https://cj.vodimg.top/api.php/provide/vod/"},
+{"key":"piaoling","name":"影视 | 飘零","type":3,"api":"assets://js/caiji.js","ext":"https://p2100.net/api.php/provide/vod/"},
+{"key":"yingtu","name":"影视 | 影图","type":3,"api":"assets://js/caiji.js","ext":"https://cj.vodimg.top/api.php/provide/vod/"},
+{"key":"feifan","name":"影视 | 非凡","type":3,"api":"assets://js/caiji.js","ext":"https://cj.ffzyapi.com/api.php/provide/vod/from/ffm3u8/"},
+{"key":"feisu","name":"影视 | 飞速","type":3,"api":"assets://js/caiji.js","ext":"https://www.feisuzyapi.com/api.php/provide/vod/from/fsm3u8/"},
+{"key":"guangsu","name":"影视 | 光速","type":3,"api":"assets://js/caiji.js","ext":"https://api.guangsuapi.com/api.php/provide/vod/from/gsm3u8/"},
+{"key":"hongniu","name":"影视 | 红牛","type":3,"api":"assets://js/caiji.js","ext":"https://www.hongniuzy2.com/api.php/provide/vod/from/hnm3u8/"},
+{"key":"jinying","name":"影视 | 金鹰","type":3,"api":"assets://js/caiji.js","ext":"https://jinyingzy.com/provide/vod/from/jinyingm3u8/"},
+{"key":"jisu","name":"影视 | 极速","type":3,"api":"assets://js/caiji.js","ext":"https://jszyapi.com/api.php/provide/vod/from/jsm3u8/"},
+{"key":"kuaiche","name":"影视 | 快车","type":3,"api":"assets://js/caiji.js","ext":"https://caiji.kczyapi.com/api.php/provide/vod/from/kcm3u8/"},
+{"key":"liangzi","name":"影视 | 量子","type":3,"api":"assets://js/caiji.js","ext":"https://cj.lziapi.com/api.php/provide/vod/from/lzm3u8/"},
+{"key":"qihu","name":"影视 | 奇虎","type":3,"api":"assets://js/caiji.js","ext":"https://caiji.qhzyapi.com/api.php/provide/vod/from/qhm3u8/"},
+{"key":"guangsuapi","name":"影视 | 光速","type":3,"api":"assets://js/caiji.js","ext":"http://api.guangsuapi.com/api.php/provide/vod/from/gsm3u8/"},
+{"key":"nivod18","name":"成人 | 泥巴","type":3,"api":"assets://js/nivod_op.js","ext":"做爱"},
+{"key":"mtsp_open","name":"成人 | 蜜桃","type":3,"api":"assets://js/mtsp_open.js"},
+{"key":"18av_open","name":"成人 | 18av","type":3,"api":"assets://js/18av_open.js"},
+{"key":"18a_open","name":"成人 | 18a","type":3,"api":"assets://js/18a_open.js"},
+{"key":"apilj","name":"成人 | 十八","type":3,"api":"assets://js/caiji.js","ext":"https://apilj.com/api.php/provide/vod/at/json/"},
+{"key":"kulunli","name":"成人 | 酷伦理","type":3,"api":"assets://js/caiji.js","ext":"https://api.kudian70.com/api.php/provide/vod/"},
+{"key":"apilj.com","name":"成人 | 成人03","type":3,"api":"assets://js/caiji.js","ext":"http://apilj.com/api.php/provide/vod/at/json/"},
+{"key":"91md.me","name":"成人 | 成人05","type":3,"api":"assets://js/caiji.js","ext":"http://91md.me/api.php/provide/vod/"},
+{"key":"api.sexnguon.com","name":"成人 | 成人08","type":3,"api":"assets://js/caiji.js","ext":"http://api.sexnguon.com/api.php/provide/vod/"},
+{"key":"feifei67.com","name":"成人 | 成人09","type":3,"api":"assets://js/caiji.js","ext":"http://www.feifei67.com/api.php/provide/vod/"},
+{"key":"fhapi9.com","name":"成人 | 成人12","type":3,"api":"assets://js/caiji.js","ext":"http://fhapi9.com/api.php/provide/vod/"},
+{"key":"madouse.la","name":"成人 | 成人27","type":3,"api":"assets://js/caiji.js","ext":"http://madouse.la/api.php/provide/vod/"},
+{"key":"api.maozyapi.com","name":"成人 | 成人33","type":3,"api":"assets://js/caiji.js","ext":"https://api.maozyapi.com/inc/apijson_vod.php"},
+{"key":"888dav.com","name":"成人 | 成人35","type":3,"api":"assets://js/caiji.js","ext":"https://www.888dav.com/api.php/provide/vod/"},
+{"key":"mgzyz1.com","name":"成人 | 成人36","type":3,"api":"assets://js/caiji.js","ext":"https://mgzyz1.com/api.php/provide/vod/"},
+{"key":"caiji.huakuiapi.com","name":"成人 | 成人37","type":3,"api":"assets://js/caiji.js","ext":"https://caiji.huakuiapi.com/inc/apijson_vod.php"},
+{"key":"lbapi9.com","name":"成人 | 成人43","type":3,"api":"assets://js/caiji.js","ext":"https://lbapi9.com/api.php/provide/vod/"},
+{"key":"apittzy.com","name":"成人 | 成人44","type":3,"api":"assets://js/caiji.js","ext":"https://apittzy.com/api.php/provide/vod/"},
+{"key":"kkzy.me","name":"成人 | 成人45","type":3,"api":"assets://js/caiji.js","ext":"https://kkzy.me/api.php/provide/vod/"},
+{"key":"sewozyapi.com","name":"成人 | 成人50","type":3,"api":"assets://js/caiji.js","ext":"https://sewozyapi.com/api.php/provide/vod/"},
+{"key":"api.apilyzy.com","name":"成人 | 成人52","type":3,"api":"assets://js/caiji.js","ext":"https://api.apilyzy.com/api.php/provide/vod/"}
+]},
+ "comic": {
+ "sites": [
+ {
+ "key": "cartoon18",
+ "name": "cartoon18",
+ "type": 3,
+ "api": "assets://js/cartoon18_open.js"
+ } ]
+ },
+"pan":{"sites":[
+{"key":"alist","name":"Alist","type":40,"api":"assets://js/alist_open.js","ext":[
+{"name":"丫仙女","server":"http://alist.xiaoya.pro/","startPage":"/","showAll":false,"search":true,"headers":{"Authorization":""},"params":{"/abc":{"password":"123"},"/abc/abc":{"password":"123"}}},
+{"name":"小鸭","server":"http://shicheng.wang:555/","startPage":"/","showAll":false,"search":true,"params":{"/abc":{"password":"123"},"/abc/abc":{"password":"123"}}},
+{"name":"小猫","server":"https://nics.eu.org","startPage":"/SP1","showAll":false,"search":true,"params":{"/abc":{"password":"123"},"/abc/abc":{"password":"123"}}},
+{"name":"ECVE","server":"https://pan.ecve.cn"},
+{"name":"觸光","server":"https://pan.ichuguang.com"},
+{"name":"一只魚","server":"https://vtok.pp.ua/"},
+{"name":"七米藍","server":"https://al.chirmyram.com"},
+{"name":"神族九帝","server":"https://alist.shenzjd.com"},
+{"name":"梓澪","server":"https://zi0.cc"},
+{"name":"一只鱼","server":"https://alist.youte.ml"},
+{"name":"杜比","server":"https://dubi.tk"},
+{"name":"姬路白雪","server":"https://pan.jlbx.xyz"},
+{"name":"星梦","server":"https://pan.bashroot.top"},
+{"name":"repl","server":"https://ali.liucn.repl.co"},
+{"name":"讯维云盘","server":"https://pan.xwbeta.com"},
+{"name":"正奕合集","server":"http://www.jczyl.top:5244/"},
+{"name":"东哥","server":"http://101.34.67.237:5244/"},
+{"name":"美云","server":"https://h.dfjx.ltd/"},
+{"name":"小新盘","server":"https://pan.cdnxin.top/"},
+{"name":"白云tv","server":"http://breadmyth.asuscomm.com:22222/"},
+{"name":"小雅分类","server":"http://www.214728327.xyz:5207/"},
+{"name":"瑶瑶","server":"https://lyly.run.goorm.io/"},
+{"name":"潇洒个人","server":"https://alist.azad.asia/"},
+{"name":"鹏程","server":"https://pan.pengcheng.team/"},
+{"name":"小丫","server":"http://alist.xiaoya.pro/"},
+{"name":"神器云","server":"https://alist.ygxz.xyz/"},
+{"name":"雨呢","server":"https://pan.clun.top/"},
+{"name":"OEIO","server":"https://o.oeio.repl.co/"},
+{"name":"酷呵盘","server":"https://pan.kuhehe.top/"},
+{"name":"分享者","server":"https://melist.me/"},
+{"name":"目瞪口呆","server":"https://pan.mdgd.cc/"},
+{"name":"小陈","server":"https://ypan.cc/"},
+{"name":"动漫盘","server":"http://pan.smjc.cc"},
+{"name":"神秘小盘","server":"https://yun.ltt.zone/"},
+{"name":"SODAZ1","server":"https://pan.sodaz.xyz/"},
+{"name":"ccaa","server":"http://ww1.ccaac.xyz/"},
+{"name":"姹莱坞","server":"https://alist.agczsz.top/","passwd":"agree"},
+{"name":"老谭","server":"https://pan.cqtjy.cn/"},
+{"name":"皓星繁天","server":"https://pan.hxft.xyz/"},
+{"name":"肥灿","server":"http://43.200.153.107:55609/"},
+{"name":"悦享盘","server":"https://pity.eu.org/"},
+{"name":"小雅备用","server":"http://123.60.188.109:5678/"},
+{"name":"小黄瓜","server":"http://sbpan.tk/"},
+{"name":"👀微资·随意盘","server":"https://apps.weixinqqq.com/"},
+{"name":"雨呢备用","server":"https://clun.eu.org/"},
+{"name":"潇洒备用","server":"http://www.azad.asia:5244/"},
+{"name":"A大杂物库","server":"https://alist.qyide.com/"},
+{"name":"罗汉果","server":"https://lala-ofbip.run.goorm.site/"},
+{"name":"诸神小盘","server":"https://pan.zsxg.top/"},
+{"name":"福利盘","server":"http://69.161.221.160:5244/"},
+{"name":"爱豆福利","server":"https://alist.eduedu.eu.org/"}
+]}]},
+ "color": [
+ {
+ "light": { "bg": "https://i2.100024.xyz/2024/01/13/qrnuwt.webp", "bgMask": "0x50ffffff", "primary": "0xFF2B6C00", "onPrimary": "0xFFFFFFFF", "primaryContainer": "0xFFA6F779", "onPrimaryContainer": "0xFF082100", "secondary": "0xFF55624C", "onSecondary": "0xFFFFFFFF", "secondaryContainer": "0xFFD9E7CA", "onSecondaryContainer": "0xFF131F0D", "tertiary": "0xFF386666", "onTertiary": "0xFFFFFFFF", "tertiaryContainer": "0xFFBBEBEB", "onTertiaryContainer": "0xFF002020", "error": "0xFFBA1A1A", "onError": "0xFFFFFFFF", "errorContainer": "0xFFFFDAD6", "onErrorContainer": "0xFF410002", "background": "0xFFFDFDF5", "onBackground": "0xFF1A1C18", "surface": "0xFFFDFDF5", "onSurface": "0xFF1A1C18", "surfaceVariant": "0xFFE0E4D6", "onSurfaceVariant": "0xFF1A1C18", "inverseSurface": "0xFF2F312C", "onInverseSurface": "0xFFF1F1EA", "outline": "0xFF74796D", "outlineVariant": "0xFFC3C8BB", "shadow": "0xFF000000", "scrim": "0xFF000000", "inversePrimary": "0xFF8CDA60", "surfaceTint": "0xFF2B6C00" },
+ "dark": { "bg": "https://i2.100024.xyz/2024/01/13/qrc37o.webp", "bgMask": "0x50000000", "primary": "0xFF8CDA60", "onPrimary": "0xFF133800", "primaryContainer": "0xFF1F5100", "onPrimaryContainer": "0xFFA6F779", "secondary": "0xFFBDCBAF", "onSecondary": "0xFF283420", "secondaryContainer": "0xFF3E4A35", "onSecondaryContainer": "0xFFD9E7CA", "tertiary": "0xFFA0CFCF", "onTertiary": "0xFF003737", "tertiaryContainer": "0xFF1E4E4E", "onTertiaryContainer": "0xFFBBEBEB", "error": "0xFFFFB4AB", "errorContainer": "0xFF93000A", "onError": "0xFF690005", "onErrorContainer": "0xFFFFDAD6", "background": "0xFF1A1C18", "onBackground": "0xFFE3E3DC", "outline": "0xFF8D9286", "onInverseSurface": "0xFF1A1C18", "inverseSurface": "0xFFE3E3DC", "inversePrimary": "0xFF2B6C00", "shadow": "0xFF000000", "surfaceTint": "0xFF8CDA60", "outlineVariant": "0xFF43483E", "scrim": "0xFF000000", "surface": "0xFF1A1C18", "onSurface": "0xFFC7C7C0", "surfaceVariant": "0xFF43483E", "onSurfaceVariant": "0xFFC7C7C0" }
+ }
+ ]
+}
diff --git a/cat/js/config_open99_online.json b/cat/js/config_open99_online.json
new file mode 100644
index 0000000..b85dd6e
--- /dev/null
+++ b/cat/js/config_open99_online.json
@@ -0,0 +1,162 @@
+{
+"video": {"sites": [
+{"key":"wogg_open","name":"影视 | 玩偶1","type":3,"api":"wogg_open.js","ext":"填自己的32位token"},
+{"key":"wogg","name":"影视 | 玩偶2","type":3,"api":"wogg.js","ext":"填自己的32位token"},
+{"key":"ytvip","name":"影视 | 影探","type":3,"api":"yt.js","ext":"http://ytcms.lyyytv.cn/api.php/app/"},
+{"key":"yqktv_open","name":"影视 | 一起看","type":3,"api":"yqktv_open.js"},
+{"key":"555dy_open","name":"影视 | 555","type":3,"api":"555dy_open.js"},
+{"key":"yrzj_open","name":"影视 | 伊人","type":3,"api":"yrzj_open.js"},
+{"key":"yzys_open","name":"影视 | 柚子","type":3,"api":"yzys_open.js"},
+{"key":"sssp_open","name":"影视 | 速搜","type":3,"api":"sssp_open.js"},
+{"key":"bulei_open","name":"影视 | 布雷","type":3,"api":"bulei_open.js"},
+{"key":"miku_open","name":"影视 | 咪咕","type":3,"api":"miku_open.js"},
+{"key":"tutu_open","name":"影视 | 图图","type":3,"api":"tutu_open.js"},
+{"key":"jojo_open","name":"影视 | jojo","type":3,"api":"jojo_open.js"},
+{"key":"jiohub","name":"影视 | jiohub","type":3,"api":"jiohub.js"},
+{"key":"kunyu77","name":"影视 | 七七1","type":3,"api":"kunyu77_open.js"},
+{"key":"kunyu77_yz","name":"影视 | 七七2","type":3,"api":"kunyu77.js"},
+{"key":"czzy","name":"影视 | 厂长","type":3,"api":"czzy_open.js"},
+{"key":"libvio","name":"影视 | libvio","type":3,"api":"libvio_open.js"},
+{"key":"kkys","name":"影视 | 快看","type":3,"api":"kkys_open.js"},
+{"key":"ikanbot","name":"影视 | 爱看1","type":3,"api":"ikanbot.js"},
+{"key":"ikanbot_open","name":"影视 | 爱看2","type":3,"api":"ikanbot_open.js"},
+{"key":"ngys","name":"影视 | 南瓜","type":3,"api":"ng_open.js"},
+{"key":"nivod","name":"影视 | 泥巴","type":3,"api":"nivod_op.js"},
+{"key":"duboku","name":"影视 | 独播库1","type":3,"api":"duboku_open.js"},
+{"key":"duboku2_open","name":"影视 | 独播库2","type":3,"api":"duboku2_open.js"},
+{"key":"subaibai","name":"影视 | 素白白","type":3,"api":"subaibai_open.js"},
+{"key":"drpy_js_zxzj_open","name":"影视 | 在线之家","type":3,"api":"zxzj_open.js"},
+{"key":"drpy_js_boosj_open","name":"少儿 | 童趣","type":3,"api":"boosj_open.js"},
+{"key":"drpy_js_tuxiaobei_open","name":"少儿 | 兔小贝","type":3,"api":"tuxiaobei_open.js"},
+{"key":"drpy_js_ubestkid_open","name":"少儿 | 贝乐虎","type":3,"api":"ubestkid_open.js"},
+{"key":"sharenice","name":"聚合 | 短视频","type":3,"api":"sharenice_open.js"},
+{"key":"mybili","name":"视频 | 哔哩1","type":3,"api":"mybili_open.js"},
+{"key":"bili_open","name":"视频 | 哔哩2","type":3,"api":"bili_open.js","ext":{"categories":"沙雕动画#健身#音乐#舞蹈#风景#美食#科普#历史#法考#医考","cookie":"填自己的cookie"}},
+{"key":"kuqimv","name":"MV | 酷奇","type":3,"api":"kuqimv_open.js"},
+{"key":"drpy_js_cntv_open","name":"电视 | 视聚场","type":3,"api":"cntv_open.js"},
+{"key":"哈喽","name":"影视 | 哈喽","type":3,"api":"appysv2.js","ext":"http://www.miniku.cc/xgapp.php/v1/"},
+{"key":"1080dyw","name":"影视 | 视界","type":3,"api":"appysv2.js","ext":"https://www.1080dyw.cc/api.php/v1.vod"},
+{"key":"miniku","name":"影视 | 迷你","type":3,"api":"appysv2.js","ext":"http://www.miniku.cc/xgapp.php/v1/"},
+{"key":"aidi","name":"影视 | 爱迪","type":3,"api":"appysv2.js","ext":"https://api123.adys.app/xgapp.php/v3/"},
+{"key":"yaya","name":"影视 | 鸭鸭","type":3,"api":"appysv2.js","ext":"https://yayayaaapp.ynf.icu/api.php/app/"},
+{"key":"kuku","name":"影视 | 酷酷","type":3,"api":"appysv2.js","ext":"http://cms.realdou.cn:35264/api.php/app/"},
+{"key":"beijihu","name":"影视 | 极狐","type":3,"api":"appysv2.js","ext":"https://www.kuin.one/api.php/app/"},
+{"key":"kuk","name":"影视 | 天堂","type":3,"api":"appysv2.js","ext":"http://dytt996.com/api.php/app/"},
+{"key":"kku","name":"影视 | 酷影","type":3,"api":"appysv2.js","ext":"https://www.gsjtlxy.top/xgapp.php/v3/"},
+{"key":"kuu","name":"影视 | 酷客","type":3,"api":"appysv2.js","ext":"https://www.kuin.one/api.php/app/"},
+{"key":"ruidou","name":"影视 | 锐豆","type":3,"api":"appysv2.js","ext":"http://ys.realdou.cn:2683/api.php/app/"},
+{"key":"mayi","name":"影视 | 蚂蚁","type":3,"api":"appysv2.js","ext":"http://wushutvcms.byzz.top/api.php/app/"},
+{"key":"sukan","name":"影视 | 速看","type":3,"api":"appysv2.js","ext":"https://sk100.tv/api.php/app/"},
+{"key":"midi","name":"影视 | 明帝","type":3,"api":"appysv2.js","ext":"https://ys.md214.cn/api.php/app/"},
+{"key":"dadou","name":"影视 | 大豆","type":3,"api":"appysv2.js","ext":"http://www.dadou.cm/api.php/app/"},
+{"key":"qtw","name":"影视 | 彩虹","type":3,"api":"appysv2.js","ext":"http://ys.qtw.asia/lvdou_api.php/v1.vod"},
+{"key":"xinlang","name":"影视 | 新浪","type":3,"api":"caiji.js","ext":"https://api.xinlangapi.com/xinlangapi.php/provide/vod/from/xlm3u8"},
+{"key":"bdzy","name":"影视 | 百度","type":3,"api":"caiji.js","ext":"https://api.apibdzy.com/api.php/provide/vod/from/dbm3u8/"},
+{"key":"bfzy","name":"影视 | 暴风","type":3,"api":"caiji.js","ext":"https://bfzyapi.com/api.php/provide/vod/"},
+{"key":"394tv","name":"影视 | 39","type":3,"api":"caiji.js","ext":"https://www.394tv.com/api.php/provide/vod/"},
+{"key":"languang","name":"影视 | 蓝光","type":3,"api":"caiji.js","ext":"http://www.zzrhgg.com/api.php/provide/vod/"},
+{"key":"lehuo","name":"影视 | 乐活","type":3,"api":"caiji.js","ext":"https://cj.vodimg.top/api.php/provide/vod/"},
+{"key":"piaoling","name":"影视 | 飘零","type":3,"api":"caiji.js","ext":"https://p2100.net/api.php/provide/vod/"},
+{"key":"yingtu","name":"影视 | 影图","type":3,"api":"caiji.js","ext":"https://cj.vodimg.top/api.php/provide/vod/"},
+{"key":"feifan","name":"影视 | 非凡","type":3,"api":"caiji.js","ext":"https://cj.ffzyapi.com/api.php/provide/vod/from/ffm3u8/"},
+{"key":"feisu","name":"影视 | 飞速","type":3,"api":"caiji.js","ext":"https://www.feisuzyapi.com/api.php/provide/vod/from/fsm3u8/"},
+{"key":"guangsu","name":"影视 | 光速","type":3,"api":"caiji.js","ext":"https://api.guangsuapi.com/api.php/provide/vod/from/gsm3u8/"},
+{"key":"hongniu","name":"影视 | 红牛","type":3,"api":"caiji.js","ext":"https://www.hongniuzy2.com/api.php/provide/vod/from/hnm3u8/"},
+{"key":"jinying","name":"影视 | 金鹰","type":3,"api":"caiji.js","ext":"https://jinyingzy.com/provide/vod/from/jinyingm3u8/"},
+{"key":"jisu","name":"影视 | 极速","type":3,"api":"caiji.js","ext":"https://jszyapi.com/api.php/provide/vod/from/jsm3u8/"},
+{"key":"kuaiche","name":"影视 | 快车","type":3,"api":"caiji.js","ext":"https://caiji.kczyapi.com/api.php/provide/vod/from/kcm3u8/"},
+{"key":"liangzi","name":"影视 | 量子","type":3,"api":"caiji.js","ext":"https://cj.lziapi.com/api.php/provide/vod/from/lzm3u8/"},
+{"key":"qihu","name":"影视 | 奇虎","type":3,"api":"caiji.js","ext":"https://caiji.qhzyapi.com/api.php/provide/vod/from/qhm3u8/"},
+{"key":"guangsuapi","name":"影视 | 光速","type":3,"api":"caiji.js","ext":"http://api.guangsuapi.com/api.php/provide/vod/from/gsm3u8/"},
+{"key":"nivod18","name":"成人 | 泥巴","type":3,"api":"nivod_op.js","ext":"做爱"},
+{"key":"mtsp_open","name":"成人 | 蜜桃","type":3,"api":"mtsp_open.js"},
+{"key":"18av_open","name":"成人 | 18av","type":3,"api":"18av_open.js"},
+{"key":"18a_open","name":"成人 | 18a","type":3,"api":"18a_open.js"},
+{"key":"apilj","name":"成人 | 十八","type":3,"api":"caiji.js","ext":"https://apilj.com/api.php/provide/vod/at/json/"},
+{"key":"kulunli","name":"成人 | 酷伦理","type":3,"api":"caiji.js","ext":"https://api.kudian70.com/api.php/provide/vod/"},
+{"key":"apilj.com","name":"成人 | 成人03","type":3,"api":"caiji.js","ext":"http://apilj.com/api.php/provide/vod/at/json/"},
+{"key":"91md.me","name":"成人 | 成人05","type":3,"api":"caiji.js","ext":"http://91md.me/api.php/provide/vod/"},
+{"key":"api.sexnguon.com","name":"成人 | 成人08","type":3,"api":"caiji.js","ext":"http://api.sexnguon.com/api.php/provide/vod/"},
+{"key":"feifei67.com","name":"成人 | 成人09","type":3,"api":"caiji.js","ext":"http://www.feifei67.com/api.php/provide/vod/"},
+{"key":"fhapi9.com","name":"成人 | 成人12","type":3,"api":"caiji.js","ext":"http://fhapi9.com/api.php/provide/vod/"},
+{"key":"madouse.la","name":"成人 | 成人27","type":3,"api":"caiji.js","ext":"http://madouse.la/api.php/provide/vod/"},
+{"key":"api.maozyapi.com","name":"成人 | 成人33","type":3,"api":"caiji.js","ext":"https://api.maozyapi.com/inc/apijson_vod.php"},
+{"key":"888dav.com","name":"成人 | 成人35","type":3,"api":"caiji.js","ext":"https://www.888dav.com/api.php/provide/vod/"},
+{"key":"mgzyz1.com","name":"成人 | 成人36","type":3,"api":"caiji.js","ext":"https://mgzyz1.com/api.php/provide/vod/"},
+{"key":"caiji.huakuiapi.com","name":"成人 | 成人37","type":3,"api":"caiji.js","ext":"https://caiji.huakuiapi.com/inc/apijson_vod.php"},
+{"key":"lbapi9.com","name":"成人 | 成人43","type":3,"api":"caiji.js","ext":"https://lbapi9.com/api.php/provide/vod/"},
+{"key":"apittzy.com","name":"成人 | 成人44","type":3,"api":"caiji.js","ext":"https://apittzy.com/api.php/provide/vod/"},
+{"key":"kkzy.me","name":"成人 | 成人45","type":3,"api":"caiji.js","ext":"https://kkzy.me/api.php/provide/vod/"},
+{"key":"sewozyapi.com","name":"成人 | 成人50","type":3,"api":"caiji.js","ext":"https://sewozyapi.com/api.php/provide/vod/"},
+{"key":"api.apilyzy.com","name":"成人 | 成人52","type":3,"api":"caiji.js","ext":"https://api.apilyzy.com/api.php/provide/vod/"}
+]},
+ "comic": {
+ "sites": [
+ {
+ "key": "cartoon18",
+ "name": "cartoon18",
+ "type": 3,
+ "api": "cartoon18_open.js"
+ } ]
+ },
+"pan":{"sites":[
+{"key":"alist","name":"Alist","type":40,"api":"alist_open.js","ext":[
+{"name":"丫仙女","server":"http://alist.xiaoya.pro/","startPage":"/","showAll":false,"search":true,"headers":{"Authorization":""},"params":{"/abc":{"password":"123"},"/abc/abc":{"password":"123"}}},
+{"name":"小鸭","server":"http://shicheng.wang:555/","startPage":"/","showAll":false,"search":true,"params":{"/abc":{"password":"123"},"/abc/abc":{"password":"123"}}},
+{"name":"小猫","server":"https://nics.eu.org","startPage":"/SP1","showAll":false,"search":true,"params":{"/abc":{"password":"123"},"/abc/abc":{"password":"123"}}},
+{"name":"ECVE","server":"https://pan.ecve.cn"},
+{"name":"觸光","server":"https://pan.ichuguang.com"},
+{"name":"一只魚","server":"https://vtok.pp.ua/"},
+{"name":"七米藍","server":"https://al.chirmyram.com"},
+{"name":"神族九帝","server":"https://alist.shenzjd.com"},
+{"name":"梓澪","server":"https://zi0.cc"},
+{"name":"一只鱼","server":"https://alist.youte.ml"},
+{"name":"杜比","server":"https://dubi.tk"},
+{"name":"姬路白雪","server":"https://pan.jlbx.xyz"},
+{"name":"星梦","server":"https://pan.bashroot.top"},
+{"name":"repl","server":"https://ali.liucn.repl.co"},
+{"name":"讯维云盘","server":"https://pan.xwbeta.com"},
+{"name":"正奕合集","server":"http://www.jczyl.top:5244/"},
+{"name":"东哥","server":"http://101.34.67.237:5244/"},
+{"name":"美云","server":"https://h.dfjx.ltd/"},
+{"name":"小新盘","server":"https://pan.cdnxin.top/"},
+{"name":"白云tv","server":"http://breadmyth.asuscomm.com:22222/"},
+{"name":"小雅分类","server":"http://www.214728327.xyz:5207/"},
+{"name":"瑶瑶","server":"https://lyly.run.goorm.io/"},
+{"name":"潇洒个人","server":"https://alist.azad.asia/"},
+{"name":"鹏程","server":"https://pan.pengcheng.team/"},
+{"name":"小丫","server":"http://alist.xiaoya.pro/"},
+{"name":"神器云","server":"https://alist.ygxz.xyz/"},
+{"name":"雨呢","server":"https://pan.clun.top/"},
+{"name":"OEIO","server":"https://o.oeio.repl.co/"},
+{"name":"酷呵盘","server":"https://pan.kuhehe.top/"},
+{"name":"分享者","server":"https://melist.me/"},
+{"name":"目瞪口呆","server":"https://pan.mdgd.cc/"},
+{"name":"小陈","server":"https://ypan.cc/"},
+{"name":"动漫盘","server":"http://pan.smjc.cc"},
+{"name":"神秘小盘","server":"https://yun.ltt.zone/"},
+{"name":"SODAZ1","server":"https://pan.sodaz.xyz/"},
+{"name":"ccaa","server":"http://ww1.ccaac.xyz/"},
+{"name":"姹莱坞","server":"https://alist.agczsz.top/","passwd":"agree"},
+{"name":"老谭","server":"https://pan.cqtjy.cn/"},
+{"name":"皓星繁天","server":"https://pan.hxft.xyz/"},
+{"name":"肥灿","server":"http://43.200.153.107:55609/"},
+{"name":"悦享盘","server":"https://pity.eu.org/"},
+{"name":"小雅备用","server":"http://123.60.188.109:5678/"},
+{"name":"小黄瓜","server":"http://sbpan.tk/"},
+{"name":"👀微资·随意盘","server":"https://apps.weixinqqq.com/"},
+{"name":"雨呢备用","server":"https://clun.eu.org/"},
+{"name":"潇洒备用","server":"http://www.azad.asia:5244/"},
+{"name":"A大杂物库","server":"https://alist.qyide.com/"},
+{"name":"罗汉果","server":"https://lala-ofbip.run.goorm.site/"},
+{"name":"诸神小盘","server":"https://pan.zsxg.top/"},
+{"name":"福利盘","server":"http://69.161.221.160:5244/"},
+{"name":"爱豆福利","server":"https://alist.eduedu.eu.org/"}
+]}]},
+ "color": [
+ {
+ "light": { "bg": "https://i2.100024.xyz/2024/01/13/qrnuwt.webp", "bgMask": "0x50ffffff", "primary": "0xFF2B6C00", "onPrimary": "0xFFFFFFFF", "primaryContainer": "0xFFA6F779", "onPrimaryContainer": "0xFF082100", "secondary": "0xFF55624C", "onSecondary": "0xFFFFFFFF", "secondaryContainer": "0xFFD9E7CA", "onSecondaryContainer": "0xFF131F0D", "tertiary": "0xFF386666", "onTertiary": "0xFFFFFFFF", "tertiaryContainer": "0xFFBBEBEB", "onTertiaryContainer": "0xFF002020", "error": "0xFFBA1A1A", "onError": "0xFFFFFFFF", "errorContainer": "0xFFFFDAD6", "onErrorContainer": "0xFF410002", "background": "0xFFFDFDF5", "onBackground": "0xFF1A1C18", "surface": "0xFFFDFDF5", "onSurface": "0xFF1A1C18", "surfaceVariant": "0xFFE0E4D6", "onSurfaceVariant": "0xFF1A1C18", "inverseSurface": "0xFF2F312C", "onInverseSurface": "0xFFF1F1EA", "outline": "0xFF74796D", "outlineVariant": "0xFFC3C8BB", "shadow": "0xFF000000", "scrim": "0xFF000000", "inversePrimary": "0xFF8CDA60", "surfaceTint": "0xFF2B6C00" },
+ "dark": { "bg": "https://i2.100024.xyz/2024/01/13/qrc37o.webp", "bgMask": "0x50000000", "primary": "0xFF8CDA60", "onPrimary": "0xFF133800", "primaryContainer": "0xFF1F5100", "onPrimaryContainer": "0xFFA6F779", "secondary": "0xFFBDCBAF", "onSecondary": "0xFF283420", "secondaryContainer": "0xFF3E4A35", "onSecondaryContainer": "0xFFD9E7CA", "tertiary": "0xFFA0CFCF", "onTertiary": "0xFF003737", "tertiaryContainer": "0xFF1E4E4E", "onTertiaryContainer": "0xFFBBEBEB", "error": "0xFFFFB4AB", "errorContainer": "0xFF93000A", "onError": "0xFF690005", "onErrorContainer": "0xFFFFDAD6", "background": "0xFF1A1C18", "onBackground": "0xFFE3E3DC", "outline": "0xFF8D9286", "onInverseSurface": "0xFF1A1C18", "inverseSurface": "0xFFE3E3DC", "inversePrimary": "0xFF2B6C00", "shadow": "0xFF000000", "surfaceTint": "0xFF8CDA60", "outlineVariant": "0xFF43483E", "scrim": "0xFF000000", "surface": "0xFF1A1C18", "onSurface": "0xFFC7C7C0", "surfaceVariant": "0xFF43483E", "onSurfaceVariant": "0xFFC7C7C0" }
+ }
+ ]
+}
diff --git a/cat/js/config_open_online.json b/cat/js/config_open_online.json
new file mode 100644
index 0000000..4908201
--- /dev/null
+++ b/cat/js/config_open_online.json
@@ -0,0 +1,521 @@
+{
+ "video": {
+ "sites": [
+{"key":"豆瓣","name":"🟢 豆瓣👁️","type":3,"indexs":1,"api":"douban_open.js"},
+{"key":"doubanbb","name":"🟢 片单","type":3,"indexs":1,"api":"doubanbb.js"},
+{"key":"玩偶哥哥","name":"🟢 玩偶","type":3,"api":"wogg_open.js","ext":"填入阿里token"},
+{"key":"玩偶表哥","name":"🟢 表哥","type":3,"api":"wobg_open.js","ext":"填入阿里token"},
+{"key":"耐看","name":"🟢 耐看","type":3,"api":"nkvod_open.js"},
+{"key":"爱看机器人","name":"🟢 爱看","type":3,"api":"ikanbot_open.js"},
+{"key":"tiantian","name":"🟢 天天","type":3,"api":"tiantian_open.js"},
+{"key":"快看影视","name":"🟢 快看","type":3,"api":"kkys_open.js"},
+{"key":"厂长资源","name":"🟢 厂长","type":3,"api":"czzy_open.js"},
+{"key":"素白白","name":"🟢 素白","type":3,"api":"subaibai_open.js"},
+{"key":"低端影视","name":"🟢 低端","type":3,"api":"ddys_open.js"},
+{"key":"高光影视","name":"🟢 高光","type":3,"api":"ggys_open.js"},
+{"key":"libvio","name":"🟢 立波","type":3,"api":"libvio_open.js"},
+{"key":"电视直播","name":"🟢 电视","type":3,"api":"caiji.js","ext":"https://tvbox.serv00.net/live.php"},
+{"key":"南瓜","name":"🟢 南瓜①","type":3,"api":"ng_open.js"},
+{"key":"nangua","name":"🟢 南瓜②","type":3,"api":"nangua_open.js"},
+{"key":"巧技一","name":"🟢 巧技①","type":3,"api":"qiao2_open.js","ext":"https://jihulab.com/qiaoji/open/-/raw/main/qiaoji2"},
+{"key":"巧技二","name":"🟢 巧技②","type":3,"api":"qiao2_open.js","ext":"https://jihulab.com/qiaoji/open/-/raw/main/qiaoji3"},
+{"key":"kanqiu","name":"🟢 看球①","type":3,"api":"kanqiu_open.js","searchable":0,"changeable":0,"style":{"type":"list"}},
+{"key":"360ba","name":"🟢 看球②","type":3,"api":"360ba_open.js","searchable":0,"changeable":0,"style":{"type":"list"}},
+{"key":"在线之家","name":"🟢 在线","type":3,"api":"zxzj_open.js"},
+{"key":"一起看","name":"🟢 一起","type":3,"api":"yqktv_open.js"},
+{"key":"555电影","name":"🟢 三五","type":3,"api":"555dy_open.js"},
+{"key":"圣城影视","name":"🟢 圣城","type":3,"api":"sc1080_open.js"},
+{"key":"胖虎影视","name":"🟢 胖虎","type":3,"api":"panghu_open.js"},
+{"key":"人人影视","name":"🟢 人人","type":3,"api":"rttks_open.js"},
+{"key":"图图影视","name":"🟢 图图","type":3,"api":"tutu_open.js"},
+{"key":"农民影视","name":"🟢 农民","type":3,"api":"nmddd_open.js","ext": "{\"box\": \"CatOpen\", \"danmu\": false}"},
+{"key":"anfun","name":"🟢 Afun","type":3,"api":"anfun_open.js"},
+{"key":"58dm","name":"🟢 五八","type":3,"api":"58dm_open.js"},
+{"key":"爱动漫","name":"🟢 爱漫","type":3,"api":"adm_open.js"},
+{"key":"酷我短剧","name":"🟢 酷我","type":3,"api":"kuwo_open.js"},
+{"key":"短剧网","name":"🟢 短剧","type":3,"api":"duanju5_open.js"},
+{"key":"斗鱼直播","name":"🟢 斗鱼","type":3,"api":"douyu_open.js","ext":{"from":"official","custom":"Popkart,跑跑卡丁车#KartRiderDrift,跑跑卡丁车:漂移#PPKDCSY,跑跑手游#PathofExile,流放之路#hjzgwx,火炬之光:无限#CrossGate,魔力宝贝#g_jyhx,劲乐幻想#xjcs,仙境传说#yqk,一起看"}},
+{"key":"虎牙直播","name":"🟢 虎牙","type":3,"api":"huya_open.js","ext":{"from":"official","custom":"2135,一起看#6245,放映厅#427,流放之路#6399,火炬之光:无限#2891,魔力宝贝#2620,跑跑卡丁车手游#162,跑跑卡丁车#7691,劲乐幻想#2675,仙境传说RO"}},
+{"key":"我的哔哩","name":"🟢 我哔","type":3,"api":"mybili_open.js"},
+{"key":"哔哩","name":"🟢 哔哩","type":3,"api":"bili_open.js","ext":{"categories":"音乐#动画#电影#电视剧#番剧#综艺#国创#搞笑#单机游戏#沙雕动画#沙雕穿越#沙雕","cookie":"DedeUserID=690781341;DedeUserID__ckMd5=cabc96906269c5b6;SESSDATA=2245ba24%2C1684212125%2C466fd%2Ab2;bili_jct=de6fdb60c10f8a83910aa55d79407b4e;"}},
+{"key":"哔哩直播","name":"🟢 直播","type":3,"api":"bililive_open.js","ext":{"cookie":"DedeUserID=690781341;DedeUserID__ckMd5=cabc96906269c5b6;SESSDATA=2245ba24%2C1684212125%2C466fd%2Ab2;bili_jct=de6fdb60c10f8a83910aa55d79407b4e;"}},
+{"key":"火狐资源","name":"🟢 火狐","type":3,"api":"caiji.js","ext":{"url":"https://hhzyapi.com/api.php/provide/vod/from/hhm3u8","categories":["内地剧","欧美剧","香港剧","台湾剧","马泰剧","韩剧","日剧","动作片","爱情片","喜剧片","科幻片","恐怖片","剧情片","战争片","灾难片","悬疑片","犯罪片","奇幻片","记录片","伦理片","动画片","中国动漫","日本动漫","欧美动漫","大陆综艺","日韩综艺","港台综艺","欧美综艺"]}},
+{"key":"新浪资源","name":"🟢 新浪","type":3,"api":"caiji.js","ext":{"url":"https://api.xinlangapi.com/xinlangapi.php/provide/vod/from/xlm3u8","categories":["大陆剧","港澳剧","台湾剧","欧美剧","韩剧","日剧","泰剧","动漫","动漫电影","综艺","动作片","爱情片","科幻片","战争片","剧情片","恐怖片","喜剧片","纪录片","伦理片"]}},
+{"key":"红牛资源","name":"🟢 红牛","type":3,"api":"caiji.js","ext":{"url":"https://www.hongniuzy2.com/api.php/provide/vod/from/hnm3u8/","categories":["国产剧","港澳剧","台湾剧","欧美剧","日剧","泰剧","韩剧","综艺","动漫","动漫电影","动作片","喜剧片","爱情片","科幻片","恐怖片","剧情片","战争片","纪录片","伦理片"]}},
+{"key":"速播资源","name":"🟢 速播","type":3,"api":"caiji.js","ext":{"url":"https://subocaiji.com/api.php/provide/vod/from/subm3u8/","categories":["大陆剧","台湾剧","韩剧","美剧","港澳剧","日剧","泰剧","动作片","爱情片","科幻片","战争片","剧情片","恐怖片","喜剧片","纪录片","伦理片","动漫电影","中国动漫","日本动漫","欧美动漫","综艺"]}},
+{"key":"极速资源","name":"🟢 极速","type":3,"api":"caiji.js","ext":{"url":"https://jszyapi.com/api.php/provide/vod/from/jsm3u8/","categories":["内地剧","欧美剧","香港剧","台湾剧","马泰剧","韩剧","日剧","伦理片","动作片","爱情片","喜剧片","科幻片","恐怖片","剧情片","战争片","灾难片","悬疑片","犯罪片","奇幻片","记录片","动画片","中国动漫","日本动漫","欧美动漫","大陆综艺","日韩综艺","港台综艺","欧美综艺"]}},
+{"key":"光速资源","name":"🟢 光速","type":3,"api":"caiji.js","ext":{"url":"https://api.guangsuapi.com/api.php/provide/vod/from/gsm3u8","categories":["大陆剧","欧美剧","港澳剧","台湾剧","泰剧","韩剧","日剧","动作片","爱情片","喜剧片","科幻片","恐怖片","战争片","伦理片","动漫电影"]}},
+{"key":"宅腐TV","name":"🟢 宅腐","type":3,"api":"appysv2.js","ext":"http://app.zhaifutvapp.com/ruifenglb_api.php/v1.vod"},
+{"key":"聚视网","name":"🟢 央视","type":3,"api":"cntv_open.js"},
+{"key":"武享UFC","name":"🟢 UFC","type":3,"api":"ufc_open.js"},
+{"key":"武享吧","name":"🟢 武享","type":3,"api":"hula8_open.js"},
+{"key":"兔小贝","name":"🟢 小贝","type":3,"api":"tuxiaobei_open.js"},
+{"key":"贝乐虎","name":"🟢 乐虎","type":3,"api":"ubestkid_open.js"},
+{"key":"酷奇MV","name":"🟢 酷奇","type":3,"api":"kuqimv_open.js"},
+{"key":"播视网","name":"🟢 童趣","type":3,"api":"boosj_open.js"},
+{"key":"短视频","name":"🟢 短视频","type":3,"api":"sharenice_open.js"},
+{"key":"kanqiu_open","name":"体育 | 看球","type":3,"api":"kanqiu_open.js"},
+{"key":"xinshijue_open","name":"影视 | 新视觉","type":3,"api":"xinshijue_open.js"},
+{"key":"sc1080_open","name":"影视 | 圣城","type":3,"api":"sc1080_open.js"},
+
+{"key":"ff_open","name":"影视 | 非凡","type":3,"api":"ff_open.js"},
+{"key":"ggys_open","name":"影视 | 高光","type":3,"api":"ggys_open.js"},
+{"key":"ddys_open","name":"影视 | 低端","type":3,"api":"ddys_open.js"},
+{"key":"4kysxz_open","name":"影视 | 4KXZ","type":3,"api":"4kysxz_open.js"},
+{"key":"nkvod_open","name":"影视 | 耐看","type":3,"api":"nkvod_open.js"},
+
+{"key":"52ju_open","name":"影视 | 我爱剧","type":3,"api":"52ju_open.js"},
+{"key":"dyxs_open","name":"影视 | 电影先生","type":3,"api":"dyxs_openn.js"},
+{"key":"lz_open","name":"影视 | 量子","type":3,"api":"lz_open.js"},
+{"key":"mfk_open","name":"影视 | 免费看","type":3,"api":"mfk_open.js"},
+{"key":"mgys_open","name":"影视 | 蘑菇","type":3,"api":"mgys_open.js"},
+{"key":"wf_open","name":"影视 | 奈飞","type":3,"api":"wf_open.js"},
+{"key":"dnys_open","name":"影视 | 大拿","type":3,"api":"dnys_open.js"},
+{"key":"voflix_open","name":"影视 | vofx","type":3,"api":"voflix_open.js"},
+{"key":"4kys_open","name":"影视 | 4K影视","type":3,"api":"4kys_open.js"},
+{"key":"zjm_open","name":"影视 | 追剧迷","type":3,"api":"zjm_open.js"},
+{"key":"rbzj_open","name":"影视 | 热播追剧","type":3,"api":"rbzj_open.js"},
+{"key":"mayiya_open","name":"影视 | 蚂蚁","type":3,"api":"mayiya_open.js"},
+{"key":"rbk_open","name":"影视 | 热播库","type":3,"api":"rbk_open.js"},
+{"key":"wpian_open","name":"影视 | pian","type":3,"api":"wpian_open.js"},
+{"key":"ym_open","name":"影视 | 映迷","type":3,"api":"ym_open.js"},
+{"key":"yzz_open","name":"影视 | 影渣","type":3,"api":"yzz_open.js"},
+{"key":"1080kk_open","name":"影视 | 1080看看","type":3,"api":"1080kk_open.js"},
+{"key":"panghu_open","name":"影视 | 胖虎","type":3,"api":"panghu_open.js"},
+{"key":"mimiju_open","name":"影视 | 迷迷剧","type":3,"api":"mimiju_open.js"},
+{"key":"yjys_open","name":"影视 | 悠久","type":3,"api":"yjys_open.js"},
+
+
+{"key":"ys996_open","name":"影视 | 996","type":3,"api":"ys996_open.js"},
+{"key":"star_open","name":"影视 | 星视界","type":3,"api":"star_open.js"},
+{"key":"ytvip","name":"影视 | 影探","type":3,"api":"yt.js","ext":"http://ytcms.lyyytv.cn/api.php/app/"},
+{"key":"yqktv_open","name":"影视 | 一起看","type":3,"api":"yqktv_open.js"},
+{"key":"555dy_open","name":"影视 | 555","type":3,"api":"555dy_open.js"},
+{"key":"yrzj_open","name":"影视 | 伊人","type":3,"api":"yrzj_open.js"},
+{"key":"yzys_open","name":"影视 | 柚子","type":3,"api":"yzys_open.js"},
+{"key":"sssp_open","name":"影视 | 速搜","type":3,"api":"sssp_open.js"},
+{"key":"bulei_open","name":"影视 | 布雷","type":3,"api":"bulei_open.js"},
+{"key":"miku_open","name":"影视 | 咪咕","type":3,"api":"miku_open.js"},
+{"key":"tutu_open","name":"影视 | 图图","type":3,"api":"tutu_open.js"},
+{"key":"hmsp_open","name":"影视 | 河马","type":3,"api":"hmsp_open.js"},
+{"key":"jojo_open","name":"影视 | jojo","type":3,"api":"jojo_open.js"},
+{"key":"jiohub","name":"影视 | jiohub","type":3,"api":"jiohub.js"},
+{"key":"dsxys_open","name":"影视 | 大师兄","type":3,"api":"dsxys_open.js"},
+{"key":"mino_open","name":"影视 | Mino","type":3,"api":"mino_open.js"},
+{"key":"ddmv_open","name":"影视 | DDMV","type":3,"api":"ddmv_open.js"},
+
+{"key":"czzy","name":"影视 | 厂长","type":3,"api":"czzy_open.js"},
+{"key":"libvio","name":"影视 | libvio","type":3,"api":"libvio_open.js"},
+{"key":"kkys","name":"影视 | 快看","type":3,"api":"kkys_open.js"},
+{"key":"ikanbot_open","name":"影视 | 爱看","type":3,"api":"ikanbot_open.js"},
+{"key":"ngys","name":"影视 | 南瓜","type":3,"api":"ng_open.js"},
+{"key":"nivod","name":"影视 | 泥巴","type":3,"api":"nivod_op.js"},
+{"key":"duboku2_open","name":"影视 | 独播库","type":3,"api":"duboku2_open.js"},
+{"key":"subaibai","name":"影视 | 素白白","type":3,"api":"subaibai_open.js"},
+{"key":"drpy_js_zxzj_open","name":"影视 | 在线之家","type":3,"api":"zxzj_open.js"},
+
+{"key":"drpy_js_boosj_open","name":"少儿 | 童趣","type":3,"api":"boosj_open.js"},
+{"key":"drpy_js_tuxiaobei_open","name":"少儿 | 兔小贝","type":3,"api":"tuxiaobei_open.js"},
+{"key":"drpy_js_ubestkid_open","name":"少儿 | 贝乐虎","type":3,"api":"ubestkid_open.js"},
+{"key":"kuwo_open","name":"短剧 | 酷我","type":3,"api":"kuwo_open.js"},
+{"key":"vsdj_open","name":"短剧 | VS","type":3,"api":"vsdj_open.js"},
+{"key":"djwm_open","name":"短剧 | 完美","type":3,"api":"djwm_open.js"},
+{"key":"adm_open","name":"动漫 | 爱动漫","type":3,"api":"adm_open.js"},
+{"key":"anfun_open","name":"动漫 | 爱番","type":3,"api":"anfun_open.js"},
+{"key":"58dm_open","name":"动漫 | 58动漫","type":3,"api":"58dm_open.js"},
+{"key":"ufc_open","name":"格斗 | 武享","type":3,"api":"ufc_open.js"},
+{"key":"sharenice","name":"聚合 | 短视频","type":3,"api":"sharenice_open.js"},
+{"key":"mybili","name":"B站 | 哔哩综合","type":3,"api":"mybili_open.js"},
+{"key":"bili_open","name":"B站 | 我的哔哩","type":3,"api":"bili_open.js","ext":{"categories":"沙雕动画#健身#音乐#舞蹈#风景#美食#科普#历史#法考#医考","cookie":"填自己的cookie"}},
+{"key":"kuqimv","name":"MV | 酷奇","type":3,"api":"kuqimv_open.js"},
+{"key":"zzmusic_open","name":"音乐 | 渣渣","type":3,"api":"zzmusic_open.js"},
+{"key":"drpy_js_cntv_open","name":"电视 | 视聚场","type":3,"api":"cntv_open.js"},
+
+{"key":"火狐","name":"采集 | 火狐","type":3,"api":"caiji.js","ext":"https://hhzyapi.com/api.php/provide/vod/from/hhm3u8"},
+{"key":"16wmv","name":"采集 | 16万MV","type":3,"api":"caiji.js","ext":"https://tvbox-mv--leosam2048.repl.co/mv/vod"},
+{"key":"xinlang","name":"采集 | 新浪","type":3,"api":"caiji.js","ext":"https://api.xinlangapi.com/xinlangapi.php/provide/vod/from/xlm3u8"},
+{"key":"bdzy","name":"采集 | 百度","type":3,"api":"caiji.js","ext":"https://api.apibdzy.com/api.php/provide/vod/from/dbm3u8/"},
+{"key":"bfzy","name":"采集 | 暴风","type":3,"api":"caiji.js","ext":"https://bfzyapi.com/api.php/provide/vod/"},
+{"key":"394tv","name":"采集 | 39","type":3,"api":"caiji.js","ext":"https://www.394tv.com/api.php/provide/vod/"},
+{"key":"languang","name":"采集 | 蓝光","type":3,"api":"caiji.js","ext":"http://www.zzrhgg.com/api.php/provide/vod/"},
+{"key":"lehuo","name":"采集 | 乐活","type":3,"api":"caiji.js","ext":"https://cj.vodimg.top/api.php/provide/vod/"},
+{"key":"piaoling","name":"采集 | 飘零","type":3,"api":"caiji.js","ext":"https://p2100.net/api.php/provide/vod/"},
+{"key":"yingtu","name":"采集 | 影图","type":3,"api":"caiji.js","ext":"https://cj.vodimg.top/api.php/provide/vod/"},
+{"key":"feifan","name":"采集 | 非凡","type":3,"api":"caiji.js","ext":"https://cj.ffzyapi.com/api.php/provide/vod/from/ffm3u8/"},
+{"key":"feisu","name":"采集 | 飞速","type":3,"api":"caiji.js","ext":"https://www.feisuzyapi.com/api.php/provide/vod/from/fsm3u8/"},
+{"key":"guangsu","name":"采集 | 光速","type":3,"api":"caiji.js","ext":"https://api.guangsuapi.com/api.php/provide/vod/from/gsm3u8/"},
+{"key":"hongniu","name":"采集 | 红牛","type":3,"api":"caiji.js","ext":"https://www.hongniuzy2.com/api.php/provide/vod/from/hnm3u8/"},
+{"key":"jinying","name":"采集 | 金鹰","type":3,"api":"caiji.js","ext":"https://jinyingzy.com/provide/vod/from/jinyingm3u8/"},
+{"key":"jisu","name":"采集 | 极速","type":3,"api":"caiji.js","ext":"https://jszyapi.com/api.php/provide/vod/from/jsm3u8/"},
+{"key":"kuaiche","name":"采集 | 快车","type":3,"api":"caiji.js","ext":"https://caiji.kczyapi.com/api.php/provide/vod/from/kcm3u8/"},
+{"key":"liangzi","name":"采集 | 量子","type":3,"api":"caiji.js","ext":"https://cj.lziapi.com/api.php/provide/vod/from/lzm3u8/"},
+{"key":"qihu","name":"采集 | 奇虎","type":3,"api":"caiji.js","ext":"https://caiji.qhzyapi.com/api.php/provide/vod/from/qhm3u8/"},
+{"key":"guangsuapi","name":"采集 | 光速","type":3,"api":"caiji.js","ext":"http://api.guangsuapi.com/api.php/provide/vod/from/gsm3u8/"},
+ {
+ "key": "push_agent",
+ "name": "♻ 推送",
+ "type": 4,
+ "api": "push_open.js",
+ "ext": {
+ "token": "阿里token",
+ "cookie": "夸克cookie"
+ }
+ },
+ {
+ "key": "阿里盘寻",
+ "name": "🔍 盘寻",
+ "type": 3,
+ "api": "pansearch_open.js",
+ "ext": "填入阿里token"
+ },
+ {
+ "key": "阿里盘搜",
+ "name": "🔍 盘搜",
+ "type": 3,
+ "api": "pansou_open.js",
+ "ext": "填入阿里token"
+ },
+ {
+ "key": "阿里七夜",
+ "name": "🔍 七夜",
+ "type": 3,
+ "api": "dovx_open.js",
+ "ext": "填入阿里token"
+ },
+ {
+ "key": "小纸条",
+ "name": "🔍 纸条",
+ "type": 3,
+ "api": "xiaozhitiao_open.js",
+ "ext": "填入阿里token"
+ },
+ {
+ "key": "UP云搜",
+ "name": "🔍 云搜",
+ "type": 3,
+ "api": "upyun_open.js",
+ "ext": "填入阿里token"
+ },
+ {
+ "key": "易搜",
+ "name": "🔍 易搜",
+ "type": 3,
+ "api": "yiso_open.js",
+ "ext": "填入阿里token$$$易搜账号cookie"
+ },
+ {
+ "key": "云盘4K",
+ "name": "🔍 云盘",
+ "type": 3,
+ "api": "yunpan4k_open.js",
+ "ext": "填入阿里token"
+ },
+ {
+ "key": "找资源",
+ "name": "🔍 资源",
+ "type": 3,
+ "api": "zhaozy_open.js",
+ "ext": "填入阿里token$$$找资源账号$$$找资源密码"
+ },
+ {
+ "key": "夸克趣盘搜",
+ "name": "🔍 趣盘",
+ "type": 3,
+ "api": "funletu_open.js",
+ "ext": "夸克账号cookie"
+ }
+ ]
+ },
+ "read": {
+ "sites": [
+ {
+ "key": "13bqg",
+ "name": "📓 笔趣",
+ "type": 10,
+ "api": "13bqg_open.js"
+ },
+ {
+ "key": "老白故事",
+ "name": "🎧 老白",
+ "type": 10,
+ "api": "lbgs_book_open.js"
+ },
+ {
+ "key": "博看书苑",
+ "name": "🎧 博看",
+ "type": 10,
+ "api": "bookan_book_open.js"
+ },
+ {
+ "key": "爱上你听书网",
+ "name": "🎧 爱听",
+ "type": 10,
+ "api": "230ts_book_open.js"
+ },
+ {
+ "key": "DJ0898网",
+ "name": "🎧 爱DJ",
+ "type": 10,
+ "api": "dj0898_book_open.js"
+ }
+ ]
+ },
+ "comic": {
+ "sites": [
+ {
+ "key": "copymanga",
+ "name": "📓 拷贝漫画",
+ "type": 20,
+ "api": "copymanga_open.js"
+ },
+ {
+ "key": "fengche",
+ "name": "📓 风车漫画",
+ "type": 20,
+ "api": "fengche_open.js"
+ },
+ {
+ "key": "baozimh",
+ "name": "📓 包子漫画",
+ "type": 20,
+ "api": "baozimh_open.js"
+ },
+ {
+ "key": "ACG漫画",
+ "name": "📓 ACG漫画",
+ "type": 20,
+ "api": "acgwd_open.js"
+ },
+ {
+ "key": "mkz",
+ "name": "📓 漫客漫画",
+ "type": 20,
+ "api": "mkz_open.js"
+ },
+ {
+ "key": "bengou",
+ "name": "📓 笨狗漫画",
+ "type": 20,
+ "api": "bengou_open.js"
+ }
+ ]
+ },
+ "pan": {
+ "sites": [
+ {
+ "key": "alist",
+ "name": "Alist",
+ "type": 40,
+ "api": "alist_open.js",
+ "ext": [
+ {
+ "name": "🟢 小雅",
+ "server": "http://124.71.206.236:5678/",
+ "startPage": "/",
+ "showAll": false,
+ "search": true,
+ "headers": {
+ "Authorization": ""
+ },
+ "params": {
+ "/abc": {
+ "password": "123"
+ },
+ "/abc/abc": {
+ "password": "123"
+ }
+ }
+ },
+ {
+ "name": "🟢 合集",
+ "server": "http://www.jczyl.top:5244/"
+ },
+ {
+ "name": "🟢 东哥",
+ "server": "http://101.34.67.237:5244/"
+ },
+ {
+ "name": "🟢 美云",
+ "server": "https://h.dfjx.ltd/"
+ },
+ {
+ "name": "🟢 小新",
+ "server": "https://pan.cdnxin.top/"
+ },
+ {
+ "name": "🟢 白云",
+ "server": "http://breadmyth.asuscomm.com:22222/"
+ },
+ {
+ "name": "🟢 小鸭",
+ "server": "http://www.214728327.xyz:5201/"
+ },
+ {
+ "name": "🟢 瑶瑶",
+ "server": "https://lyly.run.goorm.io/"
+ },
+ {
+ "name": "🟢 潇洒",
+ "server": "https://alist.azad.asia/"
+ },
+ {
+ "name": "🟢 鹏程",
+ "server": "https://pan.pengcheng.team/"
+ },
+ {
+ "name": "🟢 浅唱",
+ "server": "http://vtok.pp.ua/"
+ },
+ {
+ "name": "🟢 小丫",
+ "server": "http://alist.xiaoya.pro/"
+ },
+ {
+ "name": "🟢 触光",
+ "server": "https://pan.ichuguang.com"
+ },
+ {
+ "name": "🟢 弱水",
+ "server": "http://shicheng.wang:555/"
+ },
+ {
+ "name": "🟢 神器",
+ "server": "https://alist.ygxz.xyz/"
+ },
+ {
+ "name": "🟢 资源",
+ "server": "https://pan.ecve.cn/"
+ },
+ {
+ "name": "🟢 雨呢",
+ "server": "https://pan.clun.top/"
+ },
+ {
+ "name": "🟢 oeio",
+ "server": "https://o.oeio.repl.co/"
+ },
+ {
+ "name": "🟢 悦享",
+ "server": "https://nics.eu.org/"
+ },
+ {
+ "name": "🟢 分享",
+ "server": "https://ofoo.ml/"
+ },
+ {
+ "name": "🟢 PRO",
+ "server": "https://alist.prpr.run/"
+ },
+ {
+ "name": "🟢 多多",
+ "server": "https://pan.xwbeta.com"
+ },
+ {
+ "name": "🟢 小陈",
+ "server": "https://ypan.cc/"
+ },
+ {
+ "name": "🟢 只鱼",
+ "server": "https://alist.youte.ml"
+ },
+ {
+ "name": "🟢 七米",
+ "server": "https://al.chirmyram.com"
+ },
+ {
+ "name": "🟢 九帝",
+ "server": "https://alist.shenzjd.com"
+ },
+ {
+ "name": "🟢 白雪",
+ "server": "https://pan.jlbx.xyz"
+ },
+ {
+ "name": "🟢 星梦",
+ "server": "https://pan.bashroot.top"
+ },
+ {
+ "name": "🟢 repl",
+ "server": "https://ali.liucn.repl.co"
+ },
+ {
+ "name": "🟢 讯维",
+ "server": "https://pan.xwbeta.com"
+ }
+ ]
+ }
+ ]
+ },
+ "color": [
+ {
+ "light": {
+ "bg": "https://i2.100024.xyz/2024/01/13/qrnuwt.webp",
+ "bgMask": "0x50ffffff",
+ "primary": "0xFF2B6C00",
+ "onPrimary": "0xFFFFFFFF",
+ "primaryContainer": "0xFFA6F779",
+ "onPrimaryContainer": "0xFF082100",
+ "secondary": "0xFF55624C",
+ "onSecondary": "0xFFFFFFFF",
+ "secondaryContainer": "0xFFD9E7CA",
+ "onSecondaryContainer": "0xFF131F0D",
+ "tertiary": "0xFF386666",
+ "onTertiary": "0xFFFFFFFF",
+ "tertiaryContainer": "0xFFBBEBEB",
+ "onTertiaryContainer": "0xFF002020",
+ "error": "0xFFBA1A1A",
+ "onError": "0xFFFFFFFF",
+ "errorContainer": "0xFFFFDAD6",
+ "onErrorContainer": "0xFF410002",
+ "background": "0xFFFDFDF5",
+ "onBackground": "0xFF1A1C18",
+ "surface": "0xFFFDFDF5",
+ "onSurface": "0xFF1A1C18",
+ "surfaceVariant": "0xFFE0E4D6",
+ "onSurfaceVariant": "0xFF1A1C18",
+ "inverseSurface": "0xFF2F312C",
+ "onInverseSurface": "0xFFF1F1EA",
+ "outline": "0xFF74796D",
+ "outlineVariant": "0xFFC3C8BB",
+ "shadow": "0xFF000000",
+ "scrim": "0xFF000000",
+ "inversePrimary": "0xFF8CDA60",
+ "surfaceTint": "0xFF2B6C00"
+ },
+ "dark": {
+ "bg": "https://i2.100024.xyz/2024/01/13/qrc37o.webp",
+ "bgMask": "0x50000000",
+ "primary": "0xFF8CDA60",
+ "onPrimary": "0xFF133800",
+ "primaryContainer": "0xFF1F5100",
+ "onPrimaryContainer": "0xFFA6F779",
+ "secondary": "0xFFBDCBAF",
+ "onSecondary": "0xFF283420",
+ "secondaryContainer": "0xFF3E4A35",
+ "onSecondaryContainer": "0xFFD9E7CA",
+ "tertiary": "0xFFA0CFCF",
+ "onTertiary": "0xFF003737",
+ "tertiaryContainer": "0xFF1E4E4E",
+ "onTertiaryContainer": "0xFFBBEBEB",
+ "error": "0xFFFFB4AB",
+ "errorContainer": "0xFF93000A",
+ "onError": "0xFF690005",
+ "onErrorContainer": "0xFFFFDAD6",
+ "background": "0xFF1A1C18",
+ "onBackground": "0xFFE3E3DC",
+ "outline": "0xFF8D9286",
+ "onInverseSurface": "0xFF1A1C18",
+ "inverseSurface": "0xFFE3E3DC",
+ "inversePrimary": "0xFF2B6C00",
+ "shadow": "0xFF000000",
+ "surfaceTint": "0xFF8CDA60",
+ "outlineVariant": "0xFF43483E",
+ "scrim": "0xFF000000",
+ "surface": "0xFF1A1C18",
+ "onSurface": "0xFFC7C7C0",
+ "surfaceVariant": "0xFF43483E",
+ "onSurfaceVariant": "0xFFC7C7C0"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/cat/js/copymanga_open.js b/cat/js/copymanga_open.js
new file mode 100644
index 0000000..d57c714
--- /dev/null
+++ b/cat/js/copymanga_open.js
@@ -0,0 +1,207 @@
+import { Crypto, _, load } from './lib/cat.js';
+
+let key = 'copymanga';
+let url = 'https://www.mangacopy.com';
+
+let siteKey = '';
+let siteType = 0;
+
+const PC_UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36';
+
+async function request(reqUrl) {
+ let resp = await req(reqUrl, {
+ headers: {
+ 'User-Agent': PC_UA,
+ },
+ });
+ return resp.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ var html = await request(url + '/comics');
+ const $ = load(html);
+ let filterObj = {};
+
+ let region = {
+ key: 'region',
+ name: '地區',
+ init: '',
+ };
+ let regionValues = [];
+ regionValues.push({ n: '全部', v: '' });
+ regionValues.push({ n: '日漫', v: '0' });
+ regionValues.push({ n: '韓漫', v: '1' });
+ regionValues.push({ n: '美漫', v: '2' });
+ region['value'] = regionValues;
+
+ let ordering = {
+ key: 'ordering',
+ name: '排序',
+ init: '-datetime_updated',
+ };
+ let orderingValues = [];
+ orderingValues.push({ n: '更新時間↓', v: '-datetime_updated' });
+ orderingValues.push({ n: '更新時間↑', v: 'datetime_updated' });
+ orderingValues.push({ n: '熱門↓', v: '-popular' });
+ orderingValues.push({ n: '熱門↑', v: 'popular' });
+ ordering['value'] = orderingValues;
+
+ let status = {
+ key: 'sort',
+ name: '狀態',
+ init: '',
+ };
+ let statusValues = [];
+ statusValues.push({ n: '全部', v: '' });
+ statusValues.push({ n: '連載中', v: '0' });
+ statusValues.push({ n: '已完結', v: '1' });
+ statusValues.push({ n: '短篇', v: '2' });
+ status['value'] = statusValues;
+
+ filterObj['c1'] = [];
+
+ let themeValues = [{ n: '全部', v: '' }];
+ for (const a of $('div.classify-right>a[href*="theme="]')) {
+ themeValues.push({
+ n: $(a).text().trim(),
+ v: a.attribs.href.match(/.*?theme=(.*)&/)[1],
+ });
+ }
+
+ _.each(_.chunk(themeValues, 11), (vals) => {
+ let theme = {
+ key: 'theme',
+ name: '',
+ init: '',
+ value: vals,
+ };
+ filterObj['c1'].push(theme);
+ });
+
+ filterObj['c1'].push(region);
+ filterObj['c1'].push(status);
+ filterObj['c1'].push(ordering);
+
+ return {
+ class: [{ type_name: 'all', type_id: 'c1' }],
+ filters: filterObj,
+ };
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg == 0) pg = 1;
+ let link = url + `/comics?theme=${extend.theme || ''}®ion=${extend.region || ''}&status=${extend.status || ''}&ordering=${extend.ordering || '-datetime_updated'}`;
+ if (pg > 1) {
+ link += '&offset=' + (pg - 1) * 50 + '&limit=50';
+ }
+ var html = await request(link);
+ const $ = load(html);
+ const list = eval($('div[class="row exemptComic-box"]')[0].attribs.list);
+ let books = [];
+ for (const book of list) {
+ books.push({
+ book_id: book.path_word,
+ book_name: book.name,
+ book_pic: book.cover,
+ book_remarks: book.author ? book.author[0].name : '',
+ });
+ }
+ return {
+ page: pg,
+ pagecount: list.length == 50 ? pg + 1 : pg,
+ list: books,
+ };
+}
+
+async function detail(id) {
+ var html = await request(url + `/comic/${id}`);
+ const $ = load(html);
+ let book = {
+ book_name: $('h6').text().trim(),
+ book_director: _.map($('span.comicParticulars-right-txt>a[href*="/author/"]'), (a) => $(a).text().trim()).join('/'),
+ book_content: $('p.intro').text().trim(),
+ };
+
+ const data = JSON.parse(await request(url + `/comicdetail/${id}/chapters`)).results;
+ var key = Crypto.enc.Utf8.parse('xxxmanga.woo.key');
+ var iv = Crypto.enc.Utf8.parse(data.substr(0, 16));
+ var src = Crypto.enc.Hex.parse(data.substr(16));
+ var dst = Crypto.AES.decrypt({ ciphertext: src }, key, { iv: iv, padding: Crypto.pad.Pkcs7 });
+ dst = Crypto.enc.Utf8.stringify(dst);
+
+ const groups = JSON.parse(dst).groups;
+
+ let urls = _.map(groups.default.chapters, (c) => {
+ return c.name + '$' + id + '|' + c.id;
+ }).join('#');
+ book.volumes = '默認';
+ book.urls = urls;
+
+ return {
+ list: [book],
+ };
+}
+
+async function play(flag, id, flags) {
+ try {
+ var info = id.split('|');
+ var html = await request(url + `/comic/${info[0]}/chapter/${info[1]}`);
+ const $ = load(html);
+ const data = $('div.imageData')[0].attribs.contentkey;
+ var key = Crypto.enc.Utf8.parse('xxxmanga.woo.key');
+ var iv = Crypto.enc.Utf8.parse(data.substr(0, 16));
+ var src = Crypto.enc.Hex.parse(data.substr(16));
+ var dst = Crypto.AES.decrypt({ ciphertext: src }, key, { iv: iv, padding: Crypto.pad.Pkcs7 });
+ dst = Crypto.enc.Utf8.stringify(dst);
+ const list = JSON.parse(dst);
+ var content = [];
+ for (let index = 0; index < list.length; index++) {
+ const element = list[index];
+ content[index] = element.url;
+ }
+ return {
+ content: content,
+ };
+ } catch (e) {
+ return {
+ content: '',
+ };
+ }
+}
+
+async function search(wd, quick, pg) {
+ if (pg == 0) pg = 1;
+ const link = `${url}/api/kb/web/searcha/comics?offset=${pg > 1 ? ((pg - 1) * 12).toString() : ''}&platform=2&limit=12&q=${wd}&q_type=`;
+ var list = JSON.parse(await request(link)).results.list;
+ const books = [];
+ for (const book of list) {
+ books.push({
+ book_id: book.path_word,
+ book_name: book.name,
+ book_pic: book.cover,
+ book_remarks: book.author ? book.author[0].name : '',
+ });
+ }
+ return {
+ page: pg,
+ pagecount: list.length == 12 ? pg + 1 : pg,
+ list: books,
+ };
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
diff --git a/cat/js/czzy_open.js b/cat/js/czzy_open.js
new file mode 100644
index 0000000..2b0d1ac
--- /dev/null
+++ b/cat/js/czzy_open.js
@@ -0,0 +1,271 @@
+// 自动从 地址发布页 获取&跳转url地址
+import { Crypto, load, _ } from 'assets://js/lib/cat.js';
+
+let key = 'czzy';
+let host = 'https://www.czys.pro'; // 厂长地址发布页
+let url = '';
+let siteKey = '';
+let siteType = 0;
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+const cookie = {};
+
+async function request(reqUrl, referer, mth, data, hd) {
+ const headers = {
+ 'User-Agent': UA,
+ Cookie: _.map(cookie, (value, key) => {
+ return `${key}=${value}`;
+ }).join(';'),
+ };
+ if (referer) headers.referer = encodeURIComponent(referer);
+ let res = await req(reqUrl, {
+ method: mth || 'get',
+ headers: headers,
+ data: data,
+ postType: mth === 'post' ? 'form' : '',
+ });
+ if (res.headers['set-cookie']) {
+ const set_cookie = _.isArray(res.headers['set-cookie']) ? res.headers['set-cookie'].join(';') : res.headers['set-cookie'];
+ const cks = set_cookie.split(';');
+ for (const c of cks) {
+ const tmp = c.trim();
+ if (tmp.startsWith('result=')) {
+ cookie.result = tmp.substring(7);
+ return await request(reqUrl, reqUrl, 'post', {
+ result: cookie.result,
+ });
+ } else if (tmp.startsWith('esc_search_captcha=1')) {
+ cookie.esc_search_captcha = 1;
+ delete cookie.result;
+ return await request(reqUrl);
+ }
+ }
+ // console.log(res.headers['set-cookie']);
+ }
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+ url = await checkValidUrl(cfg.ext);
+ console.debug('厂长跳转地址 =====>' + url); // js_debug.log
+}
+
+async function checkValidUrl(ext) {
+ let validUrl = ext;
+ if (_.isEmpty(ext)) {
+ let html = await request(host);
+ let matches = html.matchAll(/推荐访问
a');
+ let tag = {
+ key: 'tag',
+ name: '类型',
+ value: _.map(tags, (n) => {
+ let v = n.attribs['cat-url'] || '';
+ v = v.substring(v.lastIndexOf('/') + 1);
+ return { n: n.children[0].data, v: v };
+ }),
+ };
+ tag['init'] = tag.value[0].v;
+ const series = $('div#beautiful-taxonomy-filters-tax-movie_bt_series > a[cat-url*=movie_bt_series]');
+ let classes = _.map(series, (s) => {
+ let typeId = s.attribs['cat-url'];
+ typeId = typeId.substring(typeId.lastIndexOf('/') + 1);
+ filterObj[typeId] = [tag];
+ return {
+ type_id: typeId,
+ type_name: s.children[0].data,
+ };
+ });
+ const sortName = ['电影', '电视剧', '国产剧', '美剧', '韩剧', '日剧', '海外剧(其他)', '华语电影', '印度电影', '日本电影', '欧美电影', '韩国电影', '动画', '俄罗斯电影', '加拿大电影'];
+ classes = _.sortBy(classes, (c) => {
+ const index = sortName.indexOf(c.type_name);
+ return index === -1 ? sortName.length : index;
+ });
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {
+ return '{}';
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ const tag = extend.tag || '';
+ const link = url + '/movie_bt' + (tag.length > 0 ? `/movie_bt_tags/${tag}` : '') + '/movie_bt_series/' + tid + (pg > 1 ? `/page/${pg}` : '');
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.mrb > ul > li');
+ let videos = _.map(items, (item) => {
+ const img = $(item).find('img:first')[0];
+ const a = $(item).find('a:first')[0];
+ const hdinfo = $($(item).find('div.hdinfo')[0]).text().trim();
+ const jidi = $($(item).find('div.jidi')[0]).text().trim();
+ return {
+ vod_id: a.attribs.href.replace(/.*?\/movie\/(.*).html/g, '$1'),
+ vod_name: img.attribs.alt,
+ vod_pic: img.attribs['data-original'],
+ vod_remarks: jidi || hdinfo || '',
+ };
+ });
+ const hasMore = $('div.mrb > div.pagenavi_txt > a:contains(>)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 20,
+ total: 20 * pgCount,
+ list: videos,
+ });
+}
+
+function stripHtmlTag(src) {
+ return src
+ .replace(/<\/?[^>]+(>|$)/g, '')
+ .replace(/&.{1,5};/g, '')
+ .replace(/\s{2,}/g, ' ');
+}
+
+async function detail(id) {
+ const html = await request(url + '/movie/' + id + '.html');
+ const $ = load(html);
+ const detail = $('ul.moviedteail_list > li');
+ let vod = {
+ vod_id: id,
+ vod_pic: $('div.dyimg img:first').attr('src'),
+ vod_remarks: '',
+ vod_content: stripHtmlTag($('div.yp_context').html()).trim(),
+ };
+ for (const info of detail) {
+ const i = $(info).text().trim();
+ if (i.startsWith('地区:')) {
+ vod.vod_area = i.substring(3);
+ } else if (i.startsWith('年份:')) {
+ vod.vod_year = i.substring(3);
+ } else if (i.startsWith('导演:')) {
+ vod.vod_director = _.map($(info).find('a'), (a) => {
+ return a.children[0].data;
+ }).join('/');
+ } else if (i.startsWith('主演:')) {
+ vod.vod_actor = _.map($(info).find('a'), (a) => {
+ return a.children[0].data;
+ }).join('/');
+ } else if (i.startsWith('语言:')) {
+ vod.vod_lang = i.substring(3);
+ }
+ }
+ const playlist = _.map($('div.paly_list_btn > a'), (a) => {
+ return a.children[0].data + '$' + a.attribs.href.replace(/.*?\/v_play\/(.*).html/g, '$1');
+ });
+ vod.vod_play_from = key;
+ vod.vod_play_url = playlist.join('#');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ const link = url + '/v_play/' + id + '.html';
+ const html = await request(link);
+ const $ = load(html);
+ const iframe = $('body iframe[src*=Cloud]');
+ if (iframe.length > 0) {
+ const iframeHtml = (
+ await req(iframe[0].attribs.src, {
+ headers: {
+ Referer: link,
+ 'User-Agent': UA,
+ },
+ })
+ ).content;
+ let code = iframeHtml
+ .match(/var url = '(.*?)'/)[1]
+ .split('')
+ .reverse()
+ .join('');
+ let temp = '';
+ for (let i = 0x0; i < code.length; i = i + 0x2) {
+ temp += String.fromCharCode(parseInt(code[i] + code[i + 0x1], 0x10));
+ }
+ const playUrl = temp.substring(0x0, (temp.length - 0x7) / 0x2) + temp.substring((temp.length - 0x7) / 0x2 + 0x7);
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ });
+ } else {
+ const js = $('script:contains(window.wp_nonce)').html();
+ const group = js.match(/(var.*)eval\((\w*\(\w*\))\)/);
+ const md5 = Crypto;
+ const result = eval(group[1] + group[2]);
+ const playUrl = result.match(/url:.*?['"](.*?)['"]/)[1];
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ });
+ }
+}
+
+async function search(wd, quick) {
+ const html = await request(url + '/?s=' + wd);
+ const $ = load(html);
+ const items = $('div.search_list > ul > li');
+ let videos = _.map(items, (item) => {
+ const img = $(item).find('img:first')[0];
+ const a = $(item).find('a:first')[0];
+ const hdinfo = $($(item).find('div.hdinfo')[0]).text().trim();
+ const jidi = $($(item).find('div.jidi')[0]).text().trim();
+ return {
+ vod_id: a.attribs.href.replace(/.*?\/movie\/(.*).html/g, '$1'),
+ vod_name: img.attribs.alt,
+ vod_pic: img.attribs['data-original'],
+ vod_remarks: jidi || hdinfo || '',
+ };
+ });
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/ddmv_open.js b/cat/js/ddmv_open.js
new file mode 100644
index 0000000..9ca27da
--- /dev/null
+++ b/cat/js/ddmv_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1CCARxrdXFpbXZfb3Blbi5qcyxhc3NldHM6Ly9qcy9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuCGxvYWQCXwZrZXkISE9TVA5zaXRlS2V5EHNpdGVUeXBlClBDX1VBDnJlcXVlc3QIaW5pdAhob21lDmhvbWVWb2QQY2F0ZWdvcnkMZGV0YWlsCHBsYXkMc2VhcmNoCXeRR1lNAFYALGh0dHBzOi8vd3d3Lmt1cWltdi5jb23eAU1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTUuMC4wLjAgU2FmYXJpLzUzNy4zNgxyZXFVcmwOcmVmZXJlcgZtdGgIZGF0YQRoZA5oZWFkZXJzBnJlcxRVc2VyLUFnZW50JGVuY29kZVVSSUNvbXBvbmVudAZyZXEMbWV0aG9kCHBvc3QIZm9ybRBwb3N0VHlwZQ5jb250ZW50BmNmZwhza2V5CnN0eXBlDGZpbHRlcg5jbGFzc2VzEmZpbHRlck9iag50eXBlX2lkCU5T7YvYmgVuEnR5cGVfbmFtZQnlZemXvnwJkAkna45/TQBWAAnYmgVusHM6VwlxX8aJTQBWAAkcWZdexomRmAlmjyFqxomRmAntcB6CxomRmAmOf3NZmVEfdwmOf3NZU2KfeBJzdHJpbmdpZnkGbWFwDmZpbHRlcnMGY2xzCGxhbmQKcmF0aW8IbGluawhodG1sAiQKaXRlbXMMdmlkZW9zHC9wbGF5LzlfMS5odG1sIGRpdi5tdl9saXN0ID4gbGkIbGlzdARpdAJhBmltZwxzaW5nZXIOcmVtYXJrcwhmaW5kDmE6Zmlyc3QSaW1nOmZpcnN0FGRpdi5zaW5nZXIIdGV4dAh0cmltFnNwYW4ubGVpXzAzDmF0dHJpYnMIaHJlZg5yZXBsYWNlBCQxDHZvZF9pZAp0aXRsZRB2b2RfbmFtZQZzcmMOdm9kX3BpYwU82KTfA1z/FnZvZF9yZW1hcmtzBnRpZARwZwxleHRlbmQOaGFzTW9yZQ5wZ0NvdW50DC9wbGF5LwouaHRtbD1kAGkAdgAuAGwAZQBpAF8AcABhAGcAZQAgAD4AIABhADoAYwBvAG4AdABhAGkAbgBzACgAC04ATnWYKQAQcGFyc2VJbnQIcGFnZRJwYWdlY291bnQKbGltaXQKdG90YWwEaWQGdm9kEHBsYXlsaXN0CcKJC3fGiZGYCVOQf5UoV79+GnZvZF9wbGF5X2Zyb20CIxh2b2RfcGxheV91cmwIZmxhZwZyZWYKcGRhdGEOcGxheVVybCovc2tpbi9rdXFpbXYvcGxheS5waHAKcGFyc2UGdXJsDlJlZmVyZXIMaGVhZGVyBHdkCnF1aWNrIC9zZWFyY2gucGhwP2tleT0OJnBhZ2VzPSZkaXYudmlkZW9fbGlzdCA+IGxpOGRpdi5sZWlfcGFnZSA+IGE6Y29udGFpbnMoPikWc3Bhbi5sZWlfMDRqaHR0cHM6Ly93d3cua3VxaW12LmNvbS9zdGF0aWMvaW1hZ2VzL2NvdmVyL3Npbmdlci5qcGcPpAMBpgMBAA+oAwACAKoDAAGsAwAOAAYBoAEAAAABEAlOAKoDAAysAwEMrgMACbADAQmyAwIJtAMDCbYDBA24AwUBugMGAbwDBwG+AwgBwAMJAcIDCgHEAwsBxgMMAagDDQEI6C++AF8HAL4BXwgAvgJfCQC+A18KAL4EXwsAvgVfDAC+Bl8NAL4HXw4AvghfDwApBOQAAADhBOUAAADiv18EALNfBQAE5gAAAF8GACmkAwEMAQAxCiEhFxcACMoCDmIGAbgDBQIFBQEAaAfOAwABANADAAEA0gMAAQDUAwABANYDAAEA2AMBADDaAwEBILYDBgxhAQBhAAALZQAATO4AAADH0OgQYgAAOO8AAADQ7UPoAAAAOPAAAADPC9ER6QcOBEEAAABM8QAAAGIAAEzsAAAA0kzqAAAA0QTyAAAAq+gIBPMAAADqAr9M9AAAAO6LyGIBAEH1AAAALqQDCwshCCsIXSZOKyFxEg5iBgG6AwEAAQICABgB7AMAAQCyAwQItAMFCM9B9wAAABFmAAAOz0H4AAAAEWYBAA4GLqQDGQMDOjoOYgYBvAMBAgELAQvnAQPyAwABAPQDAAAA9gMBADCsAwEMYQEAC70ATPwAAAAE/QAAAEz+AAAAC70BTPwAAAAE/wAAAEz+AAAAC70CTPwAAAAEAAEAAEz+AAAAC70DTPwAAAAEAQEAAEz+AAAAC70ETPwAAAAEAgEAAEz+AAAAC70FTPwAAAAEAwEAAEz+AAAAC70GTPwAAAAEBAEAAEz+AAAAC70HTPwAAAAEBQEAAEz+AAAAC70ITPwAAAAEBgEAAEz+AAAAC70JTPwAAAAEBwEAAEz+AAAAJgoAxwvIOJgAAABCCAEAAAtlAABCCQEAAMO+CiQCAEweAAAAYgEATAoBAAAkAQAupAMeDBIAuAEaDToACQg1KwcCMQcCMgcCMwcCNAcCNQcCNgcCNwcCOAcCOQcEMTAOQgYBAAEAAQIAAREBlgQAAQDPtEMMAQAAz70AQw0BAADPKKQDLgMDJisGexSuR+F6/D8OYgYBvgMABQAEBAFbBZwEAQAwngQBATCgBAECcKIEAQMwpAQBBCCwAwMIuAMHAKoDAAysAwEMYQQAYQMAYQIAYQEAYQAAZQAABBMBAACdx9xiAADti8hlAgBiAQDtyWICAAQUAQAA7cplAwBCCQEAAGIDAL4AJAIAwQQ4mAAAAEIIAQAAC2IEAEwVAQAAJAEALqQDNwtONSYrNQALFiY6Kw5CBgEAAQQBBQEC8AEFrAQAAQCuBAEAMLAEAQEwsgQBAjC0BAEDMKAEAg1hAwBhAgBhAQBhAABlAADP7UIbAQAABBwBAAAkAQCzR8dlAADP7UIbAQAABB0BAAAkAQCzR8hlAABlAADP7UIbAQAABB4BAAAkAQCzR+1CHwEAACQAAEIgAQAAJAAAyWUAAGUAAM/tQhsBAAAEIQEAACQBALNH7UIfAQAAJAAAQiABAAAkAADKC2IAAEEiAQAAQSMBAABCJAEAAL0AvQEzBCUBAAAkAgBMJgEAAGIAAEEiAQAAQScBAABMKAEAAGIBAEEiAQAABCkBAABHTCoBAAAEKwEAAGICAJ0ELAEAAJ1iAwCdEekDDr9MLQEAACikAzwKP2xs0NAIt11ilAcoLio/XC9wbGF5XC8oLiopLmh0bWwHsAEBAgBRAAAACAYAAAAEB/X///8LAAgGAAAAAwf1////AS8AAXAAAWwAAWEAAXkAAS8ACwEcAgAAAAAAAAD///9/AQAAAAMKDAEDAWgAAXQAAW0AAWwADAAKDmIGAcADBAcEBQQBywEL3AQAAQDeBAABAPIDAAEA4AQAAQCcBAEAMJ4EAQEwoAQBAnCiBAEDMKQEAQQg4gQBBTDkBAEGMLADAwi4AwcAqgMADKwDAQxhBgBhBQBhBABhAwBhAgBhAQBhAADQs6QR6QQO0PLoA7TUZQAABDMBAACdz50E1gAAAJ3QnQQ0AQAAncfcYgAA7YvIZQIAYgEA7cliAgAEFAEAAO3KZQMAQgkBAABiAwC+ACQCAMEEYgIABDUBAADt57OlwQViBQDoDDg2AQAA0O20neoIODYBAADQ7cEGOJgAAABCCAEAAAs4NgEAANDtTDcBAABiBgBMOAEAALsYTDkBAAC7GGIGAJpMOgEAAGIEAEwVAQAAJAEALqQDTRJsRIUmKzUACxYmSYA6PysmOisOQgYBAAEEAQUBAvABBawEAAEArgQBADCwBAEBMLIEAQIwtAQBAzCgBAINYQMAYQIAYQEAYQAAZQAAz+1CGwEAAAQcAQAAJAEAs0fHZQAAz+1CGwEAAAQdAQAAJAEAs0fIZQAAZQAAz+1CGwEAAAQeAQAAJAEAs0ftQh8BAAAkAABCIAEAACQAAMllAABlAADP7UIbAQAABCEBAAAkAQCzR+1CHwEAACQAAEIgAQAAJAAAygtiAABBIgEAAEEjAQAAQiQBAAC9AL0BMwQlAQAAJAIATCYBAABiAABBIgEAAEEnAQAATCgBAABiAQBBIgEAAAQpAQAAR0wqAQAABCsBAABiAgCdBCwBAACdYgMAnRHpAw6/TC0BAAAopANTCj9sbNDQCLddYpQHKC4qP1wvcGxheVwvKC4qKS5odG1sB7ABAQIAUQAAAAgGAAAABAf1////CwAIBgAAAAMH9f///wEvAAFwAAFsAAFhAAF5AAEvAAsBHAIAAAAAAAAA////fwEAAAADCgwBAwFoAAF0AAFtAAFsAAwACg5iBgHCAwECAQQAAGQD9gQAAQD4BAEAMPoEAQEwYQEAYQAAC89MJgEAAL9MLQEAAMcEPgEAAAQQAQAAnc+dJgEAyGIAAAQ/AQAAQ0ABAABiAABiAQBCWwAAAARBAQAAJAEAQ0IBAAA4mAAAAEIIAQAAC2IAACYBAEwVAQAAJAEALqQDagohCCEhCFhEezo6DmIGAcQDAwUDBwIAiQEIhgUAAQD2BAABANoBAAEAnAQBADCIBQEBMIoFAQIwjAUBAzDYAwEEMLADAwi4AwcAYQQAYQMAYQIAYQEAYQAAZQAABEcBAACdx2UAAAQzAQAAndCdBDQBAACdyAvQTDsBAADJOJgAAABCSAEAANxiAABiAQAE8gAAAGICACIEAIskAQBBSQEAAMoLZQAATEoBAADBBDiYAAAAQggBAAALs0xIAQAAYgMATEkBAABiBABMSwEAACQBAC6kA3cMTjVdK8EIKw06ISsrDmIGAcYDAwcDBQQC0gEKmAUAAQCaBQABAN4EAAEAnAQBADCeBAEBMKAEAQJwogQBAzCkBAEEIOIEAQUw5AQBBjCwAwMIuAMHAKoDAAysAwEMYQYAYQUAYQQAYQMAYQIAYQEAYQAA0bOkEekEDtHy6AO01WUAAAROAQAAnc+dBE8BAACd0Z3H3GIAAO2LyGUCAGIBAO3JYgIABFABAADtymUDAEIJAQAAYgMAvgAkAgDBBGICAARRAQAA7eezpcEFYgUA6Aw4NgEAANHttJ3qCDg2AQAA0e3BBjiYAAAAQggBAAALODYBAADR7Uw3AQAAYgYATDgBAAC7FEw5AQAAuxRiBgCaTDoBAABiBABMFQEAALRMDAEAAL0BTA0BAAAkAQAupAOGARRsRGcmKzUACxQmSYA6PysmOishJg5CBgEAAQMBBQECzwEErAQAAQCuBAEAMLIEAQEwtAQBAjCgBAINYQIAYQEAYQAAZQAAz+1CGwEAAAQcAQAAJAEAs0fHZQAAZQAAz+1CGwEAAAQeAQAAJAEAs0ftQh8BAAAkAABCIAEAACQAAMhlAABlAADP7UIbAQAABFIBAAAkAQCzR+1CHwEAACQAAEIgAQAAJAAAyQtiAABBIgEAAEEjAQAAQiQBAAC9AL0BMwQlAQAAJAIATCYBAABiAABBIgEAAEEnAQAATCgBAAAEUwEAAEwqAQAABCsBAABiAQCdBCwBAACdYgIAnRHpAw6/TC0BAAAopAOMAQkwbNDQCLddNZQHKC4qP1wvcGxheVwvKC4qKS5odG1sB7ABAQIAUQAAAAgGAAAABAf1////CwAIBgAAAAMH9f///wEvAAFwAAFsAAFhAAF5AAEvAAsBHAIAAAAAAAAA////fwEAAAADCgwBAwFoAAF0AAFtAAFsAAwACgZ7FK5H4Xr8Pw5DBgGoAwAAAAIHADIAugMIALwDCQC+AwoAwAMLAMIDDADEAw0AxgMOAAvbTN0AAADcTN4AAADdTN8AAADeTOAAAABeBABM4QAAAF4FAEziAAAAXgYATOMAAAAopAOkAQkDCCEhISErKys=
\ No newline at end of file
diff --git a/cat/js/ddys_open.js b/cat/js/ddys_open.js
new file mode 100644
index 0000000..5c570f0
--- /dev/null
+++ b/cat/js/ddys_open.js
@@ -0,0 +1,239 @@
+import { Crypto, load, _ } from 'assets://js/lib/cat.js';
+
+const key = 'ddys';
+let DOMAIN = 'ddys.pro';
+let HOST = 'https://' + DOMAIN;
+let PLAY_HOST = 'https://v.' + DOMAIN;
+const FROM_DIRECT = '直连';
+const FROM_PARSE = '解析';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36';
+
+async function request(reqUrl) {
+ const res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'Host': HOST.match(/.*\:\/\/(.*)/)[1],
+ 'User-Agent': UA,
+ 'Referer': HOST,
+ 'Accept-Encoding': 'gzip',
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+ if (cfg.hasOwnProperty('ext')) {
+ if (cfg.ext.hasOwnProperty('domain')) {
+ DOMAIN = cfg.ext.domain;
+ HOST = 'https://' + DOMAIN;
+ PLAY_HOST = 'https://v.' + DOMAIN;
+ }
+ }
+}
+
+async function home(filter) {
+ const classes = [{'type_id':'class','type_name':'类型'},{'type_id':'movie','type_name':'电影'},{'type_id':'airing','type_name':'热映中'},{'type_id':'drama','type_name':'剧集'},{'type_id':'anime','type_name':'动画'},{'type_id':'documentary','type_name':'纪录片'},{'type_id':'variety','type_name':'综艺'}];
+ const filterObj = {
+ 'class':[{'key':'tag','name':'标签','init':'recommend','value':[{'n':'站长推荐','v':'recommend'},{'n':'动作','v':'action'},{'n':'喜剧','v':'comedy'},{'n':'爱情','v':'romance'},{'n':'科幻','v':'sci-fi'},{'n':'犯罪','v':'crime'},{'n':'悬疑','v':'mystery'},{'n':'恐怖','v':'horror'}]}],
+ 'movie':[{'key':'type','name':'分类','init':'','value':[{'n':'全部','v':''},{'n':'欧美电影','v':'western-movie'},{'n':'日韩电影','v':'asian-movie'},{'n':'华语电影','v':'chinese-movie'}]}],
+ 'drama':[{'key':'type','name':'分类','init':'','value':[{'n':'全部','v':''},{'n':'欧美剧','v':'western-drama'},{'n':'日剧','v':'jp-drama'},{'n':'韩剧','v':'kr-drama'},{'n':'华语剧','v':'cn-drama'},{'n':'其他地区','v':'other'}]}],
+ 'anime':[{'key':'type','name':'分类','init':'','value':[{'n':'全部','v':''},{'n':'本季新番','v':'new-bangumi'}]}]
+ };
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ let path = '';
+ if (extend.tag) {
+ path = '/tag/' + extend.tag;
+ } else {
+ path = '/category/' + tid;
+ if (!_.isEmpty(extend.type)) {
+ path += '/' + extend.type;
+ }
+ }
+ let page = '';
+ if (pg > 1) {
+ page = 'page/' + pg + '/';
+ }
+ const link = HOST + path + '/' + page;
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('.post-box-list article');
+ const videos = _.map(items, (item) => {
+ const $item = $(item);
+ const title = $item.find('.post-box-title a');
+ const name = title.text();
+ const url = title.attr('href');
+ const image = $item.find('.post-box-image').attr('style').replace(/.*url\((.*)\);/g, '$1');
+ const remarks = $item.find('.post-box-meta').text();
+ return {
+ vod_id: url.replace(/.*\/\/.*\/(.*)\//g, '$1'),
+ vod_name: name,
+ vod_pic: image,
+ vod_remarks: remarks || '',
+ };
+ });
+ const limit = 28;
+ const hasMore = $('nav.navigation a.next').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: limit,
+ total: limit * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const html = await request(HOST + '/' + id + '/');
+ const $ = load(html);
+ const abstract = $('div.abstract')[0].children;
+ const vod = {
+ vod_id: id,
+ vod_name: $('h1.post-title').text(),
+ vod_type: findAbstractText(abstract, '类型:'),
+ vod_year: findAbstractText(abstract, '年份:'),
+ vod_area: findAbstractText(abstract, '制片国家/地区:'),
+ vod_director: findAbstractText(abstract, '导演:'),
+ vod_actor: findAbstractText(abstract, '演员:'),
+ vod_pic: $('div.post img:first').attr('data-cfsrc'),
+ vod_remarks : $('span.cat-links').text().trim(),
+ vod_content: findAbstractText(abstract, '简介:'),
+ };
+ const playMap = {};
+ parseAndUpdateUrls($, playMap);
+ const links = $('div.page-links a');
+ if (!_.isEmpty(links)) {
+ const promiseList = _.map(links, (link) => {
+ const url = $(link).attr('href');
+ return request(url);
+ });
+ const respList = await Promise.all(promiseList);
+ _.each(respList, (resp) => {
+ try {
+ const $ = load(resp);
+ parseAndUpdateUrls($, playMap);
+ } catch(e) {
+ }
+ });
+ }
+ vod.vod_play_from = _.keys(playMap).join('$$$');
+ const urls = _.values(playMap);
+ const vod_play_url = _.map(urls, (urlist) => {
+ return urlist.join('#');
+ });
+ vod.vod_play_url = vod_play_url.join('$$$');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+function findAbstractText(children, keyword) {
+ for (const item of children) {
+ if (item.type == 'text' && item.data && item.data.startsWith(keyword)) {
+ return item.data.substring(keyword.length).trim();
+ }
+ }
+ return '';
+}
+
+function parseAndUpdateUrls($, playMap) {
+ const trackText = $('script.wp-playlist-script').text();
+ const tracks = JSON.parse(trackText).tracks;
+ _.each(tracks, (track) => {
+ const title = track.caption;
+ const directUrl = track.src0;
+ if (!playMap.hasOwnProperty(FROM_DIRECT)) {
+ playMap[FROM_DIRECT] = [];
+ }
+ playMap[FROM_DIRECT].push(title + '$' + directUrl);
+ if (!_.isEmpty(track.src1)) {
+ if (!playMap.hasOwnProperty(FROM_PARSE)) {
+ playMap[FROM_PARSE] = [];
+ }
+ playMap[FROM_PARSE].push(title + '$' + track.src1);
+ }
+ });
+}
+
+async function play(flag, id, flags) {
+ let playUrl;
+ if (flag == FROM_PARSE) {
+ const resp = await request(HOST + '/getvddr2/video?id=' + id + '&type=json');
+ playUrl = JSON.parse(resp).url;
+ } else {
+ playUrl = PLAY_HOST + id;
+ }
+ const headers = {
+ 'User-Agent': UA,
+ 'Referer': HOST,
+ 'Icy-MetaData': '1',
+ 'Sec-Fetch-Site': 'same-site',
+ 'Sec-Fetch-Mode': 'cors',
+ 'Sec-Fetch-Dest': 'video',
+ };
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ header: headers,
+ });
+}
+
+async function search(wd, quick, pg) {
+ let page = '';
+ if (pg > 1) {
+ page = '/page/' + pg;
+ }
+ const html = await request(HOST + page + '/?s=' + wd + '&post_type=post');
+ const $ = load(html);
+ const list = $('div.post-content');
+ const videos = _.map(list, (item) => {
+ const $item = $(item);
+ const title = $item.find('.post-title a');
+ const name = title.text();
+ const url = title.attr('href');
+ const remarks = $item.find('.cat-links').text();
+ return {
+ vod_id: url.replace(/.*\/\/.*\/(.*)\//g, '$1'),
+ vod_name: name,
+ vod_pic: HOST + '/android-chrome-512x512.png',
+ vod_remarks: remarks,
+ };
+ });
+ const limit = 100;
+ const hasMore = $('nav.navigation a.next').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: limit,
+ total: limit * pgCount,
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/dj0898_book_open.js b/cat/js/dj0898_book_open.js
new file mode 100644
index 0000000..8620a4e
--- /dev/null
+++ b/cat/js/dj0898_book_open.js
@@ -0,0 +1,163 @@
+import { load, _ } from "./lib/cat.js";
+
+let key = "世纪DJ音乐网_book";
+let HOST = "http://m.dj0898.com";
+let siteKey = "";
+let siteType = 0;
+
+const MOBILE_UA = "Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36";
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: "get",
+ headers: {
+ "User-Agent": agentSp || MOBILE_UA,
+ Referer: HOST,
+ },
+ });
+ return res.content;
+}
+
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ const classes = [{ type_id: 1, type_name: "🎧串烧舞曲" }, { type_id: 2, type_name: "🎧外文舞曲" }, { type_id: 3, type_name: "🎧早场暖场" }, { type_id: 4, type_name: "🎧中文舞曲" }, { type_id: 5, type_name: "🎧其他舞曲" }, { type_id: 6, type_name: "🎧国外电音" }, { type_id: 8, type_name: "🎧慢歌连版" }, { type_id: 9, type_name: "🎧酒吧潮歌" }, { type_id: 10, type_name: "🎧中文串烧" }, { type_id: 11, type_name: "🎧外文串烧" }, { type_id: 12, type_name: "🎧中外串烧" }, { type_id: 13, type_name: "🎧车载串烧" }, { type_id: 14, type_name: "🎧越鼓串烧" }, { type_id: 40, type_name: "🎧3D/环绕" }, { type_id: 45, type_name: "🎧口水旋律" }, { type_id: 46, type_name: "🎧精品收藏" }, { type_id: 47, type_name: "🎧开场舞曲" }, { type_id: 48, type_name: "🎧印度舞曲" }, { type_id: 49, type_name: "🎧编排套曲" }, { type_id: 20, type_name: "🎧DuTch" }, { type_id: 21, type_name: "🎧Mash up" }, { type_id: 22, type_name: "🎧ClubHouse" }, { type_id: 23, type_name: "🎧ElectroHouse" }, { type_id: 24, type_name: "🎧越南鼓Dj" }, { type_id: 30, type_name: "🎧Funky" }, { type_id: 31, type_name: "🎧Reggae" }, { type_id: 32, type_name: "🎧Rnb" }, { type_id: 33, type_name: "🎧Hip Hop" }, { type_id: 34, type_name: "🎧Dubstep" }, { type_id: 8017, type_name: "🎧Hardstyle" }, { type_id: 8018, type_name: "🎧Hands Up" }];
+ const filterObj = {};
+ return JSON.stringify({
+ class: _.map(classes, (cls) => {
+ cls.land = 1;
+ cls.ratio = 1.78;
+ return cls;
+ }),
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {
+ const link = HOST + "/dance/lists/id/10/1";
+ const html = await request(link);
+ const $ = load(html);
+ const list = $("ul.djddv_djList > li");
+ let videos = _.map(list, (it) => {
+ const a = $(it).find("a")[1];
+ const img = $(it).find("img:first")[0];
+ const tt = $(it).find("strong:first")[0];
+ const remarks = $(it).find("font")[5];
+ return {
+ vod_id: a.attribs.href,
+ vod_name: tt.children[0].data,
+ vod_pic: img.attribs["src"],
+ vod_remarks: "🎵" + remarks.children[0].data || "",
+ };
+ });
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0 || typeof pg == "undefined") pg = 1;
+ const link = HOST + "/dance/lists/id/" + tid + "/" + pg;
+ const html = await request(link);
+ const $ = load(html);
+ const list = $("ul.djddv_djList > li");
+ let videos = _.map(list, (it) => {
+ const a = $(it).find("a")[1];
+ const img = $(it).find("img:first")[0];
+ const tt = $(it).find("strong:first")[0];
+ const remarks = $(it).find("font")[5];
+ return {
+ book_id: a.attribs.href,
+ book_name: tt.children[0].data,
+ book_pic: img.attribs["src"],
+ book_remarks: "🎵" + remarks.children[0].data || "",
+ };
+ });
+ const hasMore = $("ul.page_link > li > a:contains(\u00a0)").length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 60,
+ total: 60 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const vod = {
+ audio: 1,
+ book_id: id,
+ type_name: '',
+ book_year: '',
+ book_area: '',
+ book_remarks: '',
+ book_actor: '',
+ book_director: '',
+ book_content: '',
+ };
+ const playlist = ["点击播放" + "$" + vod.book_id];
+ vod.volumes = "道长在线";
+ vod.urls = playlist.join("#");
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ const html = await request(id);
+ const $ = load(html);
+ const audio = $("body audio[src*=http]");
+ const audioUrl = audio[0].attribs.src;
+ // console.debug('世纪DJ音乐网 audioUrl =====>' + audioUrl); // js_debug.log
+ return JSON.stringify({
+ parse: 0,
+ url: audioUrl,
+ });
+}
+
+async function search(wd, quick, pg) {
+ if (pg <= 0 || typeof pg == "undefined") pg = 1;
+ const link = HOST + "/index.php/dance/so/key?key=" + wd + "&cid=0&p=" + pg;
+ const html = await request(link);
+ const $ = load(html);
+ const list = $("ul.djddv_djList > li");
+ let videos = _.map(list, (it) => {
+ const a = $(it).find("a")[1];
+ const img = $(it).find("img:first")[0];
+ const tt = $(it).find("strong:first")[0];
+ const remarks = $(it).find("font:first")[0];
+ return {
+ book_id: a.attribs.href,
+ book_name: tt.children[0].data,
+ book_pic: img.attribs["src"],
+ book_remarks: "🎵" + remarks.children[0].data || "",
+ };
+ });
+ const hasMore = $("ul.page_link > li > a:contains(\u00a0)").length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 60,
+ total: 60 * pgCount,
+ list: videos,
+ land: 1,
+ ratio: 1.78,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/djwm_open.js b/cat/js/djwm_open.js
new file mode 100644
index 0000000..d4a30c9
--- /dev/null
+++ b/cat/js/djwm_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1CzARhkandtX29wZW4uanMYLi9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuDENyeXB0bwhsb2FkAl8MamluamEyBmtleQZ1cmwOc2l0ZUtleRBzaXRlVHlwZQRVQQ5yZXF1ZXN0CGluaXQIaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFpbAhwbGF5GGJhc2U2NEVuY29kZRhiYXNlNjREZWNvZGUMc2VhcmNoCGRqd20qaHR0cHM6Ly9tLmR1YW5qdTUuY29tlgJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDEzXzJfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTMuMC4zIE1vYmlsZS8xNUUxNDggU2FmYXJpLzYwNC4xDHJlcVVybA5hZ2VudFNwBnJlcwZyZXEMbWV0aG9kFFVzZXItQWdlbnQOUmVmZXJlcg5oZWFkZXJzDmNvbnRlbnQGY2ZnCHNrZXkKc3R5cGUMZmlsdGVyDmNsYXNzZXMSZmlsdGVyT2JqCG5peGkOdHlwZV9pZAUGkK2IEnR5cGVfbmFtZRJ0aWFuY2hvbmcFHHWgWw5udWVsaWFuBVCGS2AQY2h1YW55dWUFf3qKjRRjaG9uZ3NoZW5nBc2RH3UMbGV0dGVyBVdbzWsFaFHokAJuAnYCQQJCAkMCRAJFAkYCRwJIAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgJXAlgCWQJaBGJ5BZJjj14F9mX0lQh0aW1lBbpOFGwIaGl0cwXEiwZSCnNjb3JlEnN0cmluZ2lmeQ5maWx0ZXJzBnRpZARwZwxleHRlbmQIbGluawhodG1sAiQKaXRlbXMMdmlkZW9zDmhhc01vcmUOcGdDb3VudBIvdm9kc2hvdy8ELS0GLS0tCi5odG1sRGRpdi5tb2R1bGUtaXRlbXMgPiBkaXYubW9kdWxlLWl0ZW0GbWFwNWQAaQB2ACMAcABhAGcAZQAgAD4AIABhADoAYwBvAG4AdABhAGkAbgBzACgAC04ATnWYKQAQcGFyc2VJbnQIcGFnZRJwYWdlY291bnQKbGltaXQKdG90YWwIbGlzdAhpdGVtBGl0AmsOcmVtYXJrcwhmaW5kDmE6Zmlyc3QSaW1nOmZpcnN0QGRpdi5tb2R1bGUtaXRlbS1zdHlsZSB2aWRlby10ZXh0CHRleHQIdHJpbQ5hdHRyaWJzCGhyZWYOcmVwbGFjZQQkMQx2b2RfaWQKdGl0bGUQdm9kX25hbWUQZGF0YS1zcmMOdm9kX3BpYxZ2b2RfcmVtYXJrcwRpZAZ2b2QQcGxheWxpc3QWL3ZvZGRldGFpbC8QaDE6Zmlyc3Q+Lm15dWktY29udGVudF9fZGV0YWlsIHA6Zmlyc3QgYRB2b2RfdHlwZUgubXl1aS1jb250ZW50X19kZXRhaWwgcDpudGgtY2hpbGQoNSkHO04Ubxr/EnZvZF9hY3RvckgubXl1aS1jb250ZW50X19kZXRhaWwgcDpudGgtY2hpbGQoNikH/FsUbxr/GHZvZF9kaXJlY3RvckJkaXYubXl1aS1jb250ZW50X190aHVtYiBpbWc6Zmlyc3QIYXR0chpkYXRhLW9yaWdpbmFsJCNyYXRpbmc6Zmlyc3Qgc3BhbgIgEnNwYW4uZGF0YRZ2b2RfY29udGVudCJkaXYuc29ydC1pdGVtID4gYQkaWRpZv37vjRp2b2RfcGxheV9mcm9tAiMYdm9kX3BsYXlfdXJsCGZsYWcEanMOcGxheXVybA5wbGF5VXJsEi92b2RwbGF5LwpwYXJzZTBzY3JpcHQ6Y29udGFpbnMocGxheWVyXykgdmFyIHBsYXllcl9hYWFhPRB1bmVzY2FwZQZlbmMMQmFzZTY0CFV0ZjgEd2QKcXVpY2sIZGF0YUIvaW5kZXgucGhwL2FqYXgvc3VnZ2VzdD9taWQ9MSZ3ZD0IcHVzaAZwaWMPpAMBpgMBABOoAwAEAKoDAAGsAwACrgMAA7ADAA4ABgGgAQAAAAEUC1wAqgMADKwDAQyuAwIMsAMDDLIDAAm0AwEJtgMCCbgDAwm6AwQNvAMFAb4DBgHAAwcBwgMIAcQDCQHGAwoByAMLAcoDDAHMAw0BzgMOAagDDwEI6Dm+AF8JAL4BXwoAvgJfCwC+A18MAL4EXw0AvgVfDgC+Bl8PAL4HXxAAvghfEQC+CV8SAL4KXxMAKQToAAAAXwQABOkAAABfBQC/XwYAs18HAATqAAAAXwgAKaQDAQwBADsGKysXGAAIkAIOYgYBvAMCAQIGAgA7A9YDAAEA2AMAAQD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MCQEAAAQPAQAATAoBAAALBBABAABMCQEAAAQQAQAATAoBAAALBBEBAABMCQEAAAQRAQAATAoBAAALBBIBAABMCQEAAAQSAQAATAoBAAALBBMBAABMCQEAAAQTAQAATAoBAAALBBQBAABMCQEAAAQUAQAATAoBAAALBBUBAABMCQEAAAQVAQAATAoBAAALBBYBAABMCQEAAAQWAQAATAoBAAALBBcBAABMCQEAAAQXAQAATAoBAAALBBgBAABMCQEAAAQYAQAATAoBAAALBBkBAABMCQEAAAQZAQAATAoBAAALBBoBAABMCQEAAAQaAQAATAoBAAALBBsBAABMCQEAAAQbAQAATAoBAAALBBwBAABMCQEAAAQcAQAATAoBAAALBB0BAABMCQEAAAQdAQAATAoBAAALBB4BAABMCQEAAAQeAQAATAoBAAALBB8BAABMCQEAAAQfAQAATAoBAAALBCABAABMCQEAAAQgAQAATAoBAAALBCEBAABMCQEAAAQhAQAATAoBAAALBCIBAABMCQEAAAQiAQAATAoBAAALBCMBAABMCQEAAAQjAQAATAoBAAALBCQBAABMCQEAAAQkAQAATAoBAAAmGwBMQAAAAAsEJQEAAEzZAAAABCYBAABMNgAAAAsEJwEAAEwJAQAABCgBAABMCgEAAAsEKQEAAEwJAQAABCoBAABMCgEAAAsEKwEAAEwJAQAABCwBAABMCgEAACYDAExAAAAAJgIATAABAAALBAYBAABM2QAAAAQHAQAATDYAAAALBAgBAABMCQEAAL9MCgEAAAsECwEAAEwJAQAABAsBAABMCgEAAAsEDAEAAEwJAQAABAwBAABMCgEAAAsEDQEAAEwJAQAABA0BAABMCgEAAAsEDgEAAEwJAQAABA4BAABMCgEAAAsEDwEAAEwJAQAABA8BAABMCgEAAAsEEAEAAEwJAQAABBABAABMCgEAAAsEEQEAAEwJAQAABBEBAABMCgEAAAsEEgEAAEwJAQAABBIBAABMCgEAAAsEEwEAAEwJAQAABBMBAABMCgEAAAsEFAEAAEwJAQAABBQBAABMCgEAAAsEFQEAAEwJAQAABBUBAABMCgEAAAsEFgEAAEwJAQAABBYBAABMCgEAAAsEFwEAAEwJAQAABBcBAABMCgEAAAsEGAEAAEwJAQAABBgBAABMCgEAAAsEGQE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
\ No newline at end of file
diff --git a/cat/js/dnys_open.js b/cat/js/dnys_open.js
new file mode 100644
index 0000000..c80f0ae
--- /dev/null
+++ b/cat/js/dnys_open.js
@@ -0,0 +1 @@
+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AaQAgAD4AIABhADoAYwBvAG4AdABhAGkAbgBzACgAC04ATnWYKQAQcGFyc2VJbnQIcGFnZRJwYWdlY291bnQKbGltaXQKdG90YWwIbGlzdAhpdGVtBGl0DnJlbWFya3MIZmluZA5hOmZpcnN0KGRpdi5tb2R1bGUtaXRlbS1ub3RlCHRleHQIdHJpbQ5hdHRyaWJzCGhyZWYOcmVwbGFjZQQkMQx2b2RfaWQKdGl0bGUQdm9kX25hbWUaZGF0YS1vcmlnaW5hbA52b2RfcGljFnZvZF9yZW1hcmtzBGlkBnZvZA5wbGF5TWFwCHRhYnMScGxheWxpc3RzCHVybHMYdm9kX3BsYXlfdXJsMi9pbmRleC5waHAvdm9kL2RldGFpbC9pZC8QaDI6Zmlyc3Q4LmNvbnRlbnRfbWluIGxpOm50aC1jaGlsZCgyKRB2b2RfdHlwZTguY29udGVudF9taW4gbGk6bnRoLWNoaWxkKDMpEnZvZF9hY3RvciwudmlkZW8tY292ZXIgaW1nOmZpcnN0CGF0dHIGc3JjSC5zdHVpLWNvbnRlbnRfX2RldGFpbCBwOm50aC1jaGlsZCg1KR4uZnVsbF90ZXh0IHNwYW4Wdm9kX2NvbnRlbnQuZGl2LnBsYXlfc291cmNlX3RhYiA+IGEmdWwuY29udGVudF9wbGF5bGlzdAhlYWNoCGtleXMGJCQkGnZvZF9wbGF5X2Zyb20GdGFiAmkQY2hpbGRyZW4IZGF0YQJhDnBsYXlVcmwcaGFzT3duUHJvcGVydHkIcHVzaAx1cmxpc3QCIwhmbGFnBGpzLi9pbmRleC5waHAvdm9kL3BsYXkvaWQvCnBhcnNlMHNjcmlwdDpjb250YWlucyhwbGF5ZXJfKSB2YXIgcGxheWVyX2FhYWE9EHVuZXNjYXBlBnVybAR3ZApxdWljazYvaW5kZXgucGhwL3ZvZC9zZWFyY2gvcGFnZS8IL3dkLyJkaXYuc3JfbGlzdHMgPiBkbDdkAGkAdgAuAHAAYQBnAGUAcwAgAD4AIABhADoAYwBvAG4AdABhAGkAbgBzACgAC04ATnWYKQACawJnEmltZzpmaXJzdBBzcGFuLnNzMQ+kAwGmAwEAEagDAAQAqgMAAawDAAKuAwADsAMADgAGAaABAAAAARIJUgCqAwAMrAMBDK4DAgywAwMMsgMACbQDAQm2AwIJuAMDCboDBA28AwUBvgMGAcADBwHCAwgBxAMJAcYDCgHIAwsBygMMAagDDQEI6C++AF8JAL4BXwoAvgJfCwC+A18MAL4EXw0AvgVfDgC+Bl8PAL4HXxAAvghfEQApBOYAAABfBAAE5wAAAF8FAL9fBgCzXwcABOgAAABfCAAppAMBCgH6KysXGAAIsgIOYgYBvAMCAQIGAgA7A9IDAAEA1AMAAQDWAwEAILoDCAy0AwUIYQAAOOwAAADPCwRBAAAATO0AAAAL0BHpBQ5lAABM7gAAAGUBAEzvAAAATPAAAADui8diAABB8QAAAC6kAwoIEiY1CEQrHBIOYgYBvgMBAAECAgAYAeQDAAEAtgMGCLgDBwjPQfMAAAARZgAADs9B9AAAABFmAQAOBi6kAxYDAzo6DmIGAcADAQIBJABnw0MD6gMAAQDsAwEAIO4DAQEgYQEAYQAAC7RM+AAAAAT5AAAATPoAAAALtUz4AAAABPsAAABM+gAAAAu2TPgAAAAE/AAAAEz6AAAAC7dM+AAAAAT9AAAATPoAAAALuzJM+AAAAAT+AAAATPoAAAAmBQDHCwsE/wAAAEzZAAAABAABAABMNgAAAAsEAQEAAEwCAQAAvQBMAwEAAAsEBAEAAEwCAQAAvQFMAwEAAAsEBQEAAEwCAQAAvQJMAwEAAAsEBgEAAEwCAQAAvQNMAwEAAAsEBwEAAEwCAQAAvQRMAwEAAAsECAEAAEwCAQAAvQVMAwEAAAsECQEAAEwCAQAAvQZMAwEAAAsECgEAAEwCAQAAvQdMAwEAAAsECwEAAEwCAQAAvQhMAwEAAAsEDAEAAEwCAQAAvQlMAwEAAAsEDQEAAEwCAQAAvQpMAwEAAAsEDgEAAEwCAQAAvQtMAwEAACYMAExAAAAACwQeAAAATNkAAAAEDwEAAEw2AAAACwQBAQAATAIBAAC/TAMBAAALBBABAABMAgEAAAQRAQAATAMBAAALBBIBAABMAgEAAAQTAQAATAMBAAALBBQBAABMAgEAAAQVAQAATAMBAAALBBYBAABMAgEAAAQXAQAATAMBAAALBBgBAABMAgEAAAQZAQAATAMBAAALBBoBAABMAgEAAAQbAQAATAMBAAALBBwBAABMAgEAAAQdAQAATAMBAAALBB4BAABMAgEAAAQfAQAATAMBAAALBCABAABMAgEAAAQhAQAATAMBAAALBCIBAABMAgEAAAQjAQAATAMBAAALBCQBAABMAgEAAAQlAQAATAMBAAALBCYBAABMAgEAAAQnAQAATAMBAAALBCgBAABMAgEAAAQpAQAATAMBAAALBCoBAABMAgEAAAQrAQAATAMBAAALBBQBAABMAgEAAAQVAQAATAMBAAALBCwBAABMAgEAAAQtAQAATAMBAAALBC4BAABMAgEAAAQvAQAATAMBAAALBDABAABMAgEAAAQxAQAATAMBAAALBDIBAABMAgEAAAQzAQAATAMBAAALBDQBAABMAgEAAAQ1AQAATAMBAAALBDYBAABMAgEAAAQ3AQAATAMBAAALBDgBAABMAgEAAAQ5AQAATAMBAAALBDoBAABMAgEAAAQ7AQAATAMBAAALBDwBAABMAgEAAAQ9AQAATAMBAAALBD4BAABMAgEAAAQ/AQAATAMBAAALBEABAABMAgEAAARBAQAATAMBAAALBEIBAABMAgEAAARDAQAATAMBAAAmHABMQAAAAAsERAEAAEzZAAAABEUBAABMNgAAAAsEAQEAAEwCAQAAv0wDAQAACwRGAQAATAIBAAAERwEAAEwDAQAACwRIAQAATAIBAAAESQEAAEwDAQAACwRKAQAATAIBAAAESwEAAEwDAQAACwRMAQAATAIBAAAETQEAAEwDAQAACwROAQAATAIBAAAETwEAAEwDAQAACwRQAQAATAIBAAAEUQEAAEwDAQAACwRSAQAATAIBAAAEUwEAAEwDAQAACwRUAQAATAIBAAAEVQEAAEwDAQAACwRWAQAATAIBAAAEVwEAAEwDAQAACwRYAQAATAIBAAAEWQEAAEwDAQAACwRaAQAATAIBAAAEWwEAAEwDAQAACwRcAQAATAIBAAAEXQEAAEwDAQAACwReAQAATAIBAAAEXwEAAEwDAQAACwRgAQAATAIBAAAEYQEAAEwDAQAACwRiAQAATAIBAAAEYwEAAEwDAQAAJhAATEAAAAALBGQBAABM2QAAAARlAQAATDYAAAALBAEBAABMAgEAAL9MAwEAAAu9DEwCAQAABGYBAABMAwEAAAu9DUwCAQAABGcBAABMAwEAAAu9DkwCAQAABGgBAABMAwEAAAu9D0wCAQAABGkBAABMAwEAAAu9EEwCAQAABGoBAABMAwEAAAu9EUwCAQAABGsBAABMAwEAAAu9EkwCAQAABGwBAABMAwEAAAu9E0wCAQAABG0BAABMAwEAAAu9FEwCAQAABG4BAABMAwEAAAu9FUwCAQAABG8BAABMAwEAAAu9FkwCAQAABHABAABMAwEAAAu9F0wCAQAABHEBAABMAwEAAAu9GEwCAQAABHIBAABMAwEAAAu9GUwCAQAABHMBAABMAwEAACYPAExAAAAACwR0AQAATNkAAAAEdQEAAEw2AAAACwQBAQAATAIBAAC/TAMBAAALBHYBAABMAgEAAAR3AQAATAMBAAALBHgBAABMAgEAAAR5AQAATAMBAAALBHoBAABMAgEAAAR7AQAATAMBAAALBHwBAABMAgEAAAR9AQAATAMBAAALBH4BAABMAgEAAAR/AQAATAMBAAALBIABAABMAgEAAASBAQAATAMBAAALBIIBAABMAgEAAASDAQAATAMBAAALBIQBAABMAgEAAASFAQAATAMBAAALBIYBAABMAgEAAASHAQAATAMBAAAmCgBMQAAAAAsEiAEAAEzZAAAABIkBAABMNgAAAAsEAQEAAEwCAQAAv0wDAQAACwSKAQAATAIBAAAEiwEAAEwDAQAACwSMAQAATAIBAAAEjQEAAEwDAQAACwSOAQAATAIBAAAEjwEAAEwDAQAACwSQAQAATAIBAAAEkQEAAEwDAQAACwSSAQAATAIBAAAEkwEAAEwDAQAACwSUAQAATAIBAAAElQEAAEwDAQAACwSWAQAATAIBAAAElwEAAEwDAQAACwSYAQAATAIBAAAEmQEAAEwDAQAACwSaAQAATAIBAAAEmwEAAEwDAQAACwScAQAATAIBAAAEnQEAAEwDAQAACwSeAQAATAIBAAAEnwEAAEwDAQAACwSgAQAATAIBAAAEoQEAAEwDAQAACwSiAQAATAIBAAAEowEAAEwDAQAACwSkAQAATAIBAAAEpQEAAEwDAQAACwSmAQAATAIBAAAEpwEAAEwDAQAACwSoAQAATAIBAAAEqQEAAEwDAQAACwSqAQAATAIBAAAEqwEAAEwDAQAACwSsAQAATAIBAAAErQEAAEwDAQAACwSuAQAATAIBAAAErwEAAEwDAQAACwSwAQAATAIBAAAEsQEAAEwDAQAACwSyAQAATAIBAAAEswEAAEwDAQAACwS0AQAATAIBAAAEtQEAAEwDAQAACwS2AQAATAIBAAAEtwEAAEwDAQAACwS4AQAATAIBAAAEuQEAAEwDAQAACwS6AQAATAIBAAAEuwEAAEwDAQAACwS8AQAATAIBAAAEvQEAAEwDAQAACwS+AQAATAIBAAAEvwEAAEwDAQAAJhwATEAAAAALBMABAABM2QAAAATBAQAATDYAAAALBMIBAABMAgEAAATDAQAATAMBAAALBMQBAABMAgEAAATFAQAATAMBAAALBMYBAABMAgEAAATHAQAATAMBAAAmAwBMQAAAACYHAEwBAACACwT/AAAATNkAAAAEAAEAAEw2AAAACwQBAQAATAIBAAC9GkwDAQAACwTIAQAATAIBAAC9G0wDAQAACwTJAQAATAIBAAC9HEwDAQAACwTKAQAATAIBAAC9HUwDAQAACwTLAQAATAIBAAC9HkwDAQAACwTMAQAATAIBAAC9H0wDAQAACwTNAQAATAIBAAC9IEwDAQAAJgcATEAAAAALBB4AAABM2QAAAAQPAQAATDYAAAALBAEBAABMAgEAAL9MAwEAAAsEOAEAAEwCAQAABDkBAABMAwEAAAsEHAEAAEwCAQAABB0BAABMAwEAAAsEzgEAAEwCAQAABM8BAABMAwEAAAsEEAEAAEwCAQAABBEBAABMAwEAAAsE0AEAAEwCAQAABNEBAABMAwEAAAsEIAEAAEwCAQAABCEBAABMAwEAAAsEFgEAAEwCAQAABBcBAABMAwEAAAsEJAEAAEwCAQAABCUBAABMAwEAAAsEGgEAAEwCAQAABBsBAABMAwEAAAsEOgEAAEwCAQAABDsBAABMAwEAAAsEMAEAAEwCAQAABDEBAABMAwEAAAsE0gEAAEwCAQAABNMBAABMAwEAAAsE1AEAAEwCAQAABNUBAABMAwEAAAsE1gEAAEwCAQAABNcBAABMAwEAAAsE2AEAAEwCAQAABNkBAABMAwEAAAsEYgEAAEwCAQAABNoBAABMAwEAACYRAExAAAAACwREAQAATNkAAAAERQEAAEw2AAAACwQBAQAATAIBAAC/TAMBAAALBNsBAABMAgEAAATcAQAATAMBAAALBFQBAABMAgEAAARVAQAATAMBAAALBEgBAABMAgEAAARJAQAATAMBAAALBEoBAABMAgEAAARLAQAATAMBAAALBFIBAABMAgEAAARTAQAATAMBAAALBEwBAABMAgEAAARNAQAATAMBAAALBFgBAABMAgEAAARZAQAATAMBAAALBFABAABMAgEAAARRAQAATAMBAAALBN0BAABMAgEAAATeAQAATAMBAAALBGIBAABMAgEAAARjAQAATAMBAAAmCwBMQAAAAAsEZAEAAEzZAAAABGUBAABMNgAAAAsEAQEAAEwCAQAAv0wDAQAAC70hTAIBAAAEZgEAAEwDAQAAC70iTAIBAAAEZwEAAEwDAQAAC70jTAIBAAAEaAEAAEwDAQAAC70kTAIBAAAEaQEAAEwDAQAAC70lTAIBAAAEagEAAEwDAQAAC70mTAIBAAAEawEAAEwDAQAAC70nTAIBAAAEbAEAAEwDAQAAC70oTAIBAAAEbQEAAEwDAQAAC70pTAIBAAAEbgEAAEwDAQAAC70qTAIBAAAEbwEAAEwDAQAAC70rTAIBAAAEcAEAAEwDAQAAC70sTAIBAAAEcQEAAEwDAQAAC70tTAIBAAAEcgEAAEwDAQAAC70uTAIBAAAEcwEAAEwDAQAAC70vTAIBAAAE3wEAAEwDAQAAC70wTAIBAAAE4AEAAEwDAQAAC70xTAIBAAAE4QEAAEwDAQAAC70yTAIBAAAE4gEAAEwDAQAAC70zTAIBAAAE4wEAAEwDAQAAJhQATEAAAAALBHQBAABM2QAAAAR1AQAATDYAAAALBAEBAABMAgEAAL9MAwEAAAsEdgEAAEwCAQAABHcBAABMAwEAAAsEeAEAAEwCAQAABHkBAABMAwEAAAsEegEAAEwCAQAABHsBAABMAwEAAAsEfAEAAEwCAQAABH0BAABMAwEAAAsEfgEAAEwCAQAABH8BAABMAwEAAAsEgAEAAEwCAQAABIEBAABMAwEAAAsEhgEAAEwCAQAABIcBAABMAwEAACYIAExAAAAACwSIAQAATNkAAAAEiQEAAEw2AAAACwQBAQAATAIBAAC/TAMBAAALBIoBAABMAgEAAASLAQAATAMBAAALBIwBAABMAgEAAASNAQAATAMBAAALBI4BAABMAgEAAASPAQAATAMBAAALBJABAABMAgEAAASRAQAATAMBAAALBJIBAABMAgEAAASTAQAATAMBAAALBJQBAABMAgEAAASVAQAATAMBAAALBJYBAABMAgEAAASXAQAATAMBAAALBJgBAABMAgEAAASZAQAATAMBAAALBJoBAABMAgEAAASbAQAATAMBAAALBJwBAABMAgEAAASdAQAATAMBAAALBJ4BAABMAgEAAASfAQAATAMBAAALBKABAABMAgEAAAShAQAATAMBAAALBKIBAABMAgEAAASjAQAATAMBAAALBKQBAABMAgEAAASlAQAATAMBAAALBKYBAABMAgEAAASnAQAATAMBAAALBKgBAABMAgEAAASpAQAATAMBAAALBKoBAABMAgEAAASrAQAATAMBAAALBKwBAABMAgEAAAStAQAATAMBAAALBK4BAABMAgEAAASvAQAATAMBAAALBLABAABMAgEAAASxAQAATAMBAAALBLIBAABMAgEAAASzAQAATAMBAAALBLQBAABMAgEAAAS1AQAATAMBAAALBLYBAABMAgEAAAS3AQAATAMBAAALBLgBAABMAgEAAAS5AQAATAMBAAALBLoBAABMAgEAAAS7AQAATAMBAAALBLwBAABMAgEAAAS9AQAATAMBAAALBL4BAABMAgEAAAS/AQAATAMBAAAmHABMQAAAAAsEwAEAAEzZAAAABMEBAABMNgAAAAsEwgEAAEwCAQAABMMBAABMAwEAAAsExAEAAEwCAQAABMUBAABMAwEAAAsExgEAAEwCAQAABMcBAABMAwEAACYDAExAAAAAJgcATAIAAIALBP8AAABM2QAAAAQAAQAATDYAAAALBAEBAABMAgEAAL00TAMBAAALBOQBAABMAgEAAL01TAMBAAALBOUBAABMAgEAAL02TAMBAAALBOYBAABMAgEAAL03TAMBAAAmBABMQAAAAAsEHgAAAEzZAAAABA8BAABMNgAAAAsEAQEAAEwCAQAAv0wDAQAACwTnAQAATAIBAAAE6AEAAEwDAQAACwTpAQAATAIBAAAE6gEAAEwDAQAACwTrAQAATAIBAAAE7AEAAEwDAQAACwTtAQAATAIBAAAE7gEAAEwDAQAACwTvAQAATAIBAAAE8AEAAEwDAQAACwTxAQAATAIBAAAE8gEAAEwDAQAACwTzAQAATAIBAAAE9AEAAEwDAQAACwT1AQAATAIBAAAE9gEAAEwDAQAACwT3AQAATAIBAAAE+AEAAEwDAQAACwT5AQAATAIBAAAE+gEAAEwDAQAACwT7AQAATAIBAAAE/AEAAEwDAQAACwT9AQAATAIBAAAE/gEAAEwDAQAACwT/AQAATAIBAAAEAAIAAEwDAQAAJg4ATEAAAAALBEQBAABM2QAAAARFAQAATDYAAAALBAEBAABMAgEAAL9MAwEAAAsE2wEAAEwCAQAABNwBAABMAwEAAAsEAQIAAEwCAQAABAICAABMAwEAAAsEAwIAAEwCAQAABAQCAABMAwEAAAsEBQIAAEwCAQAABAYCAABMAwEAACYFAExAAAAACwRkAQAATNkAAAAEZQEAAEw2AAAACwQBAQAATAIBAAC/TAMBAAALvThMAgEAAARmAQAATAMBAAALvTlMAgEAAARnAQAATAMBAAALvTpMAgEAAARoAQAATAMBAAALvTtMAgEAAARpAQAATAMBAAALvTxMAgEAAARqAQAATAMBAAALvT1MAgEAAARrAQAATAMBAAALvT5MAgEAAARsAQAATAMBAAALvT9MAgEAAARtAQAATAMBAAALvUBMAgEAAARuAQAATAMBAAALvUFMAgEAAARvAQAATAMBAAALvUJMAgEAAARwAQAATAMBAAALvUNMAgEAAARxAQAATAMBAAALvURMAgEAAARyAQAATAMBAAALvUVMAgEAAARzAQAATAMBAAALvUZMAgEAAATfAQAATAMBAAALvUdMAgEAAATgAQAATAMBAAALvUhMAgEAAAQHAgAATAMBAAALvUlMAgEAAAThAQAATAMBAAALvUpMAgEAAATiAQAATAMBAAALvUtMAgEAAATjAQAATAMBAAAmFQBMQAAAAAsEdAEAAEzZAAAABHUBAABMNgAAAAsEAQEAAEwCAQAAv0wDAQAACwR2AQAATAIBAAAEdwEAAEwDAQAACwR4AQAATAIBAAAEeQEAAEwDAQAACwR6AQAATAIBAAAEewEAAEwDAQAACwR8AQAATAIBAAAEfQEAAEwDAQAACwR+AQAATAIBAAAEfwEAAEwDAQAACwSAAQAATAIBAAAEgQEAAEwDAQAACwSGAQAATAIBAAAEhwEAAEwDAQAAJggATEAAAAALBIgBAABM2QAAAASJAQAATDYAAAALBAEBAABMAgEAAL9MAwEAAAsEigEAAEwCAQAABIsBAABMAwEAAAsEjAEAAEwCAQAABI0BAABMAwEAAAsEjgEAAEwCAQAABI8BAABMAwEAAAsEkAEAAEwCAQAABJEBAABMAwEAAAsEkgEAAEwCAQAABJMBAABMAwEAAAsElAEAAEwCAQAABJUBAABMAwEAAAsElgEAAEwCAQAABJcBAABMAwEAAAsEmAEAAEwCAQAABJkBAABMAwEAAAsEmgEAAEwCAQAABJsBAABMAwEAAAsEnAEAAEwCAQAABJ0BAABMAwEAAAsEngEAAEwCAQAABJ8BAABMAwEAAAsEoAEAAEwCAQAABKEBAABMAwEAAAsEogEAAEwCAQAABKMBAABMAwEAAAsEpAEAAEwCAQAABKUBAABMAwEAAAsEpgEAAEwCAQAABKcBAABMAwEAAAsEqAEAAEwCAQAABKkBAABMAwEAAAsEqgEAAEwCAQAABKsBAABMAwEAAAsErAEAAEwCAQAABK0BAABMAwEAAAsErgEAAEwCAQAABK8BAABMAwEAAAsEsAEAAEwCAQAABLEBAABMAwEAAAsEsgEAAEwCAQAABLMBAABMAwEAAAsEtAEAAEwCAQAABLUBAABMAwEAAAsEtgEAAEwCAQAABLcBAABMAwEAAAsEuAEAAEwCAQAABLkBAABMAwEAAAsEugEAAEwCAQAABLsBAABMAwEAAAsEvAEAAEwCAQAABL0BAABMAwEAAAsEvgEAAEwCAQAABL8BAABMAwEAACYcAExAAAAACwTAAQAATNkAAAAEwQEAAEw2AAAACwTCAQAATAIBAAAEwwEAAEwDAQAACwTEAQAATAIBAAAExQEAAEwDAQAACwTGAQAATAIBAAAExwEAAEwDAQAAJgMATEAAAAAmBwBMAwAAgAsE/wAAAEzZAAAABAABAABMNgAAAAsEAQEAAEwCAQAAvUxMAwEAAAsECAIAAEwCAQAAvU1MAwEAAAsECQIAAEwCAQAAvU5MAwEAAAsECgIAAEwCAQAAvU9MAwEAACYEAExAAAAACwQeAAAATNkAAAAEDwEAAEw2AAAACwQBAQAATAIBAAC/TAMBAAALBOkBAABMAgEAAATqAQAATAMBAAALBBgBAABMAgEAAAQZAQAATAMBAAALBAsCAABMAgEAAAQMAgAATAMBAAALBA0CAABMAgEAAAQOAgAATAMBAAALBA8CAABMAgEAAAQQAgAATAMBAAALBCgBAABMAgEAAAQpAQAATAMBAAALBBECAABMAgEAAAQSAgAATAMBAAALBBMCAABMAgEAAAQUAgAATAMBAAALBBYBAABMAgEAAAQXAQAATAMBAAALBBUCAABMAgEAAAQWAgAATAMBAAALBDwBAABMAgEAAAQ9AQAATAMBAAALBBwBAABMAgEAAAQdAQAATAMBAAALBBcCAABMAgEAAAQYAgAATAMBAAALBBkCAABMAgEAAAQaAgAATAMBAAALBBsCAABMAgEAAAQcAgAATAMBAAALBB0CAABMAgEAAAQeAgAATAMBAAALBB8CAABMAgEAAAQgAgAATAMBAAALBCECAABMAgEAAAQiAgAATAMBAAALBCMCAABMAgEAAAQkAgAATAMBAAALBGIBAABMAgEAAATaAQAATAMBAAAmFQBMQAAAAAsERAEAAEzZAAAABEUBAABMNgAAAAsEAQEAAEwCAQAAv0wDAQAACwQlAgAATAIBAAAEJgIAAEwDAQAACwRSAQAATAIBAAAEUwEAAEwDAQAACwQFAgAATAIBAAAEBgIAAEwDAQAACwRiAQAATAIBAAAEYwEAAEwDAQAAJgUATEAAAAALBGQBAABM2QAAAARlAQAATDYAAAALBAEBAABMAgEAAL9MAwEAAAu9UEwCAQAABGYBAABMAwEAAAu9UUwCAQAABGcBAABMAwEAAAu9UkwCAQAABGgBAABMAwEAAAu9U0wCAQAABGkBAABMAwEAAAu9VEwCAQAABGoBAABMAwEAAAu9VUwCAQAABGsBAABMAwEAAAu9VkwCAQAABGwBAABMAwEAAAu9V0wCAQAABG0BAABMAwEAAAu9WEwCAQAABG4BAABMAwEAAAu9WUwCAQAABG8BAABMAwEAAAu9WkwCAQAABHABAABMAwEAAAu9W0wCAQAABHEBAABMAwEAAAu9XEwCAQAABHIBAABMAwEAAAu9XUwCAQAABHMBAABMAwEAAAu9XkwCAQAABN8BAABMAwEAAAu9X0wCAQAABOABAABMAwEAAAu9YEwCAQAABAcCAABMAwEAAAu9YUwCAQAABOEBAABMAwEAAAu9YkwCAQAABOIBAABMAwEAAAu9Y0wCAQAABOMBAABMAwEAACYVAExAAAAACwR0AQAATNkAAAAEdQEAAEw2AAAACwQBAQAATAIBAAC/TAMBAAALBHYBAABMAgEAAAR3AQAATAMBAAALBHgBAABMAgEAAAR5AQAATAMBAAALBHoBAABMAgEAAAR7AQAATAMBAAALBHwBAABMAgEAAAR9AQAATAMBAAALBH4BAABMAgEAAAR/AQAATAM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A0O3BBjiYAAAAQikCAAALODwCAADQ7Uw9AgAAYgYATD4CAAC7GEw/AgAAuxhiBgCaTEACAABiBABMQQIAACQBAC6kAy0UbCYAdgImKzUACxImSYA6PysmOisOQgYBAAECAQUBApwBA4QJAAEAhgkBADCICQEBMOAIAg1hAQBhAABlAADP7UJFAgAABEYCAAAkAQCzR8dlAABlAADP7UJFAgAABEcCAAAkAQCzR+1CSAIAACQAAEJJAgAAJAAAyAtiAABBSgIAAEFLAgAAQkwCAAC9AL0BMwRNAgAAJAIATE4CAABiAABBSgIAAEFPAgAATFACAABiAABBSgIAAARRAgAAR0xSAgAAYgEAEekDDr9MUwIAACikAzMIIWzQCLddYkQHJC4qP1wvaWRcLyguKikuaHRtbAekAQECAEsAAAAIBgAAAAQH9f///wsACAYAAAADB/X///8BLwABaQABZAABLwALARwCAAAAAAAAAP///38BAAAAAwoMAQMBaAABdAABbQABbAAMAAoOYgYBxgMBCAEEBALEAgmoCQABAN4IAAAA4AgAAUCqCQACAKwJAANArgkABACwCQAFQLIJAAYAtAkABwCuAwIMvAMJALQDBQisAwEM3GUCAARbAgAAnc+dBDgCAACd7YvHZQMAw+3IC89MTgIAAMQEXAIAAO1CSAIAACQAAEJJAgAAJAAATFACAADEBF0CAADtQkgCAAAkAABMXgIAAMQEXwIAAO1CSAIAACQAAExgAgAAxARhAgAA7UJiAgAABGMCAAAkAQBMUgIAAMQEZAIAAO1CSAIAACQAABHpAw6/TFMCAADEBGUCAADtQkgCAAAkAABCSQIAACQAAExmAgAAyQvKxARnAgAA7cEExARoAgAA7cEFZQAAQmkCAADABL4AJAIADsVlAABCagIAAMYkAQBCWwAAAARrAgAAJAEAQ2wCAABlAABCawAAAMYkAQDBBmUAAEI6AgAAwAa+ASQCAMEHxcAHQlsAAAAEawIAACQBAENaAgAAOJgAAABCKQIAAAvFJgEATEECAAAkAQAupANIGgNsIQghj2dngICPCA0wMAAKGiGeSTYmbDowDkIGAQACAgIEBAEyBNoJAAEA3AkAAQD0AQAAQIIJAAEArAkDAbAJBQHgCAEBrgMADM9BbwIAALRHQXACAADH3NBHyN3E7UJFAgAABHECAAAkAQDIZQMAQmkCAADEvgAkAgAppANXCANJF1gACRAcDkIGAQABAgEEAgJxA4YJAAEAngkAAADkCQABAKwJAAD0AQABz0FvAgAAs0dBcAIAAMfPQUoCAABBSwIAAEJMAgAAvQC9ATMETQIAACQCAMjD57Op6BfPQW8CAACzR0FwAgAAQkkCAAAkAADH20JzAgAA3CQBAJboCNvccSYAAEnb3EdCdAIAAMMEMAIAAJ3EnSQBACmkA1sHA0mZj0QnZwckLio/XC9pZFwvKC4qKS5odG1sB6QBAQIASwAAAAgGAAAABAf1////CwAIBgAAAAMH9f///wEvAAFpAAFkAAEvAAsBHAIAAAAAAAAA////fwEAAAADCgwBAwFoAAF0AAFtAAFsAAwACg5CBgEAAQABAwAADgHqCQABAM9CWwAAAAR2AgAAJQEApANnAQMOYgYByAMDBQMGAwCKAQjuCQABAKgJAAEA2gEAAQDcCAEAMN4IAQEw4AgBAjDwCQEDMOQJAQQwtAMFCLwDCQCsAwEMYQQAYQMAYQIAYQEAYQAAZQAABHkCAACd0J0EOAIAAJ3H3GIAAO2LyGUCAGIBAO3JOJgAAABCegIAAGICAAR7AgAA7UIvAgAAJAAAQkwCAAAEfAIAAL8kAgAkAQDKOH0CAABiAwBBfgIAAO3BBDiYAAAAQikCAAALs0x6AgAAYgQATH4CAAAkAQAupANvCU5dJivkUzohKw5iBgHKAwMGAwUEAb0BCf4JAAEAgAoAAQDYCAABAOAJAQAg4AgBAXDiCAECMOQIAQMg5ggBBDDoCAEFMLwDCQC0AwUIrAMBDK4DAgxhBQBhBABhAwBhAgBhAQBhAADRs6ToA7TV22UBAASBAgAAndGdBIICAACdz50EOAIAAJ3ti8dlAgBiAADtyGIBAASDAgAA7cllAwBCOgIAAGICAL4AJAIAymIBAASEAgAA7eezpcEEYgQA6Aw4PAIAANHttJ3qCDg8AgAA0e3BBTiYAAAAQikCAAALODwCAADR7Uw9AgAAYgUATD4CAAC7GEw/AgAAuxhiBQCaTEACAABiAwBMQQIAACQBAC6kA3sRXSaUKzUACxYhSYA6PysmOisOQgYBAAEEAQUBAs4BBYQJAAEAhgkBADCKCgEBMIwKAQIwiAkBAzDgCAENYQMAYQIAYQEAYQAAZQAAz+1CRQIAAARxAgAAJAEAs0fHZQAAz+1CRQIAAASHAgAAJAEAs0fIZQAAz+1CRQIAAARxAgAAJAEAtEfJZQAAZQAAz+1CRQIAAASIAgAAJAEAs0ftQkgCAAAkAABCSQIAACQAAMoLYgAAQUoCAABBSwIAAEJMAgAAvQC9ATMETQIAACQCAExOAgAAYgIAQW8CAACzR0FwAgAATFACAABiAQBBSgIAAARjAgAAR0xSAgAAYgMAEekDDr9MUwIAACikA4ABCj9sbGzQCLdnYkQHHFwvdlwvKC4qKS5odG1sB4gBAQIAPQAAAAgGAAAABAf1////CwABLwABdgABLwALARwCAAAAAAAAAP///38BAAAAAwoMAQMBaAABdAABbQABbAAMAAoOQwYBqAMAAAACBwAyAL4DCgDAAwsAwgMMAMQDDQDGAw4AyAMPAMoDEAAL20zfAAAA3EzgAAAA3UzhAAAA3kziAAAAXgQATOMAAABeBQBM5AAAAF4GAEzlAAAAKKQDlwEJAwghISEhKysr
\ No newline at end of file
diff --git a/cat/js/douban_open.js b/cat/js/douban_open.js
new file mode 100644
index 0000000..8169a20
--- /dev/null
+++ b/cat/js/douban_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1CxBBxkb3ViYW5fb3Blbi5qcyxhc3NldHM6Ly9qcy9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuDENyeXB0bwpkYXlqcwxqaW5qYTIGVXJpAl8OXzB4NGRjMw5fMHg0ODg0El8weDQwYjM4MxJfMHg1Y2UxODkSXzB4M2I5ZWFmEl8weDFmMjM4YhJfMHgyMjVjNTISXzB4MzMzOGZjEl8weDE2N2Y3ZBJfMHg1N2FmNGISXzB4MWRiYTZmEl8weDFkNTI4ZhJfMHgyZDllN2YSXzB4NDIyNjMyEl8weDFlOTYxMxJfMHg1MWIwNmESXzB4NTAwODExEl8weDU1ZTc4MxJfMHgxZTVmY2ESXzB4MmZkYmQ1CHR5cGUOcmVwbGFjZQhzb3J0B8SLBlI6AFQvYXBpL3YyL3NreW5ldC9uZXdfcGxheWxpc3RzP3N1YmplY3RfdHlwZT0UY2hhckNvZGVBdApwcml6ZQ53ZXN0ZXJuSHN1YmplY3RfY29sbGVjdGlvbi90dl9qYXBhbmVzZS9pdGVtcyAvYXBpL3YyL2RvdWxpc3QvEGNyaW1pbmFsDR93nluLTvZOOWUWfwxjaGFyQXRIc3ViamVjdF9jb2xsZWN0aW9uL3R2X2RvbWVzdGljL2l0ZW1zCHB1c2gKa29yZWEIcGF0aAxCYXNlNjQKc2hpZnQIY2VpbBRzaG9ydF9uYW1l0AEmb3Nfcm9tPWFuZHJvaWQmYXBwbGU9YzUyZmJiOTliOTA4YmU0ZDAyNjk1NGNjNDM3NGYxNmQmbW9vbmNha2U9MGY2MDcyNjRmYzYzMThhOTJiOWUxM2M2NWRiN2NkM2Mmc3VnYXI9MBBvZmZpY2lhbBZpbnNwaXJhdGlvbhB2aW9sZW5jZRovcG9zdHM/c3RhcnQ9ci9hcGkvdjIvbW92aWUvY2F0ZWdvcnlfcmFua3M/Y291bnQ9MzAmY2F0ZWdvcnk9cmVjZW50X2hvdBQmY2F0ZWdvcnk9CnRpdGxlggFBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPRBob3JyaWJsZQwmdWRpZD0OZmFudGFzeRZibGFja193aGl0ZQZhbGwOY2FydG9vbjBzdWJqZWN0X2NvbGxlY3Rpb25faXRlbXMYZnJvbUNoYXJDb2RlIGJmN2RkZGM3YzljZmU2ZjcMc3BsaWNlSHN1YmplY3RfY29sbGVjdGlvbi90dl9hbWVyaWNhbi9pdGVtcwxyYW5kb20GZW5jFnRvTG93ZXJDYXNlCnBhcnNlMHdxODZ3NzNDbU1PcEhjT2V3NkhDdXl3PQYweDAMeVpTREtVanJldHVybiAoZnVuY3Rpb24oKSB7fS5jb25zdHJ1Y3RvcigicmV0dXJuIHRoaXMiKSggKSk7IFozdzFCTUtZS2dOYXc2WT0Sc3Vic3RyaW5nBmNyXwomX3RzPQm3UeiVc09HcgphY3Rvcgh1bml4CWhR6JB0XuNOBjB4MgZkbF8IdDI1MAx2YVJNY0UMZG91YmFuCGN1cmUSbGlzdF90eXBlEGRpcmVjdG9yCmxhcmdlDmNvbnRlbnQOc3ViamVjdAxub3JtYWwMZmFtaWx5DHJhdGluZwx4SVVZWnJEJmNvdW50PTMwJnVwZGF0ZWRfYXQ9Jml0ZW1zX29ubHk9MUpzdWJqZWN0X2NvbGxlY3Rpb24vdHZfYW5pbWF0aW9uL2l0ZW1zBjB4M2wvYXBpL3YyL3R2L2NhdGVnb3J5X3JhbmtzP2NvdW50PTMwJmNhdGVnb3J5PXJlY2VudF9ob3QJD1z0izllFn8QamFwYW5lc2UIYXRvYgpub3ZlbDYvYXBpL3YyL3N1YmplY3RfY29sbGVjdGlvbi8QTm53OUFjT08IZGF0YQ5pbmRleE9mICZzY29yZV9yYW5nPTAsMTCfAS8AYQBwAGkALwB2ADIALwBtAG8AdgBpAGUALwB0AGEAZwA/AHMAbwByAHQAPQBVACYAcwB0AGEAcgB0AD0AMAAmAGMAbwB1AG4AdAA9ADMAMAAmAHEAPQBoUeiQYl8PXywAaFHokHt8i1csAGhR6JAwVzpTLABoUeiQdF7jTiYAcwBjAG8AcgBlAF8AcgBhAG4AZwA9ADAALAAxADAACWhR6JAwVzpTCGxnYnQMJl9zaWc9CE4pbmwKdG90YWwGcGljBndhciAmbG9jX2lkPTAmc3RhcnQ9CGUwaEUGMHgxHG1vdmllL2hvdF9nYWlhCnNvcnRzCHRhZ3MWZG9jdW1lbnRhcnkUaGlnaF9zY29yZQpzdHlwZRovaXRlbXM/c3RhcnQ9DFNRamV0UQwmdXVpZD0oc2VsZWN0ZWRfY29sbGVjdGlvbnMH/VanTmdSDmNvbnNvbGWmASBwbGF0Zm9ybS9tb2JpbGUgY29tLmRvdWJhbi5mcm9kby83LjkuMCgyMTYpIFJleHhhci8xLjIuMTUxIHBsYXRmb3JtL21vYmlsZSAxLjIuMTUxZT8AYQByAGUAYQA9AGhR6JAmAHMAbwByAHQAPQByAGUAYwBvAG0AbQBlAG4AZAAmAHAAbABhAHkAYQBiAGwAZQA9ADAAJgBsAG8AYwBfAGkAZAA9ADAAJgBzAHQAYQByAHQAPQAKcGFuaWMMYWN0aW9uEEhtYWNTSEExEHNlbGVjdGVkLi9hcGkvdjIvbW92aWUvdGFnP3NvcnQ9GGxpdGVyYXJ5X2FydBImY291bnQ9MzAIeWVhcj5zdWJqZWN0X2NvbGxlY3Rpb24vdHZfaG90L2l0ZW1zEmNsYXNzaWNhbAxtb3ZpbmcIc2tleRJzdHJpbmdpZnkKeW91dGgKaXRlbXMQL2FwaS92Mi/+ASYmcm9tPWFuZHJvaWQmYXBpa2V5PTBkYWQ1NTFlYzBmODRlZDAyOTA3ZmY1YzQyZThlYzcwJnM9cmV4eGFyX25ldyZjaGFubmVsPVlpbmd5b25nYmFvX01hcmtldCZ0aW1lem9uZT1Bc2lhL1NoYW5naGFpJmRldmljZV9pZD0MZGV2aWNlFGRhcmtfaHVtb3IJ0Z5ygn1e2J4SY292ZXJfdXJsDGNvbWVkeQhHRVQm6gFSZXh4YXItQ29yZS8wLjEuMyBhcGktY2xpZW50LzEgY29tLmRvdWJhbi5mcm9kby83LjkuMCgyMTYpIEFuZHJvaWQvMjggcHJvZHVjdC9YaWFvbWkxMSByb20vYW5kcm9pZCBuZXR3b3JrL3dpZmkgdWRpZC8IY2F0ZRRkYXJrX2hvcnNlvwEvAGEAcABpAC8AdgAyAC8AcwB1AGIAagBlAGMAdABfAGMAbwBsAGwAZQBjAHQAaQBvAG4ALwBtAG8AdgBpAGUAXwB0AG8AcAAyADUAMAAvAGkAdABlAG0AcwA/AGEAcgBlAGEAPQBoUeiQJgBzAG8AcgB0AD0AcgBlAGMAbwBtAG0AZQBuAGQAJgBwAGwAYQB5AGEAYgBsAGUAPQAwACYAbABvAGMAXwBpAGQAPQAwACYAcwB0AGEAcgB0AD0AIHc0dkN0OEtEd296Q2xnPT0HNXXGiWdSCDB4MWEwaHR0cHM6Ly9mcm9kby5kb3ViYW4uY29temFiYWNkZWZnaGprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkSXzB4MzZiM2Q2El8weDRkYzMwOBJfMHg0ODg0ZDMSXzB4YTcxZDRkEl8weDIwNGQyZhJfMHgzNTQyZGYSXzB4MmMyOTUyEl8weDJlMWRkORJfMHg2MjgyNTQIMHg4YwRpZAgweDQ1CDB4NWMIMHg4MQgweDE0CDB4NGQIMHg2MiRlbmNvZGVVUklDb21wb25lbnQIMHg3YwImBjB4NggweDdkCDB4NTgIMHgzNQgweDExEl8weGNlYWJjZhJfMHgzZjBiNGISXzB4MzY5Nzg1BnJlcQR1YRRVc2VyLUFnZW50DmhlYWRlcnMGMHg4CDB4MWYSXzB4MzkxYTBhEl8weDI3M2FlYhJfMHg0NjAwMjISXzB4NDcwMzA2El8weDIzZDkwMRJfMHgyY2Y1NjgSXzB4ZmM4MzIyEl8weDVkOTU2ORJfMHgxYTcwYzQIMHg1NwgweDQyBjB4OQgweDY4GHc3N0R2c085d3E5VggweDJlBjB4ZQgweDI3CDltVkEIMHgxNggweDNiCDB4M2MIMHgzNgYweDQIdzcxZgYweGEISGdNMwgweDQ4BmxvZwgweDVkCmxvY2FsCDB4NTQIMHg3YQ5pc0VtcHR5BjB4NwgweDYzCDB4NDkIMHg2NBJfMHg2YjgwNWMIMHg3OQgweDdlEl8weDE2M2Q5OBJfMHgxOTdjNDcSXzB4M2ZiYWI4El8weDNkNjVlZBJfMHg1OTI2ZTAIMHgyYgYweGIIMHgyNAgweDE5CDB4NDQSXzB4MmM0MjNhEl8weDEwMDg4OQYweGQMd2luZG93EF8weDNjZjYwEl8weDI1ZTcxOBJfMHgyNGVjY2USXzB4MjEwOWMwEl8weDIyNGYwNxJfMHgzN2Y5YjASXzB4NTM3ZTA3CDB4NmMIMHg3NwgweDhhCDB4MzASXzB4MWRkN2FjEl8weDFmMzY5ZBJfMHgyYWM4ZjMSXzB4NGM3ZTcxEl8weDQzMGM5YxJfMHg0NWQwYzcSXzB4MTQ2YmQ0El8weDIxMmQyYxJfMHgzOTFiODUSXzB4NWQwNTVmEl8weDM0MjI1ZQIlBDAwCDB4ODMKc2xpY2UkZGVjb2RlVVJJQ29tcG9uZW50CDB4NzASXzB4NTBkMjUyEl8weDU3ZjI4OBJfMHg0NjlkMmYSXzB4MTNmNDM2El8weDNhZTFhYxJfMHgzOTgzNTYSXzB4NDM1MTc3El8weDIxZjdlMhJfMHg1MTJlYjQSXzB4MjY5MmZiEl8weDM3ZjdjOBJfMHgxZTY5OWUSXzB4MWFhNjE2BHt9CDB4MzICdQZrZXkIaW5pdAU1dXFfAm4IMHgzZAJ2CDB4NjkIMHg1MwgweDQ3CDB4NzgFjn9nUgXlZWdSCDB4NzMF6ZdnUkRzdWJqZWN0X2NvbGxlY3Rpb24vdHZfa29yZWFuL2l0ZW1zBahSK28IMHgyNgX8fnqCQnN1YmplY3RfY29sbGVjdGlvbi9zaG93X2hvdC9pdGVtcwR0MQgweDZhBWhR6JAKbW92aWUEdHYIMHg4ZglGjON0R3JVUwgweDgyBb58CZAIMHg0ZQXPfnhRCDB4NTUFt4NWWQgweDcxBdiaBlIIMHg0MQWcaVVTFG1vdmllX2xpc3QIMHgxMggweDY2BTtOmJgKdG9waWMF/FsUbwgweDFkBRRvWFQIMHgxMwX7fBdSDHNlcmllcwgweDY1BU5T7YsOY2hpbmVzZQUna45/CDB4NzIF5WUsZwgweDJhBemX/VYIMHg3YgWcVWdSCDB4NjEFqFJcTwgweDRjBTFyxWAIbG92ZQXReXteHnNjaWVuY2VfZmljdGlvbgWoUjt1CDB4OTAFrGCRdQ5teXN0ZXJ5BcpgmmAIMHg0YgVQYBZgCDB4OGIFr3JqfwgweDc1BQxUJ2AIMHgzNAUYYolOCDB4MzkFR1l7XggweDhkBcVgcoIOZXJvdGljYQXzl1BOCm11c2ljB6p+VV9HcggweDQwBbtsCGEIMHgxYgV6gi9nBmFydAgweDVmCDB4NWUFUpclZggweDU5BXNZJ2AMZmVtYWxlCDB4NzYUcmVhbF9ldmVudAW0ZptSCDB4ODUF0Z59dggweDhlBY5/35gIZm9vZAXFZUyIDHRyYXZlbAU/UeV6CmNoaWxkBbpOJ2AQaHVtYW5pdHkFtlutXggweDIyBYdleoIIMHg1MAgweDI5CDB4MmMFH2G6TggweDU2BbFS118IMHg4NAR0NAgweDNmBXlycoIIMHgyZgV0XuNOCDB4NTIGMHhjCDB4M2UIMHg2Ygh0ZXh0BHQyDnR5cGVfaWQF7XCtZBJ0eXBlX25hbWUFR3KTXggweDE4DFRvcDI1MAR0MwpyYXRpbwVHclVTDmZpbHRlcnMSXzB4M2NmZDdlEl8weDI4MDAxYRJfMHgxNzM2OGQSXzB4MWMyOTM5El8weDIyOTg0NhJfMHgxNGY5YmISXzB4ODBjOTg0El8weDU5NmEzZBJfMHgyYWY4YzgSXzB4NDkxMDRmEl8weDUyNDNkORJfMHgxNDZmZDQQXzB4YzFiNjkQXzB4NTU3NzcSXzB4MzJiZmQzEl8weDQyMjFlNRJfMHgxZjlmODESXzB4MWY2MjRiEl8weDEwODIzNRJfMHg0NWQ5N2USXzB4MmM0ZGY3El8weDQ5ZjE5MhJfMHg1ZDU3MmISXzB4ZDEzN2VmEl8weDI5NjEzORJfMHgzMDk3ZDASXzB4NTFmM2IzEl8weGI2MzBkORJfMHgzNTQ2YTESXzB4M2NkOWRmEl8weDI3ZTc3MRJfMHg0NmJmNTISXzB4MWFiZjgyEl8weDU5MDYxNxJfMHgzMWM1MGYSXzB4Y2E3NGY4El8weDQ3NWFkMxJfMHg1Yjc2NTISXzB4MjFjNjA5El8weGU2NGQ5NwgweDViCDB4NGEIMHg1MQgweDVhCDB4MjMMdm9kX2lkCDB4ODkQdm9kX25hbWUIMHgzOAgweDFlDnZvZF9waWMWdm9kX3JlbWFya3MQcGFyc2VJbnQIcGFnZQgweDM3EnBhZ2Vjb3VudAhsaXN0CDB4NjcIMHg0ZggweDZkAlUOJnN0YXJ0PRgmY291bnQ9MzAmcT0FYl8PXwloUeiQYl8PXwIsBXt8i1cJaFHokHt8i1cFMFc6UwgweDMzCDB4MTUIMHgzMQgweDZlCDB4N2YIMHg4NwgweDQ2CDB4MTAIMHg4MAgweDYwCDB4MjgIMHg2ZggweDg4CDB4M2Egb2ZmaWNpYWxfZG91bGlzdAgweDFjCDB4MTcUc3RhcnRzV2l0aAgweDJkBjB4ZggweDQzCDB4MjUIMHg3NAgweDg2CDB4MjAIMHgyMRJfMHg1YzVkZmUSXzB4MzI4OTZhEl8weDQyOWFiMhJfMHgyZjBjYzQSXzB4Mzc4ODljEl8weDVhMGVmYxJfMHgxMjU1M2MSXzB4Y2VjNTA4El8weDUwYjJmNhJfMHg0MjUwNGUSXzB4YmFkMDM2El8weDUxYzVmYhJfMHg0OGJiN2ISXzB4ZGQzYzBjEl8weDU4ZDExZBJfMHhmZTQzNmQGMHg1CGhvbWUOaG9tZVZvZBBjYXRlZ29yeQxkZXRhaWwIcGxheQxzZWFyY2gPpAMBpgMBABmoAwAFAKoDAAGsAwACrgMAA7ADAASyAwAOAAYBoAEAAAAgGg6SCwCqAwAMrAMBDK4DAgywAwMMsgMEDLQDAA22AwENuAMCCboDAwm8AwQJvgMFCcADBgnCAwcBxAMIAcYDCQHIAwoBygMLAcwDDAHOAw0B0AMOAdIDDwHUAxAB1gMRAdgDEg3aAxMBqAMUAQjoPr4CXwwAvgNfDQC+BF8PAL4FXxAAvgZfEQC+B18SAL4IXxMAvglfFAC+Cl8VAL4LXxYAvgxfGAC+DV8ZACkE7gAAAAQ2AAAABO8AAAAE8AAAAATxAAAABPIAAAAE8wAAAAT0AAAABPUAAAAE9gAAAAT3AAAABPgAAAAE+QAAAAT6AAAABPsAAAAE/AAAAAQwAAAABP0AAAAE/gAAAAT/AAAABAABAAAEAQEAAAQCAQAABAMBAAAEBAEAAAQ3AAAABAUBAAAEBgEAAAQHAQAABAgBAAAECQEAAAQKAQAAJiAABAsBAABMIAAAgAQMAQAATCEAAIAEDQEAAEwiAACABA4BAABMIwAAgAQPAQAATCQAAIAEEAEAAEwlAACABBEBAABMJgAAgAQSAQAATCcAAIAEEwEAAEwoAACABBQBAABMKQAAgAQVAQAATCoAAIAEFgEAAEwrAACABBcBAABMLAAAgAQYAQAATC0AAIAEGQEAAEwuAACABBoBAABMLwAAgAQbAQAATDAAAIAEHAEAAEwxAACABB0BAABMMgAAgARAAAAATDMAAIAEHgEAAEw0AACABB8BAABMNQAAgAQgAQAATDYAAIAEIQEAAEw3AACABCIBAABMOAAAgAQjAQAATDkAAIAEJAEAAEw6AACABCUBAABMOwAAgAQmAQAATDwAAIAEJwEAAEw9AACABCgBAABMPgAAgAQpAQAATD8AAIAEKgEAAExAAACABCsBAABMQQAAgAQsAQAATEIAAIAELQEAAExDAACABC4BAABMRAAAgAQvAQAATEUAAIAEMAEAAExGAACABDEBAABMRwAAgAQyAQAATEgAAIAEMwEAAExJAACABDQBAABMSgAAgAQ1AQAATEsAAIAENgEAAExMAACABDcBAABMTQAAgAQ4AQAATE4AAIAEOQEAAExPAACABDoBAABMUAAAgAQ7AQAATFEAAIAEPAEAAExSAACABD0BAABMUwAAgAQ+AQAATFQAAIAEPwEAAExVAACABEABAABMVgAAgARBAQAATFcAAIAEQgEAAExYAACABEMBAABMWQAAgAREAQAATFoAAIAERQEAAExbAACABEYBAABMXAAAgARHAQAATF0AAIAESAEAAExeAACABEkBAABMXwAAgARKAQAATGAAAIAESwEAAExhAACABEwBAABMYgAAgARNAQAATGMAAIAETgEAAExkAACABE8BAABMZQAAgARQAQAATGYAAIAEUQEAAExnAACABFIBAABMaAAAgARTAQAATGkAAIAEVAEAAExqAACABFUBAABMawAAgARWAQAATGwAAIAEVwEAAExtAACABFgBAABMbgAAgARZAQAATG8AAIAEWgEAAExwAACABFsBAABMcQAAgARcAQAATHIAAIAEXQEAAExzAACABF4BAABMdAAAgARfAQAATHUAAIAEYAEAAEx2AACABGEBAABMdwAAgARiAQAATHgAAIAEYwEAAEx5AACABGQBAABMegAAgARBAAAATHsAAIAEZQEAAEx8AACABGYBAABMfQAAgARnAQAATH4AAIAEaAEAAEx/AACABGkBAABMgAAAgARqAQAATIEAAIAEawEAAEyCAACABGwBAABMgwAAgARtAQAATIQAAIAEbgEAAEyFAACABG8BAABMhgAAgARwAQAATIcAAIAEcQEAAEyIAACABHIBAABMiQAAgARzAQAATIoAAIAEQgAAAEyLAACABHQBAABMjAAAgAR1AQAATI0AAIAEdgEAAEyOAACABHcBAABMjwAAgAR4AQAATJAAAIBfBQC+AGUFALxJAe4OvgFN2wAAAF8GAGUGAAR5AQAA7V8HAAR6AQAAXwgAC18JAL9fCgCzXwsAtJZfDgAEewEAAF8XACmkAwEEAQBAAg5DBgEAAgECAgABEwP4BQABQPoFAAEA/AUBADBhAAC+AE1+AQAAx2IAANCP2O0ppAMBAA5DBgEAAQABBAEAHQH+BQABAPg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
\ No newline at end of file
diff --git a/cat/js/doubanbb.js b/cat/js/doubanbb.js
new file mode 100644
index 0000000..5e27681
--- /dev/null
+++ b/cat/js/doubanbb.js
@@ -0,0 +1 @@
+//bbQ0FUT1CgAhJkb3ViYW4uanMYLi9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuDENyeXB0bwxqaW5qYTIIbG9hZAJfBmtleQZ1cmwOc2l0ZUtleRBzaXRlVHlwZQxvbGR0aWQEVUEOcmVxdWVzdAhpbml0EmdldGZpbHRlcghob21lDmhvbWVWb2QQY2F0ZWdvcnkMZGV0YWlsGGJhc2U2NEVuY29kZRhiYXNlNjREZWNvZGUIcGxheQxzZWFyY2gMZG91YmFuRGh0dHBzOi8vbS5kb3ViYW4uY29tL3JleHhhci9hcGkvdjKWAk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTNfMl8zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xMy4wLjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEMcmVxVXJsDmFnZW50U3AGcmVzBnJlcQxtZXRob2QUVXNlci1BZ2VudChodHRwczovL20uZG91YmFuLmNvbQ5SZWZlcmVyDmhlYWRlcnMOY29udGVudAZjZmcIc2tleQpzdHlwZQZzdHIEc3AIbGlzdAxmaWx0ZXIGdmxhAnMCKw5pbmRleE9mAj0IcHVzaAJuAnYOZmlsdGVycw5jbGFzc2VzFGZpbmRfbW92aWUOdHlwZV9pZAd+YjV1cV8SdHlwZV9uYW1lDmZpbmRfdHYHfmI1dcaJEmhvdF9tb3ZpZQntcOiVNXVxXwxob3RfdHYJ7XDolTV1xokGYWxsB3FfxomTXgVHclVTGG1vdmllX3RvcDI1MBE1dXFfVABPAFAAMgA1ADAALG1vdmllX3JlYWxfdGltZV9ob3Rlc3QLnlv2ZTV1cV+caSZ0dl9yZWFsX3RpbWVfaG90ZXN0C55b9mU1dcaJnGkibW92aWVfd2Vla2x5X2Jlc3QLNXVxX+NTkXicadUBe3yLVysA7XDolT0A7XDolSsATlPtiz0ATlPtiysAJ2uOfz0AJ2uOfysA6Zf9Vj0A6Zf9VisA5WUsZz0A5WUsZysAAGewZT0AAGewZSsAz354UT0Az354USsARozjdNiaBlI9AEaM43TYmgZSKwC3UeiVc09Hcj0At1HolXNPR3IrAN2L7Ys9AN2L7YsrAKhSXE89AKhSXE8rAJxVZ1I9AJxVZ1IrADFyxWA9ADFyxWArANF5e149ANF5e14rAKxgkXU9AKxgkXUrAFBgFmA9AFBgFmA/kmOPXisA7XCmXj0AcgBlAGMAbwBtAG0AZQBuAGQAKwD2ZfSVPQB0AGkAbQBlACsAxIv3Tj0AcgBhAG4AawCNAXt8i1crAO1w6JU9AO1w6JUrAP1Wp05nUj0A/VanTmdSKwCOf2dSPQCOf2dSKwDxgmdSPQDxgmdSKwDpl2dSPQDpl2dSKwDlZWdSPQDlZWdSKwAvbmdSPQAvbmdSKwDlZSxnqFI7dT0A5WUsZ6hSO3UrAPx+eoI9APx+eoIrAKp+VV9Hcj0Aqn5VX0dyZWhR6JBiXw9fKwBoUeiQYl8PXz0AKwA1dXFfPQA1dXFfKwA1dcaJZ1I9ADV1xolnUisA/H56gj0A/H56gisAqFIrbz0AqFIrbysAqn5VX0dyPQCqflVfR3IrAO13R3I9AO13R3LFAmhR6JAwVzpTKwBoUeiQMFc6Uz0AKwAtTv1WJ1lGlj0ALU79VidZRpYrAI5//VY9AI5//VYrAC1O/VaZmS9uPQAtTv1WmZkvbisALU79VvBTfm49AC1O/VbwU35uKwDlZSxnPQDlZSxnKwDpl/1WPQDpl/1WKwDxgv1WPQDxgv1WKwDVbP1WPQDVbP1WKwC3X/1WPQC3X/1WKwAPYSdZKVI9AA9hJ1kpUisAf4ntc1lyPQB/ie1zWXIrAHBTpl49AHBTpl4rAPBs/VY9APBs/VYrAMRPV3+vZT0AxE9Xf69lKwAKTxdnPQAKTxdnKwCgUv9iJ1k9AKBS/2InWSsAs28nWSlSmk49ALNvJ1kpUppOKwAxchRccFE9ADFyFFxwUSsAXnR4UT0AXnR4USsA9F1/iT0A9F1/iSsAOU6mnj0AOU6mnp0CaFHokHt8i1crAGhR6JB7fItXPQArAGdSxWA9AGdSxWArAJxVZ1I9AJxVZ1IrAKhSXE89AKhSXE8rADFyxWA9ADFyxWArANF5e149ANF5e14rAKhSO3U9AKhSO3UrAKxgkXU9AKxgkXUrAMpgmmA9AMpgmmArAFBgFmA9AFBgFmArAK9yan89AK9yan8rAAxUJ2A9AAxUJ2ArAPOXUE49APOXUE4rAExrHoI9AExrHoIrACBPsIs9ACBPsIsrAIZT8lM9AIZT8lMrABhiiU49ABhiiU4rAH+J6JA9AH+J6JArAEdZe149AEdZe14rAJJRaZY9AJJRaZYrAH5wvpY9AH5wvpYrAGZroE89AGZroE8rAMVgcoI9AMVgcoKhAmhR6JB0XuNOKwBoUeiQdF7jTj0AKwAyADAAMgA0AD0AMgAwADIANAArADIAMAAyADMAPQAyADAAMgAzACsAMgAwADIAMgA9ADIAMAAyADIAKwAyADAAMgAxAD0AMgAwADIAMQArADIAMAAyADAAPQAyADAAMgAwACsAMgAwADEAOQA9ADIAMAAxADkAKwAyADAAMQAwAHRe4049ADIAMAAxADAAdF7jTisAMgAwADAAMAB0XuNOPQAyADAAMAAwAHRe404rADkAMAB0XuNOPQA5ADAAdF7jTisAOAAwAHRe4049ADgAMAB0XuNOKwA3ADAAdF7jTj0ANwAwAHRe404rADYAMAB0XuNOPQA2ADAAdF7jTisA9GbpZT0A9GbpZc0BaFHokHlycoIrAGhR6JB5cnKCPQArAM9+eFE9AM9+eFErAFKXJWY9AFKXJWYrAIdleoI9AIdleoIrAB5kEXs9AB5kEXsrALFS1189ALFS118rAFSbe149AFSbe14rAB9huk49AB9huk4rAHNZJ2A9AHNZJ2ArANGeLl49ANGeLl4rALtsCGE9ALtsCGErAI5/35g9AI5/35grAJdbWWU9AJdbWWUrAA9c9Is5ZRZ/PQAPXPSLOWUWfysAhY2nfvGCxJY9AIWNp37xgsSWMZJjj14rANiepIuSY49ePQBVACsA7XCmXj0AVAArAMSLBlI9AFMAKwD2ZfSVPQBSAAV7fItXBWhR6JAQb2ZmaWNpYWwQc2VsZWN0ZWQFvnwJkBJjbGFzc2ljYWwFz354UQpwcml6ZQW3g1ZZFGhpZ2hfc2NvcmUF2JoGUhRtb3ZpZV9saXN0BZxpVVMUZGFya19ob3JzZQm3UeiVc09Hcgp0b3BpYwU7TpiYEGRpcmVjdG9yBfxbFG8KYWN0b3IFFG9YVAxzZXJpZXMF+3wXUg5jaGluZXNlBU5T7YsOd2VzdGVybgUna45/EGphcGFuZXNlBeVlLGcKa29yZWEF6Zf9Vgxjb21lZHkFnFVnUgxhY3Rpb24FqFJcTwhsb3ZlBTFyxWAec2NpZW5jZV9maWN0aW9uBdF5e14OY2FydG9vbgWoUjt1Dm15c3RlcnkFrGCRdQpwYW5pYwXKYJpgEGhvcnJpYmxlBVBgFmAQY3JpbWluYWwFr3JqfwhsZ2J0BQxUJ2AGd2FyBRhiiU4OZmFudGFzeQVHWXteDmVyb3RpY2EFxWByggptdXNpYwXzl1BOFmRvY3VtZW50YXJ5B6p+VV9HcghjdXJlBbtsCGEGYXJ0BXqCL2cUZGFya19odW1vcgnRnnKCfV7Yngp5b3V0aAVSlyVmDGZlbWFsZQVzWSdgFHJlYWxfZXZlbnQNH3eeW4tO9k45ZRZ/EHZpb2xlbmNlBbRmm1IWYmxhY2tfd2hpdGUF0Z59dghmb29kBY5/35gMdHJhdmVsBcVlTIgKY2hpbGQFP1HlehBodW1hbml0eQW6TidgDGZhbWlseQW2W61eGGxpdGVyYXJ5X2FydAWHZXqCCm5vdmVsCQ9c9Is5ZRZ/DG1vdmluZwUfYbpOFmluc3BpcmF0aW9uBbFS118Sc3RyaW5naWZ5CGRhdGEMdmlkZW9zCnBhcnNlogEvc3ViamVjdF9jb2xsZWN0aW9uL3N1YmplY3RfcmVhbF90aW1lX2hvdGVzdC9pdGVtcz8mc3RhcnQ9MCZjb3VudD0zMCZpdGVtc19vbmx5PTAGbWFwMHN1YmplY3RfY29sbGVjdGlvbl9pdGVtcwhwYWdlEnBhZ2Vjb3VudApsaW1pdAp0b3RhbAppdGVtcQhpdGVtBnZvZAh0eXBlAi8EaWQMdm9kX2lkCnRpdGxlEHZvZF9uYW1lDHJhdGluZxZ2b2RfcmVtYXJrcxxoYXNPd25Qcm9wZXJ0eQZwaWMMbm9ybWFsDnZvZF9waWMSY292ZXJfdXJsCmNvdmVyEGJnX2ltYWdlBnRpZARwZwxleHRlbmQKY291bnQIdXJscw5jaGFydGlkDmNvbnNvbGUGbG9n8gFodHRwczovL20uZG91YmFuLmNvbS9yZXh4YXIvYXBpL3YyL3NreW5ldC9uZXdfcGxheWxpc3RzPyZjYXRlZ29yeT17e2V4dC5jYXRlZ29yeX19JnN1YmplY3RfdHlwZT0mc3RhcnQ9e3tjb3VudH19JmNvdW50PTEwBmV4dAppdGVtcxBwYXJzZUludMMCaAB0AHQAcABzADoALwAvAG0ALgBkAG8AdQBiAGEAbgAuAGMAbwBtAC8AcgBlAHgAeABhAHIALwBhAHAAaQAvAHYAMgAvAG0AbwB2AGkAZQAvAHQAYQBnAD8AJgBxAD0AewB7AGUAeAB0AC4AaFHokGJfD199AH0ALAB7AHsAZQB4AHQALgBoUeiQMFc6U30AfQAsAHsAewBlAHgAdAAuAGhR6JB7fItXfQB9ACwAewB7AGUAeAB0AC4AaFHokHRe4059AH0ALAB7AHsAZQB4AHQALgBoUeiQeXJygn0AfQAmAHMAdABhAHIAdAA9AHsAewBjAG8AdQBuAHQAfQB9ACYAcwBvAHIAdAA9AHsAewBlAHgAdAAuAJJjj159AH0AJgBzAGMAbwByAGUAXwByAGEAbgBnAGUAPQAwACwAMQAwAO8BaAB0AHQAcABzADoALwAvAG0AbwB2AGkAZQAuAGQAbwB1AGIAYQBuAC4AYwBvAG0ALwBqAC8AcwBlAGEAcgBjAGgAXwBzAHUAYgBqAGUAYwB0AHMAPwB0AHkAcABlAD0AbQBvAHYAaQBlACYAdABhAGcAPQB7AHsAZQB4AHQALgB7fItXfQB9ACYAcwBvAHIAdAA9AHsAewBlAHgAdAAuAJJjj159AH0AJgBwAGEAZwBlAF8AbABpAG0AaQB0AD0AMgAwACYAcABhAGcAZQBfAHMAdABhAHIAdAA9AHsAewBjAG8AdQBuAHQAfQB9ABBzdWJqZWN0c+kBaAB0AHQAcABzADoALwAvAG0AbwB2AGkAZQAuAGQAbwB1AGIAYQBuAC4AYwBvAG0ALwBqAC8AcwBlAGEAcgBjAGgAXwBzAHUAYgBqAGUAYwB0AHMAPwB0AHkAcABlAD0AdAB2ACYAdABhAGcAPQB7AHsAZQB4AHQALgB7fItXfQB9ACYAcwBvAHIAdAA9AHsAewBlAHgAdAAuAJJjj159AH0AJgBwAGEAZwBlAF8AbABpAG0AaQB0AD0AMgAwACYAcABhAGcAZQBfAHMAdABhAHIAdAA9AHsAewBjAG8AdQBuAHQAfQB9AHwvbW92aWUvcmVjb21tZW5kP3RhZ3M9JnJlZnJlc2g9MCZzZWxlY3RlZF9jYXRlZ29yaWVzPXt9JnN0YXJ0PRImY291bnQ9MTB2L3R2L3JlY29tbWVuZD90YWdzPSZyZWZyZXNoPTAmc2VsZWN0ZWRfY2F0ZWdvcmllcz17fSZ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ATAQBAAALBCgBAABMBQEAAAQUAQAATAQBAAALBCkBAABMBQEAAAQqAQAATAQBAAALBCsBAABMBQEAAAQsAQAATAQBAAALBC0BAABMBQEAAAQuAQAATAQBAAALBC8BAABMBQEAAAQwAQAATAQBAAALBDEBAABMBQEAAAQyAQAATAQBAAALBDMBAABMBQEAAAQ0AQAATAQBAAALBDUBAABMBQEAAAQ2AQAATAQBAAALBDcBAABMBQEAAAQ4AQAATAQBAAALBDkBAABMBQEAAAQ6AQAATAQBAAALBDsBAABMBQEAAAQ8AQAATAQBAAALBD0BAABMBQEAAAQ+AQAATAQBAAALBD8BAABMBQEAAARAAQAATAQBAAALBEEBAABMBQEAAARCAQAATAQBAAALBEMBAABMBQEAAAREAQAATAQBAAALBEUBAABMBQEAAARGAQAATAQBAAALBEcBAABMBQEAAARIAQAATAQBAAALBEkBAABMBQEAAARKAQAATAQBAAALBEsBAABMBQEAAARMAQAATAQBAAALBE0BAABMBQEAAAROAQAATAQBAAALBE8BAABMBQEAAARQAQAATAQBAAALBFEBAABMBQEAAARSAQAATAQBAAALBFMBAABMBQEAAARUAQAATAQBAAALBFUBAABMBQEAAARWAQAATAQBAAALBFcBAABMBQEAAARYAQAATAQBAAALBFkBAABMBQEAAARaAQAATAQBAAALBFsBAABMBQEAAARcAQAATAQBAAALBF0BAABMBQEAAAReAQAATAQBAAALBF8BAABMBQEAAARgAQAATAQBAAALBGEBAABMBQEAAARiAQAATAQBAAALBGMBAABMBQEAAARkAQAATAQBAAAmIAALBGUBAABMBQEAAARmAQAATAQBAABMIAAAgAsEZwEAAEwFAQAABGgBAABMBAEAAEwhAACACwRpAQAATAUBAAAEagEAAEwEAQAATCIAAIALBGsBAABMBQEAAARsAQAATAQBAABMIwAAgAsEbQEAAEwFAQAABG4BAABMBAEAAEwkAACACwRvAQAATAUBAAAEcAEAAEwEAQAATCUAAIALBHEBAABMBQEAAARyAQAATAQBAABMJgAAgAsEcwEAAEwFAQAABHQBAABMBAEAAEwnAACACwR1AQAATAUBAAAEdgEAAEwEAQAATCgAAIALBHcBAAB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
\ No newline at end of file
diff --git a/cat/js/douyu_open.js b/cat/js/douyu_open.js
new file mode 100644
index 0000000..0af289b
--- /dev/null
+++ b/cat/js/douyu_open.js
@@ -0,0 +1,233 @@
+import { _ } from 'assets://js/lib/cat.js';
+
+let host = '';
+let customArea = '';
+let dataFrom = 'official';
+let isJustLive = false;
+let siteKey = '';
+let siteType = 0;
+
+const MOBILE_UA = 'Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36';
+
+async function requestRaw(reqUrl, method) {
+ let resRaw = await req(reqUrl, {
+ method: method || 'get',
+ headers: {
+ 'User-Agent': MOBILE_UA,
+ },
+ });
+ return resRaw;
+}
+
+async function request(reqUrl) {
+ let resRaw = await requestRaw(reqUrl)
+ return resRaw.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+ if (cfg.hasOwnProperty('ext')) {
+ if (cfg.ext.hasOwnProperty('custom')) {
+ customArea = cfg.ext.custom;
+ }
+ if (cfg.ext.hasOwnProperty('from')) {
+ dataFrom = cfg.ext.from;
+ }
+ }
+ if (dataFrom == 'justlive') {
+ host = 'http://live.yj1211.work';
+ isJustLive = true;
+ } else {
+ host = 'https://m.douyu.com';
+ }
+}
+
+async function home(filter) {
+ let classes = [{"type_id":"PCgame","type_name":"网游竞技"},{"type_id":"syxx","type_name":"手游休闲"},{"type_id":"djry","type_name":"单机热游"},{"type_id":"kjwh","type_name":"科技文化"},{"type_id":"yl","type_name":"娱乐天地"},{"type_id":"yp","type_name":"语音互动"},{"type_id":"voice","type_name":"语音直播"}];
+ let filterObj = {
+ "PCgame":[{"key":"cateId","name":"分类","init":"LOL","value":[{"n":"英雄联盟","v":"LOL"},{"n":"热门游戏","v":"rmyx"},{"n":"穿越火线","v":"CF"},{"n":"重生边缘","v":"CSBYOL"},{"n":"无畏契约","v":"VALORANT"},{"n":"CFHD","v":"CFHD"},{"n":"命运方舟","v":"LostArk"},{"n":"DNF","v":"DNF"},{"n":"DOTA2","v":"DOTA2"},{"n":"使命召唤","v":"COD"},{"n":"炉石传说","v":"How"},{"n":"CS2","v":"CounterStrike"},{"n":"lol云顶之弈","v":"ydzhy"},{"n":"魔兽争霸","v":"mszb"},{"n":"魔兽怀旧服","v":"wowclassic"},{"n":"自走棋","v":"dota2rpg"},{"n":"传奇","v":"cq"},{"n":"跑跑卡丁车","v":"Popkart"},{"n":"网易游戏","v":"wyyx"},{"n":"星际争霸","v":"SC"},{"n":"守望先锋","v":"Overwatch"},{"n":"DOTA","v":"DOTA"},{"n":"魔兽世界","v":"WOW"},{"n":"剑网3","v":"JX3"},{"n":"我的世界","v":"MC"},{"n":"超激斗梦境","v":"cjdmj"},{"n":"冒险岛","v":"mxd"},{"n":"三国杀","v":"sanguosha"},{"n":"梦幻西游","v":"MHXYOL"},{"n":"天涯明月刀","v":"tianya"},{"n":"街头篮球","v":"jtlq"},{"n":"NBA2KOL2","v":"NBA2KOL2"},{"n":"QQ飞车端游","v":"qqfcdy"},{"n":"军事游戏","v":"jsyx"},{"n":"棋牌娱乐","v":"qipai"},{"n":"FC ONLINE","v":"FCOL"},{"n":"热门网游","v":"rmwy"},{"n":"卡拉彼丘","v":"klbq"},{"n":"诛仙世界","v":"zxsj"},{"n":"APEX","v":"APEX"},{"n":"流放之路POE","v":"PathofExile"},{"n":"剑网3缘起","v":"JW3YQ"},{"n":"逆水寒","v":"nsh"},{"n":"风暴英雄","v":"HOTS"},{"n":"逆战","v":"NZ"},{"n":"坦克世界","v":"TKSJ"},{"n":"战舰世界","v":"wfws"},{"n":"反恐精英Online","v":"CS"},{"n":"暗黑破坏神","v":"DIABLO"},{"n":"梦三国2","v":"msg2"},{"n":"传奇世界","v":"cqsj"},{"n":"方舟:生存进化","v":"fzscjh"},{"n":"神武4电脑版","v":"swdnb"},{"n":"群雄逐鹿","v":"qxzl"},{"n":"堡垒之夜","v":"blzy"},{"n":"无限法则","v":"roe"},{"n":"问道电脑版","v":"wddnb"},{"n":"西山居游戏","v":"Seasun"},{"n":"最终幻想14","v":"FF14"},{"n":"战意","v":"WYZY"},{"n":"剑灵","v":"BladeSoul"},{"n":"星际战甲","v":"Warframe"},{"n":"龙之谷","v":"DragonNest"},{"n":"铁甲雄兵","v":"tjxb"},{"n":"古剑奇谭网络版","v":"gjqtwlb"},{"n":"轩辕传奇","v":"XYCQ"},{"n":"神途","v":"shentu"},{"n":"激战2","v":"GuildWars2"},{"n":"高达文化区","v":"gdyxq"},{"n":"忍者村大战2","v":"rzcdz2"},{"n":"RPG网游专区","v":"rpgwyzq"},{"n":"诛仙3","v":"zhuxian3"},{"n":"笑傲江湖OL","v":"xajhol"},{"n":"冒险岛2","v":"MXD2"},{"n":"超击突破","v":"SuperPeople"},{"n":"无尽战区","v":"WJZQ"},{"n":"永恒之塔","v":"AION"},{"n":"竞速游戏","v":"jingsu"},{"n":"FPS综合网游","v":"FPSOL"},{"n":"劲舞团","v":"jwt"},{"n":"天下","v":"tianxai"},{"n":"火箭联盟","v":"hjlm"},{"n":"泡泡堂","v":"ppt"},{"n":"音乐游戏","v":"MG"},{"n":"新倩女幽魂","v":"ONLINE"},{"n":"天谕","v":"tianyu"},{"n":"QQ炫舞","v":"qqxw"},{"n":"大唐无双","v":"dtws"},{"n":"怪物猎人ol","v":"MHol"},{"n":"手工星球","v":"sgxq"},{"n":"热血传奇:本源","v":"rxcqhjsgb"},{"n":"彩虹岛","v":"CHD"},{"n":"御龙在天","v":"YLZT"},{"n":"自由篮球","v":"ZYLQ"},{"n":"洛奇英雄传","v":"LQYXZ"},{"n":"洛奇","v":"LQ"},{"n":"封印者","v":"FYZ"},{"n":"合金弹头","v":"HJDT"},{"n":"新英雄年代","v":"XYXSD"},{"n":"盛趣游戏","v":"SQYX"},{"n":"新热血英豪","v":"XRXYH"},{"n":"沙盒游戏","v":"SHYX"},{"n":"恐鬼症","v":"KGZ"},{"n":"领地人生","v":"LDRS"},{"n":"大话西游2","v":"dhxy2"},{"n":"猎人","v":"lr"},{"n":"热血江湖online","v":"rxjhol"},{"n":"千年3","v":"qn3"},{"n":"逍遥情缘","v":"xyqy"},{"n":"快乐西游","v":"klxy"},{"n":"诺亚传说","v":"nycs"},{"n":"鹿鼎记","v":"ldj"},{"n":"武魂2电脑版","v":"wh2pc"},{"n":"奇迹世界sun","v":"qjsjsun"},{"n":"剑侠世界2电脑版","v":"jxsj2pc"},{"n":"斩魂","v":"zhpc"},{"n":"大唐2","v":"dt2pc"},{"n":"幻想神域电脑版","v":"hxsypc"},{"n":"蜀山:初章","v":"ssczpc"},{"n":"狼人对决网游","v":"lrdjpc"},{"n":"武林群侠传","v":"wlqxzpc"},{"n":"飘流幻境","v":"plhjpc"},{"n":"破天一剑","v":"ptyj"},{"n":"四国军棋","v":"sgjq"},{"n":"新大话西游3","v":"xy3"},{"n":"装甲战争","v":"zjzz"},{"n":"暴雪游戏综合","v":"g_bliz"},{"n":"HypeSquad","v":"HypeSquad"},{"n":"长尾4部虚拟分区","v":"cw4bxnfq"},{"n":"燕云十六声","v":"WHEREWINDSMEET"},{"n":"THE FINALS","v":"THEFINALS"},{"n":"NBA2K Online","v":"NBA2KOL"},{"n":"跑跑卡丁车:漂移","v":"KartRiderDrift"},{"n":"传奇永恒","v":"EternalLegend"},{"n":"盛趣传奇","v":"sqcq"},{"n":"火爆热游","v":"hbry"}]}],
+ "syxx":[{"key":"cateId","name":"分类","init":"wzry","value":[{"n":"王者荣耀","v":"wzry"},{"n":"LOL手游","v":"LOLM"},{"n":"崩坏:星穹铁道","v":"bhxqtd"},{"n":"逆水寒手游","v":"NSHM"},{"n":"和平精英","v":"hpjy"},{"n":"暗区突围","v":"aqtw"},{"n":"蛋仔派对","v":"dzpd"},{"n":"高能英雄","v":"gnyx"},{"n":"幻塔","v":"ht"},{"n":"火影忍者","v":"hyrz"},{"n":"COD手游","v":"smzhsy"},{"n":"lol电竞经理","v":"EGAME"},{"n":"DNF手游","v":"mdnf"},{"n":"金铲铲之战","v":"JGAME"},{"n":"天刀手游","v":"tdsy"},{"n":"原神","v":"yuanshen"},{"n":"航海王热血航线","v":"HHWRXHX"},{"n":"元梦之星","v":"YMZX"},{"n":"鸿图之下","v":"htzx"},{"n":"欢乐麻将","v":"HLMJ"},{"n":"王者模拟战","v":"wzrpg"},{"n":"中国象棋","v":"ZGXQ"},{"n":"天谕手游","v":"tysy"},{"n":"巅峰坦克","v":"DFTK"},{"n":"新游中心","v":"xyzx"},{"n":"热门手游","v":"phone"},{"n":"梦幻手游","v":"mhxy"},{"n":"QQ飞车","v":"qqfcsy"},{"n":"第五人格","v":"dwrg"},{"n":"欢乐斗地主","v":"hlddz"},{"n":"荒野乱斗","v":"hyld"},{"n":"阴阳师","v":"yys"},{"n":"狼人杀","v":"LRS"},{"n":"JJ斗地主","v":"jj"},{"n":"梦幻新诛仙","v":"mhxzx"},{"n":"多多自走棋","v":"zzq"},{"n":"崩坏3","v":"bhxl"},{"n":"风云岛行动","v":"fydxd"},{"n":"云游戏","v":"cloudgame"},{"n":"跑跑手游","v":"PPKDCSY"},{"n":"率土之滨","v":"stzb"},{"n":"灌篮高手","v":"glgs"},{"n":"皇室战争","v":"hszz"},{"n":"忍者必须死3","v":"rzbxs3"},{"n":"神武4手游","v":"sw3"},{"n":"梦幻模拟战","v":"mhmnz"},{"n":"实况足球","v":"skzq"},{"n":"航海王:燃烧意志","v":"hhwrsyz"},{"n":"球球大作战","v":"qqdzz"},{"n":"英雄杀","v":"yxs"},{"n":"魔域口袋版","v":"mykdb"},{"n":"口袋新旅程","v":"KDXLC"},{"n":"剑网3:指尖江湖","v":"jw3zjjh"},{"n":"部落冲突","v":"blct"},{"n":"剑与家园","v":"jyjy"},{"n":"新笑傲江湖","v":"xxajh"},{"n":"猫和老鼠","v":"mhls"},{"n":"猎人手游","v":"lrlr"},{"n":"明日之后","v":"mrzh"},{"n":"影之诗","v":"yzs"},{"n":"决战平安京","v":"jzpaj"},{"n":"魂斗罗归来","v":"DLHGL"},{"n":"圣斗士星矢","v":"sdsxs"},{"n":"魔力宝贝手游","v":"mlbbsy"},{"n":"哈利波特:魔法觉醒","v":"HarryPotter"},{"n":"手游推广","v":"rmsy"},{"n":"魔灵召唤","v":"mlzh"},{"n":"香肠派对","v":"xcpd"},{"n":"迷你世界","v":"MNSJ"},{"n":"FC足球世界","v":"FCZQSJ"},{"n":"街篮","v":"jl"},{"n":"明日方舟","v":"mrfz"},{"n":"一梦江湖","v":"ymjh"},{"n":"完美世界手游","v":"wmsjsy"},{"n":"拳皇98OL","v":"kof98"},{"n":"赛尔号","v":"srh"},{"n":"仙境传说","v":"xjcs"},{"n":"流星群侠传","v":"liuxinghudiejian"},{"n":"逃跑吧少年","v":"tpbsn"},{"n":"石器时代","v":"sqsd"},{"n":"RPG手游","v":"rpgsy"},{"n":"英魂之刃口袋版","v":"yh"},{"n":"倩女幽魂手游","v":"qnyhsy"},{"n":"决斗之城2","v":"jdzc2"},{"n":"传奇手游","v":"cqsy"},{"n":"雀魂","v":"Majsoul"},{"n":"二次元手游","v":"ecysy"},{"n":"征途2手游","v":"zt2sy"},{"n":"万王之王3D","v":"wwzw3D"},{"n":"武林外传","v":"wlwz"},{"n":"潮人篮球","v":"crlq"},{"n":"元气骑士","v":"yuanqiqishi"},{"n":"红警OL手游","v":"hjolsy"},{"n":"植物大战僵尸手游","v":"ZWDZJS"},{"n":"创造与魔法","v":"ccymf"},{"n":"奇迹觉醒","v":"qjjx"},{"n":"光遇","v":"skygy"},{"n":"游戏王:决斗链接","v":"yxwjdlj"},{"n":"巅峰战舰","v":"dfzj"},{"n":"寻仙","v":"xunxian"},{"n":"天天象棋","v":"ttxq"},{"n":"王国纪元","v":"wgjy"},{"n":"龙族幻想","v":"lzhx"},{"n":"三国杀移动版","v":"SGSSY"},{"n":"罗布乐思","v":"Roblox"},{"n":"足球手游","v":"zqsy"},{"n":"月圆之夜","v":"yyzy"},{"n":"秦时明月世界","v":"qsmysj"},{"n":"麻将来了","v":"mjll"},{"n":"风之大陆","v":"fzdl"},{"n":"金属对决","v":"jsdj"},{"n":"轩辕剑龙舞云山","v":"xyjlwys"},{"n":"微乐棋牌","v":"WLQP"},{"n":"辐射:避难所Online","v":"fsbnsonline"},{"n":"街篮2","v":"jl2"},{"n":"极光计划","v":"jgjh"},{"n":"不良人3","v":"blr3"},{"n":"镇魔曲手游","v":"zmq"},{"n":"乱世王者","v":"lswz"},{"n":"篮球手游","v":"lqsy"},{"n":"鬼泣-巅峰之战","v":"gqdfzz"},{"n":"射击类手游","v":"qtsy"},{"n":"命运歌姬","v":"mygj"},{"n":"暗黑不朽","v":"diabloimmortal"},{"n":"新神魔大陆","v":"xsmdl"},{"n":"三国志战略版","v":"sgzzlb"},{"n":"天地劫:幽城再临","v":"tdj"},{"n":"Disorder","v":"Disorder"},{"n":"云上城之歌","v":"ysczg"},{"n":"五子棋","v":"wzq"},{"n":"围棋","v":"wq"},{"n":"全球行动","v":"qqxd"},{"n":"诛仙手游","v":"zxsy"},{"n":"妄想山海","v":"wxsh"},{"n":"黎明觉醒:生机","v":"lmjx"},{"n":"庆余年","v":"QYN"},{"n":"我的侠客","v":"wdxk"},{"n":"曙光英雄","v":"sgyx"},{"n":"大话西游手游","v":"dhxysy"},{"n":"战争怒吼","v":"zznh"},{"n":"忘川风华录","v":"wcfhl"},{"n":"新剑侠情缘手游","v":"xjxqysy"},{"n":"重生细胞","v":"csxb"},{"n":"汉家江湖","v":"HJJH"},{"n":"海岛奇兵","v":"hdqb"},{"n":"钢铁力量2","v":"gtll2"},{"n":"仙剑奇侠传九野","v":"xjqxzjy"},{"n":"大唐无双手游","v":"dtwssy"},{"n":"地铁跑酷","v":"dtpk"},{"n":"战舰世界闪击战","v":"zjsjsjz"},{"n":"狂暴之翼","v":"kbzy"},{"n":"横扫千军","v":"hsqj"},{"n":"节奏大爆炸","v":"jzdbz"},{"n":"喵斯快跑","v":"mskp"},{"n":"双子","v":"sz"},{"n":"小美斗地主","v":"xmddz"},{"n":"精灵之境","v":"jlzj"},{"n":"斗罗大陆:武魂觉醒","v":"dldlwhjx"},{"n":"斗罗大陆2绝世唐门","v":"dldl2jstm"},{"n":"战神觉醒","v":"zsjx"},{"n":"九州仙剑传H5","v":"jzxjzh5"},{"n":"荣耀大天使","v":"rydts"},{"n":"蓝月传奇","v":"lycq"},{"n":"凡人修仙传挂机版H5","v":"frxxzgjbh5"},{"n":"攻城掠地","v":"gcld"},{"n":"盗墓笔记","v":"dmbj"},{"n":"拳魂觉醒","v":"qhjx"},{"n":"大天使之剑","v":"dtszj"},{"n":"绝世仙王","v":"jsxw"},{"n":"一刀传世","v":"ydcs"},{"n":"斗罗大陆","v":"dldl"},{"n":"破雪刃","v":"pxr"},{"n":"JJ象棋","v":"jjxq"},{"n":"天姬变","v":"tjb"},{"n":"剑玲珑","v":"jll"},{"n":"火线精英","v":"hxjy"},{"n":"造梦西游OL","v":"zmxyol"},{"n":"奥奇传说手游","v":"aqcssy"},{"n":"战斗吧龙魂","v":"zdblh"},{"n":"剑开仙门","v":"jkxm"},{"n":"狼人对决","v":"lrdj"},{"n":"最终幻想:勇气启示录 幻影战争","v":"hyzz"},{"n":"葫芦娃兄弟","v":"hlwxd"},{"n":"造梦西游4","v":"zmxy4"},{"n":"比特小队","v":"btxd"},{"n":"流言侦探","v":"lyzt"},{"n":"战舰联盟","v":"zjlm"},{"n":"另一个伊甸:超越时空的猫","v":"lygyd"},{"n":"少女前线","v":"snqx"},{"n":"遇见","v":"yj"},{"n":"霓虹深渊:无限","v":"nhsywx"},{"n":"胡莱三国3","v":"hlsg3"},{"n":"奥拉星","v":"alx"},{"n":"先游云游戏","v":"Gamer"},{"n":"万象物语手游","v":"wxwy1"},{"n":"绿茵信仰","v":"lyxy"},{"n":"烟雨江湖","v":"yyjhsy"},{"n":"球球联盟","v":"qqlm"},{"n":"文明与征服","v":"wmyzf"},{"n":"碧蓝航线手游","v":"blhxsy"},{"n":"300大作战","v":"300dzz"},{"n":"2047","v":"2047"},{"n":"第七史诗","v":"dqss"},{"n":"汉末霸业","v":"hmby"},{"n":"EVE星战前夜:无烬星河","v":"evexzqywjxh"},{"n":"少女前线2:追放","v":"sq2zf"},{"n":"弹力果冻","v":"tlgd"},{"n":"火力苏打(T3)","v":"T3"},{"n":"植物大战僵尸2","v":"zwdzjs2"},{"n":"球球英雄","v":"qqyx"},{"n":"悠长假期","v":"ycjq"},{"n":"无悔华夏","v":"whrhx"},{"n":"猫之城","v":"mzc"},{"n":"未定事件簿","v":"wdsjp"},{"n":"白夜极光","v":"byjg"},{"n":"ProjectGAIA","v":"projectgaia"},{"n":"斗罗大陆:魂师对决","v":"dldlhsdj"},{"n":"古墓丽影传说:迷踪","v":"gmlycsmz"},{"n":"漫威对决","v":"mwdj"},{"n":"放置与召唤","v":"fzyzh"},{"n":"我是航海家","v":"wshhj"},{"n":"军团战棋英雄时代","v":"jtzqyxsd"},{"n":"繁荣美食市场物语","v":"frmsscwy"},{"n":"老农种树","v":"lnzs"},{"n":"三国演义:吞噬无界","v":"sgyytswj"},{"n":"偶像梦幻祭2","v":"oxmhj2"},{"n":"卡卡保皇","v":"kkbh"},{"n":"灵猫传","v":"lmz"},{"n":"剑侠世界3","v":"jxsj3"},{"n":"召唤与合成2","v":"zhyhc2"},{"n":"像素时代","v":"xssd"},{"n":"仙侠第一放置","v":"xxdyfz"},{"n":"无尽的拉格朗日","v":"wjdlglr"},{"n":"弓箭手大作战","v":"gjsdzz"},{"n":"挨饿荒野","v":"aehy"},{"n":"诺亚之心","v":"nyzx"},{"n":"闪耀暖暖","v":"synn"},{"n":"物种起源","v":"wzqy"},{"n":"模拟城市:我是市长","v":"mncswssc"},{"n":"重返帝国","v":"cfdg"},{"n":"太古仙尊","v":"tgxz"},{"n":"长安幻想","v":"cahx"},{"n":"火炬之光:无限","v":"hjzgwx"},{"n":"富豪闯三国","v":"fhcsg"},{"n":"拂晓","v":"fx"},{"n":"古剑奇谭木语人","v":"gjqtmyr"},{"n":"火影忍者:忍者新世代","v":"hyrzrzxsd"},{"n":"末日远征","v":"mryz"},{"n":"滚动的天空","v":"gddtk"},{"n":"新斗罗大陆","v":"xdldl"},{"n":"登山赛车","v":"dssc"},{"n":"荒野乱斗(腾讯版)","v":"hyldtxb"},{"n":"小小勇者","v":"xxyz"},{"n":"小冰冰传奇","v":"xbbcq"},{"n":"三国战纪2手游","v":"sgzj2"},{"n":"幸存者危城","v":"xczwc"},{"n":"冒险公社手游","v":"mxgs"},{"n":"欧陆战争5:帝国","v":"olzz5dg"},{"n":"纪念碑谷2","v":"jnbg2"},{"n":"大航海探险物语","v":"dhhtxwy"},{"n":"航海日记","v":"hhrj"},{"n":"一拳超人:最强之男","v":"yqcrzqzn"},{"n":"王国保卫战4","v":"wgbwz4"},{"n":"半世界之旅","v":"bsjzl"},{"n":"奥特曼宇宙英雄","v":"atmyzyx"},{"n":"新三国杀","v":"xsgs"},{"n":"奶块","v":"nk"},{"n":"策魂三国","v":"chsg"},{"n":"奥特曼系列OL","v":"atmxlol"},{"n":"欢喜斗地主","v":"HXDDZ"},{"n":"洪荒文明","v":"hhwm"},{"n":"街头足球","v":"jtzq"},{"n":"同人圣三国蜀汉传","v":"trssgshc"},{"n":"塔防之光","v":"tfzg"},{"n":"我做夫人那些年","v":"wzfrnxn"},{"n":"小小五千年","v":"xxwqn"},{"n":"乖离性百万亚瑟王:环","v":"glxbwyswh"},{"n":"时空猎人","v":"sklr"},{"n":"星际逆战","v":"xjnz"},{"n":"羽毛球高高手","v":"ymqggs"},{"n":"LoveLive! 学园偶像祭","v":"lovelivexyoxj"},{"n":"黑色沙漠手游","v":"hesmsy"},{"n":"魔力宝贝:旅人","v":"mlbblr"},{"n":"大家饿餐厅","v":"dject"},{"n":"魔力宝贝归来","v":"mlbbgl"},{"n":"巅峰极速","v":"dfjs"},{"n":"新盗墓笔记","v":"xdmbj"},{"n":"轩辕传奇手游","v":"XYCQSY"},{"n":"萤火突击国际服","v":"yhtj"},{"n":"武林闲侠","v":"wlxx"},{"n":"淘米游戏","v":"tmyx"},{"n":"无期迷途","v":"wqmt"},{"n":"逆光潜入","v":"ngqr"},{"n":"深空之眼","v":"skzy"},{"n":"CF手游","v":"CFSY"},{"n":"新天龙八部手游","v":"xtlbbsy"},{"n":"尘白禁区","v":"cbjq"},{"n":"原始征途","v":"yszt"},{"n":"全民大灌篮","v":"qmdgl"},{"n":"枪火重生手游","v":"GunfireReborn"},{"n":"火影三国志","v":"g_hysg"},{"n":"网易其它组","v":"g_wyqt"},{"n":"三国战纪手游","v":"sgzjsy"},{"n":"染·钟楼谜团","v":"BOTC"},{"n":"绝区零","v":"jql"},{"n":"重返CODM","v":"RECODM"},{"n":"综合手游","v":"zhsy"},{"n":"IP游戏","v":"ipyx"},{"n":"鸣潮","v":"cm"},{"n":"棋牌游戏","v":"QPYX"},{"n":"奥比岛:梦想国度","v":"abdmxgd"},{"n":"晶核","v":"jhcoa"},{"n":"星之破晓","v":"dhpx"},{"n":"赛尔计划","v":"srjh"},{"n":"SLG综合","v":"SLG"},{"n":"代号:伙伴","v":"DHGB"},{"n":"天使之战","v":"tszz"},{"n":"全明星街球派对","v":"hoopheroes"},{"n":"合金弹头:觉醒","v":"MetalSlug"},{"n":"劲乐幻想","v":"g_jyhx"},{"n":"白荆回廊","v":"BJHL"},{"n":"战地无疆","v":"zdwj"},{"n":"三国志战棋版","v":"g_sgzzqb"},{"n":"一拳超人:世界","v":"yqcrsj"},{"n":"鹅鸭杀手游","v":"GooseDuck"},{"n":"太空杀","v":"SuperSus"},{"n":"大话西游:归来","v":"dhxygl"},{"n":"战火勋章","v":"zhxz"},{"n":"西行纪 燃魂","v":"xxjrh"},{"n":"决胜巅峰","v":"jueshengdianfeng"},{"n":"冒险岛:枫之传说","v":"MapleStory"},{"n":"七人传奇:光与暗之交战","v":"qirenchuanqi"},{"n":"综合桌游","v":"ZHZY"},{"n":"闪耀!优俊少女","v":"PrettyDerby"},{"n":"三角洲行动","v":"DF"},{"n":"二次元游戏","v":"ECYYX"}]}],
+ "djry":[{"key":"cateId","name":"分类","init":"TVgame","value":[{"n":"主机游戏","v":"TVgame"},{"n":"刺客信条:英灵殿","v":"AC"},{"n":"马里奥制造","v":"Mario"},{"n":"逃离塔科夫","v":"EFT"},{"n":"命运2","v":"MY2"},{"n":"恐怖游戏","v":"Horror"},{"n":"荒野大镖客","v":"hydbk"},{"n":"灵魂筹码","v":"lhcm"},{"n":"骑马与砍杀","v":"MountAndBlade"},{"n":"只狼","v":"ZL"},{"n":"格斗游戏","v":"FTG"},{"n":"饥荒","v":"DontStarve"},{"n":"全境封锁","v":"qjfs"},{"n":"怀旧游戏","v":"classic"},{"n":"NBA2K","v":"NBA2K"},{"n":"八方旅人","v":"OT"},{"n":"人类一败涂地","v":"Human"},{"n":"环世界","v":"RimWorld"},{"n":"古墓丽影","v":"gmly"},{"n":"鬼泣","v":"DMC"},{"n":"往日不再","v":"WRBZ"},{"n":"仙剑奇侠传","v":"PAL"},{"n":"神秘海域","v":"Uncharted"},{"n":"塞尔达系列","v":"TLoZ"},{"n":"僵尸世界大战","v":"WWZ"},{"n":"足球游戏","v":"zq"},{"n":"橙光","v":"cg"},{"n":"了不起的修仙模拟器","v":"ACS"},{"n":"超级马里奥","v":"SMO"},{"n":"三国志系列","v":"Sangokushi"},{"n":"星际公民","v":"StarCitizen"},{"n":"最终幻想","v":"FF"},{"n":"中土世界:战争之影","v":"MiddleEarth"},{"n":"流放者柯南","v":"Conan"},{"n":"三国群英传","v":"SANGO"},{"n":"无主之地","v":"Bor"},{"n":"辐射","v":"fs"},{"n":"太吾绘卷","v":"twhj"},{"n":"SCUM","v":"Scum"},{"n":"正当防卫","v":"zdfw"},{"n":"以撒的结合","v":"Isaac"},{"n":"文明","v":"CVI"},{"n":"仁王","v":"NIOH"},{"n":"缺氧","v":"ONI"},{"n":"皇牌空战","v":"hpkz"},{"n":"体育游戏","v":"tyyx"},{"n":"海岛大亨","v":"hddh"},{"n":"植物大战僵尸:花园战争系列","v":"PvsZ"},{"n":"蜘蛛侠","v":"Spide"},{"n":"勇者斗恶龙:建造者2","v":"DQB2"},{"n":"遗迹:灰烬重生","v":"Rem"},{"n":"血源","v":"BB"},{"n":"旺达与巨像","v":"SotC"},{"n":"模拟人生","v":"Sims"},{"n":"空洞骑士","v":"HKS"},{"n":"极品飞车","v":"jpfc"},{"n":"胡闹厨房","v":"Overcooked"},{"n":"地铁:离去","v":"ME"},{"n":"生死狙击2","v":"ssjjtwo"},{"n":"三国战纪","v":"sgzj"},{"n":"怀旧FC","v":"edwcy"},{"n":"经典单机","v":"jddj"},{"n":"英雄无敌","v":"HoMM"},{"n":"街机游戏","v":"jjyx"},{"n":"合金装备","v":"MetalGear"},{"n":"红色警戒","v":"hsjj"},{"n":"镜之边缘","v":"MsE"},{"n":"火焰纹章系列","v":"FireEmblem"},{"n":"星露谷物语","v":"Stardew"},{"n":"赛博朋克2077","v":"Cyberpunk"},{"n":"中国式家长","v":"CP"},{"n":"尼尔:机械纪元","v":"NieR"},{"n":"无人深空","v":"NMS"},{"n":"EVOTINCTION","v":"EVOTINCTION"},{"n":"GT赛车7","v":"GT"},{"n":"超级机器人大战","v":"SRW"},{"n":"信长之野望","v":"KOEINOBU"},{"n":"这是我的战争","v":"TWoM"},{"n":"杀戮尖塔","v":"sljt"},{"n":"冰汽时代","v":"Frostpunk"},{"n":"帝国时代","v":"AoEIV"},{"n":"死亡空间","v":"swkj"},{"n":"凯瑟琳Full Body","v":"CFB"},{"n":"足球经理","v":"Football"},{"n":"雨中冒险","v":"RoR"},{"n":"亿万僵尸","v":"Billions"},{"n":"武装突袭","v":"ArmA"},{"n":"石油大亨","v":"Oil"},{"n":"荣耀战魂","v":"Honor"},{"n":"欧洲卡车模拟器","v":"Truck"},{"n":"美国逃亡者","v":"Fugitive"},{"n":"漫漫长夜","v":"mmcy"},{"n":"永恒轮回","v":"Survival"},{"n":"孤岛惊魂","v":"FarCry"},{"n":"都市:天际线","v":"Skylines"},{"n":"盗贼之海","v":"hdzh"},{"n":"Dayz","v":"DayZ"},{"n":"60秒","v":"60S"},{"n":"俄罗斯钓鱼","v":"RF"},{"n":"猎人:荒野的召唤","v":"theHunter"},{"n":"恐怖黎明","v":"GD"},{"n":"看门狗","v":"kmg"},{"n":"真三国无双","v":"DW"},{"n":"泰拉瑞亚","v":"Terraria"},{"n":"UFC","v":"UFC"},{"n":"底特律:变人","v":"Detroit"},{"n":"恶魔城","v":"Castlevania"},{"n":"毁灭战士","v":"Doom"},{"n":"火影忍者:究极忍者风暴","v":"Naruto"},{"n":"无尽地牢","v":"DOTE"},{"n":"坎巴拉太空计划","v":"Kerbal"},{"n":"龙珠:超宇宙","v":"DBX"},{"n":"马里奥赛车","v":"MarioKart"},{"n":"模拟山羊","v":"GoatSim"},{"n":"欧陆风云","v":"EU"},{"n":"乞丐模拟器","v":"HoboToughLife"},{"n":"小偷模拟器","v":"ThiefSimulator"},{"n":"逆转裁判","v":"AceA"},{"n":"超越光速","v":"FTL"},{"n":"植物大战僵尸","v":"PvZ"},{"n":"游戏开发者","v":"GGM"},{"n":"最后的绿洲","v":"LO"},{"n":"大富翁","v":"RichMan"},{"n":"英雄连","v":"yxl"},{"n":"永劫无间","v":"NB"},{"n":"部落与弯刀","v":"BLYWD"},{"n":"森林","v":"Forest"},{"n":"只只大冒险","v":"biped"},{"n":"一起开火车!","v":"Unrailed"},{"n":"主机其他游戏","v":"OG"},{"n":"北境之地","v":"BJZD"},{"n":"temtem","v":"temtem"},{"n":"弹丸论破","v":"dwlp"},{"n":"基佬大乱斗","v":"jldld"},{"n":"僵尸毁灭工程","v":"jshmgc"},{"n":"神力科莎","v":"SLKS"},{"n":"超级兔子人","v":"Bunny"},{"n":"岛屿生存者","v":"Sur"},{"n":"盟军敢死队","v":"COMM"},{"n":"冬日计划","v":"drjh"},{"n":"泰坦陨落","v":"Titanfall"},{"n":"四海兄弟","v":"shxd"},{"n":"创世理想乡","v":"Craftopia"},{"n":"柯娜:精神之桥","v":"Kena"},{"n":"幽灵线:东京","v":"GTO"},{"n":"Solar Ash","v":"Ash"},{"n":"BUGSNAX","v":"BUGSNAX"},{"n":"生化危机4重制版","v":"ResidentEvil"},{"n":"Grounded","v":"Grounded"},{"n":"Superliminal","v":"Superliminal"},{"n":"Omno","v":"Omno"},{"n":"Röki","v":"Roki"},{"n":"Undungeon","v":"Undungeon"},{"n":"糖豆人","v":"FallGuys"},{"n":"渡神纪","v":"Gods"},{"n":"Aeolis Tournament","v":"Aeolis"},{"n":"猛兽派对","v":"Animals"},{"n":"Olija","v":"Olija"},{"n":"Creaks","v":"Creaks"},{"n":"暗影火炬城","v":"FIST"},{"n":"阿尔比恩","v":"Albion"},{"n":"Uragun","v":"Uragun"},{"n":"鬼谷八荒","v":"GGBH"},{"n":"Muse Dash","v":"MuseDash"},{"n":"恐惧之间","v":"Fearsurrounds"},{"n":"孤岛惊魂6","v":"FarCry6"},{"n":"怪物猎人","v":"MonsterHunterRise"},{"n":"黑神话:悟空","v":"BlackMythWuKong"},{"n":"仁王2","v":"Nioh2"},{"n":"三国志14","v":"THREEKINGDOMSXIV"},{"n":"杀手3","v":"Hitman3"},{"n":"双人成行","v":"ittakestwo"},{"n":"Scrapnaut","v":"Scrapnaut"},{"n":"租房达人","v":"TheTenants"},{"n":"狙击手:幽灵战士契约2","v":"SniperContracts2"},{"n":"全面战争","v":"TotalWarWARHAMMER"},{"n":"复体","v":"TheComplex"},{"n":"战争机器:战术小队","v":"GearsTactics"},{"n":"侠之道","v":"PathOfWuxia"},{"n":"海绵宝宝:比奇堡的冒险","v":"BattleforBikini"},{"n":"奇妙探险队2","v":"CuriousExpedition2"},{"n":"刺客信条:奥德赛","v":"Odyssey"},{"n":"星球大战:前线","v":"Battlefront"},{"n":"Moonray","v":"Moonray"},{"n":"灵魂旅人","v":"SpiritFarerlhlr"},{"n":"面容","v":"Visage"},{"n":"破门而入2:北方特遣队","v":"DoorKickers2"},{"n":"俄罗斯方块效应:连接","v":"TetrisEffect"},{"n":"SD高达G世纪:起源","v":"SDGundamG"},{"n":"东方计划:不可思议的幻想乡","v":"TouHou"},{"n":"Fate/EXTELLA","v":"FateEXTELLA"},{"n":"临终:重生试炼","v":"DYINGReborn"},{"n":"虚拟现实乐园","v":"VRWorlds"},{"n":"妖精剑士F","v":"FairyFencerF"},{"n":"苍翼默示录:神观之梦","v":"CentralFiction"},{"n":"晚班","v":"LateShift"},{"n":"子弹风暴","v":"Bulletstorm"},{"n":"巡警","v":"BeatCop"},{"n":"耻辱之日","v":"DayofInfamy"},{"n":"狙击精英4","v":"SniperElite4"},{"n":"三国志13:威力加强版","v":"Sangokushi13"},{"n":"热血物语:地下世界","v":"RiverCityRansom"},{"n":"史诗战争模拟器","v":"BattleSimulator"},{"n":"银河护卫队","v":"Guardians"},{"n":"闪乱神乐:少女们的选择","v":"SenranKagura"},{"n":"幽灵行动:荒野","v":"GhostReconWildland"},{"n":"白色情人节","v":"WhiteDay"},{"n":"美国职业摔角联盟2K17","v":"WWE2K"},{"n":"誓死坚守","v":"UntilWeDie"},{"n":"喷射侠","v":"Splasher"},{"n":"双截龙4","v":"DoubleDragon4"},{"n":"地下蚁国","v":"Undergrowth"},{"n":"九张羊皮纸","v":"NineParchments"},{"n":"咒语力量3","v":"Spellforce3"},{"n":"小兵大战","v":"Warpips"},{"n":"维京人 人中之狼","v":"VikingsWofM"},{"n":"你好邻居","v":"Helloneighbor"},{"n":"寻找天堂","v":"findparadise"},{"n":"画中世界","v":"Gorogoa"},{"n":"桥梁工程师传送门","v":"bridgecons"},{"n":"现代战争","v":"ModernCombat"},{"n":"SCP:秘密实验室","v":"scpsl"},{"n":"绯红结系","v":"SCARLETNEXUS"},{"n":"罪恶装备:STRIVE","v":"GuiltyGear"},{"n":"骑士精神2","v":"Chivalry2"},{"n":"Rune Knights","v":"RuneKnights"},{"n":"最后的咒语","v":"TheLastSpell"},{"n":"红至日2:幸存者","v":"TheRed2"},{"n":"真女神转生3","v":"ShinMegami3"},{"n":"速降王者","v":"Descenders"},{"n":"工业崛起","v":"RiseIndustry"},{"n":"征服的荣耀:围城","v":"SIEGE"},{"n":"前往中世纪","v":"GoMedieval"},{"n":"Arid","v":"Arid"},{"n":"伊始之地","v":"TerraNil"},{"n":"进击的巨人2","v":"AttackonTitan2"},{"n":"航海日记2","v":"hhrj2"},{"n":"隐龙传:影踪","v":"HiddenDragon"},{"n":"魔域之书","v":"Bookofdevil"},{"n":"诸神灰烬:救赎","v":"AshofGods"},{"n":"自由人:游击战争","v":"Freeman"},{"n":"战国无双5","v":"SWarriors5"},{"n":"死亡教堂","v":"DeathCathedral"},{"n":"灵魂能力6","v":"SoulCalibur6"},{"n":"不要喂食猴子","v":"NotFeedMonkeys"},{"n":"古剑奇谭3","v":"GuJianqitan3"},{"n":"迷城重生","v":"RebornCity"},{"n":"剑士","v":"KenshiJS"},{"n":"GRIS","v":"GRIS"},{"n":"古剑奇谭:永夜","v":"gujianyongye"},{"n":"核爆RPG","v":"ATOMRPG"},{"n":"Below","v":"Below"},{"n":"嗜血印","v":"BloodySpell"},{"n":"伊苏9","v":"Ys9"},{"n":"兽人必须死3","v":"OrcsDie3"},{"n":"狙击精英VR","v":"SniperEliteVR"},{"n":"遗忘之城","v":"ForgotCity"},{"n":"Last Stop","v":"LastStop"},{"n":"从军","v":"jointhearmy"},{"n":"石炉","v":"Stonehearth"},{"n":"狂热运输2","v":"TransportFever2"},{"n":"机甲战士5","v":"MechWarrior5"},{"n":"分手装修","v":"ToolUP"},{"n":"PICO PARK","v":"PICOPARK"},{"n":"光明记忆:无限","v":"Brightmemory"},{"n":"秘馆疑踪","v":"HeavenDust"},{"n":"英雄传说:创之轨迹","v":"HajimariNOKiseki"},{"n":"战地系列","v":"Battlefiel"},{"n":"塞尔达传说:天空之剑HD","v":"SkywardSword"},{"n":"国王的恩赐2","v":"KingsBounty2"},{"n":"脑航员2","v":"Psychonauts2"},{"n":"九十六号公路","v":"Road96"},{"n":"FORECLOSED","v":"FORECLOSED"},{"n":"RiMS Racing","v":"RiMSRacing"},{"n":"漫威银河护卫队","v":"GuardiansGalaxy"},{"n":"剑侠图","v":"JianXiaTu"},{"n":"审判之逝","v":"Lostjudgment"},{"n":"艾尔登法环","v":"ELDENRING"},{"n":"互动派对","v":"INTERACTIVEPARTY"},{"n":"极限竞速:地平线5","v":"ForzaHorizon5"},{"n":"使命召唤系列","v":"CALLOFDUTYCOD"},{"n":"网吧模拟器","v":"InternetCS"},{"n":"The Anacrusis","v":"TheAnacrusis"},{"n":"文字游戏","v":"WordGame"},{"n":"消逝的光芒2","v":"DyingLight2"},{"n":"战神:诸神黄昏","v":"GodofWarRagnarok"},{"n":"师父","v":"SIFU"},{"n":"海上狼人杀","v":"DreadHunger"},{"n":"最终幻想:起源","v":"STRANGEROFPARADISE"},{"n":"HordeCore","v":"HordeCore"},{"n":"Indies’ Lies","v":"IndiesLies"},{"n":"霍格沃茨之遗","v":"HogwartsLegacy"},{"n":"太荒初境","v":"TalesofWild"},{"n":"Deck of Ashes","v":"DeckofAshes"},{"n":"星空","v":"Starfield"},{"n":"隐秘的角落","v":"YinMiDeJiaoLuo"},{"n":"江湖客栈","v":"TheJianghu"},{"n":"Ilysia","v":"Ilysia"},{"n":"Project Q","v":"ProjectQ"},{"n":"Pummel Party","v":"PummelParty"},{"n":"Holomento","v":"Holomento"},{"n":"Overprime","v":"Overprime"},{"n":"森林之子","v":"SonsOfTheForest"},{"n":"弈仙牌","v":"yixianpai"},{"n":"夜族崛起","v":"VRising"},{"n":"漫威SNAP","v":"MarvelSnap"},{"n":"魔力宝贝","v":"CrossGate"},{"n":"木卫四协议","v":"CallistoProtocol"},{"n":"罗马复兴","v":"RomanRenaissance"},{"n":"风暴之门","v":"StormGate"},{"n":"暗邪西部","v":"EvilWest"},{"n":"堕落之主","v":"LordsofFallen"},{"n":"High on Life","v":"HighonLife"},{"n":"匹诺曹的谎言","v":"LiesofP"},{"n":"逃生:试炼","v":"TheOutlastTrials"},{"n":"战锤40K:暗潮","v":"40KDarktide"},{"n":"Isonzo","v":"Isonzo"},{"n":"索尼克 未知边境","v":"SonicFrontiers"},{"n":"漂泊牧歌","v":"WanderingVillage"},{"n":"塞尔达传说:王国之泪","v":"TEARSKINGDOM"},{"n":"破碎线","v":"Shatterline"},{"n":"卧龙:苍天陨落","v":"Wolong"},{"n":"卡库远古封印","v":"KAKU"},{"n":"原子之心","v":"AtomicHeart"},{"n":"霓虹入侵者","v":"FromSpace"},{"n":"Warhaven","v":"Warhaven"},{"n":"宝可梦:朱/紫","v":"ScarletandViolet"},{"n":"第一后裔","v":"TheFirstDescendant"},{"n":"铳墓G.O.R.E.","v":"GUNGRAVEGORE"},{"n":"Kingshunt","v":"Kingshunt"},{"n":"漫威暗夜之子","v":"MarvelMidnightSuns"},{"n":"奇怪的RPG","v":"WeirdRPG"},{"n":"Evercore Heroes","v":"EvercoreHeroes"},{"n":"东方:平野孤鸿","v":"MomentinEast"},{"n":"神之天平","v":"ASTLIBRARevision"},{"n":"伊克西翁","v":"IXION"},{"n":"主机一起看","v":"zjyqk"},{"n":"社交互动游戏","v":"SJHDYX"},{"n":"Divine Knockout","v":"DivineKnockout"},{"n":"巫师系列","v":"TheWitcher"},{"n":"至暗时刻","v":"DarkandDarker"},{"n":"江湖十一","v":"Jianghu11"},{"n":"XDefiant","v":"XDefiant"},{"n":"刺客信条:幻景","v":"ACMirage"},{"n":"Warlander","v":"Warlander"},{"n":"狂野之心","v":"WildHearts"},{"n":"Scars Above","v":"ScarsAbove"},{"n":"Pacific Drive","v":"PacificDrive"},{"n":"收获日3","v":"PAYDAY"},{"n":"浮生箓2:九九行歌","v":"FloatingLife"},{"n":"The Front","v":"TheFront"},{"n":"最终幻想16","v":"FinalFantasyXVI"},{"n":"街头霸王","v":"StreetFighter"},{"n":"Tchia","v":"Tchia"},{"n":"魔戒:咕噜","v":"Gollum"},{"n":"Prison Life 2","v":"PrisonLife"},{"n":"Innchanted","v":"Innchanted"},{"n":"Life by You","v":"LifebyYou"},{"n":"Eresys","v":"Eresys"},{"n":"Pax Dei","v":"PaxDei"},{"n":"Teravit","v":"Teravit"},{"n":"Caliber","v":"Caliber"},{"n":"沙盒与副本:英勇之地","v":"HerosLand"},{"n":"Coridden","v":"Coridden"},{"n":"Unrecord","v":"Unrecord"},{"n":"Deducto 2","v":"Deducto2"},{"n":"装甲核心6:境界天火","v":"ArmoredCore"},{"n":"Wayfinder","v":"Wayfinder"},{"n":"迷瘴纪事","v":"MiasmaChronicles"},{"n":"Minigame Madness","v":"MinigameMadness"},{"n":"Only Up","v":"onlyup"},{"n":"天文世界","v":"AstroWorld"},{"n":"学园构想家","v":"SchoolHomeroom"},{"n":"Jusant","v":"JUSANT"},{"n":"潜水员戴夫","v":"DAVETHEDIVER"},{"n":"GYLT","v":"GYLT"},{"n":"遗迹2","v":"RemnantII"},{"n":"索利斯堡","v":"FortSolis"},{"n":"Towerborne","v":"Towerborne"},{"n":"33 Immortals","v":"33Immortals"},{"n":"Wildmender","v":"Wildmender"},{"n":"How 2 Escape","v":"How2Escape"},{"n":"漫威蜘蛛侠2","v":"MarvelSpiderman2"},{"n":"博德之门3","v":"BG3"},{"n":"Eternights","v":"Eternights"},{"n":"Project F","v":"ProjectF"},{"n":"BaldMan Climbs Up","v":"BaldManClimbsUp"},{"n":"FC24","v":"FC24"},{"n":"NBA 2K24","v":"NBA2K24"},{"n":"超级马里奥兄弟:惊奇","v":"MarioWonder"},{"n":"蛮荒志异","v":"Taleswild"}]}],
+ "kjwh":[{"key":"cateId","name":"分类","init":"qezb","value":[{"n":"数码科技","v":"smkj"},{"n":"纪录片","v":"jlp"},{"n":"成年教育","v":"jiaoyu"},{"n":"人文社科","v":"Humanities"},{"n":"企鹅直播","v":"qezb"}]}],
+ "yl":[{"key":"cateId","name":"分类","init":"ecy","value":[{"n":"二次元","v":"ecy"},{"n":"一起看","v":"yqk"},{"n":"音乐","v":"music"},{"n":"户外","v":"HW"},{"n":"美食","v":"ms"},{"n":"原创IP","v":"ip"},{"n":"心动派对","v":"xdpd"},{"n":"音遇恋人","v":"yinyu"},{"n":"星秀","v":"xingxiu"},{"n":"心动FM","v":"dtxs"},{"n":"娱乐推荐","v":"yltj"},{"n":"中国地质大学(武汉)","v":"CUGWH"}]}],
+ "yp":[{"key":"cateId","name":"分类","init":"paidui","value":[{"n":"派对","v":"paidui"},{"n":"心动FM.","v":"DIANT"},{"n":"一起玩","v":"yiqiwan"}]}],
+ "voice":[{"key":"cateId","name":"分类","init":"yyjy","value":[{"n":"语音交友","v":"yyjy"},{"n":"音乐之声","v":"yyzs"},{"n":"连麦互动","v":"lianmaihudong"},{"n":"娱乐开黑","v":"ylkh"}]}]
+ };
+ if (customArea.length > 0) {
+ const filterCfg = customArea.split('#');
+ classes.unshift({"type_id":"custom","type_name":"自选"});
+ const filterList = _.map(filterCfg, (it) => {
+ const filterKv = it.split(',');
+ return {
+ n: filterKv[1],
+ v: filterKv[0],
+ };
+ });
+ const defKey = filterList[0];
+ filterObj["custom"] = [{"key":"cateId","name":"分类","init":defKey.v,"value":filterList}];
+ }
+ if (isJustLive) {
+ // key-value映射修改
+ const filterKeys = Object.keys(filterObj);
+ for (const filterKey of filterKeys) {
+ const filterItem = filterObj[filterKey];
+ for (const typeItem of filterItem) {
+ typeItem.value = _.map(typeItem.value, (it) => {
+ // 修改默认值
+ if (it.v == typeItem.init) {
+ typeItem.init = it.n;
+ }
+ return {
+ n: it.n,
+ v: it.n,
+ };
+ });
+ }
+ }
+ }
+ classes.unshift({"type_id":"home","type_name":"首页"});
+ return JSON.stringify({
+ class: _.map(classes, (it) => {
+ return {
+ type_id: it.type_id,
+ type_name: it.type_name,
+ land: 1,
+ ratio: 1.78,
+ };
+ }),
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {
+ return '{}';
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0 || typeof pg == 'undefined') pg = 1;
+ let url = '';
+ let videos = [];
+ if (isJustLive) {
+ if (tid == 'home') {
+ url = host + '/api/live/getRecommendByPlatform?platform=douyu&size=20&page=' + pg;
+ } else {
+ url = host + '/api/live/getRecommendByPlatformArea?platform=douyu&size=20&area=' + tid + '&page=' + pg;
+ }
+ const data = JSON.parse(await request(url));
+ videos = _.map(data.data, (it) => {
+ return {
+ vod_id: it.roomId,
+ vod_name: it.roomName,
+ vod_pic: it.roomPic,
+ vod_remarks: it.ownerName,
+ }
+ });
+ } else {
+ if (tid == 'home') {
+ url = host + '/api/room/list?page=' + pg;
+ } else {
+ url = host + '/api/room/list?type=' + extend.cateId + '&page=' + pg;
+ }
+ const data = JSON.parse(await request(url));
+ videos = _.map(data.data.list, (it) => {
+ return {
+ vod_id: it.rid,
+ vod_name: it.roomName,
+ vod_pic: it.roomSrc,
+ vod_remarks: it.nickname,
+ }
+ });
+ }
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: 9999,
+ limit: 90,
+ total: 999999,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const data = JSON.parse(await request('http://live.yj1211.work/api/live/getRoomInfo?platform=douyu&roomId=' + id));
+ const video = data.data;
+ const vodList = [];
+ let vod = {
+ vod_id: video.roomId,
+ vod_name: video.roomName,
+ vod_pic: video.roomPic,
+ vod_remarks: video.categoryName,
+ type_name: video.categoryName,
+ vod_director: video.ownerName,
+ vod_actor: '',
+ vod_content: video.online + '人在线',
+ vod_year: '',
+ vod_area: '',
+ };
+ vodList.push(
+ {
+ title: "JustLive",
+ url: "https://getplayurl.lmteam.repl.co/live?platform=douyu&rid=" + video.roomId
+ },
+ {
+ title: "112114",
+ url: "http://epg.112114.xyz/douyu/" + video.roomId
+ },
+ {
+ title: "AOIS",
+ url: "https://www.aois.eu.org/live/douyu/" + video.roomId
+ },
+ {
+ title: "GIPTV",
+ url: "https://www.goodiptv.club/douyu/" + video.roomId
+ },
+ {
+ title: "KDTV",
+ url: "http://maomao.kandiantv.cn/douyu1.php?id=" + video.roomId
+ }
+ );
+ vod.vod_play_from = video.platForm;
+ vod.vod_play_url = _.map(vodList, (it)=> {
+ return it.title + "$" + it.url
+ }).join("#");
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ return JSON.stringify({
+ parse: 0,
+ url: id,
+ });
+}
+
+async function search(wd, quick) {
+ const resp = await requestRaw(host + '/api/search/liveRoom?did=10000000000000000000000000001501&limit=40&offset=0&sk=' + wd, 'post');
+ const data = JSON.parse(resp.content);
+ let videos = [];
+ for (const vod of data.data.list) {
+ videos.push({
+ vod_id: vod.roomId,
+ vod_name: vod.roomName,
+ vod_pic: vod.roomSrc,
+ vod_remarks: vod.nickname,
+ });
+ }
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/dovx_open.js b/cat/js/dovx_open.js
new file mode 100644
index 0000000..bd0e4b9
--- /dev/null
+++ b/cat/js/dovx_open.js
@@ -0,0 +1,81 @@
+import { _ } from 'assets://js/lib/cat.js';
+import { log } from './lib/utils.js';
+import { initAli, detailContent, playContent } from './lib/ali.js';
+
+let siteKey = 'dovx';
+let siteType = 0;
+let siteUrl = 'https://api.dovx.tk';
+let patternAli = /(https:\/\/www\.(aliyundrive|alipan)\.com\/s\/[^"]+)/
+
+async function request(reqUrl) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'Referer': siteUrl,
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ try {
+ siteKey = _.isEmpty(cfg.skey) ? '' : cfg.skey;
+ siteType = _.isEmpty(cfg.stype) ? '' : cfg.stype;
+ await initAli(cfg);
+ } catch (e) {
+ await log('init:' + e.message + ' line:' + e.lineNumber);
+ }
+}
+
+async function home(filter) {
+ return '{}';
+}
+
+async function homeVod() {}
+
+async function category(tid, pg, filter, extend) {
+ return '{}';
+}
+
+async function detail(id) {
+ try {
+ let matches = id.match(patternAli);
+ if (!_.isEmpty(matches)) return await detailContent(matches[0]);
+ return '';
+ } catch (e) {
+ await log('detail:' + e.message + ' line:' + e.lineNumber);
+ }
+}
+
+async function play(flag, id, flags) {
+ try {
+ return await playContent(flag, id, flags);
+ } catch (e) {
+ await log('play:' + e.message + ' line:' + e.lineNumber);
+ }
+}
+
+async function search(wd, quick, pg) {
+ let resp = await request(siteUrl + "/ali/search?wd=" + encodeURIComponent(wd));
+ let videos = JSON.parse(resp).list;
+ _.each(videos, (item) => {
+ item.vod_id = item.vod_content;
+ item.vod_content = undefined;
+ });
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/dsxys_open.js b/cat/js/dsxys_open.js
new file mode 100644
index 0000000..a7a4241
--- /dev/null
+++ b/cat/js/dsxys_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1DUBBpkc3h5c19vcGVuLmpzLGFzc2V0czovL2pzL2xpYi9jYXQuanMcX19qc0V2YWxSZXR1cm4MQ3J5cHRvBlVyaQJfCmRheWpzDl8weDI5ODUOXzB4MTlmNgZrZXkGdXJsDGRldmljZQ5zaXRlS2V5EHNpdGVUeXBlDl8weDIzMjQOXzB4MzRmMw5wa2dOYW1lEmJ1aWxkVGltZQ52ZXJzaW9uFHZlcnNpb25OdW0Sc2lnbmF0dXJlBHVhBHBrBnByawJhDnJlcXVlc3QIaW5pdBJ1cmxBcHBlbmQeZGVjcnlwdFJlc3BvbnNlCGhvbWUOaG9tZVZvZBBjYXRlZ29yeQxwcmVmZXIMZGV0YWlsGHBsYXllckNvbmZpZwhwbGF5DHNlYXJjaBJtM3U4Q2FjaGUaZm9ybWF0UGxheVVybBxmb3JtYXRQbGF5VXJsMgxmaXhVcmwSanNvblBhcnNlDmNoYXJTdHIOcmFuZFN0chRyYW5kRGV2aWNlGGJhc2U2NEVuY29kZRhiYXNlNjREZWNvZGUKbGltaXQWdHlwZV9leHRlbmQwd3E4Nnc3M0NtTU9wSGNPZXc2SEN1eXc9DGVObVlkVQhwdXNoCHNrZXkIJnBnPRZ2b2RfcmVtYXJrczZwYXJzZV9hZnRlcl9jb25maWdfZmVhdHVyZXMaL3NlYXJjaD90ZXh0PQhjZWlsCHRpbWUKc2xpY2UKc2NvcmUIZGF0YQhieE1BSFA4TzZjUnhid283RHJBOU9MSHNLd3JQRHZzT1l3NDdDZ0JBdQhhdG9iGHZvZF9kaXJlY3RvcgxTUWpldFEWdG9VcHBlckNhc2UMJnBraWQ9EHZvZF9uYW1lBmxvZyBaM3cxQk1LWUtnTmF3Nlk9cHc3YkNpbEZCd3JIRHEwckNnY09CY01PM2RjT2hiUTdEckh2Q3ZYSTFjQnRMRGNLQ3dwTVd3clJxBjB4NBJ0eXBlX25hbWUIbGlzdB5leHRyYV9wYXJzZV9hcGkQTm53OUFjT08UY2hhckNvZGVBdBRyZXBsYWNlQWxsDGFyelVuSxh3NzdEdnNPOXdxOVYOJnRva2VuPQ5hbmRyb2lkHEhVQVdFSSBNYXRlIDQwCEhnTTMOcmVwbGFjZdgVdzVIRHQ4T1lHd2RFdzdBL3dyUjdjTUtKdzRmRGdNT0xFQ2Rqd3F6Q2dzS2N3NzR4dzU5ZERzS0lWY09wYmtMQ284S2x3ci9EbE1LUFVWUENzc09NdzVURGdNS2p3cS9DaHdQQ2xjTzBFY09vdzZQRHVNT2x3N3ZDdXcxWXc3eFhROEtQdzdkcXdwSENvY09pdzQ4NXc3dHRid0UvdzdiRGdzS3B3NnRoZHNPcnc3MXFmM2ZDbnNPVUpndEl3ckxEakY3Q25pc3B3b29rdzRGT1F6L0N1c09WUURaandyL0RtU0U4SUFmQ3FtNEx3NUxDaUFGZUNjT3R3NC9EbnNPdkl4UlJ3cEhDcHNPQVlXZkRoY0tadzRnMEhNT2RYc09md3JJaU1TWXV3N29QQXNLWnc1eFd3cEk0WDNrYXdxbFJ3clhDb2cxOFVNS1ZlalREdFJQQ2tSYkRzOEtJTU1PcHc1YkRzOEtxWGNPSndvbEN3NDFPYU1PbmZSM0RnOEtRdzZQQ2pNS2FZTU9RdzY0UHc3RkR3NkxEblhjYXdvakRyOEtYSWhSVnc3NE13NTNDbHNLa3c1UVZ3b1BEb3NLd0pjS0xRbkxEbzhPeXdvdkN2c0tpdzdacVZNS013cFhDanhFeHc2d2RYc0s2dzZFK2E4T0p3NWpEZ1hSK3c3ekNwRUFBdzRSN1M4TzJkY0tBU1dqRGg4T3N3NW5Dc3NLRmNjS1BWc09EYjAvRHAxN0NsTU9YdzdiQ3VjTzV3bzUydzV0ZXdwM0RwRjhoRFIzRHUzbkNqOE9Ud3BBZUpHcFF3cW5Dc3pQQ2djT2N3b0pUd3JJZndwRUl3cjVJdzdERGpjT2d3NXhFQlRGL3c1OXR3cWpDZ01PMExNS2l3N1REbDhLZVZjS2p3b0hDaThPc3dyM0RpY080RGlwNHdvRjVQTU9PdzRURHBNS213NkVxdzRIRGlUd3hmVnhDZVdyRHJVSERvTU9Td292Q2hjT0VRY0tDT01PcHdxaDhNOE9WdzZjY2R3ODdWd1F5R1VUQ2dFZkR1TU80S0ZzcXc1WERtQTF4dzQ3RGdjS01GVVREcnNPVHdyUjhCRXRJZE1PMXdvZFB3cmNhd29UQ2pzT1Ric0tld3JYQ3F4dkNnc0tqdzZKL1E4T0VXRmpDdHNLeExjT1h3cjNEdlhkUXdvcEVmVGN6Q1Q3Q2hsdkN2c08xWTBMQ2tNS2J3NTk4QTBackhHTEN1Y09BSGNLQmFTNDV3NFhDaXpmRGs4SzF3cG5EakVmQ2xzTzl3clREdnNPenc1L0RyQnBid3BUQ25zSzlCalJtZnlOTE9SRWp3NFVxSThPQndyNVdWaTBCd285b1dYdFdOc09OQXNLQndwc0F3clBEcFJiQ3J5OTZ3NTh1dzdiRHFrZkRyWDF2ZDNkQkpXQTVOR2xSYWdURGs4S1hBc0tIdzZ6Q3BzS3lTTU9idzdyRHNNT1pNV1p0d3B3VndwckNsc0tZUThLRHc1ekRua2RLWmNLbXdxdkN0eHZEcTAzQ2xnSENuMU5xd29JSnc3M0R2UnZDdXgvRGdjS25kc09ZU3pQQ2dSbDl3cUlMdzZuQ3VHb2NOOE91d3J6RHF3ZkNvRnpEZzJFdXc2QTlQSGtQdzZ2RHQ4S1lBOEtBZnpndnc1WEN1OE9vZWxqQ3BpYkN0TUtvdzVIQ29zT1V3cEhEaVZMRGtRb0F3NkFxTk1LQXdyQkhmTUtUd29GWlhNTy93cEF1TXdERHVzT0R3NG5Edk1PY01NS3F3cWtsWk1La3c0QUZ3NmZDdkg4Y3dydDNZOEtrd3FqRG5EQnR3clRDa2xsZ05zS1QkL3ZpZGVvX3ByZWZlcj90aWQ9Fi9uYXY/dG9rZW49DmluZGV4T2YIbGFuZwh3NzFmBjB4MAYweDEMdmFSTWNFCGwwJGgcQ29udGVudC1MZW5ndGgSc3Vic3RyaW5nCnN0eXBlemFiYWNkZWZnaGprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkGMHg2CnBhcnNlBjB4MgZlbmMIYXJlYTRwYXJzZV9hZnRlcl9jb25maWdfaGVhZGVycwg2ajlZGHZvZF9wbGF5X3VybDB3N2ZDalFGUUg4S29Fc0tuWTFaVnc2UWoIZTBoRQ5jb25zb2xlCHBsb3QMY2hhckF0FFVzZXItQWdlbnQMQmFzZTY0CGNvZGUIa2V5cw5pc0VtcHR5EHZvZF95ZWFyDmNvbnRlbnQScGFnZWNvdW50JnJldHVybiAoZnVuY3Rpb24oKSAMdm9kX2lkEnBhcnNlX2FwaRJzdHJpbmdpZnkQaW5jbHVkZXMITilubBJ2b2RfY2xhc3MIaGl0cyIvdmlkZW9fZGV0YWlsP2lkPQY6Ly8MaHVhd2VpHGhhc093blByb3BlcnR5GHc3WENsUXRKRkE9PQ52b2RfcGljBjs7OxB2b2RfaW5mbzpwYXJzZV9hZnRlcl9jb25maWdfdXNlcl9hZ2VudAoubTN1OAh0cmltDHhJVVlacgpkc3h5cwhVdGY4CGh0dHAUc3RhcnRzV2l0aAxxakRtRXPoKndvZkNrY0tXT2tEQ2tpYkRuOEtOTGlyRGgyVWJ3cTR5dzdWNEE4S2N3cFFlVWNLZnc0TERweVhEckRnVFNjT1FmaXZEbWtqQ3ZFa3pKTU9jd3AxMllXSVhGc0tOV3dqRHZjT0NNOEtoUWNPZEpNS3dMc0s5VFJGN1gwTEN2RTdEck1Ld3c3dkNpRHpEc1hBcXdxQUJ3cmJEdkF6Q25jS1Z3cGZEdTBWTGNsekRtQ2pDcjhLZVFrc3R3N2pEbU1LbXc2Y3V3NTdDb2NLMHdxM0N1M25DdDNZVHdwRVh3N25Dc3NLYndxd1B3NlhEdkNWM3dxRENqTU9ud29MRGx5L0Ruc09Gd3IwSXdwQVVESFZVd3E4T1E4S2tjOEtIdzRMRHNoWk5GY08wQUZrQ0JzS29LRG5Db3NPdUs4T3RhOE9ydzZNMHdvekRvY0tEWGNPNklnaCtWc0tBZHNLSnc3Vmd3N0Urd3F6RG9NS213cnZDcnlYQ2pjT1lIOE92Q3NPMWYya0dmY09Ed292Q3RoOUhjaXZDZ2NLSFZjS3h3cGRRdzRWTlM4T1NGOE9UdzdyQ2t6N0NnY0t5dzVWZXdyUkVBc0t6SHo3Q3NpdkR1MWZEb2NPSGVzS2tTY09wd3FsOHc3SERqc08vdzRuQ3VUY3V3NzdEb0UzRG1NTzBCTU9KdzRyQ2xYTUt3cUZFTmhYRG5oakRrRjUxUGgzRHZjTzdPbFREcThLa004S3lmY0s5R2cvQ3RBbGp3cDdEbHpsUVhqQWxEc0tjUGg3Q3RzS2FWSE41dzdRbXc0OWV3b2ZEajhLZk8yWENsOEtQdzRIQ2k4TzhRY0tyd3BiRGwzZkRoTUs2dzRMRGdjTy9BOEtkdzRiRHRuWERwMDNDaDBiQ2huZDl3cEJ1d3E5U3c2UTJ3NW5EcmNLN1NSNDN3b25EaFVyQ244S1p3N0FPWXNLcVI4S2taeVBEbDhLbGZNS3d3ci9DdVFURHE4S2l3cWdZRzhLM0tNS0lIUnZEa01LUktnREN1M1FFWm1yQ21zS3R3cEZvd3IvQ2hzT2x3clZhdzVJQXc0cHB3cXQ5ZnlQQ3ZBNEt3NkREbTE5L3dvTlNKUnRZZDhPdlJNS1h3NXZEbDI3RHNqUENyc0tPWmlocFljS013ckxDcjhPWVRzS3BaTU9kZmlmQ3U4S2F3cXdHQ3pjY0JCSjd3NHB4d3B0bFpzSzF3cnJEaUJZSXc0QjF3NjdDcDhPeXdvRENrc09XRXNPRFg4SzN3NW9rRGNPV3c3UENxemtDd3IvQ3AxekN1TUt6WmpOWWR4YkRuOEtjdzVIQ3BSTERpc0twdzVuRHI4T1daY0twd3JyRHNjS1J3Nk11Q2NLMU9jS0VhbkZSdzdZbWVTL0NpVkk2WUdoSndyUUZ3cTNEaHNPM3dyRXFIc0t4dzc0ZXdyVERvbWJDbEUvQ244T2lFd1hDdmNPM3dxSERpY09YYU1LZndydkRpc0s4ZnNLUkxNS0daWHpEdjhLNHc2N0Rwc0tRZmNLNWNNT0F3NHdEZXNLc3c1dkNqMGJDckRaMndwa2x3cmtVWWw0cVhNS0J3cjNEdk1PYXc2akNwY09zVDhPQXdxdEJiUmRTS2lkN3dySlN3b0RDbk1LYklGWXVXVVRDclM4cEpzS3N3NDdEZzFzTXdvRTh3N0hEcU1LclNHYkRwVGZDbHp6Q2xGWENnRWg4dzcvQ3NTVThWY0tydzZMRHFjSzB3cWN4d29Sblo4T0dZY0s3VWNPNUZUQXZ3NVl5TDhLbUljS2J3cEltd3BFWHc2ekNxVUpOdzZsaXc0OG13NjVSd29uQ3NNT0dTZ0xDaHNLYXdxTm1MY0tiSlIwcnc2ZkRzbVlCSHNPNGVGSEN1R0VGY01PZUMxSjBiY0tUTUUvQ25sUERoc08xdzR0S05jT3B3NExEbk1Pbnc0WER0TUtjQjI3Q3ZrekRqZ1RDaWhRRk5NSzV3b2Rsd3F2RHQ4S3dBVElzd3A0c3dxbkNvRTlJd3F6Q2tzS0lJU3MrdzdrWHc1bkRrQ0ZtdzRyRHBNT0V3NHh5d3JERG04T25DY09ud3BMRHRERkJLc0tHdzRiRHBUUENuSDNEcjNYRG5uSERrTU9HTThPRHc0L0RpRVRDbWNLeHc2ZGJEc0tYdzZiRGl3WkZ3cExEazhLR1M4T3hBOE9Hd3JIRHVNT0FRTUswQ3NPRFhRakNrY0tsdzRERHBNS2pLY09tZkVRUkxNT1R3N044d3E1ZndvSENxRmZEc0NJUWR4Y1Z3NjlLTkFwMFpjT0x3cTBhWHNPUHdwVENuVWcxd3EvRGk4TytCMlFkdzdnSkpWTEN2RzVJQnNLSEc4TzNFQlhDcVN4RWZ5ckRqU1REbng3RHZDVERsaGJDaE1PZ1h5N0RnaXc2RDhPcndyY0V3NVFkd3JmRG53RXFKMC9EdVF4elBzT3p3cVBEaGNPWVo4S2l3NTFYdzdIRG5YMVh3NkRDclZSenc1ekRpc0t2dzQ1Nnc2dGtIVVhDbWNPY3dvN0RtUmgxdzRoY0tNSzVKaWREd3FGeXdwSVd3cElaSzByQ25VY0VQMlhDdk1LOFpnYkR2a0FjYXNLeUh4WkJ3b2ZDb2NLb3c2Umx3cTNDdE1PUXdxSk93NkE3RkgzQ3A4S2F3NzNDbHpiQ2xXZ1NGOE9jd3A3RHBCekRzY0s4TlZqQ3RjT2FRc08xdzdmQ2dXekRnWDV0S0g3Q2g4T3FZWFBEaFU0YXdvVUV3NlJUdzdaMkRzS2JCOEtHd29RZXc0bEd3NnJEdjhLTFZ4akN2Z0phQ2NLK3dxQnBSR0xDaGNPL3c1ZkN0TU9WYW5uRHQybkRwc09NVzJGYXc2akNxY0tLd3BqRHJtZkRwRTNEdkFZdlVSUXVNUkowSFN2RG44T1B3NHJDblRob0NFdGZ3cmw1d29EQ2kyM0Ruc0t3SEhIRHUxakRwTU9GZmNLQVlWSER1OEtSRHlqQ2tjS2p3clp4d3IxOHc1czJ3b1REdjFqQ2lNS3lZQms4S2lsVUs4SzN3NUlkd3JaS0xzSzZOWEVrd29KMVRBM0N0c09ORVFRWnc0WERnOE9vYkZnM1hNS2F3cFRDcHp3Z0JsWENsY0tCUDBneUtCVmV3NVplRThLekxzT0l3NjdEckRsVndxL0NyVHRFdzR6Q3EzcGJkVzdDdXNPbVc4S1JLTUtDd3I4Wnc1aG9SZzNEdjhLRkk4S1BlOEtyd29IRHBrZkRoc0tsdzRwa3dwSENnY09Bd29WWlMxakRqOEtXd3JMRHVEa09aQTRnWkZZUHc3VjFkMmZDdjhLZ3dvb3BDc0sxQU1PS3c0czB3NURDc3dMQ2pjT3NVM3ZEamNPZkFNT0pMTUszQWNPV3c2dkR1eEpMUERWNk9qdkNvVUpSdzY3Q2l3NU5Wc0swd3B4dHc1aEhiOE9BRmNLV0ZNS3RJRFpndzQ1MGJYSnp3NDlIRHlQRGdqOGN3cHpEdWNLSXdwYkRwOEtxd3FQRGtjT2RNRGtNRmNPZHdveDZlTU9Zd3JSTndvTjB3NzlNdzYvRHJSbkR0anZEaGNPRkRBRERuc09FVG52Q2hNS2dTd1RDcHNLbHdvN0NnOE9oSEdWMndyTT0GMHg1DmhlYWRlcnMWZmFrZUFwcFBhdGgIOW1WQRJ2b2RfYWN0b3IIaG9zdAxodHRwczoGMHgzggFBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPQ5mb3JFYWNoDCZjc3JmPQYkJCQWdG9Mb3dlckNhc2UYZnJvbUNoYXJDb2RlWGh0dHA6Ly9zZGsuYWxpYmFiYS5jb20uYWlsYmFiYS5tZS9kc3gucGhwL3Y2DEdoY2twbgxzY2hlbWUIWERLJg50eXBlX2lkCnNoaWZ0DnJlZmVyZXIKdG90YWwIeW5edRJSU0EvUEtDUzEMcmFuZG9tDlJlZmVyZXIIMHgxYwgweDMyEEQweEd3NVE9CDB4NTMIMHgxMQgweDgzCDB4NmMIMHg1ZAgweDIymAFCOEtkU2NPMUUzbFBjUWJDalU3RG9jS1hXelU2ZE1LT0FNS2l3cUhEbXdQQ3YzeFl3N3ZDaDhPaVZqc1l3NzdDbVVqQ2hUZGd3b2xSCDB4MmEIeDlQYggweDcyCDB4NzUIMHg3YQgweDNkCDB4MjMIMHgzNgYweDcIYThAUAgweDdjCDB4NTIIMHg1ZQgweDgwCDB4NzkSXzB4NWRlNjIwEl8weDI5ODVjORJfMHgxOWY2NzcSXzB4MmQ2NmViEl8weDE5MzZkNRJfMHg1YzBhMTYQXzB4NTgwZDkSXzB4MzFlNTg2CDB4NDYSXzB4MjQzZjg0El8weDFkMTRlYxJfMHgyYWYxZjESXzB4ZTQ1MjY1El8weDQwNDgyMggweDIxCDB4MzQIMHg2NQgweDQ1El8weDQxZWFkOBJfMHgxYTRjZTkSXzB4NDQ5MDY1El8weDFmNmRmOUB7fS5jb25zdHJ1Y3RvcigicmV0dXJuIHRoaXMiKSggKQQpOwx3aW5kb3cIMHgyYggweDU0El8weGQ0MGVmZhJfMHhiYWZkMWMSXzB4NGVjMzUwEl8weGMzODYwYhJfMHg1MDRjOWQSXzB4MjQ4OGJlEl8weDE2NzVkZAgweDZiCDB4ODcIMHg2ZhJfMHgyYTk2MDMSXzB4NTMwMjEzEl8weGM4ZTMzMhJfMHhhYjA2YmISXzB4MmZhOGU3El8weDEyMzkwNRJfMHg0NGIwNTkSXzB4NTE0MmRhEl8weDM3ZGEwMRJfMHgyOTgzN2ISXzB4MThmNjljCDB4MzgCJQQwMAgweDYzCDB4NDAIMHg0ZiRkZWNvZGVVUklDb21wb25lbnQSXzB4MTIxNWI2El8weDJlNDc4ORJfMHg0NDZkNjASXzB4Mjc4NDA4El8weDM3ZmJmORR1c2VyLWFnZW50HHZlcnNpb24tbnVtYmVyCDB4NjgQcGxhdGZvcm0UYnVpbGQtdGltZQZyZXESXzB4NTU0YmQ3El8weDRiYzE2NhJfMHg0MzllZTMSXzB4NGNiZTYyEl8weDM4NjM1ZhJfMHgzMmRhNzcSXzB4M2NiOGFlCDB4NDcIMHg3OAgweDQ0IHc0dkN0OEtEd296Q2xnPT0IMHg2NggweDYyCDB4NWIIMHgyNggweDg0CDB4NzMGMHhhCDB4NzEIMHg2YQgweDg1CDB4MjAKbG9jYWwIMHgxYQRpZAgweDJmCDB4MjUIMHg1YwYweDgSXzB4MWU2NzJkEl8weDI2NmYyNBJfMHg4MjQ4MDkSXzB4NTYyYjBjCDB4MzkSXzB4NTU1ODUyEl8weDM5NGFhYxJfMHg0NWNlNDASXzB4MWFjNTk2El8weDJkZWRhYggweDc0DHlaU0RLVQgweDFiCDB4NTYSXzB4Mzk5OGE2El8weDFhYzkyNxJfMHg1Y2MyNjcSXzB4YWJmNTIzEl8weDFiMjllMxJfMHg0NDM2MTISXzB4NDA3YzA4El8weDRmNGU3OBJfMHgxOGMzYmUSXzB4MmFjM2Y1El8weDE5NTcxNRJfMHgzZjVhZmQSXzB4MjgzMTMyEl8weDMxZDk1NhJfMHg1YTI5MjgSXzB4M2QyZmU5El8weDFkZmVhOBJfMHgyZDdkYzUSXzB4NTk4NjM4El8weDU3N2ZiMRJfMHgyNGY5YTcSXzB4MWI3Y2UzEl8weDJmODQ5OQgweDMxEl8weDhjZWJmYxJfMHg1ZGFmMDYSXzB4NTgzODVmCDB4MmQIcnNhWAgweDNlJGVuY29kZVVSSUNvbXBvbmVudBJfMHg1ODAzNDQIMHgxNwgweDFmAnsCWxJfMHg1NTU2MmQSXzB4NTUzOTM5El8weDRlZDZjNBJfMHgyOGUwMTESXzB4Mjk1OWU2El8weDhkYTE4OBJfMHgzNGQ5Y2ISXzB4YmI2NGM5EF8weGUyOTBmEl8weDM3MzYwYhJfMHgxOTU4MDcSXzB4NGYzNTJiEl8weDVlMTYxYRJfMHg1ZWI4YWUSXzB4NTFhYWFiEl8weDdjMDI4ZBJfMHg0NzE1YjQSXzB4MzlhZDdhEl8weDM2Y2FkORJfMHg1NWE3NmIIMHg3YggweDZlCDB4NjAIMHg1MQgweDVmBjB4OQX0dq1kBQpOv34IMHgzNwgweDQzCDB4OGIIMHg4NggweDE5BXt8i1cIMHg3ZQUwVzpTCDB4NzAF7YsAigh5ZWFyBXRe404IMHgzMwIsBWhR6JACbgJ2CDB4ODIKb3JkZXIFkmOPXgUAZ7BlCDB4NGUFAGftcAYweGMFfVnEiwgweDUwCDB4NWEOZmlsdGVycwR7fRJfMHg5MmI2ODYSXzB4NTgwY2ZhEl8weDRiNDE2NBJfMHg1N2ExNWYSXzB4MjkwNzhiEF8weGNiZDNhEl8weDM3NGVmORJfMHg1YjgzNGUSXzB4MTg5NmJlEl8weDUwNGIwMhYvdmlkZW8/dGlkPQgweDQ4CDB4NTgIMHg2NwhjYWxsAiYCPQgweDU5CDB4MTIIMHg0ORBwYXJzZUludAhwYWdlCDB4M2MSXzB4NGU2MjQzEl8weDNhNjVkZRJfMHhjYzlkMDkSXzB4ZTE3OGY2El8weDI4ZTZiOBJfMHg0OTA2YTkIMHg2ZAomdmlkPQpbYT1kOgQvXQhbL2FdCDB4M2EELCASXzB4MzUyYjBkEl8weDE1OGFhYxJfMHgyZjcxNzUSXzB4MmU4MWY5El8weDU4MGJkNBJfMHgzYTUyMDkSXzB4MTFjNDM0El8weDFiNDNiMwYweGQIMHgxNAYweGIQdm9kX2FyZWEIMHgyNwgweDU1FnZvZF9jb250ZW50FHZvZF9yZWxhdGUmdm9kX3VybF93aXRoX3BsYXllcggweDEwGnZvZF9wbGF5X2Zyb20IMHgyZQgweDgxCDB4NGESXzB4MjZmOWM0El8weDUzNWQ4NRJfMHg1MjI0ZWISXzB4MzBlMGIyEl8weDE3NzdlYRJfMHg0ODk5NmUSXzB4MTY1NmE0El8weDI5YWU3NQ5fMHg4MzAxEl8weDdkMjMxOBJfMHg0MjBiY2QSXzB4MjFhOGM0El8weDU4NGM5ZhJfMHg1ZGUyZWISXzB4MTIyMmQxEl8weDM5NWRkNBJfMHg0ZDUzOTASXzB4NDFkMDYwEl8weDQ5ZmY5NBJfMHgyNDc0ZTMSXzB4MTNkZWVjCDB4NjECChR1c2VyX2FnZW50GHBhcnNlX3NlY3JldAgweDMwCDB4MTM4L3NlY3JldF9wYXJzZV9hcGlfdXJsP3NfdXJsPTJwYXJzZV9hZnRlcl9jb25maWdfZW5hYmxlCDB4NGIIdGVzdAgweDE1CDB4N2YMaGVhZGVyCDB4MTYIbTN1OBBqczJQcm94eQptM3U4LxB0cnkgbmV4dBJfMHgxOTc2NjQSXzB4MjcxNTEwEl8weDFlZGNlMRJfMHg0MmVhMzISXzB4NTc0ZDQ3El8weDQyMzY0YggweDg4AjoIMHg3NxJfMHgyMWFkMGESXzB4NTk3MjA5El8weDUxZWI3NRJfMHgyNTIwNWQSXzB4YzY3YjQ5El8weDNlZmNmMRJfMHgxOWYxY2MSXzB4MjhkMTliCDB4NGMIMHg0ZAgweDQyEl8weDE1ZmU4YxJfMHgyMWRkZjgSXzB4MzUxZTdiEl8weDIxMTFiYxJfMHgzZTlmNzESXzB4NTQ2YzkwCDB4MTgIMHgyNAgweDc2CDB4OGESXzB4MWE4ZWNlEl8weDNjN2I2YhJfMHg0MmMyOGYSXzB4MjQ3ZmU5El8weDQ4MTdmNSJyZWxhdGl2ZTJhYnNvbHV0ZRJfMHhjZThhYjQSXzB4NTNhMTNkEl8weDQwM2I1MBJfMHg1N2Q2YTgSXzB4NTUzZDA5El8weDQ5YmE0YxJfMHg0MzA4YjUSXzB4MzE3YWFjCDB4MWUSXzB4MWQ5ZGU4El8weDIwYzhkMQgweDY0AiASXzB4MmRmODk3El8weDkxZWU4MxJfMHg1YmNiOGESXzB4MzkwOWY3AiQSXzB4MTQ5NTQ3El8weDIyZmJkORJfMHg1MGVkZjISXzB4NGZjM2JhEl8weDMwZDIzOBJfMHg0OGFmY2EELy8CLwIuBjB4ZQgweDI4CDB4MzUSXzB4MmY5N2U4El8weDI0ZmNkMhJfMHg1YjhkZWISXzB4NTdlYTA2El8weDUyNDI4ZBJfMHhmZjg1MWUSXzB4MzJlODY1CDB4MjkIMHgzYggweDQxCDB4MmMSXzB4NDgzYTc2El8weDNlMzgyYhJfMHgyZTc4YTkSXzB4MjZjOWFjEl8weDMwZDY4NBJfMHgzNzJkMGISXzB4ZWZmYTZlEl8weDQzMTgxMQgweDNmBjB4ZgpicmFuZAgweDY5Cm1vZGVsDnJlbGVhc2UIMHg1Nw5idWlsZElkEl8weDE1ZmQzORJfMHg0NDM3YTkIMHg3ZAgweDFkCDB4ODkPpAMBpgMBAC2oAwAEAKoDAAGsAwACrgMAA7ADAA4ABgGgAQAAACAuGa0NAKoDAAysAwEMrgMCDLADAwyyAwANtAMBDbYDAgm4AwMJugMECbwDBQm+AwYJwAMHDcIDCA3EAwkJxgMKCcgDCwnKAwwJzAMNCc4DDgnQAw8J0gMQCdQDEQHWAxIB2AMTAdoDFAHcAxUB3gMWAeADFwHiAxgB5AMZAeYDGgHoAxsJ6gMcAewDHQHuAx4JhgIfAfADIAHyAyEB9AMiAfYDIwH4AyQN+gMlAfwDJgH+AycBgAQoAagDKQEI6Gu+BF8WAL4FXxcAvgZfGAC+B18ZAL4IXxoAvglfGwC+Cl8cAL4LXx0AvgxfHgC+DV8gAL4OXyEAvg9fIwC+EF8kAL4RXyUAvhJfJgC+E18nAL4UXykAvhVfKgC+Fl8rAL4XXywAvhhfLQApBAEBAAAEAgEAAAQDAQAABAQBAAAEBQEAAAQGAQAABAcBAAAECAEAAARrAAAABAkBAAAECgEAAAQLAQAABAwBAAAEDQEAAAQOAQAABA8BAAAEEAEAAAQRAQAABBIBAAAEEwEAAAQUAQAABBUBAAAEFgEAAAQXAQAABBgBAAAEGQEAAARCAAAABBoBAAAEGwEAAAQcAQAABB0BAAAEHgEAACYgAAQfAQAATCAAAIAEIAEAAEwhAACABCEBAABMIgAAgAQiAQAATCMAAIAEIwEAAEwkAACABCQBAABMJQAAgAQlAQAATCYAAIAEJgEAAEwnAACABCcBAABMKAAAgAQoAQAATCkAAIAEKQEAAEwqAACABCoBAABMKwAAgAQrAQAATCwAAIAELAEAAEwtAACABC0BAABMLgAAgAQuAQAATC8AAIAELwEAAEwwAACABDABAABMMQAAgAQxAQAATDIAAIAEMgEAAEwzAACABDMBAABMNAAAgAQ0AQAATDUAAIAENQEAAEw2AACABDYBAABMNwAAgAQ3AQAATDgAAIAEOAEAAEw5AACABDkBAABMOgAAgAQ6AQAATDsAAIAEOwEAAEw8AACABDwBAABMPQAAgAQ9AQAATD4AAIAEPgEAAEw/AACABEAAAABMQAAAgAQ/AQAATEEAAIAEQAEAAExCAACABEEBAABMQwAAgARCAQAATEQAAIAEQwEAAExFAACABEQBAABMRgAAgARFAQAATEcAAIAERgEAAExIAACABEcBAABMSQAAgARIAQAATEoAAIAESQEAAExLAACABEoBAABMTAAAgARLAQAATE0AAIAE3AAAAExOAACABEwBAABMTwAAgARNAQAATFAAAIAETgEAAExRAACABE8BAABMUgAAgARQAQAATFMAAIAEUQEAAExUAACABFIBAABMVQAAgARTAQAATFYAAIAEVAEAAExXAACABFUBAABMWAAAgARWAQAATFkAAIAEVwEAAExaAACABFgBAABMWwAAgARZAQAATFwAAIAEWgEAAExdAACABFsBAABMXgAAgARcAQAATF8AAIAEXQEAAExgAACABF4BAABMYQAAgATbAAAATGIAAIAEHgAAAExjAACABEEAAABMZAAAgARfAQAATGUAAIAEYAEAAExmAACABGEBAABMZwAAgARiAQAATGgAAIAEYwEAAExpAACABN0AAABMagAAgARkAQAATGsAAIAEZQEAAExsAACABGYBAABMbQAAgARnAQAATG4AAIAEaAEAAExvAACABGkBAABMcAAAgARqAQAATHEAAIAEawEAAExyAACABGwBAABMcwAAgARtAQAATHQAAIAEbgEAAEx1AACABG8BAABMdgAAgARwAQAATHcAAIAEcQEAAEx4AACABHIBAABMeQAAgAQ5AAAATHoAAIAEcwEAAEx7AACABHQBAABMfAAAgARdAAAATH0AAIAEdQEAAEx+AACABHYBAABMfwAAgAR3AQAATIAAAIAEeAEAAEyBAACABDAAAABMggAAgAR5AQAATIMAAIAEWwAAAEyEAACABHoBAABMhQAAgAR7AQA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
\ No newline at end of file
diff --git a/cat/js/duanju5_open.js b/cat/js/duanju5_open.js
new file mode 100644
index 0000000..b6df704
--- /dev/null
+++ b/cat/js/duanju5_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1DIAR5kdWFuanU1X29wZW4uanMsYXNzZXRzOi8vanMvbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybgxDcnlwdG8IbG9hZAJfBmtleQhIT1NUDnNpdGVLZXkQc2l0ZVR5cGUSTU9CSUxFX1VBDnJlcXVlc3QIaW5pdAhob21lDmhvbWVWb2QQY2F0ZWdvcnkMZGV0YWlsCHBsYXkMc2VhcmNoGGJhc2U2NERlY29kZRpkZWNvZGVVbmljb2RlB+13Z1JRfypodHRwczovL20uZHVhbmp1NS5jb22WAk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTNfMl8zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xMy4wLjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEMcmVxVXJsDmFnZW50U3AGcmVzBnJlcQxtZXRob2QUVXNlci1BZ2VudA5oZWFkZXJzDmNvbnNvbGUKZGVidWcYcmVxVXJsID09PT4gInJlcy5jb250ZW50ID09PT4gDmNvbnRlbnQGY2ZnCHNrZXkKc3R5cGUMZmlsdGVyDmNsYXNzZXMSZmlsdGVyT2JqDGZpbExldApmaWxCeQhuaXhpDnR5cGVfaWQFBpCtiBJ0eXBlX25hbWUSdGlhbmNob25nBRx1oFsObnVlbGlhbgVQhktgEGNodWFueXVlBX96io0UY2hvbmdzaGVuZwXNkR91DGxldHRlcgVXW81rBWhR6JACbgJ2AkECQgJDAkQCRQJGAkcCSAJJAkoCSwJMAk0CTgJPAlACUQJSAlMCVAJVAlYCVwJYAlkCWgRieQWSY49eBfZl9JUIdGltZQW6ThRsCGhpdHMFxIsGUgpzY29yZRJzdHJpbmdpZnkGbWFwDmZpbHRlcnMGY2xzAmkIcHVzaAR7fQZ0aWQEcGcMZXh0ZW5kCGxpbmsIaHRtbAIkCml0ZW1zDHZpZGVvcw5oYXNNb3JlDnBnQ291bnQSL3ZvZHNob3cvBC0tBi0tLRAtLS0uaHRtbDgubW9kdWxlLWl0ZW1zID4gLm1vZHVsZS1pdGVtNWQAaQB2ACMAcABhAGcAZQAgAD4AIABhADoAYwBvAG4AdABhAGkAbgBzACgAC04ATnWYKQAQcGFyc2VJbnQIcGFnZRJwYWdlY291bnQKbGltaXQKdG90YWwIbGlzdAhpdGVtAmEIdnBpYw5yZW1hcmtzCGZpbmQOYTpmaXJzdBJpbWc6Zmlyc3QOYXR0cmlicxBkYXRhLXNyYyhkaXYubW9kdWxlLWl0ZW0tdGV4dBBjaGlsZHJlbghkYXRhCGhyZWYOcmVwbGFjZQQkMQx2b2RfaWQKdGl0bGUQdm9kX25hbWUUc3RhcnRzV2l0aAQvLwxodHRwczoCLw52b2RfcGljFnZvZF9yZW1hcmtzBGlkCHRhZ3MGdm9kDnBsYXlNYXAIdGFicxJwbGF5bGlzdHMIdXJscxh2b2RfcGxheV91cmwWL3ZvZGRldGFpbC8KLmh0bWwyZGl2LnZpZGVvLWluZm8taXRlbTplcSgxKQh0ZXh0GmgxLnBhZ2UtdGl0bGUIdHJpbRJ2b2RfYWN0b3IYZGl2LnRhZy1saW5rEHZvZF90eXBlGGltZy5sYXp5bG9hZEJkaXYudmlkZW8taW5mby1jb250ZW50IHNwYW46Zmlyc3QWdm9kX2NvbnRlbnQSdm9kID09PT4gZmRpdi5tb2R1bGUtdGFiLWNvbnRlbnQ6Zmlyc3QgPiBkaXZbY2xhc3MqPXRhYi1pdGVtXQhzcGFuGmRpdi5zb3J0LWl0ZW0IZWFjaAhrZXlzBiQkJBp2b2RfcGxheV9mcm9tBnRhYgRpdA5wbGF5VXJsHGhhc093blByb3BlcnR5DHVybGlzdAIjCGZsYWcIcHVybApwYXJzZQptYXRjaAZ1cmwOZW5jcnlwdBB1bmVzY2FwZQR3ZApxdWlja0IvaW5kZXgucGhwL2FqYXgvc3VnZ2VzdD9taWQ9MSZ3ZD0SJmxpbWl0PTUwBGVuBnBpYwZlbmMIVXRmOAxCYXNlNjQGc3RyAiUPpAMBpgMBABKoAwADAKoDAAGsAwACrgMADgAGAaABAAAAARMLWgCqAwAMrAMBDK4DAgywAwAJsgMBCbQDAgm2AwMJuAMEDboDBQG8AwYBvgMHAcADCAHCAwkBxAMKAcYDCwHIAwwBygMNAcwDDgGoAw8BCOg5vgBfCAC+AV8JAL4CXwoAvgNfCwC+BF8MAL4FXw0AvgZfDgC+B18PAL4IXxAAvglfEQC+Cl8SACkE5wAAAOIE6AAAAF8EAL9fBQCzXwYABOkAAABfBwAppAMBDAEAOwYhKxcYAAjWAg5iBgG6AwIBAgYCAGYD1AMAAQDWAwABANgDAQAguAMHDMwDEQBhAAA47QAAAM8LBEEAAABM7gAAAAvQEekFDmUAAEzvAAAATPAAAADui8c48QAAAELyAAAABPMAAADPnSQBAA448QAAAELyAAAABPQAAADcYgAAQfUAAADtnSQBAA5iAABB9QAAAC6kAwoJEiY1CEQcEmyZDmIGAbwDAQABAgIAGAHsAwABALQDBQi2AwYIz0H3AAAAEWYAAA7PQfgAAAARZgEADgYupAMXAwM6Og5iBgG+AwEEAR0BAdUGBfIDAAEA9AMBADD2AwEBcPgDAQJg+gMBA2CuAwIMYQMAYQIAYQEAYQAACwT+AAAATP8AAAAEAAEAAEwBAQAACwQCAQAATP8AAAAEAwEAAEwBAQAACwQEAQAATP8AAAAEBQEAAEwBAQAACwQGAQAATP8AAAAEBwEAAEwBAQAACwQIAQAATP8AAAAECQEAAEwBAQAAJgUAxwvICwQKAQAATNgAAAAECwEAAEw2AAAACwQMAQAATA0BAAC/TA4BAAALBA8BAABMDQEAAAQPAQAATA4BAAALBBABAABMDQEAAAQQAQAATA4BAAALBBEBAABMDQEAAAQRAQAATA4BAAALBBIBAABMDQEAAAQSAQAATA4BAAALBBMBAABMDQEAAAQTAQAATA4BAAALBBQBAABMDQEAAAQUAQAATA4BAAALBBUBAABMDQEAAAQVAQAATA4BAAALBBYBAABMDQEAAAQWAQAATA4BAAALBBcBAABMDQEAAAQXAQAATA4BAAALBBgBAABMDQEAAAQYAQAATA4BAAALBBkBAABMDQEAAAQZAQAATA4BAAALBBoBAABMDQEAAAQaAQAATA4BAAALBBsBAABMDQEAAAQbAQAATA4BAAALBBwBAABMDQEAAAQcAQAATA4BAAALBB0BAABMDQEAAAQdAQAATA4BAAALBB4BAABMDQEAAAQeAQAATA4BAAALBB8BAABMDQEAAAQfAQAATA4BAAALBCABAABMDQEAAAQgAQAATA4BAAALBCEBAABMDQEAAAQhAQAATA4BAAALBCIBAABMDQEAAAQiAQAATA4BAAALBCMBAABMDQEAAAQjAQAATA4BAAALBCQ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
\ No newline at end of file
diff --git a/cat/js/duboku2_open.js b/cat/js/duboku2_open.js
new file mode 100644
index 0000000..0ef3e97
--- /dev/null
+++ b/cat/js/duboku2_open.js
@@ -0,0 +1,166 @@
+import { Crypto, load, _, jinja2 } from './lib/cat.js';
+
+let key = 'duboku';
+let url = 'https://u.duboku.io';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': agentSp || UA,
+ 'Referer': url
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ const html = await request(url);
+ const $ = load(html);
+ const class_parse = $('ul.nav-list > li > a[href*=vodtype]');
+ let classes = [];
+ classes = _.map(class_parse, (cls) => {
+ let typeId = cls.attribs['href'];
+ typeId = typeId.substring(typeId.lastIndexOf('/') + 1).replace('.html','');
+ return {
+ type_id: typeId,
+ type_name: cls.children[0].data,
+ };
+ });
+ let filterObj = {
+ "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"陆剧","v":"13"},{"n":"日韩剧","v":"15"},{"n":"短剧","v":"21"},{"n":"台泰剧","v":"14"},{"n":"港剧","v":"20"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"韩国","v":"韩国"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"英国","v":"英国"},{"n":"巴西","v":"巴西"},{"n":"泰国","v":"泰国"},{"n":"法国","v":"法国"},{"n":"日本","v":"日本"},{"n":"荷兰","v":"荷兰"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"韩语","v":"韩语"},{"n":"泰语","v":"泰语"},{"n":"法语","v":"法语"},{"n":"日语","v":"日语"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "3":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"真人秀","v":"真人秀"},{"n":"选秀","v":"选秀"},{"n":"竞演","v":"竞演"},{"n":"情感","v":"情感"},{"n":"访谈","v":"访谈"},{"n":"播报","v":"播报"},{"n":"旅游","v":"旅游"},{"n":"音乐","v":"音乐"},{"n":"美食","v":"美食"},{"n":"纪实","v":"纪实"},{"n":"曲艺","v":"曲艺"},{"n":"生活","v":"生活"},{"n":"游戏互动","v":"游戏互动"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"韩国","v":"韩国"},{"n":"美国","v":"美国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"玄幻","v":"玄幻"},{"n":"武侠","v":"武侠"},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"},{"n":"少女","v":"少女"},{"n":"社会","v":"社会"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "13":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "15":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "21":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "14":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"台湾","v":"台湾"},{"n":"泰国","v":"泰国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "20":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]
+ };
+
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {
+ const link = url + '/vodshow/2--hits---------.html';
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.myui-panel_bd > ul.myui-vodlist > li');
+ let videos = _.map(items, (item) => {
+ const it = $(item).find('a:first')[0];
+ const remarks = $($(item).find('span.pic-text')[0]).text().trim();
+ return {
+ vod_id: it.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'),
+ vod_name: it.attribs.title,
+ vod_pic: it.attribs['data-original'],
+ vod_remarks: remarks || '',
+ };
+ });
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+
+ const link = url + '/vodshow/' + (extend.CateId || tid) + '-'+(extend.area || '')+'-'+(extend.by || 'time')+'-'+(extend.class || '')+'-'+(extend.lang || '')+'-'+(extend.letter || '')+'---' + (`${pg}`) + '---'+(extend.year || '')+'.html';
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.myui-panel_bd > ul.myui-vodlist > li');
+ let videos = _.map(items, (item) => {
+ const it = $(item).find('a:first')[0];
+ const remarks = $($(item).find('span.pic-text')[0]).text().trim();
+ return {
+ vod_id: it.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'),
+ vod_name: it.attribs.title,
+ vod_pic: it.attribs['data-original'],
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('ul.myui-page > li > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const html = await request(url + '/voddetail/' + id + '.html');
+ const $ = load(html);
+ let vod = {
+ vod_id: id,
+ vod_name: $('h1:first').text().trim(),
+ vod_type: $('.myui-content__detail p:first a').text(),
+ vod_actor: $('.myui-content__detail p:nth-child(5)').text().replace('主演:',''),
+ vod_director: $('.myui-content__detail p:nth-child(6)').text().replace('导演:',''),
+ vod_pic: $('div.myui-content__thumb img:first').attr('data-original'),
+ vod_remarks :$('#rating:first span').text().replace(/\s{2,}/g, ' '),
+ vod_content: $('span.data').text().trim(),
+ };
+ const playlist = _.map($('ul.sort-list > li > a'), (it) => {
+ return it.children[0].data + '$' + it.attribs.href.replace(/\/vodplay\/(.*).html/g, '$1');
+ });
+ vod.vod_play_from = key;
+ vod.vod_play_url = playlist.join('#');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ const link = url + '/vodplay/' + id + '.html';
+ const html = await request(link);
+ const $ = load(html);
+ const js = JSON.parse($('script:contains(player_)').html().replace('var player_data=',''));
+ const playUrl = js.url.replace('index.m3u8','hls\/index.m3u8');
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ });
+}
+
+async function search(wd, quick) {
+ let data = JSON.parse(await request(url + '/index.php/ajax/suggest?mid=1&wd=' + wd)).list;
+ let videos = [];
+ for (const vod of data) {
+ videos.push({
+ vod_id: vod.id,
+ vod_name: vod.name,
+ vod_pic: vod.pic,
+ vod_remarks: '',
+ });
+ }
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/duboku_open.js b/cat/js/duboku_open.js
new file mode 100644
index 0000000..5d5185e
--- /dev/null
+++ b/cat/js/duboku_open.js
@@ -0,0 +1,173 @@
+// 修复 Windows版 播放转圈圈
+import { load, _ } from './lib/cat.js';
+
+let key = 'duboku';
+let HOST = 'https://u.duboku.io';
+// let HOST = 'https://www.duboku.tv';
+let siteKey = '';
+let siteType = 0;
+
+const MOBILE_UA = 'Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36';
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': agentSp || MOBILE_UA,
+ 'Referer': HOST
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ const html = await request(HOST);
+ const $ = load(html);
+ const class_parse = $('ul.nav-list > li > a[href*=vodtype]');
+ let classes = [];
+ classes = _.map(class_parse, (cls) => {
+ let typeId = cls.attribs['href'];
+ typeId = typeId.substring(typeId.lastIndexOf('/') + 1).replace('.html','');
+ return {
+ type_id: typeId,
+ type_name: cls.children[0].data,
+ };
+ });
+ let filterObj = {
+ "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"陆剧","v":"13"},{"n":"日韩剧","v":"15"},{"n":"短剧","v":"21"},{"n":"台泰剧","v":"14"},{"n":"港剧","v":"20"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"韩国","v":"韩国"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"英国","v":"英国"},{"n":"巴西","v":"巴西"},{"n":"泰国","v":"泰国"},{"n":"法国","v":"法国"},{"n":"日本","v":"日本"},{"n":"荷兰","v":"荷兰"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"韩语","v":"韩语"},{"n":"泰语","v":"泰语"},{"n":"法语","v":"法语"},{"n":"日语","v":"日语"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "3":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"真人秀","v":"真人秀"},{"n":"选秀","v":"选秀"},{"n":"竞演","v":"竞演"},{"n":"情感","v":"情感"},{"n":"访谈","v":"访谈"},{"n":"播报","v":"播报"},{"n":"旅游","v":"旅游"},{"n":"音乐","v":"音乐"},{"n":"美食","v":"美食"},{"n":"纪实","v":"纪实"},{"n":"曲艺","v":"曲艺"},{"n":"生活","v":"生活"},{"n":"游戏互动","v":"游戏互动"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"韩国","v":"韩国"},{"n":"美国","v":"美国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"玄幻","v":"玄幻"},{"n":"武侠","v":"武侠"},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"},{"n":"少女","v":"少女"},{"n":"社会","v":"社会"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "13":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "15":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "21":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "14":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"台湾","v":"台湾"},{"n":"泰国","v":"泰国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "20":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"科幻","v":"科幻"},{"n":"都市","v":"都市"},{"n":"爱情","v":"爱情"},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春","v":"青春"},{"n":"偶像","v":"偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"乡村","v":"乡村"},{"n":"年代","v":"年代"},{"n":"警匪","v":"警匪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"BL","v":"BL"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"A"},{"n":"B","v":"B"},{"n":"C","v":"C"},{"n":"D","v":"D"},{"n":"E","v":"E"},{"n":"F","v":"F"},{"n":"G","v":"G"},{"n":"H","v":"H"},{"n":"I","v":"I"},{"n":"J","v":"J"},{"n":"K","v":"K"},{"n":"L","v":"L"},{"n":"M","v":"M"},{"n":"N","v":"N"},{"n":"O","v":"O"},{"n":"P","v":"P"},{"n":"Q","v":"Q"},{"n":"R","v":"R"},{"n":"S","v":"S"},{"n":"T","v":"T"},{"n":"U","v":"U"},{"n":"V","v":"V"},{"n":"W","v":"W"},{"n":"X","v":"X"},{"n":"Y","v":"Y"},{"n":"Z","v":"Z"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]
+ };
+
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {
+ const link = HOST + '/vodshow/2--hits---------.html';
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.myui-panel_bd > ul.myui-vodlist > li');
+ let videos = _.map(items, (item) => {
+ const it = $(item).find('a:first')[0];
+ const remarks = $($(item).find('span.pic-text')[0]).text().trim();
+ return {
+ vod_id: it.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'),
+ vod_name: it.attribs.title,
+ vod_pic: it.attribs['data-original'],
+ vod_remarks: remarks || '',
+ };
+ });
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ const link = HOST + '/vodshow/' + (extend.CateId || tid) + '-'+(extend.area || '')+'-'+(extend.by || 'time')+'-'+(extend.class || '')+'-'+(extend.lang || '')+'-'+(extend.letter || '')+'---' + (`${pg}`) + '---'+(extend.year || '')+'.html';
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.myui-panel_bd > ul.myui-vodlist > li');
+ let videos = _.map(items, (item) => {
+ const it = $(item).find('a:first')[0];
+ const remarks = $($(item).find('span.pic-text')[0]).text().trim();
+ return {
+ vod_id: it.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'),
+ vod_name: it.attribs.title,
+ vod_pic: it.attribs['data-original'],
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('ul.myui-page > li > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const html = await request(HOST + '/voddetail/' + id + '.html');
+ const $ = load(html);
+ let vod = {
+ vod_id: id,
+ vod_name: $('h1:first').text().trim(),
+ vod_type: $('.myui-content__detail p:first a').text(),
+ vod_actor: $('.myui-content__detail p:nth-child(5)').text().replace('主演:',''),
+ vod_director: $('.myui-content__detail p:nth-child(6)').text().replace('导演:',''),
+ vod_pic: $('div.myui-content__thumb img:first').attr('data-original'),
+ vod_remarks :$('#rating:first span').text().replace(/\s{2,}/g, ' '),
+ vod_content: $('span.data').text().trim(),
+ };
+ const playlist = _.map($('ul.sort-list > li > a'), (it) => {
+ return it.children[0].data + '$' + it.attribs.href.replace(/\/vodplay\/(.*).html/g, '$1');
+ });
+ // vod.vod_play_from = key;
+ vod.vod_play_from = '道长在线';
+ vod.vod_play_url = playlist.join('#');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ const link = HOST + '/vodplay/' + id + '.html';
+ const html = await request(link);
+ const $ = load(html);
+ const js = JSON.parse($('script:contains(player_)').html().replace(/var player_.*=/,''));
+ const playUrl = js.url;
+ let headers = {
+ "referer": HOST+"/static/player/vidjs.html",
+ };
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ header: headers,
+ });
+}
+
+async function search(wd, quick) {
+ let data = JSON.parse(await request(HOST + '/index.php/ajax/suggest?mid=1&wd=' + wd + '&limit=50')).list;
+ let videos = [];
+ for (const vod of data) {
+ videos.push({
+ vod_id: vod.id,
+ vod_name: vod.name,
+ vod_pic: vod.pic,
+ vod_remarks: '',
+ });
+ }
+ return JSON.stringify({
+ list: videos,
+ limit: 50,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/dyxs_open.js b/cat/js/dyxs_open.js
new file mode 100644
index 0000000..b9bc9e4
--- /dev/null
+++ b/cat/js/dyxs_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1DoARhkeXhzX29wZW4uanMYLi9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuDENyeXB0bwhsb2FkAl8Ga2V5CEhPU1QGdXJsDnNpdGVLZXkQc2l0ZVR5cGUEVUEOcmVxdWVzdAhpbml0CGhvbWUOaG9tZVZvZBBjYXRlZ29yeQxkZXRhaWwIcGxheRhiYXNlNjRFbmNvZGUYYmFzZTY0RGVjb2RlDHNlYXJjaAhkeXhzQGh0dHBzOi8veGluZGl6aGkuZ2l0aHViLmlvL2R5eHMvigJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDlfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDEuMS40NiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vOS4wIE1vYmlsZS8xM0UyMzAgU2FmYXJpLzYwMS4xDHJlcVVybA5hZ2VudFNwBnJlcwZyZXEMbWV0aG9kFFVzZXItQWdlbnQOUmVmZXJlcg5oZWFkZXJzDmNvbnRlbnQGY2ZnCGh0bWwIc2tleQpzdHlwZQptYXRjaA5jb25zb2xlCmRlYnVnF/ONbI8wV0BXIAA9AD0APQA9AD0APgAMZmlsdGVyDmNsYXNzZXMSZmlsdGVyT2JqHnBpYW5rdS1kaWFueWluZw50eXBlX2lkBTV1cV8SdHlwZV9uYW1lIHBpYW5rdS1kaWFuc2hpanUF/Y9nUhpwaWFua3Utem9uZ3lpBfx+eoIccGlhbmt1LWRvbmdtYW4FqFIrbwVnUsVgBWhR6JACbgJ2Dk5ldGZsaXgFnFVnUgWoUlxPBTFyxWAF0Xl7XgWoUjt1BaxgkXUFymCaYAVmiypTBVBgFmAFr3JqfwUMVCdgBfOXUE4FTGseggUgT7CLBYZT8lMFGGKJTgV/ieiQBUdZe14FklFplgV+cL6WBWZroE8F5FPFiAWqflVfBdCPqFIJUpclZnZQz1AF/ZACXgXFYG9mBe13R3IIYXJlYQUwVzpTCS1O/VYnWUaWCS1O/VaZmS9uCS1O/VbwU35uBY5//VYF6Zf9VgXlZSxnBfBs/VYHsGWgUmFXCWyaZWd/iZpOBXBTpl4F8YL9VgXVbP1WB6BS/2InWQd/ie1zWXIHxE9Xf69lCbNvJ1kpUppOBXZRg1sIbGFuZwXtiwCKBf1W7YsF8YLtiwWkfO2LB/2VV1PtiwXpl+2LBeVl7YsF1WztiwW3X+2LCQ9hJ1kpUu2LBfBs7YsJf4ntc1ly7YsJYYQEhFly7YsHcFMwV+2LCfBsc3wUXO2LBcRP7YsIeWVhcgX2ZfSVBGJ5BZJjj14IdGltZQW6ThRsCGhpdHMFxIsGUgpzY29yZQXtd2dSBXZR1k4HH3e6TsB5BcVlOG4Fjn/fmBJzdHJpbmdpZnkOZmlsdGVycwZ0aWQEcGcMZXh0ZW5kCGxpbmsCJAppdGVtcwx2aWRlb3MOaGFzTW9yZQ5wZ0NvdW50Ai8CLQgtLS0tBi0tLUBkaXYubW9kdWxlLWl0ZW1zIGRpdi5tb2R1bGUtaXRlbQZtYXA1ZABpAHYAIwBwAGEAZwBlACAAPgAgAGEAOgBjAG8AbgB0AGEAaQBuAHMAKAALTgBOdZgpABBwYXJzZUludAhwYWdlEnBhZ2Vjb3VudApsaW1pdAp0b3RhbAhsaXN0CGl0ZW0EaXQCaw5yZW1hcmtzCGZpbmQCYRJpbWc6Zmlyc3QoZGl2Lm1vZHVsZS1pdGVtLXRleHQIdGV4dAh0cmltDmF0dHJpYnMIaHJlZgx2b2RfaWQKdGl0bGUQdm9kX25hbWUQZGF0YS1zcmMOdm9kX3BpYxZ2b2RfcmVtYXJrcwRpZAZ2b2QOcGxheU1hcAh0YWJzEnBsYXlsaXN0cwh1cmxzGHZvZF9wbGF5X3VybBBoMTpmaXJzdCIudmlkZW8taW5mby1hdXggYRB2b2RfdHlwZSoudmlkZW8taW5mby1tYWluIHNwYW4OcmVwbGFjZQ0KTiBmGv9nUsVgGv8Sdm9kX2FjdG9yNC5tb2R1bGUtaXRlbS1waWMgaW1nOmZpcnN0CGF0dHJILnN0dWktY29udGVudF9fZGV0YWlsIHA6bnRoLWNoaWxkKDUpJi52aWRlby1pbmZvLWNvbnRlbnQWdm9kX2NvbnRlbnRmZGl2Lm1vZHVsZS10YWItY29udGVudCA+IGRpdi5tb2R1bGUtdGFiLWl0ZW0gPiBzcGFuGmRpdi5zb3J0LWl0ZW0IZWFjaAhrZXlzBiQkJBp2b2RfcGxheV9mcm9tBnRhYgJpEGNoaWxkcmVuCGRhdGEOcGxheVVybBxoYXNPd25Qcm9wZXJ0eQhwdXNoDHVybGlzdAIjCGZsYWcEanMOcGxheXVybApwYXJzZTBzY3JpcHQ6Y29udGFpbnMocGxheWVyXykgdmFyIHBsYXllcl9hYWFhPRB1bmVzY2FwZQQkMQZlbmMMQmFzZTY0CFV0ZjgEd2QKcXVpY2sQL3NlYXJjaC0WLS0tLS0tLS0tLS0ELS1OZGl2Lm1vZHVsZS1pdGVtcyBkaXYubW9kdWxlLXNlYXJjaC1pdGVtIGRpdi52aWRlby1zZXJpYWwPpAMBpgMBABOoAwADAKoDAAGsAwACrgMADgAGAaABAAAAARQLXgCqAwAMrAMBDK4DAgywAwAJsgMBCbQDAgm2AwMJuAMECboDBQ28AwYBvgMHAcADCAHCAwkBxAMKAcYDCwHIAwwBygMNAcwDDgHOAw8BqAMQAQjoOb4AXwkAvgFfCgC+Al8LAL4DXwwAvgRfDQC+BV8OAL4GXw8AvgdfEAC+CF8RAL4JXxIAvgpfEwApBOgAAADiBOkAAABfBAC/XwUAv18GALNfBwAE6gAAAF8IACmkAwENAQA7BiErFxcYAAjGAg5iBgG8AwIBAgYCADsD1gMAAQDYAwABANoDAQAgugMIDLIDBAhhAAA47gAAAM8LBEEAAABM7wAAAAvQEekFDmUAAEzwAAAAZQEATPEAAABM8gAAAO6Lx2IAAEHzAAAALqQDCwgSJjUIRCscEg5iBgG+AwEBAQQFAlAC6AMAAQDqAwEAILYDBgi4AwcIvAMJALIDBAi0AwUIYQAAz0H2AAAAEWYAAA7PQfcAAAARZgEADt1lAwDti8diAABC+AAAAL0AvQEzJAEAtEcRZgQADjj5AAAAQvoAAAAE+wAAAGUEAJ0kAQAOBi6kAxcGEjo6JnZ2B2g8YSB0YXJnZXQ9LiogaHJlZj0iKGh0dHAuKmR5eHNbMS05XVswLTldLipjb20pIj5odHRwB5ADAAIAwQAAAAgGAAAABAf1////CwABPAABYQABIAABdAABYQABcgABZwABZQABdAABPQAcAgAAAAAAAAD///9/AQAAAAMKASAAAWgAAXIAAWUAAWYAAT0AASIACwEBaAABdAABdAABcAAcAgAAAAAAAAD///9/AQAAAAMKAWQAAXkAAXgAAXMAFQEAMQA5ABUBADAAOQAcAgAAAAAAAAD///9/AQAAAAMKAWMAAW8AAW0ADAEBIgABPgABaAABdAABdAABcAAMAAoOYgYBwAMBAgEjAJgB0DgD+AMAAQD6AwEAIPwDAQEgYQEAYQAACwT/AAAATAABAAAEAQEAAEwCAQAACwQDAQAATAABAAAEBAEAAEwCAQAACwQFAQAATAABAAAEBgEAAEwCAQAACwQHAQAATAABAAAECAEAAEwCAQAAJgQAxwsLBB4AAABM2AAAAAQJAQAATDYAAAALBAoBAABMCwEAAL9MDAEAAAsEDQEAAEwLAQAABA0BAABMDAEAAAsECQEAAEwLAQAABAkBAABMDAEAAAsEDgEAAEwLAQAABA4BAABMDAEAAAsEDwEAAEwLAQAABA8BAABMDAEAAAsEEAEAAEwLAQAABBABAABMDAEAAAsEEQEAAEwLAQAABBEBAABMDAEAAAsEEgEAAEwLAQAABBIBAABMDAEAAAsEEwEAAEwLAQAABBMBAABMDAEAAAsEFAEAAEwLAQAABBQBAABMDAEAAAsEFQEAAEwLAQAABBUBAABMDAEAAAsEFgEAAEwLAQAABBYBAABMDAEAAAsEFwEAAEwLAQAABBcBAABMDAEAAAsEGAEAAEwLAQAABBgBAABMDAEAAAsEGQEAAEwLAQAABBkBAABMDAEAAAsEGgEAAEwLAQAABBoBAABMDAEAAAsEGwEAAEwLAQAABBsBAABMDAEAAAsEHAEAAEwLAQAABBwBAABMDAEAAAsEHQEAAEwLAQAABB0BAABMDAEAAAsEHgEAAEwLAQAABB4BAABMDAEAAAsEHwEAAEwLAQAABB8BAABMDAEAAAsEIAEAAEwLAQAABCABAABMDAEAAAsEIQEAAEwLAQAABCEBAABMDAEAAAsEIgEAAEwLAQAABCIBAABMDAEAAAsEIwEAAEwLAQAABCMBAABMDAEAAAsEJAEAAEwLAQAABCQBAABMDAEAAAsEJQEAAEwLAQAABCUBAABMDAEAAAsEJgEAAEwLAQAABCYBAABMDAEAAAsEJwEAAEwLAQAABCcBAABMDAEAAAsEKAEAAEwLAQAABCgBAABMDAEAAAsEKQEAAEwLAQAABCkBAABMDAEAAAsEDQEAAEwLAQAABA0BAABMDAEAACYgAExAAAAACwQqAQAATNgAAAAEKwEAAEw2AAAACwQKAQAATAsBAAC/TAwBAAALBCwBAABMCwEAAAQsAQAATAwBAAALBC0BAAB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XAQAATAsBAAAEVwEAAEwMAQAACwQNAQAATAsBAAAEDQEAAEwMAQAAJiAATEAAAAALBCoBAABM2AAAAAQrAQAATDYAAAALBAoBAABMCwEAAL9MDAEAAAsELAEAAEwLAQAABCwBAABMDAEAAAsELQEAAEwLAQAABC0BAABMDAEAAAsELgEAAEwLAQAABC4BAABMDAEAAAsEMAEAAEwLAQAABDABAABMDAEAAAsEMQEAAEwLAQAABDEBAABMDAEAAAsELwEAAEwLAQAABC8BAABMDAEAAAsEMgEAAEwLAQAABDIBAABMDAEAAAsENgEAAEwLAQAABDYBAABMDAEAAAsEMwEAAEwLAQAABDMBAABMDAEAAAsEWAEAAEwLAQAABFgBAABMDAEAACYLAExAAAAACwQ9AQAATNgAAAAEPgEAAEw2AAAACwQKAQAATAsBAAC/TAwBAAALBD8BAABMCwEAAAQ/AQAATAwBAAALBEABAABMCwEAAARAAQAATAwBAAALBEEBAABMCwEAAARBAQAATAwBAAALBEIBAABMCwEAAARCAQAATAwBAAALBEMBAABMCwEAAARDAQAATAwBAAALBEQBAABMCwEAAAREAQAATAwBAAALBEUBAABMCwEAAARFAQAATAwBAAALBEYBAABMCwEAAARGAQAATAwBAAALBEcBAABMCwEAAARHAQAATAwBAAALBEgBAABMCwEAAARIAQAATAwBAAALBEkBAABMCwEAAARJAQAATAwBAAALBEoBAABMCwEAAARKAQAATAwBAAALBEsBAABMCwEAAARLAQAATAwBAAALBEwBAABMCwEAAARMAQAATAwBAAALBE0BAABMCwEAAARNAQAATAwBAAALBDwBAABMCwEAAAQ8AQAATAwBAAAmEQBMQAAAAAsETgEAAEzYAAAABE8BAABMNgAAAAsECgEAAEwLAQAAv0wMAQAAC70mTAsBAAC9J0wMAQAAC70oTAsBAAC9KUwMAQAAC70qTAsBAAC9K0wMAQAAC70sTAsBAAC9LUwMAQAAC70uTAsBAAC9L0wMAQAAC70wTAsBAAC9MUwMAQAAC70yTAsBAAC9M0wMAQAAC700TAsBAAC9NUwMAQAAC702TAsBAAC9N0wMAQAAC704TAsBAAC9OUwMAQAAC706TAsBAAC9O0wMAQAAC708TAsBAAC9PUwMAQAAC70+TAsBAAC9P0wMAQAAC71ATAsBAAC9QUwMAQAAC71CTAsBAAC9Q0wMAQAAC71ETAsBAAC9RUwMAQAAC71GTAsBAAC9R0wMAQAAC71ITAsBAAC9SUwMAQAAC71KTAsBAAC9S0wMAQAAJhQATEAAAAALBFABAABM2AAAAARRAQAATDYAAAALBE8BAABMCwEAAARSAQAATAwBAAALBFMBAABMCwEAAARUAQAATAwBAAALBFUBAABMCwEAAARWAQAATAwBAAAmAwBMQAAAACYFAEwDAQAACwQeAAAATNgAAAAECQEAAEw2AAAACwQKAQAATAsBAAC/TAwBAAALBA0BAABMCwEAAAQNAQAATAwBAAALBAkBAABMCwEAAAQJAQAATAwBAAALBA4BAABMCwEAAAQOAQAATAwBAAALBA8BAABMCwEAAAQPAQAATAwBAAALBBABAABMCwEAAAQQAQAATAwBAAALBBEBAABMCwEAAAQRAQAATAwBAAALBBIBAABMCwEAAAQSAQAATAwBAAALBBMBAABMCwEAAAQTAQAATAwBAAALBBQBAABMCwEAAAQUAQAATAwBAAALBBUBAABMCwEAAAQVAQAATAwBAAALBBYBAABMCwEAAAQWAQAATAwBAAALBBcBAABMCwEAAAQXAQAATAwBAAALBBgBAABMCwEAAAQYAQAATAwBAAALBBkBAABMCwEAAAQZAQAATAwBAAALBBoBAABMCwEAAAQaAQAATAwBAAALBBsBAABMCwEAAAQbAQAATAwBAAALBBwBAABMCwEAAAQcAQAATAwBAAALBB0BAABMCwEAAAQdAQAATAwBAAALBB4BAABMCwEAAAQeAQAATAwBAAALBB8BAABMCwEAAAQfAQAATAwBAAALBCABAABMCwEAAAQgAQAATAwBAAALBCEBAABMCwEAAAQhAQAATAwBAAALBCIBAABMCwEAAAQiAQAATAwBAAALBCMBAABMCwEAAAQjAQAATAwBAAALBCQBAABMCwEAAAQkAQAATAwBAAALBCUBAABMCwEAAAQlAQAATAwBAAALBCYBAABMCwEAAAQmAQAATAwBAAALBCcBAABMCwEAAAQnAQAATAwBAAALBCgBAABMCwEAAAQoAQAATAwBAAALBFgBAABMCwEAAARYAQAATAwBAAALBA0BAABMCwEAAAQNAQAATAwBAAAmIABMQAAAAAsEKgEAAEzYAAAABCsBAABMNgAAAAsECgEAAEwLAQAAv0wMAQAACwQsAQAATAsBAAAELAEAAEwMAQAACwQtAQAATAsBAAAELQEAAEwMAQAACwQuAQAATAsBAAAELgEAAEwMAQAACwQxAQAATAsBAAAEMQEAAEwMAQAACwQvAQAATAsBAAAELwEAAEwMAQAACwRYAQAATAsBAAAEWAEAAEwMAQAAJgcATEAAAAALBD0BAABM2AAAAAQ+AQAATDYAAAALBAoBAABMCwEAAL9MDAEAAAsEPwEAAEwLAQAABD8BAABMDAEAAAsEQAEAAEwLAQAABEABAABMDAEAAAsEQQEAAEwLAQAABEEBAABMDAEAAAsEQgEAAEwLAQAABEIBAABMDAEAAAsEQwEAAEwLAQAABEMBAABMDAEAAAsERAEAAEwLAQAABEQBAABMDAEAAAsERQEAAEwLAQAABEUBAABMDAEAAAsERgEAAEwLAQAABEYBAABMDAEAAAsERwEAAEwLAQAABEcBAABMDAEAAAsESAEAAEwLAQAABEgBAABMDAEAAAsESQEAAEwLAQAABEkBAABMDAEAAAsESgEAAEwLAQAABEoBAABMDAEAAAsESwEAAEwLAQAABEsBAABMDAEAAAsETAEAAEwLAQAABEwBAABMDAEAAAsETQEAAEwLAQAABE0BAABMDAEAAAsEPAEAAEwLAQAABDwBAABMDAEAACYRAExAAAAACwROAQAATNgAAAAETwEAAEw2AAAACwQKAQAATAsBAAC/TAwBAAALvUxMCwEAAL1NTAwBAAALvU5MCwEAAL1PTAwBAAALvVBMCwEAAL1RTAwBAAALvVJMCwEAAL1TTAwBAAALvVRMCwEAAL1VTAwBAAALvVZMCwEAAL1XTAwBAAALvVhMCwEAAL1ZTAwBAAALvVpMCwEAAL1bTAwBAAALvVxMCwEAAL1dTAwBAAALvV5MCwEAAL1fTAwBAAALvWBMCwEAAL1hTAwBAAALvWJMCwEAAL1jTAwBAAALvWRMCwEAAL1lTAwBAAALvWZMCwEAAL1nTAwBAAALvWhMCwEAAL1pTAwBAAALvWpMCwEAAL1rTAwBAAALvWxMCwEAAL1tTAwBAAALvW5MCwEAAL1vTAwBAAALvXBMCwEAAL1xTAwBAAAmFABMQAAAAAsEUAEAAEzYAAAABFEBAABMNgAAAAsETwEAAEwLAQAABFIBAABMDAEAAAsEUwEAAEwLAQAABFQBAABMDAEAAAsEVQEAAEwLAQAABFYBAABMDAEAACYDAExAAAAAJgUATAcBAAALBB4AAABM2AAAAAQJAQAATDYAAAALBAoBAABMCwEAAL9MDAEAAAsEDQEAAEwLAQAABA0BAABMDAEAAAsECQEAAEwLAQAABAkBAABMDAEAAAsEDgEAAEwLAQAABA4BAABMDAEAAAsEDwEAAEwLAQAABA8BAABMDAEAAAsEEAEAAEwLAQAABBABAABMDAEAAAsEEQEAAEwLAQAABBEBAABMDAEAAAsEEgEAAEwLAQAABBIBAABMDAEAAAsEEwEAAEwLAQAABBMBAABMDAEAAAsEFAEAAEwLAQAABBQBAABMDAEAAAsEFQEAAEwLAQAABBUBAABMDAEAAAsEFgEAAEwLAQAABBYBAABMDAEAAAsEFwEAAEwLAQAABBcBAABMDAEAAAsEGAEAAEwLAQAABBgBAABMDAEAAAsEGQEAAEwLAQAABBkBAABMDAEAAAsEGgEAAEwLAQAABBoBAABMDAEAAAsEGwEAAEwLAQAABBsBAABMDAEAAAsEHAEAAEwLAQAABBwBAABMDAEAAAsEHQEAAEwLAQAABB0BAABMDAEAAAsEHgEAAEwLAQAABB4BAABMDAEAAAsEHwEAAEwLAQAABB8BAABMDAEAAAsEIAEAAEwLAQAABCABAABMDAEAAAsEIQEAAEwLAQAABCEBAABMDAEAAAsEIgEAAEwLAQAABCIBAABMDAEAAAsEIwEAAEwLAQAABCMBAABMDAEAAAsEJAEAAEwLAQAABCQBAABMDAEAAAsEJQEAAEwLAQAABCUBAABMDAEAAAsEJgEAAEwLAQAABCYBAABMDAEAAAsEJwEAAEwLAQAABCcBAABMDAEAAAsEKAEAAEwLAQAABCgBAABMDAEAAAsEWQEAAEwLAQAABFkBAABMDAEAAAsEWgEAAEwLAQAABFoBAABMDAEAACYgAAsEGQEAAEwLAQAABBkBAABMDAEAAEwgAACACwRbAQAATAsBAAAEWwEAAEwMAQAATCEAAIALBA0BAABMCwEAAAQNAQAATAwBAABMIgAAgExAAAAACwQqAQAATNgAAAAEKwEAAEw2AAAACwQKAQAATAsBAAC/TAwBAAALBCwBAABMCwEAAAQsAQAATAwBAAALBC0BAABMCwEAAAQtAQAATAwBAAALBC4BAABMCwEAAAQuAQAATAwBAAALBDEBAABMCwEAAAQxAQAATAwBAAALBC8BAABMCwEAAAQvAQAATAwBAAALBFgBAABMCwEAAARYAQAATAwBAAAmBwBMQAAAAAsEPQEAAEzYAAAABD4BAABMNgAAAAsECgEAAEwLAQAAv0wMAQAACwQ/AQAATAsBAAAEPwEAAEwMAQAACwRAAQAATAsBAAAEQAEAAEwMAQAACwRBAQAATAsBAAAEQQEAAEwMAQAACwRCAQAATAsBAAAEQgEAAEwMAQAACwRDAQAATAsBAAAEQwEAAEwMAQAACwREAQAATAsBAAAERAEAAEwMAQAACwRFAQAATAsBAAAERQEAAEwMAQAACwRGAQAATAsBAAAERgEAAEwMAQAACwRHAQAATAsBAAAERwEAAEwMAQAACwRIAQAATAsBAAAESAEAAEwMAQAACwRJAQAATAsBAAAESQEAAEwMAQAACwRKAQAATAsBAAAESgEAAEwMAQAACwRLAQAATAsBAAAESwEAAEwMAQAACwRMAQAATAsBAAAETAEAAEwMAQAACwRNAQAATAsBAAAETQEAAEwMAQAACwQ8AQAATAsBAAAEPAEAAEwMAQAAJhEATEAAAAALBE4BAABM2AAAAARPAQAATDYAAAALBAoBAABMCwEAAL9MDAEAAAu9ckwLAQAAvXNMDAEAAAu9dEwLAQAAvXVMDAEAAAu9dkwLAQAAvXdMDAEAAAu9eEwLAQAAvXlMDAEAAAu9ekwLAQAAvXtMDAEAAAu9fEwLAQAAvX1MDAEAAAu9fkwLAQAAvX9MDAEAAAu9gEwLAQAAvYFMDAEAAAu9gkwLAQAAvYNMDAEAAAu9hEwLAQAAvYVMDAEAAAu9hkwLAQAAvYdMDAEAAAu9iEwLAQAAvYlMDAEAAAu9ikwLAQAAvYtMDAEAAAu9jEwLAQAAvY1MDAEAAAu9jkwLAQAAvY9MDAEAAAu9kEwLAQAAvZFMDAEAAAu9kkwLAQAAvZNMDAEAAAu9lEwLAQAAvZVMDAEAAAu9lkwLAQAAvZdMDAEAACYUAExAAAAACwRQAQAATNgAAAAEUQEAAEw2AAAACwRPAQAATAsBAAAEUgEAAEwMAQAACwRTAQAATAsBAAAEVAEAAEwMAQAACwRVAQAATAsBAAAEVgEAAEwMAQAAJgMATEAAAAAmBQBMBQEAAMg4mAAAAEJcAQAAC2IAAEweAAAAYgEATF0BAAAkAQAupAMfGSEAWAIIAPkOAgDmDQIAkg0CAOANAgk6KysHCDIwMjMHCDIwMjMHCDIwMjIHCDIwMjIHCDIwMjEHCDIwMjEHCDIwMjAHCDIwMjAHCDIwMTkHCDIwMTkHCDIwMTgHCDIwMTgHCDIwMTcHCDIwMTcHCDIwMTYHCDIwMTYHCDIwMTUHCDIwMTUHCDIwMTQHCDIwMTQHCDIwMTMHCDIwMTMHCDIwMTIHCDIwMTIHCDIwMTEHCDIwMTEHCDIwMTAHCDIwMTAHCDIwMDkHCDIwMDkHCDIwMDgHCDIwMDgHCDIwMDcHCDIwMDcHCDIwMDYHCDIwMDYHCDIwMDUHCDIwMDUHCDIwMjMHCDIwMjMHCDIwMjIHCDIwMjIHCDIwMjEHCDIwMjEHCDIwMjAHCDIwMjAHCDIwMTkHCDIwMTkHCDIwMTgHCDIwMTgHCDIwMTcHCDIwMTcHCDIwMTYHCDIwMTYHCDIwMTUHCDIwMTUHCDIwMTQHCDIwMTQHCDIwMTMHCDIwMTMHCDIwMTIHCDIwMTIHCDIwMTEHCDIwMTEHCDIwMTAHCDIwMTAHCDIwMDkHCDIwMDkHCDIwMDgHCDIwMDgHCDIwMDcHCDIwMDcHCDIwMDYHCDIwMDYHCDIwMDUHCDIwMDUHCDIwMjMHCDIwMjMHCDIwMjIHCDIwMjIHCDIwMjEHCDIwMjEHCDIwMjAHCDIwMjAHCDIwMTkHCDIwMTkHCDIwMTgHCDIwMTgHCDIwMTcHCDIwMTcHCDIwMTYHCDIwMTYHCDIwMTUHCDIwMTUHCDIwMTQHCDIwMTQHCDIwMTMHCDIwMTMHCDIwMTIHCDIwMTIHCDIwMTEHCDIwMTEHCDIwMTAHCDIwMTAHCDIwMDkHCDIwMDkHCDIwMDgHCDIwMDgHCDIwMDcHCDIwMDcHCDIwMDYHCDIwMDYHCDIwMDUHCDIwMDUHCDIwMjMHCDIwMjMHCDIwMjIHCDIwMjIHCDIwMjEHCDIwMjEHCDIwMjAHCDIwMjAHCDIwMTkHCDIwMTkHCDIwMTgHCDIwMTgHCDIwMTcHCDIwMTcHCDIwMTYHCDIwMTY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
\ No newline at end of file
diff --git a/cat/js/fengche_open.js b/cat/js/fengche_open.js
new file mode 100644
index 0000000..00c667e
--- /dev/null
+++ b/cat/js/fengche_open.js
@@ -0,0 +1,147 @@
+import { _, Uri, load } from 'assets://js/lib/cat.js';
+
+let key = 'fengche';
+let HOST = 'https://www.qyy158.com';
+
+let siteKey = '';
+let siteType = 0;
+
+const PC_UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36';
+
+async function request(reqUrl) {
+ const resp = await req(reqUrl, {
+ headers: {
+ 'User-Agent': PC_UA,
+ },
+ buffer: 1,
+ });
+ return gbk.decode(resp.content);
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ const classes = [{'type_id':'all','type_name':'all'}];
+ const filterObj = {
+ 'all':[{'key':'area','name':'地域','init':'','value':[{'n':'全部','v':''},{'n':'大陆','v':'1'},{'n':'日本','v':'2'},{'n':'韩国','v':'3'},{'n':'欧美','v':'4'}]},{'key':'class','name':'类别','init':'','wrap':1,'value':[{'n':'全部','v':''},{'n':'霸总','v':'bazong'},{'n':'修真','v':'xiuzhen'},{'n':'恋爱','v':'lianai'},{'n':'校园','v':'xiaoyuan'},{'n':'冒险','v':'maoxian'},{'n':'搞笑','v':'gaoxiao'},{'n':'生活','v':'shenghuo'},{'n':'热血','v':'rexue'},{'n':'架空','v':'jiakong'},{'n':'后宫','v':'hougong'},{'n':'玄幻','v':'xuanhuan'},{'n':'悬疑','v':'xuanyi'},{'n':'恐怖','v':'kongbu'},{'n':'灵异','v':'lingyi'},{'n':'动作','v':'dongzuo'},{'n':'科幻','v':'kehuan'},{'n':'战争','v':'zhanzheng'},{'n':'古风','v':'gufeng'},{'n':'穿越','v':'chuanyue'},{'n':'竞技','v':'jingji'},{'n':'励志','v':'lizhi'},{'n':'同人','v':'tongren'},{'n':'真人','v':'zhenren'},{'n':'其他','v':'qita'},{'n':'总裁','v':'zongcai'},{'n':'异能','v':'yineng'},{'n':'韩漫','v':'hanman'},{'n':'剧情','v':'juqing'},{'n':'大女主','v':'danvzhu'},{'n':'都市','v':'dushi'},{'n':'格斗','v':'gedou'},{'n':'武侠','v':'wuxia'},{'n':'日常','v':'richang'},{'n':'纯爱','v':'chunai'},{'n':'国漫','v':'guoman'},{'n':'推理','v':'tuili'},{'n':'少年','v':'shaonain'},{'n':'奇幻','v':'qihuan'},{'n':'短篇','v':'duanpian'},{'n':'ABO','v':'abo'},{'n':'运动','v':'yundong'},{'n':'萌系','v':'mengxi'},{'n':'爆笑','v':'baoxiao'},{'n':'蔷薇','v':'qiangwei'},{'n':'百合','v':'baihe'},{'n':'BG','v':'bg'}]},{'key':'status','name':'状态','init':'','value':[{'n':'全部','v':''},{'n':'连载中','v':'1'},{'n':'已完结','v':'2'}]}],
+ };
+ return {
+ class: classes,
+ filters: filterObj,
+ };
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg == 0) pg = 1;
+ const uri = new Uri(`${HOST}/sort/`);
+ if (extend.class) {
+ uri.addQueryParam('class', extend.class);
+ }
+ if (extend.area) {
+ uri.addQueryParam('area', extend.area);
+ }
+ if (extend.status) {
+ uri.addQueryParam('status', extend.status);
+ }
+ if (pg > 1) {
+ uri.addQueryParam('page', pg);
+ }
+ const link = uri.toString();
+ const html = await request(link);
+ const $ = load(html);
+ const list = $('.cartoon-block-box .cart-item');
+ const books = _.map(list, (item) => {
+ const $item = $(item);
+ const $cover = $item.find('.cart-cover');
+ const $img = $cover.find('img:first');
+ const $p = $item.find('.cart-info p:first');
+ const $remark = $item.find('.new-chapter');
+ return {
+ book_id: $cover.attr('href').replace(/.*\/info\/(.*)\//, '$1'),
+ book_name: $p.text(),
+ book_pic: $img.attr('src'),
+ book_remarks: $remark.text(),
+ };
+ });
+ const hasMore = $('.pagelink a.next').length > 0;
+ return {
+ page: pg,
+ pagecount: hasMore ? pg + 1 : pg,
+ list: books,
+ };
+}
+
+async function detail(id) {
+ const html = await request(`${HOST}/info/${id}/`);
+ const $ = load(html);
+ const book = {
+ book_name: $('h1.title').text().trim(),
+ book_director: $('.mt10:contains(作者)').text().substring(3).trim(),
+ book_content: $('.line-clamp-4:contains(简介)').text().substring(3).trim(),
+ };
+ const list = $('.chapter-list li');
+ const urls = _.map(list, (item) => {
+ const $item = $(item).find('a');
+ const title = $item.text();
+ const href = `/info/${id}/${$item.attr('href')}`;
+ return title + '$' + href;
+ }).join('#');
+ book.volumes = '章节';
+ book.urls = urls;
+ return {
+ list: [book],
+ };
+}
+
+async function play(flag, id, flags) {
+ const html = await request(`${HOST}${id}`);
+ const $ = load(html);
+ const images = $('.chapter-content img');
+ const content = _.map(images, (image) => {
+ return $(image).attr('data-original');
+ });
+ return {
+ content: content,
+ };
+}
+
+async function search(wd, quick, pg) {
+ if (pg == 0) pg = 1;
+ const link = `${HOST}/search/${encodeURIComponent(wd)}/`;
+ const html = await request(link);
+ const $ = load(html);
+ const list = $('.cartoon-block-box .cart-item');
+ const books = _.map(list, (item) => {
+ const $item = $(item);
+ const $cover = $item.find('.cart-cover');
+ const $img = $cover.find('img:first');
+ const $p = $item.find('.cart-info p:first');
+ const $remark = $item.find('.new-chapter');
+ return {
+ book_id: $cover.attr('href').replace(/.*\/info\/(.*)\//, '$1'),
+ book_name: $p.text(),
+ book_pic: $img.attr('src'),
+ book_remarks: $remark.text(),
+ };
+ });
+ return {
+ page: pg,
+ pagecount: pg,
+ list: books,
+ };
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
diff --git a/cat/js/ff_open.js b/cat/js/ff_open.js
new file mode 100644
index 0000000..3d5873e
--- /dev/null
+++ b/cat/js/ff_open.js
@@ -0,0 +1,126 @@
+import { Crypto, load, _, jinja2 } from './lib/cat.js';
+
+let key = 'ff';
+let HOST = 'https://cj.ffzyapi.com';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': agentSp || UA,
+ 'Referer': HOST
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ let classes = [{"type_id":1,"type_name":"电影"},{"type_id":2,"type_name":"追剧"},{"type_id":3,"type_name":"综艺"},{"type_id":4,"type_name":"动漫"}];
+ let filterObj = {
+ "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"短剧","v":"36"},{"n":"陆剧","v":"13"},{"n":"韩剧","v":"15"},{"n":"欧美剧","v":"16"},{"n":"港剧","v":"14"},{"n":"台剧","v":"21"},{"n":"日剧","v":"22"},{"n":"海外剧","v":"23"},{"n":"泰剧","v":"24"},{"n":"纪录片","v":"20"}]}],
+ "1":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"1"},{"n":"动作片","v":"6"},{"n":"喜剧片","v":"7"},{"n":"爱情片","v":"8"},{"n":"科幻片","v":"9"},{"n":"恐怖片","v":"10"},{"n":"剧情片","v":"11"},{"n":"战争片","v":"12"}]}],
+ "3":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"3"},{"n":"国综","v":"25"},{"n":"港综","v":"26"},{"n":"韩日综","v":"27"},{"n":"欧美综","v":"28"}]}],
+ "4":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"4"},{"n":"国漫","v":"29"},{"n":"日韩动漫","v":"30"},{"n":"欧美动漫","v":"31"},{"n":"港漫","v":"32"},{"n":"海外动漫","v":"33"}]}]
+ };
+
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ let data = JSON.parse(await request(HOST + '/index.php/ajax/data?mid=1&tid=' + (extend.cateId || tid) + '&page=' + pg + '&limit=20'));
+
+ let videos = [];
+ for (const vod of data.list) {
+ videos.push({
+ vod_id: vod.vod_id,
+ vod_name: vod.vod_name,
+ vod_pic: vod.vod_pic,
+ vod_remarks: '',
+ });
+ }
+ return JSON.stringify({
+ page: parseInt(data.page),
+ pagecount: data.pagecount,
+ limit: 20,
+ total: data.total,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ var html = await request( HOST + '/index.php/vod/detail/id/' + id + '.html');
+ var $ = load(html);
+ var vod = {
+ vod_id: id,
+ vod_name: $('h1:first').text().trim(),
+ vod_type: $('.stui-content__detail p:first a').text(),
+ vod_actor: $('.stui-content__detail p:nth-child(3)').text().replace('主演:',''),
+ vod_pic: $('.stui-content__thumb img:first').attr('data-original'),
+ vod_remarks : $('.stui-content__detail p:nth-child(5)').text() || '',
+ vod_content: $('span.detail-content').text().trim(),
+ };
+ const playlist = _.map($('div.ffm3u8 > li > a[target*=_blank]'), (it) => {
+ return it.attribs.title + '$' + it.attribs.href;
+ });
+ vod.vod_play_from = "非凡直达";
+ vod.vod_play_url = playlist.join('#');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+async function play(flag, id, flags) {
+ return JSON.stringify({
+ parse: 0,
+ url: id,
+ });
+}
+
+async function search(wd, quick, pg) {
+ if (pg <= 0) pg = 1;
+ let data = JSON.parse(await request(HOST + '/api.php/provide/vod/?wd=' + wd + '&pg=' +pg + '&ac=detail'));///api.php/provide/vod/?wd=搜索词&pg=翻页&ac=detail
+
+ let videos = [];
+ for (const vod of data.list) {
+ videos.push({
+ vod_id: vod.vod_id,
+ vod_name: vod.vod_name,
+ vod_pic: vod.vod_pic,
+ vod_remarks: '',
+ });
+ }
+ return JSON.stringify({
+ page: parseInt(data.page),
+ pagecount: data.pagecount,
+ limit: 20,
+ total: data.total,
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/freeok_open.js b/cat/js/freeok_open.js
new file mode 100644
index 0000000..8c36b00
--- /dev/null
+++ b/cat/js/freeok_open.js
@@ -0,0 +1,222 @@
+import { Crypto, load, _ } from 'assets://js/lib/cat.js';
+
+let key = 'freeok';
+let HOST = 'https://www.freeok.vip';
+let siteKey = '';
+let siteType = 0;
+let cookie = '';
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+
+async function request(reqUrl, reqCookie) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': UA,
+ 'Referer': HOST,
+ 'cookie': reqCookie
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+ if (cfg.hasOwnProperty('ext')) {
+ if (cfg.ext.hasOwnProperty('host')) {
+ HOST = cfg.ext.host;
+ }
+ if (cfg.ext.hasOwnProperty('cookie')) {
+ cookie = cfg.ext.cookie;
+ }
+ }
+}
+
+async function home(filter) {
+ let classes = [{"type_id":"1","type_name":"电影"},{"type_id":"2","type_name":"剧集"},{"type_id":"3","type_name":"动漫"},{"type_id":"4","type_name":"综艺"},{"type_id":"5","type_name":"少儿"}];
+ let filterObj = {
+ "1":[{"key":"class","name":"剧情","init":"","value":[{"n":"全部","v":""},{"n":"动作","v":"动作"},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"科幻","v":"科幻"},{"n":"剧情","v":"剧情"},{"n":"悬疑","v":"悬疑"},{"n":"惊悚","v":"惊悚"},{"n":"恐怖","v":"恐怖"},{"n":"犯罪","v":"犯罪"},{"n":"谍战","v":"谍战"},{"n":"冒险","v":"冒险"},{"n":"奇幻","v":"奇幻"},{"n":"灾难","v":"灾难"},{"n":"战争","v":"战争"},{"n":"动画","v":"动画"},{"n":"歌舞","v":"歌舞"},{"n":"历史","v":"历史"},{"n":"纪录","v":"纪录"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","init":"","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国香港","v":"中国香港"},{"n":"中国台湾","v":"中国台湾"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"德国","v":"德国"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"lang","name":"语言","init":"","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"法语","v":"法语"},{"n":"德语","v":"德语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","init":"","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"by","name":"排序","init":"","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "2":[{"key":"cateId","name":"类型","init":"2","value":[{"n":"全部","v":"2"},{"n":"国产剧","v":"6"},{"n":"港台剧","v":"7"},{"n":"日韩剧","v":"8"},{"n":"欧美剧","v":"9"},{"n":"海外剧","v":"10"},{"n":"其他剧","v":"11"}]},{"key":"class","name":"剧情","init":"","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春偶像","v":"青春偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","init":"","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国香港","v":"中国香港"},{"n":"中国台湾","v":"中国台湾"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"德国","v":"德国"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"lang","name":"语言","init":"","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","init":"","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"by","name":"排序","init":"","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "3":[{"key":"class","name":"剧情","init":"","value":[{"n":"全部","v":""},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"}]},{"key":"area","name":"地区","init":"","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国香港","v":"中国香港"},{"n":"中国台湾","v":"中国台湾"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"德国","v":"德国"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"lang","name":"语言","init":"","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","init":"","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"by","name":"排序","init":"","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "4":[{"key":"class","name":"剧情","init":"","value":[{"n":"全部","v":""},{"n":"脱口秀","v":"脱口秀"},{"n":"真人秀","v":"真人秀"},{"n":"选秀","v":"选秀"},{"n":"八卦","v":"八卦"},{"n":"访谈","v":"访谈"},{"n":"情感","v":"情感"},{"n":"生活","v":"生活"},{"n":"晚会","v":"晚会"},{"n":"搞笑","v":"搞笑"},{"n":"音乐","v":"音乐"},{"n":"时尚","v":"时尚"},{"n":"游戏","v":"游戏"},{"n":"少儿","v":"少儿"},{"n":"体育","v":"体育"},{"n":"纪实","v":"纪实"},{"n":"科教","v":"科教"},{"n":"曲艺","v":"曲艺"},{"n":"歌舞","v":"歌舞"},{"n":"财经","v":"财经"},{"n":"汽车","v":"汽车"},{"n":"播报","v":"播报"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","init":"","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国香港","v":"中国香港"},{"n":"中国台湾","v":"中国台湾"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"德国","v":"德国"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"lang","name":"语言","init":"","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","init":"","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"by","name":"排序","init":"","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "5":[{"key":"by","name":"排序","init":"","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ }
+
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ let page = '';
+ if (pg > 1) {
+ page = pg;
+ }
+ const link = HOST + '/vodshow/' + (extend.cateId || tid) + '-' + (extend.area || '') + '-' + (extend.by || '') + '-' + (extend.class || '') + '-' + (extend.lang || '') + '----' + page + '---' + (extend.year || '') + '.html';
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('a.module-item');
+ const covers = $('.module-item-cover');
+ let videos = _.map(items, (item, index) => {
+ const cover = $(covers[index]);
+ const img = cover.find('img:first')[0];
+ const remarks = $(cover.find('div.module-item-note')[0]).text().trim();
+ return {
+ vod_id: item.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'),
+ vod_name: item.attribs.title,
+ vod_pic: img.attribs['data-original'],
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('a.page-next:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const html = await request(HOST + '/voddetail/' + id + '.html');
+ const $ = load(html);
+ const vod = {
+ vod_id: id,
+ vod_name: $('h1:first').text(),
+ vod_type: $('.module-info-tag-link:eq(2) a:first').text().trim(),
+ vod_year: $('.module-info-tag-link:eq(0)').text().trim(),
+ vod_area: $('.module-info-tag-link:eq(1)').text().trim(),
+ vod_director: $('.module-info-item:contains(导演:)').text().trim().substring(3).trim().replace(/\/$/g, ''),
+ vod_actor: $('.module-info-item:contains(主演:)').text().trim().substring(3).trim().replace(/\/$/g, ''),
+ vod_pic: $('.module-info-poster .module-item-pic img:first').attr('data-original'),
+ vod_remarks : $('.module-info-item:contains(集数:)').text().trim().substring(3) || '',
+ vod_content: $('.module-info-introduction-content').text().trim(),
+ };
+ let playMap = {};
+ let tabs = $('.module-tab-items-box .module-tab-item');
+ let playlists = $('.module-play-list');
+ _.each(tabs, (tab, i) => {
+ let from = tab.children[0].children[0].data;
+ if (from.includes('夸克')) {
+ return;
+ }
+ let list = playlists[i];
+ list = $(list).find('a');
+ _.each(list, (it) => {
+ let title = it.children[0].children[0].data;
+ let playUrl = it.attribs.href.replace(/.*?\/vodplay\/(.*).html/g, '$1');
+ if (!playMap.hasOwnProperty(from)) {
+ playMap[from] = [];
+ }
+ playMap[from].push(title + '$' + playUrl);
+ });
+ });
+ vod.vod_play_from = _.keys(playMap).join('$$$');
+ let urls = _.values(playMap);
+ let vod_play_url = _.map(urls, (urlist) => {
+ return urlist.join('#');
+ });
+ vod.vod_play_url = vod_play_url.join('$$$');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ const link = HOST + '/vodplay/' + id + '.html';
+ const html = await request(link);
+ const $ = load(html, true);
+ const js = JSON.parse($('script:contains(player_)').html().replace('var player_aaaa=',''));
+ let playUrl = js.url;
+ if (js.encrypt == 1) {
+ playUrl = unescape(playUrl);
+ } else if (js.encrypt == 2) {
+ playUrl = unescape(base64Decode(playUrl));
+ }
+ let playHtml = await request('https://www.freeok.vip/okplay/?url=' + playUrl);
+ playUrl = decryptUrl(playHtml);
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ header: {
+ 'User-Agent': UA,
+ }
+ });
+}
+
+function decryptUrl(html) {
+ const result = html.match(/var config = {[\w\W]*}[\w\W]*player/);
+ const jsConfig = eval(result[0].replace(/player$/g, ';config'));
+ const url = jsConfig.url;
+ const $ = load(html);
+ const textStr = $('meta[name="viewport"]').attr('id').replace('now_', '');
+ const idStr = $('meta[charset="UTF-8"]').attr('id').replace('now_', '');
+ let keyList = [];
+ let sortedList = [];
+ let keyStr = '';
+ for (let index = 0; index < idStr.length; index++) {
+ keyList.push({
+ 'id': idStr[index],
+ 'text': textStr[index]
+ });
+ }
+ sortedList = keyList.sort((a, b)=> a.id - b.id);
+ for (const item of sortedList) {
+ keyStr += item.text;
+ }
+ const md5Key = Crypto.MD5(keyStr + '0xd8@pS^vOL$WuOF3').toString();
+ const endStr = Crypto.enc.Utf8.parse(md5Key.substring(16));
+ const iv = Crypto.enc.Utf8.parse(md5Key.substring(0, 16));
+ const decrypted = Crypto.AES.decrypt(url, endStr, {
+ 'iv': iv,
+ 'mode': Crypto.mode.CBC,
+ 'padding': Crypto.pad.Pkcs7,
+ });
+ const decryptedUrl = Crypto.enc.Utf8.stringify(decrypted);
+ return decryptedUrl;
+}
+
+function base64Decode(text) {
+ return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text));
+}
+
+async function search(wd, quick, pg) {
+ let html = await request(HOST + '/vod-so/-------------.html?wd=' + wd, cookie);
+ const $ = load(html);
+ const items = $('div.module-card-item');
+ let videos = _.map(items, (item) => {
+ const title = $(item).find('.module-card-item-title a:first')[0];
+ const cover = $(item).find('.module-item-cover');
+ const img = cover.find('img:first')[0];
+ const remarks = $(cover.find('.module-item-note')[0]).text().trim();
+ return {
+ vod_id: title.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'),
+ vod_name: title.children[0].children[0].data,
+ vod_pic: img.attribs['data-original'],
+ vod_remarks: remarks || '',
+ };
+ });
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/funletu.js b/cat/js/funletu.js
new file mode 100644
index 0000000..d18ca6c
--- /dev/null
+++ b/cat/js/funletu.js
@@ -0,0 +1 @@
+const _0x25913a=_0x3efd;(function(_0x420206,_0x1bdd41){const _0x3b306a=_0x3efd,_0x2258a5=_0x420206();while(!![]){try{const _0x1efbf7=-parseInt(_0x3b306a(0xb4))/0x1+parseInt(_0x3b306a(0xd2))/0x2*(-parseInt(_0x3b306a(0xce))/0x3)+parseInt(_0x3b306a(0xbe))/0x4+-parseInt(_0x3b306a(0xee))/0x5*(-parseInt(_0x3b306a(0xcd))/0x6)+-parseInt(_0x3b306a(0xd6))/0x7+-parseInt(_0x3b306a(0xc7))/0x8+parseInt(_0x3b306a(0xc1))/0x9;if(_0x1efbf7===_0x1bdd41)break;else _0x2258a5['push'](_0x2258a5['shift']());}catch(_0x1966df){_0x2258a5['push'](_0x2258a5['shift']());}}}(_0x1b97,0x650fa));const _0x41872f=(function(){let _0x41e892=!![];return function(_0x1790c8,_0x179161){const _0x2b1631=_0x41e892?function(){const _0x4b930f=_0x3efd;if(_0x179161){const _0x4d3bbd=_0x179161[_0x4b930f(0xd1)](_0x1790c8,arguments);return _0x179161=null,_0x4d3bbd;}}:function(){};return _0x41e892=![],_0x2b1631;};}()),_0x460301=_0x41872f(this,function(){const _0xe06c83=_0x3efd;let _0x7b9a96;try{const _0x984a7=Function(_0xe06c83(0xba)+_0xe06c83(0xb8)+(_0xe06c83(0xdb)+_0xe06c83(0xd0)+'rn\x20this\x22)('+'\x20)')+');');_0x7b9a96=_0x984a7();}catch(_0x33fdc5){_0x7b9a96=window;}const _0x58622e=_0x7b9a96[_0xe06c83(0xe1)]=_0x7b9a96[_0xe06c83(0xe1)]||{},_0x21385f=[_0xe06c83(0xc4),_0xe06c83(0xe4),_0xe06c83(0xf0),'error','exception',_0xe06c83(0xcf),'trace'];for(let _0xb70eb6=0x0;_0xb70eb6<_0x21385f[_0xe06c83(0xd3)];_0xb70eb6++){const _0x9e22bc=_0x41872f[_0xe06c83(0xf9)+'r'][_0xe06c83(0xe8)][_0xe06c83(0xca)](_0x41872f),_0x276d65=_0x21385f[_0xb70eb6],_0xe3a7cb=_0x58622e[_0x276d65]||_0x9e22bc;_0x9e22bc['__proto__']=_0x41872f[_0xe06c83(0xca)](_0x41872f),_0x9e22bc[_0xe06c83(0xf1)]=_0xe3a7cb[_0xe06c83(0xf1)]['bind'](_0xe3a7cb),_0x58622e[_0x276d65]=_0x9e22bc;}});_0x460301();import{_}from'assets://js/lib/cat.js';function _0x1b97(){const _0x401604=['list','console','commonid','datetime','warn','url','detail','https://b0','prototype','ike\x20Gecko)','.bdstatic.','vod_name','Win64;\x20x64','fileid','357415TKSKVH','stringify','info','toString','data','searchtext','pageSize','debug','home','\x20NT\x2010.0;\x20','filename','constructo','play','m/search','order','730873sneGVD','User-Agent','funletu.co','get','nction()\x20','vod_id','return\x20(fu','更新:','page','validid','1447736ZHamgE','search','content','10577097oqWGio','Mozilla/5.','skey','log','vod_remark','fari/537.3','1588960bMCJJo','push','isEmpty','bind','stype','79dfeb8c61','18JktLRE','6lPpreM','table','ctor(\x22retu','apply','5036pSTpCL','length','homeVod','81ee4b.jpg','2821987NYrhtB','prop','parmid','8974f5f6b6','\x20Chrome/10','{}.constru','https://v.','desc','query','com/29cef3'];_0x1b97=function(){return _0x401604;};return _0x1b97();}import{initQuark,detailContent,playContent}from'./lib/quark.js';let siteKey='',siteType=0x0,searchUrl=_0x25913a(0xdc)+_0x25913a(0xb6)+_0x25913a(0xfb),UA=_0x25913a(0xc2)+'0\x20(Windows'+_0x25913a(0xf7)+_0x25913a(0xec)+')\x20AppleWeb'+'Kit/537.36'+'\x20(KHTML,\x20l'+_0x25913a(0xe9)+_0x25913a(0xda)+'9.0.0.0\x20Sa'+_0x25913a(0xc6)+'6';async function init(_0x328580){const _0x14e710=_0x25913a;let _0x4c5061='';typeof _0x328580=='object'?(siteKey=_0x328580[_0x14e710(0xc3)],siteType=_0x328580[_0x14e710(0xcb)],_0x4c5061=_0x328580['ext']):_0x4c5061=_0x328580,await initQuark(_0x4c5061);}function getHeader(){const _0x4a486a=_0x25913a;let _0x584b5c={};return _0x584b5c[_0x4a486a(0xb5)]=UA,_0x584b5c;}function _0x3efd(_0xd793b4,_0x6d25dc){const _0x5e0bd2=_0x1b97();return _0x3efd=function(_0x460301,_0x41872f){_0x460301=_0x460301-0xb3;let _0xeb7c30=_0x5e0bd2[_0x460301];return _0xeb7c30;},_0x3efd(_0xd793b4,_0x6d25dc);}async function post(_0x39b418,_0x1f584e){const _0x2d5887=_0x25913a;let _0x45b194=await req(_0x39b418,{'headers':getHeader(),'method':'post','data':_0x1f584e});return _0x45b194[_0x2d5887(0xc0)];}async function home(_0x225f99){return'{}';}async function homeVod(){return'{}';}async function category(_0x38baf5,_0x33978c,_0x532612,_0x824a26){return'{}';}async function detail(_0x16a37e){return await detailContent(_0x16a37e);}async function play(_0x44ad2b,_0xafa143,_0x4bb5f){const _0x11f4ed=_0x25913a;let _0x286142=await playContent(_0x44ad2b,_0xafa143,_0x4bb5f);return console[_0x11f4ed(0xf5)](_0x286142),_0x286142;}async function search(_0xd16ff2,_0x616d51){const _0x2f7c39=_0x25913a;let _0x3c6884=searchUrl,_0x2277bb={};_0x2277bb['datasrc']=_0x2f7c39(0xbf);const _0x34956e={};_0x34956e[_0x2f7c39(0xb3)]=_0x2f7c39(0xdd),_0x34956e[_0x2f7c39(0xd7)]='id',_0x2277bb[_0x2f7c39(0xb3)]=_0x34956e;const _0x4e114c={};_0x4e114c['pageIndex']=0x1,_0x4e114c[_0x2f7c39(0xf4)]=0xa,_0x2277bb[_0x2f7c39(0xbc)]=_0x4e114c;const _0x13290b={};_0x13290b[_0x2f7c39(0xe2)]=0x1,_0x13290b[_0x2f7c39(0xe3)]='',_0x13290b[_0x2f7c39(0xed)]='',_0x13290b['id']='',_0x13290b[_0x2f7c39(0xd8)]='',_0x13290b['reportid']='',_0x13290b[_0x2f7c39(0xf3)]=_0xd16ff2,_0x13290b[_0x2f7c39(0xbd)]='',_0x2277bb[_0x2f7c39(0xde)]=_0x13290b,_0x2277bb['style']=_0x2f7c39(0xb7);let _0x2cfe4f=await post(_0x3c6884,_0x2277bb),_0x31efd7=JSON['parse'](_0x2cfe4f)[_0x2f7c39(0xf2)],_0x34f51d=[];for(var _0x41a883 of _0x31efd7){let _0xb14d33=_['isEmpty'](_0x41a883['url'])?'':_0x41a883[_0x2f7c39(0xe5)],_0xd5748d=_[_0x2f7c39(0xc9)](_0x41a883[_0x2f7c39(0xf8)])?'':_0x41a883[_0x2f7c39(0xf8)],_0x551fe8=_0x2f7c39(0xe7)+_0x2f7c39(0xea)+_0x2f7c39(0xdf)+_0x2f7c39(0xd9)+_0x2f7c39(0xcc)+_0x2f7c39(0xd5),_0x162ebc=_0x2f7c39(0xbb)+_0x41a883['updatetime'];const _0x1ac8b9={};_0x1ac8b9[_0x2f7c39(0xb9)]=_0xb14d33,_0x1ac8b9[_0x2f7c39(0xeb)]=_0xd5748d,_0x1ac8b9['vod_pic']=_0x551fe8,_0x1ac8b9[_0x2f7c39(0xc5)+'s']=_0x162ebc,_0x34f51d[_0x2f7c39(0xc8)](_0x1ac8b9);}const _0x3ae544={};return _0x3ae544[_0x2f7c39(0xe0)]=_0x34f51d,JSON[_0x2f7c39(0xef)](_0x3ae544);}export function __jsEvalReturn(){const _0x233e64=_0x25913a,_0x5156d5={};return _0x5156d5['init']=init,_0x5156d5[_0x233e64(0xf6)]=home,_0x5156d5[_0x233e64(0xd4)]=homeVod,_0x5156d5['category']=category,_0x5156d5[_0x233e64(0xe6)]=detail,_0x5156d5[_0x233e64(0xfa)]=play,_0x5156d5['search']=search,_0x5156d5;}
\ No newline at end of file
diff --git a/cat/js/funletu_open.js b/cat/js/funletu_open.js
new file mode 100644
index 0000000..728034f
--- /dev/null
+++ b/cat/js/funletu_open.js
@@ -0,0 +1 @@
+const _0x3cbf0a=_0x51b3;(function(_0xccab9f,_0x79966b){const _0x2b9b67=_0x51b3,_0x4aefcb=_0xccab9f();while(!![]){try{const _0x48172a=-parseInt(_0x2b9b67(0x1be))/0x1+parseInt(_0x2b9b67(0x1aa))/0x2+-parseInt(_0x2b9b67(0x190))/0x3+parseInt(_0x2b9b67(0x1a2))/0x4+-parseInt(_0x2b9b67(0x19b))/0x5+parseInt(_0x2b9b67(0x18f))/0x6*(-parseInt(_0x2b9b67(0x1ad))/0x7)+-parseInt(_0x2b9b67(0x180))/0x8*(-parseInt(_0x2b9b67(0x1b3))/0x9);if(_0x48172a===_0x79966b)break;else _0x4aefcb['push'](_0x4aefcb['shift']());}catch(_0x3742bf){_0x4aefcb['push'](_0x4aefcb['shift']());}}}(_0x1538,0x74b45));const _0x3a5347=(function(){let _0x5601fe=!![];return function(_0x13173c,_0x3f27fd){const _0x18b1b0=_0x5601fe?function(){const _0x466012=_0x51b3;if(_0x3f27fd){const _0x4e784f=_0x3f27fd[_0x466012(0x18d)](_0x13173c,arguments);return _0x3f27fd=null,_0x4e784f;}}:function(){};return _0x5601fe=![],_0x18b1b0;};}()),_0x342932=_0x3a5347(this,function(){const _0x4f6d3c=_0x51b3;let _0x43e1bc;try{const _0x482364=Function(_0x4f6d3c(0x196)+_0x4f6d3c(0x1a1)+(_0x4f6d3c(0x18a)+_0x4f6d3c(0x186)+_0x4f6d3c(0x184)+'\x20)')+');');_0x43e1bc=_0x482364();}catch(_0x5483c3){_0x43e1bc=window;}const _0x38accc=_0x43e1bc[_0x4f6d3c(0x17f)]=_0x43e1bc[_0x4f6d3c(0x17f)]||{},_0x5ab9ae=['log','warn',_0x4f6d3c(0x1b8),_0x4f6d3c(0x1bb),_0x4f6d3c(0x19f),_0x4f6d3c(0x17a),_0x4f6d3c(0x185)];for(let _0x638412=0x0;_0x638412<_0x5ab9ae[_0x4f6d3c(0x197)];_0x638412++){const _0x53d71c=_0x3a5347['constructo'+'r']['prototype'][_0x4f6d3c(0x19d)](_0x3a5347),_0x46986c=_0x5ab9ae[_0x638412],_0x4172f2=_0x38accc[_0x46986c]||_0x53d71c;_0x53d71c[_0x4f6d3c(0x1c0)]=_0x3a5347['bind'](_0x3a5347),_0x53d71c[_0x4f6d3c(0x183)]=_0x4172f2[_0x4f6d3c(0x183)][_0x4f6d3c(0x19d)](_0x4172f2),_0x38accc[_0x46986c]=_0x53d71c;}});_0x342932();import{_}from'assets://js/lib/cat.js';import{initQuark,detailContent,playContent}from'./lib/quark.js';let siteKey='',siteType=0x0,searchUrl='https://v.'+_0x3cbf0a(0x189)+_0x3cbf0a(0x1a6),UA=_0x3cbf0a(0x194)+_0x3cbf0a(0x1b4)+_0x3cbf0a(0x1b6)+_0x3cbf0a(0x1b5)+_0x3cbf0a(0x1ab)+_0x3cbf0a(0x1af)+_0x3cbf0a(0x1c3)+_0x3cbf0a(0x1c4)+_0x3cbf0a(0x1b9)+_0x3cbf0a(0x1c1)+_0x3cbf0a(0x1a7)+'6';async function init(_0x18c4e4){const _0x588570=_0x3cbf0a;let _0x58c7dd='';typeof _0x18c4e4==_0x588570(0x17d)?(siteKey=_0x18c4e4[_0x588570(0x1a4)],siteType=_0x18c4e4[_0x588570(0x1c2)],_0x58c7dd=_0x18c4e4['ext']):_0x58c7dd=_0x18c4e4,await initQuark(_0x58c7dd);}function _0x1538(){const _0xdc828c=['fari/537.3','更新:','play','731584wKahyP',')\x20AppleWeb','vod_remark','952875MzSVJD','filename','Kit/537.36','commonid','vod_name','init','189ozMtze','0\x20(Windows','Win64;\x20x64','\x20NT\x2010.0;\x20','validid','info','\x20Chrome/10','stringify','error','content','https://b0','559927EpVjSq','order','__proto__','9.0.0.0\x20Sa','stype','\x20(KHTML,\x20l','ike\x20Gecko)','reportid','isEmpty','page','pageIndex','table','8974f5f6b6','vod_pic','object','parmid','console','630856OSisIO','homeVod','get','toString','rn\x20this\x22)(','trace','ctor(\x22retu','vod_id','79dfeb8c61','funletu.co','{}.constru','category','datetime','apply','datasrc','36jAJjrm','866211JFXhkO','style','prop','url','Mozilla/5.','updatetime','return\x20(fu','length','list','User-Agent','.bdstatic.','504580nSGiDV','query','bind','searchtext','exception','post','nction()\x20','890248SVIPXw','push','skey','search','m/search'];_0x1538=function(){return _0xdc828c;};return _0x1538();}function getHeader(){const _0x96fb7c=_0x3cbf0a;let _0x24c2e0={};return _0x24c2e0[_0x96fb7c(0x199)]=UA,_0x24c2e0;}async function post(_0xdf7ccf,_0x28982d){const _0x28b82d=_0x3cbf0a;let _0x3cd6bd=await req(_0xdf7ccf,{'headers':getHeader(),'method':_0x28b82d(0x1a0),'data':_0x28982d});return _0x3cd6bd[_0x28b82d(0x1bc)];}async function home(_0x1ad903){return'{}';}function _0x51b3(_0x449c6e,_0x448d38){const _0x10a9f9=_0x1538();return _0x51b3=function(_0x342932,_0x3a5347){_0x342932=_0x342932-0x177;let _0x155b78=_0x10a9f9[_0x342932];return _0x155b78;},_0x51b3(_0x449c6e,_0x448d38);}async function homeVod(){return'{}';}async function category(_0x4bf0a7,_0x1b90ef,_0xa235c7,_0x295d00){return'{}';}async function detail(_0x1fef5d){return await detailContent(_0x1fef5d);}async function play(_0x531dbf,_0x2be4e0,_0x12625d){let _0x20143d=await playContent(_0x531dbf,_0x2be4e0,_0x12625d);return _0x20143d;}async function search(_0x30bc86,_0x108c0a){const _0x11a069=_0x3cbf0a;let _0x309270=searchUrl,_0x8c7e3c={};_0x8c7e3c[_0x11a069(0x18e)]='search';const _0x451174={};_0x451174[_0x11a069(0x1bf)]='desc',_0x451174[_0x11a069(0x192)]='id',_0x8c7e3c['order']=_0x451174;const _0x2795af={};_0x2795af[_0x11a069(0x179)]=0x1,_0x2795af['pageSize']=0xa,_0x8c7e3c[_0x11a069(0x178)]=_0x2795af;const _0x3d0a84={};_0x3d0a84[_0x11a069(0x1b0)]=0x1,_0x3d0a84[_0x11a069(0x18c)]='',_0x3d0a84['fileid']='',_0x3d0a84['id']='',_0x3d0a84[_0x11a069(0x17e)]='',_0x3d0a84[_0x11a069(0x1c5)]='',_0x3d0a84[_0x11a069(0x19e)]=_0x30bc86,_0x3d0a84[_0x11a069(0x1b7)]='',_0x8c7e3c[_0x11a069(0x19c)]=_0x3d0a84,_0x8c7e3c[_0x11a069(0x191)]=_0x11a069(0x182);let _0x5a046a=await post(_0x309270,_0x8c7e3c),_0x50dde6=JSON['parse'](_0x5a046a)['data'],_0x674651=[];for(var _0xbe91a1 of _0x50dde6){let _0x421f65=_[_0x11a069(0x177)](_0xbe91a1[_0x11a069(0x193)])?'':_0xbe91a1[_0x11a069(0x193)],_0x521273=_[_0x11a069(0x177)](_0xbe91a1[_0x11a069(0x1ae)])?'':_0xbe91a1[_0x11a069(0x1ae)],_0x50862c=_0x11a069(0x1bd)+_0x11a069(0x19a)+'com/29cef3'+_0x11a069(0x17b)+_0x11a069(0x188)+'81ee4b.jpg',_0x255dc9=_0x11a069(0x1a8)+_0xbe91a1[_0x11a069(0x195)];const _0x5b0ed3={};_0x5b0ed3[_0x11a069(0x187)]=_0x421f65,_0x5b0ed3[_0x11a069(0x1b1)]=_0x521273,_0x5b0ed3[_0x11a069(0x17c)]=_0x50862c,_0x5b0ed3[_0x11a069(0x1ac)+'s']=_0x255dc9,_0x674651[_0x11a069(0x1a3)](_0x5b0ed3);}const _0x1c4875={};return _0x1c4875[_0x11a069(0x198)]=_0x674651,JSON[_0x11a069(0x1ba)](_0x1c4875);}export function __jsEvalReturn(){const _0x54b213=_0x3cbf0a,_0x2f555c={};return _0x2f555c[_0x54b213(0x1b2)]=init,_0x2f555c['home']=home,_0x2f555c[_0x54b213(0x181)]=homeVod,_0x2f555c[_0x54b213(0x18b)]=category,_0x2f555c['detail']=detail,_0x2f555c[_0x54b213(0x1a9)]=play,_0x2f555c[_0x54b213(0x1a5)]=search,_0x2f555c;}
\ No newline at end of file
diff --git a/cat/js/ggys_open.js b/cat/js/ggys_open.js
new file mode 100644
index 0000000..ccaf501
--- /dev/null
+++ b/cat/js/ggys_open.js
@@ -0,0 +1,222 @@
+import { Crypto, load, _ } from 'assets://js/lib/cat.js';
+
+const key = 'ggys';
+const HOST = 'https://ggys.me';
+const TYPE_MOVIE = 'movie';
+const TYPE_TVSHOW = 'tv-show';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36';
+
+async function request(reqUrl, method, data) {
+ const res = await req(reqUrl, {
+ method: method || 'get',
+ headers: {
+ 'User-Agent': UA,
+ 'Referer': HOST,
+ },
+ data: data,
+ postType: method === 'post' ? 'form' : '',
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+ if (cfg.hasOwnProperty('ext')) {
+ if (cfg.ext.hasOwnProperty('host')) {
+ HOST = cfg.ext.host;
+ }
+ }
+}
+
+async function home(filter) {
+ const classes = [{'type_id':'movies','type_name':'电影'},{'type_id':'tv-shows','type_name':'剧集'}];
+ const filterObj = {
+ 'movies':[{'key':'class','name':'类型','init':'','value':[{'n':'全部','v':''},{'n':'欧美电影','v':'tag/欧美电影'},{'n':'华语电影','v':'tag/华语电影'},{'n':'日韩电影','v':'tag/日韩电影'},{'n':'其他地区','v':'tag/其他地区'},{'n':'冒险','v':'genre/冒险'},{'n':'剧情','v':'genre/剧情'},{'n':'动作','v':'genre/动作'},{'n':'动画','v':'genre/动画'},{'n':'历史','v':'genre/历史'},{'n':'喜剧','v':'genre/喜剧'},{'n':'奇幻','v':'genre/奇幻'},{'n':'家庭','v':'genre/家庭'},{'n':'恐怖','v':'genre/恐怖'},{'n':'悬疑','v':'genre/悬疑'},{'n':'惊悚','v':'genre/惊悚'},{'n':'战争','v':'genre/战争'},{'n':'爱情','v':'genre/爱情'},{'n':'犯罪','v':'genre/犯罪'},{'n':'科幻','v':'genre/科幻'},{'n':'纪录','v':'genre/纪录'},{'n':'音乐','v':'genre/音乐'}]}],
+ 'tv-shows':[{'key':'class','name':'类型','init':'','value':[{'n':'全部','v':''},{'n':'欧美剧','v':'tag/欧美剧'},{'n':'日韩剧','v':'tag/日韩剧'},{'n':'国产剧','v':'tag/国产剧'},{'n':'其他地区','v':'tag/其他地区'},{'n':'剧情','v':'genre/剧情'},{'n':'动作','v':'genre/动作'},{'n':'动画','v':'genre/动画'},{'n':'喜剧','v':'genre/喜剧'},{'n':'家庭','v':'genre/家庭'},{'n':'悬疑','v':'genre/悬疑'},{'n':'犯罪','v':'genre/犯罪'},{'n':'科幻','v':'genre/科幻'},{'n':'西部','v':'genre/西部'}]}],
+ };
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ let path = '';
+ const prefixMap = {
+ 'movies': TYPE_MOVIE,
+ 'tv-shows': TYPE_TVSHOW,
+ }
+ const prefix = prefixMap[tid];
+ if (extend.class) {
+ path = '/' + prefix + '-' + extend.class;
+ } else {
+ path = '/' + tid;
+ }
+ let page = '';
+ if (pg > 1) {
+ page = 'page/' + pg + '/';
+ }
+ const link = HOST + path + '/' + page;
+ const html = await request(link);
+ const $ = load(html);
+ const videos = [];
+ parseVideoList($, prefix, false, videos);
+ const limit = 20;
+ const hasMore = $('.page-numbers a.next').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: limit,
+ total: limit * pgCount,
+ list: videos,
+ });
+}
+
+function parseVideoList($, prefix, imgSrc, videos) {
+ const items = $('.' + prefix);
+ _.each(items, (item) => {
+ const $item = $(item);
+ const title = $item.find('.' + prefix + '__title:first').text();
+ const url = $item.find('.' + prefix + '__actions a:first').attr('href');
+ const imgAttr = imgSrc ? 'src' : 'data-lazy-src';
+ const image = $item.find('.' + prefix + '__poster img:first').attr(imgAttr);
+ const remarks = $item.find('.' + prefix + '__meta span:last').text();
+ if (!url) return;
+ const videoItem = {
+ vod_id: decodeURIComponent(url.replace(/.*\/\/.*\/(.*\/.*)\//g, '$1')),
+ vod_name: title,
+ vod_pic: image,
+ vod_remarks: remarks,
+ };
+ videos.push(videoItem);
+ });
+}
+
+async function detail(id) {
+ const isMovieType = id.startsWith(TYPE_MOVIE);
+ const html = await request(HOST + '/' + id + '/');
+ const $ = load(html);
+ const prefix = isMovieType ? TYPE_MOVIE : TYPE_TVSHOW;
+ const vod = {
+ vod_id: id,
+ vod_name: $('.' + prefix + '_title').text(),
+ vod_actor: $('.' + prefix + '-casts').text().trim().substring(3).replace(/\s+\/\s+/g, '/'),
+ vod_pic: $('.' + prefix + '__poster img:first').attr('data-lazy-src'),
+ vod_remarks: $('.' + prefix + '__meta span:last').text(),
+ };
+ if (isMovieType) {
+ vod.vod_type = $('.' + prefix + '__meta span:last').text();
+ vod.vod_year = $('.' + prefix + '__meta span:first').text();
+ vod.vod_content = $('.movie__description').text();
+ } else {
+ vod.vod_type = $('.' + prefix + '__meta span:first').text();
+ vod.vod_content = $('.tv-show__info--body').text();
+ }
+ const from = 'ggys';
+ const playMap = {};
+ if (isMovieType) {
+ const playId = $('.ggys-video-player').attr('data-source-id');
+ const playCfg = playId + '@' + TYPE_MOVIE;
+ playMap[from] = [ '全$' + playCfg ];
+ } else {
+ const tabs = $('.tv_show__season-tabs-wrap .nav-item');
+ const episodes = $('.episodes');
+ _.each(tabs, (tab, i) => {
+ const titlePrefix = $(tab).text().trim();
+ const episodeList = $(episodes[i]).find('.episode__body');
+ _.each(episodeList, (episode) => {
+ const $episode = $(episode);
+ const title = titlePrefix + ' ' + $episode.text().trim();
+ const url = $episode.find('a').attr('href');
+ const playCfg = url + '@' + TYPE_TVSHOW;
+ if (!playMap.hasOwnProperty(from)) {
+ playMap[from] = [];
+ }
+ playMap[from].push(title + '$' + playCfg);
+ });
+ });
+ }
+ vod.vod_play_from = _.keys(playMap).join('$$$');
+ const urls = _.values(playMap);
+ const vod_play_url = _.map(urls, (urlist) => {
+ return urlist.join('#');
+ });
+ vod.vod_play_url = vod_play_url.join('$$$');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ const playCfg = id.split('@');
+ const playType = playCfg[1];
+ let playId = playCfg[0];
+ let playUrl;
+ if (playType == TYPE_TVSHOW) {
+ const html = await request(playId);
+ const $ = load(html);
+ playId = $('.ggys-video-player').attr('data-source-id');
+ }
+ const param = {
+ video_id: playId,
+ };
+ const resp = await request(HOST + '/wp-json/get_addr/v1/get_video_url', 'post', param);
+ playUrl = JSON.parse(resp).video_url;
+ const headers = {
+ 'User-Agent': UA,
+ 'Referer': HOST,
+ };
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ header: headers,
+ });
+}
+
+async function search(wd, quick, pg) {
+ let page = '';
+ if (pg > 1) {
+ page = '/page/' + pg;
+ }
+ const url = HOST + '/search/' + wd + page + '/?post_type=';
+ const videos = [];
+ let html = await request(url + 'movie');
+ let $ = load(html);
+ parseVideoList($, TYPE_MOVIE, true, videos);
+ const hasMoreMovie = $('.page-numbers a.next').length > 0;
+ html = await request(url + 'tv_show');
+ $ = load(html);
+ parseVideoList($, TYPE_TVSHOW, true, videos);
+ const hasMoreTVShow = $('.page-numbers a.next').length > 0;
+ const limit = 40;
+ const hasMore = hasMoreMovie || hasMoreTVShow;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: limit,
+ total: limit * pgCount,
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/hmsp_open.js b/cat/js/hmsp_open.js
new file mode 100644
index 0000000..21f49e7
--- /dev/null
+++ b/cat/js/hmsp_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1DYBBhobXNwX29wZW4uanMsYXNzZXRzOi8vanMvbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybgxDcnlwdG8KZGF5anMMamluamEyBlVyaQJfDl8weDI3ODUOXzB4MWI3YRJfMHhkYTg5MmQSXzB4MzFjNGNiEl8weDIxNDk2YhJfMHgzODE0YjISXzB4NGRiNThmEl8weDI3OWViNxJfMHgyNDUxMDISXzB4NTVkNDU0El8weDJkOTFmMhJfMHgxYjU3ZjISXzB4NDE4NjgzEl8weDNiMmM3ORJfMHgyNWYxNjkSXzB4NGQ3ODM2El8weDQ5NjliYxJfMHg1MzBkMTASXzB4NDkzNWZkEl8weDE0MjBjYhJfMHg0OGY0ZjMSXzB4MWIwYzJkEl8weDE1YjJjMxJfMHgzZjY5ODQSXzB4NDE0MWM1El8weDI4MTY0ZRJfMHgzYThmZjASXzB4NGU1NDljEl8weDFkNDc1NxJfMHgyNmFjZDISXzB4MmFkN2JjEl8weDU5MjQ3ZhJfMHgxZmU5ZTUSXzB4NDMxYTMwEl8weDRjNWFkORJfMHg5NGM1ZjkQJndzVGltZT0YdzdVSXdwekR1c0tnDHJlc3VsdA5mb3JFYWNoCGF0b2IIdW5peApzaGlmdEB7fS5jb25zdHJ1Y3RvcigicmV0dXJuIHRoaXMiKSggKQ5pc0VtcHR5CnBhcnNlCGRhdGEIY2F0ZXphYmFjZGVmZ2hqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5DHJhbmRvbUhhcHBsaWNhdGlvbi92bmQueW91cmFwaS52MS5mdWxsK2pzb24Mdm9kX2lkDmhlYWRlcnMIaW5pdA5jb250ZW50FGJsb2NrX25hbWUWdm9kX3JlbWFya3MMZGV2aWNlCE1JIDgGMHgzCGF1bCUQdm9kX2FyZWEMSk1KemRUCFE4UkkIN14oKBBibG9ja19pZAhobHMvHENvbnRlbnQtTGVuZ3RoIi9hcGkvYWRzL2dldF9jb25mCHB1c2iCAUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89BjB4MCBQblBDanNLS2RjTzVlQT09DFpDRUlKSghDXl10FnRvTG93ZXJDYXNlDnZvZF9waWMOQW5kcm9pZCAvYXBpL3N0YXRzL2xvZ2luDmluZGV4T2YMbHFYdEN6CGdZVUMaL2FwaS92b2QvaW5mbxwvYXBpL3VzZXIvaW5pdApQa2NzNyZyZXR1cm4gKGZ1bmN0aW9uKCkgCFV0Zjgadm9kX3BsYXlfZnJvbRBkaXJlY3RvchB2b2RfbmFtZQh5ZWFyCGNvZGUUY2hhckNvZGVBdAxHd1JXS2UIeVRxIw5yZXBsYWNlGHc3Rjl3ckJkd3F3PShCOEs0dzV4MHc1YkRteEREbGc9PQxjaGFyQXQMbWVjTmlKkgR7CiAgICAgICAgInR5cGVfcGlkIjogInt7dGlkfX0iLAogICAgICAgICJsZW5ndGgiOiAiMTIiLAogICAgICAgICJwYWdlIjogInt7cGd9fSIsCiAgICAgICAgImFyZWEiOiAie3tleHQuYXJlYXxkZWZhdWx0KCcnKX19IiwKICAgICAgICAieWVhciI6ICJ7e2V4dC55ZWFyfGRlZmF1bHQoJycpfX0iLAogICAgICAgICJvcmRlciI6ICJ7e2V4dC5vcmRlcnxkZWZhdWx0KCcnKX19IiwKICAgICAgICAiY2F0ZSI6ICJ7e2V4dC5jYXRlfGRlZmF1bHQoJycpfX0iCiAgICB9DnZvZF91cmwKc2xpY2UIYXJlYQxwUU9zSmcKc3R5cGUoZE1PQVhYekNoTUtMRk1LTHc0dG4cL2FwaS91c2VyL2luZm8GZW5jGHdxeHB3cUREcWc9PRZsYXN0SW5kZXhPZhRjb2xsZWN0aW9uCGh0dHAGcGFkCnRva2VuCGJuMWQKb3JkZXISc3RyaW5naWZ5DEJhc2U2NAh0YWdzDHdlVm9zSwYweDIIcGF0aBB0eXBlX3BpZAhsYW5nEHZvZF95ZWFygAFORlBDdkFOOEVqUERqOEtLRERQRGhBckNtY0tNdzZIQ2k4T1d3ckF3RmlwZXc0akRoQjlvUk1PSERrL0N2Zz09GGZyb21DaGFyQ29kZQYweDUGMHgxIDVyR202YW1nNktXcDZhS1AMWGlhb21pCnRpdGxlBmhscwYweDYIQiZoXQ5ibG9ja0lkFGNvbS5sZW9zbnYWdm9kX2NvbnRlbnQqaHR0cHM6Ly9tLmptenAubmV0LmNuEnVzZXJfaW5mbwphY3RvcihTTUtUVzhPQlFNT3d3NnBZd3JRPQhWb2ckCGhtc3AUc3RhcnRzV2l0aAh0cmltBnBpYxBZOEtKQTNRWAxzdWJzdHIYdm9kX3BsYXlfdXJsiAFmbXRxTGNPQUdNS293by9EbDhPcndwbkRqOEs3d3FvRnc0UWV3cmgzZk1LdU84T3N3NWJEdENqRGozZ0t3cnBIYmc9PQ51c2VyX2lkBjB4NBJUcmlwbGVERVMMJnBhZ2U9CHBvc3QOY29uc29sZQ5zdHJlYW0vCHJhbmsITW96aQhmb3JtCDB4NmEIMHg2NAgweDFjaFNNSzZDOE91d3FYRGlnbFZ3N0RDdUVCMnc2ekRnY0svYThLWXdvZGt3NjhBV1Q3Q3RRPT0IMHgzNwgweDU2CDB4NzIIMHg0NBh3cGZEcHNLcnc2NGoIMHg1YQgweDU5CDB4NjgGMHhlBjB4Zggoa2VKCDB4NzQIMHgyNQYweDcIMHgxMggweDU4CDB4MWUIMHg1ZggmVCpnCDB4MWIIMHg2MBJfMHgyYmJlOWISXzB4Mjc4NWRhEl8weDFiN2E2YRJfMHgyYjU4MjISXzB4NDQ1ZGE5El8weDU4YjExZRJfMHgxMGRkNzISXzB4MTg0MzY5CDB4MTkIMHg4MxJfMHgyNDI3OTkSXzB4Mzk1MjlhEl8weDJjY2YzZhJfMHgyNDkyMWUSXzB4NDk0ZWQ4CDB4MWQIMHgzZgxZZEtkalIIMHg0ZhJfMHgxMWI3ZGYSXzB4MzBmNDhlEl8weDQ2MTJlYxJfMHgzMzFlMDUIMHgyYQgweDg0BCk7DHdpbmRvdwgweDFhCDB4ODESXzB4NGI3NDgxEl8weDU4ZDhkYRJfMHg0OGQ1OGMSXzB4MWM5MWEwEl8weDQ3OTMwNRJfMHgzZGE1NDASXzB4NGUwNzQ4CDB4MzUIMHgzOAgweDIzCDB4NTcSXzB4MmY3ZTZkEl8weDVmNDUyORJfMHgyOTExZWESXzB4ZTMzYWM3El8weDFlOWQ5YxJfMHgyMmY0MTQSXzB4NTYyNjg4El8weDQ0YmIwYxJfMHhmMGZkMzYSXzB4MmJkOWYyEl8weDIwMjhlNgIlBDAwCDB4MzEIMHgzYyRkZWNvZGVVUklDb21wb25lbnQIMHg2ZhJfMHgzYzg5NTMSXzB4MzAwNjI1El8weDE2MGEzYRJfMHgyMGQ3YTYIMHg1ZAgweDNkCG1kNVgEaWQWdG9VcHBlckNhc2USRGV2aWNlLUlkBG5vEE9wZXJhdG9yCDB4NTAYU2NyZWVuLVdpZHRoCDB4NjkaU2NyZWVuLUhlaWdodAhzYWx0DEFjY2VwdAhndWFuDkNoYW5uZWwOaXMtcHVzaAgweDIxFFVzZXItQWdlbnQQQ3VyLVRpbWUIMHg1Yg5Nb2ItTWZyEnByZWZlcnNleAYweGQSTW9iLU1vZGVsClRva2VuFlN5cy1SZWxlYXNlGE5FVFdPUktfV0lGSRZOZXRXb3JrVHlwZQphcHBpZBhWZXJzaW9uLUNvZGUIU2lnbhhTeXMtUGxhdGZvcm0SXzB4MThjMTgwEl8weDQwYjg2YRJfMHgyMGU3MjESXzB4MTRkZGY2El8weDNlN2EzNBJfMHgyM2RmMmEIMHg0MwgweDJiCDB4ODYIMHg3NQ5kZWNyeXB0BGl2CDB4NDgIMHgyOQ5wYWRkaW5nEl8weDJjNGJlYxJfMHgzMDgwNzUSXzB4M2I4NWFjEl8weDFlNjJjZBJfMHg0N2M3MWYSXzB4M2FkZWFmEl8weDU2NDNmZQhza2V5CDB4NDAIMHg0MQgweDM2CDB4N2UYZk1PWktjSzBTY0tuCDB4NjcIMHg2ZQgweDE0CFY3WmYIVkt6WQgweDRhCFdwOHEIMHg1MQgweDMzCDB4NzgGbG9nBjB4Ygpsb2NhbAYweGMIMHgxZggweDEzCDB4NGMSXzB4MWNhZTNmEl8weDE1ZjQwNhJfMHgyMTliN2QSXzB4OTZkNGUwEl8weDEwNjMyMxJfMHg0MTFhMTASXzB4NGNmZDgzEl8weDE1NzE3ZhJfMHg2YzYzOWYIMHgzOQgweDI0CDB4MTEIMHgzMhJfMHgzMGMxZjMSXzB4NDk5Yzk1El8weDYyYmVhNRJfMHgxMTQ2ODkSXzB4MjRjNThjEl8weDUzYjgwMBJfMHg0YWUxNGYSXzB4MWQzNDdkEl8weDJjMzRlZRJfMHg2NjI2OTkSXzB4YzI3MzI1El8weDJiZmI5YRJfMHgzOWFjYzMSXzB4MmM2ZWIxEl8weDM4YTRmMRJfMHgyZDM2YmUSXzB4OTgzMTFkEl8weDQ0NGM0ZBJfMHgzMjIyYjYSXzB4MjYzZjU1El8weDM1MjE1ZhJfMHgzNDYxZjMSXzB4NWQzOTJjEl8weDViMzI1NxJfMHg0YTVkNzgSXzB4NWIyMWRkEl8weDJhZDZkYwgweDg1CDB4MjgGcmVxCDB4NzcMbWV0aG9kCDB4NjIMZXh0ZW5kEGFwcF9uYW1lCDB4N2MQcG9zdFR5cGUGMHg4CDB4N2YIMHg2NQgweDQ5CDB4NzMIMHg0MggweDIyDGFjdGlvbggweDE4El8weGMxZjEyZRJfMHgxNGY4NGMSXzB4NDI5MjU3El8weDNjMzU0OBJfMHg4MjhhNzgSXzB4MzI2MzIwEl8weDVjZGM0MBJfMHgzODIyMTYSXzB4MjU4ZjZmEl8weDI0YWRjOBJfMHg0MDdmNzASXzB4MmYzYjkyEl8weDEyYzljYxJfMHg1ZWVhNDYSXzB4MTNjNzU4El8weDQyNGY2MBJfMHgxOWRjOGQwL2FwaS9ibG9jay9jYXRlZ29yeV90eXBlCDB4N2EOdHlwZV9pZAWSY0yIEnR5cGVfbmFtZQgweDUzBmtleQgweDM0AiwIMHg4MAgweDI3AnYIMHgyZggweDNlCDB4NTQIMHg0Yg5maWx0ZXJzEl8weGQ4YjJmNwJuEl8weDI5NmViYxJfMHgxZDVjYzgSXzB4NDU2NGNlEl8weDJlMmU5NgR7fRJfMHg1ODVhMWESXzB4MTcyNzkyEl8weDllYjFhORJfMHg0MjZlODgSXzB4NTg1NDc3El8weDRmNzI5YhJfMHg1ZjQwZjIQXzB4ZDViNjQSXzB4NWU3MzlmEl8weDJmY2UxYxJfMHgyMTM5NzASXzB4NGY3NGFmEl8weDQ2MzViMRJfMHg1ZDI4NTISXzB4M2FhMDYxEl8weDFjNGFmNBJfMHgxZGZlMGQSXzB4NTI0MTdlEl8weDJlMGY5ZhJfMHg3NDNhZmQSXzB4NDk3NjcwEl8weDVhOWE5ZRJfMHg4MDMyZDgSXzB4MWEzNTcwEl8weDE1NGY3ZRJfMHg0NDI0YWIIMHg2MR4vYXBpL2Jsb2NrL3JhbmsyL2FwaS9ibG9jay9saXN0P2Jsb2NrX2lkPQgweDc2CDB4NWMIMHg2ZBBwYXJzZUludAhwYWdlEnBhZ2Vjb3VudAhsaXN0DGZpbHRlciYvYXBpL2Jsb2NrL2NhdGVnb3J5CDB4M2EGZXh0BnRpZARwZxJfMHg4NGYxOWEGMHg5CDB4MTUSXzB4MjZkODczEl8weDExY2JhYxJfMHgyNGQ2NmMSXzB4MzVlOTQ1El8weDNiYjUxNxJfMHhkZWU2ZmISXzB4NDFlODdkCDB4MjYIMHgyZQgweDIwCDB4NGUIMHg1NQgweDEwBjB4YRJ2b2RfYWN0b3IIMHg2Nhh2b2RfZGlyZWN0b3IIMHgyZAgweDYzCmludHJvCDB4NmMIMHgyYxBtYXBfbGlzdAIkAisIMHg0NggweDNiCDB4NzEIMHg4NwIjEl8weDE3M2FlOQIgEl8weDNiOTUyOQgweDRkEl8weDIyM2IzZhJfMHg1NGY3NjQSXzB4MWM1ZGY4El8weDJkYTJlMxJfMHg0YWYzOGQSXzB4MjkyNTU5El8weDRmY2UxYRJfMHg1MWI3NDISXzB4MThjZWVhEl8weDVlNWI4NhJfMHg0ODY4MDMSXzB4MTMyOWYwEl8weDIyM2E3MxJfMHgyNmM3ZmQSXzB4Mzk5YjZkEl8weDMxM2M3NhJfMHg0MjhkMmYSXzB4NWMwM2YzEl8weDVlZWVmZhJfMHg0Y2Y2NmQSXzB4MzhjNDFjEl8weDMyYzExZBJfMHgxNmRiYjcQXzB4N2Q5YzgIMHg1ZSIvYXBpL3ZvZC9wbGF5X3VybBR2b2RfbWFwX2lkBGNrCDB4ODIIMHg1MhJ3c1NlY3JldD0IMHg3ZAI/AiYIMHg3YhBqczJQcm94eQgweDc5CDB4NzAIMHg0NQIvCDB4MTcIMHgzMBBsb2NhdGlvbhJfMHgzZGM1ODESXzB4NDNjMDJjEl8weDVhMzY1ZAgweDQ3JGVuY29kZVVSSUNvbXBvbmVudBJfMHg1NjQxYzgSXzB4MzczNWQxEl8weDVkZmVmORJfMHg0OWRlY2ESXzB4MmE1NzQ0CDB4NmISXzB4NTM0YjdlEl8weDEzMjE3ZBJfMHgyNTRjNjUSXzB4NTM3MDI4CDB4MTYGdXJsDGhlYWRlchJfMHg0YjFkZTESXzB4MTg4Nzk0El8weDc0ZWEzZhJfMHgyM2EyM2USXzB4NTMyYzcxEl8weDUwMjEzZBJfMHgyYzZjOTESXzB4N2ViMjU1El8weDIwYWE2MRJfMHg0ZmEzNDIkL3NlYXJjaC92b2QvcmVzdWx0BGt3BHBuEl8weDFjZDc5NBJfMHg0NWZiYTkSXzB4M2VkZjE0El8weDRmMDE0YhJfMHgxNjZjMzcSXzB4MmYxZGFjEl8weDJjMzE1NAhob21lDmhvbWVWb2QQY2F0ZWdvcnkMZGV0YWlsCHBsYXkMc2VhcmNoD6QDAaYDAQApqAMABQCqAwABrAMAAq4DAAOwAwAEsgMADgAGAaABAAAAICoV6QwAqgMADKwDAQyuAwIMsAMDDLIDBAy0AwANtgMBDbgDAgm6AwMJvAMECb4DBQnAAwYJwgMHCcQDCAnGAwkJyAMKDcoDCw3MAwwJzgMNCdADDgnSAw8J1AMQCdYDEQnYAxIJ2gMTCdwDFAHeAxUB4AMWAeIDFwHkAxgB5gMZAegDGgHqAxsB7AMcAe4DHQHwAx4B8gMfAfQDIAH2AyEB+AMiDfoDIwGoAyQBCOhNvgZfGgC+B18bAL4IXxwAvglfHQC+Cl8eAL4LXx8AvgxfIAC+DV8hAL4OXyIAvg9fIwC+EF8kAL4RXyUAvhJfJgC+E18oAL4UXykAKQT+AAAABP8AAAAEAAEAAAQBAQAABAIBAAAEAwEAAAQEAQAABAUBAAAEBgEAAAQHAQAABFsAAAAECAEAAAQJAQAABAoBAAAECwEAAAQMAQAABA0BAAAEDgEAAAQPAQAABBABAAAEEQEAAAQSAQAABBMBAAAEQQAAAAQUAQAABBUBAAAEFgEAAAQXAQAABBgBAAAEGQEAAARCAAAABBoBAAAmIAAEGwEAAEwgAACABBwBAABMIQAAgAQdAQAATCIAAIAEHgEAAEwjAACABB8BAABMJAAAgAQgAQAATCUAAIAEIQEAAEwmAACABCIBAABMJwAAgAQjAQAATCgAAIAEJAEAAEwpAACABCUBAABMKgAAgAQmAQAATCsAAIAEJwEAAEwsAACABCgBAABMLQAAgAQpAQAATC4AAIAEKgEAAEwvAACABCsBAABMMAAAgAQsAQAATDEAAIAEQAAAAEwyAACABC0BAABMMwAAgAQuAQAATDQAAIAELwEAAEw1AACABDABAABMNgAAgAQxAQAATDcAAIAEMgEAAEw4AACABDMBAABMOQAAgAQ0AQAATDoAAIAENQEAAEw7AACABDYBAABMPAAAgAQ3AQAATD0AAIAEOAEAAEw+AACABF0AAABMPwAAgAQ5AQAATEAAAIAEOgEAAExBAACABDsBAABMQgAAgAQ8AQAATEMAAIAEPQEAAExEAACABD4BAABMRQAAgAQ/AQAATEYAAIAEQAEAAExHAACABDcAAABMSAAAgARBAQAATEkAAIAEQgEAAExKAACABEMBAABMSwAAgAREAQAATEwAAIAERQEAAExNAACABEYBAABMTgAAgARHAQAATE8AAIAESAEAAExQAACABEkBAABMUQAAgARKAQAATFIAAIAESwEAAExTAACABEwBAABMVAAAgARNAQAATFUAAIAETgEAAExWAACABE8BAABMVwAAgARQAQAATFgAAIAEUQEAAExZAACABFIBAABMWgAAgL0ATFsAAIAEUwEAAExcAACABFQBAABMXQAAgARVAQAATF4AAIAEVgEAAExfAACABFcBAABMYAAAgARYAQAATGEAAIAEWQEAAExiAACABFoBAABMYwAAgARbAQAATGQAAIAEXAEAAExlAACABF0BAABMZgAAgAReAQAATGcAAIAEOQAAAExoAACABF8BAABMaQAAgARgAQAATGoAAIAEYQEAAExrAACABGIBAABMbAAAgARjAQAATG0AAIAEZAEAAExuAACABGUBAABMbwAAgARmAQAATHAAAIAEZwEAAExxAACABGgBAABMcgAAgARpAQAATHMAAIC9AUx0AACABGoBAABMdQAAgARrAQAATHYAAIAEbAEAAEx3AACABG0BAABMeAAAgARuAQAATHkAAIAEMAAAAEx6AACABG8BAABMewAAgARwAQAATHwAAIAEcQEAAEx9AACABHIBAABMfgAAgARzAQAATH8AAIAEdAEAAEyAAACABHUBAABMgQAAgAR2AQAATIIAAIAEdwEAAEyDAACABHgBAABMhAAAgAR5AQAATIUAAIAEegEAAEyGAACABHsBAABMhwAAgF8FAL4CZQUAvBsB7g6+A03bAAAAXwYAZQYABHwBAADtXwcAZQYABH0BAADtXwgAC18JAL9fCgCzXwsAv18MAL9fDQALXw4AZQYABH4BAADtBH8BAABlBgAEgAEAAO1lBgAEgQEAAO1lBgAEggEAAO1lBgAEgwEAAO0EhAEAAGUGAASFAQAA7SYIAF8PAL4EZQ8AvGwB7g6+BU3lAAAAXxAAZRAAZQYABIYBAADtZQYABIcBAADt7l8RAGUQAGUGAASIAQAA7WUGAASJAQAA7e5fEgBlEAA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
\ No newline at end of file
diff --git a/cat/js/hula8_open.js b/cat/js/hula8_open.js
new file mode 100644
index 0000000..dfb8e36
--- /dev/null
+++ b/cat/js/hula8_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1C/ARpodWxhOF9vcGVuLmpzLGFzc2V0czovL2pzL2xpYi9jYXQuanMcX19qc0V2YWxSZXR1cm4MQ3J5cHRvCGxvYWQCXwZrZXkISE9TVA5zaXRlS2V5EHNpdGVUeXBlClBDX1VBDnJlcXVlc3QIaW5pdAhob21lDmhvbWVWb2QQY2F0ZWdvcnkMZGV0YWlsCHBsYXkMc2VhcmNoGGJhc2U2NEVuY29kZRhiYXNlNjREZWNvZGUHZmurTidUKmh0dHBzOi8vd3d3Lmh1bGE4Lm5ldN4BTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNi4wLjAuMCBTYWZhcmkvNTM3LjM2DHJlcVVybA5hZ2VudFNwBnJlcwZyZXEMbWV0aG9kFFVzZXItQWdlbnQsaHR0cHM6Ly93d3cuaHVsYTgubmV0Lw5yZWZlcmVyPmVzY19zZWFyY2hfY2FwdGNoYT0xO3Jlc3VsdD0xMjsMQ29va2llDmhlYWRlcnMOY29udGVudAZjZmcIc2tleQpzdHlwZQxmaWx0ZXIOY2xhc3NlcxJmaWx0ZXJPYmoIbW1hLw50eXBlX2lkC00ATQBBAFuNi04SdHlwZV9uYW1lPHVmYy1maWdodGluZy1jaGFtcGlvbnNoaXAuaHRtbBFVAEYAQwDIfoFnPGiXZVuNKHVmYy1maWdodC1uaWdodC5odG1sD1UARgBDADxol2VLThxZRmJlbGxhdG9yLWZpZ2h0aW5nLWNoYW1waW9uc2hpcC5odG1sF0IAZQBsAGwAYQB0AG8AcgA8aJdlW41CcHJvZmVzc2lvbmFsLWZpZ2h0ZXJzLWxlYWd1ZS5odG1sDVAARgBMADxol2VbjUBsZWdhY3ktZmlnaHRpbmctYWxsaWFuY2VsZmEuaHRtbA1MAEYAQQA8aJdlW40Ob25lLWZjLw1PAE4ARQCgUZtRW40yb25lLWZjL29uZS1mcmlkYXktZmlnaHRzLxFPAE4ARQBoVJROPGiXZRxZEGpjay5odG1sDUoAQwBLABhiyYnOVxR3bGx6ZC5odG1sC2Zrl2c8ey1O+Vs6a29uZnJvbnRhY2phLXN6dHVrLXdhbGtpLmh0bWwRSwBTAFcA4mxwUTxol2VbjUBlYWdsZS1maWdodGluZy1jaGFtcGlvbnNoaXAuaHRtbBNFAGEAZwBsAGUAD1xwnluNi05CYWJzb2x1dGUtY2hhbXBpb25zaGlwLWFraG1hdC5odG1sEcRPV3+vZUEAQwBBAFuNi04KYm9qaS8J2XrLeg9k+1EQay0xLmh0bWweSy0xIEpBUEFOIEdST1VQFGtydXNoLmh0bWwZSwAtADEA12ULTksAcgB1AHMAaABbjYtOEnJpc2UuaHRtbA9SAEkAUwBFACKO82JbjRh3bGYyMDA0Lmh0bWwRZmuXZ86YIAAtAFcATABGABRrdW5sdW5qdWUvEQZm0U6zUSAALQBLAEwASgAUZ2xvcnkuaHRtbBVHAGwAbwByAHkAY4MAgDxol2VbjRZ0aGFpLWZpZ2h0LwXwbPNiQnRoYWktZmlnaHQta2luZy1vZi1tdWF5LXRoYWkuaHRtbAfwbEtOGGI8YXJ0aWNsZS90YWcvdGhhaS1maWdodC1sZWFndWUvIlRIQUkgRklHSFQgTEVBR1VFDnF1YW5qaS8F82L7USBkYXpuLWJveGluZy5odG1sFkRBWk4gQm94aW5nHnBiYy1ib3hpbmcuaHRtbBRQQkMgQm94aW5nKHRvcC1yYW5rLWJveGluZy5odG1sHlRvcCBSYW5rIEJveGluZzRkYXpuLW1hdGNocm9vbS1ib3hpbmcuaHRtbCBNYXRjaHJvb20gQm94aW5nTmJhcmUta251Y2tsZS1maWdodGluZy1jaGFtcGlvbnNoaXAuaHRtbBP4iPNiPGiXZVuNQgBLAEYAQwBGaGFyZGNvcmUtZmlnaHRpbmctY2hhbXBpb25zaGlwLmh0bWwb+IjzYkgAYQByAGQAYwBvAHIAZQAgAEYAQwBEdG9wLWRvZy1maWdodGluZy1jaGFtcGlvbnNoaXAuaHRtbBn4iPNiVABPAFAAIABEAE8ARwAgAEYAQwAMb3RoZXIvCXZR1k7Ua1uNEnN0cmluZ2lmeQZtYXAOZmlsdGVycwZjbHMIbGFuZApyYXRpbwR7fQZ0aWQEcGcMZXh0ZW5kCGxpbmsIaHRtbAIkDGpzQmFzZQppdGVtcwx2aWRlb3MOaGFzTW9yZQ5wZ0NvdW50Ai8ML3BhZ2UvDnJlcGxhY2UGLy9wBC9wEGp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
\ No newline at end of file
diff --git a/cat/js/huya_open.js b/cat/js/huya_open.js
new file mode 100644
index 0000000..574d686
--- /dev/null
+++ b/cat/js/huya_open.js
@@ -0,0 +1,287 @@
+import { Crypto, _ } from 'assets://js/lib/cat.js';
+
+let host = '';
+let customArea = '';
+let dataFrom = 'official';
+let isJustLive = false;
+let siteKey = '';
+let siteType = 0;
+
+const MOBILE_UA = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36';
+
+async function requestRaw(reqUrl, headers) {
+ let resRaw = await req(reqUrl, {
+ method: 'get',
+ headers: headers,
+ });
+ return resRaw;
+}
+
+async function request(reqUrl) {
+ let defHeader = {
+ 'User-Agent': MOBILE_UA,
+ };
+ let resRaw = await requestRaw(reqUrl, defHeader);
+ return resRaw.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+ if (cfg.hasOwnProperty('ext')) {
+ if (cfg.ext.hasOwnProperty('custom')) {
+ customArea = cfg.ext.custom;
+ }
+ if (cfg.ext.hasOwnProperty('from')) {
+ dataFrom = cfg.ext.from;
+ }
+ }
+ if (dataFrom == 'justlive') {
+ host = 'http://live.yj1211.work';
+ isJustLive = true;
+ } else {
+ host = 'https://www.huya.com';
+ }
+}
+
+async function home(filter) {
+ let classes = [{"type_id":"1","type_name":"网游"},{"type_id":"2","type_name":"单机"},{"type_id":"3","type_name":"手游"},{"type_id":"8","type_name":"娱乐"}];
+ let filterObj = {
+ "1":[{"key":"cateId","name":"分类","init":"1","value":[{"n":"英雄联盟","v":"1"},{"n":"CS2","v":"862"},{"n":"穿越火线","v":"4"},{"n":"lol云顶之弈","v":"5485"},{"n":"无畏契约","v":"5937"},{"n":"CFHD","v":"6079"},{"n":"逆战","v":"135"},{"n":"炉石传说","v":"393"},{"n":"DOTA2","v":"7"},{"n":"地下城与勇士","v":"2"},{"n":"魔兽世界","v":"8"},{"n":"坦克世界","v":"802"},{"n":"DOTA1","v":"6"},{"n":"梦三国","v":"489"},{"n":"魔兽争霸3","v":"4615"},{"n":"问道","v":"107"},{"n":"命运方舟","v":"3058"},{"n":"QQ飞车","v":"9"},{"n":"星际争霸","v":"5"},{"n":"网游竞技","v":"100023"},{"n":"射击综合游戏","v":"100141"},{"n":"暴雪专区","v":"100043"},{"n":"彩虹岛Online","v":"683"},{"n":"剑灵","v":"897"},{"n":"军事游戏","v":"100133"},{"n":"冒险岛","v":"2243"},{"n":"暗黑破坏神","v":"1123"},{"n":"诛仙3","v":"1646"},{"n":"热血江湖","v":"387"},{"n":"英魂之刃","v":"1830"},{"n":"武林外传一世琴缘","v":"1661"},{"n":"起凡:群雄逐鹿","v":"1612"},{"n":"神武4电脑版","v":"3227"},{"n":"龙之谷","v":"15"},{"n":"炉石战棋","v":"5751"},{"n":"御龙在天","v":"675"},{"n":"逆水寒","v":"2952"},{"n":"千年3","v":"878"},{"n":"永恒之塔","v":"446"},{"n":"体育游戏","v":"100135"},{"n":"寻仙","v":"734"},{"n":"战舰世界","v":"1947"},{"n":"QQ三国","v":"1090"},{"n":"流放之路","v":"427"},{"n":"反恐精英Online","v":"1918"},{"n":"反恐行动online","v":"861"},{"n":"征途","v":"2715"},{"n":"战争雷霆","v":"624"},{"n":"丝路传说2","v":"1026"},{"n":"星际战甲","v":"627"},{"n":"NBA2KOL系列","v":"3959"},{"n":"九阴真经","v":"1009"},{"n":"跑跑卡丁车","v":"162"},{"n":"诛仙世界","v":"7749"},{"n":"QQ华夏","v":"1878"},{"n":"天涯明月刀","v":"1219"},{"n":"大话西游:归来","v":"8239"},{"n":"荒野行动PC版","v":"3185"},{"n":"新剑侠情缘","v":"586"},{"n":"剑网3","v":"900"},{"n":"生死狙击2","v":"6091"},{"n":"全球使命","v":"939"},{"n":"梦想世界3","v":"486"},{"n":"枪神纪","v":"496"},{"n":"新天龙八部","v":"5671"},{"n":"铁甲雄兵","v":"2765"},{"n":"神泣","v":"2531"},{"n":"斗战神","v":"591"},{"n":"造梦西游OL","v":"6815"},{"n":"天堂","v":"1966"},{"n":"大话西游2","v":"2975"},{"n":"使命召唤:战区","v":"5911"},{"n":"希望OL","v":"1161"},{"n":"极光世界 弑神传","v":"514"},{"n":"守望先锋归来","v":"2174"},{"n":"QQ自由幻想","v":"1862"},{"n":"命运2","v":"2942"},{"n":"奇迹世界2","v":"766"},{"n":"坦克大战","v":"4359"},{"n":"生死狙击","v":"2471"},{"n":"天翼决","v":"779"},{"n":"QQ幻想","v":"2419"},{"n":"新飞飞(FlyFF)","v":"1582"},{"n":"刀剑英雄","v":"915"},{"n":"FIFA Online系列","v":"100079"},{"n":"全球使命3","v":"2953"},{"n":"完美端游系列","v":"3034"},{"n":"战意","v":"2599"},{"n":"泡泡堂","v":"440"},{"n":"赛尔号","v":"2755"},{"n":"大唐无双零","v":"1584"},{"n":"QQ炫舞","v":"2440"},{"n":"007:传奇","v":"1135"},{"n":"天下","v":"1597"},{"n":"天谕","v":"1899"},{"n":"新倩女幽魂","v":"1579"},{"n":"传世无双","v":"984"},{"n":"剑侠世界","v":"903"},{"n":"Warhaven","v":"9053"},{"n":"诺亚传说","v":"190"},{"n":"新挑战","v":"583"},{"n":"超激斗梦境","v":"5691"},{"n":"QQ音速","v":"1085"},{"n":"征途2","v":"677"},{"n":"征程","v":"678"},{"n":"蜀门","v":"4711"},{"n":"完美世界:诸神之战","v":"7217"},{"n":"战之刃:幸存者","v":"8627"},{"n":"黎明之光","v":"41"},{"n":"天命西游","v":"1086"},{"n":"炫舞时代","v":"3353"},{"n":"荣誉空间","v":"225"},{"n":"卡拉彼丘","v":"9073"},{"n":"成吉思汗怀旧版","v":"640"},{"n":"英雄年代3","v":"1232"},{"n":"天书奇谈","v":"2225"},{"n":"劲舞团","v":"2420"},{"n":"远征Online梦想版","v":"142"},{"n":"奇迹:传奇","v":"3917"},{"n":"封印者","v":"2294"},{"n":"上古世纪","v":"1046"},{"n":"梦幻诛仙2","v":"488"},{"n":"TERA Online","v":"1072"},{"n":"倚天Ⅱ","v":"959"},{"n":"街头篮球","v":"206"},{"n":"永恒轮回:无限","v":"7847"},{"n":"火线精英","v":"2550"},{"n":"忍者村大战2","v":"2369"},{"n":"领地人生","v":"2282"},{"n":"仙侠世界","v":"995"},{"n":"洛奇英雄传","v":"432"},{"n":"KARDS","v":"8261"},{"n":"无限法则","v":"3189"},{"n":"全面战争:竞技场","v":"5901"},{"n":"自由篮球","v":"243"},{"n":"FC Online4","v":"3683"},{"n":"战地之王","v":"618"},{"n":"古剑奇谭OL","v":"1892"},{"n":"QQ仙侠传","v":"2291"},{"n":"300英雄","v":"1132"}]}],
+ "2":[{"key":"cateId","name":"分类","init":"2793","value":[{"n":"天天吃鸡","v":"2793"},{"n":"永劫无间","v":"6219"},{"n":"主机游戏","v":"100032"},{"n":"猛兽派对","v":"6165"},{"n":"互动点播","v":"5907"},{"n":"我的世界","v":"1732"},{"n":"方舟","v":"1997"},{"n":"单机热游","v":"100002"},{"n":"怀旧游戏","v":"100125"},{"n":"逃离塔科夫","v":"3493"},{"n":"俄罗斯钓鱼4","v":"5495"},{"n":"部落:上升","v":"1318"},{"n":"Dark and Darker","v":"7905"},{"n":"The Front","v":"9497"},{"n":"Apex英雄","v":"5011"},{"n":"生化危机4重制版","v":"8013"},{"n":"DayZ独立版","v":"1125"},{"n":"星空","v":"7857"},{"n":"互动剧游","v":"6919"},{"n":"艾尔登法环","v":"5801"},{"n":"恐惧之间","v":"6679"},{"n":"SCUM","v":"4245"},{"n":"Dread Hunger","v":"7601"},{"n":"塞尔达传说:王国之泪","v":"7883"},{"n":"欧洲卡车模拟","v":"475"},{"n":"洛克王国","v":"2864"},{"n":"卧龙:苍天陨落","v":"7859"},{"n":"无人深空","v":"2566"},{"n":"帝国神话","v":"6821"},{"n":"饥荒","v":"74"},{"n":"森林之子","v":"7943"},{"n":"星球大战系列","v":"554"},{"n":"极限竞速:地平线","v":"2634"},{"n":"最终幻想16","v":"7869"},{"n":"Among Us","v":"6163"},{"n":"怪物猎人:崛起","v":"6479"},{"n":"怪物猎人物语","v":"7101"},{"n":"骑马与砍杀系列","v":"4783"},{"n":"荒野大镖客2","v":"4319"},{"n":"太荒初境","v":"7685"},{"n":"罗布乐思","v":"5771"},{"n":"只狼:影逝二度","v":"4505"},{"n":"双人成行","v":"6737"},{"n":"重生边缘","v":"6201"},{"n":"海贼王 寻秘世界","v":"5097"},{"n":"战神:诸神黄昏","v":"7771"},{"n":"恐鬼症","v":"6205"},{"n":"鬼谷八荒","v":"6571"},{"n":"霍格沃茨之遗","v":"7881"},{"n":"全面战争","v":"3521"},{"n":"仁王2","v":"5795"},{"n":"奥拉星","v":"2846"},{"n":"甜蜜之家","v":"6739"},{"n":"仙剑奇侠传七","v":"6509"},{"n":"消逝的光芒2","v":"7581"},{"n":"渡神记","v":"6231"},{"n":"归家异途","v":"2949"},{"n":"博德之门3","v":"6147"},{"n":"看门狗:军团","v":"6155"},{"n":"使命召唤系列","v":"100137"},{"n":"育碧游戏","v":"100139"},{"n":"帝国时代4","v":"4835"},{"n":"英灵神殿","v":"6609"},{"n":"蛮荒志异:起源","v":"9709"},{"n":"岛","v":"3019"},{"n":"沙盒与副本","v":"9151"},{"n":"扫雷","v":"2349"},{"n":"街机游戏","v":"5999"},{"n":"幽灵线:东京","v":"7669"},{"n":"怪物猎人世界","v":"3519"},{"n":"盗贼之海","v":"3641"},{"n":"纸人","v":"5257"},{"n":"黑色像素人","v":"28"},{"n":"对马岛之魂","v":"6039"},{"n":"瑞奇与叮当","v":"2455"},{"n":"港诡实录","v":"5853"},{"n":"剑士","v":"1467"},{"n":"魔法门之英雄无敌系列","v":"2096"},{"n":"星露谷物语","v":"2443"},{"n":"仙剑奇侠传四","v":"1659"},{"n":"伤害世界","v":"2337"},{"n":"禁闭求生","v":"6065"},{"n":"真三国无双","v":"1599"},{"n":"恐怖黎明","v":"3435"},{"n":"其他单机","v":"3069"},{"n":"幽灵行动:荒野","v":"2794"},{"n":"边缘","v":"151"},{"n":"阿凡达","v":"106"},{"n":"全面战争:三国","v":"3004"},{"n":"黎明之星","v":"40"},{"n":"翼星求生","v":"7463"},{"n":"黎明传说","v":"39"},{"n":"恶魔之魂","v":"6151"},{"n":"艾兰岛","v":"3855"},{"n":"龙与地下城:秘影历代记HD","v":"17"},{"n":"龙与地下城:匕首谷","v":"18"},{"n":"沙石镇时光","v":"7687"},{"n":"三国志曹操传","v":"2592"},{"n":"FIFA足球","v":"1888"},{"n":"最终幻想7:重制版","v":"5809"},{"n":"四海兄弟","v":"5995"},{"n":"最终幻想:起源","v":"7653"},{"n":"摔跤城大乱斗","v":"7773"},{"n":"音乐游戏","v":"2761"},{"n":"精灵与萤火意志","v":"5895"},{"n":"桥梁建造师","v":"3275"},{"n":"哈迪斯","v":"6153"},{"n":"小缇娜的奇幻之地","v":"7647"},{"n":"宝可梦:剑盾","v":"5715"},{"n":"边境","v":"4779"},{"n":"人类一败涂地","v":"3289"},{"n":"糖豆人:终极淘汰赛","v":"6083"},{"n":"精灵宝可梦Let's Go","v":"4375"},{"n":"战锤40K:暗潮","v":"3016"},{"n":"石油骚动","v":"2585"},{"n":"紫塞秋风","v":"6045"},{"n":"阿尔比恩","v":"8115"},{"n":"猎人:荒野的召唤","v":"2906"},{"n":"FIFA 23","v":"7789"},{"n":"都市:天际线","v":"2201"},{"n":"乐高大电影:游戏版","v":"1439"},{"n":"全面战争:阿提拉","v":"2383"},{"n":"斩妖行","v":"6105"},{"n":"马里奥赛车8","v":"5947"},{"n":"复仇者联盟","v":"6121"},{"n":"霓虹深渊","v":"5743"}]}],
+ "3":[{"key":"cateId","name":"分类","init":"2336","value":[{"n":"王者荣耀","v":"2336"},{"n":"和平精英","v":"3203"},{"n":"英雄联盟手游","v":"6203"},{"n":"CF手游","v":"2413"},{"n":"金铲铲之战","v":"7185"},{"n":"三国杀","v":"1669"},{"n":"原神","v":"5489"},{"n":"棋牌桌游","v":"100036"},{"n":"综合手游","v":"100029"},{"n":"劲乐幻想","v":"7691"},{"n":"新游广场","v":"100052"},{"n":"崩坏:星穹铁道","v":"7349"},{"n":"火影忍者手游","v":"2429"},{"n":"第五人格","v":"3115"},{"n":"问道手游","v":"2477"},{"n":"暗区突围","v":"7209"},{"n":"QQ飞车手游","v":"2928"},{"n":"球球大作战","v":"2411"},{"n":"明日之后","v":"3483"},{"n":"皇室战争","v":"2439"},{"n":"COD手游","v":"4769"},{"n":"手游休闲","v":"100004"},{"n":"二次元手游","v":"100091"},{"n":"摸了个鱼","v":"9283"},{"n":"MMORPG","v":"100273"},{"n":"动作游戏","v":"100197"},{"n":"战争冲突","v":"7449"},{"n":"王者模拟战","v":"5699"},{"n":"逆水寒手游","v":"7725"},{"n":"幻塔","v":"6437"},{"n":"欢乐斗地主","v":"1749"},{"n":"神武4手游","v":"3135"},{"n":"阴阳师","v":"2598"},{"n":"DNF手游","v":"4921"},{"n":"欢乐麻将","v":"1751"},{"n":"英雄联盟电竞经理","v":"7177"},{"n":"狼人杀手游","v":"100049"},{"n":"新天龙八部手游","v":"6945"},{"n":"中国象棋","v":"1671"},{"n":"天天象棋","v":"4997"},{"n":"传奇世界3D","v":"3961"},{"n":"御龙在天手游","v":"2568"},{"n":"高能英雄","v":"8359"},{"n":"天龙八部手游","v":"2852"},{"n":"三国志战略版","v":"5619"},{"n":"忍者必须死3","v":"4041"},{"n":"SKY光遇","v":"3719"},{"n":"虎牙领主争霸","v":"7529"},{"n":"云上城之歌","v":"5977"},{"n":"晶核","v":"7279"},{"n":"仙境传说RO","v":"2675"},{"n":"天天狼人","v":"2774"},{"n":"JJ棋牌","v":"3841"},{"n":"奇迹MU:觉醒","v":"3116"},{"n":"指尖四川麻将","v":"7215"},{"n":"部落冲突","v":"1797"},{"n":"新剑侠情缘手游","v":"6259"},{"n":"萌宠远征","v":"9385"},{"n":"暗黑破坏神:不朽","v":"6385"},{"n":"英雄杀","v":"2688"},{"n":"热血江湖手游","v":"2817"},{"n":"蛋仔派对","v":"6909"},{"n":"完美世界手游","v":"4237"},{"n":"巅峰战舰","v":"2502"},{"n":"狼人杀","v":"2785"},{"n":"斗罗大陆:魂师对决","v":"6745"},{"n":"武侠乂手游","v":"4929"},{"n":"诛仙手游","v":"2647"},{"n":"斗破苍穹手游","v":"4337"},{"n":"迷你世界","v":"2683"},{"n":"风云","v":"3061"},{"n":"妄想山海","v":"6007"},{"n":"曙光英雄","v":"6169"},{"n":"三国战纪2","v":"6049"},{"n":"梦幻新诛仙","v":"5975"},{"n":"黎明觉醒:生机","v":"6131"},{"n":"远征","v":"7837"},{"n":"航海王:燃烧意志","v":"3943"},{"n":"火炬之光:无限","v":"6399"},{"n":"巅峰极速","v":"6979"},{"n":"圣境之塔","v":"7055"},{"n":"魔力宝贝","v":"2891"},{"n":"香肠派对","v":"3639"},{"n":"创造与魔法","v":"2931"},{"n":"JJ斗地主","v":"6271"},{"n":"永恒纪元:戒","v":"2646"},{"n":"天涯明月刀手游","v":"5115"},{"n":"狼人杀官方","v":"3679"},{"n":"混沌起源","v":"5985"},{"n":"多多自走棋","v":"5133"},{"n":"梦幻诛仙手游","v":"2672"},{"n":"鸿图之下","v":"6027"},{"n":"新笑傲江湖","v":"5669"},{"n":"凡人修仙传:人界篇","v":"8297"},{"n":"多乐棋牌","v":"6209"},{"n":"口袋觉醒","v":"5953"},{"n":"跑跑卡丁车手游","v":"2620"},{"n":"奶块","v":"2775"},{"n":"月圆之夜","v":"4339"},{"n":"率土之滨","v":"2691"},{"n":"征途2手游","v":"2811"},{"n":"英魂之刃口袋版","v":"2760"},{"n":"精灵盛典:黎明","v":"6123"},{"n":"方舟手游","v":"4035"},{"n":"掼蛋","v":"6225"},{"n":"绝世仙王","v":"6619"},{"n":"流星群侠传","v":"3927"},{"n":"寻仙手游","v":"2979"},{"n":"一梦江湖","v":"3082"},{"n":"Lost Light(萤火突击国际服)","v":"6859"},{"n":"弹幕云游戏","v":"7001"},{"n":"猎魂觉醒","v":"3071"},{"n":"冒险岛:枫之传说","v":"8005"},{"n":"征途手游","v":"2556"},{"n":"海岛奇兵","v":"2624"},{"n":"倩女幽魂手游","v":"2503"},{"n":"超凡先锋","v":"6507"},{"n":"龙之谷2手游","v":"2736"},{"n":"崩坏3","v":"2639"},{"n":"猫和老鼠","v":"2758"},{"n":"七人传奇:光与暗之交战","v":"8125"},{"n":"JJ麻将","v":"9487"},{"n":"拉轰西游","v":"9543"},{"n":"三国战纪","v":"6047"},{"n":"自由幻想手游","v":"4015"},{"n":"秦时明月世界","v":"5279"},{"n":"新斗罗大陆","v":"6657"},{"n":"新神魔大陆","v":"5939"},{"n":"逃跑吧!少年","v":"4137"},{"n":"太古神王2","v":"6649"},{"n":"剑侠世界3","v":"7183"},{"n":"天天吃鸡手机版","v":"4341"},{"n":"时空猎人3","v":"6411"},{"n":"合金弹头:觉醒","v":"6931"},{"n":"明日方舟","v":"4925"},{"n":"原始征途","v":"7713"},{"n":"奇迹:最强者","v":"3215"},{"n":"天天酷跑","v":"1715"},{"n":"FC 足球世界","v":"3873"},{"n":"万国觉醒","v":"6159"},{"n":"机动都市阿尔法","v":"5411"},{"n":"航海王热血航线","v":"6181"},{"n":"幻世九歌","v":"7199"},{"n":"植物大战僵尸","v":"485"},{"n":"无悔华夏","v":"7063"},{"n":"时空猎人","v":"1742"},{"n":"荒野乱斗","v":"4613"},{"n":"拳皇98终极之战OL","v":"2687"},{"n":"蛇蛇争霸","v":"2680"},{"n":"王牌竞速","v":"6463"},{"n":"重返帝国","v":"6955"},{"n":"吞噬星空:黎明","v":"6651"},{"n":"口袋妖怪","v":"2541"},{"n":"QQ炫舞手游","v":"2991"},{"n":"一拳超人:最强之男","v":"4629"},{"n":"荣耀新三国","v":"6943"},{"n":"少年三国志2","v":"6125"},{"n":"我的起源","v":"5365"},{"n":"决战平安京","v":"3064"},{"n":"剑灵2","v":"7223"},{"n":"开心消消乐","v":"1712"},{"n":"小小蚁国","v":"7803"},{"n":"最强NBA","v":"2988"},{"n":"剑侠情缘手游","v":"2621"},{"n":"长安幻想","v":"6727"},{"n":"我叫MT4","v":"4087"},{"n":"全明星街球派对","v":"8401"},{"n":"大话西游手游","v":"2626"},{"n":"荣耀大天使","v":"6477"},{"n":"镇魂街:天生为王","v":"6557"},{"n":"摩尔庄园","v":"5981"},{"n":"游戏王:决斗链接","v":"4451"},{"n":"剑侠世界2手游","v":"3150"},{"n":"青云诀2","v":"6009"},{"n":"战地无疆","v":"7909"},{"n":"一念逍遥","v":"6419"},{"n":"永劫无间手游","v":"7579"},{"n":"尘白禁区","v":"7297"},{"n":"元梦之星","v":"9521"},{"n":"不良人3","v":"5891"},{"n":"剑灵:革命","v":"4545"},{"n":"魔力宝贝:旅人","v":"7573"},{"n":"米加小镇","v":"7269"},{"n":"龙武手游","v":"5219"},{"n":"斗罗大陆2:绝世唐门","v":"6581"},{"n":"西行纪燃魂","v":"8303"},{"n":"坦克世界闪击战","v":"4977"},{"n":"军棋","v":"2561"},{"n":"饥荒:新家","v":"6491"},{"n":"拳皇命运","v":"3379"},{"n":"实况足球","v":"3741"},{"n":"战舰世界闪击战","v":"4101"},{"n":"时空召唤","v":"2551"},{"n":"王牌战争:文明重启","v":"5479"},{"n":"雀魂麻将","v":"7107"},{"n":"欢乐升级","v":"3925"},{"n":"绿色征途","v":"4227"},{"n":"弹弹堂手游","v":"2857"},{"n":"太极熊猫3:猎龙","v":"2778"},{"n":"哈利波特:魔法觉醒","v":"5835"},{"n":"天地劫:幽城再临","v":"5987"},{"n":"热血街篮","v":"5859"},{"n":"神雕侠侣手游","v":"1781"},{"n":"山海镜花","v":"5089"},{"n":"三国志战棋版","v":"7937"},{"n":"神雕侠侣2","v":"4209"},{"n":"仙魔决","v":"1674"},{"n":"王者荣耀星之破晓","v":"7927"},{"n":"我在江湖之神魔道","v":"7699"},{"n":"梦幻模拟战","v":"3481"},{"n":"单机手游","v":"2777"},{"n":"斗罗大陆-斗神再临","v":"6631"},{"n":"未来之役","v":"6831"},{"n":"风云岛行动","v":"4695"},{"n":"新游推荐","v":"3160"},{"n":"火影忍者OL","v":"3901"},{"n":"九灵神域","v":"7719"},{"n":"武动乾坤","v":"3829"},{"n":"秦时明月2","v":"1784"},{"n":"文明与征服","v":"7071"},{"n":"战双:帕弥什","v":"4133"},{"n":"大航海时代:海上霸主","v":"6929"},{"n":"剑网1:归来","v":"7361"},{"n":"绝区零","v":"7711"},{"n":"黑色沙漠手游","v":"7287"},{"n":"虎牙吃鸡","v":"7465"},{"n":"一剑斩仙","v":"6843"},{"n":"传奇天下","v":"6927"},{"n":"斗斗堂","v":"7133"},{"n":"斗罗大陆","v":"6119"},{"n":"天谕手游","v":"5925"},{"n":"坎公骑冠剑","v":"6641"},{"n":"最终幻想觉醒","v":"2721"},{"n":"神将三国","v":"6621"},{"n":"灌篮高手正版授权手游","v":"5399"},{"n":"剑与家园","v":"2838"},{"n":"极无双2","v":"7825"},{"n":"光明大陆","v":"2832"},{"n":"荒野行动","v":"3084"},{"n":"战斗法则","v":"9513"},{"n":"疯狂原始人","v":"4619"},{"n":"逆战手游","v":"7575"},{"n":"石器时代:觉醒","v":"9159"}]}],
+ "8":[{"key":"cateId","name":"分类","init":"1663","value":[{"n":"星秀","v":"1663"},{"n":"户外","v":"2165"},{"n":"一起看","v":"2135"},{"n":"二次元","v":"2633"},{"n":"虚拟偶像","v":"6055"},{"n":"旅游","v":"6791"},{"n":"放映厅","v":"6245"},{"n":"娱乐天地","v":"100022"},{"n":"交友","v":"4079"},{"n":"组队","v":"5367"},{"n":"吃喝玩乐","v":"100044"},{"n":"原创","v":"6861"},{"n":"虎牙文化","v":"4089"},{"n":"体育","v":"2356"},{"n":"虎牙地方","v":"5123"},{"n":"颜值","v":"2168"},{"n":"科技","v":"2408"},{"n":"音乐","v":"3793"},{"n":"趣分享","v":"5883"},{"n":"一起买","v":"7759"},{"n":"派对","v":"7785"}]}],
+ };
+ if (customArea.length > 0) {
+ const filterCfg = customArea.split('#');
+ classes.unshift({"type_id":"custom","type_name":"自选"});
+ const filterList = _.map(filterCfg, (it) => {
+ const filterKv = it.split(',');
+ return {
+ n: filterKv[1],
+ v: filterKv[0],
+ };
+ });
+ const defKey = filterList[0];
+ filterObj["custom"] = [{"key":"cateId","name":"分类","init":defKey.v,"value":filterList}];
+ }
+ if (isJustLive) {
+ // key-value映射修改
+ const filterKeys = Object.keys(filterObj);
+ for (const filterKey of filterKeys) {
+ const filterItem = filterObj[filterKey];
+ for (const typeItem of filterItem) {
+ typeItem.value = _.map(typeItem.value, (it) => {
+ // 修改默认值
+ if (it.v == typeItem.init) {
+ typeItem.init = it.n;
+ }
+ return {
+ n: it.n,
+ v: it.n,
+ };
+ });
+ }
+ }
+ }
+ classes.unshift({"type_id":"home","type_name":"首页"});
+ return JSON.stringify({
+ class: _.map(classes, (it) => {
+ return {
+ type_id: it.type_id,
+ type_name: it.type_name,
+ land: 1,
+ ratio: 1.78,
+ };
+ }),
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {
+ return '{}';
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0 || typeof pg == 'undefined') pg = 1;
+ let url = '';
+ let videos = [];
+ if (isJustLive) {
+ if (tid == 'home') {
+ url = host + '/api/live/getRecommendByPlatform?platform=huya&size=20&page=' + pg;
+ } else {
+ url = host + '/api/live/getRecommendByPlatformArea?platform=huya&size=20&area=' + extend.cateId + '&page=' + pg;
+ }
+ const data = JSON.parse(await request(url));
+ videos = _.map(data.data, (it) => {
+ return {
+ vod_id: it.roomId,
+ vod_name: it.roomName,
+ vod_pic: it.roomPic,
+ vod_remarks: it.ownerName,
+ }
+ });
+ } else {
+ if (tid == 'home') {
+ url = host + '/cache.php?m=LiveList&do=getLiveListByPage&tagAll=1&page=' + pg;
+ } else {
+ url = host + '/cache.php?m=LiveList&do=getLiveListByPage&gameId=' + extend.cateId + '&tagAll=0&page=' + pg;
+ }
+ const data = JSON.parse(await request(url));
+ videos = _.map(data.data.datas, (it) => {
+ return {
+ vod_id: it.profileRoom,
+ vod_name: it.roomName,
+ vod_pic: it.screenshot,
+ vod_remarks: it.nick,
+ }
+ });
+ }
+
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: 9999,
+ limit: 90,
+ total: 999999,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ let liveInfo = null;
+ let streamInfoList = null;
+ if (isJustLive) {
+ const headers = {
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ 'User-Agent': MOBILE_UA,
+ };
+ const resp = await requestRaw('https://www.huya.com/' + id, headers);
+ let liveData = null;
+ let streamInfo = resp.content.match(/stream: ([\s\S]*?)\n/);
+ if (streamInfo) {
+ liveData = JSON.parse(streamInfo[1]);
+ } else {
+ streamInfo = resp.content.match(/"stream": "([\s\S]*?)"/);
+ if (streamInfo) {
+ let liveDataBase64 = streamInfo[1];
+ liveData = JSON.parse(base64Decode(liveDataBase64));
+ }
+ }
+ const vodData = liveData.data[0];
+ liveInfo = vodData.gameLiveInfo;
+ streamInfoList = vodData.gameStreamInfoList;
+ } else {
+ const resp = await request('https://mp.huya.com/cache.php?m=Live&do=profileRoom&roomid=' + id);
+ const data = JSON.parse(resp);
+ liveInfo = data.data.liveData;
+ streamInfoList = data.data.stream.baseSteamInfoList;
+ }
+ let vod = {
+ vod_id: id,
+ vod_name: liveInfo.introduction,
+ vod_pic: liveInfo.screenshot,
+ vod_remarks: liveInfo.gameFullName,
+ type_name: liveInfo.gameFullName,
+ vod_director: liveInfo.nick,
+ vod_actor: '',
+ vod_content: liveInfo.activityCount + '人在线',
+ vod_year: '',
+ vod_area: '',
+ };
+ let vodList = [];
+ let playUrl = '';
+ for (const streamInfo of streamInfoList) {
+ const urlData = getPlayUrlData(streamInfo);
+ playUrl += `${urlData.cdnType}$${urlData.playUrl}#`;
+ }
+ vod.vod_play_from = 'huya';
+ vod.vod_play_url = playUrl.replace(/#$/g, '');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+function getPlayUrlData(streamInfo) {
+ const hlsUrl = streamInfo.sHlsUrl + '/' + streamInfo.sStreamName + '.' + streamInfo.sHlsUrlSuffix;
+ const srcAntiCode = unescape(streamInfo.sHlsAntiCode);
+ let codeList = srcAntiCode.split('&');
+ codeList = codeList.filter(code => code != '');
+ let cryptoInfo = {};
+ for (const code of codeList) {
+ const [k, v] = code.split('=');
+ cryptoInfo[k] = v;
+ }
+ const fm = unquote(cryptoInfo.fm);
+ const fmDecoded = base64Decode(fm);
+ const hashPrefix = fmDecoded.split('_')[0];
+ const ctype = cryptoInfo.ctype || '';
+ const txyp = cryptoInfo.txyp || '';
+ const fs = cryptoInfo.fs || '';
+ const t = cryptoInfo.t || '';
+ const u = 1463993859134;
+ const curTime = Date.now();
+ const seqid = Math.floor(curTime + u);
+ const wsTime = (Math.floor(curTime / 1e3) + 3600).toString(16);
+ const v0 = seqid + '|' + ctype + '|' + t;
+ const v1 = md5Encode(v0);
+ const v2 = hashPrefix + '_' + u + '_' + streamInfo.sStreamName + '_' + v1 + '_' + wsTime;
+ const hash = md5Encode(v2);
+ const ratio = ''
+ const purl = `${hlsUrl}?wsSecret=${hash}&wsTime=${wsTime}&seqid=${seqid}&ctype=${ctype}&ver=1&txyp=${txyp}&fs=${fs}&ratio=${ratio}&u=${u}&t=${t}&sv=2107230339`;
+ return {
+ cdnType: streamInfo.sCdnType,
+ playUrl: purl,
+ };
+}
+
+async function play(flag, id, flags) {
+ return JSON.stringify({
+ parse: 0,
+ url: id,
+ header: {
+ "User-Agent": MOBILE_UA,
+ },
+ });
+}
+
+async function search(wd, quick) {
+ const resp = await request('https://search.cdn.huya.com/?m=Search&do=getSearchContent&q=' + wd + '&uid=0&v=4&typ=-5&livestate=0&rows=40&start=0');
+ const data = JSON.parse(resp);
+ let videos = [];
+ for (const vod of data.response['3'].docs) {
+ videos.push({
+ vod_id: vod.room_id,
+ vod_name: vod.game_roomName,
+ vod_pic: vod.game_screenshot,
+ vod_remarks: vod.game_nick,
+ });
+ }
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+function unquote(str) {
+ return str.replace(/^"(.*)"$/, '$1');
+}
+
+function md5Encode(text) {
+ return Crypto.MD5(Crypto.enc.Utf8.parse(text)).toString();
+}
+
+function base64Decode(text) {
+ return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text));
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/ikanbot.js b/cat/js/ikanbot.js
new file mode 100644
index 0000000..6dfa631
--- /dev/null
+++ b/cat/js/ikanbot.js
@@ -0,0 +1,261 @@
+import { Crypto, load, _ } from './lib/cat.js';
+
+let key = 'ikanbot';
+let url = 'https://www.ikanbot.com';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': agentSp || UA,
+ 'referer': url
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+function getClass($) {
+ const nav = $('ul.nav-pills:eq(1) > li > a');
+ let tags = {
+ key: 'tag',
+ name: '标签',
+ value: _.map(nav, (n) => {
+ return { n: n.children[0].data, v: n.attribs.href };
+ }),
+ };
+ tags['init'] = tags.value[0].v;
+ const title = $('title:first').text().split('-')[0].substring(2);
+ return { cls: { type_id: tags.value[0].v, type_name: title }, tags: [tags] };
+}
+
+async function home(filter) {
+ let classes = [];
+ let filterObj = {};
+ for (const cate of ['/hot/index-movie-热门.html', '/hot/index-tv-热门.html']) {
+ const html = await request(url + cate);
+ const $ = load(html);
+ const { cls, tags } = getClass($);
+ classes.push(cls);
+ filterObj[cls.type_id] = tags;
+ }
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {
+ const html = await request(url);
+ const $ = load(html);
+ const items = $('div.v-list a.item');
+ var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
+ let videos = _.map(items, (item) => {
+ const img = $(item).find('img:first')[0];
+ return {
+ vod_id: item.attribs.href,
+ vod_name: img.attribs.alt,
+ vod_pic: jsBase + base64Encode(img.attribs['data-src']),
+ vod_remarks: '',
+ };
+ });
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ const link = url + (extend.tag || tid).replace('.html', pg > 1 ? `-p-${pg}.html` : '.html');
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.v-list a.item');
+ var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
+ let videos = _.map(items, (item) => {
+ const img = $(item).find('img:first')[0];
+ return {
+ vod_id: item.attribs.href,
+ vod_name: img.attribs.alt,
+ vod_pic: jsBase + base64Encode(img.attribs['data-src']),
+ vod_remarks: '',
+ };
+ });
+ const hasMore = $('div.page-more > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const html = await request(url + id);
+ const $ = load(html);
+ var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
+ const detail = $('div.detail');
+ const remarks = $('span#line-tips').text();
+ let vod = {
+ vod_id: id,
+ vod_pic: jsBase + base64Encode($('div.item-root > img')[0].attribs['data-src']),
+ vod_remarks: '',
+ vod_content: remarks || '',
+ vod_name: $(detail).find('h2').text().trim(),
+ vod_year: $(detail).find('h3:nth-child(3)').text(),
+ vod_area: $(detail).find('h3:nth-child(4)').text(),
+ vod_actor: $(detail).find('h3:nth-child(5)').text(),
+ };
+ const res = await req(url + '/api/getResN?videoId=' + id.substring(id.lastIndexOf('/') + 1) + '&mtype=2&token=9109590b194731fde643ce27924fcf6f', {
+ headers: {
+ Referer: 'play',
+ 'User-Agent': UA,
+ },
+ });
+ const list = JSON.parse(res.content).data.list;
+ let playlist = {};
+ let arr = []
+ for (const l of list) {
+ const flagData = JSON.parse(l.resData);
+ for (const f of flagData) {
+ const from = f.flag;
+ const urls = f.url;
+ if (!from || !urls) continue;
+ if (playlist[from]) continue;
+ playlist[from] = urls;
+ }
+ }
+ for (var key in playlist) {
+ if ('kuaikan' == key) {
+ arr.push({
+ flag: '快看',
+ url: playlist[key],
+ sort: 1
+ })
+ } else if ('bfzym3u8' == key) {
+ arr.push({
+ flag: '暴风',
+ url: playlist[key],
+ sort: 2
+ })
+ } else if ('ffm3u8' == key) {
+ arr.push({
+ flag: '非凡',
+ url: playlist[key],
+ sort: 3
+ })
+ } else if ('lzm3u8' == key) {
+ arr.push({
+ flag: '量子',
+ url: playlist[key],
+ sort: 4
+ })
+ } else {
+ arr.push({
+ flag: key,
+ url: playlist[key],
+ sort: 5
+ })
+ }
+ }
+ arr.sort((a, b) => a.sort - b.sort);
+ let playFrom = [];
+ let playList = [];
+ arr.map(val => {
+ playFrom.push(val.flag);
+ playList.push(val.url);
+ })
+ vod.vod_play_from = playFrom.join("$$$");
+ vod.vod_play_url = playList.join("$$$");
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+function base64Encode(text) {
+ return Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(text));
+}
+
+function base64Decode(text) {
+ return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text));
+}
+
+async function proxy(segments, headers) {
+ let what = segments[0];
+ let url = base64Decode(segments[1]);
+ if (what == 'img') {
+ var resp = await req(url, {
+ buffer: 2,
+ headers: {
+ Referer: url,
+ 'User-Agent': UA,
+ },
+ });
+ return JSON.stringify({
+ code: resp.code,
+ buffer: 2,
+ content: resp.content,
+ headers: resp.headers,
+ });
+ }
+ return JSON.stringify({
+ code: 500,
+ content: '',
+ });
+}
+
+async function play(flag, id, flags) {
+ return JSON.stringify({
+ parse: 0,
+ url: id,
+ });
+}
+
+async function search(wd, quick, pg) {
+ if (pg <= 0 || typeof(pg) == 'undefined') pg = 1;
+ const html = await request(url + '/search?q=' + wd + '&p=' + pg);
+ const $ = load(html);
+ const items = $('div.media');
+ var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
+ let videos = _.map(items, (item) => {
+ const a = $(item).find('a:first')[0];
+ const img = $(item).find('img:first')[0];
+ const remarks = $($(item).find('span.label')[0]).text().trim();
+ return {
+ vod_id: a.attribs.href,
+ vod_name: img.attribs.alt,
+ vod_pic: jsBase + base64Encode(img.attribs['data-src']),
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('div.page-more > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ proxy: proxy,
+ search: search,
+ };
+}
diff --git a/cat/js/ikanbot_bytecode.js b/cat/js/ikanbot_bytecode.js
new file mode 100644
index 0000000..1792c16
--- /dev/null
+++ b/cat/js/ikanbot_bytecode.js
@@ -0,0 +1 @@
+//bbQ0FUT1CBAh5pa2FuYm90X29wZW4uanMsYXNzZXRzOi8vanMvbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybgxDcnlwdG8IbG9hZAJfBmtleQZ1cmwOc2l0ZUtleRBzaXRlVHlwZQRVQQ5yZXF1ZXN0CGluaXQQZ2V0Q2xhc3MIaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFpbAhwbGF5DHNlYXJjaBBnZXRUb2tlbhhiYXNlNjRFbmNvZGUYYmFzZTY0RGVjb2RlGmRlY29kZVVuaWNvZGUOaWthbmJvdDBodHRwczovL3d3dy5haWthbmJvdC5jb22WAk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTNfMl8zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xMy4wLjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEFtGbOmBBiZnp5bTN1OAUYTyiNDjEwODB6eWsF618Ldw5rdWFpa2FuBc+RUFsMbHptM3U4BV6X4VEMZmZtM3U4BSJ9PFwMc25tM3U4BUdZToYMcWhtM3U4B3dtFlkLdxJoYWl3YWlrYW4FSVEfkAxnc20zdTgFAGcnWRJ6dWlkYW0zdTgFa1ESYgxiam0zdTgFZ1OZnwx3b2xvbmcFsGVqbQx4bG0zdTgFMWqxggx5aG0zdTgFKVl6egx0a20zdTgFgWcfkAxqc20zdTgF4GU9XAx3am0zdTgF6pU1dQxzZG0zdTgF619mjwxrY20zdTgF0ZFwnhZqaW55aW5nbTN1OAXemB+QDGZzbTN1OAXYbUdyDHRwbTN1OAV8nFBODGxlbTN1OAV+dqZeDGRibTN1OAVqdQSDDnRvbW0zdTgFVQB3kQx1a20zdTgFMXJkVwxpa20zdTgJon5bckSNkG4QaG56eW0zdTgFon5bcgxobm0zdTgSNjh6eV9tM3U4BXeRuXAMa2RtM3U4BxdTl2UfZg5iZHhtM3U4BWqMTlMMaGhtM3U4BetfrWQMa2JtM3U4DHJlcVVybA5hZ2VudFNwBnJlcwZyZXEMbWV0aG9kFFVzZXItQWdlbnQOcmVmZXJlcg5oZWFkZXJzDmNvbnRlbnQGY2ZnCHNrZXkKc3R5cGUCJAZuYXYIdGFncwp0aXRsZTZ1bC5uYXYtcGlsbHM6ZXEoMSkgPiBsaSA+IGEGdGFnBQdofnsGbWFwAnYWdGl0bGU6Zmlyc3QIdGV4dAItEnN1YnN0cmluZw50eXBlX2lkEnR5cGVfbmFtZQZjbHMCbhBjaGlsZHJlbghkYXRhDmF0dHJpYnMIaHJlZgxmaWx0ZXIOY2xhc3NlcxJmaWx0ZXJPYmoIY2F0ZQhodG1sMS8AaABvAHQALwBpAG4AZABlAHgALQBtAG8AdgBpAGUALQDtcOiVLgBoAHQAbQBsACsvAGgAbwB0AC8AaQBuAGQAZQB4AC0AdAB2AC0A7XDolS4AaAB0AG0AbAAIcHVzaBJzdHJpbmdpZnkOZmlsdGVycwppdGVtcwxqc0Jhc2UMdmlkZW9zImRpdi52LWxpc3QgYS5pdGVtEGpzMlByb3h5CGltZy8IbGlzdAhpdGVtBmltZwhmaW5kEmltZzpmaXJzdAx2b2RfaWQGYWx0EHZvZF9uYW1lEGRhdGEtc3JjDnZvZF9waWMWdm9kX3JlbWFya3MGdGlkBHBnDGV4dGVuZAhsaW5rDmhhc01vcmUOcGdDb3VudA5yZXBsYWNlCi5odG1sBi1wLT9kAGkAdgAuAHAAYQBnAGUALQBtAG8AcgBlACAAPgAgAGEAOgBjAG8AbgB0AGEAaQBuAHMAKAALTgBOdZgpABBwYXJzZUludAhwYWdlEnBhZ2Vjb3VudApsaW1pdAp0b3RhbARpZA5yZW1hcmtzBnZvZAp2X3Rrcw5wbGF5TWFwBmFycgJsEGZsYWdEYXRhAmYIdXJscxBwbGF5RnJvbRBwbGF5TGlzdBRkaXYuZGV0YWlsHHNwYW4jbGluZS10aXBzJmRpdi5pdGVtLXJvb3QgPiBpbWcWdm9kX2NvbnRlbnQEaDIIdHJpbR5oMzpudGgtY2hpbGQoMykQdm9kX3llYXIeaDM6bnRoLWNoaWxkKDQpEHZvZF9hcmVhHmgzOm50aC1jaGlsZCg1KRJ2b2RfYWN0b3IqL2FwaS9nZXRSZXNOP3ZpZGVvSWQ9Fmxhc3RJbmRleE9mAi8QJm10eXBlPTIOJnRva2VuPQ5SZWZlcmVyCnBhcnNlDnJlc0RhdGEIZmxhZxRyZXBsYWNlQWxsBCMjAiMIc29ydAYkJCQadm9kX3B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BAAALYgEATJgBAABlBABMNQEAAEw3AQAA7ovBCjiYAAAAQlkBAAALwApBxwEAAEzHAQAAtUzIAQAAwApBOAEAAEw4AQAAwApBNwEAAEw3AQAAJAEALjiYAAAAQlkBAAALvPQBTMcBAAC/TDgBAAAkAQAupAO/AjshFyGFPzB7o11xXUY1RjVGNTpEK0QSikQ1e6NdcV1GNUY1RjU6RCtEEj8wIQgrKxwXOj8hPz8SCDorIQeOASNFWFQtWC1ESVNDT05USU5VSVRZXHIqXG4qI0VYVElORjo2LjQzMzMzMyxbXHNcU10qPyNFWFQtWC1ESVNDT05USU5VSVRZB/YDAAEA9AAAAAgGAAAABAf1////CwABIwABRQABWAABVAABLQABWAABLQABRAABSQABUwABQwABTwABTgABVAABSQABTgABVQABSQABVAABWQAcBAAAAAAAAAD///9/AQAAAAENAAocBAAAAAAAAAD///9/AQAAAAEKAAoBIwABRQABWAABVAABSQABTgABRgABOgABNgADATQAATMAATMAATMAATMAATMAASwACAwAAAAVAQAAAP//B+////8BIwABRQABWAABVAABLQABWAABLQABRAABSQABUwABQwABTwABTgABVAABSQABTgABVQABSQABVAABWQAMAAoHPigjRVhULVgtS0VZXFMrVVJJPSIpKFxTKykoIlxTKykHrAQBBAAPAQAACAYAAAAEB/X///8LAAsBASMAAUUAAVgAAVQAAS0AAVgAAS0AAUsAAUUAAVkAHDAAAAABAAAA////fwEAAAAVCwAAAAgADgAfACEAnwChAH8WgRb/HwsgJyAqIC4gMCBeIGAg/y8BMP7+AP///woBVQABUgABSQABPQABIgAMAQsCHDAAAAABAAAA////fwEAAAAVCwAAAAgADgAfACEAnwChAH8WgRb/HwsgJyAqIC4gMCBeIGAg/y8BMP7+AP///woMAgsDASIAHDAAAAABAAAA////fwEAAAAVCwAAAAgADgAfACEAnwChAH8WgRb/HwsgJyAqIC4gMCBeIGAg/y8BMP7+AP///woMAwwACg5DBgEABAEEAwEAJQWSBwABAJQHAAEAlgcAAQCYBwABAJoHAQAgigcFDWEAANFCzgEAAATPAQAAJAEAlugGZQAA6gK/0Z3H0GIAAJ3SnSi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
\ No newline at end of file
diff --git a/cat/js/ikanbot_open.js b/cat/js/ikanbot_open.js
new file mode 100644
index 0000000..ac48a41
--- /dev/null
+++ b/cat/js/ikanbot_open.js
@@ -0,0 +1,278 @@
+import { Crypto, load, _ } from './lib/cat.js';
+
+let key = 'ikanbot';
+let url = 'https://www.aikanbot.com';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': agentSp || UA,
+ 'referer': url
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+function getClass($) {
+ const nav = $('ul.nav-pills:eq(1) > li > a');
+ let tags = {
+ key: 'tag',
+ name: '标签',
+ value: _.map(nav, (n) => {
+ return { n: n.children[0].data, v: n.attribs.href };
+ }),
+ };
+ tags['init'] = tags.value[0].v;
+ const title = $('title:first').text().split('-')[0].substring(2);
+ return { cls: { type_id: tags.value[0].v, type_name: title }, tags: [tags] };
+}
+
+async function home(filter) {
+ let classes = [];
+ let filterObj = {};
+ for (const cate of ['/hot/index-movie-热门.html', '/hot/index-tv-热门.html']) {
+ const html = await request(url + cate);
+ const $ = load(html);
+ const { cls, tags } = getClass($);
+ classes.push(cls);
+ filterObj[cls.type_id] = tags;
+ }
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {
+ const html = await request(url);
+ const $ = load(html);
+ const items = $('div.v-list a.item');
+ var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
+ let videos = _.map(items, (item) => {
+ const img = $(item).find('img:first')[0];
+ return {
+ vod_id: item.attribs.href,
+ vod_name: img.attribs.alt,
+ vod_pic: jsBase + base64Encode(img.attribs['data-src']),
+ vod_remarks: '',
+ };
+ });
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ const link = url + (extend.tag || tid).replace('.html', pg > 1 ? `-p-${pg}.html` : '.html');
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.v-list a.item');
+ var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
+ let videos = _.map(items, (item) => {
+ const img = $(item).find('img:first')[0];
+ return {
+ vod_id: item.attribs.href,
+ vod_name: img.attribs.alt,
+ vod_pic: jsBase + base64Encode(img.attribs['data-src']),
+ vod_remarks: '',
+ };
+ });
+ const hasMore = $('div.page-more > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const html = await request(url + id);
+ const $ = load(html);
+ var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
+ const detail = $('div.detail');
+ const remarks = $('span#line-tips').text();
+ let vod = {
+ vod_id: id,
+ vod_pic: jsBase + base64Encode($('div.item-root > img')[0].attribs['data-src']),
+ vod_remarks: '',
+ vod_content: remarks || '',
+ vod_name: $(detail).find('h2').text().trim(),
+ vod_year: $(detail).find('h3:nth-child(3)').text(),
+ vod_area: $(detail).find('h3:nth-child(4)').text(),
+ vod_actor: $(detail).find('h3:nth-child(5)').text(),
+ };
+ const token = getToken($);
+ const res = await req(url + '/api/getResN?videoId=' + id.substring(id.lastIndexOf('/') + 1) + '&mtype=2&token=' + token, {
+ headers: {
+ Referer: 'play',
+ 'User-Agent': UA,
+ },
+ });
+ const list = JSON.parse(res.content).data.list;
+ let playlist = {};
+ let arr = []
+ for (const l of list) {
+ const flagData = JSON.parse(l.resData);
+ for (const f of flagData) {
+ const from = f.flag;
+ const urls = f.url;
+ if (!from || !urls) continue;
+ if (playlist[from]) continue;
+ playlist[from] = urls;
+ }
+ }
+ for (var key in playlist) {
+ if ('kuaikan' == key) {
+ arr.push({
+ flag: '快看',
+ url: playlist[key],
+ sort: 1
+ })
+ } else if ('bfzym3u8' == key) {
+ arr.push({
+ flag: '暴风',
+ url: playlist[key],
+ sort: 2
+ })
+ } else if ('ffm3u8' == key) {
+ arr.push({
+ flag: '非凡',
+ url: playlist[key],
+ sort: 3
+ })
+ } else if ('lzm3u8' == key) {
+ arr.push({
+ flag: '量子',
+ url: playlist[key],
+ sort: 4
+ })
+ } else {
+ arr.push({
+ flag: key,
+ url: playlist[key],
+ sort: 5
+ })
+ }
+ }
+ arr.sort((a, b) => a.sort - b.sort);
+ let playFrom = [];
+ let playList = [];
+ arr.map(val => {
+ playFrom.push(val.flag);
+ playList.push(val.url);
+ })
+ vod.vod_play_from = playFrom.join("$$$");
+ vod.vod_play_url = playList.join("$$$");
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+function getToken($) {
+ const currentId = $('#current_id').val();
+ let eToken = $('#e_token').val();
+ if (!currentId || !eToken) return '';
+ const idLength = currentId.length;
+ const subId = currentId.substring(idLength - 4, idLength);
+ let keys = [];
+ for (let i = 0; i < subId.length; i++) {
+ const curInt = parseInt(subId[i]);
+ const splitPos = curInt % 3 + 1;
+ keys[i] = eToken.substring(splitPos, splitPos + 8);
+ eToken = eToken.substring(splitPos + 8, eToken.length);
+ }
+ return keys.join('');
+}
+
+function base64Encode(text) {
+ return Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(text));
+}
+
+function base64Decode(text) {
+ return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text));
+}
+
+async function proxy(segments, headers) {
+ let what = segments[0];
+ let url = base64Decode(segments[1]);
+ if (what == 'img') {
+ var resp = await req(url, {
+ buffer: 2,
+ headers: {
+ Referer: url,
+ 'User-Agent': UA,
+ },
+ });
+ return JSON.stringify({
+ code: resp.code,
+ buffer: 2,
+ content: resp.content,
+ headers: resp.headers,
+ });
+ }
+ return JSON.stringify({
+ code: 500,
+ content: '',
+ });
+}
+
+async function play(flag, id, flags) {
+ return JSON.stringify({
+ parse: 0,
+ url: id,
+ });
+}
+
+async function search(wd, quick, pg) {
+ if (pg <= 0 || typeof(pg) == 'undefined') pg = 1;
+ const html = await request(url + '/search?q=' + wd + '&p=' + pg);
+ const $ = load(html);
+ const items = $('div.media');
+ var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
+ let videos = _.map(items, (item) => {
+ const a = $(item).find('a:first')[0];
+ const img = $(item).find('img:first')[0];
+ const remarks = $($(item).find('span.label')[0]).text().trim();
+ return {
+ vod_id: a.attribs.href,
+ vod_name: img.attribs.alt,
+ vod_pic: jsBase + base64Encode(img.attribs['data-src']),
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('div.page-more > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ proxy: proxy,
+ search: search,
+ };
+}
diff --git a/cat/js/ikanbot_open2.js b/cat/js/ikanbot_open2.js
new file mode 100644
index 0000000..e3bc9f0
--- /dev/null
+++ b/cat/js/ikanbot_open2.js
@@ -0,0 +1,278 @@
+import { Crypto, load, _ } from './lib/cat.js';
+
+let key = 'ikanbot';
+let url = 'https://www.ikanbot.com';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': agentSp || UA,
+ 'referer': url
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+function getClass($) {
+ const nav = $('ul.nav-pills:eq(1) > li > a');
+ let tags = {
+ key: 'tag',
+ name: '标签',
+ value: _.map(nav, (n) => {
+ return { n: n.children[0].data, v: n.attribs.href };
+ }),
+ };
+ tags['init'] = tags.value[0].v;
+ const title = $('title:first').text().split('-')[0].substring(2);
+ return { cls: { type_id: tags.value[0].v, type_name: title }, tags: [tags] };
+}
+
+async function home(filter) {
+ let classes = [];
+ let filterObj = {};
+ for (const cate of ['/hot/index-movie-热门.html', '/hot/index-tv-热门.html']) {
+ const html = await request(url + cate);
+ const $ = load(html);
+ const { cls, tags } = getClass($);
+ classes.push(cls);
+ filterObj[cls.type_id] = tags;
+ }
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {
+ const html = await request(url);
+ const $ = load(html);
+ const items = $('div.v-list a.item');
+ var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
+ let videos = _.map(items, (item) => {
+ const img = $(item).find('img:first')[0];
+ return {
+ vod_id: item.attribs.href,
+ vod_name: img.attribs.alt,
+ vod_pic: jsBase + base64Encode(img.attribs['data-src']),
+ vod_remarks: '',
+ };
+ });
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ const link = url + (extend.tag || tid).replace('.html', pg > 1 ? `-p-${pg}.html` : '.html');
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.v-list a.item');
+ var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
+ let videos = _.map(items, (item) => {
+ const img = $(item).find('img:first')[0];
+ return {
+ vod_id: item.attribs.href,
+ vod_name: img.attribs.alt,
+ vod_pic: jsBase + base64Encode(img.attribs['data-src']),
+ vod_remarks: '',
+ };
+ });
+ const hasMore = $('div.page-more > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const html = await request(url + id);
+ const $ = load(html);
+ var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
+ const detail = $('div.detail');
+ const remarks = $('span#line-tips').text();
+ let vod = {
+ vod_id: id,
+ vod_pic: jsBase + base64Encode($('div.item-root > img')[0].attribs['data-src']),
+ vod_remarks: '',
+ vod_content: remarks || '',
+ vod_name: $(detail).find('h2').text().trim(),
+ vod_year: $(detail).find('h3:nth-child(3)').text(),
+ vod_area: $(detail).find('h3:nth-child(4)').text(),
+ vod_actor: $(detail).find('h3:nth-child(5)').text(),
+ };
+ const token = getToken($);
+ const res = await req(url + '/api/getResN?videoId=' + id.substring(id.lastIndexOf('/') + 1) + '&mtype=1&token=' + token, {
+ headers: {
+ Referer: 'play',
+ 'User-Agent': UA,
+ },
+ });
+ const list = JSON.parse(res.content).data.list;
+ let playlist = {};
+ let arr = []
+ for (const l of list) {
+ const flagData = JSON.parse(l.resData);
+ for (const f of flagData) {
+ const from = f.flag;
+ const urls = f.url;
+ if (!from || !urls) continue;
+ if (playlist[from]) continue;
+ playlist[from] = urls;
+ }
+ }
+ for (var key in playlist) {
+ if ('kuaikan' == key) {
+ arr.push({
+ flag: '快看',
+ url: playlist[key],
+ sort: 1
+ })
+ } else if ('bfzym3u8' == key) {
+ arr.push({
+ flag: '暴风',
+ url: playlist[key],
+ sort: 2
+ })
+ } else if ('ffm3u8' == key) {
+ arr.push({
+ flag: '非凡',
+ url: playlist[key],
+ sort: 3
+ })
+ } else if ('lzm3u8' == key) {
+ arr.push({
+ flag: '量子',
+ url: playlist[key],
+ sort: 4
+ })
+ } else {
+ arr.push({
+ flag: key,
+ url: playlist[key],
+ sort: 5
+ })
+ }
+ }
+ arr.sort((a, b) => a.sort - b.sort);
+ let playFrom = [];
+ let playList = [];
+ arr.map(val => {
+ playFrom.push(val.flag);
+ playList.push(val.url);
+ })
+ vod.vod_play_from = playFrom.join("$$$");
+ vod.vod_play_url = playList.join("$$$");
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+function getToken($) {
+ const currentId = $('#current_id').val();
+ let eToken = $('#e_token').val();
+ if (!currentId || !eToken) return '';
+ const idLength = currentId.length;
+ const subId = currentId.substring(idLength - 4, idLength);
+ let keys = [];
+ for (let i = 0; i < subId.length; i++) {
+ const curInt = parseInt(subId[i]);
+ const splitPos = curInt % 3 + 1;
+ keys[i] = eToken.substring(splitPos, splitPos + 8);
+ eToken = eToken.substring(splitPos + 8, eToken.length);
+ }
+ return keys.join('');
+}
+
+function base64Encode(text) {
+ return Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(text));
+}
+
+function base64Decode(text) {
+ return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text));
+}
+
+async function proxy(segments, headers) {
+ let what = segments[0];
+ let url = base64Decode(segments[1]);
+ if (what == 'img') {
+ var resp = await req(url, {
+ buffer: 2,
+ headers: {
+ Referer: url,
+ 'User-Agent': UA,
+ },
+ });
+ return JSON.stringify({
+ code: resp.code,
+ buffer: 2,
+ content: resp.content,
+ headers: resp.headers,
+ });
+ }
+ return JSON.stringify({
+ code: 500,
+ content: '',
+ });
+}
+
+async function play(flag, id, flags) {
+ return JSON.stringify({
+ parse: 0,
+ url: id,
+ });
+}
+
+async function search(wd, quick, pg) {
+ if (pg <= 0 || typeof(pg) == 'undefined') pg = 1;
+ const html = await request(url + '/search?q=' + wd + '&p=' + pg);
+ const $ = load(html);
+ const items = $('div.media');
+ var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
+ let videos = _.map(items, (item) => {
+ const a = $(item).find('a:first')[0];
+ const img = $(item).find('img:first')[0];
+ const remarks = $($(item).find('span.label')[0]).text().trim();
+ return {
+ vod_id: a.attribs.href,
+ vod_name: img.attribs.alt,
+ vod_pic: jsBase + base64Encode(img.attribs['data-src']),
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('div.page-more > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ proxy: proxy,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/jinm_open.js b/cat/js/jinm_open.js
new file mode 100644
index 0000000..c2255aa
--- /dev/null
+++ b/cat/js/jinm_open.js
@@ -0,0 +1,166 @@
+import { Crypto, load, _, jinja2 } from './lib/cat.js';
+
+let key = 'jinm';
+let HOST = 'https://jinman.tv';
+let url = '';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': agentSp || UA,
+ 'Referer': HOST
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+ let html = await request(HOST);
+ url = html.match(/点击进入)[1];
+ console.debug('跟剧跳转地址 =====>' + url); // js_debug.log
+}
+
+async function home(filter) {
+ let classes = [{"type_id":1,"type_name":"电影"},{"type_id":2,"type_name":"追剧"},{"type_id":4,"type_name":"综艺"},{"type_id":3,"type_name":"动漫"},{"type_id":5,"type_name":"纪录片"},{"type_id":20,"type_name":"电影解说"}];
+ let filterObj = {
+ "1":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"喜剧","v":"/class/喜剧"},{"n":"爱情","v":"/class/爱情"},{"n":"恐怖","v":"/class/恐怖"},{"n":"动作","v":"/class/动作"},{"n":"科幻","v":"/class/科幻"},{"n":"剧情","v":"/class/剧情"},{"n":"战争","v":"/class/战争"},{"n":"警匪","v":"/class/警匪"},{"n":"犯罪","v":"/class/犯罪"},{"n":"动画","v":"/class/动画"},{"n":"奇幻","v":"/class/奇幻"},{"n":"武侠","v":"/class/武侠"},{"n":"冒险","v":"/class/冒险"},{"n":"枪战","v":"/class/枪战"},{"n":"恐怖","v":"/class/恐怖"},{"n":"悬疑","v":"/class/悬疑"},{"n":"惊悚","v":"/class/惊悚"},{"n":"经典","v":"/class/经典"},{"n":"青春","v":"/class/青春"},{"n":"文艺","v":"/class/文艺"},{"n":"微电影","v":"/class/微电影"},{"n":"古装","v":"/class/古装"},{"n":"历史","v":"/class/历史"},{"n":"运动","v":"/class/运动"},{"n":"农 村","v":"/class/农村"},{"n":"儿童","v":"/class/儿童"},{"n":"网络电影","v":"/class/网络电影"},{"n":"体育赛事","v":"/class/体育赛事"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"美国","v":"/area/美国"},{"n":"法国","v":"/area/法国"},{"n":"英国","v":"/area/英国"},{"n":"日本","v":"/area/日本"},{"n":"韩国","v":"/area/韩国"},{"n":"德国","v":"/area/德国"},{"n":"泰国","v":"/area/泰国"},{"n":"印度","v":"/area/印度"},{"n":"意大利","v":"/area/意大利"},{"n":"西班牙","v":"/area/西班牙"},{"n":"加拿大","v":"/area/加拿大"},{"n":"其他","v":"/area/其他"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽 南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"德语","v":"/lang/德语"},{"n":"其它","v":"/lang/其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"},{"n":"2008","v":"/year/2008"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"letter","name":"字母","value":[{"n":"字母","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}],
+ "2":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"偶像","v":"/class/偶像"},{"n":"爱情","v":"/class/爱情"},{"n":"言情","v":"/class/言情"},{"n":"古装","v":"/class/古装"},{"n":"历史","v":"/class/历史"},{"n":"玄幻","v":"/class/玄幻"},{"n":"谍战","v":"/class/谍战"},{"n":"历险","v":"/class/历险"},{"n":"都市","v":"/class/都市"},{"n":"科幻","v":"/class/科幻"},{"n":"军旅","v":"/class/军旅"},{"n":"喜剧","v":"/class/喜剧"},{"n":"武侠","v":"/class/武侠"},{"n":"江湖","v":"/class/江湖"},{"n":"罪案","v":"/class/罪案"},{"n":"青春","v":"/class/青春"},{"n":"家庭","v":"/class/家庭"},{"n":"战争","v":"/class/战争"},{"n":"悬疑","v":"/class/悬疑"},{"n":"穿越","v":"/class/穿越"},{"n":"宫廷","v":"/class/宫廷"},{"n":"神话","v":"/class/神话"},{"n":"商战","v":"/class/商战"},{"n":"警匪","v":"/class/警匪"},{"n":"动作","v":"/class/动作"},{"n":"惊悚","v":"/class/惊悚"},{"n":"剧情","v":"/class/剧情"},{"n":"同性","v":"/class/同性"},{"n":"奇幻","v":"/class/奇幻"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"/area/内地"},{"n":"韩国","v":"/area/韩国"},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"日本","v":"/area/日本"},{"n":"美国","v":"/area/美国"},{"n":"泰国","v":"/area/泰国"},{"n":"英国","v":"/area/英国"},{"n":"新加坡","v":"/area/新加坡"},{"n":"其他","v":"/area/其他"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"其它","v":"/lang/其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"},{"n":"2008","v":"/year/2008"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"letter","name":"字母","value":[{"n":"字母","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}],
+ "3":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"番剧","v":"/class/番剧"},{"n":"国创","v":"/class/国创"},{"n":"热血","v":"/class/热血"},{"n":"格斗","v":"/class/格斗"},{"n":"机战","v":"/class/机战"},{"n":"少女","v":"/class/少女"},{"n":"竞技","v":"/class/竞技"},{"n":"科幻","v":"/class/科幻"},{"n":"魔幻","v":"/class/魔幻"},{"n":"爆笑","v":"/class/爆笑"},{"n":"推理","v":"/class/推理"},{"n":"冒险","v":"/class/冒险"},{"n":"恋爱","v":"/class/恋爱"},{"n":"校园","v":"/class/校园"},{"n":"治愈","v":"/class/治愈"},{"n":"泡面","v":"/class/泡面"},{"n":"穿越","v":"/class/穿越"},{"n":"灵异","v":"/class/灵异"},{"n":"耽美","v":"/class/耽美"},{"n":"动画","v":"/class/动画"},{"n":"电影","v":"/class/电影"},{"n":"其它","v":"/class/其它/"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"美国","v":"/area/美国"},{"n":"韩国","v":"/area/韩国"},{"n":"日本","v":"/area/日本"},{"n":"泰国","v":"/area/泰国"},{"n":"新加坡","v":"/area/新加坡"},{"n":"马来西亚","v":"/area/马来西亚"},{"n":"印度","v":"/area/印度"},{"n":"英国","v":"/area/英国"},{"n":"法国","v":"/area/法国"},{"n":"加拿大","v":"/area/加拿大"},{"n":"西班牙","v":"/area/西班牙"},{"n":"俄罗斯","v":"/area/俄罗斯"},{"n":"其它","v":"/area/其它/"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"德语","v":"/lang/德语"},{"n":"其它","v":"/lang/其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"},{"n":"2008","v":"/year/2008"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"letter","name":"字母","value":[{"n":"字母","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}],
+ "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"综艺","v":"/class/综艺"},{"n":"选秀","v":"/class/选秀"},{"n":"情感","v":"/class/情感"},{"n":"访谈","v":"/class/访谈"},{"n":"播报","v":"/class/播报"},{"n":"旅游","v":"/class/旅游"},{"n":"音乐","v":"/class/音乐"},{"n":"美食","v":"/class/美食"},{"n":"纪实","v":"/class/纪实"},{"n":"曲艺","v":"/class/曲艺"},{"n":"生活","v":"/class/生活"},{"n":"游戏互动","v":"/class/游戏互动"},{"n":"财经","v":"/class/财经"},{"n":"求职","v":"/class/求职"},{"n":"脱口秀","v":"/class/脱口秀"},{"n":"真人秀","v":"/class/真人秀/"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"美国","v":"/area/美国"},{"n":"韩国","v":"/area/韩国"},{"n":"日本","v":"/area/日本"},{"n":"泰国","v":"/area/泰国"},{"n":"新加坡","v":"/area/新加坡"},{"n":"马来西亚","v":"/area/马来西亚"},{"n":"印度","v":"/area/印度"},{"n":"英国","v":"/area/英国"},{"n":"法国","v":"/area/法国"},{"n":"加拿大","v":"/area/加拿大"},{"n":"西班牙","v":"/area/西班牙"},{"n":"俄罗斯","v":"/area/俄罗斯"},{"n":"其它","v":"/area/其它/"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"其它","v":"/lang/其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"},{"n":"2008","v":"/year/2008"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"letter","name":"字母","value":[{"n":"字母","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}],
+ "5":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"文化","v":"/class/文化"},{"n":"探索","v":"/class/探索"},{"n":"军事","v":"/class/军事"},{"n":"解密","v":"/class/解密"},{"n":"科技","v":"/class/科技"},{"n":"历史","v":"/class/历史"},{"n":"人物","v":"/class/人物"},{"n":"自然","v":"/class/自然"},{"n":"其它","v":"/class/其它/"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"美国","v":"/area/美国"},{"n":"韩国","v":"/area/韩国"},{"n":"日本","v":"/area/日本"},{"n":"泰国","v":"/area/泰国"},{"n":"新加坡","v":"/area/新加坡"},{"n":"马来西亚","v":"/area/马来西亚"},{"n":"印度","v":"/area/印度"},{"n":"英国","v":"/area/英国"},{"n":"法 国","v":"/area/法国"},{"n":"加拿大","v":"/area/加拿大"},{"n":"西班牙","v":"/area/西班牙"},{"n":"俄罗斯","v":"/area/俄罗斯"},{"n":"其它","v":"/area/其它/"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"其它","v":"/lang/其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"},{"n":"2008","v":"/year/2008"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"letter","name":"字母","value":[{"n":"字母","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}],
+ "20":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"喜剧","v":"/class/喜剧"},{"n":"爱情","v":"/class/爱情"},{"n":"恐怖","v":"/class/恐怖"},{"n":"动作","v":"/class/动作"},{"n":"科幻","v":"/class/科幻"},{"n":"剧情","v":"/class/剧情"},{"n":"战 争","v":"/class/战争"},{"n":"警匪","v":"/class/警匪"},{"n":"犯罪","v":"/class/犯罪"},{"n":"动画","v":"/class/动画"},{"n":"奇幻","v":"/class/奇幻"},{"n":"武侠","v":"/class/武侠"},{"n":"冒险","v":"/class/冒险"},{"n":"枪战","v":"/class/枪战"},{"n":"恐怖","v":"/class/恐怖"},{"n":"悬疑","v":"/class/悬疑"},{"n":"惊悚","v":"/class/惊悚"},{"n":"经典","v":"/class/经典"},{"n":"青春","v":"/class/青春"},{"n":"文艺","v":"/class/文艺"},{"n":"微电影","v":"/class/微电影"},{"n":"古 装","v":"/class/古装"},{"n":"历史","v":"/class/历史"},{"n":"运动","v":"/class/运动"},{"n":"农村","v":"/class/农村"},{"n":"儿童","v":"/class/儿童"},{"n":"网络电影","v":"/class/网络电影"},{"n":"伦理","v":"/class/伦理"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"美国","v":"/area/美国"},{"n":"法国","v":"/area/法国"},{"n":"英国","v":"/area/英国"},{"n":"日本","v":"/area/日本"},{"n":"韩国","v":"/area/韩国"},{"n":"德国","v":"/area/德国"},{"n":"泰国","v":"/area/泰国"},{"n":"印度","v":"/area/印度"},{"n":"意大利","v":"/area/意大利"},{"n":"西班牙","v":"/area/西班牙"},{"n":"加拿大","v":"/area/加拿大"},{"n":"其他","v":"/area/其他"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"德语","v":"/lang/德语"},{"n":"其它","v":"/lang/其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"},{"n":"2008","v":"/year/2008"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"letter","name":"字母","value":[{"n":"字母","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}]
+ };
+
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ const link = url + '/index.php/vod/show' + (extend.area || '') + (extend.by || '/by/time') + (extend.class || '') + '/id/' + tid + (extend.lang || '') + (extend.letter || '') + '/page/' + pg + (extend.year || '') + '.html';//https://jinmantv.com/index.php/vod/show/area/%E7%BE%8E%E5%9B%BD/by/hits/class/%E5%8A%A8%E4%BD%9C/id/1/lang/%E8%8B%B1%E8%AF%AD/year/2022.html
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.main a.module-poster-item');
+ let videos = _.map(items, (item) => {
+ const it = $(item)[0];
+ const k = $(item).find('img:first')[0];
+ const remarks = $($(item).find('div.module-item-note')[0]).text().trim();
+ return {
+ vod_id: it.attribs.href.replace(/.*?\/id\/(.*).html/g, '$1'),
+ vod_name: it.attribs.title,
+ vod_pic: k.attribs['data-original'],
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('div#page > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ var html = await request( url + '/index.php/vod/detail/id/' + id + '.html');
+ var $ = load(html);
+ var vod = {
+ vod_id: id,
+ vod_name: $('h1:first').text().trim(),
+ vod_type: $('.module-info-tag a').text(),
+ vod_actor: $('.module-info-items a').text(),
+ vod_pic: $('.video-cover img:first').attr('src'),
+ vod_remarks : $('.stui-content__detail p:nth-child(5)').text() || '',
+ vod_content: $('.show-desc p').text().trim().replace('如果你喜欢', '').replace('记得来金曼TV在线观看。', ''),
+ };
+ var playMap = {};
+ var tabs = $('div.module-tab-items-box div.module-tab-item span');
+ var playlists = $('div.module-play-list-content');
+ _.each(tabs, (tab, i) => {
+ var from = $(tab).text();
+ var list = playlists[i];
+ list = $(list).find('a');
+ _.each(list, (it) => {
+ var title = $(it).text();
+ var playUrl = it.attribs.href.replace(/.*?\/id\/(.*).html/g, '$1');
+ if (title.length == 0) title = it.children[0].data.trim();
+ if (!playMap.hasOwnProperty(from)) {
+ playMap[from] = [];
+ }
+ playMap[from].push( title + '$' + playUrl);
+ });
+ });
+ vod.vod_play_from = _.keys(playMap).join('$$$');
+ var urls = _.values(playMap);
+ var vod_play_url = _.map(urls, (urlist) => {
+ return urlist.join('#');
+ });
+ vod.vod_play_url = vod_play_url.join('$$$');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+async function play(flag, id, flags) {
+ const link = url + '/index.php/vod/play/id/' + id + '.html';
+ const html = await request(link);
+ const $ = load(html);
+ const js = JSON.parse($('script:contains(player_)').html().replace('var player_aaaa=',''));
+ const playUrl = js.url;
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ });
+}
+
+async function search(wd, quick, pg) {
+ if (pg <= 0) pg = 1;
+ let data = await request(url + '/index.php/vod/search/page/' + pg + '/wd/' + wd + '.html');//https://fun.tvoled.net/index.php/vod/search/page/2/wd/%E6%88%91.html
+ const $ = load(data);
+ const items = $('div.module-items div.module-item');
+ let videos = _.map(items, (item) => {
+ const it = $(item).find('a:first')[0];
+ const k = $(item).find('img:first')[0];
+ const remarks = $($(item).find('div.module-item-note')[0]).text().trim();
+ return {
+ vod_id: it.attribs.href.replace(/.*?\/id\/(.*).html/g, '$1'),
+ vod_name: k.attribs.alt,
+ vod_pic: k.attribs['data-original'],
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('div#page > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/jiohub.js b/cat/js/jiohub.js
new file mode 100644
index 0000000..0d07b27
--- /dev/null
+++ b/cat/js/jiohub.js
@@ -0,0 +1,206 @@
+import { Crypto, load, _, dayjs } from './lib/cat.js';
+
+let key = 'jiohub';
+let url = 'https://jiohub.top';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+
+const cookie = {};
+
+async function request(reqUrl, referer, mth, data, hd) {
+ const headers = {
+ 'User-Agent': UA,
+ Cookie: _.map(cookie, (value, key) => {
+ return `${key}=${value}`;
+ }).join(';'),
+ };
+ if (referer) headers.referer = encodeURIComponent(referer);
+ let res = await req(reqUrl, {
+ method: mth || 'get',
+ headers: headers,
+ data: data,
+ postType: mth === 'post' ? 'form' : '',
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ const html = await request(url);
+ const $ = load(html);
+ const series = $('.nav-list a[href*=/video]');
+ let classes = _.map(series, (s) => {
+ let typeId = s.attribs['href'];
+ let typeName = typeId.match(/\/video\/(.*)\?/)[1];
+ typeName = decodeURIComponent(typeName);
+ return {
+ type_id: typeName,
+ type_name: typeName,
+ };
+ });
+ return JSON.stringify({
+ class: classes,
+ });
+}
+
+async function homeVod() {
+ return '{}';
+}
+
+async function category(tid, pg, filter, extend) {
+ let page = pg || 1;
+ if (page == 0) page = 1;
+ const link = url + '/video/' + tid + "?page=" + page + '&size=18';
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.content-body > a');
+ let videos = _.map(items, (item) => {
+ const img = $(item).find('img:first')[0].attribs['src'];
+ const a = item.attribs['href'].match(/\/watch\/(.*)/)[1];
+ const n = ($(item).find('p.card-title')[0]).children[0].data;
+ let speed = ($(item).find('p.item-speed')[0]).children[0].data || '';
+ const score = ($(item).find('p.score')[0]).children[0].data || '';
+ if (speed == tid) speed = '';
+ return {
+ vod_id: a,
+ vod_name: n,
+ vod_pic: img,
+ vod_remarks: speed || score || '',
+ };
+ });
+
+ let total = 18;
+ const pag = $('ui-pagination');
+ if (pag.length > 0) {
+ try {
+ total = parseInt(pag[0].attribs['total']);
+ } catch (error) {
+
+ }
+ }
+
+ return JSON.stringify({
+ page: page,
+ pagecount: _.ceil(total / 18),
+ list: videos,
+ });
+}
+
+function stripHtmlTag(src) {
+ return src
+ .replace(/<\/?[^>]+(>|$)/g, '')
+ .replace(/&.{1,5};/g, '')
+ .replace(/\s{2,}/g, ' ');
+}
+
+async function detail(id) {
+ const html = await request(url + '/watch/' + id);
+ const $ = load(html);
+ const detail = $('div.content-detail > p');
+ let vod = {
+ vod_id: id,
+ vod_content: stripHtmlTag($('div.content-detail span.detail-sketch').html()).trim(),
+ };
+ for (const info of detail) {
+ const i = $(info).text().trim();
+ if (i.startsWith('地区:')) {
+ vod.vod_area = i.substring(3);
+ } else if (i.startsWith('年份:')) {
+ vod.vod_year = i.substring(3);
+ } else if (i.startsWith('类型:')) {
+ vod.vod_type = i.substring(3);
+ } else if (i.startsWith('导演:')) {
+ vod.vod_director = i.substring(3);
+ } else if (i.startsWith('主演:')) {
+ vod.vod_actor = i.substring(3);
+ } else if (i.startsWith('语言:')) {
+ vod.vod_lang = i.substring(3);
+ }
+ }
+
+ const urls = html.match(/let urls = \"(.*)\";/)[1].replace(/_/g, '/').replace(/-/g, '+');
+ var key = Crypto.enc.Utf8.parse("cf2d1a-6a4d-9ef8");
+ var playlist = Crypto.AES.decrypt(urls, key, { iv: key, padding: Crypto.pad.Pkcs7 });
+ playlist = Crypto.enc.Utf8.stringify(playlist).split('\n');
+ vod.vod_play_from = 'JOJO';
+ vod.vod_play_url = playlist.join('#');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+function playPid() {
+ var key = Crypto.enc.Utf8.parse('VSmJTRRE'+dayjs().format('YYYYMMDD'));
+ var iv = Crypto.enc.Hex.parse("00000000000000000000000000000000");
+ var pid = Crypto.AES.encrypt(dayjs().format('YYYY-MM-DD HH:mm'), key, { iv: iv, padding: Crypto.pad.Pkcs7 });
+ pid = pid.toString().replace(/\+/g, '-');
+ return pid;
+}
+
+async function play(flag, id, flags) {
+ return JSON.stringify({
+ parse: 0,
+ url: id + '?pid=' + playPid(),
+ header: {
+ 'User-Agent': UA,
+ },
+ });
+}
+
+async function search(wd, quick, pg) {
+ let page = pg || 1;
+ if (page == 0) page = 1;
+ const link = url + '/video/search?q=' + wd + "&page=" + page + '&size=18&pid=' + playPid();
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.content-body > a');
+ let videos = _.map(items, (item) => {
+ const img = $(item).find('img:first')[0].attribs['src'];
+ const a = item.attribs['href'].match(/\/watch\/(.*)/)[1];
+ const n = ($(item).find('p.card-title')[0]).children[0].data;
+ let speed = ($(item).find('p.item-speed')[0]).children[0].data || '';
+ const score = ($(item).find('p.score')[0]).children[0].data || '';
+ if (speed == '电影') speed = '';
+ return {
+ vod_id: a,
+ vod_name: n,
+ vod_pic: img,
+ vod_remarks: speed || score || '',
+ };
+ });
+
+ let total = 18;
+ const pag = $('ui-pagination');
+ if (pag.length > 0) {
+ try {
+ total = parseInt(pag[0].attribs['total']);
+ } catch (error) {
+
+ }
+ }
+
+ return JSON.stringify({
+ page: page,
+ pagecount: _.ceil(total / 18),
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
diff --git a/cat/js/jiohub_open.js b/cat/js/jiohub_open.js
new file mode 100644
index 0000000..86695e4
--- /dev/null
+++ b/cat/js/jiohub_open.js
@@ -0,0 +1,206 @@
+import { Crypto, load, _, dayjs } from 'assets://js/lib/cat.js';
+
+let key = 'jiohub';
+let url = 'https://jiohub.top';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+
+const cookie = {};
+
+async function request(reqUrl, referer, mth, data, hd) {
+ const headers = {
+ 'User-Agent': UA,
+ Cookie: _.map(cookie, (value, key) => {
+ return `${key}=${value}`;
+ }).join(';'),
+ };
+ if (referer) headers.referer = encodeURIComponent(referer);
+ let res = await req(reqUrl, {
+ method: mth || 'get',
+ headers: headers,
+ data: data,
+ postType: mth === 'post' ? 'form' : '',
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ const html = await request(url);
+ const $ = load(html);
+ const series = $('.nav-list a[href*=/video]');
+ let classes = _.map(series, (s) => {
+ let typeId = s.attribs['href'];
+ let typeName = typeId.match(/\/video\/(.*)\?/)[1];
+ typeName = decodeURIComponent(typeName);
+ return {
+ type_id: typeName,
+ type_name: typeName,
+ };
+ });
+ return JSON.stringify({
+ class: classes,
+ });
+}
+
+async function homeVod() {
+ return '{}';
+}
+
+async function category(tid, pg, filter, extend) {
+ let page = pg || 1;
+ if (page == 0) page = 1;
+ const link = url + '/video/' + tid + "?page=" + page + '&size=18';
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.content-body > a');
+ let videos = _.map(items, (item) => {
+ const img = $(item).find('img:first')[0].attribs['src'];
+ const a = item.attribs['href'].match(/\/watch\/(.*)/)[1];
+ const n = ($(item).find('p.card-title')[0]).children[0].data;
+ let speed = ($(item).find('p.item-speed')[0]).children[0].data || '';
+ const score = ($(item).find('p.score')[0]).children[0].data || '';
+ if (speed == tid) speed = '';
+ return {
+ vod_id: a,
+ vod_name: n,
+ vod_pic: img,
+ vod_remarks: speed || score || '',
+ };
+ });
+
+ let total = 18;
+ const pag = $('ui-pagination');
+ if (pag.length > 0) {
+ try {
+ total = parseInt(pag[0].attribs['total']);
+ } catch (error) {
+
+ }
+ }
+
+ return JSON.stringify({
+ page: page,
+ pagecount: _.ceil(total / 18),
+ list: videos,
+ });
+}
+
+function stripHtmlTag(src) {
+ return src
+ .replace(/<\/?[^>]+(>|$)/g, '')
+ .replace(/&.{1,5};/g, '')
+ .replace(/\s{2,}/g, ' ');
+}
+
+async function detail(id) {
+ const html = await request(url + '/watch/' + id);
+ const $ = load(html);
+ const detail = $('div.content-detail > p');
+ let vod = {
+ vod_id: id,
+ vod_content: stripHtmlTag($('div.content-detail span.detail-sketch').html()).trim(),
+ };
+ for (const info of detail) {
+ const i = $(info).text().trim();
+ if (i.startsWith('地区:')) {
+ vod.vod_area = i.substring(3);
+ } else if (i.startsWith('年份:')) {
+ vod.vod_year = i.substring(3);
+ } else if (i.startsWith('类型:')) {
+ vod.vod_type = i.substring(3);
+ } else if (i.startsWith('导演:')) {
+ vod.vod_director = i.substring(3);
+ } else if (i.startsWith('主演:')) {
+ vod.vod_actor = i.substring(3);
+ } else if (i.startsWith('语言:')) {
+ vod.vod_lang = i.substring(3);
+ }
+ }
+
+ const urls = html.match(/let urls = \"(.*)\";/)[1].replace(/_/g, '/').replace(/-/g, '+');
+ var key = Crypto.enc.Utf8.parse("cf2d1a-6a4d-9ef8");
+ var playlist = Crypto.AES.decrypt(urls, key, { iv: key, padding: Crypto.pad.Pkcs7 });
+ playlist = Crypto.enc.Utf8.stringify(playlist).split('\n');
+ vod.vod_play_from = 'JOJO';
+ vod.vod_play_url = playlist.join('#');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+function playPid() {
+ var key = Crypto.enc.Utf8.parse('VSmJTRRE'+dayjs().format('YYYYMMDD'));
+ var iv = Crypto.enc.Hex.parse("00000000000000000000000000000000");
+ var pid = Crypto.AES.encrypt(dayjs().format('YYYY-MM-DD HH:mm'), key, { iv: iv, padding: Crypto.pad.Pkcs7 });
+ pid = pid.toString().replace(/\+/g, '-');
+ return pid;
+}
+
+async function play(flag, id, flags) {
+ return JSON.stringify({
+ parse: 0,
+ url: id + '?pid=' + playPid(),
+ header: {
+ 'User-Agent': UA,
+ },
+ });
+}
+
+async function search(wd, quick, pg) {
+ let page = pg || 1;
+ if (page == 0) page = 1;
+ const link = url + '/video/search?q=' + wd + "&page=" + page + '&size=18&pid=' + playPid();
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.content-body > a');
+ let videos = _.map(items, (item) => {
+ const img = $(item).find('img:first')[0].attribs['src'];
+ const a = item.attribs['href'].match(/\/watch\/(.*)/)[1];
+ const n = ($(item).find('p.card-title')[0]).children[0].data;
+ let speed = ($(item).find('p.item-speed')[0]).children[0].data || '';
+ const score = ($(item).find('p.score')[0]).children[0].data || '';
+ if (speed == '电影') speed = '';
+ return {
+ vod_id: a,
+ vod_name: n,
+ vod_pic: img,
+ vod_remarks: speed || score || '',
+ };
+ });
+
+ let total = 18;
+ const pag = $('ui-pagination');
+ if (pag.length > 0) {
+ try {
+ total = parseInt(pag[0].attribs['total']);
+ } catch (error) {
+
+ }
+ }
+
+ return JSON.stringify({
+ page: page,
+ pagecount: _.ceil(total / 18),
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
diff --git a/cat/js/jojo_bytecode.js b/cat/js/jojo_bytecode.js
new file mode 100644
index 0000000..e8b967f
--- /dev/null
+++ b/cat/js/jojo_bytecode.js
@@ -0,0 +1 @@
+//bbQ0FUT1CkARhqb2pvX29wZW4uanMYLi9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuDENyeXB0bwhsb2FkAl8KZGF5anMGa2V5BnVybA5zaXRlS2V5EHNpdGVUeXBlBFVBDGNvb2tpZQ5yZXF1ZXN0CGluaXQIaG9tZQ5ob21lVm9kEGNhdGVnb3J5GHN0cmlwSHRtbFRhZwxkZXRhaWwOcGxheVBpZAhwbGF5DHNlYXJjaAxqaW9odWIkaHR0cHM6Ly9qaW9odWIudG9wlgJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDEzXzJfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTMuMC4zIE1vYmlsZS8xNUUxNDggU2FmYXJpLzYwNC4xDHJlcVVybA5yZWZlcmVyBm10aAhkYXRhBGhkDmhlYWRlcnMGcmVzFFVzZXItQWdlbnQGbWFwAjsMQ29va2llJGVuY29kZVVSSUNvbXBvbmVudAZyZXEMbWV0aG9kCHBvc3QIZm9ybRBwb3N0VHlwZQ5jb250ZW50Aj0GY2ZnCHNrZXkKc3R5cGUMZmlsdGVyCGh0bWwCJAxzZXJpZXMOY2xhc3NlczIubmF2LWxpc3QgYVtocmVmKj0vdmlkZW9dEnN0cmluZ2lmeQJzDHR5cGVJZBB0eXBlTmFtZQ5hdHRyaWJzCGhyZWYKbWF0Y2gkZGVjb2RlVVJJQ29tcG9uZW50DnR5cGVfaWQSdHlwZV9uYW1lBHt9BnRpZARwZwxleHRlbmQIcGFnZQhsaW5rCml0ZW1zDHZpZGVvcwp0b3RhbAZwYWcKZXJyb3IOL3ZpZGVvLww/cGFnZT0QJnNpemU9MTgoZGl2LmNvbnRlbnQtYm9keSA+IGEadWktcGFnaW5hdGlvbhBwYXJzZUludAhjZWlsEnBhZ2Vjb3VudAhsaXN0CGl0ZW0GaW1nAmECbgpzcGVlZApzY29yZQhmaW5kEmltZzpmaXJzdAZzcmMYcC5jYXJkLXRpdGxlEGNoaWxkcmVuGHAuaXRlbS1zcGVlZA5wLnNjb3JlDHZvZF9pZBB2b2RfbmFtZQ52b2RfcGljFnZvZF9yZW1hcmtzDnJlcGxhY2U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
\ No newline at end of file
diff --git a/cat/js/jojo_open.js b/cat/js/jojo_open.js
new file mode 100644
index 0000000..0a9cae0
--- /dev/null
+++ b/cat/js/jojo_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1CUAxhqb2pvX29wZW4uanMsYXNzZXRzOi8vanMvbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybgxDcnlwdG8IbG9hZAJfCmRheWpzDl8weDM0ZmMOXzB4NTRjMxJfMHg0ODU3NzQSXzB4MTRkZGMyEl8weDI2MjY5ZBJfMHg1YjljY2YSXzB4NDQxNjY0El8weDMzZTYxYRJfMHgyNTc1YTMSXzB4MjAwYjFhEl8weDFkNTQwZRJfMHhkNWIxY2EQXzB4N2FhYTYSXzB4M2YzOWQ5El8weDNiYjRjNxJfMHgxMDgxNjASXzB4MWVjYjNjEl8weDQzMGI3YxJfMHgzNjIyNjMSXzB4Y2FhM2U0HENvbnRlbnQtTGVuZ3RoDnN0cmVhbS8OcmVwbGFjZQhkYXRhBztOFG8a/wZzcmMISGdNMwhmaW5kEHZvZF95ZWFyCnNsaWNlEnZvZF9hY3Rvcgw/cGFnZT0OL3ZpZGVvLxRjaGFyQ29kZUF0DmhlYWRlcnMoZGl2LmNvbnRlbnQtYm9keSA+IGEQdm9kX3R5cGUIVXRmOA5kZWNyeXB0GHZvZF9wbGF5X3VybBJzdHJpbmdpZnkMdmFSTWNFDCZwYWdlPQ5wLnNjb3JlJnJldHVybiAoZnVuY3Rpb24oKSAIdzcxZhomc2l6ZT0xOCZwaWQ9DHhJVVlacgxzdWJzdHIMU1FqZXRRCDltVkEGMHg0JGh0dHBzOi8vamlvaHViLnRvcAf8WxRvGv8IdGV4dApzaGlmdAhKT0pPCGhyZWZAe30uY29uc3RydWN0b3IoInJldHVybiB0aGlzIikoICkYcC5jYXJkLXRpdGxlBjB4MxAmc2l6ZT0xOAftiwCKGv8GZW5jB3Re/U4a/whjb2RlIFozdzFCTUtZS2dOYXc2WT0IaHR0cEBiYTAtZDRnNS00NWViLWMyYmEwLWQ0ZzUtNDVlYi1jcwpwYXJzZTIubmF2LWxpc3QgYVtocmVmKj0vdmlkZW9dGHZvZF9kaXJlY3RvcghNb3ppCnRvdGFsBmhscxhmcm9tQ2hhckNvZGUUc3RhcnRzV2l0aBBObnc5QWNPTwh0cmltDHlaU0RLVQcwVzpTGv8Ydzc3RHZzTzl3cTlWDmF0dHJpYnMOaW5kZXhPZghjZWlsCGh0bWwKbWF0Y2gSc3Vic3RyaW5nlgJNb3ppbGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDEzXzJfMyBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vMTMuMC4zIE1vYmlsZS8xNUUxNDggU2FmYXJpLzYwNC4xCHBvc3QGbWFwBjB4MAhOKW5sCj9waWQ9ClBrY3M3SmRpdi5jb250ZW50LWRldGFpbCBzcGFuLmRldGFpbC1za2V0Y2gSaW1nOmZpcnN0MHdxODZ3NzNDbU1PcEhjT2V3NkhDdXl3PQZwYWQIYXRvYhp2b2RfcGxheV9mcm9tEHZvZF9hcmVhEGNoaWxkcmVuDmNvbnRlbnSCAUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89IGNmMmQxYS02YTRkLTllZjggdzR2Q3Q4S0R3b3pDbGc9PRhwLml0ZW0tc3BlZWQGQUVTIC92aWRlby9zZWFyY2g/cT0MamlvaHViCDB4MWEIMHg0MRBfMHg0ODVmOBJfMHgzNGZjYmISXzB4NTRjMzlhEl8weDU4NzNjOAhwdXNoEl8weDU4NTczNBJfMHgyN2NhN2ESXzB4NWM4ZDYxEl8weDZkNjI2MhJfMHgyZmFiOTQSXzB4NTE0MWMwEl8weDE2YzVkOBRVc2VyLUFnZW50CDB4MjMCOwxDb29raWUOcmVmZXJlciRlbmNvZGVVUklDb21wb25lbnQGcmVxCDB4MjAMbWV0aG9kCDB4NDIIZm9ybRBwb3N0VHlwZQgweDUwEl8weDU5OWY3YhJfMHg0YThiMzECPRJfMHgxNjNjYmUSXzB4NGE2ODY2El8weDQ2NzhmYRJfMHgxNWViOTQIc2tleQpzdHlwZQgweDRhCDB4NTMIMHgzOQgweDM1CDB4MmEIMHgyNAgweDE4BjB4MghlMGhFBjB4MQgweDQ1CDB4MTkIMHgxMggweDQ0CDB4NWQOY29uc29sZQZsb2cSXzB4NmU2ZDgyEl8weDJlOGNhNhJfMHg2MmZkMTQSXzB4MjcwNGQ5CDB4MWQSXzB4NGYwMTYwEl8weDEyN2I0YxJfMHgzMWY3ZDcSXzB4MTcwYjUxEl8weDIxYzBkNwYweGUIMHgzNwgweDE0CDB4MTYSXzB4NTk3MjIzEl8weDU1MjY0ZRJfMHg0NjRiYTYIMHg1MQgweDRjEl8weDU4ZTQyMhJfMHhmMmE4NzUIMHgxMQgweDIxBCk7DHdpbmRvdxJfMHgyYmUyMjISXzB4NTkzN2ZiEl8weDIyZWVmZhJfMHg0ZTI0ZDQSXzB4MTc3MzBkEl8weDIyMWFkMxJfMHgxZDgyYTYIMHg1OQxjaGFyQXQIMHgzYwgweDMzEl8weDU0NGFmNRJfMHgyZTlhY2MSXzB4MjQ4ZDJjEl8weDI4OWI4MRJfMHg1ZTA2NjISXzB4NDFkNGYyEl8weDUzYWYwYxJfMHgzNjAyZmQSXzB4MzBhOWU0El8weDVjMTI4ORJfMHgzYWQxMjYIMHgxNwIlBDAwCDB4M2EkZGVjb2RlVVJJQ29tcG9uZW50BjB4NhJfMHg1NjQ0NWESXzB4MmE3YzIzEl8weDI1MTI5YhJfMHg0YzUwMjMSXzB4MTBkOTYyCDB4MmUIMHg0MxJfMHgxMzk5NzcSXzB4NGU1MTEwEl8weDUyMDY0MQgweDFmCDB4M2YOdHlwZV9pZBJ0eXBlX25hbWUEe30SXzB4MWM5NzdkEl8weDRhYjZhYhJfMHg1ZGE3YmQSXzB4NDMzNWRhEl8weDQ5N2YwZhJfMHg0NGRjYzISXzB4MWU3OWIwEl8weDM0M2M4MRJfMHg0NDdkODISXzB4NDg4NTFlEl8weDJkMTQ3OBJfMHgyZDg4OGISXzB4NzNjYjAzBjB4NQgweDI1BjB4OBp1aS1wYWdpbmF0aW9uEHBhcnNlSW50CDB4M2IGMHhkCHBhZ2UIMHgzZBJwYWdlY291bnQIbGlzdBJfMHg0ZDMwZDcSXzB4MzNiN2E3El8weDE3YmUwZhJfMHg0ZmMzMTcSXzB4MWYyMmNiEl8weDU3YmY5MggweDQ5CDB4NWMIMHgyMggweDRmCDB4NTQIMHg1YQgweDEwDHZvZF9pZBB2b2RfbmFtZQ52b2RfcGljFnZvZF9yZW1hcmtzEl8weDRjNWI2OAIgEl8weDQ1MTdiMhJfMHg0MDNiOTcSXzB4M2Y3YWJkEl8weDQ2MjkwMhJfMHg0YzgxZWISXzB4MzQyMjEwEl8weDViMGNhNhJfMHgyNmYzMzgSXzB4NDliYjY2El8weDFjODliNw4vd2F0Y2gvLGRpdi5jb250ZW50LWRldGFpbCA+IHAIMHg0OAgweDNlCDB4MzYWdm9kX2NvbnRlbnQIMHgxYwgweDM0CDB4MzgIMHg0ZQgweDQwCDB4MjgHe3yLVxr/BjB4OQgweDFiCDB4MmYIMHg1YggweDI2EHZvZF9sYW5nAi8CKwgweDI3BjB4YQgweDJkCDB4NTIIMHg1NQYweGIEaXYIMHg0YggweDQ3DnBhZGRpbmcCCggweDRkCDB4MWUGMHhjAiMSXzB4M2FjZmNlEl8weDI1M2QzMBJfMHgyNTBmN2EIMHgyYwZIZXhAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAOZW5jcnlwdAxmb3JtYXQgWVlZWS1NTS1ERCBISDptbQItEl8weDM2MjQ5NxJfMHgyY2NjMjMSXzB4MjIyNzg3El8weGI1NTA0MBJfMHgzMDU3ZjQSXzB4MjJkOTZkEl8weDRmOTI5ZBJfMHgzMWM2ZDkSXzB4MzhjZDhmEl8weDhlNzkxMxJfMHg1OGRkMDkSXzB4MjU2N2YwCDB4MzIIMHgzMBBqczJQcm94eQgweDU4CDB4MTUGMHg3CDB4NTcIMHgyOQgweDQ2EGxvY2F0aW9uEl8weDIyODA3ORJfMHg0N2M4MTUSXzB4MjQyOWMwCDB4MmISXzB4NGVlODg0El8weDFhODhlOBJfMHgzZjQ1NDMSXzB4NTlhM2Q4El8weDQ0YTQ5NxJfMHgzY2ZmZjQSXzB4NWM5YjQ4El8weGQ5YThhZAZ1cmwMaGVhZGVyEl8weDVkODRkMxJfMHgxZjAxNDMSXzB4NGVmZGQ2El8weDM4NTNiZhJfMHg0NWM2MmYSXzB4NWM0MWE3El8weDQxZWJhOBJfMHhhYjIwOTYSXzB4MmIyYmRhEl8weDY0Y2FkYxJfMHgyNzEzNzMSXzB4NGI3YWIxCDB4NTYGMHhmCDB4MTMIMHgzMRJfMHg1YzczNTASXzB4MjZlY2Y2El8weDJhN2NlOBJfMHg0ODBmNTQSXzB4NGY4ODRlEl8weDUwM2MzNgU1dXFfCGluaXQIaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFpbAhwbGF5DHNlYXJjaA+kAwGmAwEAGKgDAAQAqgMAAawDAAKuAwADsAMADgAGAaA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
\ No newline at end of file
diff --git a/cat/js/kanqiu_open.js b/cat/js/kanqiu_open.js
new file mode 100644
index 0000000..2c04cac
--- /dev/null
+++ b/cat/js/kanqiu_open.js
@@ -0,0 +1,259 @@
+import { Crypto, load, _ } from './lib/cat.js';
+
+let siteUrl = 'http://www.88kanqiu.one';
+let siteKey = '';
+let siteType = 0;
+let headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'
+};
+
+async function request(reqUrl, postData, agentSp, get) {
+
+ let res = await req(reqUrl, {
+ method: get ? 'get' : 'post',
+ headers: headers,
+ data: postData || {},
+ postType: get ? '' : 'form',
+ });
+
+ let content = res.content;
+ return content;
+}
+
+async function get(reqUrl) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: headers
+ });
+
+ let content = res.content;
+ return content;
+}
+
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+ if(cfg.ext) {
+ siteUrl = cfg.ext;
+ }
+}
+
+async function home(filter) {
+ let classes = [{
+ type_id: '0',
+ type_name: '全部直播',
+ },{
+ type_id: '1',
+ type_name: '篮球直播',
+ },{
+ type_id: '8',
+ type_name: '足球直播',
+ },{
+ type_id: '29',
+ type_name: '其他直播',
+ }];
+
+ let filterObj = genFilterObj();
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ if(pg <=0) pg = 1;
+ let cateId = tid == '0'?'':tid;
+ if (extend['cateId']) {
+ cateId = extend['cateId'];
+ }
+ let url = siteUrl;
+ if (cateId != '') {
+ url = url + '/match/' + cateId + '/live';
+ }
+ const html = await get(url);
+ const $ = load(html);
+ let videos = [];
+ let cards = $('.list-group-item');
+ for(let i=0;i a')[0]).text().trim();
+ let name = '';
+ if (time != '') {
+ name = time + ' ' + gameType + ' ' + teamOne + ' VS ' + teamTwo + ' ' + liveStatus;
+ } else {
+ name = $(n).text().replaceAll('\n', '').trim();
+ }
+ let pic = $($(n).find('.col-xs-1 > img')[0]).attr('src');
+ if(!pic || pic == '') pic = 'http://www.88kanqiu.one/static/img/default-img.png';
+ if(pic.indexOf('http') < 0) pic = siteUrl + pic;
+ let remark = $($(n).find('.btn.btn-primary')).text();
+ if (extend['livingStatus'] != '1' || (extend['livingStatus'] === '1' && remark.length > 0)) {
+ videos.push({
+ vod_id: vid == ''?name:vid,
+ vod_name: name,
+ vod_pic: pic,
+ vod_remarks: remark
+ });
+ }
+ };
+ return JSON.stringify({
+ list: videos,
+ page: 1,
+ pagecount: 1,
+ limit: 0,
+ total: videos.length
+ });
+}
+
+async function detail(id) {
+ try {
+ if(id.indexOf('http') < 0) {
+ return '{}';
+ }
+ let url = id + '-url';
+ const data = JSON.parse(await get(url)).links;
+ let playUrls = [];
+ data.forEach(item => {
+ let name = item['name'];
+ let playUrl = item['url'];
+ playUrls.push(name + '$' + playUrl);
+ });
+ const video = {
+ vod_id: id,
+ vod_play_from: 'Leospring',
+ vod_play_url: playUrls.join('#')
+ };
+ const list = [video];
+ const result = { list };
+ return JSON.stringify(result);
+ } catch (e) {
+ //console.log('err', e);
+ }
+ return null;
+}
+
+async function play(flag, id, flags) {
+ return JSON.stringify(await getPlayObj(id));
+}
+
+async function getPlayObj(id) {
+ if(id.indexOf('?url=') > 0) {
+ return {parse: 0, url: id.split('?url=')[1]}
+ }
+ if(id.indexOf('replayer') > 0) {
+ let url = 'https://dszbok.com/prod-api/match/detail?mid=' + id.split('id=')[1] + '&pid=7&langtype=vi&zoneld=Asia/Shanghai';
+ let playUrl = JSON.parse(await get(url)).data.matchinfo.live_urls[0].url;
+ return {parse: 0, url: playUrl}
+ }
+ if (id.indexOf('live.jpyex.com/player') > 0) {
+ let url = id.replace('player/play.html', 'api/index/live');
+ let playUrl = Object.values(JSON.parse(await get(url)).detail.play_url)[0].pCode.m3u8;
+ return {parse: 0, url: playUrl}
+ }
+ if(id.indexOf('sportsteam1234') > 0) {
+ let playUrl = await parseSportSteam1234(id);
+ let parse = 0;
+ if (!playUrl.startsWith('http')) {
+ playUrl = id;
+ parse = 1;
+ }
+ return {
+ parse: parse,
+ url: playUrl,
+ header: {
+ 'User-Agent': headers['User-Agent'],
+ 'Referer': 'http://play.sportsteam1234.com/',
+ 'Accept': '*/*'
+ }
+ }
+ }
+ if(id.indexOf('play.926.tv') > 0) {
+ let playUrl = await parse926Tv(id);
+ return {
+ parse: 0,
+ url: playUrl,
+ header: {
+ 'User-Agent': headers['User-Agent'],
+ 'Referer': 'http://play.926.tv/',
+ 'Accept': '*/*'
+ }
+ }
+ }
+ return {parse: 1, url: id,};
+}
+
+async function parseSportSteam1234(url) {
+ if (url.indexOf('gm.php') > 0 || url.indexOf('kbm.php') > 0) {
+ url = url.replace('gm.php', 'kbm.php');
+ const html = await get(url);
+ const $ = load(html);
+ for(const n of $('script')) {
+ const text = $(n).text();
+ if(text.indexOf('encryptedBase64Str') > 0) {
+ let str = text.split("var encryptedBase64Str = '")[1].split("';")[0];
+ return decodeURIComponent(aesDecode(str));
+ }
+ }
+ }
+ return '';
+}
+
+async function parse926Tv(url) {
+ const html = await get(url);
+ const $ = load(html);
+ let str = $('div#a1 > span').attr('no-zw-zxx');
+ str = base64Decode(decode926Tv(str));
+ str = 'http:' + decodeURIComponent(decode926Tv(str));
+ return str;
+}
+
+function decode926Tv(str){
+ var arr = [];
+ for(var i=0;i|《|》/g,"").replace(/\$|#/g," ").trim()}function jsonParse(input,json){try{let url=json.url??"";if(!(url=url.startsWith("//")?"https:"+url:url).startsWith("http"))return{};let headers=json.headers||{};var ua=(json["user-agent"]||"").trim(),referer=(0{headers[hk]||delete headers[hk]}),{header:headers,url:url}}catch(error){console.log(error)}return{}}function __jsEvalReturn(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search}}export{__jsEvalReturn};
\ No newline at end of file
diff --git a/cat/js/klm_open.js b/cat/js/klm_open.js
new file mode 100644
index 0000000..a79f029
--- /dev/null
+++ b/cat/js/klm_open.js
@@ -0,0 +1,159 @@
+import { Crypto, load, _, jinja2 } from './lib/cat.js';
+
+let key = 'klm';
+let HOST = 'https://www.ksksl.com';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': agentSp || UA,
+ 'Referer': HOST
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ let classes = [{"type_id":"dy","type_name":"电影"},{"type_id":"tv","type_name":"追剧"},{"type_id":"zy","type_name":"综艺"},{"type_id":"dm","type_name":"动漫"},{"type_id":"jl","type_name":"纪录片"}];
+ let filterObj = {
+ "dy":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"/area/中国大陆"},{"n":"中国香港","v":"/area/中国香港"},{"n":"中国台湾","v":"/area/中国台湾"},{"n":"美国","v":"/area/美国"},{"n":"日本","v":"/area/日本"},{"n":"韩国","v":"/area/韩国"},{"n":"英国","v":"/area/英国"},{"n":"法国","v":"/area/法国"}]},{"key":"class","name":"分类","value":[{"n":"全部","v":""},{"n":"喜剧","v":"/class/喜剧"},{"n":"爱情","v":"/class/爱情"},{"n":"恐怖","v":"/class/恐怖"},{"n":"动作","v":"/class/动作"},{"n":"科幻","v":"/class/科幻"},{"n":"剧情","v":"/class/剧情"},{"n":"警匪","v":"/class/警匪"},{"n":"犯罪","v":"/class/犯罪"},{"n":"动画","v":"/class/动画"},{"n":"奇幻","v":"/class/奇幻"},{"n":"武侠","v":"/class/武侠"},{"n":"冒险","v":"/class/冒险"},{"n":"枪战","v":"/class/枪战"},{"n":"恐怖","v":"/class/恐怖"},{"n":"悬疑","v":"/class/悬疑"},{"n":"惊悚","v":"/class/惊悚"},{"n":"经典","v":"/class/经典"},{"n":"青春","v":"/class/青春"},{"n":"文艺","v":"/class/文艺"},{"n":"古装","v":"/class/古装"},{"n":"历史","v":"/class/历史"},{"n":"运动","v":"/class/运动"},{"n":"农村","v":"/class/农村"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}],
+ "tv":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"/area/中国大陆"},{"n":"中国香港","v":"/area/中国香港"},{"n":"中国台湾","v":"/area/中国台湾"},{"n":"美国","v":"/area/美国"},{"n":"日本","v":"/area/日本"},{"n":"韩国","v":"/area/韩国"},{"n":"英国","v":"/area/英国"},{"n":"法国","v":"/area/法国"}]},{"key":"class","name":"分类","value":[{"n":"全部","v":""},{"n":"古装","v":"/class/古装"},{"n":"言情","v":"/class/言情"},{"n":"武侠","v":"/class/武侠"},{"n":"偶像","v":"/class/美国"},{"n":"家庭","v":"/class/家庭"},{"n":"喜剧","v":"/class/喜剧"},{"n":"战争","v":"/class/战争"},{"n":"军旅","v":"/class/军旅"},{"n":"谍战","v":"/class/谍战"},{"n":"悬疑","v":"/class/悬疑"},{"n":"罪案","v":"/class/罪案"},{"n":"穿越","v":"/class/穿越"},{"n":"宫廷","v":"/class/宫廷"},{"n":"历史","v":"/class/历史"},{"n":"神话","v":"/class/神话"},{"n":"科幻","v":"/class/科幻"},{"n":"年代","v":"/class/年代"},{"n":"农村","v":"/class/农村"},{"n":"商战","v":"/class/商战"},{"n":"剧情","v":"/class/剧情"},{"n":"奇幻","v":"/class/奇幻"},{"n":"网剧","v":"/class/网剧"},{"n":"都市","v":"/class/都市"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}],
+ "zy":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"/area/中国大陆"},{"n":"中国香港","v":"/area/中国香港"},{"n":"中国台湾","v":"/area/中国台湾"},{"n":"美国","v":"/area/美国"},{"n":"日本","v":"/area/日本"},{"n":"韩国","v":"/area/韩国"},{"n":"英国","v":"/area/英国"},{"n":"法国","v":"/area/法国"}]},{"key":"class","name":"分类","value":[{"n":"全部","v":""},{"n":"表演","v":"/class/表演"},{"n":"播报","v":"/class/播报"},{"n":"访谈","v":"/class/访谈"},{"n":"体验","v":"/class/体验"},{"n":"养成","v":"/class/养成"},{"n":"游戏","v":"/class/游戏"},{"n":"亲子","v":"/class/亲子"},{"n":"美食","v":"/class/美食"},{"n":"情感","v":"/class/情感"},{"n":"选秀","v":"/class/选秀"},{"n":"益智","v":"/class/益智"},{"n":"晚会","v":"/class/晚会"},{"n":"音乐","v":"/class/音乐"},{"n":"文化","v":"/class/文化"},{"n":"喜剧","v":"/class/喜剧"},{"n":"曲艺","v":"/class/曲艺"},{"n":"职场","v":"/class/职场"},{"n":"脱口秀","v":"/class/脱口秀"},{"n":"文艺","v":"/class/文艺"},{"n":"竞技","v":"/class/竞技"},{"n":"潮流文化","v":"/class/潮流文化"},{"n":"体育","v":"/class/体育"},{"n":"资讯","v":"/class/资讯"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}],
+ "dm":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"/area/中国大陆"},{"n":"中国香港","v":"/area/中国香港"},{"n":"中国台湾","v":"/area/中国台湾"},{"n":"美国","v":"/area/美国"},{"n":"日本","v":"/area/日本"},{"n":"韩国","v":"/area/韩国"},{"n":"英国","v":"/area/英国"},{"n":"法国","v":"/area/法国"}]},{"key":"class","name":"分类","value":[{"n":"全部","v":""},{"n":"热门","v":"/class/热门"},{"n":"搞笑","v":"/class/搞笑"},{"n":"番剧","v":"/class/番剧"},{"n":"国创","v":"/class/国创"},{"n":"大电影","v":"/class/大电影"},{"n":"热血","v":"/class/热血"},{"n":"催泪","v":"/class/催泪"},{"n":"励志","v":"/class/励志"},{"n":"机战","v":"/class/机战"},{"n":"格斗","v":"/class/格斗"},{"n":"恋爱","v":"/class/恋爱"},{"n":"科幻","v":"/class/科幻"},{"n":"奇幻","v":"/class/奇幻"},{"n":"魔幻","v":"/class/魔幻"},{"n":"推理","v":"/class/推理"},{"n":"校园","v":"/class/校园"},{"n":"日常","v":"/class/日常"},{"n":"经典","v":"/class/经典"},{"n":"历史","v":"/class/历史"},{"n":"美食","v":"/class/美食"},{"n":"武侠","v":"/class/武侠"},{"n":"玄幻","v":"/class/玄幻"},{"n":"竞技","v":"/class/竞技"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}],
+ "jl":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"/area/中国大陆"},{"n":"日本","v":"/area/日本"},{"n":"美国","v":"/area/美国"},{"n":"国外","v":"/area/国外"},{"n":"其他","v":"/area/其他"}]},{"key":"class","name":"分类","value":[{"n":"全部","v":""},{"n":"社会","v":"/class/社会"},{"n":"动物","v":"/class/动物"},{"n":"文化","v":"/class/文化"},{"n":"自然","v":"/class/自然"},{"n":"人文","v":"/class/人文"},{"n":"军事","v":"/class/军事"},{"n":"历史","v":"/class/历史"},{"n":"记录","v":"/class/记录"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}]
+ };
+
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ const link = HOST + '/show/' + tid + (extend.area || '') + (extend.by || '/by/time') + (extend.class || '') + '/page/' + pg + (extend.year || '') + '.html';//https://www.ksksl.com/show/dy/area/%E7%BE%8E%E5%9B%BD/class/%E5%8A%A8%E4%BD%9C/page/2.html
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('ul.dx-list > li');
+ let videos = _.map(items, (item) => {
+ const it = $(item).find('a:first')[0];
+ const remarks = $($(item).find('span.vod_remarks')[0]).text().trim();
+ return {
+ vod_id: it.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'),
+ vod_name: it.attribs.title,
+ vod_pic: it.attribs['data-original'],
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('div.page_info> ul > a').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ var html = await request( HOST + '/voddetail/' + id + '.html');
+ var $ = load(html);
+ var vod = {
+ vod_id: id,
+ vod_name: $('h1:first').text().trim(),
+ vod_type: $('.video-info-actor:eq(1)').text(),
+ vod_actor: $('.info-main a').text(),
+ vod_pic: $('.video-cover img:first').attr('src'),
+ vod_remarks : $('.stui-content__detail p:nth-child(5)').text() || '',
+ vod_content: $('.vod_content').text().trim(),
+ };
+ var playMap = {};
+ var tabs = $('div.player_info h2');
+ var playlists = $('div.play_li');
+ _.each(tabs, (tab, i) => {
+ var from = tab.children[0].data;
+ var list = playlists[i];
+ list = $(list).find('a');
+ _.each(list, (it) => {
+ var title = it.children[0].data;
+ var playUrl = it.attribs.href.replace(/.*?\/vodplay\/(.*).html/g, '$1');
+ if (title.length == 0) title = it.children[0].data.trim();
+ if (!playMap.hasOwnProperty(from)) {
+ playMap[from] = [];
+ }
+ playMap[from].push( title + '$' + playUrl);
+ });
+ });
+ vod.vod_play_from = _.keys(playMap).join('$$$');
+ var urls = _.values(playMap);
+ var vod_play_url = _.map(urls, (urlist) => {
+ return urlist.join('#');
+ });
+ vod.vod_play_url = vod_play_url.join('$$$');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+async function play(flag, id, flags) {
+ const link = HOST + '/vodplay/' + id + '.html';
+ const html = await request(link);
+ const $ = load(html);
+ const js = JSON.parse($('script:contains(player_)').html().replace('var player_aaaa=',''));
+ const playUrl = js.url;
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ });
+}
+
+async function search(wd, quick, pg) {
+ if (pg <= 0) pg = 1;
+ let data = await request(HOST + '/ch/page/' + pg + '/wd/' + wd + '.html');//https://www.ksksl.com/ch/page/2/wd/%E6%88%91.html
+ const $ = load(data);
+ const items = $('ul.dx-list > li');
+ let videos = _.map(items, (item) => {
+ const it = $(item).find('a:first')[0];
+ const remarks = $($(item).find('span.vod_remarks')[0]).text().trim();
+ return {
+ vod_id: it.attribs.href.replace(/\/voddetail\/(.*).html/g, '$1'),
+ vod_name: it.attribs.title,
+ vod_pic: it.attribs['data-original'],
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('div.page_info > ul > a').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/kunyu77.js b/cat/js/kunyu77.js
new file mode 100644
index 0000000..7253833
--- /dev/null
+++ b/cat/js/kunyu77.js
@@ -0,0 +1 @@
+//bbQ0FUT1CsBB5rdW55dTc3X29wZW4uanMsYXNzZXRzOi8vanMvbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybgxDcnlwdG8KZGF5anMMamluamEyBlVyaQJfDl8weDQ0YzgOXzB4MjBmYxJfMHgzMjBkYmYSXzB4M2IzNDVjEl8weDQzMDlmYhJfMHgxOThiMTMSXzB4M2IwZDFjEl8weDFmZmQ0MhJfMHg0MTFjYmESXzB4M2E2ZTMyEl8weDExOGNmZhJfMHg0ZjM1NWQSXzB4NDc5NTMxEl8weDM1YTlmZBJfMHgyMWJhYjkSXzB4NDA4NzkzEl8weDU3YTAxNxJfMHg1NzhkYTUSXzB4NWVmOGM3El8weDdkZThjORJfMHg0ZWFmMTUSXzB4NGRmMjhmEl8weDFhNDViYRJfMHg1OWNhYWEMd2luZG93MGpzdm1fdGhpc19pbml0aWFsaXphdGlvbhpqc3ZtX3RoaXNfcnVuGl9wYV9qNzRsY2lyODYaX3BhX2syN2RnOHphbRpfcGFfenMzZjdsazdzGl9wYV9mcWxzMDlwb3ckanN2bV90aGlzX3RtcFZhbHVlHmpzdm1fdGhpc19pbnNucx5qc3ZtX3RoaXNfc2RhdGEmanN2bV90aGlzX2VudHJhbmNlcx5qc3ZtX3RoaXNfcHJpdnMCZRhfcGFfbjRsdG83eGkGc3RyGl9wYV92NmRzeHI5aXcIc2lnbgpzaWduMQpzaWduMgptYXRjaAxvZmZzZXQcX3BhX2ZxbHM1M3N5enMoZW5jb2RlU3RyTm90V2l0aFNpZ24SZGVjb2RlU3RyFnNpZ25NYXRjaGVkDGZhY3RvchhjaGFyQ29kZUxpc3QYc3RyVG9rZW5MaXN0AmkebmV3Q2hhckNvZGVMaXN0CGNvZGUCcgJ6AmwQc2lnblBvczEQc2lnblBvczIYYWN0VmFsdWVQb3MxGGFjdFZhbHVlUG9zMhxqc3ZtcG9ydGFsXzBfMQJuAmEcanN2bXBvcnRhbF8yXzECbwJwHGpzdm1wb3J0YWxfNF8xDmFsaWpzdm0Mc29ydEJ5JGdldFF1ZXJ5UGFyYW1WYWx1ZRh7InZpZGVvSWQiOiIUc3RhcnRzV2l0aAxyYW5kb20KbWVyZ2UIdHJpbRRVc2VyLUFnZW50BnN5cxp2b2RfcGxheV9mcm9tLi9hcGkucGhwL3Byb3ZpZGUvY29uZmlnEnN0cmluZ2lmeRJUSy1WVG9rZW4QcGxheUF1dGhCL2FwaS5waHAvcHJvdmlkZS92aWRlb0RldGFpbD9pZHM9CHNjYXQUcGxheUhlYWRlcg5yZXBsYWNlFnRvTG93ZXJDYXNlFHVzZXItYWdlbnQOaXNFbXB0eQZlbmMKYnJhbmQGJCQkQERhbHZpay8yLjEuMCAoTGludXg7IFU7IEFuZHJvaWQgvgwtLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQpNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQWcvOEh0RUIzZ0wram5nVmlIY0lRCis1VWkvQXh3N1A0KzRPQlhKbFRvbzVrZ0E4UU8yS0kyYmhxQURlV2JqNWZTcEFCYzdBV1BZZGNFRytWU245dk8KWkwrWE53MlIwa1M4Q3hpbitleWtHNmg2Ty9MaVFqc3pSeW5CMHJJeUpJTkUvVG5QQllVTHk1VG1Cc2lneHRsNwpHWU9mVjBOQVRUYnlTRzd6WE16d3BRUTlkcG5nWmcrNmxMTGpLMm0rdjA2THJST054V1hpdy9TZUZGUENDd25WCkN0d09BdEYzQTZJYW9NeTVjN00zQThUUXpKQ0FKRHVuVk4vbldPWC9sT1dJM20vZWpkZjlnNkRnc1BJSm10NmoKQytrOXo1U005TEQzTUNBczNFSHk5WWl1dXR3SGVmNndTZnFLVjhVQlpGYlZ3RlJ4ejhSRXZJdU9yd3FTdjYrTgp3VE1OK1FqbmdXWWNlbmsxSFd1K2IwbDFVVURGWmRJb0ZvMzN1WEtobjhhcnVjaXkzR1FGa2ZMalhQN1JodlA5Cnc2Smw3SmVWUDNONEtPRzd6RFJaVUMzakl4TlBmV0UzZ3JQWXF3UDJtb3l4V25hU1pOVHlkMzNNWnM0d3hiODcKZ21rV3hFMldqWklvQ2VLbHdnU2I2NzR4UWZ0RUQ0dk5SM1VScnU5SE5DMVg1YnMvdFFIcmsvdFVvNXI1N0czQwpjS0w0T3VNT0xZK0Znc3MwN2dTd2YrK3cwbCtUNmQ0SWxEbGp0a2czT3Raa2tTT0JqRVFNQ25nUE5EaHNwOFVRCkxIV1BvTVI4NEtpREwzQXJYa01KYTZNOUJPTGxZM2g3WUNyTllFbUwzd0ViMEtJMjJHNkpCZldtMCt2OUMyQnMKckdzU3cySjZISHZreVc2SGpKNmNUbWtDQXdFQUFRPT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tFnRvVXBwZXJDYXNlEkhNQUMtU0hBMRpTZWN1cml0eVRva2VuDGh0dHBzOi4vYXBpLnBocC9wcm92aWRlL2ZpbHRlcg52aWRlb0lkDnBsYXl1cmweIiwidGltZXN0YW1wIjoiEFhTcGVVRmpKGFBsYXlJbmZvTGlzdAxCYXNlNjQGY2F0DmJ1aWxkSWQSdmlkZW9OYW1lCHVuaXhARGFsdmlrLzIuMS4wKHNldmVuVmlkZW8gYW5kcm9pZCk0L2FwaS5waHAvcHJvdmlkZS9nZXREb21haW4UcmVwbGFjZUFsbBpva2h0dHAvMy4xMi4wFHF1ZXJ5UGFpcnMGbXNnDnJlbGVhc2UIcGF0aBBwbGF5dXJsc3phYmFjZGVmZ2hqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5DiBCdWlsZC8aYWRkUXVlcnlQYXJhbQxIdWF3ZWkQSG1hY1NIQTEGbG9nCmFsaXZjDGRldmljZRYmU2lnbmF0dXJlPRBwbGF5ZnJvbQhrZXlzDmFuZHJvaWRUL2FwaS5waHAvcHJvdmlkZS9nZXRWaWRlb1BsYXlBdXRoP3ZpZGVvSWQ9CnN0eXBlUC9hcGkucGhwL3Byb3ZpZGUvc2VhcmNoVmlkZW8/c2VhcmNoTmFtZT0QcGFnZXNpemUIZGF0YQ5rdW55dTc3BnVybAYxLjAUdmlkZW9Db3ZlchBQbGF5SW5mbwhhcmVhCHllYXIMYmxvY2tzEnBhcnNlclVybBYmcmV0cnlOdW09MA5pbmRleE9mSC9hcGkucGhwL3Byb3ZpZGUvaG9tZUJsb2NrP3R5cGVfaWQ9MBRjb25kaXRpb25zElJTQS9QS0NTMRBkaXJlY3RvcghwdXNoFGJsb2NrX25hbWUUMjAxNy0wMy0yMQ5mb3JFYWNoCnRpdGxlDmhlYWRlcnMMaGVhZGVyEEdFVCYlMkYmFkFjY2Vzc0tleUlkHkFjY2Vzc0tleVNlY3JldBBlcGlzb2Rlcw5SZWZlcmVyCjIuMi42Bk1ENQxzeXN2ZXIwL2FwaS5waHAvcHJvdmlkZS9jaGFubmVsDnZlcnNpb25MaHR0cHM6Ly92b2QuY24tc2hhbmdoYWkuYWxpeXVuY3MuY29tLz8McmVzdWx0eC9hcGkucGhwL3Byb3ZpZGUvc2VhcmNoRmlsdGVyP3R5cGVfaWQ9MCZwYWdlbnVtPTEmcGFnZXNpemU9MQ5jb250ZW50CHBhZ2UcaGFzT3duUHJvcGVydHkKcGFyc2UKZGV2aWQWc3ViQ2F0ZWdvcnkKdG90YWwKbW9kZWwIMHg0NSpodHRwczovL2FwaS50eXVuNzcuY24IMHg2MQgweDE4CDB4MzTuQkx4b3h4eHV1OW5yeHV4VmRiYXhyZXRBYWwnCXNhb3h4IGN4Z0tleGluZWM5N3hyZWZ2YWR4eFZub3V0eCcnbnhlblZuCXgzCSdzeHh2eCAneCcJJ3gnRXRyM3gndnhqcFd4VHgJaW94b3gnaGE5UW85ZSdUeGQ5eDN0ZCcJJ2N4CWc5bidYeExuWGVmaXhleAl1b1llT3huZlQJOUFrdWV4bnZkeHV4QXh4CTNlZHgnOScJJ3hzdHR4VFZ4aW45CSdqczNteDl4CScJCW54c3hUZFR4Q2R4eGZfeHUJQlc3eHgnTidWaUVoTFRMeAl1eG54eGJCZ3hkM3g2eHhvQW40bFZ4N3hpTAl4eHhhbSA5eGJFSFF4ZGFmaW5lZAlzeGRlZmlueHh4eG5kV2ZWb3h4CXhuZGVmbm5lZml4bzRlZnhuckh4QTkJZWJ4bjN4CW4neHhhdHI5NGJmV0wzMwknWFZ4eCdqV2F4eHN4WSdqc3ZtVjlhYycgJ0xzdjl3VnhzYXh4YV8nCXhuZG5meFQzeAl4eHhlZmFubmQzeHh4L2ZqeGVYMnVfeGVhYTNlMHhMdnQJdV9wCUx2Nk94eEk5aXgnTHBzc3htSXhlVGlFJ2NiY3N2bSBlSUl4CTJueGV4TG5hbnh1eGRlVmk0ZWV4J3hWIDJ0Yyd1eHY3dW5kZWZpcXBMCW5WbGxHX2lJZTNmYXhOZQkndmFyIG1ieDNoaXMneFRXc3ZtZnhMY05WaHh4V214aHJ0YTMrOV8nMyd4J0knb3hhX3ZxanNsVjl5eHgneFRqczlsdHh4eGl4ZXUnanV4eGR4c0kneHV4TGs0aW5lZHNheGRkZidyaVR4dVNkeGZ4cHhkCVR4dnhsaXhleDR1eGRlZmk5ZXh4blZUbAl0cm1WCSd2bExkOSd4YWR4eHh4ZXhpc3hkeGpzdiBmdTN4JwlUQUV4M3hveHRhdl8zeDN4eG5uZSdpbnhlCTF4eE11eHh4CWRuMGlsCUxybjN4ZSdsTAlyJ3Z4TGV3bCd1OWlzJwltanh2eGZIbmMnZydrbHZJcG94dGFrYXhYeAl1VmRlZmluZXh4dTZYbWZ4CWJOJ3VIeFhmOW5lSWsnYicJM2p4eG0gSzlnJ25UM2x4eHZXOHF4ZDN6eG5kbGZ4TCdSCW51ckkJdG1KZXh1YWxzZQkndmEneCd4YnhoaXNzCWk5Z0x4ZmV4eDlnJ3h4dm1JYWFrYUxfMF8nVHhKbnh4eGVTanInV3gnNHR4VFZhOSd4J19wYUhqbXhjZWlwODN4WSdIcidvZHhheHh4CXhfeHhOVnJuZW4zem5ieHhXMnV3eHhheHgJdWJ4J1dkeG5IYmNueGJ4bXhIeHN4J2lheG54OUx4TDNWSWl4anF4eHhIeGxBJ3g5CWttbnc1eHh4Mm5wall4CXhOeDlueHhuVExWQ1c2a2V4cwlVbFZJK0x4eDlvCXhueGFJclRMJ1d4eFgzR2J4eGNheGt4eHhBZE54MnhBRWFiazN4WDVkdXgJZk9SMUEzbgl4eHBKeG94CXgyVmJ4NE54OVZrYmFSeG54SG1Ia3hsQXgvbmhuQ0w0eEh4RWR4eGEzeGJ2ZglrY3hJK0V4QXgneHJ4YnhtcXhjVnhjZHJkVnh3M1YJeGNWYXhrR0VWZjB4WHhheDMnTExUeEx4eHh1eENXYnh4Vnh4dzRiQTl4NGFWVmJreHhheHhWSGR4SXV4eEFZMzdMCUxpdVYvWDNReHhyeHVhYWh1eHh4eHh3NWR4eGIzeGl4eDNuTm1DczdreFRMeGFySQk5eGxnM2IxeHgzbld4cGExeGF4eHhxYnhueHgJeFk1eHh4eDM5SXh4eG5OeCd4Skx4TG4nd3hieGtsaDI5bDF4bTMJYUlDeHh4eHhHNidFeCA5RTlJeExXeEljeHh4R3h4ZTdmSW1yeHIzdmFYeFNMVldTeHYzYmJ4dld4eEhWOXgzVnhweGJ4eHhWbmJIeG94V3hhTHUycnh4Vnh4TDl4eFRWaHgzVm1hd294bnN4M2FiYnhFJzR4aglMeHNsMXh4V1hXVFZueG1yVm1WeHhFZlYJeHh4NHhyOWQ5eFRXeEFiM2w1aXhoCW1iNXJJeHh4eHhkUWw5VDFtRXg3THh4SXh4eFQnVnh4eFYneGtjX1ZXVnhXTFZ4OU14V3hJM1ZZeG54VDkveHhJeERudG5MIDNWZTN4Y3h4N2JpSHh4eGh1QUg2eDN4eGNiM0l4eHgzSHhXeEl4YmF4WTN0THhMM2FWb1dHRXh4eGJ4aEx4eDlVYXh4R2J4eHhjd0l4MVYzaTN4QTlieAl4M0lWbWV4eGtjbms5eHhwc3h4dnhWeHhrM2l4eFZneDMzeAl2Vjl4eGJheDJ4YXhheHh4TGN4M25wY0l4YglleEhpcDdMeGRiYXhwbWJ4eFk0J0VhYnhDYW1keG54eGVJYzlmQWU0N0xiYjN4QWFhZGwzZXh4eG54VkczeFZ4U0liVHh4eDNNeG11M1ZJZExuYkx4YzNMeGF4N3hrM2QzeGV4M3hieGV4eHEzeGN4YjRWOXUnZXhIVlZ4eDNWNnhJTHhMTXh4eHhjeHh4bW54CXg2bHhweDMJYnh4M3hlOUMneCdWTHhleHh4eGdpeFFrM2V4eHh4VENFeHhNTFZ4eGF4M3hieDlBYkl4Ynh4UmFUeHh4L3hJQWt4VExIeGk1bHg0bkx4eHhxc2ZXZDZWCVl4MkhiSmE5CXh4ckhMeEljM0V4eHhqeGxheFFMCTlvWWJ4dXhueGFWeDlMV3h4OTRWeHh4TFR4VjN4THhWOTNJOXhhVjNMSWl4YXh4TFV4Vnh4eGtMeEk1eDN4eHh4eGJueEx4eHh1cmV4M1RMVHh4eDNheHh4VjlWSW1jVmt4bnNicjN4eFd4eGdpY3NoaWx4a3h4eEt4eGF4RXhJd3g5OXI5Vm5XeFZXeDNWeEx4VGx4eDRzcnhhZHhXeHhhMzNqYXhuYTd4VngzeFZhdDNZeF9XYTknMwlwV3gzeDMJCWd1eEF4dXh4TXJkYnh4ZXhmK3h4eF8zWHh4eGJ4ci9ieGU3M2xjM3h4aXhIeHJYRW0zM1Z4ckllSXdlbGF4bngJeFgzeHhZSHh4SQlXQWIzeHhhY3hkeGJ4MWNjbm94ZHh4eG5heHhyaXh4VjMgeGJ4eHh4QUE0OXh4WWloSGJ4b0lJeExWeHhFeHhUeHR4QVJ2YXhyYTluV2kzTHh4a3B4TW4nYlZ4YXhhY3hMfG9BYXh4ZHhhbmN4OW9keHhhbHhBeDZ4eDlMeDl4R2F4J3gJeFgneHh4VHh4eEd4M0xBeHh4eHh1R2J4eGV4eDN4VnhtNGJ4eHh4TDNieHhUOXh4eHhMVHlveHh0YTNPeEdseHhleExBb0FueEl4QXh3aWp4MXh4M1gyV1IzNQl4OW54TW5WeHV3eHh4YgllOWRkcEFHZXh4UGQnaXhBaUxheHhyeFp4eHh4eDluX2JveHh4eDM2eGtob0xUVzN4eGF4eHh4b3h4bnh4YWF4Vnh4eHh4YzNfX3hWeHh4Yng5dW54V3hWXzl4SGV4cll4ZFd4eDNMY2F4TEhnMnhjeHhMeHhUbXhlVnQnYTQzTEhWaitvaFY0TEkzM3hMJzl4QXdmeHJMeCBldQl4OXhleHh4NHh4Y3hnMXhSYSt4TGV4V3g5Yng1M1czVnhreFZ4b3hieHh4M3h4CW94eElqSTl4QVd4YXV4eHlMVCtyRXh4clZ2eHBBeHhheGdHeHh4eExFTHVuVnhvR2J4eFczTGR4TDkzeGJ4ZHhsWEFvNWl4YXh4eHhJeHFpJwk2b0F4bnVfeHhJbmF4YXh4RXhLeHh4cnh4awlMeFdMYXh4J3gzSTZMV1RxN1Zhcnh4ZWtidm9uM2IzM3gzeHh4eHhWcFZ4eHhWYVZReCtpblR4eHhWSUxveHhWSFR4MydBaXVWeHR4eHh4eHgzZEh4eExjWWEnMW54NnR4eEljbXpsQXJfeGFleG1jeDlsbgl4eEx4eEkJeDkzeHh4eGFpJ3hWYXg0eHh4eHh4eHhseHR4OXh4M2IxeG5WYXUJeGlIOVZ4eGRtdXNHeG9ZeHhMVEV1eHhMSDN4ZCdXeC85eG94SGEnYVZrVkx4eDNPeDluYVZPVHhWeHh4M3VsYUtZVCd0eGw2Yld4V3hXeHhkeDN1Vnh4akhFTFJzeEx4VjN4eDMJMnh5eGIJJ3h4cnR4MzR4eHg5YmF4UGR4eHhWCXh4SDQxYVZueDNWeDZJSm14ZU14dW5jeEpiVnhUeDlUeGZ1eGplYnhuVnhMeFRieEhuM3h4aWJhZHh4OQlyeHh4c2F4YUFMeDdMeHgzYlY5eHUgVng5eEx4R2JtOXh4eG1lM3h4M3hWVFJVeHhuQXYxbUx4eGhMTGErM3h4eHJWVWwxUFdqeGQ5ckF4eG9meGNFYng5WXh4THhpYTl4QydkeDFsM3ZzR3RtYnhjeGt4QUx4YngweDNpeFl4eG5OeGV4SnN4eGJ4YWFIeDkyVmNhbDlBVzNXaHV1YmV4eFZwOXh4eENXeAlMOWQxZXh4eHh4VglheGNsWnhFeHgzCXh4eDl4SGJjeHh4M0hkM1ZwaSd4eHhBOXh4eHh4eEEveDZJY04zeFZuVHh4eG94bHhWeDlNeGJ4eFdDRUx4cmRieHhWeHh4eGF4TAl4eHh4YkhhcmZ4VHhmeHhWaXhISHhMM2J4eHhMYWJ4MzNUTGF4ZXV1eHh4Ynh4eGFyVnR4VEx4YV94J3h4eGVWeHh4Q0F4eGJ4dHhKYXhUeHhpeG43Ynh4aXgzYnh4S2wJMnN4SFRrRVp4Z3gnSWszYjk5OWN4cm4neHdibWFBWTN4TGEnM0ljcnh4eDZ4cnhseHhYeHhzeHh4Nnh4Znh3J3hPcjNWeHh4d0lMeHhhZG4zeHh4ZHhWeFR4M1VYZGJrM3hzJ3RheGIJWHgzd3B4eHhMYXhmeEF4eGF4cnhJMTNXNnhMM3hMeGxEYnh4eCd4QXVMIHgzeHgJSTN4M1l4TEFweDN4eGp4VDN4eHhheFR4eEc3eHhMeHh4eHhRbmJ4eHhhZHh4Y1c5cnhhdWx4eDN4eHh4THh4J3hWOTkzVnhBSW54eHhlZVFURVR4bUUzQXhiVlgzYWh4TEVhWXh4SFdqeGIneFZiQ3J4eHhleHVQeDN4cng2eGN4YXhlYXhmeHx4MDd5CTN4MzlneG94R3hJY2JkZCd4eDNBeHh4dXgwK2J4eHh4eHhMWXg5V0xXMAliSHh4Y3NWbid4eFd4eAkzVlh4eHh4eEkJQUF4QTN4eGV4eHhjWHh4YmF4bGtFQW5BM3hheGFBSWJ4eGInM2F4VngzeGJ4eHgzYXNMVDZ4YWZ4VzEzOUEzY3hBN3d4d3hBWnh4dzVhYWFFdXhubkd4THh4eAl4eG5leHh4YXhmeGN4bHhBbnhtbXh4eGZmM2dIeDk5VmV4eHFZMDlvWHh4USdRTzNUVG1FVjBUeHh4eGxzeHhFeGVMeCd4M0w5eHR4M2JsN3hYa3N4dEljeHhsVnh4eDN4eHhBYXh4THhUdXhUd3JsSHh6R1phc3h4cjN4dXMweDMJSjl2KzZ4eHhiRytheHh4eDZxbHhyRXJqeFlIVThsYm9GeGV8YXhUUkF4M3JpWXhJeGF4V3hUeEN4eEx4bkFrRXh4YTUSXzB4M2ZkMzA1El8weDQ0YzhiMxJfMHgyMGZjNjISXzB4MWQyNGRkCnNoaWZ0El8weDU3YTg5ZBJfMHgzZjY1YWMSXzB4MTY3NzY0El8weDEzYmVkNxJfMHgxZTRmNjESXzB4NTBhZTJiEl8weDM1YTg0NhJfMHhiYzA5YzgSXzB4ZDQ2ZjU0El8weDM5YzcxNRJfMHgzY2Q2MTgSXzB4ZmM0MzA2El8weDNlMTZhNhJfMHgxOTMxYWUSXzB4NDBlMzVkCDB4MjkIMHgzNgpwY29kZRIwMTAxMTAwMDUIMHg2NggweDZlBGlkCDB4MjQ0Y29tLnNldmVuVmlkZW8uYXBwLmFuZHJvaWQGMHg1CDB4M2YIMHg2MwgweDE1CDB4NzMIMHgyZAIgBHNqCDB4MmYIMHg3MQgweDU1CDB4NzUIMHgzMggweDc2JGVuY29kZVVSSUNvbXBvbmVudAgweDIyDmNvbnNvbGUIMHgzOQgweDYyCDB4NzQIMHgyZQJUBFRLCDB4NTAgZ2V0VmlkZW9QbGF5QXV0aAYweGEIcnNhWAgweDc3CDB4MWUIMHgyMQQifQgweDRkCDB4NTMQeyJ1cmwiOiIIMHg0NgZyZXEIMHg1YQhkYXRlCDB4NmESXzB4NWQ5ZWI0El8weDQ0NDU0OBJfMHgyOTQxMDUSXzB4M2RiZTVkEl8weDEyYjJjZAhza2V5CDB4NDEIMHgzYgpsb2NhbAgweDFmCDB4NmQIMHgxMwR1YQgweDE3CDB4MzEEOyAIMHgzNQgweDI3AikIMHg2NQYweDkIMHgyYwYweDg6L2FwaS5waHAvcHJvdmlkZS9jaGVja1VwZ3JhZGUIMHg2NBJfMHg1ZTA5NzUSXzB4MzY0NDc0El8weDUwNjlhZRJfMHg0YTY2MTYSXzB4NzQ1N2ZhEl8weDM5YjgyZRJfMHg1OGRiMjgSXzB4M2EwYzUzEl8weDUyNTc5MhJfMHgyZjU3NmYSXzB4MTMyOTYzEl8weDI1YmI2ORJfMHg0MjcwZDMSXzB4MWIxNjQwEl8weDM5N2NjYQgweDFkDnR5cGVfaWQIMHgyNhJ0eXBlX25hbWUIMHg2OQgweDUyCDB4NGIGa2V5BXRe/U4IaW5pdAVoUeiQAnYCeQgweDU4BjB4NggweDRhBTBXOlMQY2F0ZWdvcnkFe3yLVwYweGQOZmlsdGVycxJfMHgyYjljNTQSXzB4NTg3ZjNkCDB4MmESXzB4NDM0NDdhEl8weDE1NDk2YhJfMHgxODY0NWUSXzB4M2UzYmFjEl8weDQ0OTNiMhJfMHgyYzA1ODYSXzB4N2UyYWYxEl8weDFjN2I5ZggweDUxCDB4NGMIMHg1NgXtcK1kEGNvbnRlbnRzDHZvZF9pZAgweDU5EHZvZF9uYW1lCDB4NDgOdm9kX3BpYwgweDMwFnZvZF9yZW1hcmtzCGxpc3QSXzB4NTdiYTZjEl8weDQ4ZjY3NBJfMHgxOTk0NjMSXzB4NTgzOTc2El8weDFlNjQ2NBJfMHgzOTA0ZDcSXzB4MTE5YjllEl8weDU1ZjQ2ZEwvYXBpLnBocC9wcm92aWRlL3NlYXJjaEZpbHRlcj90eXBlX2lkPRImcGFnZW51bT0aJnBhZ2VzaXplPTI0Jnp5ZWFyPXt7ZXh0LnllYXJ9fSZjYXRlZ29yeT17e2V4dC5jYXRlZ29yeX19JmFyZWE9e3tleHQuYXJlYX19BmV4dAgweDQ0CDB4NjgQcGFyc2VJbnQIMHg2YggweDQzEnBhZ2Vjb3VudApsaW1pdAgweDcyEl8weDI1NDdiNRJfMHg0Nzg1Y2ISXzB4NWIzZTc0El8weDMwZTMxNhJfMHhkNTU4MjcSXzB4NGM3MjdkEl8weDViOWYyZhJfMHg0MmI4OTUSXzB4MzkwNjYxEl8weDJmOTczMBJfMHgzMmMzNjYSXzB4M2Q4N2FjEl8weDM4Y2YxNwYweGMIMHgyOAgweDcwEHZvZF95ZWFyEHZvZF9hcmVhCmFjdG9yEnZvZF9hY3RvcggweDU0GHZvZF9kaXJlY3RvcgpicmllZgYweDMWdm9kX2NvbnRlbnRGL2FwaS5waHAvcHJvdmlkZS92aWRlb1BsYXlsaXN0P2lkcz0IMHg1ZggweDMzCDB4M2QIMHg2YwIkCDB4MjAGMHg3CDB4M2UGMHhlCDB4MTYIMHg0ZQIjGHZvZF9wbGF5X3VybBJfMHgzNmZmZWUSXzB4M2MxNGVkEl8weDI0ZDA0ORJfMHgyM2U2MzgSXzB4MmM2ZDRkEl8weDI2MzY2YxJfMHg1Y2M4ZjkSXzB4YmI5OWNkEl8weDFkMjdiZBJfMHg0YjU5NmYSXzB4MzVjZDI1El8weDIyZDYwYhJfMHgxNzliYjcSXzB4MzM4MTlkEl8weDIzYzZjYhJfMHg1YWFkZjkSXzB4ZTQ5NWM3El8weDE1ZGVlMBJfMHgxZjlmNWESXzB4NTcxMGM0CDB4M2EIMHgyYggweDQwBjB4YggweDE0CFV0ZjgIMHgyNQgweDVkFkdldFBsYXlJbmZvDEFjdGlvbhBBdXRoSW5mbxZBdXRoVGltZW91dA5BbmRyb2lkDkNoYW5uZWwIMHg3OAxGb3JtYXQORm9ybWF0cxpQbGF5ZXJWZXJzaW9uCFJhbmQIMHgxYggweDFhHlNpZ25hdHVyZU1ldGhvZBxTaWduYXR1cmVOb25jZQgweDQ3IFNpZ25hdHVyZVZlcnNpb24IMHg1Nw5WZXJzaW9uDlZpZGVvSWQGbWFwAiYIMHg1YwgweDM4CDB4NWUIMHgzYwgweDY3CDB4NmYIMHgyMwgweDQ5DlBsYXlVUkw+L2FwaS5waHAvcHJvdmlkZS9wYXJzZXJVcmw/dXJsPQgweDRmBjB4ZgYweDIIMHg1YhJfMHg4ZDU5Y2ESXzB4MjcxYWE4Aj0SXzB4NGY3MDhlEl8weDQxYmIwZhJfMHg0ZTU5YTESXzB4M2EyNDFhEl8weDI0YzNlYxJfMHgyOWE2NWUSXzB4Mjg2ZTFlCDB4NDIIJnBnPQpwYWdlcxJfMHgyM2I3NjgSXzB4NDIxNGI2El8weDUyYTJkYRJfMHgzNWUzNzkQXzB4NTk3NTESXzB4MzRhNmMwCDB4MzccSFVBV0VJIE1hdGUgMjAIMHgxOQYweDESXzB4MWRmMjQ3El8weDRmNzVkMggweDEwEl8weDM1NjBkZBJfMHg1ZThjMjASXzB4MjNkZjkxEl8weDYxNDgyNxJfMHgzNzdlYzISXzB4MTc0Yzg0EF8weGZlYTU2BC8vCDB4MWMGMHgwCGh0dHAIMHgxMgYweDQOcmVmZXJlcggweDYwCDB4MTECLQhob21lDmhvbWVWb2QMZGV0YWlsCHBsYXkMc2VhcmNoAngCcwJjAnQCdQJiAmgGcG9wAnwMY2hhckF0FGNoYXJDb2RlQXQCZAJWAkwCZgJrAm0CagJBAkkCZwJXAncCSAJFAkMCWQJYAkcsID0ganN2bV90aGlzX3RtcFZhbHVlOxBqc3ZtZnVuYwIJGGZyb21DaGFyQ29kZRZnZXRGdWxsWWVhcgpzbGljZQppbm91dAxyZXR2YWwPpAMBpgMBAB2oAwAFAKoDAAGsAwACrgMAA7ADAASyAwAOAAYBoAEAAAAgTB/VCgCqAwAMrAMBDK4DAgywAwMMsgMEDLQDAA22AwENuAMCCboDAwm8AwQJvgMFCcADBgnCAwcJxAMIDcYDCQ3IAwoBygMLAcwDDAHOAw0B0AMOAdIDDwHUAxAB1gMRAdgDEg3aAxMB3AMUAd4DFQHgAxYB4gMXAagDGAHkAxkJ5gMaAegDGwHqAxwB7AMdAe4DHgHwAx8B8gMgAfQDIQH2AyIB+AMjAfoDJAH8AyUB/gMmAYAEJwGCBCgBhAQpAYYEKgGIBCsBigQsAYwELQGOBC4BkAQvAZIEMAGUBDEBlgQyAZgEMwGaBDQBnAQ1AZ4ENgGgBDcBogQ4AaQEOQGmBDoBqAQ7AaoEPAGsBD0BrgQ+AbAEPwGyBEABtARBAbYEQgG4BEMBugREAbwERQG+BEYBCOhrvgJfDwC+A18QAL4EXxEAvgVfEgC+Bl8TAL4HXxQAvghfFQC+CV8WAL4KXxgAvgtfGQC+DF8aAL4NXxsAvg5fHAC+D18dAL4QXx8AvhFfIAC+El8hAL4TXyIAvhRfIwC+FV8kAL4dX0sAKQQ3AAAABCABAAAEIQEAAAQiAQAABJgAAAAEIwEAAAQkAQAABCUBAAAEJgEAAAQnAQAABCgBAAAEQAAAAAQpAQAABCoBAAAEKwEAAAQsAQAABC0BAAAELgEAAAQvAQAABFsAAAAEMAEAAAQxAQAABDIBAAAEMwEAAAQ0AQAABDUBAAAENgEAAAQ3AQAABDgBAAAEOQEAAAQ6AQAABDsBAAAmIAAEPAEAAEwgAACABD0BAABMIQAAgAQ+AQAATCIAAIAEPwEAAEwjAACABEEAAABMJAAAgARAAQAATCUAAIAEQQEAAEwmAACABEIBAABMJwAAgARDAQAATCgAAIAEKAAAAEwpAACABEQBAABMKgAAgARFAQAATCsAAIAERgEAAEwsAACABEcBAABMLQAAgARIAQAATC4AAIAENgAAAEwvAACABEkBAABMMAAAgARKAQAATDEAAIAESwEAAEwyAACABEwBAABMMwAAgARNAQAATDQAAIAETgEAAEw1AACABE8BAABMNgAAgARQAQAATDcAAIAEUQEAAEw4AACABFIBAABMOQAAgARTAQAATDoAAIAEVAEAAEw7AACABFUBAABMPAAAgARWAQAATD0AAIAEVwEAAEw+AACABFgBAABMPwAAgARZAQAATEAAAIAEWgEAAExBAACABFsBAABMQgAAgARcAQAATEMAAIAEXQEAAExEAACABF4BAABMRQAAgARfAQAATEYAAIAEYAEAAExHAACABGEBAABMSAAAgARiAQAATEkAAIAEYwEAAExKAACABGQBAABMSwAAgARlAQAATEwAAIAEZgEAAExNAACABGcBAABMTgAAgARoAQAATE8AAIAEaQEAAExQAACABGoBAABMUQAAgARrAQAATFIAAIAEawAAAExTAACABGwBAABMVAAAgARtAQAATFUAAIAEbgEAAExWAACABG8BAABMVwAAgARwAQAATFgAAIAEcQEAAExZAACABHIBAABMWgAAgARzAQAATFsAAIAEdAEAAExcAACABHUBAABMXQAAgAR2AQAATF4AAIAEdwEAAExfAACABHgBAABMYAAAgAR5AQAATGEAAIAEegEAAExiAACABHsBAABMYwAAgAR8AQAATGQAAIAEfQEAAExlAACABH4BAABMZgAAgAR/AQAATGcAAIAEgAEAAExoAACABIEBAABMaQAAgARCAAAATGoAAIAEggEAAExrAACABIMBAABMbAAAgASEAQAATG0AAIAEhQEAAExuAACABIYBAABMbwAAgASHAQAATHAAAIAEiAEAAExxAACABIkBAABMcgAAgASKAQAATHMAAIAEEAEAAEx0AACABIsBAABMdQAAgAQwAAAATHYAAIAEjAEAAEx3AACABI0BAABMeAAAgF8FAL4AZQUAvHAB7g6+AU3bAAAAXwYAZQYABI4BAADtXwcABI8BAABfCAALXwkAs18KAL9fCwCzXwwAZQYABJABAADtXw0AZQYABJEBAADtXw4AZQYABJIBAADtXxcAC18eACYAAF8mACYAAF8nACYAAF8oACYAAF8pAF4fAASTAQAA7Q6+Fk0YAQAAX0QAXiAAvhe07g5eIAC+GLXuDr4ZTRsBAABfRwBeIAC+GrfuDl4gAL4buO4OvhxNHgEAAF9KAF4gAL4euu4ppAMBBAEAbQIOQwYBAAIBAgIAARMDqAYAAUCqBgABAKwGAQAwYQA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ICLwDCQi+AwoIwAMLCMIDDAjEAw0MxgMODMgDDwDKAxAAzAMRAM4DEgDQAxMA0gMUANQDFQDWAxYA2AMXDNoDGADcAxkA3gMaAOADGwDiAxwAqAMdAOQDHgjmAx8A6AMgAOoDIQDsAyIA7gMjAPADJADyAyUA9AMmAPYDJwD4AygA+gMpAPwDKgD+AysAgAQsAIIELQCEBC4AhgQvAIgEMACKBDEAjAQyAI4EMwCQBDQAkgQ1AJQENgCWBDcAmAQ4AJoEOQCcBDoAngQ7AKAEPACiBD0ApAQ+AKYEPwCoBEAAqgRBAKwEQgCuBEMAsAREALIERQC0BEYAtgRHALgESAC6BEkAvARKAL4ESwAMA8gIxwwAyTg6AAAAxbNHMQEAAAAopAMBAA5DBgEAAAMAA0wBDwP4CwAAAPoLAAEAmgEAAQCqAwAMrAMBDK4DAgywAwMMsgMEDLQDBQy2AwYMuAMHCLoDCAi8AwkIvgMKCMADCwjCAwwIxAMNDMYDDgzIAw8AygMQAMwDEQDOAxIA0AMTANIDFADUAxUA1gMWANgDFwzaAxgA3AMZAN4DGgDgAxsA4gMcAKgDHQDkAx4I5gMfAOgDIADqAyEA7AMiAO4DIwDwAyQA8gMlAPQDJgD2AycA+AMoAPoDKQD8AyoA/gMrAIAELACCBC0AhAQuAIYELwCIBDAAigQxAIwEMgCOBDMAkAQ0AJIENQCUBDYAlgQ3AJgEOACaBDkAnAQ6AJ4EOwCgBDwAogQ9AKQEPgCmBD8AqARAAKoEQQCsBEIArgRDALAERACyBEUAtARGALYERwC4BEgAugRJALwESgC+BEsADADJxcdeIAC+ALnuDsQopAMBAA5DBgEAAAMAA04AFgMQAAEA4gEAAQCaAQABAPgLAAH6CwEBqgMADKwDAQyuAwIMsAMDDLIDBAy0AwUMtgMGDLgDBwi6AwgIvAMJCL4DCgjAAwsIwgMMCMQDDQzGAw4MyAMPAMoDEADMAxEAzgMSANADEwDSAxQA1AMVANYDFgDYAxcM2gMYANwDGQDeAxoA4AMbAOIDHACoAx0A5AMeCOYDHwDoAyAA6gMhAOwDIgDuAyMA8AMkAPIDJQD0AyYA9gMnAPgDKAD6AykA/AMqAP4DKwCABCwAggQtAIQELgCGBC8AiAQwAIoEMQCMBDIAjgQzAJAENACSBDUAlAQ2AJYENwCYBDgAmgQ5AJwEOgCeBDsAoAQ8AKIEPQCkBD4ApgQ/AKgEQACqBEEArARCAK4EQwCwBEQAsgRFALQERgC2BEcAuARIALoESQC8BEoAvgRLAAwDyAjHDADJODoAAADFs0cxAQAAACikAwEADkMGAb4EAAMAA0wBDwP4CwAAAPoLAAEAmgEAAQCqAwAMrAMBDK4DAgywAwMMsgMEDLQDBQy2AwYMuAMHCLoDCAi8AwkIvgMKCMADCwjCAwwIxAMNDMYDDgzIAw8AygMQAMwDEQDOAxIA0AMTANIDFADUAxUA1gMWANgDFwzaAxgA3AMZAN4DGgDgAxsA4gMcAKgDHQDkAx4I5gMfAOgDIADqAyEA7AMiAO4DIwDwAyQA8gMlAPQDJgD2AycA+AMoAPoDKQD8AyoA/gMrAIAELACCBC0AhAQuAIYELwCIBDAAigQxAIwEMgCOBDMAkAQ0AJIENQCUBDYAlgQ3AJgEOACaBDkAnAQ6AJ4EOwCgBDwAogQ9AKQEPgCmBD8AqARAAKoEQQCsBEIArgRDALAERACyBEUAtARGALYERwC4BEgAugRJALwESgC+BEsADADJxcdeIAC+ALPuDsQopAMBAA5DBgEAAAMAA04AFgMQAAEA4gEAAQCaAQABAPgLAAH6CwEBqgMADKwDAQyuAwIMsAMDDLIDBAy0AwUMtgMGDLgDBwi6AwgIvAMJCL4DCgjAAwsIwgMMCMQDDQzGAw4MyAMPAMoDEADMAxEAzgMSANADEwDSAxQA1AMVANYDFgDYAxcM2gMYANwDGQDeAxoA4AMbAOIDHACoAx0A5AMeCOYDHwDoAyAA6gMhAOwDIgDuAyMA8AMkAPIDJQD0AyYA9gMnAPgDKAD6AykA/AMqAP4DKwCABCwAggQtAIQELgCGBC8AiAQwAIoEMQCMBDIAjgQzAJAENACSBDUAlAQ2AJYENwCYBDgAmgQ5AJwEOgCeBDsAoAQ8AKIEPQCkBD4ApgQ/AKgEQACqBEEArARCAK4EQwCwBEQAsgRFALQERgC2BEcAuARIALoESQC8BEoAvgRLAAwDyAjHDADJODoAAADFs0cxAQAAACikAwEADkMGAQAAAwADTAAWAxAAAQDiAQABAJoBAAEAqgMADKwDAQyuAwIMsAMDDLIDBAy0AwUMtgMGDLgDBwi6AwgIvAMJCL4DCgjAAwsIwgMMCMQDDQzGAw4MyAMPAMoDEADMAxEAzgMSANADEwDSAxQA1AMVANYDFgDYAxcM2gMYANwDGQDeAxoA4AMbAOIDHACoAx0A5AMeCOYDHwDoAyAA6gMhAOwDIgDuAyMA8AMkAPIDJQD0AyYA9gMnAPgDKAD6AykA/AMqAP4DKwCABCwAggQtAIQELgCGBC8AiAQwAIoEMQCMBDIAjgQzAJAENACSBDUAlAQ2AJYENwCYBDgAmgQ5AJwEOgCeBDsAoAQ8AKIEPQCkBD4ApgQ/AKgEQACqBEEArARCAK4EQwCwBEQAsgRFALQERgC2BEcAuARIALoESQC8BEoAvgRLAAwDyAjHDADJODoAAADFs0cxAQAAACikAwEA
\ No newline at end of file
diff --git a/cat/js/kunyu77_open.js b/cat/js/kunyu77_open.js
new file mode 100644
index 0000000..a7af1d7
--- /dev/null
+++ b/cat/js/kunyu77_open.js
@@ -0,0 +1,346 @@
+import { Crypto, dayjs, jinja2, Uri, _ } from './lib/cat.js';
+
+let key = 'kunyu77';
+let url = 'http://api.tyun77.cn';
+let device = {};
+let timeOffset = 0;
+let siteKey = '';
+let siteType = 0;
+
+async function request(reqUrl, agentSp) {
+ let sj = dayjs().unix() - timeOffset;
+ let uri = new Uri(reqUrl);
+ uri.addQueryParam('pcode', '010110005');
+ uri.addQueryParam('version', '2.1.6');
+ uri.addQueryParam('devid', device.id);
+ uri.addQueryParam('package', 'com.sevenVideo.app.android');
+ uri.addQueryParam('sys', 'android');
+ uri.addQueryParam('sysver', device.release);
+ uri.addQueryParam('brand', device.brand);
+ uri.addQueryParam('model', device.model.replaceAll(' ', '_'));
+ uri.addQueryParam('sj', sj);
+ let keys = [];
+ for (var i = 0; i < uri.queryPairs.length; i++) {
+ keys.push(uri.queryPairs[i][0]);
+ }
+ keys = _.sortBy(keys, function (name) {
+ return name;
+ });
+ let tkSrc = uri.path();
+ for (let k of keys) {
+ let v = uri.getQueryParamValue(k);
+ v = encodeURIComponent(v);
+ tkSrc += v;
+ }
+ tkSrc += sj;
+ tkSrc += 'XSpeUFjJ';
+ console.log(tkSrc);
+ let tk = Crypto.MD5(tkSrc).toString().toLowerCase();
+ console.log(tk);
+ let header = {
+ 'user-agent': agentSp || 'okhttp/3.12.0',
+ t: sj,
+ TK: tk,
+ };
+ let res = await req(uri.toString(), {
+ headers: header,
+ });
+
+ let serverTime = res.headers.date; // dart all response header key is lowercase
+ let content = res.content;
+ let serverTimeS = dayjs(serverTime).unix();
+ timeOffset = dayjs().unix() - serverTimeS;
+ // console.log(content);
+ return content;
+}
+
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+ var deviceKey = 'device';
+ var deviceInfo = await local.get(key, deviceKey);
+ if (deviceInfo.length > 0) {
+ try {
+ device = JSON.parse(deviceInfo);
+ } catch (error) {}
+ }
+ if (_.isEmpty(device)) {
+ device = randDevice();
+ device.id = randStr(32).toLowerCase();
+ device.ua = 'Dalvik/2.1.0 (Linux; U; Android ' + device.release + '; ' + device.model + ' Build/' + device.buildId + ')';
+ await local.set(key, deviceKey, JSON.stringify(device));
+ }
+
+ await request(url + '/api.php/provide/getDomain');
+ await request(url + '/api.php/provide/config');
+ await request(url + '/api.php/provide/checkUpgrade');
+ await request(url + '/api.php/provide/channel');
+}
+
+async function home(filter) {
+ let data = JSON.parse(await request(url + '/api.php/provide/filter')).data;
+ let classes = [];
+ let filterObj = {};
+ let filterAll = [];
+ for (const key in data) {
+ classes.push({
+ type_id: key,
+ type_name: data[key][0].cat,
+ });
+ if (!filter) continue;
+ try {
+ let typeId = key.toString();
+ if (_.isEmpty(filterAll)) {
+ let filterData = JSON.parse(await request(url + '/api.php/provide/searchFilter?type_id=0&pagenum=1&pagesize=1')).data.conditions;
+ // console.log(filterData);
+ // 年份
+ let year = {
+ key: 'year',
+ name: '年份',
+ init: '',
+ };
+ let yearValues = [];
+ yearValues.push({ n: '全部', v: '' });
+ filterData.y.forEach((e) => {
+ yearValues.push({ n: e.name, v: e.value });
+ });
+ year['value'] = yearValues;
+ // 地区
+ let area = {
+ key: 'area',
+ name: '地区',
+ init: '',
+ };
+ let areaValues = [];
+ areaValues.push({ n: '全部', v: '' });
+ filterData.a.forEach((e) => {
+ areaValues.push({ n: e.name, v: e.value });
+ });
+ area['value'] = areaValues;
+ // 类型
+ let type = {
+ key: 'category',
+ name: '类型',
+ init: '',
+ };
+ let typeValues = [];
+ typeValues.push({ n: '全部', v: '' });
+ filterData.scat.forEach((e) => {
+ typeValues.push({ n: e.name, v: e.value });
+ });
+ type['value'] = typeValues;
+
+ filterAll.push(year, area, type);
+ }
+ if (!_.isEmpty(filterAll)) {
+ filterObj[typeId] = filterAll;
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ // console.log(classes);
+ // console.log(filterObj);
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {
+ let data = JSON.parse(await request(url + '/api.php/provide/homeBlock?type_id=0')).data;
+ let blocks = data.blocks;
+ let videos = [];
+ for (const block of blocks) {
+ let name = block.block_name;
+ if (name.indexOf('热播') >= 0) continue;
+ let contents = block.contents;
+ for (const content of contents) {
+ videos.push({
+ vod_id: content.id,
+ vod_name: content.title,
+ vod_pic: content.videoCover,
+ vod_remarks: content.msg,
+ });
+ }
+ }
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ let reqUrl = url + '/api.php/provide/searchFilter?type_id=' + tid + '&pagenum=' + pg + '&pagesize=24&';
+ reqUrl += jinja2('year={{ext.year}}&category={{ext.category}}&area={{ext.area}}', { ext: extend });
+ let data = JSON.parse(await request(reqUrl)).data;
+ let videos = [];
+ for (const vod of data.result) {
+ videos.push({
+ vod_id: vod.id,
+ vod_name: vod.title,
+ vod_pic: vod.videoCover,
+ vod_remarks: vod.msg,
+ });
+ }
+ return JSON.stringify({
+ page: parseInt(data.page),
+ pagecount: data.pagesize,
+ limit: 24,
+ total: data.total,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ let data = JSON.parse(await request(url + '/api.php/provide/videoDetail?ids=' + id)).data;
+ console.log(data);
+ let vod = {
+ vod_id: data.id,
+ vod_name: data.videoName,
+ vod_pic: data.videoCover,
+ type_name: data.subCategory,
+ vod_year: data.year,
+ vod_area: data.area,
+ vod_remarks: data.msg,
+ vod_actor: data.actor,
+ vod_director: data.director,
+ vod_content: data.brief.trim(),
+ };
+ let episodes = JSON.parse(await request(url + '/api.php/provide/videoPlaylist?ids=' + id)).data.episodes;
+ let playlist = {};
+ for (const episode of episodes) {
+ let playurls = episode.playurls;
+ for (const playurl of playurls) {
+ let from = playurl.playfrom;
+ let t = formatPlayUrl(vod.vod_name, playurl.title);
+ if (t.length == 0) t = playurl.title.trim();
+ if (!playlist.hasOwnProperty(from)) {
+ playlist[from] = [];
+ }
+ playlist[from].push(t + '$' + playurl.playurl);
+ }
+ }
+ vod.vod_play_from = _.keys(playlist).join('$$$');
+ let urls = _.values(playlist);
+ let vod_play_url = [];
+ for (const urlist of urls) {
+ vod_play_url.push(urlist.join('#'));
+ }
+ vod.vod_play_url = vod_play_url.join('$$$');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ try {
+ let data = JSON.parse(await request(url + '/api.php/provide/parserUrl?url=' + id + '&retryNum=0')).data;
+ let playHeader = data.playHeader;
+ let jxUrl = data.url;
+ let res = await req(jxUrl, {
+ headers: {
+ 'user-agent': 'okhttp/3.12.0',
+ },
+ });
+ let result = jsonParse(id, JSON.parse(res.content));
+ result['parse'] = 0;
+ if (playHeader) {
+ result.header = _.merge(result.header, playHeader);
+ }
+ return JSON.stringify(result);
+ } catch (e) {
+ return JSON.stringify({
+ parse: 0,
+ url: id,
+ });
+ }
+}
+
+async function search(wd, quick, pg) {
+ let page = pg || 1;
+ if (page == 0) page = 1;
+ let data = JSON.parse(await request(url + '/api.php/provide/searchVideo?searchName=' + wd + '&pg=' + page, 'okhttp/3.12.0'));
+ let videos = [];
+ for (const vod of data.data) {
+ videos.push({
+ vod_id: vod.id,
+ vod_name: vod.videoName,
+ vod_pic: vod.videoCover,
+ vod_remarks: vod.msg,
+ });
+ }
+ return JSON.stringify({
+ page: page,
+ pagecount: data.pages,
+ list: videos,
+ });
+}
+
+const charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789';
+function randStr(len, withNum) {
+ var _str = '';
+ let containsNum = withNum === undefined ? true : withNum;
+ for (var i = 0; i < len; i++) {
+ let idx = _.random(0, containsNum ? charStr.length - 1 : charStr.length - 11);
+ _str += charStr[idx];
+ }
+ return _str;
+}
+
+function randDevice() {
+ return {
+ brand: 'Huawei',
+ model: 'HUAWEI Mate 20',
+ release: '10',
+ buildId: randStr(3, false).toUpperCase() + _.random(11, 99) + randStr(1, false).toUpperCase(),
+ };
+}
+
+function formatPlayUrl(src, name) {
+ return name
+ .trim()
+ .replaceAll(src, '')
+ .replace(/<|>|《|》/g, '')
+ .replace(/\$|#/g, ' ')
+ .trim();
+}
+
+function jsonParse(input, json) {
+ try {
+ let url = json.url ?? '';
+ if (url.startsWith('//')) {
+ url = 'https:' + url;
+ }
+ if (!url.startsWith('http')) {
+ return {};
+ }
+ let headers = json['headers'] || {};
+ let ua = (json['user-agent'] || '').trim();
+ if (ua.length > 0) {
+ headers['User-Agent'] = ua;
+ }
+ let referer = (json['referer'] || '').trim();
+ if (referer.length > 0) {
+ headers['Referer'] = referer;
+ }
+ return {
+ header: headers,
+ url: url,
+ };
+ } catch (error) {
+ console.log(error);
+ }
+ return {};
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
diff --git a/cat/js/kuqimv_open.js b/cat/js/kuqimv_open.js
new file mode 100644
index 0000000..1cefed4
--- /dev/null
+++ b/cat/js/kuqimv_open.js
@@ -0,0 +1,173 @@
+// 修正:分类改静态 (网站频繁变动分类)
+import { load, _ } from "assets://js/lib/cat.js";
+
+let key = "酷奇MV";
+let HOST = "https://www.kuqimv.com";
+let siteKey = "";
+let siteType = 0;
+const PC_UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36";
+
+async function request(reqUrl, referer, mth, data, hd) {
+ const headers = {
+ "User-Agent": PC_UA,
+ };
+ if (referer) headers.referer = encodeURIComponent(referer);
+ let res = await req(reqUrl, {
+ method: mth || "get",
+ headers: headers,
+ data: data,
+ postType: mth === "post" ? "form" : "",
+ });
+ return res.content;
+}
+
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ var classes = [{ "type_id": "1", "type_name": "华语高清" }, { "type_id": "2", "type_name": "日韩精选" }, { "type_id": "3", "type_name": "欧美MV" }, { "type_id": "4", "type_name": "高清现场" }, { "type_id": "5", "type_name": "影视MV" }, { "type_id": "6", "type_name": "夜店视频" }, { "type_id": "7", "type_name": "车模视频" }, { "type_id": "8", "type_name": "热舞视频" }, { "type_id": "9", "type_name": "美女写真" }, { "type_id": "10", "type_name": "美女打碟" }];
+ // const html = await request(HOST);
+ // const $ = load(html);
+ // const class_parse = $(".lei_fl > a[href*=play]");
+ // const classes = [];
+ // classes = _.map(class_parse, (cls) => {
+ // const typeId = cls.attribs["href"];
+ // typeId = typeId.substring(typeId.lastIndexOf("/") + 1).replace(".html", "");
+ // return {
+ // type_id: typeId,
+ // type_name: cls.children[0].data,
+ // };
+ // });
+ const filterObj = {};
+ return JSON.stringify({
+ class: _.map(classes, (cls) => {
+ cls.land = 1;
+ cls.ratio = 1.78;
+ return cls;
+ }),
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {
+ const link = HOST + "/play/9_1.html";
+ const html = await request(link);
+ const $ = load(html);
+ const items = $("div.mv_list > li");
+ let videos = _.map(items, (it) => {
+ const a = $(it).find("a:first")[0];
+ const img = $(it).find("img:first")[0];
+ const singer = $($(it).find("div.singer")[0]).text().trim();
+ const remarks = $($(it).find("span.lei_03")[0]).text().trim();
+ return {
+ vod_id: a.attribs.href.replace(/.*?\/play\/(.*).html/g, "$1"),
+ vod_name: a.attribs.title,
+ vod_pic: img.attribs["src"],
+ vod_remarks: "🎤" + singer + "|" + remarks || "",
+ };
+ });
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0 || typeof pg == "undefined") pg = 1;
+ const link = HOST + "/play/" + tid + "_" + pg + ".html";
+ const html = await request(link);
+ const $ = load(html);
+ const items = $("div.mv_list > li");
+ let videos = _.map(items, (it) => {
+ const a = $(it).find("a:first")[0];
+ const img = $(it).find("img:first")[0];
+ const singer = $($(it).find("div.singer")[0]).text().trim();
+ const remarks = $($(it).find("span.lei_03")[0]).text().trim();
+ return {
+ vod_id: a.attribs.href.replace(/.*?\/play\/(.*).html/g, "$1"),
+ vod_name: a.attribs.title,
+ vod_pic: img.attribs["src"],
+ vod_remarks: "🎤" + singer + "|" + remarks || "",
+ };
+ });
+ const hasMore = $("div.lei_page > a:contains(下一页)").length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const vod = {
+ vod_id: id,
+ vod_remarks: "",
+ };
+ const playlist = ["观看视频" + "$" + id];
+ vod.vod_play_from = "道长在线";
+ vod.vod_play_url = playlist.join("#");
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ const link = HOST + "/skin/kuqimv/play.php";
+ const ref = HOST + "/play/" + id + ".html";
+ const pdata = { id: id };
+ const playUrl = JSON.parse(await request(link, ref, "post", pdata)).url;
+ const headers = {
+ Referer: HOST,
+ };
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ header: headers,
+ });
+}
+
+async function search(wd, quick, pg) {
+ if (pg <= 0 || typeof pg == "undefined") pg = 1;
+ const link = HOST + "/search.php?key=" + wd + "&pages=" + pg;
+ const html = await request(link);
+ const $ = load(html);
+ const items = $("div.video_list > li");
+ let videos = _.map(items, (it) => {
+ const a = $(it).find("a:first")[0];
+ const singer = $($(it).find("div.singer")[0]).text().trim();
+ const remarks = $($(it).find("span.lei_04")[0]).text().trim();
+ return {
+ vod_id: a.attribs.href.replace(/.*?\/play\/(.*).html/g, "$1"),
+ vod_name: a.attribs.title,
+ vod_pic: "https://www.kuqimv.com/static/images/cover/singer.jpg",
+ vod_remarks: "🎤" + singer + "|" + remarks || "",
+ };
+ });
+ const hasMore = $("div.lei_page > a:contains(>)").length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 20,
+ total: 20 * pgCount,
+ list: videos,
+ land: 1,
+ ratio: 1.78,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/kuwo_open.js b/cat/js/kuwo_open.js
new file mode 100644
index 0000000..6766329
--- /dev/null
+++ b/cat/js/kuwo_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1BgGGt1d29fb3Blbi5qcyxhc3NldHM6Ly9qcy9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuAl8Ga2V5CEhPU1QOc2l0ZUtleRBzaXRlVHlwZRJNT0JJTEVfVUEOcmVxdWVzdAhpbml0CGhvbWUOaG9tZVZvZBBjYXRlZ29yeQxkZXRhaWwIcGxheQxzZWFyY2gHd5Htd2dSJmh0dHA6Ly93YXBpLmt1d28uY26WAk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTNfMl8zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xMy4wLjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEMcmVxVXJsDmFnZW50U3AGcmVzBnJlcQxtZXRob2QUVXNlci1BZ2VudA5oZWFkZXJzDmNvbnRlbnQGY2ZnCHNrZXkKc3R5cGUMZmlsdGVyDmNsYXNzZXMSZmlsdGVyT2JqDnR5cGVfaWQJHHNgT/NgC3cSdHlwZV9uYW1lCR9Xc1QxcsVgCfRmGlm+fGlfDziXU5A7YMGIhHa6Th91CViNf1pTX1OQCytvK2/9j7tZ740JtlutXsVgH2ESc3RyaW5naWZ5DmZpbHRlcnMEe30GdGlkBHBnDGV4dGVuZAhsaW5rBGpvDHZpZGVvc1ovb3BlbmFwaS92MS9zaG9ydHBsYXkvbW9kdWxlTW9yZT9jdXJyZW50UGFnZT0UJm1vZHVsZUlkPQwmcm49MTIKcGFyc2UIZGF0YQhsaXN0DmZvckVhY2gQcGFyc2VJbnQIcGFnZRBuZXh0UGFnZRJwYWdlY291bnQQcGFnZVNpemUKbGltaXQKdG90YWwEaXQIcHVzaAZ1cmwMdm9kX2lkCnRpdGxlEHZvZF9uYW1lBmltZw52b2RfcGljGGN1cnJyZW50RGVzYxZ2b2RfcmVtYXJrcwRpZAZ2b2QOcGxheVVybFAvb3BlbmFwaS92MS9zaG9ydHBsYXkvdmlkZW9MaXN0P2FsYnVtSWQ9EnNob3J0aW5mbwpjb3ZlcgIjCVOQf5UoV79+GnZvZF9wbGF5X2Zyb20Ydm9kX3BsYXlfdXJsAiQSbXZwYXlpbmZvBnZpZAhmbGF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
\ No newline at end of file
diff --git a/cat/js/l0l_open.js b/cat/js/l0l_open.js
new file mode 100644
index 0000000..9c67ea1
--- /dev/null
+++ b/cat/js/l0l_open.js
@@ -0,0 +1,167 @@
+import { Crypto, load, _ } from './lib/cat.js';
+
+let key = 'dyxs';
+let HOST = 'https://www.l0l.tv';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E230 Safari/601.1';
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': agentSp || UA,
+ 'Referer': HOST
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ let classes = [{"type_id":1,"type_name":"电影"},{"type_id":2,"type_name":"追剧"},{"type_id":3,"type_name":"综艺"},{"type_id":4,"type_name":"动漫"}];
+ let filterObj = {
+ "1":[{"key":"class","name":"类型","value":[{"n":"全部","v":""},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"恐怖","v":"恐怖"},{"n":"动作","v":"动作"},{"n":"科幻","v":"科幻"},{"n":"剧情","v":"剧情"},{"n":"战争","v":"战争"},{"n":"警匪","v":"警匪"},{"n":"犯罪","v":"犯罪"},{"n":"动画","v":"动画"},{"n":"奇幻","v":"奇幻"},{"n":"武侠","v":"武侠"},{"n":"冒险","v":"冒险"},{"n":"枪战","v":"枪战"},{"n":"恐怖","v":"恐怖"},{"n":"悬疑","v":"悬疑"},{"n":"惊悚","v":"惊悚"},{"n":"经典","v":"经典"},{"n":"青春","v":"青春"},{"n":"文艺","v":"文艺"},{"n":"微电影","v":"微电影"},{"n":"古装","v":"古装"},{"n":"历史","v":"历史"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"德国","v":"德国"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "2":[{"key":"class","name":"类型","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春偶像","v":"青春偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"韩国","v":"韩国"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "3":[{"key":"class","name":"类型","value":[{"n":"全部","v":""},{"n":"选秀","v":"选秀"},{"n":"情感","v":"情感"},{"n":"访谈","v":"访谈"},{"n":"播报","v":"播报"},{"n":"旅游","v":"旅游"},{"n":"音乐","v":"音乐"},{"n":"美食","v":"美食"},{"n":"纪实","v":"纪实"},{"n":"曲艺","v":"曲艺"},{"n":"生活","v":"生活"},{"n":"游戏互动","v":"游戏互动"},{"n":"财经","v":"财经"},{"n":"求职","v":"求职"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "4":[{"key":"class","name":"类型","value":[{"n":"全部","v":""},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"},{"n":"少女","v":"少女"},{"n":"社会","v":"社会"},{"n":"原创","v":"原创"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]
+ };
+
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ const link = HOST + '/vodshow/' + tid + '-' + (extend.area || '') + '-' + (extend.by || 'time') + '-' + (extend.class || '') + '-----' + pg + '---' + (extend.year || '') + '/';//https://www.l0l.tv/vodshow/1-%E7%BE%8E%E5%9B%BD-hits-%E5%8A%A8%E4%BD%9C-%E8%8B%B1%E8%AF%AD-------2022.html
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('div.module-items div.module-item');
+ let videos = _.map(items, (item) => {
+ const it = $(item).find('a')[0];
+ const k = $(item).find('img:first')[0];
+ const remarks = $($(item).find('div.module-item-text')[0]).text().trim();
+ return {
+ vod_id: it.attribs.href,
+ vod_name: it.attribs.title,
+ vod_pic: k.attribs['data-src'],
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('div#page > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const html = await request( HOST + id);
+ const $ = load(html);
+ const vod = {
+ vod_id: id,
+ vod_name: $('h1:first').text().trim(),
+ vod_type: $('.video-info-aux a').text(),
+ vod_actor: $('.video-info-main a').text(),
+ vod_pic: $('.module-item-pic img:first').attr('data-src'),
+ vod_remarks : $('.stui-content__detail p:nth-child(5)').text() || '',
+ vod_content: $('.video-info-content span').text().trim(),
+ };
+ let playMap = {};
+ const tabs = $('div.module-tab-content > div.module-tab-item > span');
+ const playlists = $('div.sort-item');
+ _.each(tabs, (tab, i) => {
+ const from = tab.children[0].data;
+ let list = playlists[i];
+ list = $(list).find('a');
+ _.each(list, (it) => {
+ const title = $(it).text();
+ const playUrl = it.attribs.href;
+ if (title.length == 0) title = it.children[0].data.trim();
+ if (!playMap.hasOwnProperty(from)) {
+ playMap[from] = [];
+ }
+ playMap[from].push( title + '$' + playUrl);
+ });
+ });
+ vod.vod_play_from = _.keys(playMap).join('$$$');
+ const urls = _.values(playMap);
+ let vod_play_url = _.map(urls, (urlist) => {
+ return urlist.join('#');
+ });
+ vod.vod_play_url = vod_play_url.join('$$$');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+async function play(flag, id, flags) {
+ const link = HOST + id;
+ const html = await request(link);
+ const $ = load(html);
+ const js = JSON.parse($('script:contains(player_)').html().replace('var player_aaaa=',''));
+ const playUrl = unescape(js.url);
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ });
+}
+
+function base64Encode(text) {
+ return Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(text));
+}
+
+function base64Decode(text) {
+ return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text));
+}
+async function search(wd, quick, pg) {
+ if (pg <= 0) pg = 1;
+ let data = await request(HOST + '/vodsearch/' + wd + '----------' + pg + '---' + '.html');//https://www.l0l.tv/vodsearch/%E6%88%91----------2---.html
+ const $ = load(data);
+ const items = $('div.module-items div.module-search-item');
+ let videos = _.map(items, (item) => {
+ const it = $(item).find('a')[0];
+ const k = $(item).find('img:first')[0];
+ const remarks = $($(item).find('div.video-serial')[0]).text().trim();
+ return {
+ vod_id: it.attribs.href,
+ vod_name: it.attribs.title,
+ vod_pic: k.attribs['data-src'],
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('div#page > a:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/lbgs_book_open.js b/cat/js/lbgs_book_open.js
new file mode 100644
index 0000000..6c7649f
--- /dev/null
+++ b/cat/js/lbgs_book_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1CiARhsYmdzX29wZW4uanMsYXNzZXRzOi8vanMvbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybgxDcnlwdG8KZGF5anMCXwZrZXkMZGV2aWNlDnNpdGVLZXkQc2l0ZVR5cGUUYXBwVmVyc2lvbgphcHBVQQ5hcHBEYXRhGG5hdGl2ZUVuY29kZQRwawp4bmFtZRhiYXNlNjRFbmNvZGUYYmFzZTY0RGVjb2RlGmZvcm1hdFBsYXlVcmwOY2hhclN0cg5yYW5kU3RyFHJhbmREZXZpY2UOcmVxdWVzdAhpbml0CGhvbWUOaG9tZVZvZAxpbWdVcmwQY2F0ZWdvcnkMZGV0YWlsCHBsYXkMc2VhcmNoDGxhb2JhaQoxLjEuN7AJSEJrWkZCdDZkMzU5ZHhGa1lYdDZjWEVaZjN4b0dSa1VHeFU0ZEgxd2MzMWVlSGg2VlZKRlVWcGRjd0JCQ0hCNFpYeDNkWFYyZFhsakFYVjBlSDEyZWxGemNYaGxmSEJBWjA1WlRGQk1BMngwVzFwc2RVSnhTbjVoWVQ1blNXOTNRRkpCZEY5RVRWSUVER0o3WlVwYVgxZE9iMkpCYkdCT1Uxd01ZQTlPZWt4a2NGUkdYQXAzWG1oakJWVkVjbUlBVDJoeEN3d0xTVjE2WVIwWE9CSjllRXRqZkc1eERuOFNVRzVjZmxwOVQwRlFYR0Z2WlZ3RGNRRmhaSFFIQ0ZSblpnQmlmbVlOWW5oaVJnTjNVRXhWZWtJT1dWSm5DMXR1ZkhVRVNraytaa3Q3YTJKcWJGZ0haMVpUWFhGWGJnQitaVVJ0U1dGelYxRi9YMUJGUmw1eVQyUmZjbnBFQWdOV1VYUUxjM2h3VlhCTVQyRk1XbkJSRFFOQllYUllRamdOZlhBQUcwUmRSR2hHYm1aTUFYZHdVMWRBUkVwNFF3TUNZVjE3ZjJGMUIxNTNjVmhXVjNKYVNRQnlSSDFrY2dKcVhuQk1FZ2hBQmdGK0NBSVNCM0JCUGxGdlgwcGZVRlZBZFcxK2FGTUpVVk5kZlhwYmNXdGxVMzVNVm5OamNBWkFYQTFxQ2tCTGRsbFRZVk5BQVdoZldtTkFUQXhqZG1wZ1gzVjBRWEYwZUg4NFVFTndkWFZsZUhReUh4UVpGQnh4ZW4wV2FHZDdlSEJ5Rkg5OGJ4VWZGQmtVemFiYWNkZWZnaGprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkCZQJhAnQCchhmcm9tQ2hhckNvZGUUY2hhckNvZGVBdAZlbmMMQmFzZTY0EnN0cmluZ2lmeQhVdGY4CnBhcnNlCHRyaW0UcmVwbGFjZUFsbA5yZXBsYWNlAiACbgxyYW5kb20MSHVhd2VpCmJyYW5kHEhVQVdFSSBNYXRlIDIwCm1vZGVsDnJlbGVhc2UWdG9VcHBlckNhc2UOYnVpbGRJZAZyZXEMbWV0aG9kFFVzZXItQWdlbnQYaHR0cF9yZWZlcmVyDlJlZmVyZXIOaGVhZGVycwhkYXRhCHBvc3QIZm9ybRBwb3N0VHlwZQ5jb250ZW50CHNrZXkKc3R5cGUKbG9jYWwOaXNFbXB0eRZ0b0xvd2VyQ2FzZQRpZEBEYWx2aWsvMi4xLjAgKExpbnV4OyBVOyBBbmRyb2lkIAQ7IA4gQnVpbGQvAikEdWE6KE1vemlsbGEvNS4wIChMaW51eDsgQW5kcm9pZCDEATsgd3YpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wIENocm9tZS82OC4wLjM0NDAuNzAgTW9iaWxlIFNhZmFyaS81MzcuMzYpVGh0dHBzOi8vbGFncy5vc3MtY24taGFuZ3pob3UuYWxpeXVuY3MuY29tLwouanNvbhgkNmMxY2VmNzhhZT0IcnNhWBJSU0EvUEtDUzECLwJvAmkCcxBqc29uX3VybBxjYXQvaW5kZXguanNvbgp0aXRsZQUGUnt8CHR5cGUFe3yLVwxyZWR1Y2UKdHlwZXMCdghzb3J0BZJjj14GaG90CHB1c2gF2J6kiwXtcOiVBd6PfY8Mc2VyaWFsBYxb034OdHlwZV9pZBJ0eXBlX25hbWUOZmlsdGVycxRzdGFydHNXaXRoCGh0dHAOaW1nX3VybAJwEmNhdF9saXN0Lwpib29rcw5ib29rX2lkEmJvb2tfbmFtZQZwaWMQYm9va19waWMYYm9va19yZW1hcmtzCHBhZ2UMc2Nyb2xsEnBhZ2Vjb3VudApsaW1pdAp0b3RhbAhsaXN0CmNvbnQvCmF1ZGlvCHRpbWUSYm9va195ZWFyEmJvb2tfYXJlYQx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
\ No newline at end of file
diff --git a/cat/js/lbgs_book_open2.js b/cat/js/lbgs_book_open2.js
new file mode 100644
index 0000000..0c2311d
--- /dev/null
+++ b/cat/js/lbgs_book_open2.js
@@ -0,0 +1 @@
+//bbQ0FUT1CiARhsYmdzX29wZW4uanMYLi9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuDENyeXB0bwpkYXlqcwJfBmtleQxkZXZpY2UOc2l0ZUtleRBzaXRlVHlwZRRhcHBWZXJzaW9uCmFwcFVBDmFwcERhdGEYbmF0aXZlRW5jb2RlBHBrCnhuYW1lGGJhc2U2NEVuY29kZRhiYXNlNjREZWNvZGUaZm9ybWF0UGxheVVybA5jaGFyU3RyDnJhbmRTdHIUcmFuZERldmljZQ5yZXF1ZXN0CGluaXQIaG9tZQ5ob21lVm9kDGltZ1VybBBjYXRlZ29yeQxkZXRhaWwIcGxheQxzZWFyY2gMbGFvYmFpCjEuMS43sAlIQmtaRkJ0NmQzNTlkeEZrWVh0NmNYRVpmM3hvR1JrVUd4VTRkSDF3YzMxZWVIaDZWVkpGVVZwZGN3QkJDSEI0Wlh4M2RYVjJkWGxqQVhWMGVIMTJlbEZ6Y1hobGZIQkFaMDVaVEZCTUEyeDBXMXBzZFVKeFNuNWhZVDVuU1c5M1FGSkJkRjlFVFZJRURHSjdaVXBhWDFkT2IySkJiR0JPVTF3TVlBOU9la3hrY0ZSR1hBcDNYbWhqQlZWRWNtSUFUMmh4Q3d3TFNWMTZZUjBYT0JKOWVFdGpmRzV4RG44U1VHNWNmbHA5VDBGUVhHRnZaVndEY1FGaFpIUUhDRlJuWmdCaWZtWU5ZbmhpUmdOM1VFeFZla0lPV1ZKbkMxdHVmSFVFU2trK1prdDdhMkpxYkZnSFoxWlRYWEZYYmdCK1pVUnRTV0Z6VjFGL1gxQkZSbDV5VDJSZmNucEVBZ05XVVhRTGMzaHdWWEJNVDJGTVduQlJEUU5CWVhSWVFqZ05mWEFBRzBSZFJHaEdibVpNQVhkd1UxZEFSRXA0UXdNQ1lWMTdmMkYxQjE1M2NWaFdWM0phU1FCeVJIMWtjZ0pxWG5CTUVnaEFCZ0YrQ0FJU0IzQkJQbEZ2WDBwZlVGVkFkVzErYUZNSlVWTmRmWHBiY1d0bFUzNU1Wbk5qY0FaQVhBMXFDa0JMZGxsVFlWTkFBV2hmV21OQVRBeGpkbXBnWDNWMFFYRjBlSDg0VUVOd2RYVmxlSFF5SHhRWkZCeHhlbjBXYUdkN2VIQnlGSDk4YnhVZkZCa1V6YWJhY2RlZmdoamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSEpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OQJlAmECdAJyGGZyb21DaGFyQ29kZRRjaGFyQ29kZUF0BmVuYwxCYXNlNjQSc3RyaW5naWZ5CFV0ZjgKcGFyc2UIdHJpbRRyZXBsYWNlQWxsDnJlcGxhY2UCIAJuDHJhbmRvbQxIdWF3ZWkKYnJhbmQcSFVBV0VJIE1hdGUgMjAKbW9kZWwOcmVsZWFzZRZ0b1VwcGVyQ2FzZQ5idWlsZElkBnJlcQxtZXRob2QUVXNlci1BZ2VudBhodHRwX3JlZmVyZXIOUmVmZXJlcg5oZWFkZXJzCGRhdGEIcG9zdAhmb3JtEHBvc3RUeXBlDmNvbnRlbnQIc2tleQpzdHlwZQpsb2NhbA5pc0VtcHR5FnRvTG93ZXJDYXNlBGlkQERhbHZpay8yLjEuMCAoTGludXg7IFU7IEFuZHJvaWQgBDsgDiBCdWlsZC8CKQR1YTooTW96aWxsYS81LjAgKExpbnV4OyBBbmRyb2lkIMQBOyB3dikgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi80LjAgQ2hyb21lLzY4LjAuMzQ0MC43MCBNb2JpbGUgU2FmYXJpLzUzNy4zNilUaHR0cHM6Ly9sYWdzLm9zcy1jbi1oYW5nemhvdS5hbGl5dW5jcy5jb20vCi5qc29uGCQ2YzFjZWY3OGFlPQhyc2FYElJTQS9QS0NTMQIvAm8CaQJzEGpzb25fdXJsHGNhdC9pbmRleC5qc29uCnRpdGxlBQZSe3wIdHlwZQV7fItXDHJlZHVjZQp0eXBlcwJ2CHNvcnQFkmOPXgZob3QIcHVzaAXYnqSLBe1w6JUF3o99jwxzZXJpYWwFjFvTfg50eXBlX2lkEnR5cGVfbmFtZQ5maWx0ZXJzFHN0YXJ0c1dpdGgIaHR0cA5pbWdfdXJsAnASY2F0X2xpc3QvCmJvb2tzDmJvb2tfaWQSYm9va19uYW1lBnBpYxBib29rX3BpYxhib29rX3JlbWFya3MIcGFnZQxzY3JvbGwScGFnZWNvdW50CmxpbWl0CnRvdGFsCGxpc3QKY29udC8KYXVkaW8IdGltZRJib29rX3llYXISYm9va19hcmVhDHRlbGxlchRib29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
\ No newline at end of file
diff --git a/cat/js/lbgs_open.js b/cat/js/lbgs_open.js
new file mode 100644
index 0000000..0c2311d
--- /dev/null
+++ b/cat/js/lbgs_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1CiARhsYmdzX29wZW4uanMYLi9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuDENyeXB0bwpkYXlqcwJfBmtleQxkZXZpY2UOc2l0ZUtleRBzaXRlVHlwZRRhcHBWZXJzaW9uCmFwcFVBDmFwcERhdGEYbmF0aXZlRW5jb2RlBHBrCnhuYW1lGGJhc2U2NEVuY29kZRhiYXNlNjREZWNvZGUaZm9ybWF0UGxheVVybA5jaGFyU3RyDnJhbmRTdHIUcmFuZERldmljZQ5yZXF1ZXN0CGluaXQIaG9tZQ5ob21lVm9kDGltZ1VybBBjYXRlZ29yeQxkZXRhaWwIcGxheQxzZWFyY2gMbGFvYmFpCjEuMS43sAlIQmtaRkJ0NmQzNTlkeEZrWVh0NmNYRVpmM3hvR1JrVUd4VTRkSDF3YzMxZWVIaDZWVkpGVVZwZGN3QkJDSEI0Wlh4M2RYVjJkWGxqQVhWMGVIMTJlbEZ6Y1hobGZIQkFaMDVaVEZCTUEyeDBXMXBzZFVKeFNuNWhZVDVuU1c5M1FGSkJkRjlFVFZJRURHSjdaVXBhWDFkT2IySkJiR0JPVTF3TVlBOU9la3hrY0ZSR1hBcDNYbWhqQlZWRWNtSUFUMmh4Q3d3TFNWMTZZUjBYT0JKOWVFdGpmRzV4RG44U1VHNWNmbHA5VDBGUVhHRnZaVndEY1FGaFpIUUhDRlJuWmdCaWZtWU5ZbmhpUmdOM1VFeFZla0lPV1ZKbkMxdHVmSFVFU2trK1prdDdhMkpxYkZnSFoxWlRYWEZYYmdCK1pVUnRTV0Z6VjFGL1gxQkZSbDV5VDJSZmNucEVBZ05XVVhRTGMzaHdWWEJNVDJGTVduQlJEUU5CWVhSWVFqZ05mWEFBRzBSZFJHaEdibVpNQVhkd1UxZEFSRXA0UXdNQ1lWMTdmMkYxQjE1M2NWaFdWM0phU1FCeVJIMWtjZ0pxWG5CTUVnaEFCZ0YrQ0FJU0IzQkJQbEZ2WDBwZlVGVkFkVzErYUZNSlVWTmRmWHBiY1d0bFUzNU1Wbk5qY0FaQVhBMXFDa0JMZGxsVFlWTkFBV2hmV21OQVRBeGpkbXBnWDNWMFFYRjBlSDg0VUVOd2RYVmxlSFF5SHhRWkZCeHhlbjBXYUdkN2VIQnlGSDk4YnhVZkZCa1V6YWJhY2RlZmdoamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSEpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OQJlAmECdAJyGGZyb21DaGFyQ29kZRRjaGFyQ29kZUF0BmVuYwxCYXNlNjQSc3RyaW5naWZ5CFV0ZjgKcGFyc2UIdHJpbRRyZXBsYWNlQWxsDnJlcGxhY2UCIAJuDHJhbmRvbQxIdWF3ZWkKYnJhbmQcSFVBV0VJIE1hdGUgMjAKbW9kZWwOcmVsZWFzZRZ0b1VwcGVyQ2FzZQ5idWlsZElkBnJlcQxtZXRob2QUVXNlci1BZ2VudBhodHRwX3JlZmVyZXIOUmVmZXJlcg5oZWFkZXJzCGRhdGEIcG9zdAhmb3JtEHBvc3RUeXBlDmNvbnRlbnQIc2tleQpzdHlwZQpsb2NhbA5pc0VtcHR5FnRvTG93ZXJDYXNlBGlkQERhbHZpay8yLjEuMCAoTGludXg7IFU7IEFuZHJvaWQgBDsgDiBCdWlsZC8CKQR1YTooTW96aWxsYS81LjAgKExpbnV4OyBBbmRyb2lkIMQBOyB3dikgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi80LjAgQ2hyb21lLzY4LjAuMzQ0MC43MCBNb2JpbGUgU2FmYXJpLzUzNy4zNilUaHR0cHM6Ly9sYWdzLm9zcy1jbi1oYW5nemhvdS5hbGl5dW5jcy5jb20vCi5qc29uGCQ2YzFjZWY3OGFlPQhyc2FYElJTQS9QS0NTMQIvAm8CaQJzEGpzb25fdXJsHGNhdC9pbmRleC5qc29uCnRpdGxlBQZSe3wIdHlwZQV7fItXDHJlZHVjZQp0eXBlcwJ2CHNvcnQFkmOPXgZob3QIcHVzaAXYnqSLBe1w6JUF3o99jwxzZXJpYWwFjFvTfg50eXBlX2lkEnR5cGVfbmFtZQ5maWx0ZXJzFHN0YXJ0c1dpdGgIaHR0cA5pbWdfdXJsAnASY2F0X2xpc3QvCmJvb2tzDmJvb2tfaWQSYm9va19uYW1lBnBpYxBib29rX3BpYxhib29rX3JlbWFya3MIcGFnZQxzY3JvbGwScGFnZWNvdW50CmxpbWl0CnRvdGFsCGxpc3QKY29udC8KYXVkaW8IdGltZRJib29rX3llYXISYm9va19hcmVhDHRlbGxlchRib29rX2FjdG9yGmJvb2tfZGlyZWN0b3IQc3lub3BzaXMYYm9va19jb250ZW50Bm1hcBJwbGF5X2RhdGECIwVmTndTDnZvbHVtZXMIdXJscwIkAi0OcGxheV9pZAh1bml4Am0IbWQ1WAZhaWQGcGlkDmFwaV91cmwkZW5jb2RlVVJJQ29tcG9uZW50DHBhcmFtcw52ZXJzaW9uBnVybA5yZWZlcmVyDGhlYWRlchBzZWFyY2gwMA+kAwGmAwEAHagDAAMAqgMAAawDAAKuAwAOAAYBoAEAAAABHhKWAQCqAwAMrAMBDK4DAgywAwAJsgMBCbQDAgm2AwMJuAMECboDBQm8AwYJvgMHCcADCAnCAwkBxAMKAcYDCwHIAwwBygMNDcwDDgHOAw8B0AMQAdIDEQHUAxIB1gMTAdgDFAHaAxUB3AMWAYYCFwHeAxgB4AMZAagDGgEI6FK+Al8NAL4DXw4AvgRfDwC+BV8RAL4GXxIAvgdfEwC+CF8UAL4JXxUAvgpfFgC+C18XAL4MXxgAvg1fGQC+Dl8aAL4PXxsAvhBfHAC+EV8dACkE8QAAAOILXwQAv18FALNfBgAE8gAAAF8HAL9fCAALXwkAvQBfCgAE8wAAAF8LAL4BTeEAAABfDAAE9AAAAF8QACmkAwEEAQBUAgcUMTQ0OTY4Mjk0OQ5DBgEAAgICCAAAUgTqAwABAOwDAAEA7gMBACDwAwIBIGEAAL/HYQEAs8hiAQDP56PoPWIAADiTAAAAQvkAAADPQvoAAABiAQAkAQDQQvoAAABiAQDQ55wkAQCuJAEAnRFjAAAOYgEAkWMBAA7qvWIAACikAwEADkMGAcQDAQABBQEAKwHqAwABAKoDAAxlAABB+wAAAEH8AAAAQv0AAABlAABB+wAAAEH+AAAAQv8AAADPJAEAJQEApAMBAA5DBgHGAwEAAQYDADIB6gMAAQDCAwwAqgMADL4DCgjbZQEAQfsAAABB/gAAAEL9AAAAZQEAQfsAAABB/AAAAEL/AAAAzyQBACQBAGUCACMCAKQDAQAOQwYByAMCAAIEAAQ7AuoDAAEA7AMAAQDQQgABAAAkAABCAQEAAM+/JAIAQgIBAAC9AL0BM78kAgBCAgEAAL0CvQMzBAMBAAAkAgBCAAEAACUAAKQDAQAHDzwAfAA+AHwACjB8AAswB4IBAQEAOgAAAAgGAAAABAf1////CwAJIgAAAAkVAAAACQgAAAABPAAHAwAAAAE+AAcDAAAAAQowBwMAAAABCzAMAAoHCFwkfCMHTgEBACAAAAAIBgAAAAQH9f///wsACQgAAAABJAAHAwAAAAEjAAwACg5DBgHMAwIEAgUCAEkG6gMAAQDsAwABAO4DAAAA8AMBACCIBAABAOoDAwIgrgMCDMoDEAxhAQC/xwbQqxHpAw7QyLPJxc+j6DNhAwBlAABCBQEAALNiAQDoCWUBAOe0nuoIZQEA57sLniQCAMrDZQEAYgMAR53HkwLqysMopAMBAA5DBgHOAwAAAAYCAU0AzAMRAK4DAgwLBAYBAABMBwEAAAQIAQAATAkBAAC9AEwKAQAA27a0lu5CCwEAACQAAGUBAEIFAQAAuwu7YyQCAJ3btLSW7kILAQAAJAAAnUwMAQAAKKQDAQAHBDEwDmIGAdADAwADBQIAUQPqAwABAOwDAAEA7gMAAQC6AwgIvAMJCDgNAQAA0AvPTA4BAAALZQAATA8BAABlAQBBEAEAAEwRAQAATBIBAADREekDDgtMEwEAAAQUAQAAz6noCAQVAQAA6gK/TBYBAADui0EXAQAALqQDAQAOYgYB0gMBCAENDQDaAwnqAwABAOwDAAAA7gMAAQDqAwQAA+oDBgAg8AMAAgCIBAAFAOoDBwQw6gMIAAO0AwUItgMGCLADAwiyAwQIrgMCDM4DEgDMAxEAugMICNADEwC4AwcIxgMOAMADCwi8AwkIz0EYAQAAEWYAAA7PQRkBAAARZgEADgTZAAAAxzgaAQAAQkEAAABlAgDDJAIAi8zns6XoJmwaAAAAOJgAAABC/wAAAMQkAQARZgMADg7qC8lsBwAAAA7qAi9lBABCGwEAAGUDACQBABHofQ5eBQDsEWYDAA5lAwBeBgC7IO1CHAEAACQAAEMdAQAAZQMABB4BAABlAwBBCgEAAJ0EHwEAAJ1lAwBBCQEAAJ0EIAEAAJ1lAwBBDAEAAJ0EIQEAAJ1DIgEAADgaAQAAQkIAAABlAgDDOJgAAABC/QAAAGUDACQBACQDAIsOBCMBAABlAwBBCgEAAJ0EHwEAAJ1lAwBBCQEAAJ0EIAEAAJ1lAwBBDAEAAJ0EJAEAAJ0RZgcADmyuAAAAYQMAXggABEEAAAAEJQEAAGUJAJ0EJgEAAJ3ui8o4mAAAAEL/AAAAYgMAJAEAQRMBAABCXQAAAAQnAQAAJAEAwQS/wQVhBgDABH3qJ8EGwAU4KAEAAAQpAQAAs5a0lmIGALOWXgoAZQsA7bSWIgcAncEFgADo1w6DOJgAAABC/wAAAMAFJAEAEWYMAA5lDABBIgEAAAQqAQAAnWUJAJ1lBwCdEWYHAA4O6gzBB2wHAAAADuoCLwYupAMBAA5iBgHUAwEKAQgDAdADC+oDAAEA7AMBACDuAwEBIPADAQIgiAQBAyDqAwIEMOwDAwUg7gMDBiDWBAAAANgEAwcg2gQDCSDQAxMAvAMJCK4DAgxhAwBhAgBhAQBhAADbBEEAAABlAQBBLgEAAAQvAQAAne6LxziYAAAAQv8AAABiAAAkAQBBEwEAAMgmAADJC8phBABiAQB962EBwQRhCQBhCABhBgBhBQBiBABBMAEAAEICAQAABDEBAAC/JAIAwQULBDIBAABM2AAAAAQzAQAATDYAAADBBmUCAEI0AQAAYgQAQTUBAAC+ACYAACQDAMEHYgYAwAezR0E2AQAAQ+kAAABiBgDAB0NAAAAACwQ3AQAATNgAAAAEOAEAAEw2AAAABDkBAABM6QAAAMEIJgAAwQliCQBCOgEAAAsEOwEAAEwEAQAABFcAAABMNgEAACQBAA5iCQBCOgEAAAsEPAEAAEwEAQAABDkBAABMNgEAACQBAA5iCQBCOgEAAAsEPQEAAEwEAQAABD4BAABMNgEAACQBAA5iCQBCOgEAAAsEPwEAAEwEAQAABGkAAABMNgEAACQBAA5iCABiCQBDQAAAAGIDAGIGAEHpAAAAcWIGAGIIACYCAEliAgBCOgEAAAtiBgBB6QAAAExAAQAAYgUATEEBAAAkAQAOgABpnv7//w6DOJgAAABC/QAAAAtiAgBMHgAAAGIDAExCAQAAJAEALqQDAQAOQgYBAAIAAgQAACMC6gMAAQDsAwABAM9COgEAAAvQQTYAAABMBAEAANBBQAEAAEw2AQAAJAEADs8opAMBAA5iBgHWAwAAAAEAAAIABi6kAwEADkMGAdgDAQABAwEAHQHqAwABALwDCQjPQkMBAAAERAEAACQBAOgDzyhlAABBRQEAAM+dKKQDAQAOYgYB2gMEBgQIAwCiAgrqAwABAOwDAAEA7gMAAQDwAwABAIgEAQAg1gQBASDYBAECINoEAQMgjAUBBCDqAwIFMNADEwC8AwkI2AMXAGEEAGEDAGECAGEBAGEAALPQqRHoBA602A7SQTIBAAAR6QMOz8fSQTcBAAAR6QcOBDkBAADI2wRBAAAAZQEAQS4BAAAERwEAAJ1iAACdBCoBAACdYgEAnQQqAQAAndCdBCYBAACd7ovJOJgAAABC/wAAAGICACQBAEETAQAAyiYAAMEEYQUAYgMAQUgBAAB96kbBBWIEAEI6AQAAC2IFAEFJAQAATEkBAABiBQBBNgAAAExKAQAA3WIFAEFLAQAA7UxMAQAAYgUAQYgAAABMTQEAACQBAA6AAOi4DoM4mAAAAEL9AAAAC9BMTgEAALRiAwBBTwEAAKnoBtC0neoC0ExQAQAAvOcDTFEBAAAB/+D1BUxSAQAAYgQATFMBAAAkAQAupAMBAA5iBgHcAwEEAQQFAY0CBeoDAAEA7AMBACDuAwEBYPADAQJgiAQBAyDIAw8A0AMTALwDCQjYAxcArgMCDGEDAGECAGEBAGEAANwEQQAAAGUCAEEuAQAABFQBAACdz50EJgEAAJ3ui8c4mAAAAEL/AAAAYgAAJAEAQRMBAADIC7RMVQEAAGIBAEFJAQAATEkBAABiAQBBNgAAAExKAQAA3mIBAEFLAQAA7UxMAQAAv0xBAQAAYgEAQVYBAABMVwEAAL9MWAEAAGIBAEGIAAAATE0BAABiAQBBWQEAAExaAQAAv0xbAQAAYgEAQVwBAABMXQEAAMllBABCXgEAAGIBAEFfAQAAvgAkAgBCWwAAAARgAQAAJAEAymICAARhAQAAQ2IBAABiAgBiAwBDYwEAADiYAAAAQv0AAAALYgIAJgEATFMBAAAkAQAupAMBAA5DBgEAAQABAwMALQHqAwABAMgDAADwAwIJ7gMBCdtlAQBBSgEAAM9BNgAAAO4EZAEAAJ1lAgBBSQEAAJ0EZQEAAJ3PQWYBAACdKKQDAQAOYgYBhgICAAIBAAACAuoDAAEA7AMAAQAGLqQDAQAOYgYB3gMDBwMJCADBAgrqAwABAOwDAAEA7gMAAQDwAwAAAOoDAgAg7gMCAiCIBAABANgEAgMg1gQABADqAwMAA6wDAQy+AwoIxgMOAMADCwjQAxMAvAMJCLgDBwi6AwgIbCIBAABhBABhAgBhAQDQQl0AAAAEZQEAACQBAMdlAADsQmcBAAAkAADIYgEAYgEAuzycnhFjAQAOCwTvAAAATGgBAAA4aQEAADhpAQAABO8AAADDs0edw7RHne1lAQCdYgEAne1M9wAAAMOzR0xqAQAAw7RHTGsBAADJOCgBAAAEKQEAALOWs5Y4mAAAAEL9AAAAYgIAJAEAtJbdZQMA7bOWIgcAyl4EAAQUAQAAZQUAQWwBAAALOG0BAADG7UxuAQAAOG0BAABlBgDtTG8BAADvi8EEOJgAAABC/wAAAGIEACQBAEETAQAAwQU4mAAAAEL9AAAAC8AFQXABAABMcAEAAAtlBwBMDwEAAGUFAEFxAQAATBEBAABMcgEAACQBAA8uwQZsGgAAADiYAAAAQv0AAAAL0ExwAQAAJAEADy4vpAMBAA5iBgHgAwMHAwgIAMoCCuoDAAEA7AMAAQDuAwABAPADAQAgiAQBASDWBAAAANgEAQIg2gQAAwCMBQEEIOoDAgYwrAMBDL4DCgjGAw4AwAMLCNADEwC8AwkIuAMHCNgDFwBhBQBhAwBhAQBhAABlAADsQmcBAAAkAADHYgAAYgAAuzycnhFjAAAOCwTwAAAATGgBAAA4aQEAADhpAQAABHMBAADtZQEAnWIAAJ3tTPcAAACzTGoBAACzTGsBAADPTNgAAADIOCgBAAAEKQEAALOWs5Y4mAAAAEL9AAAAYgEAJAEAtJbdZQMA7bOWIgcAyV4EAAQUAQAAZQUAQWwBAAALOG0BAADF7UxuAQAAOG0BAABlBgDtTG8BAADvi8o4mAAAAEL/AAAAYgMAJAEAQRMBAADBBCYAAMEFYQYAwARBSAEAAH3qSMEGYgUAQjoBAAALYgYAQUkBAABMSQEAAGIGAEE2AAAATEoBAABeBwBiBgBBSwEAAO1MTAEAAGIGAEGIAAAATE0BAAAkAQAOgADotg6DOJgAAABC/QAAAAtiBQBMUwEAACQBAC6kAwEADkMGAagDAAAAAgcAMgDSAxQA1AMVANYDFgDaAxgA3AMZAN4DGwDgAxwAC9tM6QAAANxM6gAAAN1M6wAAAN5M7QAAAF4EAEzuAAAAXgUATO8AAABeBgBM8AAAACikAwEA
\ No newline at end of file
diff --git a/cat/js/libvio_open.js b/cat/js/libvio_open.js
new file mode 100644
index 0000000..5497847
--- /dev/null
+++ b/cat/js/libvio_open.js
@@ -0,0 +1 @@
+import{load,_}from"assets://js/lib/cat.js";var key="libvio",HOST="https://libvio.app",host="",siteKey="",siteType=0;const MOBILE_UA="Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36";async function request(reqUrl,agentSp){return(await req(reqUrl,{method:"get",headers:{"User-Agent":agentSp||MOBILE_UA,Referer:host}})).content}async function init(cfg){siteKey=cfg.skey,siteType=cfg.stype;cfg=await request(HOST),cfg=load(cfg);host=cfg("div.content-top > ul > li").find("a:first")[0].attribs.href}async function home(filter){var html=await request(host),html=load(html)("ul.stui-header__menu > li > a[href*=type]"),html=_.map(html,cls=>{var typeId=cls.attribs.href;return{type_id:typeId=typeId.substring(typeId.lastIndexOf("/")+1).replace(".html",""),type_name:cls.children[0].data}});return JSON.stringify({class:html,filters:{1:[{key:"area",name:"地区",value:[{n:"全部",v:""},{n:"中国大陆",v:"中国大陆"},{n:"中国香港",v:"中国香港"},{n:"中国台湾",v:"中国台湾"},{n:"美国",v:"美国"},{n:"法国",v:"法国"},{n:"英国",v:"英国"},{n:"日本",v:"日本"},{n:"韩国",v:"韩国"},{n:"德国",v:"德国"},{n:"泰国",v:"泰国"},{n:"印度",v:"印度"},{n:"意大利",v:"意大利"},{n:"西班牙",v:"西班牙"},{n:"加拿大",v:"加拿大"},{n:"其他",v:"其他"}]},{key:"year",name:"年份",value:[{n:"全部",v:""},{n:"2023",v:"2023"},{n:"2022",v:"2022"},{n:"2021",v:"2021"},{n:"2020",v:"2020"},{n:"2019",v:"2019"},{n:"2018",v:"2018"},{n:"2017",v:"2017"},{n:"2016",v:"2016"},{n:"2015",v:"2015"},{n:"2014",v:"2014"},{n:"2013",v:"2013"},{n:"2012",v:"2012"},{n:"2011",v:"2011"},{n:"2010",v:"2010"}]},{key:"lang",name:"语言",value:[{n:"全部",v:""},{n:"国语",v:"国语"},{n:"英语",v:"英语"},{n:"粤语",v:"粤语"},{n:"闽南语",v:"闽南语"},{n:"韩语",v:"韩语"},{n:"日语",v:"日语"},{n:"法语",v:"法语"},{n:"德语",v:"德语"},{n:"其它",v:"其它"}]},{key:"by",name:"排序",value:[{n:"时间",v:"time"},{n:"人气",v:"hits"},{n:"评分",v:"score"}]}],2:[{key:"area",name:"地区",value:[{n:"全部",v:""},{n:"中国大陆",v:"中国大陆"},{n:"中国台湾",v:"中国台湾"},{n:"中国香港",v:"中国香港"},{n:"韩国",v:"韩国"},{n:"日本",v:"日本"},{n:"美国",v:"美国"},{n:"泰国",v:"泰国"},{n:"英国",v:"英国"},{n:"新加坡",v:"新加坡"},{n:"其他",v:"其他"}]},{key:"year",name:"年份",value:[{n:"全部",v:""},{n:"2023",v:"2023"},{n:"2022",v:"2022"},{n:"2021",v:"2021"},{n:"2020",v:"2020"},{n:"2019",v:"2019"},{n:"2018",v:"2018"},{n:"2017",v:"2017"},{n:"2016",v:"2016"},{n:"2015",v:"2015"},{n:"2014",v:"2014"},{n:"2013",v:"2013"},{n:"2012",v:"2012"},{n:"2011",v:"2011"},{n:"2010",v:"2010"}]},{key:"lang",name:"语言",value:[{n:"全部",v:""},{n:"国语",v:"国语"},{n:"英语",v:"英语"},{n:"粤语",v:"粤语"},{n:"闽南语",v:"闽南语"},{n:"韩语",v:"韩语"},{n:"日语",v:"日语"},{n:"其它",v:"其它"}]},{key:"by",name:"排序",value:[{n:"时间",v:"time"},{n:"人气",v:"hits"},{n:"评分",v:"score"}]}],4:[{key:"area",name:"地区",value:[{n:"全部",v:""},{n:"中国",v:"中国"},{n:"日本",v:"日本"},{n:"欧美",v:"欧美"},{n:"其他",v:"其他"}]},{key:"year",name:"年份",value:[{n:"全部",v:""},{n:"2023",v:"2023"},{n:"2022",v:"2022"},{n:"2021",v:"2021"},{n:"2020",v:"2020"},{n:"2019",v:"2019"},{n:"2018",v:"2018"},{n:"2017",v:"2017"},{n:"2016",v:"2016"},{n:"2015",v:"2015"},{n:"2014",v:"2014"},{n:"2013",v:"2013"},{n:"2012",v:"2012"},{n:"2011",v:"2011"},{n:"2010",v:"2010"},{n:"2009",v:"2009"},{n:"2008",v:"2008"},{n:"2007",v:"2007"},{n:"2006",v:"2006"},{n:"2005",v:"2005"},{n:"2004",v:"2004"}]},{key:"lang",name:"语言",value:[{n:"全部",v:""},{n:"国语",v:"国语"},{n:"英语",v:"英语"},{n:"粤语",v:"粤语"},{n:"闽南语",v:"闽南语"},{n:"韩语",v:"韩语"},{n:"日语",v:"日语"},{n:"其它",v:"其它"}]},{key:"by",name:"排序",value:[{n:"时间",v:"time"},{n:"人气",v:"hits"},{n:"评分",v:"score"}]}],27:[{key:"by",name:"排序",value:[{n:"时间",v:"time"},{n:"人气",v:"hits"},{n:"评分",v:"score"}]}],15:[{key:"area",name:"地区",value:[{n:"全部",v:""},{n:"日本",v:"日本"},{n:"韩国",v:"韩国"}]},{key:"year",name:"年份",value:[{n:"全部",v:""},{n:"2023",v:"2023"},{n:"2022",v:"2022"},{n:"2021",v:"2021"},{n:"2020",v:"2020"},{n:"2019",v:"2019"},{n:"2018",v:"2018"},{n:"2017",v:"2017"},{n:"2016",v:"2016"},{n:"2015",v:"2015"},{n:"2014",v:"2014"},{n:"2013",v:"2013"},{n:"2012",v:"2012"},{n:"2011",v:"2011"},{n:"2010",v:"2010"}]},{key:"lang",name:"语言",value:[{n:"全部",v:""},{n:"国语",v:"国语"},{n:"英语",v:"英语"},{n:"粤语",v:"粤语"},{n:"闽南语",v:"闽南语"},{n:"韩语",v:"韩语"},{n:"日语",v:"日语"},{n:"其它",v:"其它"}]},{key:"by",name:"排序",value:[{n:"时间",v:"time"},{n:"人气",v:"hits"},{n:"评分",v:"score"}]}],16:[{key:"area",name:"地区",value:[{n:"全部",v:""},{n:"美国",v:"美国"},{n:"英国",v:"英国"},{n:"德国",v:"德国"},{n:"加拿大",v:"加拿大"},{n:"其他",v:"其他"}]},{key:"year",name:"年份",value:[{n:"全部",v:""},{n:"2023",v:"2023"},{n:"2022",v:"2022"},{n:"2021",v:"2021"},{n:"2020",v:"2020"},{n:"2019",v:"2019"},{n:"2018",v:"2018"},{n:"2017",v:"2017"},{n:"2016",v:"2016"},{n:"2015",v:"2015"},{n:"2014",v:"2014"},{n:"2013",v:"2013"},{n:"2012",v:"2012"},{n:"2011",v:"2011"},{n:"2010",v:"2010"}]},{key:"lang",name:"语言",value:[{n:"全部",v:""},{n:"国语",v:"国语"},{n:"英语",v:"英语"},{n:"粤语",v:"粤语"},{n:"闽南语",v:"闽南语"},{n:"韩语",v:"韩语"},{n:"日语",v:"日语"},{n:"其它",v:"其它"}]},{key:"by",name:"排序",value:[{n:"时间",v:"time"},{n:"人气",v:"hits"},{n:"评分",v:"score"}]}]}})}async function homeVod(){var html=await request(host+"/show/1--hits---------.html"),$=load(html),html=$("ul.stui-vodlist > li"),html=_.map(html,item=>{var a=$(item).find("a:first")[0],item=$($(item).find("span.pic-text")[0]).text().trim();return{vod_id:a.attribs.href.replace(/.*?\/detail\/(.*).html/g,"$1"),vod_name:a.attribs.title,vod_pic:a.attribs["data-original"],vod_remarks:item||""}});return JSON.stringify({list:html})}async function category(tid,pg,filter,extend){var tid=await request(host+"/show/"+tid+"-"+(extend.area||"")+"-"+(extend.by||"time")+"--"+(extend.lang||"")+"----"+(pg=pg<=0||void 0===pg?1:pg)+"---"+(extend.year||"")+".html"),$=load(tid),extend=$("ul.stui-vodlist > li"),tid=_.map(extend,item=>{var a=$(item).find("a:first")[0],item=$($(item).find("span.pic-text")[0]).text().trim();return{vod_id:a.attribs.href.replace(/.*?\/detail\/(.*).html/g,"$1"),vod_name:a.attribs.title,vod_pic:a.attribs["data-original"],vod_remarks:item||""}}),extend=0<$("ul.stui-page__item > li > a:contains(下一页)").length?parseInt(pg)+1:parseInt(pg);return JSON.stringify({page:parseInt(pg),pagecount:extend,limit:24,total:24*extend,list:tid})}async function detail(id){var html=await request(host+"/detail/"+id+".html"),$=load(html),html={vod_id:id,vod_name:$("h1:first").text().trim(),vod_type:$(".stui-content__detail p:first a").text(),vod_actor:$(".stui-content__detail p:nth-child(3)").text().replace("主演:",""),vod_pic:$(".stui-content__thumb img:first").attr("data-original"),vod_remarks:$(".stui-content__detail p:nth-child(5)").text()||"",vod_content:$("span.detail-content").text().trim()},playMap={},id=$("div.stui-pannel__head > h3[class*=iconfont]"),playlists=$("ul.stui-content__playlist"),id=(_.each(id,(tab,i)=>{var from=tab.children[0].data,tab=playlists[i],tab=$(tab).find("a");_.each(tab,it=>{var title=it.children[0].data,playUrl=it.attribs.href;0==title.length&&(title=it.children[0].data.trim()),playMap.hasOwnProperty(from)||(playMap[from]=[]),playMap[from].push(title+"$"+playUrl)})}),html.vod_play_from=_.keys(playMap).join("$$$"),_.values(playMap)),id=_.map(id,urlist=>urlist.join("#"));return html.vod_play_url=id.join("$$$"),JSON.stringify({list:[html]})}async function play(flag,id,flags){var html=(html=await request(host+id)).match(/r player_.*?=(.*?))[1],html=JSON.parse(html),url=html.url,from=html.from,next=html.link_next,id=html.id,html=html.nid,from=await request(host+"/static/player/"+from+".js"),from=(from=await request((from=from.match(/ src="(.*?)'/)[1])+url+"&next="+next+"&id="+id+"&nid="+html)).match(/var .* = '(.*?)'/)[1];return JSON.stringify({parse:0,url:from})}async function search(wd,quick){var videos=[];for(const vod of JSON.parse(await request(host+"/index.php/ajax/suggest?mid=1&wd="+wd+"&limit=50")).list)videos.push({vod_id:vod.id,vod_name:vod.name,vod_pic:vod.pic,vod_remarks:""});return JSON.stringify({list:videos,limit:50})}function __jsEvalReturn(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search}}export{__jsEvalReturn};
\ No newline at end of file
diff --git a/cat/js/lz_open.js b/cat/js/lz_open.js
new file mode 100644
index 0000000..5bb379d
--- /dev/null
+++ b/cat/js/lz_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1COARRsel9vcGVuLmpzGC4vbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybgxDcnlwdG8IbG9hZAJfDGppbmphMgZrZXkISE9TVA5zaXRlS2V5EHNpdGVUeXBlBFVBDnJlcXVlc3QIaW5pdAhob21lDmhvbWVWb2QQY2F0ZWdvcnkMZGV0YWlsCHBsYXkMc2VhcmNoBGx6Kmh0dHBzOi8vY2oubHppYXBpLmNvbZYCTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM18yXzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzEzLjAuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMQxyZXFVcmwOYWdlbnRTcAZyZXMGcmVxDG1ldGhvZBRVc2VyLUFnZW50DlJlZmVyZXIOaGVhZGVycw5jb250ZW50BmNmZwhza2V5CnN0eXBlDGZpbHRlcg5jbGFzc2VzEmZpbHRlck9iag50eXBlX2lkBTV1cV8SdHlwZV9uYW1lBf2PZ1IF/H56ggWoUitvBVNPsoAMY2F0ZUlkBXt8i1cFaFHokAJuAnYF7XdnUgVGlmdSBemXZ1IHJ2uOf2dSBS9uZ1IF8FNnUgXlZWdSB3dtFllnUgXwbGdSB6p+VV9HcgeoUlxPR3IHnFVnUkdyBzFyxWBHcgfReXteR3IHUGAWYEdyB2dSxWBHcgcYYolOR3IJNXVxX+OJ9IsF/Vb8fgUvbvx+B+mX5WX8fgcna45//H4F/VYrbwnlZemXqFIrbwkna45/qFIrbwUvbitvCXdtFlmoUitvBbONA3QF7nsDdAVRfwN0B69l+otLURJzdHJpbmdpZnkOZmlsdGVycwZ0aWQEcGcMZXh0ZW5kCGRhdGEMdmlkZW9zBnZvZApwYXJzZT4vaW5kZXgucGhwL2FqYXgvZGF0YT9taWQ9MSZ0aWQ9DCZwYWdlPRImbGltaXQ9MjAIbGlzdAhwdXNoDHZvZF9pZBB2b2RfbmFtZQ52b2RfcGljFnZvZF9yZW1hcmtzEHBhcnNlSW50CHBhZ2UScGFnZWNvdW50CmxpbWl0CnRvdGFsBGlkCGh0bWwCJBBwbGF5bGlzdDIvaW5kZXgucGh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
\ No newline at end of file
diff --git a/cat/js/maiyoux_open.js b/cat/js/maiyoux_open.js
new file mode 100644
index 0000000..0d4f09b
--- /dev/null
+++ b/cat/js/maiyoux_open.js
@@ -0,0 +1,98 @@
+import { Crypto, load, _ } from 'assets://js/lib/cat.js';
+/**
+ * 直播源
+ * author:Leospring
+ */
+
+let siteUrl = 'http://api.maiyoux.com:81/mf/';
+let siteKey = '';
+let siteType = 0;
+let cateList = {};
+async function request(reqUrl, postData, post) {
+
+ let res = await req(reqUrl, {
+ method: post ? 'post' : 'get',
+ data: postData || {},
+ postType: post ? 'form' : '',
+ });
+ let content = res.content;
+ return content;
+}
+
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+ if (cfg.ext) {
+ siteUrl = cfg.ext;
+ }
+ cateList = JSON.parse(await request(siteUrl + 'json.txt'));
+}
+
+async function home(filter) {
+ let classes = [];
+ Object.keys(cateList).forEach(function(key) {
+ classes.push({
+ type_id: key,
+ type_name: key,
+ });
+ });
+ return JSON.stringify({
+ class: classes,
+ // filters: filterObj
+ });
+}
+
+async function category(tid, pg, filter, ext) {
+ let videos = _.map(cateList[tid], (item) => {
+ return {
+ vod_id: item['address'],
+ vod_name: item['title'],
+ vod_pic: item['xinimg'],
+ vod_remarks: item['Number']
+ }
+ })
+ return JSON.stringify({
+ list: videos,
+ page: pg,
+ pagecount: 1,
+ total: videos.length
+ });
+}
+
+async function detail(id) {
+ try {
+ const res = JSON.parse(await request(siteUrl + id))['zhubo'];
+ let playUrls = _.map(res, (vod) => {
+ return vod.title + '$' + vod.address;
+ }).join('#');
+ const video = {
+ vod_play_from: 'Leospring',
+ vod_play_url: playUrls,
+ vod_content: '作者:Leospring 公众号:蚂蚁科技杂谈',
+ };
+ const list = [video];
+ const result = { list };
+ return JSON.stringify(result);
+ } catch (e) {
+ console.log('err', e);
+ }
+ return null;
+}
+
+async function play(flag, id, flags) {
+ let playUrl = id;
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ category: category,
+ detail: detail,
+ play: play,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/mayiya_open.js b/cat/js/mayiya_open.js
new file mode 100644
index 0000000..0028565
--- /dev/null
+++ b/cat/js/mayiya_open.js
@@ -0,0 +1 @@
+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gAGEAOgBjAG8AbgB0AGEAaQBuAHMAKAALTgBOdZgpABBwYXJzZUludAhwYWdlEnBhZ2Vjb3VudApsaW1pdAp0b3RhbAhsaXN0CGl0ZW0EaXQCaw5yZW1hcmtzCGZpbmQOYTpmaXJzdBJkaXY6Zmlyc3Qcc3Bhbi5wYWNrc2NvcmUIdGV4dAh0cmltDmF0dHJpYnMIaHJlZgx2b2RfaWQKdGl0bGUQdm9kX25hbWUaZGF0YS1vcmlnaW5hbA52b2RfcGljFnZvZF9yZW1hcmtzBGlkBnZvZA5wbGF5TWFwCHRhYnMScGxheWxpc3RzCHVybHMYdm9kX3BsYXlfdXJsEGgxOmZpcnN0NC5kZXRhaWxpbmZvIHA6bnRoLWNoaWxkKDMpEHZvZF90eXBlNC5kZXRhaWxpbmZvIHA6bnRoLWNoaWxkKDYpEnZvZF9hY3RvciguZGV0YWlscGljIGltZzpmaXJzdAhhdHRyBnNyYzQuZGV0YWlsaW5mbyBwOm50aC1jaGlsZCg5KRAudGp1cWluZxZ2b2RfY29udGVudBh1bCNwbGF5ID4gbGkaZGl2LnZpZGVvbGlzdAhlYWNoCGtleXMGJCQkGnZvZF9wbGF5X2Zyb20GdGFiAmkQY2hpbGRyZW4IZGF0YQJhDnBsYXlVcmwcaGFzT3duUHJvcGVydHkIcHVzaAx1cmxpc3QCIwhmbGFnBGpzCnBhcnNlMHNjcmlwdDpjb250YWlucyhwbGF5ZXJfKQ5yZXBsYWNlIHZhciBwbGF5ZXJfYWFhYT0GdXJsBHdkCnF1aWNrBi9jLwpwYWdlLwgvd2QvLmRpdi5sZWZ0bGlzdCBkaXYuc2VhcmNoEmltZzpmaXJzdBBkaXYubGlzdAZhbHQPpAMBpgMBABGoAwAEAKoDAAGsAwACrgMAA7ADAA4ABgGgAQAAAAESCVIAqgMADKwDAQyuAwIMsAMDDLIDAAm0AwEJtgMCCbgDAwm6AwQNvAMFAb4DBgHAAwcBwgMIAcQDCQHGAwoByAMLAcoDDAGoAw0BCOgvvgBfCQC+AV8KAL4CXwsAvgNfDAC+BF8NAL4FXw4AvgZfDwC+B18QAL4IXxEAKQTmAAAAXwQABOcAAABfBQC/XwYAs18HAAToAAAAXwgAKaQDAQoB+isrFxgACLACDmIGAbwDAgECBgIAOwPSAwABANQ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wAQAATAQBAAAEcQEAAEwFAQAACwQMAQAATAQBAAAEDQEAAEwFAQAACwQXAQAATAQBAAAEGAEAAEwFAQAACwQCAQAATAQBAAAEEAEAAEwFAQAACwQfAQAATAQBAAAEIAEAAEwFAQAACwRyAQAATAQBAAAEcwEAAEwFAQAACwR0AQAATAQBAAAEdQEAAEwFAQAACwR2AQAATAQBAAAEdwEAAEwFAQAACwR4AQAATAQBAAAEeQEAAEwFAQAACwR6AQAATAQBAAAEewEAAEwFAQAACwQbAQAATAQBAAAEHAEAAEwFAQAACwQOAQAATAQBAAAEDwEAAEwFAQAACwR8AQAATAQBAAAEfQEAAEwFAQAACwR+AQAATAQBAAAEfwEAAEwFAQAACwQpAQAATAQBAAAEKgEAAEwFAQAAJhUATEAAAAALBCsBAABM2QAAAAQsAQAATDYAAAALBAMBAABMBAEAAL9MBQEAAAsELQEAAEwEAQAABC4BAABMBQEAAAsELwEAAEwEAQAABDABAABMBQEAAAsEMQEAAEwEAQAABDIBAABMBQEAAAsEMwEAAEwEAQAABDQBAABMBQEAAAsEOwEAAEwEAQAABDwBAABMBQEAAAsEOQEAAEwEAQAABDoBAABMBQEAAAsENQEAAEwEAQAABDYBAABMBQEAAAsENwEAAEwEAQAABDgBAABMBQEAAAsEgAEAAEwEAQAABIEBAABMBQEAAAsEPwEAAEwEAQAABEABAABMBQEAAAsEQQEAAEwEAQAABEIBAABMBQEAAAsEKQEAAEwEAQAABEkBAABMBQEAACYNAExAAAAACwRKAQAATNkAAAAESwEAAEw2AAAACwQDAQAATAQBAAC/TAUBAAALvRhMBAEAAARMAQAATAUBAAALvRlMBAEAAARNAQAATAUBAAALvRpMBAEAAAROAQAATAUBAAALvRtMBAEAAARPAQAATAUBAAALvRxMBAEAAARQAQAATAUBAAALvR1MBAEAAARRAQAATAUBAAALvR5MBAEAAARSAQAATAUBAAALvR9MBAEAAARTAQAATAUBAAALvSBMBAEAAARUAQAATAUBAAALvSFMBAEAAARVAQAATAUBAAALvSJMBAEAAARWAQAATAUBAAALvSNMBAEAAARXAQAATAUBAAALvSRMBAEAAARYAQAATAUBAAALvSVMBAEAAARZAQAATAUBAAALvSZMBAEAAARaAQAATAUBAAALvSdMBAEAAARbAQAATAUBAAALvShMBAEAAARcAQAATAUBAAALvSlMBAEAAARdAQAATAUBAAALvSpMBAEAAAReAQAATAUBAAALvStMBAEAAARfAQAATAUBAAALvSxMBAEAAARgAQAATAUBAAALvS1MBAEAAARhAQAATAUBAAALvS5MBAEAAARiAQAATAUBAAALvS9MBAEAAARjAQAATAUBAAAmGQBMQAAAAAsEZAEAAEzZAAAABGUBAABMNgAAAAsEZgEAAEwEAQAABGcBAABMBQEAAAsEaAEAAEwEAQAABGkBAABMBQEAAAsEagEAAEwEAQAABGsBAABMBQEAACYDAExAAAAAJgQATPwAAAALBB4AAABM2QAAAAQCAQAATDYAAAALBAMBAABMBAEAAL9MBQEAAAsEggEAAEwEAQAABIMBAABMBQEAAAsEDgEAAEwEAQAABA8BAABMBQEAAAsEhAEAAEwEAQAABIUBAABMBQEAAAsEhgEAAEwEAQAABIcBAABMBQEAAAsEGQEAAEwEAQAABBoBAABMBQEAAAsEiAEAAEwEAQAABIkBAABMBQEAAAsEDAEAAEwEAQAABA0BAABMBQEAAAsEigEAAEwEAQAABIsBAABMBQEAAAsEIwEAAEwEAQAABCQBAABMBQEAAAsEEQEAAEwEAQAABBIBAABMBQEAAAsEjAEAAEwEAQAABI0BAABMBQEAAAsEjgEAAEwEAQAABI8BAABMBQEAAAsEkAEAAEwEAQAABJEBAABMBQEAAAsEkgEAAEwEAQAABJMBAABMBQEAAAsElAEAAEwEAQAABJUBAABMBQEAAAsElgEAAEwEAQAABJcBAABMBQEAAAsEmAEAAEwEAQAABJkBAABMBQEAAAsEKQEAAEwEAQAABCoBAABMBQEAACYTAExAAAAACwQrAQAATNkAAAAELAEAAEw2AAAACwQDAQAATAQBAAC/TAUBAAALBC0BAABMBAEAAAQuAQAATAUBAAALBDkBAABMBAEAAAQ6AQAATAUBAAALBJoBAABMBAEAAASbAQAATAUBAAALBCkBAABMBAEAAARJAQAATAUBAAAmBQBMQAAAAAsESgEAAEzZAAAABEsBAABMNgAAAAsEAwEAAEwEAQAAv0wFAQAAC70wTAQBAAAETAEAAEwFAQAAC70xTAQBAAAETQEAAEwFAQAAC70yTAQBAAAETgEAAEwFAQAAC70zTAQBAAAETwEAAEwFAQAAC700TAQBAAAEUAEAAEwFAQAAC701TAQBAAAEUQEAAEwFAQAAC702TAQBAAAEUgEAAEwFAQAAC703TAQBAAAEUwEAAEwFAQAAC704TAQBAAAEVAEAAEwFAQAAC705TAQBAAAEVQEAAEwFAQAAC706TAQBAAAEVgEAAEwFAQAAC707TAQBAAAEVwEAAEwFAQAAC708TAQBAAAEWAEAAEwFAQAAC709TAQBAAAEWQEAAEwFAQAAC70+TAQBAAAEWgEAAEwFAQAAC70/TAQBAAAEWwEAAEwFAQAAC71ATAQBAAAEXAEAAEwFAQAAC71BTAQBAAAEXQEAAEwFAQAAC71CTAQBAAAEXgEAAEwFAQAAC71DTAQBAAAEXwEAAEwFAQAAC71ETAQBAAAEYAEAAEwFAQAAC71FTAQBAAAEYQEAAEwFAQAAC71GTAQBAAAEYgEAAEwFAQAAC71HTAQBAAAEYwEAAEwFAQAAJhkATEAAAAALBGQBAABM2QAAAARlAQAATDYAAAALBGYBAABMBAEAAARnAQAATAUBAAALBGgBAABMBAEAAARpAQAATAUBAAALBGoBAABMBAEAAARrAQAATAUBAAAmAwBMQAAAACYEAEwAAQAACwQeAAAATNkAAAAEAgEAAEw2AAAACwQDAQAATAQBAAC/TAUBAAALBJwBAABMBAEAAASdAQAATAUBAAALBJ4BAABMBAEAAASfAQAATAUBAAALBKABAABMBAEAAAShAQAATAUBAAALBKIBAABMBAEAAASjAQAATAUBAAALBKQBAABMBAEAAASlAQAATAUBAAALBKYBAABMBAEAAASnAQAATAUBAAALBKgBAABMBAEAAASpAQAATAUBAAALBKoBAABMBAEAAASrAQAATAUBAAALBKwBAABMBAEAAAStAQAATAUBAAALBK4BAABMBAEAAASvAQAATAUBAAALBLABAABMBAEAAASxAQAATAUBAAALBLIBAABMBAEAAASzAQAATAUBAAALBLQBAABMBAEAAAS1AQAATAUBAAALBCkBAABMBAEAAAQqAQAATAUBAAAmDwBMQAAAAAsEKwEAAEzZAAAABCwBAABMNgAAAAsEAwEAAEwEAQA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
\ No newline at end of file
diff --git a/cat/js/mfk_open.js b/cat/js/mfk_open.js
new file mode 100644
index 0000000..26ec117
--- /dev/null
+++ b/cat/js/mfk_open.js
@@ -0,0 +1 @@
+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LBEMBAABMAAEAAAREAQAATAEBAAALBEUBAABMAAEAAARGAQAATAEBAAALBEcBAABMAAEAAARIAQAATAEBAAALBEkBAABMAAEAAARKAQAATAEBAAALBEsBAABMAAEAAARMAQAATAEBAAALBE0BAABMAAEAAAROAQAATAEBAAALBE8BAABMAAEAAARQAQAATAEBAAALBFEBAABMAAEAAARSAQAATAEBAAALBFMBAABMAAEAAARUAQAATAEBAAALBFUBAABMAAEAAARWAQAATAEBAAALBFcBAABMAAEAAARYAQAATAEBAAALBFkBAABMAAEAAARaAQAATAEBAAALBFsBAABMAAEAAARcAQAATAEBAAALBF0BAABMAAEAAAReAQAATAEBAAALBF8BAABMAAEAAARgAQAATAEBAAALBGEBAABMAAEAAARiAQAATAEBAAAmEgBMQAAAAAsEYwEAAEzZAAAABGQBAABMNgAAAAsE/wAAAEwAAQAAv0wBAQAAC70ATAABAAAEZQEAAEwBAQAAC70BTAABAAAEZgEAAEwBAQAAC70CTAABAAAEZwEAAEwBAQAAC70DTAABAAAEaAEAAEwBAQAAC70ETAABAAAEaQEAAEwBAQAAC70FTAABAAAEagEAAEwBAQAAC70GTAABAAAEawEAAEwBAQAAC70HTAABAAAEbAEAAEwBAQAAC70ITAABAAAEbQEAAEwBAQAAC70JTAABAAAEbgEAAEwBAQAAC70KTAABAAAEbwEAAEwBAQAAC70LTAABAAAEcAEAAEwBAQAAC70MTAABAAAEcQEAAEwBAQAAC70NTAABAAAEcgEAAEwBAQAAC70OTAABAAAEcwEAAEwBAQAAC70PTAABAAAEdAEAAEwBAQAAC70QTAABAAAEdQEAAEwBAQAAC70RTAABAAAEdgEAAEwBAQAAC70STAABAAAEdwEAAEwBAQAAJhQATEAAAAALBHgBAABM2QAAAAR5AQAATDYAAAALBP8AAABMAAEAAL9MAQEAAAsEegEAAEwAAQAABHsBAABMAQEAAAsEfAEAAEwAAQAABH0BAABMAQEAAAsEfgEAAEwAAQAABH8BAABMAQEAAAsEgAEAAEwAAQAABIEBAABMAQEAAAsEggEAAEwAAQAABIMBAABMAQEAAAsEhAEAAEwAAQAABIUBAABMAQEAAAsEhgEAAEwAAQAABIcBAABMAQEAAAsEiAEAAEwAAQAABIkBAABMAQEAAAsEigEAAEwAAQAABIsBAABMAQEAAAsEjAEAAEwAAQAABI0BAABMAQEAAAsEjgEAAEwAAQAABI8BAABMAQEAAAsEkAEAAEwAAQAABJEBAABMAQEAAAsEkgEAAEwAAQAABJMBAABMAQEAAAsElAEAAEwAAQAABJUBAABMAQEAAAsElgEAAEwAAQAABJcBAABMAQEAAAsEYQEAAEwAAQAABJgBAABMAQEAACYRAExAAAAACwSZAQAATNkAAAAEmgEAAEw2AAAACwT/AAAATAABAAC/TAEBAAALBJsBAABMAAEAAAScAQAATAEBAAALBJ0BAABMAAEAAASeAQAATAEBAAALBJ8BAABMAAEAAASgAQAATAEBAAALBKEBAABMAAEAAASiAQAATAEBAAALBKMBAABMAAEAAASkAQAATAEBAAALBKUBAABMAAEAAASmAQAATAEBAAALBKcBAABMAAEAAASoAQAATAEBAAALBKkBAABMAAEAAASqAQAATAEBAAALBKsBAABMAAEAAASsAQAATAEBAAALBK0BAABMAAEAAASuAQAATAEBAAALBK8BAABMAAEAAASwAQAATAEBAAALBLEBAABMAAEAAASyAQAATAEBAAALBLMBAABMAAEAAAS0AQAATAEBAAALBLUBAABMAAEAAAS2AQAATAEBAAALBLcBAABMAAEAAAS4AQAATAEBAAALBLkBAABMAAEAAAS6AQAATAEBAAALBLsBAABMAAEAAAS8AQAATAEBAAALBL0BAABMAAEAAAS+AQAATAEBAAALBL8BAABMAAEAAATAAQAATAEBAAALBMEBAABMAAEAAATCAQAATAEBAAALBMMBAABMAAEAAATEAQAATAEBAAALBMUBAABMAAEAAATGAQAATAEBAAALBMcBAABMAAEAAATIAQAATAEBAAALBMkBAABMAAEAAATKAQAATAEBAAALBMsBAABMAAEAAATMAQAATAEBAAALBM0BAABMAAEAAATOAQAATAEBAAALBM8BAABMAAEAAATQAQAATAEBAAAmHABMQAAAAAsE0QEAAEzZAAAABNIBAABMNgAAAAsE0wEAAEwAAQAABNQBAABMAQEAAAsE1QEAAEwAAQAABNYBAABMAQEAAAsE1wEAAEwAAQAABNgBAABMAQEAACYDAExAAAAAJgYATAEAAIALBB4AAABM2QAAAAT+AAAATDYAAAALBP8AAABMAAEAAL9MAQEAAAsE/gAAAEwAAQAABAIBAABMAQEAAAsEAwEAAEwAAQAABAQBAABMAQEAAAsEBQEAAEwAAQAABAYBAABMAQEAAAsEBwEAAEwAAQAABAgBAABMAQEAAAsECQEAAEwAAQAABAoBAABMAQEAAAsECwEAAEwAAQAABAwBAABMAQEAAAsEDQEAAEwAAQAABA4BAABMAQEAAAsEDwEAAEwAAQAABBABAABMAQEAAAsEEQEAAEwAAQAABBIBAABMAQEAAAsEEwEAAEwAAQAABBQBAABMAQEAAAsEFQEAAEwAAQAABBYBAABMAQEAAAsEFwEAAEwAAQAABBgBAABMAQEAAAsEGQEAAEwAAQAABBoBAABMAQEAAAsEGwEAAEwAAQAABBwBAABMAQEAAAsEHQEAAEwAAQAABB4BAABMAQEAAAsEHwEAAEwAAQAABCABAABMAQEAAAsEIQEAAEwAAQAABCIBAABMAQEAAAsEIwEAAEwAAQAABCQBAABMAQEAAAsEJQEAAEwAAQAABCYBAABMAQEAAAsEJwEAAEwAAQAABCgBAABMAQEAAAsEKQEAAEwAAQAABCoBAABMAQEAAAsEKwEAAEwAAQAABCwBAABMAQEAAAsELQEAAEwAAQAABC4BAABMAQEAAAsELwEAAEwAAQAABDABAABMAQEAAAsEMQEAAEwAAQAABDIBAABMAQEAAAsEMwEAAEwAAQAABDQBAABMAQEAAAsENQEAAEwAAQAABDYBAABMAQEAAAsENwEAAEwAAQAABDgBAABMAQEAAAsEOQEAAEwAAQAABDoBAABMAQEAAAsEOwEAAEwAAQAABDwBAABMAQEAAAsE2QEAAEwAAQAABNoBAABMAQEAACYgAAsE2wEAAEwAAQAABNwBAABMAQEAAEwgAACACwTdAQAATAABAAAE3gEAAEwBAQAATCEAAIALBN8BAABMAAEAAATgAQAATAEBAABMIgAAgAsE4QEAAEwAAQAABOIBAABMAQEAAEwjAACACwTjAQAATAABAAAE5AEAAEwBAQAATCQAAIALBOUBAABMAAEAAATmAQAATAEBAABMJQAAgAsEPQEAAEwAAQAABD4BAABMAQEAAEwmAACATEAAAAALBD8BAABM2QAAAARAAQAATDYAAAALBP8AAABMAAEAAL9MAQEAAAsEQQEAAEwAAQAABEIBAABMAQEAAAsEQwEAAEwAAQAABEQBAABMAQEAAAsERQEAAEwAAQAABEYBAABMAQEAAAsERwEAAEwAAQAABEgBAABMAQEAAAsESQEAAEwAAQAABEoBAABMAQEAAAsESwEAAEwAAQAABEwBAABMAQEAAAsETQEAAEwAAQAABE4BAABMAQEAAAsEUwEAAEwAAQAABFQBAABMAQEAAAsEVQEAAEwAAQAABFYBAABMAQEAAAsETwEAAEwAAQAABFABAABMAQEAAAsEVwEAAEwAAQAABFgBAABMAQEAAAsEWQEAAEwAAQAABFoBAABMAQEAAAsEWwEAAEwAAQAABFwBAABMAQEAAAsEUQEAAEwAAQAABFIBAABMAQEAAAsEXQEAAEwAAQAABF4BAABMAQEAAAsEXwEAAEwAAQAABGABAABMAQEAAAsEYQEAAEwAAQAABGIBAABMAQEAACYSAExAAAAACwRjAQAATNkAAAAEZAEAAEw2AAAACwT/AAAATAABAAC/TAEBAAALvRNMAAEAAARlAQAATAEBAAALvRRMAAEAAARmAQAATAEBAAALvRVMAAEAAARnAQAATAEBAAALvRZMAAEAAARoAQAATAEBAAALvRdMAAEAAARpAQAATAEBAAALvRhMAAEAAARqAQAATAEBAAALvRlMAAEAAARrAQAATAEBAAALvRpMAAEAAARsAQAATAEBAAALvRtMAAEAAARtAQAATAEBAAALvRxMAAEAAARuAQAATAEBAAALvR1MAAEAAARvAQAATAEBAAALvR5MAAEAAARwAQAATAEBAAALvR9MAAEAAARxAQAATAEBAAALvSBMAAEAAARyAQAATAEBAAALvSFMAAEAAARzAQAATAEBAAALvSJMAAEAAAR0AQAATAEBAAALvSNMAAEAAAR1AQAATAEBAAALvSRMAAEAAAR2AQAATAEBAAALvSVMAAEAAAR3AQAATAEBAAAmFABMQAAAAAsEeAEAAEzZAAAABHkBAABMNgAAAAsE/wAAAEwAAQAAv0wBAQAACwR6AQAATAABAAAEewEAAEwBAQAACwR8AQAATAABAAAEfQEAAEwBAQAACwR+AQAATAABAAAEfwEAAEwBAQAACwSAAQAATAABAAAEgQEAAEwBAQAACwSCAQAATAABAAAEgwEAAEwBAQAACwSEAQAATAABAAAEhQEAAEwBAQAACwSGAQAATAABAAAEhwEAAEwBAQAACwSIAQAATAABAAAEiQEAAEwBAQAACwSKAQAATAABAAAEiwEAAEwBAQAACwSMAQAATAABAAAEjQEAAEwBAQAACwRRAQAATAABAAAE5wEAAEwBAQAACwToAQAATAABAAAE6QEAAEwBAQAACwSSAQAATAABAAAEkwEAAEwBAQAACwSUAQAATAABAAAElQEAAEwBAQAACwSWAQAATAABAAAElwEAAEwBAQAACwRhAQAATAABAAAEmAEAAEwBAQAAJhEATEAAAAALBJkBAABM2QAAAASaAQAATDYAAAALBP8AAABMAAEAAL9MAQEAAAsEmwEAAEwAAQAABJwBAABMAQEAAAsEnQEAAEwAAQAABJ4BAABMAQEAAAsEnwEAAEwAAQAABKABAABMAQEAAAsEoQEAAEwAAQAABKIBAABMAQEAAAsEowEAAEwAAQAABKQBAABMAQEAAAsEpQEAAEwAAQAABKYBAABMAQEAAAsEpwEAAEwAAQAABKgBAABMAQEAAAsEqQEAAEwAAQAABKoBAABMAQEAAAsEqwEAAEwAAQAABKwBAABMAQEAAAsErQEAAEwAAQAABK4BAABMAQEAAAsErwEAAEwAAQAABLABAABMAQEAAAsEsQEAAEwAAQAABLIBAABMAQEAAAsEswEAAEwAAQAABLQBAABMAQEAAAsEtQEAAEwAAQAABLYBAABMAQEAAAsEtwEAAEwAAQAABLgBAABMAQEAAAsEuQEAAEwAAQAABLoBAABMAQEAAAsEuwEAAEwAAQAABLwBAABMAQEAAAsEvQEAAEwAAQAABL4BAABMAQEAAAsEvwEAAEwAAQAABMABAABMAQEAAAsEwQEAAEwAAQAABMIBAABMAQEAAAsEwwEAAEwAAQAABMQBAABMAQEAAAsExQEAAEwAAQAABMYBAABMAQEAAAsExwEAAEwAAQAABMgBAABMAQEAAAsEyQEAAEwAAQAABMoBAABMAQEAAAsEywEAAEwAAQAABMwBAABMAQEAAAsEzQEAAEwAAQAABM4BAABMAQEAAAsEzwEAAEwAAQAABNABAABMAQEAACYcAExAAAAACwTRAQAATNkAAAAE0gEAAEw2AAAACwTTAQAATAABAAAE1AEAAEwBAQAACwTVAQAATAABAAAE1gEAAEwBAQAACwTXAQAATAABAAAE2AEAAEwBAQAAJgMATEAAAAAmBgBMAgAAgAsEHgAAAEzZAAAABP4AAABMNgAAAAsE/wAAAEwAAQAAv0wBAQAACwTqAQAATAABAAAE6wEAAEwBAQAACwTsAQAATAABAAAE7QEAAEwBAQAACwTuAQAATAABAAAE7wEAAEwBAQAACwTwAQAATAABAAAE8QEAAEwBAQAACwTyAQAATAABAAAE8wEAAEwBAQAACwQZAQAATAABAAAEGgEAAEwBAQAACwT0AQAATAABAAAE9QEAAEwBAQAACwT2AQAATAABAAAE9wEAAEwBAQAACwT4AQAATAABAAAE+QEAAEwBAQAACwT6AQAATAABAAAE+wEAAEwBAQAACwT8AQAATAABAAAE/QEAAEwBAQAACwT+AQAATAABAAAE/wEAAEwBAQAACwQAAgAATAABAAAEAQIAAEwBAQAACwQCAgAATAABAAAEAwIAAEwBAQAACwQEAgAATAABAAAEBQIAAEwBAQAACwQGAgAATAABAAAEBwIAAEwBAQAACwQIAgAATAABAAAECQIAAEwBAQAACwQKAgAATAABAAAECwIAAEwBAQAACwQMAgAATAABAAAEDQIAAEwBAQAACwQOAgAATAABAAAEDwIAAEwBAQAACwQQAgAATAABAAAEEQIAAEwBAQAAJhYATEAAAAALBD8BAABM2QAAAARAAQAATDYAAAALBP8AAABMAAEAAL9MAQEAAAsEQQEAAEwAAQAABEIBAABMAQEAAAsEQwEAAEwAAQAABEQBAABMAQEAAAsERQEAAEwAAQAABEYBAABMAQEAAAsERwEAAEwAAQAABEgBAABMAQEAAAsESQEAAEwAAQAABEoBAABMAQEAAAsESwEAAEwAAQAABEwBAABMAQEAAAsETQEAAEwAAQAABE4BAABMAQEAAAsEUwEAAEwAAQAABFQBAABMAQEAAAsEVQEAAEwAAQAABFYBAABMAQEAAAsETwEAAEwAAQAABFABAABMAQEAAAsEVwEAAEwAAQAABFgBAABMAQEAAAsEWQEAAEwAAQAABFoBAABMAQEAAAsEWwEAAEwAAQAABFwBAABMAQEAAAsEUQEAAEwAAQAABFIBAABMAQEAAAsEXQEAAEwAAQAABF4BAABMAQEAAAsEXwEAAEwAAQAABGABAABMAQEAAAsEYQEAAEwAAQAABGIBAABMAQEAACYSAExAAAAACwRjAQAATNkAAAAEZAEAAEw2AAAACwT/AAAATAABAAC/TAEBAAALvSZMAAEAAARlAQAATAEBAAALvSdMAAEAAARmAQAATAEBAAALvShMAAEAAARnAQAATAEBAAALvSlMAAEAAARoAQAATAEBAAALvSpMAAEAAARpAQAATAEBAAALvStMAAEAAARqAQAATAEBAAALvSxMAAEAAARrAQAATAEBAAALvS1MAAEAAARsAQAATAEBAAALvS5MAAEAAARtAQAATAEBAAALvS9MAAEAAARuAQAATAEBAAALvTBMAAEAAARvAQAATAEBAAALvTFMAAEAAARwAQAATAEBAAALvTJMAAEAAARxAQAATAEBAAALvTNMAAEAAARyAQAATAEBAAALvTRMAAEAAARzAQAATAEBAAALvTVMAAEAAAR0AQAATAEBAAALvTZMAAEAAAR1AQAATAEBAAALvTdMAAEAAAR2AQAATAEBAAALvThMAAEAAAR3AQAATAEBAAAmFABMQAAAAAsEeAEAAEzZAAAABHkBAABMNgAAAAsE/wAAAEwAAQAAv0wBAQAACwR6AQAATAABAAAEewEAAEwBAQAACwR8AQAATAABAAAEfQEAAEwBAQAACwR+AQAATAABAAAEfwEAAEwBAQAACwSAAQAATAABAAAEgQEAAEwBAQAACwSCAQAATAABAAAEgwEAAEwBAQAACwSEAQAATAABAAAEhQEAAEwBAQAACwSGAQAATAABAAAEhwEAAEwBAQAACwSIAQAATAABAAAEiQEAAEwBAQAACwSKAQAATAABAAAEiwEAAEwBAQAACwSMAQAATAABAAAEjQEAAEwBAQAACwRRAQAATAABAAAE5wEAAEwBAQAACwToAQAATAABAAAE6QEAAEwBAQAACwSSAQAATAABAAAEkwEAAEwBAQAACwSUAQAATAABAAAElQEAAEwBAQAACwSWAQAATAABAAAElwEAAEwBAQAACwRhAQAATAABAAAEmAEAAEwBAQAAJhEATEAAAAALBJkBAABM2QAAAASaAQAATDYAAAALBP8AAABMAAEAAL9MAQEAAAsEmwEAAEwAAQAABJwBAABMAQEAAAsEnQEAAEwAAQAABJ4BAABMAQEAAAsEnwEAAEwAAQAABKABAABMAQEAAAsEoQEAAEwAAQAABKIBAABMAQEAAAsEowEAAEwAAQAABKQBAABMAQEAAAsEpQEAAEwAAQAABKYBAABMAQEAAAsEpwEAAEwAAQAABKgBAABMAQEAAAsEqQEAAEwAAQAABKoBAABMAQEAAAsEqwEAAEwAAQAABKwBAABMAQEAAAsErQEAAEwAAQAABK4BAABMAQEAAAsErwEAAEwAAQAABLABAABMAQEAAAsEsQEAAEwAAQAABLIBAABMAQEAAAsEswEAAEwAAQAABLQBAABMAQEAAAsEtQEAAEwAAQAABLYBAABMAQEAAAsEtwEAAEwAAQAABLgBAABMAQEAAAsEuQEAAEwAAQAABLoBAABMAQEAAAsEuwEAAEwAAQAABLwBAABMAQEAAAsEvQEAAEwAAQAABL4BAABMAQEAAAsEvwEAAEwAAQAABMABAABMAQEAAAsEwQEAAEwAAQAABMIBAABMAQEAAAsEwwEAAEwAAQAABMQBAABMAQEAAAsExQEAAEwAAQAABMYBAABMAQEAAAsExwEAAEwAAQAABMgBAABMAQEAAAsEyQEAAEwAAQAABMoBAABMAQEAAAsEywEAAEwAAQAABMwBAABMAQEAAAsEzQEAAEwAAQAABM4BAABMAQEAAAsEzwEAAEwAAQAABNABAABMAQEAACYcAExAAAAACwTRAQAATNkAAAAE0gEAAEw2AAAACwTTAQAATAABAAAE1AEAAEwBAQAACwTVAQAATAABAAAE1gEAAEwBAQAACwTXAQAATAABAAAE2AEAAEwBAQAAJgMATEAAAAAmBgBMAwAAgAsEHgAAAEzZAAAABP4AAABMNgAAAAsE/wAAAEwAAQAAv0wBAQAACwQnAQAATAABAAAEKAEAAEwBAQAACwQSAgAATAABAAAEEwIAAEwBAQAACwQUAgAATAABAAAEFQIAAEwBAQAACwQWAgAATAABAAAEFwIAAEwBAQAACwQYAgAATAABAAAEGQIAAEwBAQAACwQaAgAATAABAAAEGwIAAEwBAQAACwQcAgAATAABAAAEHQIAAEwBAQAACwQeAgAATAABAAAEHwIAAEwBAQAACwQgAgAATAABAAAEIQIAAEwBAQAACwQiAgAATAABAAAEIwIAAEwBAQAACwQkAgAATAABAAAEJQIAAEwBAQAACwQJAQAATAABAAAECgEAAEwBAQAACwQmAgAATAABAAAEJwIAAEwBAQAACwQKAgAATAABAAAECwIAAEwBAQAACwQoAgAATAABAAAEKQIAAEwBAQAACwQqAgAATAABAAAEKwIAAEwBAQAACwQsAgAATAABAAAELQIAAEwBAQAACwTsAQAATAABAAAE7QEAAEwBAQAACwQCAgAATAABAAAEAwIAAEwBAQAACwQuAgAATAABAAAELwIAAEwBAQAACwQFAQAATAABAAAEBgEAAEwBAQAACwQxAQAATAABAAAEMgEAAEwBAQAACwQhAQAATAABAAAEIgEAAEwBAQAACwQwAgAATAABAAAEMQIAAEwBAQAACwQyAgAATAABAAAEMwIAAEwBAQAACwQ0AgAATAABAAAENQIAAEwBAQAACwQ2AgAATAABAAAENwIAAEwBAQAACwQ4AgAATAABAAAEOQIAAEwBAQAACwQ6AgAATAABAAAEOwIAAEwBAQAACwQ9AQAATAABAAAEPgEAAEwBAQAAJh8ATEAAAAALBD8BAABM2QAAAARAAQAATDYAAAALBP8AAABMAAEAAL9MAQEAAAsEQQEAAEwAAQAABEIBAABMAQEAAAsEQwEAAEwAAQAABEQBAABMAQEAAAsERQEAAEwAAQAABEYBAABMAQEAAAsERwEAAEwAAQAABEgBAABMAQEAAAsESQEAAEwAAQAABEoBAABMAQEAAAsESwEAAEwAAQAABEwBAABMAQEAAAsETQEAAEwAAQAABE4BAABMAQEAAAsEUwEAAEwAAQAABFQBAABMAQEAAAsEVQEAAEwAAQAABFYBAABMAQEAAAsETwEAAEwAAQAABFABAABMAQEAAAsEVwEAAEwAAQAABFgBAABMAQEAAAsEWQEAAEwAAQAABFoBAABMAQEAAAsEWwEAAEwAAQAABFwBAABMAQEAAAsEUQEAAEwAAQAABFIBAABMAQEAAAsEXQEAAEwAAQAABF4BAABMAQEAAAsEXwEAAEwAAQAABGABAABMAQEAAAsEYQEAAEwAAQAABGIBAABMAQEAACYSAExAAAAACwRjAQAATNkAAAAEZAEAAEw2AAAACwT/AAAATAABAAC/TAEBAAALvTlMAAEAAARlAQAATAEBAAALvTpMAAEAAARmAQAATAEBAAALvTtMAAEAAARnAQAATAEBAAALvTxMAAEAAARoAQAATAEBAAALvT1MAAEAAARpAQAATAEBAAALvT5MAAEAAARqAQAATAEBAAALvT9MAAEAAARrAQAATAEBAAALvUBMAAEAAARsAQAATAEBAAALvUFMAAEAAARtAQAATAEBAAALvUJMAAEAAARuAQAATAEBAAALvUNMAAEAAARvAQAATAEBAAALvURMAAEAAARwAQAATAEBAAALvUVMAAEAAARxAQAATAEBAAALvUZMAAEAAARyAQAATAEBAAALvUdMAAEAAARzAQAATAEBAAALvUhMAAEAAAR0AQAATAEBAAALvUlMAAEAAAR1AQAATAEBAAALvUpMAAEAAAR2AQAATAEBAAALvUtMAAEAAAR3AQAATAEBAAAmFABMQAAAAAsEeAEAAEzZAAAABHkBAABMNgAAAAsE/wAAAEwAAQAAv0wBAQAACwR6AQAATAABAAAEewEAAEwBAQAACwR8AQAATAABAAAEfQEAAEwBAQAACwR+AQAATAABAAAEfwEAAEwBAQAACwSAAQAATAABAAAEgQEAAEwBAQAACwSCAQAATAABAAAEgwEAAEwBAQAACwSEAQAATAABAAAEhQEAAEwBAQAACwSGAQAATAABAAAEhwEAAEwBAQAACwSIAQAATAABAAAEiQEAAEwBAQAACwSKAQAATAABAAAEiwEAAEwBAQAACwSMAQAATAABAAAEjQEAAEwBAQAACwRRAQAATAABAAAE5wEAAEwBAQAACwToAQAATAABAAAE6QEAAEwBAQAACwSSAQAATAABAAAEkwEAAEwBAQAACwSUAQAATAABAAAElQEAAEwBAQAACwSWAQAATAABAAAElwEAAEwBAQAACwRhAQAATAABAAAEmAEAAEwBAQAAJhEATEAAAAALBJkBAABM2QAAAASaAQAATDYAAAALBP8AAABMAAEAAL9MAQEAAAsEmwEAAEwAAQAABJwBAABMAQEAAAsEnQEAAEwAAQAABJ4BAABMAQEAAAsEnwEAAEwAAQAABKABAABMAQEAAAsEoQEAAEwAAQAABKIBAABMAQEAAAsEowEAAEwAAQAABKQBAABMAQEAAAsEpQEAAEwAAQAABKYBAABMAQEAAAsEpwEAAEwAAQAABKgBAABMAQEAAAsEqQEAAEwAAQAABKoBAABMAQEAAAsEqwEAAEwAAQAABKwBAABMAQEAAAsErQEAAEwAAQAABK4BAABMAQEAAAsErwEAAEwAAQAABLABAABMAQEAAAsEsQEAAEwAAQAABLIBAABMAQEAAAsEswEAAEwAAQAABLQBAABMAQEAAAsEtQEAAEwAAQAABLYBAABMAQEAAAsEtwEAAEwAAQAABLgBAABMAQEAAAsEuQEAAEwAAQAABLoBAABMAQEAAAsEuwEAAEwAAQAABLwBAABMAQEAAAsEvQEAAEwAAQAABL4BAABMAQEAAAsEvwEAAEwAAQAABMABAABMAQEAAAsEwQEAAEwAAQAABMIBAABMAQEAAAsEwwEAAEwAAQAABMQBAABMAQEAAAsExQEAAEwAAQAABMYBAABMAQEAAAsExwEAAEwAAQAABMgBAABMAQEAAAsEyQEAAEwAAQAABMoBAABMAQEAAAsEywEAAEwAAQAABMwBAABMAQEAAAsEzQEAAEwAAQAABM4BAABMAQEAAAsEzwEAAEwAAQAABNABAABMAQEAACYcAExAAAAACwTRAQAATNkAAAAE0gEAAEw2AAAACwTTAQAATAABAAAE1AEAAEwBAQAACwTVAQAATAABAAAE1gEAAEwBAQAACwTXAQAATAABAAAE2AEAAEwBAQAAJgMATEAAAAAmBgBMBAAAgAsEHgAAAEzZAAAABP4AAABMNgAAAAsE/wAAAEwAAQAAv0wBAQAACwQ8AgAATAABAAAEPQIAAEwBAQAACwQ+AgAATAABAAAEPwIAAEwBAQAACwQfAQAATAABAAAEIAEAAEwBAQAACwRAAgAATAABAAAEQQIAAEwBAQAACwRCAgAATAABAAAEQwIAAEwBAQAACwREAgAATAABAAAERQIAAEwBAQAACwRGAgAATAABAAAERwIAAEwBAQAACwRIAgAATAABAAAESQIAAEwBAQAACwQ9AQAATAABAAAEPgEAAEwBAQAAJgoATEAAAAALBD8BAABM2QAAAARAAQAATDYAAAALBP8AAABMAAEAAL9MAQEAAAsESgIAAEwAAQAABEsCAABMAQEAAAsETAIAAEwAAQAABE0CAABMAQEAAAsETgIAAEwAAQAABE8CAABMAQEAAAsERwEAAEwAAQAABEgBAABMAQEAAAsESQEAAEwAAQAABEoBAABMAQEAAAsESwEAAEwAAQAABEwBAABMAQEAAAsETQEAAEwAAQAABE4BAABMAQEAAAsEUwEAAEwAAQAABFQBAABMAQEAAAsEVQEAAEwAAQAABFYBAABMAQEAAAsETwEAAEwAAQAABFABAABMAQEAAAsEVwEAAEwAAQAABFgBAABMAQEAAAsEWQEAAEwAAQAABFoBAABMAQEAAAsEWwEAAEwAAQAABFwBAABMAQEAAAsEUQEAAEwAAQAABFIBAABMAQEAAAsEXQEAAEwAAQAABF4BAABMAQEAAAsEYQEAAEwAAQAABGIBAABMAQEAACYRAExAAAAACwRjAQAATNkAAAAEZAEAAEw2AAAACwT/AAAATAABAAC/TAEBAAALvUxMAAEAAARlAQAATAEBAAALvU1MAAEAAARmAQAATAEBAAALvU5MAAEAAARnAQAATAEBAAALvU9MAAEAAARoAQAATAEBAAALvVBMAAEAAARpAQAATAEBAAALvVFMAAEAAARqAQAATAEBAAALvVJMAAEAAARrAQAATAEBAAALvVNMAAEAAARsAQAATAEBAAALvVRMAAEAAARtAQAATAEBAAALvVVMAAEAAARuAQAATAEBAAALvVZMAAEAAARvAQAATAEBAAALvVdMAAEAAARwAQAATAEBAAALvVhMAAEAAARxAQAATAEBAAALvVlMAAEAAARyAQAATAEBAAALvVpMAAEAAARzAQAATAEBAAALvVtMAAEAAAR0AQAATAEBAAALvVxMAAEAAAR1AQAATAEBAAALvV1MAAEAAAR2AQAATAEBAAALvV5MAAEAAAR3AQAATAEBAAAmFABMQAAAAAsEeAEAAEzZAAAABHkBAABMNgAAAAsE/wAAAEwAAQAAv0wBAQAACwR6AQAATAABAAAEewEAAEwBAQAACwR8AQAATAABAAAEfQEAAEwBAQAACwR+AQAATAABAAAEfwEAAEwBAQAACwSAAQAATAABAAAEgQEAAEwBAQAACwSCAQAATAABAAAEgwEAAEwBAQAACwSEAQAATAABAAAEhQEAAEwBAQAACwSGAQAATAABAAAEhwEAAEwBAQAACwSIAQAATAABAAAEiQEAAEwBAQAACwSKAQAATAABAAAEiwEAAEwBAQAACwSMAQAATAABAAAEjQEAAEwBAQAACwRRAQAATAABAAAE5wEAAEwBAQA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
\ No newline at end of file
diff --git a/cat/js/mgys_open.js b/cat/js/mgys_open.js
new file mode 100644
index 0000000..ba6628e
--- /dev/null
+++ b/cat/js/mgys_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1DdARhtZ3lzX29wZW4uanMYLi9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuDENyeXB0bwhsb2FkAl8Ga2V5CEhPU1QOc2l0ZUtleRBzaXRlVHlwZQRVQQ5yZXF1ZXN0CGluaXQIaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFpbAhwbGF5GGJhc2U2NEVuY29kZRhiYXNlNjREZWNvZGUMc2VhcmNoCG1neXMsaHR0cHM6Ly93d3cubW9ndXlzLnh5eooCTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyA5XzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjAxLjEuNDYgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzkuMCBNb2JpbGUvMTNFMjMwIFNhZmFyaS82MDEuMQxyZXFVcmwOYWdlbnRTcAZyZXMGcmVxDG1ldGhvZBRVc2VyLUFnZW50DlJlZmVyZXIOaGVhZGVycw5jb250ZW50BmNmZwhza2V5CnN0eXBlDGZpbHRlcg5jbGFzc2VzEmZpbHRlck9iag50eXBlX2lkBTV1cV8SdHlwZV9uYW1lBf2PZ1IF/H56ggWoUitvBWdSxWAFaFHokAJuAnYF5FPFiAVHWXteBahSXE8FMXLFYAWcVWdSBdF5e14FUGAWYAUYYolOBWZroE8FymCaYAWsYJF1BZJRaZYFr3JqfwhhcmVhBTBXOlMFJ1lGlgXpl/1WBY5//VYIeWVhcgV0Xv1OCGxhbmcF7YsAigX9Vu2LBfGC7YsFpHztiwf9lVdT7YsF6ZftiwXlZe2LBXZRg1sEYnkFkmOPXgX2ZfSVCHRpbWUFuk4UbAhoaXRzBcSLBlIKc2NvcmUFqFI7dQV+cL6WBap+VV8FmZkvbgXwU35uBeVlLGcF8Gz9VgXxgv1WB7BloFJhVwV2UdZOBdVs7YsFt1/tiwUJkMB5BcVgH2EFv4sIjAWtZKViBcVlOG4F85dQTgWOf9+YBap+nlsF8mZ6ggUfdTttCThuD2KSTqhSBSKNz34FQmxMgAXtcECIBahjBnQFHmQRewUdhImDBSFo7VYFOmcYYgXQj6hSBRFcdF4FEVxzWQU+eRpPBZ9TG1IFsk5QWwXKdnpmBbFS118Sc3RyaW5naWZ5DmZpbHRlcnMGdGlkBHBnDGV4dGVuZAhsaW5rCGh0bWwCJAppdGVtcwx2aWRlb3MOaGFzTW9yZQ5wZ0NvdW50Ei92b2RzaG93LwItCC0tLS0GLS0tCi5odG1sLGJvZHkgbGkubGVvLXZpZGVvLWl0ZW0GbWFwR3MAZQBjAHQAaQBvAG4ALgBsAGUAbwAtAHAAdAAtADMAMAAgAD4AIABhADoAYwBvAG4AdABhAGkAbgBzACgAC04ATnWYKQAQcGFyc2VJbnQIcGFnZRJwYWdlY291bnQKbGltaXQKdG90YWwIbGlzdAhpdGVtBGl0AmsOcmVtYXJrcwhmaW5kDmE6Zmlyc3QSaW1nOmZpcnN0KGRpdi5sZW8tdmlkZW8tcmVtYXJrCHRleHQIdHJpbQ5hdHRyaWJzCGhyZWYOcmVwbGFjZQQkMQx2b2RfaWQKdGl0bGUQdm9kX25hbWUaZGF0YS1vcmlnaW5hbA52b2RfcGljFnZvZF9yZW1hcmtzBGlkBnZvZA5wbGF5TWFwCHRhYnMScGxheWxpc3RzCHVybHMYdm9kX3BsYXlfdXJsFi92b2RkZXRhaWwvEGgxOmZpcnN0Pi5zdHVpLWNvbnRlbnRfX2RldGFpbCBwOmZpcnN0IGEQdm9kX3R5cGVILnN0dWktY29udGVudF9fZGV0YWlsIHA6bnRoLWNoaWxkKDMpBztOFG8a/xJ2b2RfYWN0b3I8LnN0dWktY29udGVudF9fdGh1bWIgaW1nOmZpcnN0CGF0dHJILnN0dWktY29udGVudF9fZGV0YWlsIHA6bnRoLWNoaWxkKDUpJnNwYW4uZGV0YWlsLWNvbnRlbnQWdm9kX2NvbnRlbnQsdWwubGVvLXNvdXJjZS1jaG8gPiBsaR51bC5sZW8tcGxheS1udW0IZWFjaAhrZXlzBiQkJBp2b2RfcGxheV9mcm9tBnRhYgJpEGNoaWxkcmVuCGRhdGECYQ5wbGF5VXJsHGhhc093blByb3BlcnR5CHB1c2gMdXJsaXN0AiMIZmxhZwRqcxIvdm9kcGxheS8KcGFyc2Uwc2NyaXB0OmNvbnRhaW5zKHBsYXllcl8pIHZhciBwbGF5ZXJfYWFhYT0QdW5lc2NhcGUGdXJsBmVuYwxCYXNlNjQIVXRmOAR3ZApxdWljaxYvdm9kc2VhcmNoLxQtLS0tLS0tLS0tD6QDAaY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ABBwBAABMAgEAAAsEHQEAAEwBAQAABB0BAABMAgEAAAsEHgEAAEwBAQAABB4BAABMAgEAAAsEHwEAAEwBAQAABB8BAABMAgEAACYIAExAAAAACwQgAQAATNgAAAAEIQEAAEw2AAAACwQiAQAATAEBAAAEIwEAAEwCAQAACwQkAQAATAEBAAAEJQEAAEwCAQAACwQmAQAATAEBAAAEJwEAAEwCAQAAJgMATEAAAAAmBQBMBAAAgAsEHgAAAEzYAAAABP8AAABMNgAAAAsEAAEAAEwBAQAAv0wCAQAACwQ1AQAATAEBAAAENQEAAEwCAQAACwQIAQAATAEBAAAECAEAAEwCAQAACwRBAQAATAEBAAAEQQEAAEwCAQAACwRCAQAATAEBAAAEQgEAAEwCAQAACwRDAQAATAEBAAAEQwEAAEwCAQAACwQOAQAATAEBAAAEDgEAAEwCAQAACwREAQAATAEBAAAERAEAAEwCAQAACwRFAQAATAEBAAAERQEAAEwCAQAACwQFAQAATAEBAAAEBQEAAEwCAQAACwRGAQAATAEBAAAERgEAAEwCAQAACwRHAQAATAEBAAAERwEAAEwCAQAACwQKAQAATAEBAAAECgEAAEwCAQAACwRIAQAATAEBAAAESAEAAEwCAQAACwRJAQAATAEBAAAESQEAAEwCAQAACwRKAQAATAEBAAAESgEAAEwCAQAACwRLAQAATAEBAAAESwEAAEwCAQAACwRMAQAATAEBAAAETAEAAEwCAQAACwRNAQAATAEBAAAETQEAAEwCAQAACwROAQAATAEBAAAETgEAAEwCAQAACwQxAQAATAEBAAAEMQEAAEwCAQAAJhUATEAAAAALBBABAABM2AAAAAQRAQAATDYAAAALBAABAABMAQEAAL9MAgEAAAsEEgEAAEwBAQAABBIBAABMAgEAAAsEEwEAAEwBAQAABBMBAABMAgEAAAsEFAEAAEwBAQAABBQBAABMAgEAAAsEKwEAAEwBAQAABCsBAABMAgEAAAsELAEAAEwBAQAABCwBAABMAgEAAAsELQEAAEwBAQAABC0BAABMAgEAAAsELgEAAEwBAQAABC4BAABMAgEAAAsELwEAAEwBAQAABC8BAABMAgEAAAsEMAEAAEwBAQAABDABAABMAgEAAAsEMQEAAEwBAQAABDEBAABMAgEAACYLAEx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
\ No newline at end of file
diff --git a/cat/js/mgys_open2.js b/cat/js/mgys_open2.js
new file mode 100644
index 0000000..61ddfaa
--- /dev/null
+++ b/cat/js/mgys_open2.js
@@ -0,0 +1,191 @@
+import { Crypto, load, _ } from './lib/cat.js';
+
+let key = 'mgys';
+let HOST = 'https://www.moguys.xyz';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+
+async function request(reqUrl, timeout = 60000) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': UA,
+ 'Referer': HOST
+ },
+ timeout: timeout,
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ let classes = [{"type_id":"1","type_name":"电影"},{"type_id":"2","type_name":"电视剧"},{"type_id":"3","type_name":"动漫"},{"type_id":"4","type_name":"综艺"}];
+ let filterObj = {
+ "1":[{"key":"class","name":"剧情","init":"","value":[{"n":"全部","v":""},{"n":"动作","v":"动作"},{"n":"爱情","v":"爱情"},{"n":"喜剧","v":"喜剧"},{"n":"科幻","v":"科幻"},{"n":"恐怖","v":"恐怖"},{"n":"战争","v":"战争"},{"n":"武侠","v":"武侠"},{"n":"剧情","v":"剧情"},{"n":"动画","v":"动画"},{"n":"惊悚","v":"惊悚"},{"n":"灾难","v":"灾难"},{"n":"悬疑","v":"悬疑"},{"n":"冒险","v":"冒险"},{"n":"犯罪","v":"犯罪"},{"n":"纪录","v":"纪录"},{"n":"古装","v":"古装"},{"n":"奇幻","v":"奇幻"}]},{"key":"area","name":"地区","init":"","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"韩国","v":"韩国"},{"n":"美国","v":"美国"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","init":"","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"lang","name":"语言","init":"","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"法语","v":"法语"},{"n":"德语","v":"德语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","init":"","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "2":[{"key":"class","name":"剧情","init":"","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"奇幻","v":"奇幻"},{"n":"动作","v":"动作"},{"n":"爱情","v":"爱情"},{"n":"喜剧","v":"喜剧"},{"n":"科幻","v":"科幻"},{"n":"恐怖","v":"恐怖"},{"n":"战争","v":"战争"},{"n":"武侠","v":"武侠"},{"n":"惊悚","v":"惊悚"},{"n":"悬疑","v":"悬疑"},{"n":"冒险","v":"冒险"},{"n":"犯罪","v":"犯罪"}]},{"key":"area","name":"地区","init":"","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"韩国","v":"韩国"},{"n":"美国","v":"美国"}]},{"key":"year","name":"年份","init":"","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"}]},{"key":"lang","name":"语言","init":"","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","init":"","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "3":[{"key":"class","name":"剧情","init":"","value":[{"n":"全部","v":""},{"n":"选秀","v":"选秀"},{"n":"情感","v":"情感"},{"n":"访谈","v":"访谈"},{"n":"播报","v":"播报"},{"n":"旅游","v":"旅游"},{"n":"音乐","v":"音乐"},{"n":"美食","v":"美食"},{"n":"纪实","v":"纪实"},{"n":"曲艺","v":"曲艺"},{"n":"生活","v":"生活"},{"n":"游戏互动","v":"游戏互动"},{"n":"财经","v":"财经"},{"n":"求职","v":"求职"}]},{"key":"area","name":"地区","init":"","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"韩国","v":"韩国"},{"n":"美国","v":"美国"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","init":"","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"}]},{"key":"lang","name":"语言","init":"","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","init":"","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "4":[{"key":"class","name":"剧情","init":"","value":[{"n":"全部","v":""},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"},{"n":"少女","v":"少女"},{"n":"社会","v":"社会"},{"n":"原创","v":"原创"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","init":"","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"韩国","v":"韩国"},{"n":"美国","v":"美国"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","init":"","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"}]},{"key":"lang","name":"语言","init":"","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","init":"","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]
+ };
+
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0) pg = 1;
+ let page = '';
+ if (pg > 1) {
+ page = pg;
+ }
+ const link = HOST + '/vodshow/' + tid + '-' + (extend.area || '') + '-' + (extend.by || '') + '-' + (extend.class || '') + '-' + (extend.lang || '') + '----' + page + '---' + (extend.year || '') + '.html';//https://www.moguys.xyz/vodshow/1-%E5%A4%A7%E9%99%86-time-%E5%8A%A8%E4%BD%9C-%E5%9B%BD%E8%AF%AD----2---2023.html
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('.leo-video-item');
+ let videos = _.map(items, (item) => {
+ const it = $(item).find('a:first')[0];
+ const img = $(item).find('img:first')[0];
+ const remarks = $($(item).find('div.leo-video-remark')[0]).text().trim();
+ return {
+ vod_id: it.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'),
+ vod_name: it.attribs.title,
+ vod_pic: img.attribs['data-original'],
+ vod_remarks: remarks || '',
+ };
+ });
+ const hasMore = $('a.leo-page-elem:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 24,
+ total: 24 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ const html = await request(HOST + '/voddetail/' + id + '.html');
+ const $ = load(html);
+ const vod = {
+ vod_id: id,
+ vod_name: $('font.leo-col-6').text(),
+ vod_type: $('.leo-detail-media li:contains(分类:) a:eq(1)').text().trim(),
+ vod_year: $('.leo-detail-media li:contains(年代:) a:first').text().trim(),
+ vod_area: $('.leo-detail-media li:contains(地区:) a:first').text().trim(),
+ vod_director: $('.leo-detail-media li:contains(导演:)').text().trim().substring(3),
+ vod_actor: $('.leo-detail-media li:contains(主演:)').text().trim().substring(3),
+ vod_pic: $('.leo-detail-cover').attr('data-original'),
+ vod_remarks : $('.leo-detail-media h1:first').text().split('|')[1] || '',
+ vod_content: $('#leo-detail-info').text().trim().substring(5).trim(),
+ };
+ let playMap = {};
+ let tabs = $('.leo-source-cho li');
+ let playlists = $('.leo-play-num');
+ _.each(tabs, (tab, i) => {
+ let from = tab.children[1].data;
+ let list = playlists[i];
+ list = $(list).find('a');
+ _.each(list, (it) => {
+ let title = 'HD';
+ if (it.children.length > 0) {
+ title = it.children[0].data.trim();
+ }
+ let playUrl = it.attribs.href.replace(/.*?\/vodplay\/(.*).html/g, '$1');
+ if (!playMap.hasOwnProperty(from)) {
+ playMap[from] = [];
+ }
+ playMap[from].push(title + '$' + playUrl);
+ });
+ });
+ vod.vod_play_from = _.keys(playMap).join('$$$');
+ let urls = _.values(playMap);
+ let vod_play_url = _.map(urls, (urlist) => {
+ return urlist.join('#');
+ });
+ vod.vod_play_url = vod_play_url.join('$$$');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ const link = HOST + '/vodplay/' + id + '.html';
+ const html = await request(link);
+ const $ = load(html);
+ let json = $('script:contains(player_aaaa)').text().replace('var player_aaaa=','');
+ let js = JSON.parse(json);
+ let playUrl = js.url;
+ if (js.encrypt == 1) {
+ playUrl = unescape(playUrl);
+ } else if (js.encrypt == 2) {
+ playUrl = unescape(base64Decode(playUrl));
+ }
+ let playHtml = await request('https://player.moguys.work/player/ec.php?code=pl&if=1&url=' + playUrl);
+ json = playHtml.match(/let ConFig = {([\w\W]*)},box/)[1];
+ const jsConfig = JSON.parse('{' + json.trim() + '}');
+ playUrl = decryptUrl(jsConfig);
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ header: {
+ 'User-Agent': UA,
+ }
+ });
+}
+
+function decryptUrl(jsConfig) {
+ const key = Crypto.enc.Utf8.parse('2890' + jsConfig.config.uid + 'tB959C');
+ const iv = Crypto.enc.Utf8.parse('2F131BE91247866E');
+ const mode = Crypto.mode.CBC;
+ const padding = Crypto.pad.Pkcs7;
+ const decrypted = Crypto.AES.decrypt(jsConfig.url, key, {
+ 'iv': iv,
+ 'mode': mode,
+ 'padding': padding
+ });
+ const decryptedUrl = Crypto.enc.Utf8.stringify(decrypted);
+ return decryptedUrl;
+}
+
+function base64Decode(text) {
+ return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text));
+}
+
+async function search(wd, quick, pg) {
+ let data = JSON.parse(await request(HOST + '/index.php/ajax/suggest?mid=1&limit=50&wd=' + wd)).list;
+ let videos = [];
+ for (const vod of data) {
+ videos.push({
+ vod_id: vod.id,
+ vod_name: vod.name,
+ vod_pic: vod.pic,
+ vod_remarks: '',
+ });
+ }
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/miku_open.js b/cat/js/miku_open.js
new file mode 100644
index 0000000..3e53886
--- /dev/null
+++ b/cat/js/miku_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1D5AxhtaWt1X29wZW4uanMsYXNzZXRzOi8vanMvbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybgpkYXlqcwxqaW5qYTIGVXJpAl8OXzB4NDlhNA5fMHgxMTlkEl8weDQ3N2NjNhJfMHgzNDFiMmQSXzB4NDU5ZWU0El8weDUxNWE4MBJfMHgyZTBiYTgSXzB4M2JiMTUwEl8weDRiODJiMhJfMHgxNWRhNDASXzB4MzYxMTM5El8weDE2NmYxMxJfMHgyNmVhNDMSXzB4MTIxM2QxEl8weDJhNDZkMhJfMHg1MjkwZjASXzB4MTMwYmNjEl8weDI5NzU1NhJfMHgzNDQ3ZTESXzB4ZjM1NGNjIDVZYUQ2WUdPNWJxajVMdUIYY3NPeXdvekR1dz09EHc3Y253N004KHc0RUxRc0tOd3BNUXdyYzNidz09IHc0c1B3NnJEcWh2Q2tzT1cgSEhYQ2xzTzhWc082V2c9PShJbGpEaWdIQ3ZpekRud2xTY01LTxB3NzR4WW1ZPThMRkhDbzhLSndvNG93NmpDcXo4ZkRndkRvdz09KHc1WVR3N2ZDcnczQ3VNT0lWZz09EFU4T2l3N0k9IFRNTzRKSDVPdzRQRG9nPT0gRzhLTlhNT0R3NkxDbXc9PSBaTU8yd29qRHRnckRtOEtCEHc2SW53N2d4GHdwSlF3NlhDakE9PTB3N292YW5Kb1hHNGV3N1RDaUFuQ3A4S24gU2NPeXdxSmpiV1ZTdzRNPYABdzRrRHc3bkRrc09ZV2hURG9jTy9VY0swdzYvRG4xbGRGY09OTlZ0N0psUVdZY09PdzRERGpFMDNBenZEanc0WCB3NHZDdGpUQ2dNS3d3cGdqEGRrZDNXUT09EEtjS3dMOEszGHdwbFVRY09SYnNPVThETUtRdzVzUnc3NHJTc09wWU1LR1FYL0NpTUtISHdvVENxem5EdUhMQ3RjSzd3NFUvd29IQ2tNT3RHei9DcWxZPVBjRTBqUThPUks4T2RYOEtPUDI4dHdvdkNwOEtIQ2NLRHc0bE9hdz09EElzSzF3NWtwGEt4d1RFeGZDbXc9PRB3cExDcXpBMyB3cEhDc3pyRHJrbkN1TUtvKHdxbkRxc08zd29KZndwa3J3NWM9KFV3N0R1TU9kd3BwZndvTld3N1E9IHc2VXlCY0tTTE1LemFBdGsYdzd3c2IxUkhRSDg9OEVzS2V3NHdCdzdrcGU4T2lVTUtRVm1MQ2tRPT0QSFdIQ2c4T08wT3NLa3c1SXp3cTNEcXNPcXdxVEN2Zz09WHdvOWdmY08xdzd6Q2w4T0xKWFhEaThLOFpWMEdNOEtXd3AvQ3ZtbkRoak0zIFFzT2l3NlBDc01LQVNVYz0wUkdURHNTVjdjTU9lQnNLWEhISENxZz09GFhNTzRNbVJHdzRRPRBHY0thUjhPUCB3by9DcWdrN3c1NFB3NU09KEtjTzJJbW5Eb2NLbnc3Rk9Udz09GHc3TENzMmQ2dzVJPRhQQi9EaE1PMUlVTT0gYWNLK2ZNT0J3N3pEdlE9PTBYV2JDajhLZ3dwSEN0c0ttdzVIQ3ZBPT0Qd3BoUVh3PT1wTzFncHc0TVlGbVBDbXNLREJzT2hHaGx3RE1PSnc3NWV3cDdDamNLS3c0YkNyY09xdzVQRHJNSzkgd3BuRGc4S25UamtzUEE9PQhLQmRuEEFIM0NtOE9UIElsakRpZ0hDclNyRGtnPT0YSFhYQ2dzT1Z3cTQ9IE84SzF3NUEyd3FMRHJzT20YdzVZVHc2ZkRvZz09KHdwSWJ3N25EbnNLcFJCM0R2TUsxKEM4S0hlOE9XdzduQ25uSENrZz09EFNzT3Z3cW89OHdwWk93NjNDbUVqQ3NnN0RsY09UVHcvQ3VzT1gQUG1YQ2c4T3gwdzVOa2JNT3V3ckhDajhPOE1UdkRpY09zKEczdkNsTU81d3FVS3c0ZkRvUT09MHc1UUl3NnJEcWd6Q2dzT2NTOE96Snc9PRBKc0s5dzRnPShGOEtFdzRvdHc3MDNjOE8xYUE9PRBPRmpEaVE9PShGOEtGdzVvM3c2Y2ljOE85ZGc9PRh3NU5CVHNPUmY4S0IgYkNmQ3BNS1N3cXpDZ2NLehh3N3dzYjFSWlNIRVggNVlhRDZZR081bzJGNWJxdBBiRUFuVmc9PTB3cW5Edk1PVXdwTnl3cHdzdzRQQ3BBPT0gWWxZOXc3VkZCV1RDbU1PShBmTUsrYzhPVRB3N0ExdzZZZzB3cTdEc2NPRndvUlp3b01TdzVuQ3BNSzggdzdjeHc1QXR3ckZNd3BocDB3NXpDb0NyQ2tjS0t3cGcyd3BiRHVnPT0Yd3A3RGxNSzdVUT09MHc1UEN1WEp0d296RGhnakN2Q25EbVE9PSBHVzNDZ01PRHdwUUN3NDQ9GHdwN0N0VkRDcUE9PSB3NVZ1Vk1LYXc2RERyRFU9KHdwWENyU3N6dzRJYnc1OUl3NWs9EEVNS0R3NEV6GEpoWERqc09OUEU4PShEY0tKUnNPSnc1VENtM2JDaHNPdSB3NDVsUU1LVHc3bkRnRFk9EFhUckRnQT09KFpNTzJ3b2pEdGdyRG04S0JWWDA5GGZWYzl3NDlPS1cwPRhXOE93dzVUQ3JzS1YgdzVOeVZNS1R3NTdEcGpRPSh3cjFiVGNLUUs4S2xHc094Znc9PSA1WVM4NllPZjU3T1Y1WitWIGJsWXpiTUtJYU1LVEhjT0wYd3JuQ3NRN0R1Zz09KEJNSzl3cUxEaFNyQ284S3lXM009KHc3d3NiMVJGVEhFVHc1bkNqeE09kAFPMWdwdzRNWUZtUENtc0tEQnNPaEdnbDVETU9JdzY1Znc1ZkNrTU9FdzVIQ284Szd3NUREcmNPdXdxUENzV25Ebk1Pa3dyOUEQTXNLM3c1dz0Yd3BYQ3BUbkR2dz09IEJYSENrY09Dd3E0Wnc1az0QdzdiQ3YyUjMYRDhLSldzT1J3NjQ9EFQ4T293clZVkAFaY09wdzRzdUY4S1hjQWZDa2NLOE5NS1l3NWxlS3NPWXdxUkhKVWZDbkN0cWRzT3p3clE5d3FUQ2hFbkRuY0tsYmo3RGxBPT0gWU1POHdwekRoUUxEbkE9PShYY08rdzRMQ2dzS2VYRlBEa1E9PRh3NlF0dzc4NERFZz0QWkV3cXc0ST0gT24vQ284T3RWc08yUmlFPRBCOEt0d3JaaiBQSFhDbHNPOFZzTzZXZz09KHc1UjRmY081d28zQ2ljT0NPRDg9GFdjT3d3NGpDdGc9PRh3cDFGVzhPR2FjS0cIMHg0MwhTUmVQCDB4MjgIJilYUxJfMHgzYTczYWESXzB4NDlhNDBmEl8weDExOWRmNBJfMHgxN2ZjZmQIcHVzaApzaGlmdBJfMHhlNWJhZTcMUEVGSWlPDHBTYXVWSgx5Z1dwdUQMbnVJZ21VEl8weDNlOTE4MRJfMHg1YzFhYmYSXzB4M2QwYTdkEl8weDQ5MjRjZiZyZXR1cm4gKGZ1bmN0aW9uKCkgQHt9LmNvbnN0cnVjdG9yKCJyZXR1cm4gdGhpcyIpKCApBCk7DHdpbmRvd4IBQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0IYXRvYhJfMHgyMTFmYTISXzB4MzEzMDhhEl8weDVhMjljMxJfMHgyZmJmMGQSXzB4NGMwNjlkEl8weDVkZWY1YhJfMHg1OWFjMDcOcmVwbGFjZQxjaGFyQXQOaW5kZXhPZhhmcm9tQ2hhckNvZGUSXzB4MThhOWU1El8weGYwYzlhNBJfMHg0NDVhYTYSXzB4ZjFhOTA4El8weDI4Y2Q2YRJfMHgyMTE4NWYSXzB4M2U5ZmEwEl8weDQ5MjY2MRJfMHgxOWQyYmESXzB4MzE5MzJhEl8weDUwYTg2MwIlBDAwFGNoYXJDb2RlQXQKc2xpY2UkZGVjb2RlVVJJQ29tcG9uZW50El8weDU4MDljYxJfMHg1NGIxMWISXzB4M2QzY2EzEl8weDI4N2MxMxJfMHgxZThhNTDsAU1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQ7IHYyKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvOTkuMC40ODQ0LjUxIFNhZmFyaS81MzcuMzYUVXNlci1BZ2VudAZyZXEOaGVhZGVycwgweDc3CE1LYyEMbWV0aG9kCGRhdGEIMHgyMghQV3RPCDB4NjYIWClGbRRzdGFydHNXaXRoAnsKcGFyc2UIMHg0NQhhZXNYCDB4MTcIMHgyNxJfMHg0M2Q0NjgIMHg1YwhFVG9iCnN0eXBlEl8weDJlMjBlNhJfMHgzZTYyNjISXzB4MzQ0MGU5El8weDQ4OWM4MxJfMHg1YmUwZDASXzB4MTk1NDc4El8weDVlYzM0ZhJfMHg0MGViYTQSXzB4OGMwMjM0El8weDE5NTMxNRJfMHgxMzgwMzgSXzB4NGQyZmU3El8weDZhYWUxMxJfMHgzNTAyOWQSXzB4M2U1OGI4CDB4MzQIKnZdMQgweDcyCDldMlkIMHgzYgg3Z1NeCDB4MmMIMHg2MggweDQ5CDFwUyUOdHlwZV9pZAgweDVmEnR5cGVfbmFtZQYweDQIakBZawgweDU5CEhOUCYFe3yLVwgweDU4CDB4NzMIM0k2QQUwVzpTCGFyZWEIMHg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AAAAE+QAAAAT6AAAABPsAAAAE/AAAAAT9AAAABP4AAAAE/wAAAAQAAQAABAEBAAAEAgEAAAQDAQAABAQBAAAEBQEAAAQGAQAABAcBAAAECAEAAAQJAQAABAoBAAAECwEAAAQMAQAAJiAABA0BAABMIAAAgAQOAQAATCEAAIAEDwEAAEwiAACABBABAABMIwAAgAQRAQAATCQAAIAEEgEAAEwlAACABBMBAABMJgAAgAQUAQAATCcAAIAEFQEAAEwoAACABBYBAABMKQAAgAQXAQAATCoAAIAEGAEAAEwrAACABBkBAABMLAAAgAQaAQAATC0AAIAEGwEAAEwuAACABBwBAABMLwAAgAQdAQAATDAAAIAEHgEAAEwxAACABB8BAABMMgAAgAQgAQAATDMAAIAEIQEAAEw0AACABCIBAABMNQAAgAQjAQAATDYAAIAEJAEAAEw3AACABCUBAABMOAAAgAQmAQAATDkAAIAEJwEAAEw6AACABCgBAABMOwAAgAQpAQAATDwAAIAEKgEAAEw9AACABCsBAABMPgAAgAQsAQAATD8AAIAELQEAAExAAACABC4BAABMQQAAgAQvAQAATEIAAIAEMAEAAExDAACABDEBAABMRAAAgAQyAQAATEUAAIAEMwEAAExGAACABDQBAABMRwAAgAQ1AQAATEgAAIAENgEAAExJAACABDcBAABMSgAAgAQ4AQAATEsAAIAEOQEAAExMAACABDoBAABMTQAAgAQ7AQAATE4AAIAEPAEAAExPAACABD0BAABMUAAAgAQ+AQAATFEAAIAEPwEAAExSAACABEABAABMUwAAgARBAQAATFQAAIAEQgEAAExVAACABEMBAABMVgAAgAREAQAATFcAAIAERQEAAExYAACABEYBAABMWQAAgARHAQAATFoAAIAESAEAAExbAACABEkBAABMXAAAgARKAQAATF0AAIAESwEAAExeAACABEwBAABMXwAAgARNAQAATGAAAIAETgEAAExhAACABE8BAABMYgAAgARQAQAATGMAAIAEUQEAAExkAACABFIBAABMZQAAgARTAQAATGYAAIAEVAEAAExnAACABFUBAABMaAAAgARWAQAATGkAAIAEVwEAAExqAACABFgBAABMawAAgARZAQAATGwAAIAEWgEAAExtAACABFsBAABMbgAAgARcAQA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AAQQBBkQBhAsAAQC0AwUMz2UAAATDAgAABDoCAADuSL0AvQEzvyQCAASFAQAASL0CvQMzvyQCAGUAAATEAgAABAoCAADuSL0EvQUzBKACAAAlAgCkAwEABxw8XC8/W14+XSsoPnwkKQe8AQECAFcAAAAIBgAAAAQH9f///wsAATwAHAQAAAAAAAAAAQAAAAEAAAABLwAKHAwAAAABAAAA////fwEAAAAVAgAAAD0APwD//woLAQkIAAAAAT4ABwEAAAAGDAEMAAoHECYuezEsNX07B2ABAQApAAAACAYAAAAEB/X///8LAAEmABwCAAAAAQAAAAUAAAABAAAAAwoBOwAMAAoHDFxzezIsfQeoAQEBAE0AAAAIBgAAAAQH9f///wsAHCwAAAACAAAA////fwEAAAAVCgAJAA0AIAAgAKAAoACAFoAWACAKICggKSAvIC8gXyBfIAAwADD//v/+CgwACg5DBgGoAwAAAAIHADIAwAMLAMIDDADEAw0AxgMOAMgDDwDOAxIA0AMTAAvbTOoBAADcTMUCAADdTMYCAADeTMcCAABeBABMyAIAAF4FAEzJAgAAXgYATMoCAAAopAMBAA==
\ No newline at end of file
diff --git a/cat/js/mimiju_open.js b/cat/js/mimiju_open.js
new file mode 100644
index 0000000..292b02d
--- /dev/null
+++ b/cat/js/mimiju_open.js
@@ -0,0 +1,144 @@
+import { Crypto, load, _, jinja2 } from './lib/cat.js';
+
+let key = 'mimiju';
+let url = 'https://mimiju.com';
+let siteKey = '';
+let siteType = 0;
+
+const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
+
+async function request(reqUrl, agentSp) {
+ let res = await req(reqUrl, {
+ method: 'get',
+ headers: {
+ 'User-Agent': agentSp || UA,
+ 'Referer': url
+ },
+ });
+ return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+ siteKey = cfg.skey;
+ siteType = cfg.stype;
+}
+
+async function home(filter) {
+ let classes = [{"type_id":20,"type_name":"短剧"}, {"type_id":21,"type_name":"电视剧"}];
+ let filterObj = {
+ "20": [{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+ "21": [{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]};
+ return JSON.stringify({
+ class: classes,
+ filters: filterObj,
+ });
+}
+
+async function homeVod() {}
+
+async function category(tid, pg, filter, extend) {
+ if (pg <= 0 || typeof(pg) == 'undefined') pg = 1;
+ const link = url + '/vodshow/' + tid + '--' + (extend.by || 'time') + '---' + '---' + pg + '---' + '.html';//https://mimiju.com/vodshow/20--hits---------.html
+ const html = await request(link);
+ const $ = load(html);
+ const items = $('ul.hl-vod-list > li');
+ let videos = _.map(items, (item) => {
+ const it = $(item).find('a:first')[0];
+ const remarks = $($(item).find('span.hl-lc-1')[0]).text().trim();
+ return {
+ vod_id: it.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'),
+ vod_name: it.attribs.title,
+ vod_pic: url + it.attribs['data-original'],
+ vod_remarks: remarks || '',};
+ });
+ const hasMore = $('ul.hl-page-wrap > li > a >span:contains(下一页)').length > 0;
+ const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
+ return JSON.stringify({
+ page: parseInt(pg),
+ pagecount: pgCount,
+ limit: 20,
+ total: 20 * pgCount,
+ list: videos,
+ });
+}
+
+async function detail(id) {
+ var html = await request(url + '/voddetail/' + id + '.html');
+ var $ = load(html);
+ var vod = {
+ vod_id: id,
+ vod_name: $('h1:first').text().trim(),
+ vod_type: $('.stui-content__detail p:first a').text(),
+ vod_actor: $('.stui-content__detail p:nth-child(3)').text().replace('主演:', ''),
+ vod_pic: $('.stui-content__thumb img:first').attr('data-original'),
+ vod_remarks: $('.stui-content__detail p:nth-child(5)').text() || '',
+ vod_content: $('span.detail-content').text().trim(),
+ };
+ var playMap = {};
+ var tabs = $('ul.hl-from-list > li >span');
+ var playlists = $('ul#hl-plays-list');
+ _.each(tabs, (tab, i) => {
+ var from = tab.children[0].data;
+ var list = playlists[i];
+ list = $(list).find('a');
+ _.each(list, (it) => {
+ var title = it.children[0].data;
+ var playUrl = it.attribs.href.replace(/\/vodplay\/(.*).html/g, '$1');
+
+ if (!playMap.hasOwnProperty(from)) {
+ playMap[from] = [];
+ }
+ playMap[from].push(title + '$' + playUrl);
+ });
+ });
+ vod.vod_play_from = _.keys(playMap).join('$$$');
+ var urls = _.values(playMap);
+ var vod_play_url = _.map(urls, (urlist) => {
+ return urlist.join('#');
+ });
+ vod.vod_play_url = vod_play_url.join('$$$');
+ return JSON.stringify({
+ list: [vod],
+ });
+}
+
+async function play(flag, id, flags) {
+ const link = url + '/vodplay/' + id + '.html';
+ const html = await request(link);
+ const $ = load(html);
+ const js = JSON.parse($('script:contains(player_a)').html().replace('var player_aaaa=', ''));
+ const playUrl = js.url;
+ return JSON.stringify({
+ parse: 0,
+ url: playUrl,
+ });
+}
+
+async function search(wd, quick) {
+ let data = JSON.parse(await request(url + '/index.php/ajax/suggest?mid=1&wd=' + wd)).list;
+ let videos = [];
+ for (const vod of data) {
+ videos.push({
+ vod_id: vod.id,
+ vod_name: vod.name,
+ vod_pic: vod.pic,
+ vod_remarks: '',
+ });
+ }
+ return JSON.stringify({
+ list: videos,
+ });
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ detail: detail,
+ play: play,
+ search: search,
+ };
+}
\ No newline at end of file
diff --git a/cat/js/mino_open.js b/cat/js/mino_open.js
new file mode 100644
index 0000000..8a01c1a
--- /dev/null
+++ b/cat/js/mino_open.js
@@ -0,0 +1 @@
+//bbQ0FUT1DBBBhtaW5vX29wZW4uanMsYXNzZXRzOi8vanMvbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybgxDcnlwdG8KZGF5anMMamluamEyBlVyaQJfDl8weDUyYzgOXzB4MmJjOBJfMHgzMTQwNTQSXzB4NTZlMjY2El8weDNjMzhlYxJfMHg1ZWVmYmQSXzB4MzAxN2EwEl8weDVkNWE4MxJfMHg1ODlkNmQSXzB4NWYzYTRjEl8weDE3MTEyZBJfMHhjNzNkZmQSXzB4MTcwNGY0El8weDViMmIzNhJfMHg2OGFjNDcSXzB4MWMwNjYyEl8weDM1Yjc1OBJfMHgyYWViMTcSXzB4MjA4ODI0El8weDU4ZGEyZRJfMHgxNmQzYTcSXzB4M2VhNjJjEl8weDMwNDhlORJfMHhkM2Q3YWQSXzB4MWVhN2UzEl8weDMxYzY0NRJfMHgxNDJhNTQSXzB4MzEyMmEwEl8weDFiZmFiNxJfMHg0YTEwNzISXzB4MzMzMWZkEl8weDE5NjY3OBJfMHgyZDg0M2USXzB4MTE1OTEyEl8weDQyYjgzNhJfMHhhZTkzZGQSXzB4MzAyZjc0El8weDM5MjRiORB2b2RfeWVhcg52b2Rfc3ViDHlaU0RLVRZwbGF5ZXJfaW5mbxh2b2RfcGxheV91cmw4L2FwcHRvdjUvdjEvdXNlci9nZXRVc2VySW5mbxRyZXBsYWNlQWxsEnN0cmluZ2lmeRJzdWJzdHJpbmcQTm53OUFjT08IdHJpbQhlYWNoFnZvZF9jb250ZW50CGE5VWUIeFsjJiB3NHZDdDhLRHdvekNsZz09FnZvZF9yZW1hcmtzCnNsaWNlDGh0dHBzOgxleHRlbmQIa2V5cxRjaGFyQ29kZUF0BjB4NAhkYXRhBjB4NUomcGFnZVNpemU9MjEmX19wbGF0Zm9ybT1hbmRyb2lkJnNpZ249EnZvZF9hY3RvcgwmcGFnZT0IdzcxZg5mb3JFYWNoCHB1c2gQL2FwcHRvdjUKc2NvcmUGa2V5SEswUENueFRDaDhLSkk4S1FWTU9udzdIQ29qL0NxUURDdWc9PRRzdGFydHNXaXRoEHBhZ2VTaXplCGNlaWwISGdNMw5oZWFkZXJzBmVuYwYweDM0L2FwcHRvdjUvdjEvdm9kL2dldFZvZD9pZD0Ic2tleQp1c2VyMQhoaXRzFnRvVXBwZXJDYXNlMi9hcHB0b3Y1L3YxL3VzZXIvcmVnaXN0ZXJYdzVURGg4S2d3NEhDdWNLdlIySERyejBkd3FQQ3NNT2F3NEV6d28xMHdxaz0MS1FCZ1hCCGxhbmcMQmFzZTY0DmNvbnRlbnQMZG9tYWluKmh0dHBzOi8vcG8uY2F0dm9kLnRvcAhwYWdlCE4pbmwcaGFzT3duUHJvcGVydHkWdG9Mb3dlckNhc2UMY2hhckF0CGUwaEUSeWVhcl9saXN0DGlMUXhCTApwYXJzZQ52b2RfcGljci9hcHB0b3Y1L3YxL2NvbmZpZy9nZXQ/cD1hbmRyb2lkJl9fcGxhdGZvcm09YW5kcm9pZCZzaWduPSZyZXR1cm4gKGZ1bmN0aW9uKCkgCnN0eXBlBjB4MQxiRWZLa3I4YkVUQ244T2VSOEtBd28vQ2p4ckR0Q0REclZnPQhodHRwCm9yZGVyDnJlZmVyZXIgWjN3MUJNS1lLZ05hdzZZPQ51c2VyX2lkDFNRamV0URR1c2VyLWFnZW50DmluZGV4T2YIdXJscwxlcE1YeGQSdHlwZV9uYW1lDmRldmljZTEadm9kX3BsYXlfbGlzdAhzaWduDmNvbnNvbGUOIEJ1aWxkLwpzaGlmdAg5bVZBDnJlcGxhY2UGMHgwEHZvZF9uYW1lBm1hcHBlVVhDbWNLb3c3WENpbVZXWEVuQ3BYbkRuOE9vTk1LWndxakNoc09IVUI0Q0tsWERuc09ld3BaNxh2b2RfZGlyZWN0b3IIYXJlYRJ2b2RfY2xhc3MaZ2V0X2hvbWVfY2F0ZQptb2RlbAhVdGY4DHZvZF9pZAZwd2QOYW5kcm9pZApsYWJlbDImX19wbGF0Zm9ybT1hbmRyb2lkJnNpZ249emFiYWNkZWZnaGprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkKdG90YWwIdGltZQhsYUNyOC9hcHB0b3Y1L3YxL3NlYXJjaC9saXN0cz93ZD2AAWFjS3FTc08wUzNmRHVsekNtQ1hEaDhLRmNNS3J3cExEbXNPc1pjS3didzFld29yRG9UWTBLVWpDblgvQ2d3PT0IeWVhcgp0b2tlbgYweDIyP19fcGxhdGZvcm09YW5kcm9pZCZzaWduPQYkJCQIYXRvYg50eXBlX2lkMHdxODZ3NzNDbU1PcEhjT2V3NkhDdXl3PQhjYXRlDmVuYWJsZWQIamhtcxJhcmVhX2xpc3QGdXJsDHZhUk1jRQ5pc0VtcHR5DGNvbmZpZxJsYW5nX2xpc3QGIjoiQHt9LmNvbnN0cnVjdG9yKCJyZXR1cm4gdGhpcyIpKCApHEhVQVdFSSBNYXRlIDQwDnJlbGVhc2WCAUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89DHhJVVlacghtaW5vBmxvZxRFTkNSWVBUSU9OGGZyb21DaGFyQ29kZQgweDY2eEVVakNpbWRwdzZWZ1FzT3R3N2ZDZ2NLRVdXRlBNQW91dzdFRnc3dkN0OE8vZmd3dXc2WVBJTUtTd3B0dggweDIyCDB4NGQIMHgzYwgweDkwBjB4YwgweDIwCDB4N2IIMHg4NAgweDdhCDB4ODYIMHg0YggweDUwCDRoKGoIMHgzOQgweDU5CG9wRioIMHg0OBJfMHg1YjBmMTISXzB4NTJjODNlEl8weDJiYzhmYRJfMHg0MDA3MzkSXzB4MWQxOGI0El8weDIzODgwNRJfMHgxY2I4ZWMSXzB4NTJkNjlkCDB4OGMIMHgzNhJfMHgxMDQxNGYSXzB4NTY2OWU3El8weDIxMDIzMhJfMHgzODA2NzIQXzB4ZTU1ZWMIMHgyMQgweDJmCDB4MWEGMHhkEl8weDVhOWQ5MhJfMHg0Yzc3OTYSXzB4ZmM4NjAyCDB4NjQIMHg1MxJfMHgyY2VmYTMSXzB4MTIwNmZhCDB4MWUIMHg2MQQpOwx3aW5kb3cSXzB4M2NlOWU5El8weDUzNDczNRJfMHg1MGZiNzESXzB4MjUwZmFmEl8weDU3MTY0MRJfMHg0ZTJkOWMQXzB4Y2JiNDgIMHgxNwgweDJkCDB4NjkSXzB4Mjk2NDYzEl8weDU3ODgxMhJfMHg0ZmMyOTcSXzB4MmE3YWI2El8weDhmMzRlOBJfMHg0MTUyYmISXzB4M2M1YmI1El8weGMyZDg2YhJfMHgxZmQ5MjcSXzB4MTM1MjVjEl8weDQyNzkxYQgweDI3AiUEMDAIMHg4MwgweDczCDB4N2YkZGVjb2RlVVJJQ29tcG9uZW50El8weDQxMjgyNRJfMHgyOTYwYWESXzB4NWZkM2Y1El8weDFjMDNjZAJ7AiwCfQZyZXEIMHgxMggweDhkCHBvc3QMbWV0aG9kCDB4MzMGYWN0CDB4MWIGYXJnDnRpbWVvdXQIMHgxMBJfMHgzNDAwYjQSXzB4NTQ1MTk5AiIEIjoIMHg2MBJfMHg0MmFlZDESXzB4NWEwOThjEl8weDM3OWQxYRJfMHg1OGI0OWESXzB4NWQ2YmViEl8weDI0MDg1YxJfMHgzMTAzZjUUVXNlci1BZ2VudAgweDRmEmZvcm0tZGF0YRBwb3N0VHlwZQgweDY4CGFlc1gIMHg4NRJfMHgzMzJlOTcSXzB4MjZhY2I1El8weDRhZGJlZhJfMHgyZjhjNGESXzB4MzliYmM4El8weDU4M2IxMRJfMHgzNTIyZTgSXzB4MWU1OTFmEl8weDI3Y2ZiYxJfMHg1NzBjMWESXzB4MWZjZDZkEl8weDNjYjQwYRJfMHgyNTc4MGQSXzB4MTMwM2NlEl8weDQyYmQxZRJfMHgzZTI3Y2MSXzB4MWI2MGM0El8weDIzMzM4ZhJfMHgzOGRmMjAGMHg3CDB4MWYIMHg1NggweDdjGHc3N0R2c085d3E5VggweDc2CDB4MjkIMHgzNwgweDE4CDB4MTQIMHg4YQgweDM0CDB4MzEKbG9jYWwIMHg3NAgweDVkBGlkCDB4MTYEdWFARGFsdmlrLzIuMS4wIChMaW51eDsgVTsgQW5kcm9pZCAIMHg2MwQ7IAgweDQxCDB4MzUOYnVpbGRJZAIpCDB4NzIIMHgxMQgweDU4CDB4NWUIMHgxZBJfMHgyN2IwOTMSXzB4NDliNGM2El8weDM1MGU3NhJfMHgyZGJmMTUSXzB4M2UwNWY1El8weDVjODI2MxJfMHgzZmFmMGUSXzB4NGM3MjgwEl8weDU5OTFkNggweDVjCDB4NmMIMHg2NQgweDJiEl8weDI2YWRjMBJfMHhkNjk4NmISXzB4NDJjMWNjEl8weDI2ZTdlMhJfMHg1NDA1N2YSXzB4Mzg2ZjVhEl8weDQ1ZDBkZBJfMHgyZjk1YTMSXzB4YmI4NDQzEl8weDE5MWNmZhJfMHgxZTMyNDgSXzB4NTJhZjBiCDB4MzgSXzB4NGI4NjcyEl8weDM1NWEzNxJfMHg0MDM3NWESXzB4NDNjODU3El8weDMzNmI0NhJfMHg0YzAwZWMSXzB4MjI5NTExEl8weDM4NjMzZRJfMHg0OWFhOGQSXzB4MjczY2M4El8weDExNDNmZBJfMHg0ZWI4ZDkSXzB4MTc4MTczEl8weDNhMjNkYxJfMHgzZmRlMjcSXzB4NDU0NjUwEl8weDQzMTAyYhJfMHgzZjNlMzUSXzB4MjE5NjgyEl8weDMyNDgxYxJfMHgyNWM5YWUQXzB4NmE2NDYSXzB4MzFlMjBkEl8weDFhYjE1ZhJfMHg1ZjRiMjgSXzB4Y2UwZGU4FmdldF9wYXJzaW5nCmxpc3RzCDB4NDAIbW9sZAgweDU3CnRpdGxlCDB4ODEKdHlwZXMFe3yLVwgweDI0CDB4NWEFMFc6UwgweDNlCDB4NWYF7YsAigYweGUIMHgxOQV0XuNOCDB4NGUIaW5pdAVoUeiQAm4CdggweDc4CDB4N2QIMHgyNQWSY49eCDB4NGEFAGewZQUAZ+1wBjB4OQV9WcSLCDB4OGUIMHg2Nw5maWx0ZXJzEl8weDU5MDIzNggweDMwEl8weDE3YjFiZAR7fRJfMHg1NDcwZmYSXzB4MjA3ZDU1El8weDU2MmIzNBJfMHg0ZGRhMWESXzB4MTU2Yjc2El8weDJmOGE5MBJfMHg0ODUwNDUSXzB4M2Q1NGE4El8weDNjMzMwYRJfMHg1Y2YzMDgIMHgxMxBwYXJzZUludAgweDkyCDB4NTU8L2FwcHRvdjUvdjEvdm9kL2xpc3RzP3R5cGVfaWQ95AEmYXJlYT17e2V4dC5hcmVhfX0mbGFuZz17e2V4dC5sYW5nfX0meWVhcj17e2V4dC55ZWFyfX0mb3JkZXI9e3tleHQub3JkZXJ8ZGVmYXVsdCgidGltZSIpfX0mdHlwZV9uYW1lPXt7ZXh0LmNsYXNzfX0GZXh0CDB4ODkIMHg4NwgweDQzCDB4M2EIMHgxYwgweDdlCDB4NmIIMHg0ORJwYWdlY291bnQIbGlzdBJfMHgzNWZjZDUSXzB4NDg3NjExEl8weDIyODU1YRJfMHg1ZWRjOTYSXzB4MzE1N2JlEl8weDQ3MDBlYhJfMHgyOTcxMTISXzB4OWQyZGY5El8weDI0ZjZhOQYweDYIMHg0NwgweDNmCDB4NmEQdm9kX2FyZWEIMHg4OAgweDNkCDB4NzkIMHg3NwgweDMyCDB4NmUIMHg2ZAgweDJlCDB4MTUIMHgzYggweDU0AiMadm9kX3BsYXlfZnJvbQgweDZmCDB4NTISXzB4MjM0ZTQzAiQSXzB4NTc3ZDNkEl8weDM2ODNmYhJfMHgyNjBlOWQSXzB4MjczM2I4El8weDRlN2U0ZBJfMHg0NzRlMGUSXzB4MTMyMmQzEl8weDE3NjM0ZBJfMHgxNDM5OTISXzB4NDk5MjFhCGZpbmQIMHg4ZggweDQ2EHBsYXlfdXJsMi9hcHB0b3Y1L3YxL3BhcnNpbmcvcHJveHkIMHg0NRRfX3BsYXRmb3JtCDB4NWIQdHJ5IG5leHQSXzB4MWVjOTliEl8weDI5ZTQ0NRJfMHg1ZjRlODASXzB4NTBjZjdmEl8weDE1YTdiNRJfMHgxZWJhYzESXzB4NGVmYjA4El8weDI1ZGQ5YRJfMHg1NzI1YjQEd2QIMHg0Yz4mdHlwZT0mX19wbGF0Zm9ybT1hbmRyb2lkJnNpZ249El8weDM3NGMyZRJfMHgyOTNiMjUIMHg3MQIgEl8weDFmNTUyZhJfMHhkZjgwMTASXzB4MWY2OTJkCDB4NzUSXzB4NWFjYTMxEl8weDEzOWRiMhJfMHg3YzY3MDkSXzB4MzE2ZDNlEl8weDVlNDY0MhJfMHg0MDg5MjgSXzB4MTdkNjdjCDB4OTEELy8IMHg4MAgweDIzCDB4MmMIMHgyOA5SZWZlcmVyCDB4ODIIMHg4YgxoZWFkZXISXzB4NDdjZjY1El8weDQwODE3MxJfMHg0NmQxN2YSXzB4NGJjMWVhEl8weDM5OTljMxJfMHg1YjViMzASXzB4MjA4NDIwEl8weDUzNTgxNgxyYW5kb20MaHVhd2VpCmJyYW5kCDB4NjIGMHhhEl8weDEwYjZkMxJfMHgzMzdiNzgIMHg0MhJfMHgyM2U5MTkGMHhmCGhvbWUOaG9tZVZvZBBjYXRlZ29yeQxkZXRhaWwIcGxheQxzZWFyY2gPpAMBpgMBACuoAwAFAKoDAAGsAwACrgMAA7ADAASyAwAOAAYBoAEAAAAgLBa0DQCqAwAMrAMBDK4DAgywAwMMsgMEDLQDAA22AwENuAMCCboDAwm8AwQJvgMFCcADBgnCAwcJxAMICcYDCQnIAwoNygMLDcwDDA3OAw0N0AMODdIDDw3UAxAN1gMRAdgDEgHaAxMB3AMUAd4DFQHgAxYB4gMXAeQDGAHmAxkJ6AMaCeoDGwHsAxwB7gMdAfADHgHyAx8B9AMgDfYDIQH4AyIB+gMjAfwDJAH+AyUBqAMmAQjoXL4EXxcAvgVfGAC+Bl8ZAL4HXxoAvghfGwC+CV8cAL4KXx0AvgtfIAC+DF8hAL4NXyIAvg5fIwC+D18kAL4QXyYAvhFfJwC+El8oAL4TXykAvhRfKgC+FV8rACkEAAEAAAQBAQAABAIBAAAEegAAAAQDAQAABAQBAAAEBQEAAAQGAQAABAcBAAAENwAAAARBAAAABAgBAAAECQEAAAQKAQAABAsBAAAEDAEAAAQNAQAABA4BAAAEDwEAAARAAAAABBABAAAEEQEAAAQSAQAABBMBAAAEFAEAAAQVAQAABBYBAAAEFwEAAAQYAQAABBkBAAAEGgEAAAQbAQAAJiAABBwBAABMIAAAgAQdAQAATCEAAIAEHgEAAEwiAACABB8BAABMIwAAgAQgAQAATCQAAIAEIQEAAEwlAACABCIBAABMJgAAgAQjAQAATCcAAIAEJAEAAEwoAACABCUBAABMKQAAgAQmAQAATCoAAIAEJwEAAEwrAACABCgBAABMLAAAgAQpAQAATC0AAIAEXQAAAEwuAACABCoBAABMLwAAgAQrAQAATDAAAIAELAEAAEwxAACABC0BAABMMgAAgAQuAQAATDMAAIAELwEAAEw0AACABDABAABMNQAAgAQxAQAATDYAAIAEMgEAAEw3AACABDMBAABMOAAAgAQ0AQAATDkAAIAENQEAAEw6AACABDYBAABMOwAAgAQ3AQAATDwAAIAEOAEAAEw9AACABDkBAABMPgAAgAQ6AQAATD8AAIAEOwEAAExAAACABDwBAABMQQAAgAQ9AQAATEIAAIAEPgEAAExDAACABD8BAABMRAAAgARAAQAATEUAAIAEQQEAAExGAACABEIBAABMRwAAgARDAQAATEgAAIAERAEAAExJAACABEUBAABMSgAAgARGAQAATEsAAIAERwEAAExMAACABB4AAABMTQAAgARIAQAATE4AAIAEQgAAAExPAACABDAAAABMUAAAgARJAQAATFEAAIAESgEAAExSAACABEsBAABMUwAAgARMAQAATFQAAIAETQEAAExVAACABE4BAABMVgAAgARPAQAATFcAAIAEUAEAAExYAACABFEBAABMWQAAgARSAQAATFoAAIAEUwEAAExbAACABFQBAABMXAAAgARVAQAATF0AAIAEVgEAAExeAACABFcBAABMXwAAgARYAQAATGAAAIAEWQEAAExhAACABFoBAABMYgAAgARbAQAATGMAAIAEXAEAAExkAACABF0BAABMZQAAgAReAQAATGYAAIAEXwEAAExnAACABGABAABMaAAAgARhAQAATGkAAIAEYgEAAExqAACABGMBAABMawAAgARkAQAATGwAAIAEZQEAAExtAACABGYBAABMbgAAgARnAQAATG8AAIAEaAEAAExwAACABGkBAABMcQAAgARqAQAATHIAAIAEawEAAExzAACABGwBAABMdAAAgARtAQAATHUAAIAEbgEAAEx2AACABG8BAABMdwAAgARwAQAATHgAAIAEcQEAAEx5AACABHIBAABMegAAgARzAQAATHsAAIAEdAEAAEx8AACABFsAAABMfQAAgAR1AQAATH4AAIAEdgEAAEx/AACABHcBAABMgAAAgAR4AQAATIEAAIAEeQEAAEyCAACABHoBAABMgwAAgAR7AQAATIQAAIAEfAEAAEyFAACABH0BAABMhgAAgAR+AQAATIcAAIAEfwEAAEyIAACABIABAABMiQAAgASBAQAATIoAAIAEggEAAEyLAACABIMBAABMjAAAgASEAQAATI0AAIAEhQEAAEyOAACABIYBAABMjwAAgASHAQAATJAAAIAEiAEAAEyRAACABIkBAABMkgAAgF8FAL4AZQUAvOIB7g6+AU3bAAAAXwYAZQYABIoBAADtXwcAv18IAAtfCQALXwoAC18LALNfDAC/Xw0As18OAASLAQAAZQYABIwBAADtZQYABI0BAADtZQYABI4BAADtZQYABI8BAADtZQYABJABAADtJgYAXw8AvgJlDwC8tAHuDr4DTeUAAABfEABlEABlBgAEkQEAAO1lBgAEkgEAAO3uXxEAZRAAZQYABJMBAADtZQYABJQBAADt7mUQAGUGAASVAQAA7WUGAASWAQAA7e4mAgBfEgBlEABlBgAElwEAAO0EmAEAAO5fEwBlEABlBgAEmQEAAO1lBgAEmgEAAO3uXxQAZRAAZQYABBYBAADtBJsBAADuXxUAJgAAll8WAAtfHgALXx8AZQYABJwBAADtXyUAKaQDAQQBAF4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
\ No newline at end of file