From 888a1bdcec3b4dd87bc7e343841850ee1d6ea805 Mon Sep 17 00:00:00 2001
From: chendi0207 <501228112@qq.com>
Date: Tue, 19 Sep 2023 08:20:21 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=8E2023.9.19?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
tvboxqq/南风/api.json | 2 +-
tvboxqq/南风/drpy.min.js | 2 +-
tvboxqq/南风/drpy2.min.js | 2 +-
tvboxqq/南风/json/Alist.json | 37 -
tvboxqq/南风/json/云云.json | 40 -
tvboxqq/南风/json/新视觉影院.json | 426 -------
tvboxqq/南风/json/零零七影视.json | 341 -----
tvboxqq/南风/live.txt | 277 ++--
tvboxqq/南风/spider.jar | Bin 827542 -> 827384 bytes
tvboxqq/多多/api.json | 133 +-
tvboxqq/多多/drpymin2.js | 1 -
tvboxqq/多多/js/6yue.js | 27 +
tvboxqq/多多/js/bokan.js | 17 +
tvboxqq/多多/js/i275.js | 32 +
tvboxqq/多多/js/ikanbot2.js | 15 +-
tvboxqq/多多/js/jrslive.js | 114 +-
tvboxqq/多多/js/libvio.js | 12 +-
tvboxqq/多多/js/sea.js | 30 +
tvboxqq/多多/js/tingshu.js | 29 +
tvboxqq/多多/js/yousheng.js | 37 +
tvboxqq/多多/js/zhonghua.js | 29 +
tvboxqq/多多/js/哔哩直播.js | 70 +-
tvboxqq/夜猫子/api.json | 53 +-
tvboxqq/夜猫子/drpy2.min.js | 2 +-
tvboxqq/夜猫子/jars/忍者视频.jar | Bin 545282 -> 0 bytes
tvboxqq/夜猫子/jars/探探.jar | Bin 0 -> 684112 bytes
tvboxqq/夜猫子/js/4K超前.js | 48 -
tvboxqq/夜猫子/js/ikan.js | 148 ---
tvboxqq/夜猫子/js/ikanbot1.js | 15 +-
tvboxqq/夜猫子/js/夜猫优米.js | 33 -
tvboxqq/夜猫子/js/夜猫自营2k.js | 35 -
tvboxqq/夜猫子/js/新夜猫至臻.js | 30 -
tvboxqq/夜猫子/js/自营.js | 30 -
tvboxqq/夜猫子/js/自营蓝光2.js | 31 -
tvboxqq/夜猫子/js/酷酷.js | 32 -
tvboxqq/夜猫子/spider.jar | Bin 1452085 -> 1452085 bytes
...js => 16eb4a0c53f332b4c085754ea205e743.js} | 0
.../2bfe80d5d391ddbc361d85bf3f688888.js} | 5 +-
.../51e05bc2442708414b99342633c0d670.js} | 0
.../a0de8b5e04092cafb1eb9f25ae25f064.js} | 0
tvboxqq/小米/api.json | 1115 ++++++++---------
tvboxqq/小米/drpy1.min.js | 2 +-
tvboxqq/小米/drpy2.min.js | 1 -
tvboxqq/小米/jars/csp_AList_Alist.jar | Bin 433189 -> 0 bytes
tvboxqq/小米/jars/saohuo.jar | Bin 0 -> 432815 bytes
tvboxqq/小米/jars/广播迷.jar | Bin 433189 -> 0 bytes
tvboxqq/小米/jars/{365.jar => 速搜.jar} | Bin
tvboxqq/小米/js/88看球.js | 31 -
tvboxqq/小米/js/jp.js | 98 +-
tvboxqq/小米/js/南瓜.js | 189 ---
tvboxqq/小米/json/348.json | 216 ----
tvboxqq/小米/json/360.json | 364 ------
tvboxqq/小米/json/alist.json | 113 --
tvboxqq/小米/json/bilibili.json | 2 +-
tvboxqq/小米/json/biliych.json | 703 -----------
tvboxqq/小米/json/lezhu.json | 353 ------
tvboxqq/小米/json/tvb.json | 26 -
tvboxqq/小米/json/利播.json | 295 -----
tvboxqq/小米/json/星辰.json | 22 -
tvboxqq/小米/json/来看.json | 15 -
tvboxqq/小米/json/淘剧.json | 31 -
tvboxqq/小米/json/热播.json | 30 -
tvboxqq/小米/json/石榴.json | 274 ----
tvboxqq/小米/json/素白.json | 26 -
tvboxqq/小米/json/蘑菇.json | 18 -
tvboxqq/小米/json/虎虎.json | 34 -
tvboxqq/小米/live2.txt | 33 +-
tvboxqq/小米/spider.jar | Bin 684112 -> 657192 bytes
tvboxqq/小米/txt/tok.txt | 1 +
tvboxqq/小米/模板.js | 274 ----
tvboxqq/少儿频道/drpy2.min.js | 2 +-
tvboxqq/少儿频道/jars/csp_XYQHiker_兔小贝.jar | Bin 2076867 -> 2076867 bytes
tvboxqq/巧儿/api.json | 20 +-
tvboxqq/荷城茶秀/api.json | 26 +-
tvboxqq/荷城茶秀/json/4khdr磁力.json | 75 --
tvboxqq/荷城茶秀/json/七月影视.json | 37 +
tvboxqq/荷城茶秀/json/兔兔瓜.json | 441 -------
tvboxqq/荷城茶秀/json/歪片星球.json | 47 -
tvboxqq/荷城茶秀/json/毛毛子影视.json | 2 +-
tvboxqq/荷城茶秀/json/玩偶哥哥.json | 8 +-
tvboxqq/荷城茶秀/json/耐看影视.json | 39 -
tvboxqq/菜妮丝/api.json | 3 +-
tvboxqq/菜妮丝/drpy2.min.js | 2 +-
tvboxqq/菜妮丝/js/ikanbot2.js | 9 +-
tvboxqq/菜妮丝/spider.jar | Bin 688006 -> 684112 bytes
.../5fa88697c0bd1011b20b3e40cf0a74ff.js | 1 -
tvboxqq/道长js/drpy.min.js | 2 +-
tvboxqq/道长js/drpy2.min.js | 2 +-
tvboxqq/道长js/js/JustLive.js | 37 +-
tvboxqq/道长js/js/LIBVIO.js | 12 +-
tvboxqq/道长js/js/ikanbot2.js | 10 +-
tvboxqq/道长js/js/哔哩影视.js | 67 +-
tvboxqq/道长js/js/哔哩直播.js | 68 +-
tvboxqq/道长js/js/我的哔哩.js | 42 +-
tvboxqq/道长js/spider.jar | Bin 370816 -> 377942 bytes
.../1099eb9bb60ce7a944fd8249525fe460.js | 274 ----
...js => 16eb4a0c53f332b4c085754ea205e743.js} | 0
...js => 2bfe80d5d391ddbc361d85bf3f688888.js} | 32 +-
...js => 51e05bc2442708414b99342633c0d670.js} | 0
...js => a0de8b5e04092cafb1eb9f25ae25f064.js} | 0
tvboxqq/饭太硬/api.json | 28 +-
.../cd4f3c970f6e47b24851a513b0a19213.js | 68 -
tvboxqq/饭太硬/drpy1.min.js | 2 +-
tvboxqq/饭太硬/json/310直播.json | 57 -
tvboxqq/饭太硬/json/dj看球.json | 182 ---
tvboxqq/饭太硬/json/短视频.json | 18 -
tvboxqq/饭太硬/spider.jar | Bin 684112 -> 657192 bytes
tvboxqq/高天流云XYQ/api.json | 94 +-
tvboxqq/高天流云XYQ/drpy2.min.js | 2 +-
tvboxqq/高天流云XYQ/js/drpy.js | 37 +
tvboxqq/高天流云XYQ/js/优酷.js | 39 +
tvboxqq/高天流云XYQ/js/哔哩直播.js | 70 +-
tvboxqq/高天流云XYQ/js/奇珍异兽.js | 39 +
tvboxqq/高天流云XYQ/js/百忙无果.js | 34 +
tvboxqq/高天流云XYQ/js/腾云驾雾.js | 39 +
tvboxqq/高天流云XYQ/json/厂长影视.json | 8 +-
tvboxqq/高天流云XYQ/redirect.txt | 26 +-
tvboxqq/高天流云XYQ/spider.jar | Bin 384714 -> 384664 bytes
tvboxqq/高天流云XYQ/直播.txt | 277 ++--
tvboxqq/高天流云js/api.json | 129 +-
tvboxqq/高天流云js/drpy.min.js | 2 +-
tvboxqq/高天流云js/drpy2.min.js | 2 +-
tvboxqq/高天流云js/js/97tvs.js | 26 +-
tvboxqq/高天流云js/js/JustLive.js | 37 +-
tvboxqq/高天流云js/js/LIBVIO.js | 112 +-
tvboxqq/高天流云js/js/aipanso.js | 28 +-
tvboxqq/高天流云js/js/cilixiongp.js | 61 -
tvboxqq/高天流云js/js/ikanbot2.js | 10 +-
tvboxqq/高天流云js/js/ikanbot3.js | 21 +-
tvboxqq/高天流云js/js/jiyingwp.js | 230 ----
tvboxqq/高天流云js/js/meijumip.js | 307 -----
tvboxqq/高天流云js/js/meow.js | 91 ++
tvboxqq/高天流云js/js/mp4us.js | 26 +-
tvboxqq/高天流云js/js/tzfile.js | 30 +-
tvboxqq/高天流云js/js/哔哩影视.js | 69 +-
tvboxqq/高天流云js/js/哔哩直播.js | 70 +-
tvboxqq/高天流云js/js/我的哔哩.js | 44 +-
tvboxqq/高天流云js/js/爱看机器人.js | 17 +-
tvboxqq/高天流云js/lf_ikanbot_min.js | 1 -
tvboxqq/高天流云js/live.txt | 24 +-
tvboxqq/高天流云js/spider.jar | Bin 3356021 -> 3406077 bytes
141 files changed, 2501 insertions(+), 7515 deletions(-)
delete mode 100644 tvboxqq/南风/json/Alist.json
delete mode 100644 tvboxqq/南风/json/云云.json
delete mode 100644 tvboxqq/南风/json/新视觉影院.json
delete mode 100644 tvboxqq/南风/json/零零七影视.json
delete mode 100644 tvboxqq/多多/drpymin2.js
create mode 100644 tvboxqq/多多/js/6yue.js
create mode 100644 tvboxqq/多多/js/bokan.js
create mode 100644 tvboxqq/多多/js/i275.js
create mode 100644 tvboxqq/多多/js/sea.js
create mode 100644 tvboxqq/多多/js/tingshu.js
create mode 100644 tvboxqq/多多/js/yousheng.js
create mode 100644 tvboxqq/多多/js/zhonghua.js
delete mode 100644 tvboxqq/夜猫子/jars/忍者视频.jar
create mode 100644 tvboxqq/夜猫子/jars/探探.jar
delete mode 100644 tvboxqq/夜猫子/js/4K超前.js
delete mode 100644 tvboxqq/夜猫子/js/ikan.js
delete mode 100644 tvboxqq/夜猫子/js/夜猫优米.js
delete mode 100644 tvboxqq/夜猫子/js/夜猫自营2k.js
delete mode 100644 tvboxqq/夜猫子/js/新夜猫至臻.js
delete mode 100644 tvboxqq/夜猫子/js/自营.js
delete mode 100644 tvboxqq/夜猫子/js/自营蓝光2.js
delete mode 100644 tvboxqq/夜猫子/js/酷酷.js
rename tvboxqq/小米/{gbk.js => 16eb4a0c53f332b4c085754ea205e743.js} (100%)
rename tvboxqq/{少儿频道/模板.js => 小米/2bfe80d5d391ddbc361d85bf3f688888.js} (99%)
rename tvboxqq/{饭太硬/9aaa630b81f8ee876ccb761783f9d73d.js => 小米/51e05bc2442708414b99342633c0d670.js} (100%)
rename tvboxqq/{饭太硬/4d8689e81a120bfcb87990b15163ac03.js => 小米/a0de8b5e04092cafb1eb9f25ae25f064.js} (100%)
delete mode 100644 tvboxqq/小米/drpy2.min.js
delete mode 100644 tvboxqq/小米/jars/csp_AList_Alist.jar
create mode 100644 tvboxqq/小米/jars/saohuo.jar
delete mode 100644 tvboxqq/小米/jars/广播迷.jar
rename tvboxqq/小米/jars/{365.jar => 速搜.jar} (100%)
delete mode 100644 tvboxqq/小米/js/88看球.js
delete mode 100644 tvboxqq/小米/js/南瓜.js
delete mode 100644 tvboxqq/小米/json/348.json
delete mode 100644 tvboxqq/小米/json/360.json
delete mode 100644 tvboxqq/小米/json/alist.json
delete mode 100644 tvboxqq/小米/json/biliych.json
delete mode 100644 tvboxqq/小米/json/lezhu.json
delete mode 100644 tvboxqq/小米/json/tvb.json
delete mode 100644 tvboxqq/小米/json/利播.json
delete mode 100644 tvboxqq/小米/json/星辰.json
delete mode 100644 tvboxqq/小米/json/来看.json
delete mode 100644 tvboxqq/小米/json/淘剧.json
delete mode 100644 tvboxqq/小米/json/热播.json
delete mode 100644 tvboxqq/小米/json/石榴.json
delete mode 100644 tvboxqq/小米/json/素白.json
delete mode 100644 tvboxqq/小米/json/蘑菇.json
delete mode 100644 tvboxqq/小米/json/虎虎.json
create mode 100644 tvboxqq/小米/txt/tok.txt
delete mode 100644 tvboxqq/小米/模板.js
delete mode 100644 tvboxqq/荷城茶秀/json/4khdr磁力.json
create mode 100644 tvboxqq/荷城茶秀/json/七月影视.json
delete mode 100644 tvboxqq/荷城茶秀/json/兔兔瓜.json
delete mode 100644 tvboxqq/荷城茶秀/json/歪片星球.json
delete mode 100644 tvboxqq/荷城茶秀/json/耐看影视.json
delete mode 100644 tvboxqq/饭太硬/1099eb9bb60ce7a944fd8249525fe460.js
rename tvboxqq/饭太硬/{29e866dde6364754596f9ab6bda2498f.js => 16eb4a0c53f332b4c085754ea205e743.js} (100%)
rename tvboxqq/饭太硬/{59fba455843d7057cc76b842aa1e05ba.js => 2bfe80d5d391ddbc361d85bf3f688888.js} (88%)
rename tvboxqq/饭太硬/{a6b6079a385b44a5ce7e2a0efcce4daf.js => 51e05bc2442708414b99342633c0d670.js} (100%)
rename tvboxqq/饭太硬/{72602fc4423821e5a2a5fd82f67627c8.js => a0de8b5e04092cafb1eb9f25ae25f064.js} (100%)
delete mode 100644 tvboxqq/饭太硬/cd4f3c970f6e47b24851a513b0a19213.js
delete mode 100644 tvboxqq/饭太硬/json/310直播.json
delete mode 100644 tvboxqq/饭太硬/json/dj看球.json
delete mode 100644 tvboxqq/饭太硬/json/短视频.json
create mode 100644 tvboxqq/高天流云XYQ/js/drpy.js
create mode 100644 tvboxqq/高天流云XYQ/js/优酷.js
create mode 100644 tvboxqq/高天流云XYQ/js/奇珍异兽.js
create mode 100644 tvboxqq/高天流云XYQ/js/百忙无果.js
create mode 100644 tvboxqq/高天流云XYQ/js/腾云驾雾.js
delete mode 100644 tvboxqq/高天流云js/js/cilixiongp.js
delete mode 100644 tvboxqq/高天流云js/js/jiyingwp.js
delete mode 100644 tvboxqq/高天流云js/js/meijumip.js
create mode 100644 tvboxqq/高天流云js/js/meow.js
delete mode 100644 tvboxqq/高天流云js/lf_ikanbot_min.js
diff --git a/tvboxqq/南风/api.json b/tvboxqq/南风/api.json
index fe9842a..b721847 100644
--- a/tvboxqq/南风/api.json
+++ b/tvboxqq/南风/api.json
@@ -250,7 +250,7 @@
"quickSearch": 1,
"filterable": 1,
"changeable": 0,
- "ext": "http://127.0.0.1:9978/file/tvboxqq/token.txt+4k|auto|fhd+4k|auto|fhd$$$https://www.wogg.xyz/"
+ "ext": "http://127.0.0.1:9978/file/tvboxqq/token.txt+4k|auto|fhd+4k|auto|fhd"
},
{
"key": "YiSo",
diff --git a/tvboxqq/南风/drpy.min.js b/tvboxqq/南风/drpy.min.js
index e8022f6..d117ae1 100644
--- a/tvboxqq/南风/drpy.min.js
+++ b/tvboxqq/南风/drpy.min.js
@@ -1 +1 @@
-import cheerio from"./6077d402239b1f12a08cf5eed64bc45d.js";import"./46d340dbc76bcd753ff3fe7bcb6f42e4.js";import"./d389209568274f76e7ffa4a60956b808.js";import 模板 from"./91a17a111eb2fa6409d00bd44389de75.js";import{gbkTool}from"./0c9d2a5ba04613e4329ce23fa981a530.js";function init_test(){console.log("init_test_start");console.log("当前版本号:"+VERSION);console.log(RKEY);console.log(JSON.stringify(rule));console.log("init_test_end")}function pre(){if(typeof rule.预处理==="string"&&rule.预处理&&rule.预处理.trim()){let code=rule.预处理.trim();console.log("执行预处理代码:"+code);if(code.startsWith("js:")){code=code.replace("js:","")}try{eval(code)}catch(e){console.log("预处理执行失败:"+e.message)}}}let rule={};const VERSION="drpy1 3.9.47beta23 20230804";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";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";const UA="Mozilla/5.0";const UC_UA="Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36";const IOS_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 RULE_CK="cookie";const CATE_EXCLUDE="首页|留言|APP|下载|资讯|新闻|动态";const TAB_EXCLUDE="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/text";if(typeof MY_URL==="undefined"){var MY_URL}var HOST;var RKEY;var fetch;var print;var log;var rule_fetch_params;var fetch_params;var oheaders;var _pdfh;var _pdfa;var _pd;const DOM_CHECK_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/;const SPECIAL_URL=/^(ftp|magnet|thunder|ws):/;const SELECT_REGEX=/:eq|:lt|:gt|#/g;const SELECT_REGEX_A=/:eq|:lt|:gt/g;if(typeof Object.assign!="function"){Object.assign=function(){var target=arguments[0];for(var i=1;ithis.length){return false}else{return this.indexOf(search,start)!==-1}}}if(!Array.prototype.includes){Object.defineProperty(Array.prototype,"includes",{value:function(searchElement,fromIndex){if(this==null){throw new TypeError('"this" is null or not defined')}var o=Object(this);var len=o.length>>>0;if(len===0){return false}var n=fromIndex|0;var k=Math.max(n>=0?n:len-Math.abs(n),0);while(k=end){return lists}let first=lists[start];let second=lists[end];if(key){try{first=first[key];second=second[key]}catch(e){}}if(option&&typeof option==="function"){try{first=option(first);second=option(second)}catch(e){}}first+="";second+="";if(first.match(/(\d+)/)&&second.match(/(\d+)/)){let num1=Number(first.match(/(\d+)/)[1]);let num2=Number(second.match(/(\d+)/)[1]);if(num1>num2){lists.reverse()}}return lists}let VODS=[];let VOD={};let TABS=[];let LISTS=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;function urljoin(fromPath,nowPath){fromPath=fromPath||"";nowPath=nowPath||"";return joinUrl(fromPath,nowPath)}var urljoin2=urljoin;const defaultParser={pdfh:pdfh,pdfa:pdfa,pd(html,parse,uri){let ret=this.pdfh(html,parse);if(typeof uri==="undefined"||!uri){uri=""}if(DOM_CHECK_ATTR.test(parse)&&!SPECIAL_URL.test(ret)){if(/http/.test(ret)){ret=ret.substr(ret.indexOf("http"))}else{ret=urljoin(MY_URL,ret)}}return ret}};function pdfh2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print("html对象转文本发生了错误:"+e.message)}let result=defaultParser.pdfh(html2,parse);let option=parse.includes("&&")?parse.split("&&").slice(-1)[0]:parse.split(" ").slice(-1)[0];if(/style/.test(option.toLowerCase())&&/url\(/.test(result)){try{result=result.match(/url\((.*?)\)/)[1];result=result.replace(/^['|"](.*)['|"]$/,"$1")}catch(e){}}return result}function pdfa2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print("html对象转文本发生了错误:"+e.message)}return defaultParser.pdfa(html2,parse)}function pd2(html,parse,uri){let ret=pdfh2(html,parse);if(typeof uri==="undefined"||!uri){uri=""}if(DOM_CHECK_ATTR.test(parse)&&!SPECIAL_URL.test(ret)){if(/http/.test(ret)){ret=ret.substr(ret.indexOf("http"))}else{ret=urljoin(MY_URL,ret)}}return ret}const parseTags={jsp:{pdfh:pdfh2,pdfa:pdfa2,pd:pd2},json:{pdfh(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}parse=parse.split("||");for(let ps of parse){let ret=cheerio.jp(ps,html);if(Array.isArray(ret)){ret=ret[0]||""}else{ret=ret||""}if(ret&&typeof ret!=="string"){ret=ret.toString()}if(ret){return ret}}return""},pdfa(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}let ret=cheerio.jp(parse,html);if(Array.isArray(ret)&&Array.isArray(ret[0])&&ret.length===1){return ret[0]||[]}return ret||[]},pd(html,parse){let ret=parseTags.json.pdfh(html,parse);if(ret){return urljoin(MY_URL,ret)}return ret}},jq:{pdfh(html,parse,base_url){if(!parse||!parse.trim()){return""}let eleFind=typeof html==="object";let option=undefined;if(eleFind&&parse.startsWith("body&&")){parse=parse.substr(6);if(parse.indexOf("&&")<0){option=parse.trim();parse="*=*"}}if(parse.indexOf("&&")>-1){let sp=parse.split("&&");option=sp[sp.length-1];sp.splice(sp.length-1);if(sp.length>1){for(let i in sp){if(sp.hasOwnProperty(i)){if(!SELECT_REGEX.test(sp[i])){sp[i]=sp[i]+":eq(0)"}}}}else{if(!SELECT_REGEX.test(sp[0])){sp[0]=sp[0]+":eq(0)"}}parse=sp.join(" ")}let result="";const $=eleFind?html.rr:cheerio.load(html);let ret=eleFind?parse==="*=*"||$(html.ele).is(parse)?html.ele:$(html.ele).find(parse):$(parse);if(option){if(option==="Text"){result=$(ret).text()}else if(option==="Html"){result=$(ret).html()}else{result=$(ret).attr(option);if(/style/.test(option.toLowerCase())&&/url\(/.test(result)){try{result=result.match(/url\((.*?)\)/)[1];result=result.replace(/^['|"](.*)['|"]$/,"$1")}catch(e){}}}if(result&&base_url&&DOM_CHECK_ATTR.test(option)&&!SPECIAL_URL.test(result)){if(/http/.test(result)){result=result.substr(result.indexOf("http"))}else{result=urljoin(base_url,result)}}}else{result=$(ret).toString()}return result},pdfa(html,parse){if(!parse||!parse.trim()){print("!parse");return[]}let eleFind=typeof html==="object";if(parse.indexOf("&&")>-1){let sp=parse.split("&&");for(let i in sp){if(sp.hasOwnProperty(i)){if(!SELECT_REGEX_A.test(sp[i])&&iit.toLowerCase()==="set-cookie");cookie=setCk?json[setCk].split(";")[0]:""}console.log("cookie:"+cookie);let img=json.body;let code=OcrApi.classification(img);console.log(`第${cnt+1}次验证码识别结果:${code}`);let submit_url=`${host}/index.php/ajax/verify_check?type=search&verify=${code}`;console.log(submit_url);let html=request(submit_url,{headers:{Cookie:cookie,"User-Agent":MOBILE_UA},method:"POST"});html=JSON.parse(html);if(html.msg==="ok"){console.log(`第${cnt+1}次验证码提交成功`);return cookie}else if(html.msg!=="ok"&&cnt+1>=OCR_RETRY){cookie=""}}catch(e){console.log(`第${cnt+1}次验证码提交失败:${e.message}`);if(cnt+1>=OCR_RETRY){cookie=""}}cnt+=1}return cookie}function setItem(k,v){local.set(RKEY,k,v);console.log(`规则${RKEY}设置${k} => ${v}`)}function getItem(k,v){return local.get(RKEY,k)||v}function clearItem(k){local.delete(RKEY,k)}function getHome(url){if(!url){return""}let tmp=url.split("//");url=tmp[0]+"//"+tmp[1].split("/")[0];try{url=decodeURIComponent(url)}catch(e){}return url}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}function require(url){eval(request(url))}function request(url,obj,ocr_flag){ocr_flag=ocr_flag||false;if(typeof obj==="undefined"||!obj||obj==={}){if(!fetch_params||!fetch_params.headers){let headers={"User-Agent":MOBILE_UA};if(rule.headers){Object.assign(headers,rule.headers)}if(!fetch_params){fetch_params={}}fetch_params.headers=headers}if(!fetch_params.headers.Referer){fetch_params.headers.Referer=getHome(url)}obj=fetch_params}else{let headers=obj.headers||{};let keys=Object.keys(headers).map(it=>it.toLowerCase());if(!keys.includes("user-agent")){headers["User-Agent"]=MOBILE_UA}if(!keys.includes("referer")){headers["Referer"]=getHome(url)}obj.headers=headers}if(rule.encoding&&rule.encoding!=="utf-8"&&!ocr_flag){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="text/html; charset="+rule.encoding}}if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="string"){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="application/x-www-form-urlencoded; charset="+rule.encoding}}else if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="object"){obj.data=obj.body;delete obj.body}if(!url){return obj.withHeaders?"{}":""}if(obj.toBase64){obj.buffer=2;delete obj.toBase64}console.log(JSON.stringify(obj.headers));console.log("request:"+url+`|method:${obj.method||"GET"}|body:${obj.body||""}`);let res=req(url,obj);let html=res.content||"";if(obj.withHeaders){let htmlWithHeaders=res.headers;htmlWithHeaders.body=html;return JSON.stringify(htmlWithHeaders)}else{return html}}function post(url,obj){obj.method="POST";return request(url,obj)}fetch=request;print=function(data){data=data||"";if(typeof data=="object"&&Object.keys(data).length>0){try{data=JSON.stringify(data);console.log(data)}catch(e){console.log(typeof data+":"+data.length);return}}else if(typeof data=="object"&&Object.keys(data).length<1){console.log("null object")}else{console.log(data)}};log=print;function checkHtml(html,url,obj){if(/\?btwaf=/.test(html)){let btwaf=html.match(/btwaf(.*?)"/)[1];url=url.split("#")[0]+"?btwaf"+btwaf;print("宝塔验证访问链接:"+url);html=request(url,obj)}return html}function getCode(url,obj){let html=request(url,obj);html=checkHtml(html,url,obj);return html}function getHtml(url){let obj={};if(rule.headers){obj.headers=rule.headers}let cookie=getItem(RULE_CK,"");if(cookie){if(obj.headers&&!Object.keys(obj.headers).map(it=>it.toLowerCase()).includes("cookie")){log("历史无cookie,新增过验证后的cookie");obj.headers["Cookie"]=cookie}else if(obj.headers&&obj.headers.cookie&&obj.headers.cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有小写过期的cookie,更新过验证后的cookie")}else if(obj.headers&&obj.headers.Cookie&&obj.headers.Cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有大写过期的cookie,更新过验证后的cookie")}else if(!obj.headers){obj.headers={Cookie:cookie};log("历史无headers,更新过验证后的含cookie的headers")}}let html=getCode(url,obj);return html}function homeParse(homeObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let classes=[];if(homeObj.class_name&&homeObj.class_url){let names=homeObj.class_name.split("&");let urls=homeObj.class_url.split("&");let cnt=Math.min(names.length,urls.length);for(let i=0;i=3){try{let html=getHtml(homeObj.MY_URL);if(html){homeHtmlCache=html;let list=_pdfa(html,p[0]);if(list&&list.length>0){list.forEach((it,idex)=>{try{let name=_pdfh(it,p[1]);if(homeObj.cate_exclude&&new RegExp(homeObj.cate_exclude).test(name)){return}let url=_pd(it,p[2]);if(p.length>3&&p[3]){let exp=new RegExp(p[3]);url=url.match(exp)[1]}classes.push({type_id:url.trim(),type_name:name.trim()})}catch(e){console.log(`分类列表定位第${idex}个元素正常报错:${e.message}`)}})}}}catch(e){console.log(e.message)}}}classes=classes.filter(it=>!homeObj.cate_exclude||!new RegExp(homeObj.cate_exclude).test(it.type_name));let resp={class:classes};if(homeObj.filter){resp.filters=homeObj.filter}console.log(JSON.stringify(resp));return JSON.stringify(resp)}function getPP(p,pn,pp,ppn){try{let ps=p[pn]==="*"&&pp.length>ppn?pp[ppn]:p[pn];return ps}catch(e){return""}}function homeVodParse(homeVodObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];MY_URL=homeVodObj.homeUrl;console.log(MY_URL);let t1=(new Date).getTime();let p=homeVodObj.推荐;print("p:"+p);if(p==="*"&&rule.一级){p=rule.一级;homeVodObj.double=false}if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级.split(";");if(p.startsWith("js:")){const TYPE="home";var input=MY_URL;HOST=rule.host;eval(p.replace("js:",""));d=VODS}else{p=p.split(";");if(!homeVodObj.double&&p.length<5){return"{}"}else if(homeVodObj.double&&p.length<6){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");let html=homeHtmlCache||getHtml(MY_URL);homeHtmlCache=undefined;if(is_json){html=dealJson(html)}try{console.log("double:"+homeVodObj.double);if(homeVodObj.double){let items=_pdfa(html,p0);let p1=getPP(p,1,pp,0);let p2=getPP(p,2,pp,1);let p3=getPP(p,3,pp,2);let p4=getPP(p,4,pp,3);let p5=getPP(p,5,pp,4);let p6=getPP(p,6,pp,5);for(let item of items){let items2=_pdfa(item,p1);for(let item2 of items2){try{let title=_pdfh(item2,p2);let img="";try{img=_pd(item2,p3)}catch(e){}let desc="";try{desc=_pdfh(item2,p4)}catch(e){}let links=[];for(let _p5 of p5.split("+")){let link=!homeVodObj.detailUrl?_pd(item2,_p5,MY_URL):_pdfh(item2,_p5);links.push(link)}let content;if(p.length>6&&p[6]){content=_pdfh(item2,p6)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){console.log("首页列表处理发生错误:"+e.message)}}}}else{let items=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);for(let item of items){try{let title=_pdfh(item,p1);let img="";try{img=_pd(item,p2,MY_URL)}catch(e){}let desc="";try{desc=_pdfh(item,p3)}catch(e){}let links=[];for(let _p5 of p4.split("+")){let link=!homeVodObj.detailUrl?_pd(item,_p5,MY_URL):_pdfh(item,_p5);links.push(link)}let content;if(p.length>5&&p[5]){content=_pdfh(item,p5)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){}}}}catch(e){}}let t2=(new Date).getTime();console.log("加载首页推荐耗时:"+(t2-t1)+"毫秒");if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}return JSON.stringify({list:d})}function categoryParse(cateObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let p=cateObj.一级;if(!p||typeof p!=="string"){return"{}"}let d=[];let url=cateObj.url.replaceAll("fyclass",cateObj.tid);if(cateObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(cateObj.pg>1&&url.includes("[")&&url.includes("]")){url=url.split("[")[0]}if(rule.filter_url){if(!/fyfilter/.test(url)){if(!url.endsWith("&")&&!rule.filter_url.startsWith("&")){url+="&"}url+=rule.filter_url}else{url=url.replace("fyfilter",rule.filter_url)}let fl=cateObj.filter?cateObj.extend:{};if(rule.filter_def&&typeof rule.filter_def==="object"){try{if(Object.keys(rule.filter_def).length>0&&rule.filter_def.hasOwnProperty(cateObj.tid)){let self_fl_def=rule.filter_def[cateObj.tid];if(self_fl_def&&typeof self_fl_def==="object"){let fl_def=JSON.parse(JSON.stringify(self_fl_def));fl=Object.assign(fl_def,fl)}}}catch(e){print("合并不同分类对应的默认筛选出错:"+e.message)}}let new_url;new_url=cheerio.jinja2(url,{fl:fl});if(/object Object/.test(new_url)){new_url=drT.renderText(url,fl)}url=new_url}if(/fypage/.test(url)){if(url.includes("(")&&url.includes(")")){let url_rep=url.match(/.*?\((.*)\)/)[1];let cnt_page=url_rep.replaceAll("fypage",cateObj.pg);let cnt_pg=eval(cnt_page);url=url.replaceAll(url_rep,cnt_pg).replaceAll("(","").replaceAll(")","")}else{url=url.replaceAll("fypage",cateObj.pg)}}MY_URL=url;console.log(MY_URL);p=p.trim();const MY_CATE=cateObj.tid;if(p.startsWith("js:")){var MY_FL=cateObj.extend;const TYPE="cate";var input=MY_URL;const MY_PAGE=cateObj.pg;var desc="";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let _ps=parseTags.getParse(p[0]);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p[0].startsWith("json:");p[0]=p[0].replace(/^(jsp:|json:|jq:)/,"");try{let html=getHtml(MY_URL);if(html){if(is_json){html=dealJson(html)}let list=_pdfa(html,p[0]);list.forEach(it=>{let links=p[4].split("+").map(p4=>{return!rule.detailUrl?_pd(it,p4,MY_URL):_pdfh(it,p4)});let link=links.join("$");let vod_id=rule.detailUrl?MY_CATE+"$"+link:link;let vod_name=_pdfh(it,p[1]).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p[2],MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}d.push({vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p[3]).replace(/\n|\t/g,"").trim()})})}}catch(e){console.log(e.message)}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}let pagecount=0;if(rule.pagecount&&typeof rule.pagecount==="object"&&rule.pagecount.hasOwnProperty(MY_CATE)){print(`MY_CATE:${MY_CATE},pagecount:${JSON.stringify(rule.pagecount)}`);pagecount=parseInt(rule.pagecount[MY_CATE])}let nodata={list:[{vod_name:"无数据,防无限请求",vod_id:"no_data",vod_remarks:"不要点,会崩的",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}],total:1,pagecount:1,page:1,limit:1};let vod=d.length<1?JSON.stringify(nodata):JSON.stringify({page:parseInt(cateObj.pg),pagecount:pagecount||999,limit:20,total:999,list:d});return vod}function searchParse(searchObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];if(!searchObj.searchUrl){return"{}"}let p=searchObj.搜索==="*"&&rule.一级?rule.一级:searchObj.搜索;if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级.split(";");let url=searchObj.searchUrl.replaceAll("**",searchObj.wd).replaceAll("fypage",searchObj.pg);MY_URL=url;console.log(MY_URL);if(p.startsWith("js:")){const TYPE="search";const MY_PAGE=searchObj.pg;const KEY=searchObj.wd;var input=MY_URL;var detailUrl=rule.detailUrl||"";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");try{let req_method=MY_URL.split(";").length>1?MY_URL.split(";")[1].toLowerCase():"get";let html;if(req_method==="post"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`post=》rurl:${rurl},params:${params}`);let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else if(req_method==="postjson"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`postjson-》rurl:${rurl},params:${params}`);try{params=JSON.parse(params)}catch(e){params="{}"}let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else{html=getHtml(MY_URL)}if(html){if(/系统安全验证|输入验证码/.test(html)){let cookie=verifyCode(MY_URL);if(cookie){console.log(`本次成功过验证,cookie:${cookie}`);setItem(RULE_CK,cookie)}else{console.log(`本次自动过搜索验证失败,cookie:${cookie}`)}html=getHtml(MY_URL)}if(!html.includes(searchObj.wd)){console.log("搜索结果源码未包含关键字,疑似搜索失败,正为您打印结果源码");console.log(html)}if(is_json){html=dealJson(html)}let list=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);list.forEach(it=>{let links=p4.split("+").map(_p4=>{return!rule.detailUrl?_pd(it,_p4,MY_URL):_pdfh(it,_p4)});let link=links.join("$");let content;if(p.length>5&&p[5]){content=_pdfh(it,p5)}else{content=""}let vod_id=link;let vod_name=_pdfh(it,p1).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p2,MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}let ob={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p3).replace(/\n|\t/g,"").trim(),vod_content:content.replace(/\n|\t/g,"").trim()};d.push(ob)})}}catch(e){print("搜索发生错误:"+e.message);return"{}"}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}return JSON.stringify({page:parseInt(searchObj.pg),pagecount:10,limit:20,total:100,list:d})}function detailParse(detailObj){let t1=(new Date).getTime();fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let orId=detailObj.orId;let vod_name="片名";let vod_pic="";let vod_id=orId;if(rule.二级==="*"){let extra=orId.split("@@");vod_name=extra.length>1?extra[1]:vod_name;vod_pic=extra.length>2?extra[2]:vod_pic}let vod={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,type_name:"类型",vod_year:"年份",vod_area:"地区",vod_remarks:"更新信息",vod_actor:"主演",vod_director:"导演",vod_content:"简介"};let p=detailObj.二级;let url=detailObj.url;let detailUrl=detailObj.detailUrl;let fyclass=detailObj.fyclass;let tab_exclude=detailObj.tab_exclude;let html=detailObj.html||"";MY_URL=url;if(detailObj.二级访问前){try{print(`尝试在二级访问前执行代码:${detailObj.二级访问前}`);eval(detailObj.二级访问前.trim().replace("js:",""))}catch(e){print(`二级访问前执行代码出现错误:${e.message}`)}}if(p==="*"){vod.vod_play_from="道长在线";vod.vod_remarks=detailUrl;vod.vod_actor="没有二级,只有一级链接直接嗅探播放";vod.vod_content=MY_URL;vod.vod_play_url="嗅探播放$"+MY_URL.split("@@")[0]}else if(typeof p==="string"&&p.trim().startsWith("js:")){const TYPE="detail";var input=MY_URL;var play_url="";eval(p.trim().replace("js:",""));vod=VOD;console.log(JSON.stringify(vod))}else if(p&&typeof p==="object"){let tt1=(new Date).getTime();if(!html){html=getHtml(MY_URL)}print(`二级${MY_URL}仅获取源码耗时:${(new Date).getTime()-tt1}毫秒`);let _impJQP=false;let _ps;if(p.is_json){print("二级是json");_ps=parseTags.json;html=dealJson(html)}else if(p.is_jsp){print("二级是jsp");_ps=parseTags.jsp}else if(p.is_jq){print("二级是jq");_ps=parseTags.jq}else{print("二级默认jq");_ps=parseTags.jq}if(_ps===parseTags.jq){_impJQP=true}if(_impJQP){let ttt1=(new Date).getTime();let c$=cheerio.load(html);html={rr:c$,ele:c$("html")[0]};print(`二级${MY_URL}仅cheerio.load源码耗时:${(new Date).getTime()-ttt1}毫秒`)}let tt2=(new Date).getTime();print(`二级${MY_URL}获取并装载源码耗时:${tt2-tt1}毫秒`);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;if(p.title){let p1=p.title.split(";");vod.vod_name=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();let type_name=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").replace(/ /g,"").trim():"";vod.type_name=type_name||vod.type_name}if(p.desc){try{let p1=p.desc.split(";");vod.vod_remarks=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();vod.vod_year=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").trim():"";vod.vod_area=p1.length>2?_pdfh(html,p1[2]).replace(/\n|\t/g,"").trim():"";vod.vod_actor=p1.length>3?_pdfh(html,p1[3]).replace(/\n|\t/g,"").trim():"";vod.vod_director=p1.length>4?_pdfh(html,p1[4]).replace(/\n|\t/g,"").trim():""}catch(e){}}if(p.content){try{let p1=p.content.split(";");vod.vod_content=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim()}catch(e){}}if(p.img){try{let p1=p.img.split(";");vod.vod_pic=_pd(html,p1[0],MY_URL)}catch(e){}}let vod_play_from="$$$";let playFrom=[];if(p.重定向&&p.重定向.startsWith("js:")){print("开始执行重定向代码:"+p.重定向);html=eval(p.重定向.replace("js:",""));if(_impJQP){let c$=cheerio.load(html);html={rr:c$,ele:c$("html")[0]}}}if(p.tabs){if(p.tabs.startsWith("js:")){print("开始执行tabs代码:"+p.tabs);if(html&&_impJQP&&typeof html!=="string"){try{html=html.rr(html.ele).toString()}catch(e){}}var input=MY_URL;eval(p.tabs.replace("js:",""));playFrom=TABS}else{let p_tab=p.tabs.split(";")[0];let vHeader=_pdfa(html,p_tab);console.log(vHeader.length);let tab_text=p.tab_text||"body&&Text";let new_map={};for(let v of vHeader){let v_title=_pdfh(v,tab_text).trim();console.log(v_title);if(tab_exclude&&new RegExp(tab_exclude).test(v_title)){continue}if(!new_map.hasOwnProperty(v_title)){new_map[v_title]=1}else{new_map[v_title]+=1}if(new_map[v_title]>1){v_title+=Number(new_map[v_title]-1)}playFrom.push(v_title)}}console.log(JSON.stringify(playFrom))}else{playFrom=["道长在线"]}vod.vod_play_from=playFrom.join(vod_play_from);let vod_play_url="$$$";let vod_tab_list=[];if(p.lists){if(p.lists.startsWith("js:")){print("开始执行lists代码:"+p.lists);try{if(html&&_impJQP&&typeof html!=="string"){try{html=html.rr(html.ele).toString()}catch(e){}}var input=MY_URL;var play_url="";eval(p.lists.replace("js:",""));for(let i in LISTS){if(LISTS.hasOwnProperty(i)){try{LISTS[i]=LISTS[i].map(it=>it.split("$").slice(0,2).join("$"))}catch(e){print("格式化LISTS发生错误:"+e.message)}}}vod_play_url=LISTS.map(it=>it.join("#")).join(vod_play_url)}catch(e){print("js执行lists: 发生错误:"+e.message)}}else{let list_text=p.list_text||"body&&Text";let list_url=p.list_url||"a&&href";let is_tab_js=p.tabs.trim().startsWith("js:");for(let i=0;i1&&!is_tab_js?p.tabs.split(";")[1]:"";let p1=p.lists.replaceAll("#idv",tab_name).replaceAll("#id",i);tab_ext=tab_ext.replaceAll("#idv",tab_name).replaceAll("#id",i);let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}let new_vod_list=[];let tabName=tab_ext?_pdfh(html,tab_ext):tab_name;console.log(tabName);let tt1=(new Date).getTime();if(vodList.length>0){for(let i=0;ix.split("$")[0]);console.log(`drpy影响性能代码共计列表数循环次数:${vodList.length},耗时:${(new Date).getTime()-tt1}毫秒`)}let vlist=new_vod_list.join("#");vod_tab_list.push(vlist)}vod_play_url=vod_tab_list.join(vod_play_url)}}vod.vod_play_url=vod_play_url}if(rule.图片来源&&vod.vod_pic&&vod.vod_pic.startsWith("http")){vod.vod_pic=vod.vod_pic+rule.图片来源}if(!vod.vod_id||vod_id.includes("$")&&vod.vod_id!==vod_id){vod.vod_id=vod_id}let t2=(new Date).getTime();console.log(`加载二级界面${MY_URL}耗时:${t2-t1}毫秒`);return JSON.stringify({list:[vod]})}function tellIsJx(url){try{let is_vip=!/\.(m3u8|mp4|m4a)$/.test(url.split("?")[0])&&是否正版(url);return is_vip?1:0}catch(e){return 1}}function playParse(playObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));MY_URL=playObj.url;if(!/http/.test(MY_URL)){try{MY_URL=base64Decode(MY_URL)}catch(e){}}MY_URL=decodeURIComponent(MY_URL);var input=MY_URL;let common_play={parse:1,url:input,jx:tellIsJx(input)};let lazy_play;if(!rule.play_parse||!rule.lazy){lazy_play=common_play}else if(rule.play_parse&&rule.lazy&&typeof rule.lazy==="string"){try{let lazy_code=rule.lazy.replace("js:","").trim();print("开始执行js免嗅=>"+lazy_code);eval(lazy_code);lazy_play=typeof input==="object"?input:{parse:1,jx:tellIsJx(input),url:input}}catch(e){print("js免嗅错误:"+e.message);lazy_play=common_play}}else{lazy_play=common_play}if(Array.isArray(rule.play_json)&&rule.play_json.length>0){let web_url=lazy_play.url;for(let pjson of rule.play_json){if(pjson.re&&(pjson.re==="*"||web_url.match(new RegExp(pjson.re)))){if(pjson.json&&typeof pjson.json==="object"){let base_json=pjson.json;lazy_play=Object.assign(lazy_play,base_json);break}}}}else if(rule.play_json&&!Array.isArray(rule.play_json)){let base_json={jx:1,parse:1};lazy_play=Object.assign(lazy_play,base_json)}else if(!rule.play_json){let base_json={jx:0,parse:1};lazy_play=Object.assign(lazy_play,base_json)}console.log(JSON.stringify(lazy_play));return JSON.stringify(lazy_play)}function proxyParse(proxyObj){var input=proxyObj.params;if(proxyObj.proxy_rule){log("准备执行本地代理规则:\n"+proxyObj.proxy_rule);try{eval(proxyObj.proxy_rule);if(input&&input!==proxyObj.params&&Array.isArray(input)&&input.length===3){return input}else{return[404,"text/plain","Not Found"]}}catch(e){return[500,"text/plain","代理规则错误:"+e.message]}}else{return[404,"text/plain","Not Found"]}}function isVideoParse(isVideoObj){var input=isVideoObj.url;if(!isVideoObj.t){let re_matcher=new RegExp(isVideoObj.isVideo,"i");return re_matcher.test(input)}else{try{eval(isVideoObj.isVideo);if(typeof input==="boolean"){return input}else{return false}}catch(e){log("执行嗅探规则发生错误:"+e.message);return false}}}function init(ext){console.log("init");try{let muban=模板.getMubans();if(typeof ext=="object"){rule=ext}else if(typeof ext=="string"){if(ext.startsWith("http")){let js=request(ext,{method:"GET"});if(js){eval(js.replace("var rule","rule"))}}else{eval(ext.replace("var rule","rule"))}}if(rule.模板&&muban.hasOwnProperty(rule.模板)){print("继承模板:"+rule.模板);rule=Object.assign(muban[rule.模板],rule)}let rule_cate_excludes=(rule.cate_exclude||"").split("|").filter(it=>it.trim());let rule_tab_excludes=(rule.tab_exclude||"").split("|").filter(it=>it.trim());rule_cate_excludes=rule_cate_excludes.concat(CATE_EXCLUDE.split("|").filter(it=>it.trim()));rule_tab_excludes=rule_tab_excludes.concat(TAB_EXCLUDE.split("|").filter(it=>it.trim()));rule.cate_exclude=rule_cate_excludes.join("|");rule.tab_exclude=rule_tab_excludes.join("|");rule.host=(rule.host||"").rstrip("/");HOST=rule.host;if(rule.hostJs){console.log(`检测到hostJs,准备执行...`);try{eval(rule.hostJs);rule.host=HOST.rstrip("/")}catch(e){console.log(`执行${rule.hostJs}获取host发生错误:`+e.message)}}rule.url=rule.url||"";rule.double=rule.double||false;rule.homeUrl=rule.homeUrl||"";rule.detailUrl=rule.detailUrl||"";rule.searchUrl=rule.searchUrl||"";rule.homeUrl=rule.host&&rule.homeUrl?urljoin(rule.host,rule.homeUrl):rule.homeUrl||rule.host;rule.detailUrl=rule.host&&rule.detailUrl?urljoin(rule.host,rule.detailUrl):rule.detailUrl;rule.二级访问前=rule.二级访问前||"";if(rule.url.includes("[")&&rule.url.includes("]")){let u1=rule.url.split("[")[0];let u2=rule.url.split("[")[1].split("]")[0];rule.url=rule.host&&rule.url?urljoin(rule.host,u1)+"["+urljoin(rule.host,u2)+"]":rule.url}else{rule.url=rule.host&&rule.url?urljoin(rule.host,rule.url):rule.url}rule.searchUrl=rule.host&&rule.searchUrl?urljoin(rule.host,rule.searchUrl):rule.searchUrl;rule.timeout=rule.timeout||5e3;rule.encoding=rule.编码||rule.encoding||"utf-8";rule.search_encoding=rule.搜索编码||rule.search_encoding||"";rule.图片来源=rule.图片来源||"";rule.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};rule.proxy_rule=rule.hasOwnProperty("proxy_rule")?rule.proxy_rule:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";if(rule.headers&&typeof rule.headers==="object"){try{let header_keys=Object.keys(rule.headers);for(let k of header_keys){if(k.toLowerCase()==="user-agent"){let v=rule.headers[k];console.log(v);if(["MOBILE_UA","PC_UA","UC_UA","IOS_UA","UA"].includes(v)){rule.headers[k]=eval(v)}}}}catch(e){console.log("处理headers发生错误:"+e.message)}}rule_fetch_params={headers:rule.headers||false,timeout:rule.timeout,encoding:rule.encoding};oheaders=rule.headers||{};RKEY=typeof key!=="undefined"&&key?key:"drpy_"+(rule.title||rule.host);pre();init_test()}catch(e){console.log("init_test发生错误:"+e.message)}}let homeHtmlCache=undefined;function home(filter){console.log("home");let homeObj={filter:rule.filter||false,MY_URL:rule.homeUrl,class_name:rule.class_name||"",class_url:rule.class_url||"",class_parse:rule.class_parse||"",cate_exclude:rule.cate_exclude};return homeParse(homeObj)}function homeVod(params){console.log("homeVod");let homeVodObj={"推荐":rule.推荐,double:rule.double,homeUrl:rule.homeUrl,detailUrl:rule.detailUrl};return homeVodParse(homeVodObj)}function category(tid,pg,filter,extend){let cateObj={url:rule.url,"一级":rule.一级,tid:tid,pg:parseInt(pg),filter:filter,extend:extend};return categoryParse(cateObj)}function detail(vod_url){let orId=vod_url;let fyclass="";if(vod_url.indexOf("$")>-1){let tmp=vod_url.split("$");fyclass=tmp[0];vod_url=tmp[1]}let detailUrl=vod_url.split("@@")[0];let url;if(!detailUrl.startsWith("http")&&!detailUrl.includes("/")){url=rule.detailUrl.replaceAll("fyid",detailUrl).replaceAll("fyclass",fyclass)}else if(detailUrl.includes("/")){url=urljoin(rule.homeUrl,detailUrl)}else{url=detailUrl}let detailObj={orId:orId,url:url,"二级":rule.二级,"二级访问前":rule.二级访问前,detailUrl:detailUrl,fyclass:fyclass,tab_exclude:rule.tab_exclude};return detailParse(detailObj)}function play(flag,id,flags){let playObj={url:id,flag:flag,flags:flags};return playParse(playObj)}function search(wd,quick,pg){if(rule.search_encoding){if(rule.search_encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.search_encoding)}}else if(rule.encoding&&rule.encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.encoding)}let searchObj={searchUrl:rule.searchUrl,"搜索":rule.搜索,wd:wd,pg:pg||1,quick:quick};return searchParse(searchObj)}function proxy(params){if(rule.proxy_rule&&rule.proxy_rule.trim()){rule.proxy_rule=rule.proxy_rule.trim()}if(rule.proxy_rule.startsWith(":js")){rule.proxy_rule=rule.proxy_rule.replace(":js","")}let proxyObj={params:params,proxy_rule:rule.proxy_rule};return proxyParse(proxyObj)}function sniffer(){let enable_sniffer=rule.sniffer||false;if(enable_sniffer){log("准备执行辅助嗅探代理规则:\n"+rule.isVideo)}return enable_sniffer}function isVideo(url){let t=0;if(rule.isVideo&&rule.isVideo.trim()){rule.isVideo=rule.isVideo.trim()}if(rule.isVideo.startsWith(":js")){rule.isVideo=rule.isVideo.replace(":js","");t=1}let isVideoObj={url:url,isVideo:rule.isVideo,t:t};return isVideoParse(isVideoObj)}function DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
+import cheerio from"./6077d402239b1f12a08cf5eed64bc45d.js";import"./46d340dbc76bcd753ff3fe7bcb6f42e4.js";import"./d389209568274f76e7ffa4a60956b808.js";import 模板 from"./91a17a111eb2fa6409d00bd44389de75.js";import{gbkTool}from"./0c9d2a5ba04613e4329ce23fa981a530.js";function init_test(){console.log("init_test_start");console.log("当前版本号:"+VERSION);console.log(RKEY);console.log(JSON.stringify(rule));console.log("init_test_end")}function pre(){if(typeof rule.预处理==="string"&&rule.预处理&&rule.预处理.trim()){let code=rule.预处理.trim();console.log("执行预处理代码:"+code);if(code.startsWith("js:")){code=code.replace("js:","")}try{eval(code)}catch(e){console.log("预处理执行失败:"+e.message)}}}let rule={};const VERSION="drpy1 3.9.47beta32 20230911";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";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";const UA="Mozilla/5.0";const UC_UA="Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36";const IOS_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 RULE_CK="cookie";const CATE_EXCLUDE="首页|留言|APP|下载|资讯|新闻|动态";const TAB_EXCLUDE="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/text";if(typeof MY_URL==="undefined"){var MY_URL}var HOST;var RKEY;var fetch;var print;var log;var rule_fetch_params;var fetch_params;var oheaders;var _pdfh;var _pdfa;var _pd;const DOM_CHECK_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/;const SPECIAL_URL=/^(ftp|magnet|thunder|ws):/;const SELECT_REGEX=/:eq|:lt|:gt|#/g;const SELECT_REGEX_A=/:eq|:lt|:gt/g;if(typeof Object.assign!="function"){Object.assign=function(){var target=arguments[0];for(var i=1;ithis.length){return false}else{return this.indexOf(search,start)!==-1}}}if(!Array.prototype.includes){Object.defineProperty(Array.prototype,"includes",{value:function(searchElement,fromIndex){if(this==null){throw new TypeError('"this" is null or not defined')}var o=Object(this);var len=o.length>>>0;if(len===0){return false}var n=fromIndex|0;var k=Math.max(n>=0?n:len-Math.abs(n),0);while(k=end){return lists}let first=lists[start];let second=lists[end];if(key){try{first=first[key];second=second[key]}catch(e){}}if(option&&typeof option==="function"){try{first=option(first);second=option(second)}catch(e){}}first+="";second+="";if(first.match(/(\d+)/)&&second.match(/(\d+)/)){let num1=Number(first.match(/(\d+)/)[1]);let num2=Number(second.match(/(\d+)/)[1]);if(num1>num2){lists.reverse()}}return lists}let VODS=[];let VOD={};let TABS=[];let LISTS=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;function urljoin(fromPath,nowPath){fromPath=fromPath||"";nowPath=nowPath||"";return joinUrl(fromPath,nowPath)}var urljoin2=urljoin;const defaultParser={pdfh:pdfh,pdfa:pdfa,pd(html,parse,uri){let ret=this.pdfh(html,parse);if(typeof uri==="undefined"||!uri){uri=""}if(DOM_CHECK_ATTR.test(parse)&&!SPECIAL_URL.test(ret)){if(/http/.test(ret)){ret=ret.substr(ret.indexOf("http"))}else{ret=urljoin(MY_URL,ret)}}return ret}};function pdfh2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print("html对象转文本发生了错误:"+e.message)}let result=defaultParser.pdfh(html2,parse);let option=parse.includes("&&")?parse.split("&&").slice(-1)[0]:parse.split(" ").slice(-1)[0];if(/style/.test(option.toLowerCase())&&/url\(/.test(result)){try{result=result.match(/url\((.*?)\)/)[1];result=result.replace(/^['|"](.*)['|"]$/,"$1")}catch(e){}}return result}function pdfa2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print("html对象转文本发生了错误:"+e.message)}return defaultParser.pdfa(html2,parse)}function pd2(html,parse,uri){let ret=pdfh2(html,parse);if(typeof uri==="undefined"||!uri){uri=""}if(DOM_CHECK_ATTR.test(parse)&&!SPECIAL_URL.test(ret)){if(/http/.test(ret)){ret=ret.substr(ret.indexOf("http"))}else{ret=urljoin(MY_URL,ret)}}return ret}const parseTags={jsp:{pdfh:pdfh2,pdfa:pdfa2,pd:pd2},json:{pdfh(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}parse=parse.split("||");for(let ps of parse){let ret=cheerio.jp(ps,html);if(Array.isArray(ret)){ret=ret[0]||""}else{ret=ret||""}if(ret&&typeof ret!=="string"){ret=ret.toString()}if(ret){return ret}}return""},pdfa(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}let ret=cheerio.jp(parse,html);if(Array.isArray(ret)&&Array.isArray(ret[0])&&ret.length===1){return ret[0]||[]}return ret||[]},pd(html,parse){let ret=parseTags.json.pdfh(html,parse);if(ret){return urljoin(MY_URL,ret)}return ret}},jq:{pdfh(html,parse,base_url){if(!parse||!parse.trim()){return""}let eleFind=typeof html==="object";let option=undefined;if(eleFind&&parse.startsWith("body&&")){parse=parse.substr(6);if(parse.indexOf("&&")<0){option=parse.trim();parse="*=*"}}if(parse.indexOf("&&")>-1){let sp=parse.split("&&");option=sp[sp.length-1];sp.splice(sp.length-1);if(sp.length>1){for(let i in sp){if(sp.hasOwnProperty(i)){if(!SELECT_REGEX.test(sp[i])){sp[i]=sp[i]+":eq(0)"}}}}else{if(!SELECT_REGEX.test(sp[0])){sp[0]=sp[0]+":eq(0)"}}parse=sp.join(" ")}let result="";const $=eleFind?html.rr:cheerio.load(html);let ret=eleFind?parse==="*=*"||$(html.ele).is(parse)?html.ele:$(html.ele).find(parse):$(parse);if(option){if(option==="Text"){result=$(ret).text()}else if(option==="Html"){result=$(ret).html()}else{result=$(ret).attr(option);if(/style/.test(option.toLowerCase())&&/url\(/.test(result)){try{result=result.match(/url\((.*?)\)/)[1];result=result.replace(/^['|"](.*)['|"]$/,"$1")}catch(e){}}}if(result&&base_url&&DOM_CHECK_ATTR.test(option)&&!SPECIAL_URL.test(result)){if(/http/.test(result)){result=result.substr(result.indexOf("http"))}else{result=urljoin(base_url,result)}}}else{result=$(ret).toString()}return result},pdfa(html,parse){if(!parse||!parse.trim()){print("!parse");return[]}let eleFind=typeof html==="object";if(parse.indexOf("&&")>-1){let sp=parse.split("&&");for(let i in sp){if(sp.hasOwnProperty(i)){if(!SELECT_REGEX_A.test(sp[i])&&iit.toLowerCase()==="set-cookie");cookie=setCk?json[setCk].split(";")[0]:""}console.log("cookie:"+cookie);let img=json.body;let code=OcrApi.classification(img);console.log(`第${cnt+1}次验证码识别结果:${code}`);let submit_url=`${host}/index.php/ajax/verify_check?type=search&verify=${code}`;console.log(submit_url);let html=request(submit_url,{headers:{Cookie:cookie,"User-Agent":MOBILE_UA},method:"POST"});html=JSON.parse(html);if(html.msg==="ok"){console.log(`第${cnt+1}次验证码提交成功`);return cookie}else if(html.msg!=="ok"&&cnt+1>=OCR_RETRY){cookie=""}}catch(e){console.log(`第${cnt+1}次验证码提交失败:${e.message}`);if(cnt+1>=OCR_RETRY){cookie=""}}cnt+=1}return cookie}function setItem(k,v){local.set(RKEY,k,v);console.log(`规则${RKEY}设置${k} => ${v}`)}function getItem(k,v){return local.get(RKEY,k)||v}function clearItem(k){local.delete(RKEY,k)}function getHome(url){if(!url){return""}let tmp=url.split("//");url=tmp[0]+"//"+tmp[1].split("/")[0];try{url=decodeURIComponent(url)}catch(e){}return url}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}function require(url){eval(request(url))}function request(url,obj,ocr_flag){ocr_flag=ocr_flag||false;if(typeof obj==="undefined"||!obj||obj==={}){if(!fetch_params||!fetch_params.headers){let headers={"User-Agent":MOBILE_UA};if(rule.headers){Object.assign(headers,rule.headers)}if(!fetch_params){fetch_params={}}fetch_params.headers=headers}if(!fetch_params.headers.Referer){fetch_params.headers.Referer=getHome(url)}obj=fetch_params}else{let headers=obj.headers||{};let keys=Object.keys(headers).map(it=>it.toLowerCase());if(!keys.includes("user-agent")){headers["User-Agent"]=MOBILE_UA}if(!keys.includes("referer")){headers["Referer"]=getHome(url)}obj.headers=headers}if(rule.encoding&&rule.encoding!=="utf-8"&&!ocr_flag){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="text/html; charset="+rule.encoding}}if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="string"){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="application/x-www-form-urlencoded; charset="+rule.encoding}}else if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="object"){obj.data=obj.body;delete obj.body}if(!url){return obj.withHeaders?"{}":""}if(obj.toBase64){obj.buffer=2;delete obj.toBase64}console.log(JSON.stringify(obj.headers));console.log("request:"+url+`|method:${obj.method||"GET"}|body:${obj.body||""}`);let res=req(url,obj);let html=res.content||"";if(obj.withHeaders){let htmlWithHeaders=res.headers;htmlWithHeaders.body=html;return JSON.stringify(htmlWithHeaders)}else{return html}}function post(url,obj){obj.method="POST";return request(url,obj)}fetch=request;print=function(data){data=data||"";if(typeof data=="object"&&Object.keys(data).length>0){try{data=JSON.stringify(data);console.log(data)}catch(e){console.log(typeof data+":"+data.length);return}}else if(typeof data=="object"&&Object.keys(data).length<1){console.log("null object")}else{console.log(data)}};log=print;function checkHtml(html,url,obj){if(/\?btwaf=/.test(html)){let btwaf=html.match(/btwaf(.*?)"/)[1];url=url.split("#")[0]+"?btwaf"+btwaf;print("宝塔验证访问链接:"+url);html=request(url,obj)}return html}function getCode(url,obj){let html=request(url,obj);html=checkHtml(html,url,obj);return html}function getHtml(url){let obj={};if(rule.headers){obj.headers=rule.headers}let cookie=getItem(RULE_CK,"");if(cookie){if(obj.headers&&!Object.keys(obj.headers).map(it=>it.toLowerCase()).includes("cookie")){log("历史无cookie,新增过验证后的cookie");obj.headers["Cookie"]=cookie}else if(obj.headers&&obj.headers.cookie&&obj.headers.cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有小写过期的cookie,更新过验证后的cookie")}else if(obj.headers&&obj.headers.Cookie&&obj.headers.Cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有大写过期的cookie,更新过验证后的cookie")}else if(!obj.headers){obj.headers={Cookie:cookie};log("历史无headers,更新过验证后的含cookie的headers")}}let html=getCode(url,obj);return html}function homeParse(homeObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let classes=[];if(homeObj.class_name&&homeObj.class_url){let names=homeObj.class_name.split("&");let urls=homeObj.class_url.split("&");let cnt=Math.min(names.length,urls.length);for(let i=0;i=3){try{let html=getHtml(homeObj.MY_URL);if(html){homeHtmlCache=html;let list=_pdfa(html,p[0]);if(list&&list.length>0){list.forEach((it,idex)=>{try{let name=_pdfh(it,p[1]);if(homeObj.cate_exclude&&new RegExp(homeObj.cate_exclude).test(name)){return}let url=_pd(it,p[2]);if(p.length>3&&p[3]){let exp=new RegExp(p[3]);url=url.match(exp)[1]}classes.push({type_id:url.trim(),type_name:name.trim()})}catch(e){console.log(`分类列表定位第${idex}个元素正常报错:${e.message}`)}})}}}catch(e){console.log(e.message)}}}classes=classes.filter(it=>!homeObj.cate_exclude||!new RegExp(homeObj.cate_exclude).test(it.type_name));let resp={class:classes};if(homeObj.filter){resp.filters=homeObj.filter}console.log(JSON.stringify(resp));return JSON.stringify(resp)}function getPP(p,pn,pp,ppn){try{let ps=p[pn]==="*"&&pp.length>ppn?pp[ppn]:p[pn];return ps}catch(e){return""}}function homeVodParse(homeVodObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];MY_URL=homeVodObj.homeUrl;console.log(MY_URL);let t1=(new Date).getTime();let p=homeVodObj.推荐;print("p:"+p);if(p==="*"&&rule.一级){p=rule.一级;homeVodObj.double=false}if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级.split(";");if(p.startsWith("js:")){const TYPE="home";var input=MY_URL;HOST=rule.host;eval(p.replace("js:",""));d=VODS}else{p=p.split(";");if(!homeVodObj.double&&p.length<5){return"{}"}else if(homeVodObj.double&&p.length<6){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");let html=homeHtmlCache||getHtml(MY_URL);homeHtmlCache=undefined;if(is_json){html=dealJson(html)}try{console.log("double:"+homeVodObj.double);if(homeVodObj.double){let items=_pdfa(html,p0);let p1=getPP(p,1,pp,0);let p2=getPP(p,2,pp,1);let p3=getPP(p,3,pp,2);let p4=getPP(p,4,pp,3);let p5=getPP(p,5,pp,4);let p6=getPP(p,6,pp,5);for(let item of items){let items2=_pdfa(item,p1);for(let item2 of items2){try{let title=_pdfh(item2,p2);let img="";try{img=_pd(item2,p3)}catch(e){}let desc="";try{desc=_pdfh(item2,p4)}catch(e){}let links=[];for(let _p5 of p5.split("+")){let link=!homeVodObj.detailUrl?_pd(item2,_p5,MY_URL):_pdfh(item2,_p5);links.push(link)}let content;if(p.length>6&&p[6]){content=_pdfh(item2,p6)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){console.log("首页列表处理发生错误:"+e.message)}}}}else{let items=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);for(let item of items){try{let title=_pdfh(item,p1);let img="";try{img=_pd(item,p2,MY_URL)}catch(e){}let desc="";try{desc=_pdfh(item,p3)}catch(e){}let links=[];for(let _p5 of p4.split("+")){let link=!homeVodObj.detailUrl?_pd(item,_p5,MY_URL):_pdfh(item,_p5);links.push(link)}let content;if(p.length>5&&p[5]){content=_pdfh(item,p5)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){}}}}catch(e){}}let t2=(new Date).getTime();console.log("加载首页推荐耗时:"+(t2-t1)+"毫秒");if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}return JSON.stringify({list:d})}function categoryParse(cateObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let p=cateObj.一级;if(!p||typeof p!=="string"){return"{}"}let d=[];let url=cateObj.url.replaceAll("fyclass",cateObj.tid);if(cateObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(cateObj.pg>1&&url.includes("[")&&url.includes("]")){url=url.split("[")[0]}if(rule.filter_url){if(!/fyfilter/.test(url)){if(!url.endsWith("&")&&!rule.filter_url.startsWith("&")){url+="&"}url+=rule.filter_url}else{url=url.replace("fyfilter",rule.filter_url)}let fl=cateObj.filter?cateObj.extend:{};if(rule.filter_def&&typeof rule.filter_def==="object"){try{if(Object.keys(rule.filter_def).length>0&&rule.filter_def.hasOwnProperty(cateObj.tid)){let self_fl_def=rule.filter_def[cateObj.tid];if(self_fl_def&&typeof self_fl_def==="object"){let fl_def=JSON.parse(JSON.stringify(self_fl_def));fl=Object.assign(fl_def,fl)}}}catch(e){print("合并不同分类对应的默认筛选出错:"+e.message)}}let new_url;new_url=cheerio.jinja2(url,{fl:fl});if(/object Object/.test(new_url)){new_url=drT.renderText(url,fl)}url=new_url}if(/fypage/.test(url)){if(url.includes("(")&&url.includes(")")){let url_rep=url.match(/.*?\((.*)\)/)[1];let cnt_page=url_rep.replaceAll("fypage",cateObj.pg);let cnt_pg=eval(cnt_page);url=url.replaceAll(url_rep,cnt_pg).replaceAll("(","").replaceAll(")","")}else{url=url.replaceAll("fypage",cateObj.pg)}}MY_URL=url;console.log(MY_URL);p=p.trim();const MY_CATE=cateObj.tid;if(p.startsWith("js:")){var MY_FL=cateObj.extend;const TYPE="cate";var input=MY_URL;const MY_PAGE=cateObj.pg;var desc="";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let _ps=parseTags.getParse(p[0]);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p[0].startsWith("json:");p[0]=p[0].replace(/^(jsp:|json:|jq:)/,"");try{let html=getHtml(MY_URL);if(html){if(is_json){html=dealJson(html)}let list=_pdfa(html,p[0]);list.forEach(it=>{let links=p[4].split("+").map(p4=>{return!rule.detailUrl?_pd(it,p4,MY_URL):_pdfh(it,p4)});let link=links.join("$");let vod_id=rule.detailUrl?MY_CATE+"$"+link:link;let vod_name=_pdfh(it,p[1]).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p[2],MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}d.push({vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p[3]).replace(/\n|\t/g,"").trim()})})}}catch(e){console.log(e.message)}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}let pagecount=0;if(rule.pagecount&&typeof rule.pagecount==="object"&&rule.pagecount.hasOwnProperty(MY_CATE)){print(`MY_CATE:${MY_CATE},pagecount:${JSON.stringify(rule.pagecount)}`);pagecount=parseInt(rule.pagecount[MY_CATE])}let nodata={list:[{vod_name:"无数据,防无限请求",vod_id:"no_data",vod_remarks:"不要点,会崩的",vod_pic:"https://ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}],total:1,pagecount:1,page:1,limit:1};let vod=d.length<1?JSON.stringify(nodata):JSON.stringify({page:parseInt(cateObj.pg),pagecount:pagecount||999,limit:20,total:999,list:d});return vod}function searchParse(searchObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];if(!searchObj.searchUrl){return"{}"}let p=searchObj.搜索==="*"&&rule.一级?rule.一级:searchObj.搜索;if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级.split(";");let url=searchObj.searchUrl.replaceAll("**",searchObj.wd).replaceAll("fypage",searchObj.pg);MY_URL=url;console.log(MY_URL);if(p.startsWith("js:")){const TYPE="search";const MY_PAGE=searchObj.pg;const KEY=searchObj.wd;var input=MY_URL;var detailUrl=rule.detailUrl||"";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");try{let req_method=MY_URL.split(";").length>1?MY_URL.split(";")[1].toLowerCase():"get";let html;if(req_method==="post"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`post=》rurl:${rurl},params:${params}`);let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else if(req_method==="postjson"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`postjson-》rurl:${rurl},params:${params}`);try{params=JSON.parse(params)}catch(e){params="{}"}let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else{html=getHtml(MY_URL)}if(html){if(/系统安全验证|输入验证码/.test(html)){let cookie=verifyCode(MY_URL);if(cookie){console.log(`本次成功过验证,cookie:${cookie}`);setItem(RULE_CK,cookie)}else{console.log(`本次自动过搜索验证失败,cookie:${cookie}`)}html=getHtml(MY_URL)}if(!html.includes(searchObj.wd)){console.log("搜索结果源码未包含关键字,疑似搜索失败,正为您打印结果源码");console.log(html)}if(is_json){html=dealJson(html)}let list=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);list.forEach(it=>{let links=p4.split("+").map(_p4=>{return!rule.detailUrl?_pd(it,_p4,MY_URL):_pdfh(it,_p4)});let link=links.join("$");let content;if(p.length>5&&p[5]){content=_pdfh(it,p5)}else{content=""}let vod_id=link;let vod_name=_pdfh(it,p1).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p2,MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}let ob={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p3).replace(/\n|\t/g,"").trim(),vod_content:content.replace(/\n|\t/g,"").trim()};d.push(ob)})}}catch(e){print("搜索发生错误:"+e.message);return"{}"}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}return JSON.stringify({page:parseInt(searchObj.pg),pagecount:10,limit:20,total:100,list:d})}function detailParse(detailObj){let t1=(new Date).getTime();fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let orId=detailObj.orId;let vod_name="片名";let vod_pic="";let vod_id=orId;if(rule.二级==="*"){let extra=orId.split("@@");vod_name=extra.length>1?extra[1]:vod_name;vod_pic=extra.length>2?extra[2]:vod_pic}let vod={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,type_name:"类型",vod_year:"年份",vod_area:"地区",vod_remarks:"更新信息",vod_actor:"主演",vod_director:"导演",vod_content:"简介"};let p=detailObj.二级;let url=detailObj.url;let detailUrl=detailObj.detailUrl;let fyclass=detailObj.fyclass;let tab_exclude=detailObj.tab_exclude;let html=detailObj.html||"";MY_URL=url;if(detailObj.二级访问前){try{print(`尝试在二级访问前执行代码:${detailObj.二级访问前}`);eval(detailObj.二级访问前.trim().replace("js:",""))}catch(e){print(`二级访问前执行代码出现错误:${e.message}`)}}if(p==="*"){vod.vod_play_from="道长在线";vod.vod_remarks=detailUrl;vod.vod_actor="没有二级,只有一级链接直接嗅探播放";vod.vod_content=MY_URL;vod.vod_play_url="嗅探播放$"+MY_URL.split("@@")[0]}else if(typeof p==="string"&&p.trim().startsWith("js:")){const TYPE="detail";var input=MY_URL;var play_url="";eval(p.trim().replace("js:",""));vod=VOD;console.log(JSON.stringify(vod))}else if(p&&typeof p==="object"){let tt1=(new Date).getTime();if(!html){html=getHtml(MY_URL)}print(`二级${MY_URL}仅获取源码耗时:${(new Date).getTime()-tt1}毫秒`);let _impJQP=false;let _ps;if(p.is_json){print("二级是json");_ps=parseTags.json;html=dealJson(html)}else if(p.is_jsp){print("二级是jsp");_ps=parseTags.jsp}else if(p.is_jq){print("二级是jq");_ps=parseTags.jq}else{print("二级默认jq");_ps=parseTags.jq}if(_ps===parseTags.jq){_impJQP=true}if(_impJQP){let ttt1=(new Date).getTime();let c$=cheerio.load(html);html={rr:c$,ele:c$("html")[0]};print(`二级${MY_URL}仅cheerio.load源码耗时:${(new Date).getTime()-ttt1}毫秒`)}let tt2=(new Date).getTime();print(`二级${MY_URL}获取并装载源码耗时:${tt2-tt1}毫秒`);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;if(p.title){let p1=p.title.split(";");vod.vod_name=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();let type_name=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").replace(/ /g,"").trim():"";vod.type_name=type_name||vod.type_name}if(p.desc){try{let p1=p.desc.split(";");vod.vod_remarks=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();vod.vod_year=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").trim():"";vod.vod_area=p1.length>2?_pdfh(html,p1[2]).replace(/\n|\t/g,"").trim():"";vod.vod_actor=p1.length>3?_pdfh(html,p1[3]).replace(/\n|\t/g,"").trim():"";vod.vod_director=p1.length>4?_pdfh(html,p1[4]).replace(/\n|\t/g,"").trim():""}catch(e){}}if(p.content){try{let p1=p.content.split(";");vod.vod_content=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim()}catch(e){}}if(p.img){try{let p1=p.img.split(";");vod.vod_pic=_pd(html,p1[0],MY_URL)}catch(e){}}let vod_play_from="$$$";let playFrom=[];if(p.重定向&&p.重定向.startsWith("js:")){print("开始执行重定向代码:"+p.重定向);html=eval(p.重定向.replace("js:",""));if(_impJQP){let c$=cheerio.load(html);html={rr:c$,ele:c$("html")[0]}}}if(p.tabs){if(p.tabs.startsWith("js:")){print("开始执行tabs代码:"+p.tabs);if(html&&_impJQP&&typeof html!=="string"){try{html=html.rr(html.ele).toString()}catch(e){}}var input=MY_URL;eval(p.tabs.replace("js:",""));playFrom=TABS}else{let p_tab=p.tabs.split(";")[0];let vHeader=_pdfa(html,p_tab);console.log(vHeader.length);let tab_text=p.tab_text||"body&&Text";let new_map={};for(let v of vHeader){let v_title=_pdfh(v,tab_text).trim();console.log(v_title);if(tab_exclude&&new RegExp(tab_exclude).test(v_title)){continue}if(!new_map.hasOwnProperty(v_title)){new_map[v_title]=1}else{new_map[v_title]+=1}if(new_map[v_title]>1){v_title+=Number(new_map[v_title]-1)}playFrom.push(v_title)}}console.log(JSON.stringify(playFrom))}else{playFrom=["道长在线"]}vod.vod_play_from=playFrom.join(vod_play_from);let vod_play_url="$$$";let vod_tab_list=[];if(p.lists){if(p.lists.startsWith("js:")){print("开始执行lists代码:"+p.lists);try{if(html&&_impJQP&&typeof html!=="string"){try{html=html.rr(html.ele).toString()}catch(e){}}var input=MY_URL;var play_url="";eval(p.lists.replace("js:",""));for(let i in LISTS){if(LISTS.hasOwnProperty(i)){try{LISTS[i]=LISTS[i].map(it=>it.split("$").slice(0,2).join("$"))}catch(e){print("格式化LISTS发生错误:"+e.message)}}}vod_play_url=LISTS.map(it=>it.join("#")).join(vod_play_url)}catch(e){print("js执行lists: 发生错误:"+e.message)}}else{let list_text=p.list_text||"body&&Text";let list_url=p.list_url||"a&&href";let is_tab_js=p.tabs.trim().startsWith("js:");for(let i=0;i1&&!is_tab_js?p.tabs.split(";")[1]:"";let p1=p.lists.replaceAll("#idv",tab_name).replaceAll("#id",i);tab_ext=tab_ext.replaceAll("#idv",tab_name).replaceAll("#id",i);let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}let new_vod_list=[];let tabName=tab_ext?_pdfh(html,tab_ext):tab_name;console.log(tabName);let tt1=(new Date).getTime();if(vodList.length>0){for(let i=0;ix.split("$")[0]);console.log(`drpy影响性能代码共计列表数循环次数:${vodList.length},耗时:${(new Date).getTime()-tt1}毫秒`)}let vlist=new_vod_list.join("#");vod_tab_list.push(vlist)}vod_play_url=vod_tab_list.join(vod_play_url)}}vod.vod_play_url=vod_play_url}if(rule.图片来源&&vod.vod_pic&&vod.vod_pic.startsWith("http")){vod.vod_pic=vod.vod_pic+rule.图片来源}if(!vod.vod_id||vod_id.includes("$")&&vod.vod_id!==vod_id){vod.vod_id=vod_id}let t2=(new Date).getTime();console.log(`加载二级界面${MY_URL}耗时:${t2-t1}毫秒`);return JSON.stringify({list:[vod]})}function tellIsJx(url){try{let is_vip=!/\.(m3u8|mp4|m4a)$/.test(url.split("?")[0])&&是否正版(url);return is_vip?1:0}catch(e){return 1}}function playParse(playObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));MY_URL=playObj.url;if(!/http/.test(MY_URL)){try{MY_URL=base64Decode(MY_URL)}catch(e){}}MY_URL=decodeURIComponent(MY_URL);var input=MY_URL;let common_play={parse:1,url:input,jx:tellIsJx(input)};let lazy_play;if(!rule.play_parse||!rule.lazy){lazy_play=common_play}else if(rule.play_parse&&rule.lazy&&typeof rule.lazy==="string"){try{let lazy_code=rule.lazy.replace("js:","").trim();print("开始执行js免嗅=>"+lazy_code);eval(lazy_code);lazy_play=typeof input==="object"?input:{parse:1,jx:tellIsJx(input),url:input}}catch(e){print("js免嗅错误:"+e.message);lazy_play=common_play}}else{lazy_play=common_play}if(Array.isArray(rule.play_json)&&rule.play_json.length>0){let web_url=lazy_play.url;for(let pjson of rule.play_json){if(pjson.re&&(pjson.re==="*"||web_url.match(new RegExp(pjson.re)))){if(pjson.json&&typeof pjson.json==="object"){let base_json=pjson.json;lazy_play=Object.assign(lazy_play,base_json);break}}}}else if(rule.play_json&&!Array.isArray(rule.play_json)){let base_json={jx:1,parse:1};lazy_play=Object.assign(lazy_play,base_json)}else if(!rule.play_json){let base_json={jx:0,parse:1};lazy_play=Object.assign(lazy_play,base_json)}console.log(JSON.stringify(lazy_play));return JSON.stringify(lazy_play)}function proxyParse(proxyObj){var input=proxyObj.params;if(proxyObj.proxy_rule){log("准备执行本地代理规则:\n"+proxyObj.proxy_rule);try{eval(proxyObj.proxy_rule);if(input&&input!==proxyObj.params&&Array.isArray(input)&&input.length===3){return input}else{return[404,"text/plain","Not Found"]}}catch(e){return[500,"text/plain","代理规则错误:"+e.message]}}else{return[404,"text/plain","Not Found"]}}function isVideoParse(isVideoObj){var input=isVideoObj.url;if(!isVideoObj.t){let re_matcher=new RegExp(isVideoObj.isVideo,"i");return re_matcher.test(input)}else{try{eval(isVideoObj.isVideo);if(typeof input==="boolean"){return input}else{return false}}catch(e){log("执行嗅探规则发生错误:"+e.message);return false}}}function init(ext){console.log("init");try{let muban=模板.getMubans();if(typeof ext=="object"){rule=ext}else if(typeof ext=="string"){if(ext.startsWith("http")){let js=request(ext,{method:"GET"});if(js){eval(js.replace("var rule","rule"))}}else{eval(ext.replace("var rule","rule"))}}if(rule.模板&&muban.hasOwnProperty(rule.模板)){print("继承模板:"+rule.模板);rule=Object.assign(muban[rule.模板],rule)}let rule_cate_excludes=(rule.cate_exclude||"").split("|").filter(it=>it.trim());let rule_tab_excludes=(rule.tab_exclude||"").split("|").filter(it=>it.trim());rule_cate_excludes=rule_cate_excludes.concat(CATE_EXCLUDE.split("|").filter(it=>it.trim()));rule_tab_excludes=rule_tab_excludes.concat(TAB_EXCLUDE.split("|").filter(it=>it.trim()));rule.cate_exclude=rule_cate_excludes.join("|");rule.tab_exclude=rule_tab_excludes.join("|");rule.host=(rule.host||"").rstrip("/");HOST=rule.host;if(rule.hostJs){console.log(`检测到hostJs,准备执行...`);try{eval(rule.hostJs);rule.host=HOST.rstrip("/")}catch(e){console.log(`执行${rule.hostJs}获取host发生错误:`+e.message)}}rule.url=rule.url||"";rule.double=rule.double||false;rule.homeUrl=rule.homeUrl||"";rule.detailUrl=rule.detailUrl||"";rule.searchUrl=rule.searchUrl||"";rule.homeUrl=rule.host&&rule.homeUrl?urljoin(rule.host,rule.homeUrl):rule.homeUrl||rule.host;rule.detailUrl=rule.host&&rule.detailUrl?urljoin(rule.host,rule.detailUrl):rule.detailUrl;rule.二级访问前=rule.二级访问前||"";if(rule.url.includes("[")&&rule.url.includes("]")){let u1=rule.url.split("[")[0];let u2=rule.url.split("[")[1].split("]")[0];rule.url=rule.host&&rule.url?urljoin(rule.host,u1)+"["+urljoin(rule.host,u2)+"]":rule.url}else{rule.url=rule.host&&rule.url?urljoin(rule.host,rule.url):rule.url}rule.searchUrl=rule.host&&rule.searchUrl?urljoin(rule.host,rule.searchUrl):rule.searchUrl;rule.timeout=rule.timeout||5e3;rule.encoding=rule.编码||rule.encoding||"utf-8";rule.search_encoding=rule.搜索编码||rule.search_encoding||"";rule.图片来源=rule.图片来源||"";rule.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};rule.proxy_rule=rule.hasOwnProperty("proxy_rule")?rule.proxy_rule:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";if(rule.headers&&typeof rule.headers==="object"){try{let header_keys=Object.keys(rule.headers);for(let k of header_keys){if(k.toLowerCase()==="user-agent"){let v=rule.headers[k];console.log(v);if(["MOBILE_UA","PC_UA","UC_UA","IOS_UA","UA"].includes(v)){rule.headers[k]=eval(v)}}}}catch(e){console.log("处理headers发生错误:"+e.message)}}rule_fetch_params={headers:rule.headers||false,timeout:rule.timeout,encoding:rule.encoding};oheaders=rule.headers||{};RKEY=typeof key!=="undefined"&&key?key:"drpy_"+(rule.title||rule.host);pre();init_test()}catch(e){console.log("init_test发生错误:"+e.message)}}let homeHtmlCache=undefined;function home(filter){console.log("home");let homeObj={filter:rule.filter||false,MY_URL:rule.homeUrl,class_name:rule.class_name||"",class_url:rule.class_url||"",class_parse:rule.class_parse||"",cate_exclude:rule.cate_exclude};return homeParse(homeObj)}function homeVod(params){console.log("homeVod");let homeVodObj={"推荐":rule.推荐,double:rule.double,homeUrl:rule.homeUrl,detailUrl:rule.detailUrl};return homeVodParse(homeVodObj)}function category(tid,pg,filter,extend){let cateObj={url:rule.url,"一级":rule.一级,tid:tid,pg:parseInt(pg),filter:filter,extend:extend};return categoryParse(cateObj)}function detail(vod_url){let orId=vod_url;let fyclass="";if(vod_url.indexOf("$")>-1){let tmp=vod_url.split("$");fyclass=tmp[0];vod_url=tmp[1]}let detailUrl=vod_url.split("@@")[0];let url;if(!detailUrl.startsWith("http")&&!detailUrl.includes("/")){url=rule.detailUrl.replaceAll("fyid",detailUrl).replaceAll("fyclass",fyclass)}else if(detailUrl.includes("/")){url=urljoin(rule.homeUrl,detailUrl)}else{url=detailUrl}let detailObj={orId:orId,url:url,"二级":rule.二级,"二级访问前":rule.二级访问前,detailUrl:detailUrl,fyclass:fyclass,tab_exclude:rule.tab_exclude};return detailParse(detailObj)}function play(flag,id,flags){let playObj={url:id,flag:flag,flags:flags};return playParse(playObj)}function search(wd,quick,pg){if(rule.search_encoding){if(rule.search_encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.search_encoding)}}else if(rule.encoding&&rule.encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.encoding)}let searchObj={searchUrl:rule.searchUrl,"搜索":rule.搜索,wd:wd,pg:pg||1,quick:quick};return searchParse(searchObj)}function proxy(params){if(rule.proxy_rule&&rule.proxy_rule.trim()){rule.proxy_rule=rule.proxy_rule.trim()}if(rule.proxy_rule.startsWith("js:")){rule.proxy_rule=rule.proxy_rule.replace("js:","")}let proxyObj={params:params,proxy_rule:rule.proxy_rule};return proxyParse(proxyObj)}function sniffer(){let enable_sniffer=rule.sniffer||false;if(enable_sniffer){log("准备执行辅助嗅探代理规则:\n"+rule.isVideo)}return enable_sniffer}function isVideo(url){let t=0;if(rule.isVideo&&rule.isVideo.trim()){rule.isVideo=rule.isVideo.trim()}if(rule.isVideo.startsWith("js:")){rule.isVideo=rule.isVideo.replace("js:","");t=1}let isVideoObj={url:url,isVideo:rule.isVideo,t:t};return isVideoParse(isVideoObj)}function DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/南风/drpy2.min.js b/tvboxqq/南风/drpy2.min.js
index cd96d19..7bfd977 100644
--- a/tvboxqq/南风/drpy2.min.js
+++ b/tvboxqq/南风/drpy2.min.js
@@ -1 +1 @@
-import cheerio from"./6077d402239b1f12a08cf5eed64bc45d.js";import"./46d340dbc76bcd753ff3fe7bcb6f42e4.js";import 模板 from"./91a17a111eb2fa6409d00bd44389de75.js";import{gbkTool}from"./0c9d2a5ba04613e4329ce23fa981a530.js";function init_test(){console.log("init_test_start");console.log("当前版本号:"+VERSION);console.log(RKEY);console.log(JSON.stringify(rule));console.log("init_test_end")}function pre(){if(typeof rule.预处理==="string"&&rule.预处理&&rule.预处理.trim()){let code=rule.预处理.trim();console.log("执行预处理代码:"+code);if(code.startsWith("js:")){code=code.replace("js:","")}try{eval(code)}catch(e){console.log("预处理执行失败:"+e.message)}}}let rule={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.47beta23 20230804";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";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";const UA="Mozilla/5.0";const UC_UA="Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36";const IOS_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 RULE_CK="cookie";const CATE_EXCLUDE="首页|留言|APP|下载|资讯|新闻|动态";const TAB_EXCLUDE="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/text";if(typeof MY_URL==="undefined"){var MY_URL}var HOST;var RKEY;var fetch;var print;var log;var rule_fetch_params;var fetch_params;var oheaders;var _pdfh;var _pdfa;var _pd;const DOM_CHECK_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/;const SPECIAL_URL=/^(ftp|magnet|thunder|ws):/;const NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/;const SELECT_REGEX=/:eq|:lt|:gt|#/g;const SELECT_REGEX_A=/:eq|:lt|:gt/g;if(typeof Object.assign!="function"){Object.assign=function(){var target=arguments[0];for(var i=1;ithis.length){return false}else{return this.indexOf(search,start)!==-1}}}if(!Array.prototype.includes){Object.defineProperty(Array.prototype,"includes",{value:function(searchElement,fromIndex){if(this==null){throw new TypeError('"this" is null or not defined')}var o=Object(this);var len=o.length>>>0;if(len===0){return false}var n=fromIndex|0;var k=Math.max(n>=0?n:len-Math.abs(n),0);while(k=end){return lists}let first=lists[start];let second=lists[end];if(key){try{first=first[key];second=second[key]}catch(e){}}if(option&&typeof option==="function"){try{first=option(first);second=option(second)}catch(e){}}first+="";second+="";if(first.match(/(\d+)/)&&second.match(/(\d+)/)){let num1=Number(first.match(/(\d+)/)[1]);let num2=Number(second.match(/(\d+)/)[1]);if(num1>num2){lists.reverse()}}return lists}let VODS=[];let VOD={};let TABS=[];let LISTS=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;function urljoin(fromPath,nowPath){fromPath=fromPath||"";nowPath=nowPath||"";return joinUrl(fromPath,nowPath)}var urljoin2=urljoin;const defaultParser={pdfh:pdfh,pdfa:pdfa,pd:pd};function pdfh2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print("html对象转文本发生了错误:"+e.message)}let result=defaultParser.pdfh(html2,parse);let option=parse.includes("&&")?parse.split("&&").slice(-1)[0]:parse.split(" ").slice(-1)[0];if(/style/.test(option.toLowerCase())&&/url\(/.test(result)){try{result=result.match(/url\((.*?)\)/)[1];result=result.replace(/^['|"](.*)['|"]$/,"$1")}catch(e){}}return result}function pdfa2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print("html对象转文本发生了错误:"+e.message)}return defaultParser.pdfa(html2,parse)}function pd2(html,parse,uri){let ret=pdfh2(html,parse);if(typeof uri==="undefined"||!uri){uri=""}if(DOM_CHECK_ATTR.test(parse)&&!SPECIAL_URL.test(ret)){if(/http/.test(ret)){ret=ret.substr(ret.indexOf("http"))}else{ret=urljoin(MY_URL,ret)}}return ret}const parseTags={jsp:{pdfh:pdfh2,pdfa:pdfa2,pd:pd2},json:{pdfh(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}parse=parse.split("||");for(let ps of parse){let ret=cheerio.jp(ps,html);if(Array.isArray(ret)){ret=ret[0]||""}else{ret=ret||""}if(ret&&typeof ret!=="string"){ret=ret.toString()}if(ret){return ret}}return""},pdfa(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}let ret=cheerio.jp(parse,html);if(Array.isArray(ret)&&Array.isArray(ret[0])&&ret.length===1){return ret[0]||[]}return ret||[]},pd(html,parse){let ret=parseTags.json.pdfh(html,parse);if(ret){return urljoin(MY_URL,ret)}return ret}},jq:{pdfh(html,parse){if(!html||!parse||!parse.trim()){return""}parse=parse.trim();let result=defaultParser.pdfh(html,parse);return result},pdfa(html,parse){if(!html||!parse||!parse.trim()){return[]}parse=parse.trim();let result=defaultParser.pdfa(html,parse);print(`pdfa解析${parse}=>${result.length}`);return result},pd(html,parse,base_url){if(!html||!parse||!parse.trim()){return""}parse=parse.trim();base_url=base_url||MY_URL;return defaultParser.pd(html,parse,base_url)}},getParse(p0){if(p0.startsWith("jsp:")){return this.jsp}else if(p0.startsWith("json:")){return this.json}else if(p0.startsWith("jq:")){return this.jq}else{return this.jq}}};const stringify=JSON.stringify;const jsp=parseTags.jsp;const jq=parseTags.jq;function readFile(filePath){filePath=filePath||"./uri.min.js";var fd=os.open(filePath);var buffer=new ArrayBuffer(1024);var len=os.read(fd,buffer,0,1024);console.log(len);let text=String.fromCharCode.apply(null,new Uint8Array(buffer));console.log(text);return text}function dealJson(html){try{html=html.trim();if(!(html.startsWith("{")&&html.endsWith("}")||html.startsWith("[")&&html.endsWith("]"))){html="{"+html.match(/.*?\{(.*)\}/m)[1]+"}"}}catch(e){}try{html=JSON.parse(html)}catch(e){}return html}var OcrApi={api:OCR_API,classification:function(img){let code="";try{log("通过drpy_ocr验证码接口过验证...");let html=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.toLowerCase()==="set-cookie");cookie=setCk?json[setCk].split(";")[0]:""}console.log("cookie:"+cookie);let img=json.body;let code=OcrApi.classification(img);console.log(`第${cnt+1}次验证码识别结果:${code}`);let submit_url=`${host}/index.php/ajax/verify_check?type=search&verify=${code}`;console.log(submit_url);let html=request(submit_url,{headers:{Cookie:cookie,"User-Agent":MOBILE_UA},method:"POST"});html=JSON.parse(html);if(html.msg==="ok"){console.log(`第${cnt+1}次验证码提交成功`);return cookie}else if(html.msg!=="ok"&&cnt+1>=OCR_RETRY){cookie=""}}catch(e){console.log(`第${cnt+1}次验证码提交失败:${e.message}`);if(cnt+1>=OCR_RETRY){cookie=""}}cnt+=1}return cookie}function setItem(k,v){local.set(RKEY,k,v);console.log(`规则${RKEY}设置${k} => ${v}`)}function getItem(k,v){return local.get(RKEY,k)||v}function clearItem(k){local.delete(RKEY,k)}function getHome(url){if(!url){return""}let tmp=url.split("//");url=tmp[0]+"//"+tmp[1].split("/")[0];try{url=decodeURIComponent(url)}catch(e){}return url}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}function require(url){eval(request(url))}function request(url,obj,ocr_flag){ocr_flag=ocr_flag||false;if(typeof obj==="undefined"||!obj||obj==={}){if(!fetch_params||!fetch_params.headers){let headers={"User-Agent":MOBILE_UA};if(rule.headers){Object.assign(headers,rule.headers)}if(!fetch_params){fetch_params={}}fetch_params.headers=headers}if(!fetch_params.headers.Referer){fetch_params.headers.Referer=getHome(url)}obj=fetch_params}else{let headers=obj.headers||{};let keys=Object.keys(headers).map(it=>it.toLowerCase());if(!keys.includes("user-agent")){headers["User-Agent"]=MOBILE_UA}if(!keys.includes("referer")){headers["Referer"]=getHome(url)}obj.headers=headers}if(rule.encoding&&rule.encoding!=="utf-8"&&!ocr_flag){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="text/html; charset="+rule.encoding}}if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="string"){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="application/x-www-form-urlencoded; charset="+rule.encoding}}else if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="object"){obj.data=obj.body;delete obj.body}if(!url){return obj.withHeaders?"{}":""}if(obj.toBase64){obj.buffer=2;delete obj.toBase64}console.log(JSON.stringify(obj.headers));console.log("request:"+url+`|method:${obj.method||"GET"}|body:${obj.body||""}`);let res=req(url,obj);let html=res.content||"";if(obj.withHeaders){let htmlWithHeaders=res.headers;htmlWithHeaders.body=html;return JSON.stringify(htmlWithHeaders)}else{return html}}function post(url,obj){obj.method="POST";return request(url,obj)}fetch=request;print=function(data){data=data||"";if(typeof data=="object"&&Object.keys(data).length>0){try{data=JSON.stringify(data);console.log(data)}catch(e){console.log(typeof data+":"+data.length);return}}else if(typeof data=="object"&&Object.keys(data).length<1){console.log("null object")}else{console.log(data)}};log=print;function checkHtml(html,url,obj){if(/\?btwaf=/.test(html)){let btwaf=html.match(/btwaf(.*?)"/)[1];url=url.split("#")[0]+"?btwaf"+btwaf;print("宝塔验证访问链接:"+url);html=request(url,obj)}return html}function getCode(url,obj){let html=request(url,obj);html=checkHtml(html,url,obj);return html}function getHtml(url){let obj={};if(rule.headers){obj.headers=rule.headers}let cookie=getItem(RULE_CK,"");if(cookie){if(obj.headers&&!Object.keys(obj.headers).map(it=>it.toLowerCase()).includes("cookie")){log("历史无cookie,新增过验证后的cookie");obj.headers["Cookie"]=cookie}else if(obj.headers&&obj.headers.cookie&&obj.headers.cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有小写过期的cookie,更新过验证后的cookie")}else if(obj.headers&&obj.headers.Cookie&&obj.headers.Cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有大写过期的cookie,更新过验证后的cookie")}else if(!obj.headers){obj.headers={Cookie:cookie};log("历史无headers,更新过验证后的含cookie的headers")}}let html=getCode(url,obj);return html}function homeParse(homeObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let classes=[];if(homeObj.class_name&&homeObj.class_url){let names=homeObj.class_name.split("&");let urls=homeObj.class_url.split("&");let cnt=Math.min(names.length,urls.length);for(let i=0;i=3){try{let html=getHtml(homeObj.MY_URL);if(html){homeHtmlCache=html;let list=_pdfa(html,p[0]);if(list&&list.length>0){list.forEach((it,idex)=>{try{let name=_pdfh(it,p[1]);if(homeObj.cate_exclude&&new RegExp(homeObj.cate_exclude).test(name)){return}let url=_pd(it,p[2]);if(p.length>3&&p[3]){let exp=new RegExp(p[3]);url=url.match(exp)[1]}classes.push({type_id:url.trim(),type_name:name.trim()})}catch(e){console.log(`分类列表定位第${idex}个元素正常报错:${e.message}`)}})}}}catch(e){console.log(e.message)}}}classes=classes.filter(it=>!homeObj.cate_exclude||!new RegExp(homeObj.cate_exclude).test(it.type_name));let resp={class:classes};if(homeObj.filter){resp.filters=homeObj.filter}console.log(JSON.stringify(resp));return JSON.stringify(resp)}function getPP(p,pn,pp,ppn){try{let ps=p[pn]==="*"&&pp.length>ppn?pp[ppn]:p[pn];return ps}catch(e){return""}}function homeVodParse(homeVodObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];MY_URL=homeVodObj.homeUrl;console.log(MY_URL);let t1=(new Date).getTime();let p=homeVodObj.推荐;print("p:"+p);if(p==="*"&&rule.一级){p=rule.一级;homeVodObj.double=false}if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级.split(";");if(p.startsWith("js:")){const TYPE="home";var input=MY_URL;HOST=rule.host;eval(p.replace("js:",""));d=VODS}else{p=p.split(";");if(!homeVodObj.double&&p.length<5){return"{}"}else if(homeVodObj.double&&p.length<6){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");let html=homeHtmlCache||getHtml(MY_URL);homeHtmlCache=undefined;if(is_json){html=dealJson(html)}try{console.log("double:"+homeVodObj.double);if(homeVodObj.double){let items=_pdfa(html,p0);let p1=getPP(p,1,pp,0);let p2=getPP(p,2,pp,1);let p3=getPP(p,3,pp,2);let p4=getPP(p,4,pp,3);let p5=getPP(p,5,pp,4);let p6=getPP(p,6,pp,5);for(let item of items){let items2=_pdfa(item,p1);for(let item2 of items2){try{let title=_pdfh(item2,p2);let img="";try{img=_pd(item2,p3)}catch(e){}let desc="";try{desc=_pdfh(item2,p4)}catch(e){}let links=[];for(let _p5 of p5.split("+")){let link=!homeVodObj.detailUrl?_pd(item2,_p5,MY_URL):_pdfh(item2,_p5);links.push(link)}let content;if(p.length>6&&p[6]){content=_pdfh(item2,p6)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){console.log("首页列表双层定位处理发生错误:"+e.message)}}}}else{let items=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);for(let item of items){try{let title=_pdfh(item,p1);let img="";try{img=_pd(item,p2,MY_URL)}catch(e){}let desc="";try{desc=_pdfh(item,p3)}catch(e){}let links=[];for(let _p5 of p4.split("+")){let link=!homeVodObj.detailUrl?_pd(item,_p5,MY_URL):_pdfh(item,_p5);links.push(link)}let content;if(p.length>5&&p[5]){content=_pdfh(item,p5)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){console.log("首页列表单层定位处理发生错误:"+e.message)}}}}catch(e){}}let t2=(new Date).getTime();console.log("加载首页推荐耗时:"+(t2-t1)+"毫秒");if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}return JSON.stringify({list:d})}function categoryParse(cateObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let p=cateObj.一级;if(!p||typeof p!=="string"){return"{}"}let d=[];let url=cateObj.url.replaceAll("fyclass",cateObj.tid);if(cateObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(cateObj.pg>1&&url.includes("[")&&url.includes("]")){url=url.split("[")[0]}if(rule.filter_url){if(!/fyfilter/.test(url)){if(!url.endsWith("&")&&!rule.filter_url.startsWith("&")){url+="&"}url+=rule.filter_url}else{url=url.replace("fyfilter",rule.filter_url)}let fl=cateObj.filter?cateObj.extend:{};if(rule.filter_def&&typeof rule.filter_def==="object"){try{if(Object.keys(rule.filter_def).length>0&&rule.filter_def.hasOwnProperty(cateObj.tid)){let self_fl_def=rule.filter_def[cateObj.tid];if(self_fl_def&&typeof self_fl_def==="object"){let fl_def=JSON.parse(JSON.stringify(self_fl_def));fl=Object.assign(fl_def,fl)}}}catch(e){print("合并不同分类对应的默认筛选出错:"+e.message)}}let new_url;new_url=cheerio.jinja2(url,{fl:fl});url=new_url}if(/fypage/.test(url)){if(url.includes("(")&&url.includes(")")){let url_rep=url.match(/.*?\((.*)\)/)[1];let cnt_page=url_rep.replaceAll("fypage",cateObj.pg);let cnt_pg=eval(cnt_page);url=url.replaceAll(url_rep,cnt_pg).replaceAll("(","").replaceAll(")","")}else{url=url.replaceAll("fypage",cateObj.pg)}}MY_URL=url;console.log(MY_URL);p=p.trim();const MY_CATE=cateObj.tid;if(p.startsWith("js:")){var MY_FL=cateObj.extend;const TYPE="cate";var input=MY_URL;const MY_PAGE=cateObj.pg;var desc="";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let _ps=parseTags.getParse(p[0]);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p[0].startsWith("json:");p[0]=p[0].replace(/^(jsp:|json:|jq:)/,"");try{let html=getHtml(MY_URL);if(html){if(is_json){html=dealJson(html)}let list=_pdfa(html,p[0]);list.forEach(it=>{let links=p[4].split("+").map(p4=>{return!rule.detailUrl?_pd(it,p4,MY_URL):_pdfh(it,p4)});let link=links.join("$");let vod_id=rule.detailUrl?MY_CATE+"$"+link:link;let vod_name=_pdfh(it,p[1]).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p[2],MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}d.push({vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p[3]).replace(/\n|\t/g,"").trim()})})}}catch(e){console.log(e.message)}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}let pagecount=0;if(rule.pagecount&&typeof rule.pagecount==="object"&&rule.pagecount.hasOwnProperty(MY_CATE)){print(`MY_CATE:${MY_CATE},pagecount:${JSON.stringify(rule.pagecount)}`);pagecount=parseInt(rule.pagecount[MY_CATE])}let nodata={list:[{vod_name:"无数据,防无限请求",vod_id:"no_data",vod_remarks:"不要点,会崩的",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}],total:1,pagecount:1,page:1,limit:1};let vod=d.length<1?JSON.stringify(nodata):JSON.stringify({page:parseInt(cateObj.pg),pagecount:pagecount||999,limit:20,total:999,list:d});return vod}function searchParse(searchObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];if(!searchObj.searchUrl){return"{}"}let p=searchObj.搜索==="*"&&rule.一级?rule.一级:searchObj.搜索;if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级.split(";");let url=searchObj.searchUrl.replaceAll("**",searchObj.wd).replaceAll("fypage",searchObj.pg);MY_URL=url;console.log(MY_URL);if(p.startsWith("js:")){const TYPE="search";const MY_PAGE=searchObj.pg;const KEY=searchObj.wd;var input=MY_URL;var detailUrl=rule.detailUrl||"";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");try{let req_method=MY_URL.split(";").length>1?MY_URL.split(";")[1].toLowerCase():"get";let html;if(req_method==="post"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`post=》rurl:${rurl},params:${params}`);let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else if(req_method==="postjson"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`postjson-》rurl:${rurl},params:${params}`);try{params=JSON.parse(params)}catch(e){params="{}"}let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else{html=getHtml(MY_URL)}if(html){if(/系统安全验证|输入验证码/.test(html)){let cookie=verifyCode(MY_URL);if(cookie){console.log(`本次成功过验证,cookie:${cookie}`);setItem(RULE_CK,cookie)}else{console.log(`本次自动过搜索验证失败,cookie:${cookie}`)}html=getHtml(MY_URL)}if(!html.includes(searchObj.wd)){console.log("搜索结果源码未包含关键字,疑似搜索失败,正为您打印结果源码");console.log(html)}if(is_json){html=dealJson(html)}let list=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);list.forEach(it=>{let links=p4.split("+").map(_p4=>{return!rule.detailUrl?_pd(it,_p4,MY_URL):_pdfh(it,_p4)});let link=links.join("$");let content;if(p.length>5&&p[5]){content=_pdfh(it,p5)}else{content=""}let vod_id=link;let vod_name=_pdfh(it,p1).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p2,MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}let ob={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p3).replace(/\n|\t/g,"").trim(),vod_content:content.replace(/\n|\t/g,"").trim()};d.push(ob)})}}catch(e){print("搜索发生错误:"+e.message);return"{}"}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}return JSON.stringify({page:parseInt(searchObj.pg),pagecount:10,limit:20,total:100,list:d})}function detailParse(detailObj){let t1=(new Date).getTime();fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let orId=detailObj.orId;let vod_name="片名";let vod_pic="";let vod_id=orId;if(rule.二级==="*"){let extra=orId.split("@@");vod_name=extra.length>1?extra[1]:vod_name;vod_pic=extra.length>2?extra[2]:vod_pic}let vod={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,type_name:"类型",vod_year:"年份",vod_area:"地区",vod_remarks:"更新信息",vod_actor:"主演",vod_director:"导演",vod_content:"简介"};let p=detailObj.二级;let url=detailObj.url;let detailUrl=detailObj.detailUrl;let fyclass=detailObj.fyclass;let tab_exclude=detailObj.tab_exclude;let html=detailObj.html||"";MY_URL=url;if(detailObj.二级访问前){try{print(`尝试在二级访问前执行代码:${detailObj.二级访问前}`);eval(detailObj.二级访问前.trim().replace("js:",""))}catch(e){print(`二级访问前执行代码出现错误:${e.message}`)}}if(p==="*"){vod.vod_play_from="道长在线";vod.vod_remarks=detailUrl;vod.vod_actor="没有二级,只有一级链接直接嗅探播放";vod.vod_content=MY_URL;vod.vod_play_url="嗅探播放$"+MY_URL.split("@@")[0]}else if(typeof p==="string"&&p.trim().startsWith("js:")){const TYPE="detail";var input=MY_URL;var play_url="";eval(p.trim().replace("js:",""));vod=VOD;console.log(JSON.stringify(vod))}else if(p&&typeof p==="object"){let tt1=(new Date).getTime();if(!html){html=getHtml(MY_URL)}print(`二级${MY_URL}仅获取源码耗时:${(new Date).getTime()-tt1}毫秒`);let _ps;if(p.is_json){print("二级是json");_ps=parseTags.json;html=dealJson(html)}else if(p.is_jsp){print("二级是jsp");_ps=parseTags.jsp}else if(p.is_jq){print("二级是jq");_ps=parseTags.jq}else{print("二级默认jq");_ps=parseTags.jq}let tt2=(new Date).getTime();print(`二级${MY_URL}获取并装载源码耗时:${tt2-tt1}毫秒`);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;if(p.title){let p1=p.title.split(";");vod.vod_name=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();let type_name=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").replace(/ /g,"").trim():"";vod.type_name=type_name||vod.type_name}if(p.desc){try{let p1=p.desc.split(";");vod.vod_remarks=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();vod.vod_year=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").trim():"";vod.vod_area=p1.length>2?_pdfh(html,p1[2]).replace(/\n|\t/g,"").trim():"";vod.vod_actor=p1.length>3?_pdfh(html,p1[3]).replace(/\n|\t/g,"").trim():"";vod.vod_director=p1.length>4?_pdfh(html,p1[4]).replace(/\n|\t/g,"").trim():""}catch(e){}}if(p.content){try{let p1=p.content.split(";");vod.vod_content=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim()}catch(e){}}if(p.img){try{let p1=p.img.split(";");vod.vod_pic=_pd(html,p1[0],MY_URL)}catch(e){}}let vod_play_from="$$$";let playFrom=[];if(p.重定向&&p.重定向.startsWith("js:")){print("开始执行重定向代码:"+p.重定向);html=eval(p.重定向.replace("js:",""))}if(p.tabs){if(p.tabs.startsWith("js:")){print("开始执行tabs代码:"+p.tabs);var input=MY_URL;eval(p.tabs.replace("js:",""));playFrom=TABS}else{let p_tab=p.tabs.split(";")[0];let vHeader=_pdfa(html,p_tab);console.log(vHeader.length);let tab_text=p.tab_text||"body&&Text";let new_map={};for(let v of vHeader){let v_title=_pdfh(v,tab_text).trim();console.log(v_title);if(tab_exclude&&new RegExp(tab_exclude).test(v_title)){continue}if(!new_map.hasOwnProperty(v_title)){new_map[v_title]=1}else{new_map[v_title]+=1}if(new_map[v_title]>1){v_title+=Number(new_map[v_title]-1)}playFrom.push(v_title)}}console.log(JSON.stringify(playFrom))}else{playFrom=["道长在线"]}vod.vod_play_from=playFrom.join(vod_play_from);let vod_play_url="$$$";let vod_tab_list=[];if(p.lists){if(p.lists.startsWith("js:")){print("开始执行lists代码:"+p.lists);try{var input=MY_URL;var play_url="";eval(p.lists.replace("js:",""));for(let i in LISTS){if(LISTS.hasOwnProperty(i)){try{LISTS[i]=LISTS[i].map(it=>it.split("$").slice(0,2).join("$"))}catch(e){print("格式化LISTS发生错误:"+e.message)}}}vod_play_url=LISTS.map(it=>it.join("#")).join(vod_play_url)}catch(e){print("js执行lists: 发生错误:"+e.message)}}else{let list_text=p.list_text||"body&&Text";let list_url=p.list_url||"a&&href";let is_tab_js=p.tabs.trim().startsWith("js:");for(let i=0;i1&&!is_tab_js?p.tabs.split(";")[1]:"";let p1=p.lists.replaceAll("#idv",tab_name).replaceAll("#id",i);tab_ext=tab_ext.replaceAll("#idv",tab_name).replaceAll("#id",i);let tabName=tab_ext?_pdfh(html,tab_ext):tab_name;console.log(tabName);let new_vod_list=[];let tt1=(new Date).getTime();if(typeof pdfl==="function"){new_vod_list=pdfl(html,p1,list_text,list_url,MY_URL)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){new_vod_list=forceOrder(new_vod_list,"",x=>x.split("$")[0]);console.log(`drpy影响性能代码共计列表数循环次数:${new_vod_list.length},耗时:${(new Date).getTime()-tt1}毫秒`)}let vlist=new_vod_list.join("#");vod_tab_list.push(vlist)}vod_play_url=vod_tab_list.join(vod_play_url)}}vod.vod_play_url=vod_play_url}if(rule.图片来源&&vod.vod_pic&&vod.vod_pic.startsWith("http")){vod.vod_pic=vod.vod_pic+rule.图片来源}if(!vod.vod_id||vod_id.includes("$")&&vod.vod_id!==vod_id){vod.vod_id=vod_id}let t2=(new Date).getTime();console.log(`加载二级界面${MY_URL}耗时:${t2-t1}毫秒`);return JSON.stringify({list:[vod]})}function tellIsJx(url){try{let is_vip=!/\.(m3u8|mp4|m4a)$/.test(url.split("?")[0])&&是否正版(url);return is_vip?1:0}catch(e){return 1}}function playParse(playObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));MY_URL=playObj.url;if(!/http/.test(MY_URL)){try{MY_URL=base64Decode(MY_URL)}catch(e){}}MY_URL=decodeURIComponent(MY_URL);var input=MY_URL;let common_play={parse:1,url:input,jx:tellIsJx(input)};let lazy_play;if(!rule.play_parse||!rule.lazy){lazy_play=common_play}else if(rule.play_parse&&rule.lazy&&typeof rule.lazy==="string"){try{let lazy_code=rule.lazy.replace("js:","").trim();print("开始执行js免嗅=>"+lazy_code);eval(lazy_code);lazy_play=typeof input==="object"?input:{parse:1,jx:tellIsJx(input),url:input}}catch(e){print("js免嗅错误:"+e.message);lazy_play=common_play}}else{lazy_play=common_play}if(Array.isArray(rule.play_json)&&rule.play_json.length>0){let web_url=lazy_play.url;for(let pjson of rule.play_json){if(pjson.re&&(pjson.re==="*"||web_url.match(new RegExp(pjson.re)))){if(pjson.json&&typeof pjson.json==="object"){let base_json=pjson.json;lazy_play=Object.assign(lazy_play,base_json);break}}}}else if(rule.play_json&&!Array.isArray(rule.play_json)){let base_json={jx:1,parse:1};lazy_play=Object.assign(lazy_play,base_json)}else if(!rule.play_json){let base_json={jx:0,parse:1};lazy_play=Object.assign(lazy_play,base_json)}console.log(JSON.stringify(lazy_play));return JSON.stringify(lazy_play)}function proxyParse(proxyObj){var input=proxyObj.params;if(proxyObj.proxy_rule){log("准备执行本地代理规则:\n"+proxyObj.proxy_rule);try{eval(proxyObj.proxy_rule);if(input&&input!==proxyObj.params&&Array.isArray(input)&&input.length===3){return input}else{return[404,"text/plain","Not Found"]}}catch(e){return[500,"text/plain","代理规则错误:"+e.message]}}else{return[404,"text/plain","Not Found"]}}function isVideoParse(isVideoObj){var input=isVideoObj.url;if(!isVideoObj.t){let re_matcher=new RegExp(isVideoObj.isVideo,"i");return re_matcher.test(input)}else{try{eval(isVideoObj.isVideo);if(typeof input==="boolean"){return input}else{return false}}catch(e){log("执行嗅探规则发生错误:"+e.message);return false}}}function init(ext){console.log("init");try{let muban=模板.getMubans();if(typeof ext=="object"){rule=ext}else if(typeof ext=="string"){if(ext.startsWith("http")){let js=request(ext,{method:"GET"});if(js){eval(js.replace("var rule","rule"))}}else{eval(ext.replace("var rule","rule"))}}if(rule.模板&&muban.hasOwnProperty(rule.模板)){print("继承模板:"+rule.模板);rule=Object.assign(muban[rule.模板],rule)}let rule_cate_excludes=(rule.cate_exclude||"").split("|").filter(it=>it.trim());let rule_tab_excludes=(rule.tab_exclude||"").split("|").filter(it=>it.trim());rule_cate_excludes=rule_cate_excludes.concat(CATE_EXCLUDE.split("|").filter(it=>it.trim()));rule_tab_excludes=rule_tab_excludes.concat(TAB_EXCLUDE.split("|").filter(it=>it.trim()));rule.cate_exclude=rule_cate_excludes.join("|");rule.tab_exclude=rule_tab_excludes.join("|");rule.host=(rule.host||"").rstrip("/");HOST=rule.host;if(rule.hostJs){console.log(`检测到hostJs,准备执行...`);try{eval(rule.hostJs);rule.host=HOST.rstrip("/")}catch(e){console.log(`执行${rule.hostJs}获取host发生错误:`+e.message)}}rule.url=rule.url||"";rule.double=rule.double||false;rule.homeUrl=rule.homeUrl||"";rule.detailUrl=rule.detailUrl||"";rule.searchUrl=rule.searchUrl||"";rule.homeUrl=rule.host&&rule.homeUrl?urljoin(rule.host,rule.homeUrl):rule.homeUrl||rule.host;rule.detailUrl=rule.host&&rule.detailUrl?urljoin(rule.host,rule.detailUrl):rule.detailUrl;rule.二级访问前=rule.二级访问前||"";if(rule.url.includes("[")&&rule.url.includes("]")){let u1=rule.url.split("[")[0];let u2=rule.url.split("[")[1].split("]")[0];rule.url=rule.host&&rule.url?urljoin(rule.host,u1)+"["+urljoin(rule.host,u2)+"]":rule.url}else{rule.url=rule.host&&rule.url?urljoin(rule.host,rule.url):rule.url}rule.searchUrl=rule.host&&rule.searchUrl?urljoin(rule.host,rule.searchUrl):rule.searchUrl;rule.timeout=rule.timeout||5e3;rule.encoding=rule.编码||rule.encoding||"utf-8";rule.search_encoding=rule.搜索编码||rule.search_encoding||"";rule.图片来源=rule.图片来源||"";rule.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};rule.proxy_rule=rule.hasOwnProperty("proxy_rule")?rule.proxy_rule:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";if(rule.headers&&typeof rule.headers==="object"){try{let header_keys=Object.keys(rule.headers);for(let k of header_keys){if(k.toLowerCase()==="user-agent"){let v=rule.headers[k];console.log(v);if(["MOBILE_UA","PC_UA","UC_UA","IOS_UA","UA"].includes(v)){rule.headers[k]=eval(v)}}else if(k.toLowerCase()==="cookie"){let v=rule.headers[k];if(v&&v.startsWith("http")){console.log(v);try{v=fetch(v);console.log(v);rule.headers[k]=v}catch(e){console.log(`从${v}获取cookie发生错误:`+e.message)}}}}}catch(e){console.log("处理headers发生错误:"+e.message)}}rule_fetch_params={headers:rule.headers||false,timeout:rule.timeout,encoding:rule.encoding};oheaders=rule.headers||{};RKEY=typeof key!=="undefined"&&key?key:"drpy_"+(rule.title||rule.host);pre();init_test()}catch(e){console.log("init_test发生错误:"+e.message)}}let homeHtmlCache=undefined;function home(filter){console.log("home");let homeObj={filter:rule.filter||false,MY_URL:rule.homeUrl,class_name:rule.class_name||"",class_url:rule.class_url||"",class_parse:rule.class_parse||"",cate_exclude:rule.cate_exclude};return homeParse(homeObj)}function homeVod(params){console.log("homeVod");let homeVodObj={"推荐":rule.推荐,double:rule.double,homeUrl:rule.homeUrl,detailUrl:rule.detailUrl};return homeVodParse(homeVodObj)}function category(tid,pg,filter,extend){let cateObj={url:rule.url,"一级":rule.一级,tid:tid,pg:parseInt(pg),filter:filter,extend:extend};return categoryParse(cateObj)}function detail(vod_url){let orId=vod_url;let fyclass="";log("orId:"+orId);if(vod_url.indexOf("$")>-1){let tmp=vod_url.split("$");fyclass=tmp[0];vod_url=tmp[1]}let detailUrl=vod_url.split("@@")[0];let url;if(!detailUrl.startsWith("http")&&!detailUrl.includes("/")){url=rule.detailUrl.replaceAll("fyid",detailUrl).replaceAll("fyclass",fyclass)}else if(detailUrl.includes("/")){url=urljoin(rule.homeUrl,detailUrl)}else{url=detailUrl}let detailObj={orId:orId,url:url,"二级":rule.二级,"二级访问前":rule.二级访问前,detailUrl:detailUrl,fyclass:fyclass,tab_exclude:rule.tab_exclude};return detailParse(detailObj)}function play(flag,id,flags){let playObj={url:id,flag:flag,flags:flags};return playParse(playObj)}function search(wd,quick,pg){if(rule.search_encoding){if(rule.search_encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.search_encoding)}}else if(rule.encoding&&rule.encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.encoding)}let searchObj={searchUrl:rule.searchUrl,"搜索":rule.搜索,wd:wd,pg:pg||1,quick:quick};return searchParse(searchObj)}function proxy(params){if(rule.proxy_rule&&rule.proxy_rule.trim()){rule.proxy_rule=rule.proxy_rule.trim()}if(rule.proxy_rule.startsWith(":js")){rule.proxy_rule=rule.proxy_rule.replace(":js","")}let proxyObj={params:params,proxy_rule:rule.proxy_rule};return proxyParse(proxyObj)}function sniffer(){let enable_sniffer=rule.sniffer||false;if(enable_sniffer){log("准备执行辅助嗅探代理规则:\n"+rule.isVideo)}return enable_sniffer}function isVideo(url){let t=0;if(rule.isVideo&&rule.isVideo.trim()){rule.isVideo=rule.isVideo.trim()}if(rule.isVideo.startsWith(":js")){rule.isVideo=rule.isVideo.replace(":js","");t=1}let isVideoObj={url:url,isVideo:rule.isVideo,t:t};return isVideoParse(isVideoObj)}function DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
+import cheerio from"./6077d402239b1f12a08cf5eed64bc45d.js";import"./46d340dbc76bcd753ff3fe7bcb6f42e4.js";import 模板 from"./91a17a111eb2fa6409d00bd44389de75.js";import{gbkTool}from"./0c9d2a5ba04613e4329ce23fa981a530.js";function init_test(){console.log("init_test_start");console.log("当前版本号:"+VERSION);console.log(RKEY);console.log(JSON.stringify(rule));console.log("init_test_end")}function pre(){if(typeof rule.预处理==="string"&&rule.预处理&&rule.预处理.trim()){let code=rule.预处理.trim();console.log("执行预处理代码:"+code);if(code.startsWith("js:")){code=code.replace("js:","")}try{eval(code)}catch(e){console.log("预处理执行失败:"+e.message)}}}let rule={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.47beta32 20230911";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";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";const UA="Mozilla/5.0";const UC_UA="Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36";const IOS_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 RULE_CK="cookie";const CATE_EXCLUDE="首页|留言|APP|下载|资讯|新闻|动态";const TAB_EXCLUDE="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/text";if(typeof MY_URL==="undefined"){var MY_URL}var HOST;var RKEY;var fetch;var print;var log;var rule_fetch_params;var fetch_params;var oheaders;var _pdfh;var _pdfa;var _pd;const DOM_CHECK_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/;const SPECIAL_URL=/^(ftp|magnet|thunder|ws):/;const NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/;const SELECT_REGEX=/:eq|:lt|:gt|#/g;const SELECT_REGEX_A=/:eq|:lt|:gt/g;if(typeof Object.assign!="function"){Object.assign=function(){var target=arguments[0];for(var i=1;ithis.length){return false}else{return this.indexOf(search,start)!==-1}}}if(!Array.prototype.includes){Object.defineProperty(Array.prototype,"includes",{value:function(searchElement,fromIndex){if(this==null){throw new TypeError('"this" is null or not defined')}var o=Object(this);var len=o.length>>>0;if(len===0){return false}var n=fromIndex|0;var k=Math.max(n>=0?n:len-Math.abs(n),0);while(k=end){return lists}let first=lists[start];let second=lists[end];if(key){try{first=first[key];second=second[key]}catch(e){}}if(option&&typeof option==="function"){try{first=option(first);second=option(second)}catch(e){}}first+="";second+="";if(first.match(/(\d+)/)&&second.match(/(\d+)/)){let num1=Number(first.match(/(\d+)/)[1]);let num2=Number(second.match(/(\d+)/)[1]);if(num1>num2){lists.reverse()}}return lists}let VODS=[];let VOD={};let TABS=[];let LISTS=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;function urljoin(fromPath,nowPath){fromPath=fromPath||"";nowPath=nowPath||"";return joinUrl(fromPath,nowPath)}var urljoin2=urljoin;const defaultParser={pdfh:pdfh,pdfa:pdfa,pd:pd};function pdfh2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print("html对象转文本发生了错误:"+e.message)}let result=defaultParser.pdfh(html2,parse);let option=parse.includes("&&")?parse.split("&&").slice(-1)[0]:parse.split(" ").slice(-1)[0];if(/style/.test(option.toLowerCase())&&/url\(/.test(result)){try{result=result.match(/url\((.*?)\)/)[1];result=result.replace(/^['|"](.*)['|"]$/,"$1")}catch(e){}}return result}function pdfa2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print("html对象转文本发生了错误:"+e.message)}return defaultParser.pdfa(html2,parse)}function pd2(html,parse,uri){let ret=pdfh2(html,parse);if(typeof uri==="undefined"||!uri){uri=""}if(DOM_CHECK_ATTR.test(parse)&&!SPECIAL_URL.test(ret)){if(/http/.test(ret)){ret=ret.substr(ret.indexOf("http"))}else{ret=urljoin(MY_URL,ret)}}return ret}const parseTags={jsp:{pdfh:pdfh2,pdfa:pdfa2,pd:pd2},json:{pdfh(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}parse=parse.split("||");for(let ps of parse){let ret=cheerio.jp(ps,html);if(Array.isArray(ret)){ret=ret[0]||""}else{ret=ret||""}if(ret&&typeof ret!=="string"){ret=ret.toString()}if(ret){return ret}}return""},pdfa(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}let ret=cheerio.jp(parse,html);if(Array.isArray(ret)&&Array.isArray(ret[0])&&ret.length===1){return ret[0]||[]}return ret||[]},pd(html,parse){let ret=parseTags.json.pdfh(html,parse);if(ret){return urljoin(MY_URL,ret)}return ret}},jq:{pdfh(html,parse){if(!html||!parse||!parse.trim()){return""}parse=parse.trim();let result=defaultParser.pdfh(html,parse);return result},pdfa(html,parse){if(!html||!parse||!parse.trim()){return[]}parse=parse.trim();let result=defaultParser.pdfa(html,parse);print(`pdfa解析${parse}=>${result.length}`);return result},pd(html,parse,base_url){if(!html||!parse||!parse.trim()){return""}parse=parse.trim();base_url=base_url||MY_URL;return defaultParser.pd(html,parse,base_url)}},getParse(p0){if(p0.startsWith("jsp:")){return this.jsp}else if(p0.startsWith("json:")){return this.json}else if(p0.startsWith("jq:")){return this.jq}else{return this.jq}}};const stringify=JSON.stringify;const jsp=parseTags.jsp;const jq=parseTags.jq;function readFile(filePath){filePath=filePath||"./uri.min.js";var fd=os.open(filePath);var buffer=new ArrayBuffer(1024);var len=os.read(fd,buffer,0,1024);console.log(len);let text=String.fromCharCode.apply(null,new Uint8Array(buffer));console.log(text);return text}function dealJson(html){try{html=html.trim();if(!(html.startsWith("{")&&html.endsWith("}")||html.startsWith("[")&&html.endsWith("]"))){html="{"+html.match(/.*?\{(.*)\}/m)[1]+"}"}}catch(e){}try{html=JSON.parse(html)}catch(e){}return html}var OcrApi={api:OCR_API,classification:function(img){let code="";try{log("通过drpy_ocr验证码接口过验证...");let html=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.toLowerCase()==="set-cookie");cookie=setCk?json[setCk].split(";")[0]:""}console.log("cookie:"+cookie);let img=json.body;let code=OcrApi.classification(img);console.log(`第${cnt+1}次验证码识别结果:${code}`);let submit_url=`${host}/index.php/ajax/verify_check?type=search&verify=${code}`;console.log(submit_url);let html=request(submit_url,{headers:{Cookie:cookie,"User-Agent":MOBILE_UA},method:"POST"});html=JSON.parse(html);if(html.msg==="ok"){console.log(`第${cnt+1}次验证码提交成功`);return cookie}else if(html.msg!=="ok"&&cnt+1>=OCR_RETRY){cookie=""}}catch(e){console.log(`第${cnt+1}次验证码提交失败:${e.message}`);if(cnt+1>=OCR_RETRY){cookie=""}}cnt+=1}return cookie}function setItem(k,v){local.set(RKEY,k,v);console.log(`规则${RKEY}设置${k} => ${v}`)}function getItem(k,v){return local.get(RKEY,k)||v}function clearItem(k){local.delete(RKEY,k)}function getHome(url){if(!url){return""}let tmp=url.split("//");url=tmp[0]+"//"+tmp[1].split("/")[0];try{url=decodeURIComponent(url)}catch(e){}return url}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}function require(url){eval(request(url))}function request(url,obj,ocr_flag){ocr_flag=ocr_flag||false;if(typeof obj==="undefined"||!obj||obj==={}){if(!fetch_params||!fetch_params.headers){let headers={"User-Agent":MOBILE_UA};if(rule.headers){Object.assign(headers,rule.headers)}if(!fetch_params){fetch_params={}}fetch_params.headers=headers}if(!fetch_params.headers.Referer){fetch_params.headers.Referer=getHome(url)}obj=fetch_params}else{let headers=obj.headers||{};let keys=Object.keys(headers).map(it=>it.toLowerCase());if(!keys.includes("user-agent")){headers["User-Agent"]=MOBILE_UA}if(!keys.includes("referer")){headers["Referer"]=getHome(url)}obj.headers=headers}if(rule.encoding&&rule.encoding!=="utf-8"&&!ocr_flag){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="text/html; charset="+rule.encoding}}if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="string"){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="application/x-www-form-urlencoded; charset="+rule.encoding}}else if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="object"){obj.data=obj.body;delete obj.body}if(!url){return obj.withHeaders?"{}":""}if(obj.toBase64){obj.buffer=2;delete obj.toBase64}console.log(JSON.stringify(obj.headers));console.log("request:"+url+`|method:${obj.method||"GET"}|body:${obj.body||""}`);let res=req(url,obj);let html=res.content||"";if(obj.withHeaders){let htmlWithHeaders=res.headers;htmlWithHeaders.body=html;return JSON.stringify(htmlWithHeaders)}else{return html}}function post(url,obj){obj.method="POST";return request(url,obj)}fetch=request;print=function(data){data=data||"";if(typeof data=="object"&&Object.keys(data).length>0){try{data=JSON.stringify(data);console.log(data)}catch(e){console.log(typeof data+":"+data.length);return}}else if(typeof data=="object"&&Object.keys(data).length<1){console.log("null object")}else{console.log(data)}};log=print;function checkHtml(html,url,obj){if(/\?btwaf=/.test(html)){let btwaf=html.match(/btwaf(.*?)"/)[1];url=url.split("#")[0]+"?btwaf"+btwaf;print("宝塔验证访问链接:"+url);html=request(url,obj)}return html}function getCode(url,obj){let html=request(url,obj);html=checkHtml(html,url,obj);return html}function getHtml(url){let obj={};if(rule.headers){obj.headers=rule.headers}let cookie=getItem(RULE_CK,"");if(cookie){if(obj.headers&&!Object.keys(obj.headers).map(it=>it.toLowerCase()).includes("cookie")){log("历史无cookie,新增过验证后的cookie");obj.headers["Cookie"]=cookie}else if(obj.headers&&obj.headers.cookie&&obj.headers.cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有小写过期的cookie,更新过验证后的cookie")}else if(obj.headers&&obj.headers.Cookie&&obj.headers.Cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有大写过期的cookie,更新过验证后的cookie")}else if(!obj.headers){obj.headers={Cookie:cookie};log("历史无headers,更新过验证后的含cookie的headers")}}let html=getCode(url,obj);return html}function homeParse(homeObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let classes=[];if(homeObj.class_name&&homeObj.class_url){let names=homeObj.class_name.split("&");let urls=homeObj.class_url.split("&");let cnt=Math.min(names.length,urls.length);for(let i=0;i=3){try{let html=getHtml(homeObj.MY_URL);if(html){homeHtmlCache=html;let list=_pdfa(html,p[0]);if(list&&list.length>0){list.forEach((it,idex)=>{try{let name=_pdfh(it,p[1]);if(homeObj.cate_exclude&&new RegExp(homeObj.cate_exclude).test(name)){return}let url=_pd(it,p[2]);if(p.length>3&&p[3]){let exp=new RegExp(p[3]);url=url.match(exp)[1]}classes.push({type_id:url.trim(),type_name:name.trim()})}catch(e){console.log(`分类列表定位第${idex}个元素正常报错:${e.message}`)}})}}}catch(e){console.log(e.message)}}}classes=classes.filter(it=>!homeObj.cate_exclude||!new RegExp(homeObj.cate_exclude).test(it.type_name));let resp={class:classes};if(homeObj.filter){resp.filters=homeObj.filter}console.log(JSON.stringify(resp));return JSON.stringify(resp)}function getPP(p,pn,pp,ppn){try{let ps=p[pn]==="*"&&pp.length>ppn?pp[ppn]:p[pn];return ps}catch(e){return""}}function homeVodParse(homeVodObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];MY_URL=homeVodObj.homeUrl;console.log(MY_URL);let t1=(new Date).getTime();let p=homeVodObj.推荐;print("p:"+p);if(p==="*"&&rule.一级){p=rule.一级;homeVodObj.double=false}if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级.split(";");if(p.startsWith("js:")){const TYPE="home";var input=MY_URL;HOST=rule.host;eval(p.replace("js:",""));d=VODS}else{p=p.split(";");if(!homeVodObj.double&&p.length<5){return"{}"}else if(homeVodObj.double&&p.length<6){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");let html=homeHtmlCache||getHtml(MY_URL);homeHtmlCache=undefined;if(is_json){html=dealJson(html)}try{console.log("double:"+homeVodObj.double);if(homeVodObj.double){let items=_pdfa(html,p0);let p1=getPP(p,1,pp,0);let p2=getPP(p,2,pp,1);let p3=getPP(p,3,pp,2);let p4=getPP(p,4,pp,3);let p5=getPP(p,5,pp,4);let p6=getPP(p,6,pp,5);for(let item of items){let items2=_pdfa(item,p1);for(let item2 of items2){try{let title=_pdfh(item2,p2);let img="";try{img=_pd(item2,p3)}catch(e){}let desc="";try{desc=_pdfh(item2,p4)}catch(e){}let links=[];for(let _p5 of p5.split("+")){let link=!homeVodObj.detailUrl?_pd(item2,_p5,MY_URL):_pdfh(item2,_p5);links.push(link)}let content;if(p.length>6&&p[6]){content=_pdfh(item2,p6)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){console.log("首页列表双层定位处理发生错误:"+e.message)}}}}else{let items=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);for(let item of items){try{let title=_pdfh(item,p1);let img="";try{img=_pd(item,p2,MY_URL)}catch(e){}let desc="";try{desc=_pdfh(item,p3)}catch(e){}let links=[];for(let _p5 of p4.split("+")){let link=!homeVodObj.detailUrl?_pd(item,_p5,MY_URL):_pdfh(item,_p5);links.push(link)}let content;if(p.length>5&&p[5]){content=_pdfh(item,p5)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){console.log("首页列表单层定位处理发生错误:"+e.message)}}}}catch(e){}}let t2=(new Date).getTime();console.log("加载首页推荐耗时:"+(t2-t1)+"毫秒");if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}return JSON.stringify({list:d})}function categoryParse(cateObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let p=cateObj.一级;if(!p||typeof p!=="string"){return"{}"}let d=[];let url=cateObj.url.replaceAll("fyclass",cateObj.tid);if(cateObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(cateObj.pg>1&&url.includes("[")&&url.includes("]")){url=url.split("[")[0]}if(rule.filter_url){if(!/fyfilter/.test(url)){if(!url.endsWith("&")&&!rule.filter_url.startsWith("&")){url+="&"}url+=rule.filter_url}else{url=url.replace("fyfilter",rule.filter_url)}let fl=cateObj.filter?cateObj.extend:{};if(rule.filter_def&&typeof rule.filter_def==="object"){try{if(Object.keys(rule.filter_def).length>0&&rule.filter_def.hasOwnProperty(cateObj.tid)){let self_fl_def=rule.filter_def[cateObj.tid];if(self_fl_def&&typeof self_fl_def==="object"){let fl_def=JSON.parse(JSON.stringify(self_fl_def));fl=Object.assign(fl_def,fl)}}}catch(e){print("合并不同分类对应的默认筛选出错:"+e.message)}}let new_url;new_url=cheerio.jinja2(url,{fl:fl});url=new_url}if(/fypage/.test(url)){if(url.includes("(")&&url.includes(")")){let url_rep=url.match(/.*?\((.*)\)/)[1];let cnt_page=url_rep.replaceAll("fypage",cateObj.pg);let cnt_pg=eval(cnt_page);url=url.replaceAll(url_rep,cnt_pg).replaceAll("(","").replaceAll(")","")}else{url=url.replaceAll("fypage",cateObj.pg)}}MY_URL=url;console.log(MY_URL);p=p.trim();const MY_CATE=cateObj.tid;if(p.startsWith("js:")){var MY_FL=cateObj.extend;const TYPE="cate";var input=MY_URL;const MY_PAGE=cateObj.pg;var desc="";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let _ps=parseTags.getParse(p[0]);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p[0].startsWith("json:");p[0]=p[0].replace(/^(jsp:|json:|jq:)/,"");try{let html=getHtml(MY_URL);if(html){if(is_json){html=dealJson(html)}let list=_pdfa(html,p[0]);list.forEach(it=>{let links=p[4].split("+").map(p4=>{return!rule.detailUrl?_pd(it,p4,MY_URL):_pdfh(it,p4)});let link=links.join("$");let vod_id=rule.detailUrl?MY_CATE+"$"+link:link;let vod_name=_pdfh(it,p[1]).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p[2],MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}d.push({vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p[3]).replace(/\n|\t/g,"").trim()})})}}catch(e){console.log(e.message)}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}let pagecount=0;if(rule.pagecount&&typeof rule.pagecount==="object"&&rule.pagecount.hasOwnProperty(MY_CATE)){print(`MY_CATE:${MY_CATE},pagecount:${JSON.stringify(rule.pagecount)}`);pagecount=parseInt(rule.pagecount[MY_CATE])}let nodata={list:[{vod_name:"无数据,防无限请求",vod_id:"no_data",vod_remarks:"不要点,会崩的",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}],total:1,pagecount:1,page:1,limit:1};let vod=d.length<1?JSON.stringify(nodata):JSON.stringify({page:parseInt(cateObj.pg),pagecount:pagecount||999,limit:20,total:999,list:d});return vod}function searchParse(searchObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];if(!searchObj.searchUrl){return"{}"}let p=searchObj.搜索==="*"&&rule.一级?rule.一级:searchObj.搜索;if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级.split(";");let url=searchObj.searchUrl.replaceAll("**",searchObj.wd).replaceAll("fypage",searchObj.pg);MY_URL=url;console.log(MY_URL);if(p.startsWith("js:")){const TYPE="search";const MY_PAGE=searchObj.pg;const KEY=searchObj.wd;var input=MY_URL;var detailUrl=rule.detailUrl||"";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");try{let req_method=MY_URL.split(";").length>1?MY_URL.split(";")[1].toLowerCase():"get";let html;if(req_method==="post"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`post=》rurl:${rurl},params:${params}`);let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else if(req_method==="postjson"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`postjson-》rurl:${rurl},params:${params}`);try{params=JSON.parse(params)}catch(e){params="{}"}let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else{html=getHtml(MY_URL)}if(html){if(/系统安全验证|输入验证码/.test(html)){let cookie=verifyCode(MY_URL);if(cookie){console.log(`本次成功过验证,cookie:${cookie}`);setItem(RULE_CK,cookie)}else{console.log(`本次自动过搜索验证失败,cookie:${cookie}`)}html=getHtml(MY_URL)}if(!html.includes(searchObj.wd)){console.log("搜索结果源码未包含关键字,疑似搜索失败,正为您打印结果源码");console.log(html)}if(is_json){html=dealJson(html)}let list=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);list.forEach(it=>{let links=p4.split("+").map(_p4=>{return!rule.detailUrl?_pd(it,_p4,MY_URL):_pdfh(it,_p4)});let link=links.join("$");let content;if(p.length>5&&p[5]){content=_pdfh(it,p5)}else{content=""}let vod_id=link;let vod_name=_pdfh(it,p1).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p2,MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}let ob={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p3).replace(/\n|\t/g,"").trim(),vod_content:content.replace(/\n|\t/g,"").trim()};d.push(ob)})}}catch(e){print("搜索发生错误:"+e.message);return"{}"}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}return JSON.stringify({page:parseInt(searchObj.pg),pagecount:10,limit:20,total:100,list:d})}function detailParse(detailObj){let t1=(new Date).getTime();fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let orId=detailObj.orId;let vod_name="片名";let vod_pic="";let vod_id=orId;if(rule.二级==="*"){let extra=orId.split("@@");vod_name=extra.length>1?extra[1]:vod_name;vod_pic=extra.length>2?extra[2]:vod_pic}let vod={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,type_name:"类型",vod_year:"年份",vod_area:"地区",vod_remarks:"更新信息",vod_actor:"主演",vod_director:"导演",vod_content:"简介"};let p=detailObj.二级;let url=detailObj.url;let detailUrl=detailObj.detailUrl;let fyclass=detailObj.fyclass;let tab_exclude=detailObj.tab_exclude;let html=detailObj.html||"";MY_URL=url;if(detailObj.二级访问前){try{print(`尝试在二级访问前执行代码:${detailObj.二级访问前}`);eval(detailObj.二级访问前.trim().replace("js:",""))}catch(e){print(`二级访问前执行代码出现错误:${e.message}`)}}if(p==="*"){vod.vod_play_from="道长在线";vod.vod_remarks=detailUrl;vod.vod_actor="没有二级,只有一级链接直接嗅探播放";vod.vod_content=MY_URL;vod.vod_play_url="嗅探播放$"+MY_URL.split("@@")[0]}else if(typeof p==="string"&&p.trim().startsWith("js:")){const TYPE="detail";var input=MY_URL;var play_url="";eval(p.trim().replace("js:",""));vod=VOD;console.log(JSON.stringify(vod))}else if(p&&typeof p==="object"){let tt1=(new Date).getTime();if(!html){html=getHtml(MY_URL)}print(`二级${MY_URL}仅获取源码耗时:${(new Date).getTime()-tt1}毫秒`);let _ps;if(p.is_json){print("二级是json");_ps=parseTags.json;html=dealJson(html)}else if(p.is_jsp){print("二级是jsp");_ps=parseTags.jsp}else if(p.is_jq){print("二级是jq");_ps=parseTags.jq}else{print("二级默认jq");_ps=parseTags.jq}let tt2=(new Date).getTime();print(`二级${MY_URL}获取并装载源码耗时:${tt2-tt1}毫秒`);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;if(p.title){let p1=p.title.split(";");vod.vod_name=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();let type_name=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").replace(/ /g,"").trim():"";vod.type_name=type_name||vod.type_name}if(p.desc){try{let p1=p.desc.split(";");vod.vod_remarks=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();vod.vod_year=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").trim():"";vod.vod_area=p1.length>2?_pdfh(html,p1[2]).replace(/\n|\t/g,"").trim():"";vod.vod_actor=p1.length>3?_pdfh(html,p1[3]).replace(/\n|\t/g,"").trim():"";vod.vod_director=p1.length>4?_pdfh(html,p1[4]).replace(/\n|\t/g,"").trim():""}catch(e){}}if(p.content){try{let p1=p.content.split(";");vod.vod_content=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim()}catch(e){}}if(p.img){try{let p1=p.img.split(";");vod.vod_pic=_pd(html,p1[0],MY_URL)}catch(e){}}let vod_play_from="$$$";let playFrom=[];if(p.重定向&&p.重定向.startsWith("js:")){print("开始执行重定向代码:"+p.重定向);html=eval(p.重定向.replace("js:",""))}if(p.tabs){if(p.tabs.startsWith("js:")){print("开始执行tabs代码:"+p.tabs);var input=MY_URL;eval(p.tabs.replace("js:",""));playFrom=TABS}else{let p_tab=p.tabs.split(";")[0];let vHeader=_pdfa(html,p_tab);console.log(vHeader.length);let tab_text=p.tab_text||"body&&Text";let new_map={};for(let v of vHeader){let v_title=_pdfh(v,tab_text).trim();console.log(v_title);if(tab_exclude&&new RegExp(tab_exclude).test(v_title)){continue}if(!new_map.hasOwnProperty(v_title)){new_map[v_title]=1}else{new_map[v_title]+=1}if(new_map[v_title]>1){v_title+=Number(new_map[v_title]-1)}playFrom.push(v_title)}}console.log(JSON.stringify(playFrom))}else{playFrom=["道长在线"]}vod.vod_play_from=playFrom.join(vod_play_from);let vod_play_url="$$$";let vod_tab_list=[];if(p.lists){if(p.lists.startsWith("js:")){print("开始执行lists代码:"+p.lists);try{var input=MY_URL;var play_url="";eval(p.lists.replace("js:",""));for(let i in LISTS){if(LISTS.hasOwnProperty(i)){try{LISTS[i]=LISTS[i].map(it=>it.split("$").slice(0,2).join("$"))}catch(e){print("格式化LISTS发生错误:"+e.message)}}}vod_play_url=LISTS.map(it=>it.join("#")).join(vod_play_url)}catch(e){print("js执行lists: 发生错误:"+e.message)}}else{let list_text=p.list_text||"body&&Text";let list_url=p.list_url||"a&&href";let is_tab_js=p.tabs.trim().startsWith("js:");for(let i=0;i1&&!is_tab_js?p.tabs.split(";")[1]:"";let p1=p.lists.replaceAll("#idv",tab_name).replaceAll("#id",i);tab_ext=tab_ext.replaceAll("#idv",tab_name).replaceAll("#id",i);let tabName=tab_ext?_pdfh(html,tab_ext):tab_name;console.log(tabName);let new_vod_list=[];let tt1=(new Date).getTime();if(typeof pdfl==="function"){new_vod_list=pdfl(html,p1,list_text,list_url,MY_URL)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){new_vod_list=forceOrder(new_vod_list,"",x=>x.split("$")[0]);console.log(`drpy影响性能代码共计列表数循环次数:${new_vod_list.length},耗时:${(new Date).getTime()-tt1}毫秒`)}let vlist=new_vod_list.join("#");vod_tab_list.push(vlist)}vod_play_url=vod_tab_list.join(vod_play_url)}}vod.vod_play_url=vod_play_url}if(rule.图片来源&&vod.vod_pic&&vod.vod_pic.startsWith("http")){vod.vod_pic=vod.vod_pic+rule.图片来源}if(!vod.vod_id||vod_id.includes("$")&&vod.vod_id!==vod_id){vod.vod_id=vod_id}let t2=(new Date).getTime();console.log(`加载二级界面${MY_URL}耗时:${t2-t1}毫秒`);return JSON.stringify({list:[vod]})}function tellIsJx(url){try{let is_vip=!/\.(m3u8|mp4|m4a)$/.test(url.split("?")[0])&&是否正版(url);return is_vip?1:0}catch(e){return 1}}function playParse(playObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));MY_URL=playObj.url;if(!/http/.test(MY_URL)){try{MY_URL=base64Decode(MY_URL)}catch(e){}}MY_URL=decodeURIComponent(MY_URL);var input=MY_URL;let common_play={parse:1,url:input,jx:tellIsJx(input)};let lazy_play;if(!rule.play_parse||!rule.lazy){lazy_play=common_play}else if(rule.play_parse&&rule.lazy&&typeof rule.lazy==="string"){try{let lazy_code=rule.lazy.replace("js:","").trim();print("开始执行js免嗅=>"+lazy_code);eval(lazy_code);lazy_play=typeof input==="object"?input:{parse:1,jx:tellIsJx(input),url:input}}catch(e){print("js免嗅错误:"+e.message);lazy_play=common_play}}else{lazy_play=common_play}if(Array.isArray(rule.play_json)&&rule.play_json.length>0){let web_url=lazy_play.url;for(let pjson of rule.play_json){if(pjson.re&&(pjson.re==="*"||web_url.match(new RegExp(pjson.re)))){if(pjson.json&&typeof pjson.json==="object"){let base_json=pjson.json;lazy_play=Object.assign(lazy_play,base_json);break}}}}else if(rule.play_json&&!Array.isArray(rule.play_json)){let base_json={jx:1,parse:1};lazy_play=Object.assign(lazy_play,base_json)}else if(!rule.play_json){let base_json={jx:0,parse:1};lazy_play=Object.assign(lazy_play,base_json)}console.log(JSON.stringify(lazy_play));return JSON.stringify(lazy_play)}function proxyParse(proxyObj){var input=proxyObj.params;if(proxyObj.proxy_rule){log("准备执行本地代理规则:\n"+proxyObj.proxy_rule);try{eval(proxyObj.proxy_rule);if(input&&input!==proxyObj.params&&Array.isArray(input)&&input.length===3){return input}else{return[404,"text/plain","Not Found"]}}catch(e){return[500,"text/plain","代理规则错误:"+e.message]}}else{return[404,"text/plain","Not Found"]}}function isVideoParse(isVideoObj){var input=isVideoObj.url;if(!isVideoObj.t){let re_matcher=new RegExp(isVideoObj.isVideo,"i");return re_matcher.test(input)}else{try{eval(isVideoObj.isVideo);if(typeof input==="boolean"){return input}else{return false}}catch(e){log("执行嗅探规则发生错误:"+e.message);return false}}}function init(ext){console.log("init");try{let muban=模板.getMubans();if(typeof ext=="object"){rule=ext}else if(typeof ext=="string"){if(ext.startsWith("http")){let js=request(ext,{method:"GET"});if(js){eval(js.replace("var rule","rule"))}}else{eval(ext.replace("var rule","rule"))}}if(rule.模板&&muban.hasOwnProperty(rule.模板)){print("继承模板:"+rule.模板);rule=Object.assign(muban[rule.模板],rule)}let rule_cate_excludes=(rule.cate_exclude||"").split("|").filter(it=>it.trim());let rule_tab_excludes=(rule.tab_exclude||"").split("|").filter(it=>it.trim());rule_cate_excludes=rule_cate_excludes.concat(CATE_EXCLUDE.split("|").filter(it=>it.trim()));rule_tab_excludes=rule_tab_excludes.concat(TAB_EXCLUDE.split("|").filter(it=>it.trim()));rule.cate_exclude=rule_cate_excludes.join("|");rule.tab_exclude=rule_tab_excludes.join("|");rule.host=(rule.host||"").rstrip("/");HOST=rule.host;if(rule.hostJs){console.log(`检测到hostJs,准备执行...`);try{eval(rule.hostJs);rule.host=HOST.rstrip("/")}catch(e){console.log(`执行${rule.hostJs}获取host发生错误:`+e.message)}}rule.url=rule.url||"";rule.double=rule.double||false;rule.homeUrl=rule.homeUrl||"";rule.detailUrl=rule.detailUrl||"";rule.searchUrl=rule.searchUrl||"";rule.homeUrl=rule.host&&rule.homeUrl?urljoin(rule.host,rule.homeUrl):rule.homeUrl||rule.host;rule.detailUrl=rule.host&&rule.detailUrl?urljoin(rule.host,rule.detailUrl):rule.detailUrl;rule.二级访问前=rule.二级访问前||"";if(rule.url.includes("[")&&rule.url.includes("]")){let u1=rule.url.split("[")[0];let u2=rule.url.split("[")[1].split("]")[0];rule.url=rule.host&&rule.url?urljoin(rule.host,u1)+"["+urljoin(rule.host,u2)+"]":rule.url}else{rule.url=rule.host&&rule.url?urljoin(rule.host,rule.url):rule.url}rule.searchUrl=rule.host&&rule.searchUrl?urljoin(rule.host,rule.searchUrl):rule.searchUrl;rule.timeout=rule.timeout||5e3;rule.encoding=rule.编码||rule.encoding||"utf-8";rule.search_encoding=rule.搜索编码||rule.search_encoding||"";rule.图片来源=rule.图片来源||"";rule.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};rule.proxy_rule=rule.hasOwnProperty("proxy_rule")?rule.proxy_rule:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";if(rule.headers&&typeof rule.headers==="object"){try{let header_keys=Object.keys(rule.headers);for(let k of header_keys){if(k.toLowerCase()==="user-agent"){let v=rule.headers[k];console.log(v);if(["MOBILE_UA","PC_UA","UC_UA","IOS_UA","UA"].includes(v)){rule.headers[k]=eval(v)}}else if(k.toLowerCase()==="cookie"){let v=rule.headers[k];if(v&&v.startsWith("http")){console.log(v);try{v=fetch(v);console.log(v);rule.headers[k]=v}catch(e){console.log(`从${v}获取cookie发生错误:`+e.message)}}}}}catch(e){console.log("处理headers发生错误:"+e.message)}}rule_fetch_params={headers:rule.headers||false,timeout:rule.timeout,encoding:rule.encoding};oheaders=rule.headers||{};RKEY=typeof key!=="undefined"&&key?key:"drpy_"+(rule.title||rule.host);pre();init_test()}catch(e){console.log("init_test发生错误:"+e.message)}}let homeHtmlCache=undefined;function home(filter){console.log("home");let homeObj={filter:rule.filter||false,MY_URL:rule.homeUrl,class_name:rule.class_name||"",class_url:rule.class_url||"",class_parse:rule.class_parse||"",cate_exclude:rule.cate_exclude};return homeParse(homeObj)}function homeVod(params){console.log("homeVod");let homeVodObj={"推荐":rule.推荐,double:rule.double,homeUrl:rule.homeUrl,detailUrl:rule.detailUrl};return homeVodParse(homeVodObj)}function category(tid,pg,filter,extend){let cateObj={url:rule.url,"一级":rule.一级,tid:tid,pg:parseInt(pg),filter:filter,extend:extend};return categoryParse(cateObj)}function detail(vod_url){let orId=vod_url;let fyclass="";log("orId:"+orId);if(vod_url.indexOf("$")>-1){let tmp=vod_url.split("$");fyclass=tmp[0];vod_url=tmp[1]}let detailUrl=vod_url.split("@@")[0];let url;if(!detailUrl.startsWith("http")&&!detailUrl.includes("/")){url=rule.detailUrl.replaceAll("fyid",detailUrl).replaceAll("fyclass",fyclass)}else if(detailUrl.includes("/")){url=urljoin(rule.homeUrl,detailUrl)}else{url=detailUrl}let detailObj={orId:orId,url:url,"二级":rule.二级,"二级访问前":rule.二级访问前,detailUrl:detailUrl,fyclass:fyclass,tab_exclude:rule.tab_exclude};return detailParse(detailObj)}function play(flag,id,flags){let playObj={url:id,flag:flag,flags:flags};return playParse(playObj)}function search(wd,quick,pg){if(rule.search_encoding){if(rule.search_encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.search_encoding)}}else if(rule.encoding&&rule.encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.encoding)}let searchObj={searchUrl:rule.searchUrl,"搜索":rule.搜索,wd:wd,pg:pg||1,quick:quick};return searchParse(searchObj)}function proxy(params){if(rule.proxy_rule&&rule.proxy_rule.trim()){rule.proxy_rule=rule.proxy_rule.trim()}if(rule.proxy_rule.startsWith("js:")){rule.proxy_rule=rule.proxy_rule.replace("js:","")}let proxyObj={params:params,proxy_rule:rule.proxy_rule};return proxyParse(proxyObj)}function sniffer(){let enable_sniffer=rule.sniffer||false;if(enable_sniffer){log("准备执行辅助嗅探代理规则:\n"+rule.isVideo)}return enable_sniffer}function isVideo(url){let t=0;if(rule.isVideo&&rule.isVideo.trim()){rule.isVideo=rule.isVideo.trim()}if(rule.isVideo.startsWith("js:")){rule.isVideo=rule.isVideo.replace("js:","");t=1}let isVideoObj={url:url,isVideo:rule.isVideo,t:t};return isVideoParse(isVideoObj)}function DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/南风/json/Alist.json b/tvboxqq/南风/json/Alist.json
deleted file mode 100644
index 33e184c..0000000
--- a/tvboxqq/南风/json/Alist.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "vodPic": "https://s1.ax1x.com/2023/05/04/p9tgI81.png",
- "drives": [
- {
- "name": "🦆鸭鸭",
- "server": "http://shicheng.wang:555/我的影视"
- },
- {
- "name": "NICS",
- "server": "https://nics.eu.org"
- },
- {
- "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"
- }
- ]
-}
\ No newline at end of file
diff --git a/tvboxqq/南风/json/云云.json b/tvboxqq/南风/json/云云.json
deleted file mode 100644
index af46758..0000000
--- a/tvboxqq/南风/json/云云.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "作者": "小哇",
- "站名": "飞云",
- "首页": "电影",
- "请求头": "User-Agent$Mozilla/5.0 (iPad; CPU OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1#Referer$http://www.tvyb03.com/",
- "主页url": "http://nb.xzam.cn:66/api.php/provide/vod/from/FYNB?ac=detail&t=21&pg=1&f=",
- "分类": "电影&电视剧&综艺&动漫",
- "分类值": "1&2&4&3",
- "分类url": "http://nb.xzam.cn:66/api.php/provide/vod/from/FYNB?ac=detail&t={cateId}&pg={catePg}&f=};;u0",
- "数组二次截取": "list\":[&&]",
- "数组": "{&&}",
- "图片": "vod_pic\"*\"&&\"",
- "标题": "vod_name\"*\"&&\"",
- "副标题": "vod_remarks\"*\"&&\"",
- "链接": "http://nb.xzam.cn:66/api.php/provide/vod/from/FYNB?ac=detail&ids=+vod_id\":&&,",
- "搜索url": "http://nb.xzam.cn:66//api.php/provide/vod/from/FYNB?wd={wd}&ac=detail",
- "搜索模式": "1",
- "搜索二次截取": "list\":[&&]",
- "搜索数组": "{&&}",
- "搜索图片": "vod_pic\"*\"&&\"",
- "搜索标题": "vod_name\"*\"&&\"",
- "搜索副标题": "vod_remarks\"*\"&&\"",
- "搜索链接": "http://nb.xzam.cn:66/api.php/provide/vod/from/FYNB?ac=detail&ids=+vod_id\":&&,",
- "影片类型": "vod_class\"*\"&&\"",
- "导演": "vod_director\"*\"&&\"",
- "主演": "vod_actor\"*\"&&\"",
- "简介": "vod_content\"*\"&&\"",
- "线路二次截取": "\"list\":[&&]",
- "线路数组": "\"vod_play_from\":&&,",
- "线路标题": "\"&&\"",
- "播放数组": "vod_play_url\":&&,[替换:\">>链表题#$>>题链#\\#>>链表表题]",
- "播放二次截取": "",
- "播放列表": "表&&表",
- "播放标题": "题&&题",
- "播放链接": "https://fy.wuye3d.com/fy27.php?url=+链&&链",
- "跳转播放链接": "url*'&&'",
- "嗅探词": "mp4#m3u8#.m3u8#.mp4#video_mp4#feiyunNB.mp4#.mp4#cdn.123pan.cn#huoshanvod.com",
- "倒序播放": "0",
- "免嗅": "0"
-}
\ No newline at end of file
diff --git a/tvboxqq/南风/json/新视觉影院.json b/tvboxqq/南风/json/新视觉影院.json
deleted file mode 100644
index 8fe2966..0000000
--- a/tvboxqq/南风/json/新视觉影院.json
+++ /dev/null
@@ -1,426 +0,0 @@
-{
- "作者":"荷城茶秀",
- "站名":"新视觉影视",
- "主页url":"https://www.6080yy3.com/",
- "请求头":"手机",
- "简介":"+剧情:&&",
- "主演":"主演:&&",
- "影片类型":"video-tag-icon\">&&立即播放",
- "影片状态":"集数:&&",
- "数组":"module-item-pic\">&&module-item\">",
- "图片":"data-src=\"&&\"",
- "标题":"title=\"&&\"",
- "副标题":"module-item-text\">&&",
- "链接":"href=\"&&\"",
- "搜索模式":"1",
- "搜索后缀":"/video/",
- "搜索url":"/vodsearch/-------------.html?wd={wd}",
- "搜索数组":"lazy lazyload\"&&",
- "搜索标题":"alt=\"&&\"",
- "搜索副标题":"title=*>&&
",
- "搜索图片":"data-src=\"&&\"",
- "搜索链接":"href=\"&&\"",
- "线路数组":"data-dropdown-value=&&[不包含:蓝光专享]",
- "线路标题":"&&",
- "播放数组":"sort-item\"&&",
- "播放标题":"&&",
- "播放列表":"",
- "分类url":"https://www.6080yy3.com/vodshow/{cateId}-{area}-{by}-{class}-{lang}----{catePg}---{year}.html",
- "分类":"电影$1#电视剧$2#综艺$3#动漫$4",
- "筛选":{
- "1":[
- {
- "key":"cateld",
- "name":"类型",
- "value":[
- {"n":"全部类型","v":""},
- {"n":"动作片","v":"25"},
- {"n":"喜剧片","v":"26"},
- {"n":"爱情片","v":"27"},
- {"n":"科幻记","v":"28"},
- {"n":"恐怖片","v":"30"},
- {"n":"剧情片","v":"31"},
- {"n":"战争片","v":"33"},
- {"n":"记录片","v":"35"},
- {"n":"悬疑片","v":"36"},
- {"n":"犯罪片","v":"38"},
- {"n":"冒险片","v":"40"},
- {"n":"动画片","v":"41"},
- {"n":"惊悚片","v":"43"},
- {"n":"奇幻片","v":"44"},
- {"n":"理论片","v":"46"}
- ]
- },
- {
- "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":"儿童"},
- {"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":"lang",
- "name":"语言",
- "value":[
- {"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":"by",
- "name":"排序",
- "value":[
- {"n":"全部排序","v":""},
- {"n":"时间排序","v":"time"},
- {"n":"人气排序","v":"hits"},
- {"n":"评分排序","v":"score"}
- ]
- }
- ],
- "2":[
- {
- "key":"cateId",
- "name":"类型",
- "value":[
- {"n":"全部类型","v":""},
- {"n":"国产剧","v":"42"},
- {"n":"欧美剧","v":"45"},
- {"n":"日韩剧","v":"47"},
- {"n":"港台剧","v":"49"},
- {"n":"泰剧","v":"51"},
- {"n":"海外剧","v":"52"}
- ]
- },
- {
- "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":"lang",
- "name":"语言",
- "value":[
- {"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":"by",
- "name":"排序",
- "value":[
- {"n":"全部排序","v":""},
- {"n":"时间排序","v":"time"},
- {"n":"人气排序","v":"hits"},
- {"n":"评分排序","v":"score"}
- ]
- }
- ],
- "3":[
- {
- "key":"cateId",
- "name":"类型",
- "value":[
- {"n":"全部类型","v":""},
- {"n":"大陆综艺","v":"20"},
- {"n":"日韩综艺","v":"21"},
- {"n":"港台综艺","v":"22"},
- {"n":"欧美综艺","v":"23"},
- {"n":"演唱会","v":"24"}
- ]
- },
- {
- "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":"lang",
- "name":"语言",
- "value":[
- {"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":"by",
- "name":"排序",
- "value":[
- {"n":"全部排序","v":""},
- {"n":"时间排序","v":"time"},
- {"n":"人气排序","v":"hist"},
- {"n":"评分排序","v":"score"}]}],
- "4":[
- {
- "key":"cateId",
- "name":"类型",
- "value":[
- {"n":"全部类型","v":""},
- {"n":"国产动漫","v":"29"},
- {"n":"日韩动漫","v":"32"},
- {"n":"欧美动漫","v":"34"},
- {"n":"港台动漫","v":"37"}
- ]},
- {
- "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":"lang",
- "name":"语言",
- "value":[
- {"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":"by",
- "name":"排序",
- "value":[
- {"n":"全部排序","v":""},
- {"n":"时间排序","v":"time"},
- {"n":"人气排序","v":"hist"},
- {"n":"评分排序","v":"score"}
- ]
- }
- ]
- }
- }
diff --git a/tvboxqq/南风/json/零零七影视.json b/tvboxqq/南风/json/零零七影视.json
deleted file mode 100644
index c8ac65f..0000000
--- a/tvboxqq/南风/json/零零七影视.json
+++ /dev/null
@@ -1,341 +0,0 @@
-{
-"作者":"张弘",
-"站名":"零零七影视",
-"主页url":"https://www.007ts.me",
-"数组":"&&
",
-"图片":"data-original=\"&&\"",
-"标题":"title=\"&&\"",
-"链接":"href=\"&&\"",
-"副标题":"&&",
-"搜索url":"/vodsearch/{wd}----------{pg}---.html",
-"搜索模式":"1",
-"搜索数组":"&&
",
-"搜索图片":"data-original=\"&&\"",
-"搜索标题":"title=\"&&\"",
-"搜索链接":"href=\"&&\"",
-"搜索副标题":"&&",
-"搜索后缀":"/detail/",
-"影片类型":"类型:&&",
-"导演":"导演:&&
",
-"主演":"主演:&&",
-"简介":"style=\"display: none;\">&&",
-"线路二次截取":"",
-"线路数组":"",
-"线路标题":">&&",
-"播放数组":"",
-"播放列表":"",
-"播放标题":">&&<",
-"播放链接":"href=\"&&\"",
-"分类":"电影$1#电视剧$2#动漫$3#综艺$4#少儿$19#热舞$18#直播$7",
-"分类url":"https://www.007ts.me/show/{cateId}-{area}-{by}-{class}-{lang}----{catePg}---{year}.html",
-"免嗅":"1",
-"筛选":{
-"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":"其他"}]},
-
-{"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":"俄罗斯"},
-{"n":"其他","v":"其他"}]},
-
-{"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":"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"},
-{"n":"2003","v":"2003"},
-{"n":"2002","v":"2002"},
-{"n":"2001","v":"2001"},
-{"n":"2000","v":"2000"}]},
-
-{"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":"其他"}]},
-
-{"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":"俄罗斯"},
-{"n":"其他","v":"其他"}]},
-
-{"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":"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"},
-{"n":"2003","v":"2003"},
-{"n":"2002","v":"2002"},
-{"n":"2001","v":"2001"},
-{"n":"2000","v":"2000"}]},
-
-{"key":"by","name":"排序","value":[
-{"n":"时间","v":"time"},
-{"n":"人气","v":"hits"},
-{"n":"评分","v":"score"}]}],
-
-"3":[
-{"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":"俄罗斯"},
-{"n":"其他","v":"其他"}]},
-
-{"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":"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"},
-{"n":"2003","v":"2003"},
-{"n":"2002","v":"2002"},
-{"n":"2001","v":"2001"},
-{"n":"2000","v":"2000"}]},
-
-{"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":"音乐"}]},
-
-{"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":"俄罗斯"},
-{"n":"其他","v":"其他"}]},
-
-{"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":"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"},
-{"n":"2003","v":"2003"},
-{"n":"2002","v":"2002"},
-{"n":"2001","v":"2001"},
-{"n":"2000","v":"2000"}]},
-
-{"key":"by","name":"排序","value":[
-{"n":"时间","v":"time"},
-{"n":"人气","v":"hits"},
-{"n":"评分","v":"score"}]}]}
-}
\ No newline at end of file
diff --git a/tvboxqq/南风/live.txt b/tvboxqq/南风/live.txt
index b60e2c5..603f1e6 100644
--- a/tvboxqq/南风/live.txt
+++ b/tvboxqq/南风/live.txt
@@ -41,10 +41,6 @@ CCTV-5,http://222.71.90.218:8888/newlive/live/hls/6/live.m3u8
CCTV-6,http://222.71.90.218:8888/newlive/live/hls/7/live.m3u8
CCTV-10,http://222.71.90.218:8888/newlive/live/hls/11/live.m3u8
CCTV-14,http://222.71.90.218:8888/newlive/live/hls/15/live.m3u8
-CETV-1,http://txycsbl.centv.cn/zb/0628cetv1.m3u8
-CETV-2,http://txycsbl.centv.cn/zb/0822cetv2.m3u8
-CETV-3,http://txycsbl.centv.cn/zb/0822cetv3.m3u8
-CETV-4,http://txycsbl.centv.cn/zb/0822cetv4.m3u8
CCTV1,http://hms304nc1972679586.live.aikan.miguvideo.com/wh7f454c46tw3831204341_1349411946/wd_r2/cctv/cctv1hd/2500/01.m3u8?msisdn=19115966146&Channel_ID=0119_04102000-99000_400300000040002&client_ip=182.149.232.3×tamp=20230115080246&ContentId=265183188&timezone=UTC&mtv_session=01b97ad3f1d61532d8f0d40578ee3f47&HlsSubType=1&HlsProfileId=1&nphaid=0&encrypt=ac6f75650a73ab06efc36233598f26b8
CCTV2,http://hms104nc1972679566.live.aikan.miguvideo.com/wh7f454c46tw3468827325_440542616/wd_r2/cctv/cctv2hd/3000/01.m3u8?msisdn=guest&Channel_ID=0119_04102000-99000_400300000040002&client_ip=112.45.97.120×tamp=20230208125733&ContentId=265667329&timezone=UTC&mtv_session=f739dcaed0e05c0e9e14fa47d0810c20&HlsSubType=1&HlsProfileId=1&nphaid=0&encrypt=c4d54a337744e33e655349fe312a5eed
CCTV3,http://hms44nc1972679560.live.aikan.miguvideo.com/wh7f454c46tw3692367231_1716696590/wd_r2/ocn/cctv3hd/3000/01.m3u8?msisdn=guest&Channel_ID=0119_04102000-99000_400300000040002&client_ip=112.45.97.120×tamp=20230208130116&ContentId=265667206&timezone=UTC&mtv_session=09b9584da7231a3b6c6b2c20aa3572d6&HlsSubType=1&HlsProfileId=1&nphaid=0&encrypt=f9cf165e747cb07e1e8dd89226e53387
@@ -65,6 +61,41 @@ CCTV15,http://hms504nc1972679606.live.aikan.miguvideo.com/wh7f454c46tw1387986390
CCTV16,https://live.goodiptv.club/api/bestv.php?id=cctv16hd8m/8000000
CCTV16,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226921/index.m3u8?
CCTV17,http://hms224nc1972679578.live.aikan.miguvideo.com/wh7f454c46tw1594433061_461954091/migu/kailu/20200324/cctv17hd/57/01.m3u8?msisdn=guest&Channel_ID=0119_04102000-99000_400300000040002&client_ip=112.45.97.120×tamp=20230208133753&ContentId=265667526&timezone=UTC&mtv_session=2ab00b83c917e8ba1b1bb082711b8b77&HlsSubType=1&HlsProfileId=1&nphaid=0&encrypt=4c04c5308e4761e3cc4b36134b05b864
+CCTV1,http://59.47.226.94:8880/sql/2592/hls.m3u8
+CCTV2,http://59.47.226.94:8880/sql/2593/hls.m3u8
+CCTV3,http://59.47.226.94:8880/sql/2594/hls.m3u8
+CCTV4,http://59.47.226.94:8880/sql/2595/hls.m3u8
+CCTV5,http://59.47.226.94:8880/sql/2596/hls.m3u8
+CCTV6,http://59.47.226.94:8880/sql/2597/hls.m3u8
+CCTV7,http://59.47.226.94:8880/sql/2598/hls.m3u8
+CCTV8,http://59.47.226.94:8880/sql/2599/hls.m3u8
+CCTV9,http://59.47.226.94:8880/sql/2600/hls.m3u8
+CCTV10,http://59.47.226.94:8880/sql/2601/hls.m3u8
+CCTV11,http://59.47.226.94:8880/sql/2602/hls.m3u8
+CCTV12,http://59.47.226.94:8880/sql/2603/hls.m3u8
+CCTV13,http://59.47.226.94:8880/sql/2604/hls.m3u8
+CCTV14,http://59.47.226.94:8880/sql/2605/hls.m3u8
+CCTV15,http://59.47.226.94:8880/sql/2606/hls.m3u8
+CCTV1,http://733240.com/gudou.php?id=1402_4500
+CCTV2,http://733240.com/gudou.php?id=CCTV2HD_7000
+CCTV3,http://733240.com/gudou.php?id=1603
+CCTV4,http://733240.com/gudou.php?id=1604
+CCTV5,http://733240.com/gudou.php?id=1605
+CCTV5+,http://733240.com/gudou.php?id=1403
+CCTV6,http://733240.com/gudou.php?id=1606
+CCTV7,http://733240.com/gudou.php?id=1607
+CCTV8,http://733240.com/gudou.php?id=1608
+CCTV9,http://733240.com/gudou.php?id=CCTV9HD_7000
+CCTV10,http://733240.com/gudou.php?id=1610
+CCTV11,http://733240.com/gudou.php?id=CCTV-11HD_7500
+CCTV12,http://733240.com/gudou.php?id=CCTV12HD_7000
+CCTV13,http://733240.com/gudou.php?id=1613
+CCTV14,http://733240.com/gudou.php?id=CCTV14HD_7000
+CCTV15,http://733240.com/gudou.php?id=CCTV-15HD_7500
+CCTV16,http://733240.com/gudou.php?id=1617_4500
+CCTV17,http://733240.com/gudou.php?id=CCTV17HD
+CCTV16-4K,http://733240.com/gudou.php?id=4010
+CCTV4K,http://733240.com/gudou.php?id=4005
卫视频道,#genre#
@@ -129,6 +160,25 @@ CCTV17,http://hms224nc1972679578.live.aikan.miguvideo.com/wh7f454c46tw1594433061
延边卫视,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226220/index.m3u8
兵团卫视,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226214/index.m3u8
农林卫视,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226229/index.m3u8
+湖南卫视,http://59.47.226.94:8880/sql/2617/hls.m3u8
+北京卫视,http://59.47.226.94:8880/sql/2631/hls.m3u8
+浙江卫视,http://59.47.226.94:8880/sql/2634/hls.m3u8
+东方卫视,http://59.47.226.94:8880/sql/2632/hls.m3u8
+江苏卫视,http://59.47.226.94:8880/sql/2633/hls.m3u8
+广东卫视,http://59.47.226.94:8880/sql/2627/hls.m3u8
+东南卫视,http://59.47.226.94:8880/sql/2626/hls.m3u8
+深圳卫视,http://59.47.226.94:8880/sql/2630/hls.m3u8
+安徽卫视,http://59.47.226.94:8880/sql/2614/hls.m3u8
+山东卫视,http://59.47.226.94:8880/sql/2615/hls.m3u8
+湖北卫视,http://59.47.226.94:8880/sql/2618/hls.m3u8
+重庆卫视,http://59.47.226.94:8880/sql/2620/hls.m3u8
+四川卫视,http://59.47.226.94:8880/sql/2621/hls.m3u8
+天津卫视,http://59.47.226.94:8880/sql/2623/hls.m3u8
+吉林卫视,http://59.47.226.94:8880/sql/2624/hls.m3u8
+黑龙江卫视,http://59.47.226.94:8880/sql/2625/hls.m3u8
+辽宁卫视,http://59.47.226.94:8880/sql/2607/hls.m3u8
+贵州卫视,http://59.47.226.94:8880/sql/2629/hls.m3u8
+海南卫视,http://59.47.226.94:8880/sql/2636/hls.m3u8
央卫综合,#genre#
@@ -205,10 +255,6 @@ CGTN-英语新闻,http://live.cgtn.com/1000/prog_index.m3u8
CGTN-英语新闻,http://live.cgtn.com/500/prog_index.m3u8
CGTN-俄罗斯语国际,http://liveru.cgtn.com/1000r/prog_index.m3u8
CGTN-西班牙语国际,http://livees.cgtn.com/1000e/prog_index.m3u8
-CETV1,http://txycsbl.centv.cn/zb/0628cetv1.m3u8
-CETV2,http://txycsbl.centv.cn/zb/0822cetv2.m3u8
-CETV3,http://txycsbl.centv.cn/zb/0822cetv3.m3u8
-CETV4,http://txycsbl.centv.cn/zb/0822cetv4.m3u8
CCTV移动,http://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/649e19038fa74514ab3f00febbcd6de0/1200.m3u8
书画频道,http://211.103.180.178:8234/live_hls/hdmi.m3u8
中央新影_老故事,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226236/index.m3u8?
@@ -475,17 +521,7 @@ CETV4,https://cntv.sbs/live?auth=2307280808&id=cetv4
上海教育,https://cntv.sbs/live?auth=2307280808&id=shjy
莲花卫视,https://cntv.sbs/lhws?auth=2307280808
凤凰香港,https://cntv.sbs/fs?id=fhhk&auth=2307280808
-CETV3,http://txycetvbl.centv.cn/cetv3/bjdm.m3u8
-无线新闻台,http://sc2022.stream-link.org/tv2306.php?id=h04
-无线财经体育资讯,http://sc2022.stream-link.org/tv2306.php?id=h05
-RTHK31,http://sc2022.stream-link.org/tv2306.php?id=h08
-RTHK32,http://sc2022.stream-link.org/tv2306.php?id=h09
-RTHK33,http://sc2022.stream-link.org/tv2306.php?id=h10
-香港国际财经台,http://sc2022.stream-link.org/tv2306.php?id=h12
-香港开电视,http://sc2022.stream-link.org/tv2306.php?id=h13
-香港开电视资讯台,http://sc2022.stream-link.org/tv2306.php?id=h14
日·NHK,https://nhkwlive-ojp.akamaized.net/hls/live/2003459/nhkwlive-ojp-en/index_4M.m3u8
-日·QVC,http://cdn-live1.qvc.jp/iPhone/800/800.m3u8
韩·EBS-1,http://ebsonairios.ebs.co.kr/groundwavetablet500k/tablet500k/groundwavetablet500k.m3u8
韩·EBS-1,http://ebsonairios.ebs.co.kr/groundwavetablet500k/tablet500k/playlist.m3u8
韩·EBS-1,http://ebsonairios.ebs.co.kr/plus1tablet500k/tablet500k/plus1tablet500k.index.m3u8
@@ -558,7 +594,6 @@ Nostalgia,http://51.210.199.20/hls/stream.m3u8
韩国-EBS2,http://ebsonairios.ebs.co.kr/ebs2familypc/familypc1m/playlist.m3u8
韩国-EBSe,http://ebsonairios.ebs.co.kr/plus3familypc/familypc1m/playlist.m3u8
韩国-KCTV,http://119.77.96.184:1935/chn05/chn05/chunklist_w1306745753.m3u8
-韩国-MBC综合频道,http://vod.mpmbc.co.kr:1935/live/encoder-tv/playlist.m3u8
韩国-NBS Korea Agricultural Broadc,https://media.joycorp.co.kr:4443/live/live_720p/playlist.m3u8
越南-VBSTV,http://uni6rtmp.tulix.tv:1935/vbstv/vbsabr.smil/playlist.m3u8
印尼-METROTV,http://edge.metrotvnews.com:1935/live-edge/smil:metro.smil/playlist.m3u8
@@ -574,6 +609,101 @@ Nostalgia,http://51.210.199.20/hls/stream.m3u8
儒释道经,https://live.ciguang.tv/live/hdtv.m3u8?auth_key=5216465889-0-0-701a98b03302233fc07fa2ee9e85d39b
+重庆有线,#genre#
+CCTV1,http://china.733240.com/cqyx.php?id=cctv1HD
+CCTV2,http://china.733240.com/cqyx.php?id=cctv2HD
+CCTV3,http://china.733240.com/cqyx.php?id=cctv3HD
+CCTV4,http://china.733240.com/cqyx.php?id=cctv4HD
+CCTV5,http://china.733240.com/cqyx.php?id=cctv5HD
+CCTV5+,http://china.733240.com/cqyx.php?id=cctv5SportHD
+CCTV6,http://china.733240.com/cqyx.php?id=cctv6HD
+CCTV7,http://china.733240.com/cqyx.php?id=cctv7HD
+CCTV8,http://china.733240.com/cqyx.php?id=cctv8HD
+CCTV9,http://china.733240.com/cqyx.php?id=cctv9HD
+CCTV10,http://china.733240.com/cqyx.php?id=cctv10HD
+CCTV11,http://china.733240.com/cqyx.php?id=cctv11HD
+CCTV12,http://china.733240.com/cqyx.php?id=cctv12HD
+CCTV13,http://china.733240.com/cqyx.php?id=CCTVNewsHD
+CCTV14,http://china.733240.com/cqyx.php?id=cctvseHD
+CCTV15,http://china.733240.com/cqyx.php?id=cctv15HD
+CCTV16,http://china.733240.com/cqyx.php?id=cctv16HD
+CCTV17,http://china.733240.com/cqyx.php?id=cctv17HD
+CCTV4K,http://china.733240.com/cqyx.php?id=CCTV4K
+CCTV16-4K,http://china.733240.com/cqyx.php?id=CCTV16_4k
+东南卫视,http://china.733240.com/cqyx.php?id=dongnanHD
+东方卫视,http://china.733240.com/cqyx.php?id=shanghaiHD
+云南卫视,http://china.733240.com/cqyx.php?id=yunnanSD
+内蒙古卫视,http://china.733240.com/cqyx.php?id=neimengkuSD
+北京卫视,http://china.733240.com/cqyx.php?id=beijingHD
+吉林卫视,http://china.733240.com/cqyx.php?id=jilinHD
+四川卫视,http://china.733240.com/cqyx.php?id=sichuanHD
+天津卫视,http://china.733240.com/cqyx.php?id=tianjinHD
+宁夏卫视,http://china.733240.com/cqyx.php?id=ningxia
+安徽卫视,http://china.733240.com/cqyx.php?id=anhuiSD
+山西卫视,http://china.733240.com/cqyx.php?id=shanxiSD
+广东卫视,http://china.733240.com/cqyx.php?id=guangdongHD
+广西卫视,http://china.733240.com/cqyx.php?id=guangxiHD
+新疆卫视,http://china.733240.com/cqyx.php?id=xinjiangSD
+江苏卫视,http://china.733240.com/cqyx.php?id=jiangsuHD
+江西卫视,http://china.733240.com/cqyx.php?id=jiangxiHD
+河北卫视,http://china.733240.com/cqyx.php?id=hebeiSD
+河南卫视,http://china.733240.com/cqyx.php?id=henanHD
+浙江卫视,http://china.733240.com/cqyx.php?id=zhejiangHD
+海南卫视,http://china.733240.com/cqyx.php?id=hainanSD
+深圳卫视,http://china.733240.com/cqyx.php?id=shenzhenHD
+湖北卫视,http://china.733240.com/cqyx.php?id=hubeiSD
+湖南卫视,http://china.733240.com/cqyx.php?id=hunanHD
+西藏卫视,http://china.733240.com/cqyx.php?id=xizangSD
+贵州卫视,http://china.733240.com/cqyx.php?id=guizhouHD
+辽宁卫视,http://china.733240.com/cqyx.php?id=liaoningHD
+重庆卫视,http://china.733240.com/cqyx.php?id=chongqingHD
+青海卫视,http://china.733240.com/cqyx.php?id=qinghaiSD
+黑龙江卫视,http://china.733240.com/cqyx.php?id=heilongjiangHD
+三沙卫视,http://china.733240.com/cqyx.php?id=sanshaSD
+兵团卫视,http://china.733240.com/cqyx.php?id=bingtuanSD
+欢笑剧场4K,http://china.733240.com/cqyx.php?id=hxjc_4K
+卡酷少儿,http://china.733240.com/cqyx.php?id=bjkakuSD
+金鹰卡通,http://china.733240.com/cqyx.php?id=jinyingSD
+生态环境,http://china.733240.com/cqyx.php?id=shengtai
+四海钓鱼,http://china.733240.com/cqyx.php?id=diaoyu
+中国气象,http://china.733240.com/cqyx.php?id=tianqiSD
+车迷频道,http://china.733240.com/cqyx.php?id=doxtv
+CGTN,http://china.733240.com/cqyx.php?id=cgtnSD
+求索纪录,http://china.733240.com/cqyx.php?id=qsjlHD
+百姓健康,http://china.733240.com/cqyx.php?id=jiankangSD
+快乐垂钓,http://china.733240.com/cqyx.php?id=klcdHD
+早期教育,http://china.733240.com/cqyx.php?id=zaojiaoHD
+东方财-经,http://china.733240.com/cqyx.php?id=dfcj
+证券服务,http://china.733240.com/cqyx.php?id=jiazheng
+收藏天下,http://china.733240.com/cqyx.php?id=soucang
+财富天下,http://china.733240.com/cqyx.php?id=caifu
+天元围棋,http://china.733240.com/cqyx.php?id=weiqi
+先锋乒羽,http://china.733240.com/cqyx.php?id=xianfeng
+环球旅游,http://china.733240.com/cqyx.php?id=huanqiulvyou
+纪实科教,http://china.733240.com/cqyx.php?id=bjayjsSD
+SiTV都市剧场,http://china.733240.com/cqyx.php?id=dsjcHD
+SiTV魅力足球,http://china.733240.com/cqyx.php?id=mlzqHD
+SiTV动漫秀场,http://china.733240.com/cqyx.php?id=dmxcHD
+SiTV游戏风云,http://china.733240.com/cqyx.php?id=yxfyHD
+SiTV生活时尚,http://china.733240.com/cqyx.php?id=shenghuo
+SiTV法治天地,http://china.733240.com/cqyx.php?id=fazhi
+SiTV金色学堂,http://china.733240.com/cqyx.php?id=jinse
+CHC高清电影,http://china.733240.com/cqyx.php?id=chcgqdyHD
+CHC动作电影,http://china.733240.com/cqyx.php?id=chcdzdyHD
+CHC家庭影院,http://china.733240.com/cqyx.php?id=chcjtyyHD
+CCTV风云剧场,http://china.733240.com/cqyx.php?id=shandongHD
+CCTV风云剧场,http://china.733240.com/cqyx.php?id=fyjcHD
+CCTV风云音乐,http://china.733240.com/cqyx.php?id=fyyyHD
+CCTV风云足球,http://china.733240.com/cqyx.php?id=fyzqHD
+CCTV怀旧剧场,http://china.733240.com/cqyx.php?id=hjjcHD
+CCTV第一剧场,http://china.733240.com/cqyx.php?id=diyijuchangHD
+CCTV兵器科技,http://china.733240.com/cqyx.php?id=bqkjHD
+CCTV央视文化精品,http://china.733240.com/cqyx.php?id=yswhHD
+CCTV高尔夫网球,http://china.733240.com/cqyx.php?id=golfHD
+CCTV央视台球,http://china.733240.com/cqyx.php?id=ystqHD
+CCTV女性时尚,http://china.733240.com/cqyx.php?id=nvxing
+
+
少儿频道,#genre#
CCTV-14 高清,http://222.128.98.255:4000/rtp/239.3.1.65:8132
空中课堂_一年级,http://liveplay-kk.rtxapp.com/live/program/live/kkyinj/1300000/mnf.m3u8
@@ -594,41 +724,7 @@ CCTV-14 高清,http://222.128.98.255:4000/rtp/239.3.1.65:8132
浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8
浙江少儿,http://hw-m-l.cztv.com/channels/lantian/channel08/720p.m3u8
南京少儿,http://live.nbs.cn/channels/njtv/sepd/m3u8:500k/live.m3u8
-猫和老鼠,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c52_lb_83_600_t10/c52_lb_83_600_t10.m3u8?key=0b292c335e5837e94e2f0ba45f46717fa
-童年经典,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_211_600_t10/c57_lb_211_600_t10.m3u8?key=0f2a06793124310bce6ba95fc0ac76131
-玩具乐园,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_175_600_t10/c54_lb_175_600_t10.m3u8?key=051d9240247766709d65dde3fcd5cd7bb
-怀旧动画,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c53_lb_86_600_t10/c53_lb_86_600_t10.m3u8?key=0b292c335e5837e943a226d3c381f872a
-宝宝课堂,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_225_600_t10/c57_lb_225_600_t10.m3u8?key=0b292c335e5837e94abaa8d3135e83ce3
-奥特曼,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_210_600_t10/c57_lb_210_600_t10.m3u8?key=0b292c335e5837e94abe4b846218bbc95
-喜羊羊,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c55_lb_91_1080P_t10/c55_lb_91_1080P_t10.m3u8?key=0b292c335e5837e943e554ef181bdcec1
-名侦探柯南,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_157_600_t10/c54_lb_157_600_t10.m3u8?key=0b292c335e5837e948e91dd5d11efa525
-动画小天地,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c55_lb_139_600_t10/c55_lb_139_600_t10.m3u8?key=0f2a06793124310bc475d77d809f3ab51
-兔小贝尔歌,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_136_600_t10/c54_lb_136_600_t10.m3u8?key=0b292c335e5837e94ae056154862a578b
-儿童乐园,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_215_600_t10/c57_lb_215_600_t10.m3u8?key=0b292c335e5837e943410c2bfa7a7387e
-儿歌大全,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_242_600_t10/c57_lb_242_600_t10.m3u8?key=0f2a06793124310bc8499ebf63370c51a
-倒霉熊,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_140_600_t10/c54_lb_140_600_t10.m3u8?key=0f2a06793124310bccc587b5da61b57da
-亲子小游戏,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c56_lb_178_600_t10/c56_lb_178_600_t10.m3u8?key=0b292c335e5837e94ffc1113a2140b54
-亲子启蒙,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c57_lb_213_600_t10/c57_lb_213_600_t10.m3u8?key=0f2a06793124310bc21adebc9f02a9735
熊大过年,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/7ae265653fe149069c3b53e31caaf060/1200.m3u8
-英文儿歌,http://118.26.120.23:55336/tslive/c55_lb_128_600_t10/c55_lb_128_600_t10.m3u8?key=0b292c335e5837e94dd521635e537be73
-童年经典,http://118.26.120.23:55336/tslive/c57_lb_211_600_t10/c57_lb_211_600_t10.m3u8?key=0f2a06793124310bce6ba95fc0ac76131
-玩具乐园,http://118.26.120.37:55336/tslive/c54_lb_175_600_t10/c54_lb_175_600_t10.m3u8?key=051d9240247766709d65dde3fcd5cd7bb
-猫和老鼠,http://118.26.120.23:55336/tslive/c52_lb_83_600_t10/c52_lb_83_600_t10.m3u8?key=0b292c335e5837e94e2f0ba45f46717fa
-怀旧动画,http://118.26.120.36:55336/tslive/c53_lb_86_600_t10/c53_lb_86_600_t10.m3u8?key=0b292c335e5837e943a226d3c381f872a
-小猪佩寄,http://118.26.120.23:55336/tslive/c53_lb_78_600_t10/c53_lb_78_600_t10.m3u8?key=0b292c335e5837e94a815c2c45ffe0057
-宝宝课堂,http://118.26.120.23:55336/tslive/c57_lb_225_600_t10/c57_lb_225_600_t10.m3u8?key=0b292c335e5837e94abaa8d3135e83ce3
-宝宝巴士,http://118.26.120.35:55336/tslive/c55_lb_153_720P_t10/c55_lb_153_720P_t10.m3u8?key=0b292c335e5837e947f9409c59228f3e6
-奥特曼,http://118.26.120.35:55336/tslive/c57_lb_210_600_t10/c57_lb_210_600_t10.m3u8?key=0b292c335e5837e94abe4b846218bbc95
-喜羊羊,http://118.26.120.23:55336/tslive/c55_lb_91_1080P_t10/c55_lb_91_1080P_t10.m3u8?key=0b292c335e5837e943e554ef181bdcec1
-名贞探柯南,http://118.26.120.23:55336/tslive/c54_lb_157_600_t10/c54_lb_157_600_t10.m3u8?key=0b292c335e5837e948e91dd5d11efa525
-动画电影,http://118.26.120.36:55336/tslive/c51_lb_118_600_t10/c51_lb_118_600_t10.m3u8?key=0b292c335e5837e94f25985f7c35b1efe
-动画小天地,http://118.26.120.34:55336/tslive/c55_lb_139_600_t10/c55_lb_139_600_t10.m3u8?key=0f2a06793124310bc475d77d809f3ab51
-兔小贝尔歌,http://118.26.120.22:55336/tslive/c54_lb_136_600_t10/c54_lb_136_600_t10.m3u8?key=0b292c335e5837e94ae056154862a578b
-儿童乐园,http://118.26.120.23:55336/tslive/c57_lb_215_600_t10/c57_lb_215_600_t10.m3u8?key=0b292c335e5837e943410c2bfa7a7387e
-儿歌大全,http://118.26.120.23:55336/tslive/c57_lb_242_600_t10/c57_lb_242_600_t10.m3u8?key=0f2a06793124310bc8499ebf63370c51a
-倒霉熊,http://118.26.120.37:55336/tslive/c54_lb_140_600_t10/c54_lb_140_600_t10.m3u8?key=0f2a06793124310bccc587b5da61b57da
-亲子小游戏,http://118.26.120.23:55336/tslive/c56_lb_178_600_t10/c56_lb_178_600_t10.m3u8?key=0b292c335e5837e94ffc1113a2140b54
-亲子启蒙,http://118.26.120.23:55336/tslive/c57_lb_213_600_t10/c57_lb_213_600_t10.m3u8?key=0f2a06793124310bc21adebc9f02a9735
倒霉特熊,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/87f87ba569c147e3805f80e4844d2de9/1200.m3u8
雲朵妈妈,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d8ad434c6b08421a927557a4d98da65c/1200.m3u8
反转星球,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3ccdecc7d6e341c1920ad4eac5d82f38/1200.m3u8
@@ -647,8 +743,6 @@ CCTV放映室,http://epg.112114.xyz/douyu/10011042
北京大蜜,http://epg.112114.xyz/douyu/805235
CHC家庭电影,http://111.20.40.171/PLTV/88888893/224/3221226462/index.m3u8
CHC高清电影,http://111.20.40.171/PLTV/88888893/224/3221226463/index.m3u8
-新泰影视频道,http://111.17.214.4:1935/live/xtys/playlist.m3u8
-新泰影视频道,http://live.xtgdw.cn:1935/live/xtys/playlist.m3u8
CHC高清电影,http://zhuji.sdrnwl.cn:9901/tsfile/live/1058_1.m3u8
CHC高清电影,http://111.20.40.170/PLTV/88888893/224/3221226463/index.m3u8
CHC高清电影,http://223.151.51.27:85/tsfile/live/1020_1.m3u8?key=txiptv&playlive=1&authid=0
@@ -671,7 +765,6 @@ CHC家庭影院,http://111.20.40.170/PLTV/88888893/224/3221226462/index.m3u8
菏泽影视,http://live.hznet.tv:1935/live/live3/500K/tzwj_video.m3u8
长沙影视,https://hls.quklive.com/live/1551749282880742/index.m3u8
北京影视,https://wstvcpudali.v.myalicdn.com/wstvcpud/udrmbtv4_1/index.m3u8?adapt=0&BR=audio
-新泰影视,http://live.xtgdw.cn:1935/live/xtys/playlist.m3u8
新泰影视,http://111.17.214.4:1935/live/xtys/playlist.m3u8
新昌休闲影视,http://l.cztvcloud.com/channels/lantian/SXxinchang2/720p.m3u8
石河子影视文体,http://124.88.144.73:1935/live/jjsh/HasBahCa.m3u8
@@ -688,6 +781,7 @@ CHC家庭影院,http://111.20.40.170/PLTV/88888893/224/3221226462/index.m3u8
CGTN Arabic,http://livear.cgtn.com/1000a/prog_index.m3u8
CGTN Español,http://livees.cgtn.com/500e/prog_index.m3u8
CGTN France,http://livefr.cgtn.com/1000f/prog_index.m3u8
+抗战剧场,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_163_600_t10/c54_lb_163_600_t10.m3u8
体育频道,#genre#
@@ -699,7 +793,6 @@ CCTV5-高清,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/32
五星体育,http://222.71.90.218:8888/newlive/live/hls/56/live.m3u8
辽宁体育,http://42.176.185.28:9901/tsfile/live/1007_1.m3u8
杭州亚运,http://183.129.242.178:3333/tsfile/live/1019_1.m3u8
-广州竞赛,http://my.mytvtv.top/guangdong/gztv.php?id=gzjs
广东体育,http://157.122.177.10:9901/tsfile/live/1001_1.m3u8
浙江民生休闲,http://hw-m-l.cztv.com/channels/lantian/channel006/1080p.m3u8?zzhed
安徽综艺体育,http://112.30.194.221:20080/live/c41f112b83f644ddb082669501c8ecd3/hls.m3u8
@@ -734,7 +827,6 @@ CCTV5-高清,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/32
【西游】由爱故生怨,怨恨交缠,那又何苦,http://epg.112114.xyz/douyu/9518204
狄仁杰:想听听我的故事吗,http://epg.112114.xyz/douyu/674441
【牛叔】N分钟带你看完大片,http://epg.112114.xyz/douyu/2758565
-古装经典,http://dx-aliyuncdncnc.inter.iqiyi.com/tslive/c54_lb_152_600_t10/c54_lb_152_600_t10.m3u8?key=007540012225a9e4fb39d113ea61819d0&dis
斗鱼电影,http://tc-tct.douyucdn2.cn/dyliveflv1/122402rK7MO9bXSq_2000.flv?wsAuth=8cea39337984fd3341cc9ec569502e4f&token=cpn-androidmpro-0-122402-0fcea45d2300cfa0ac75fafd8679bb53af10de8c33ae99d9&logo=0&expire=0&did=d010b07dcb997ada9934081c873542f0&origin=tct&vhost=p
斗鱼电影2,http://tc-tct.douyucdn2.cn/dyliveflv1/85894rmovieChow_2000.flv?wsAuth=7d054e041804e80af8aa7e975e2d8573&token=cpn-androidmpro-0-85894-a3575d938a4aa309c687f5fb85a1009fc65cfbeeb2672310&logo=0&expire=0&did=d010b07dcb997ada9934081c873542f0&origin=tct&vhost=pla
粤语综艺,http://epg.112114.xyz/douyu/7919720
@@ -752,7 +844,6 @@ CCTV5-高清,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/32
豆瓣高分,http://epg.112114.xyz/douyu/8770422
林正英电影1,http://epg.112114.xyz/douyu/218859
林正英电影2,http://epg.112114.xyz/douyu/7356023
-女神金电影,http://epg.112114.xyz/douyu/747764
贝爷影厅1,http://epg.112114.xyz/douyu/252802
贝爷影厅2,http://epg.112114.xyz/douyu/36337
霍格影片,http://epg.112114.xyz/douyu/8814650
@@ -852,66 +943,6 @@ CCTV5-高清,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/32
斗鱼搞笑HD5,http://epg.112114.xyz/douyu/8737695
-爱奇艺,#genre#
-抗战剧场,http://lvbaiducdncmn.inter.iqiyi.com/tslive/c54_lb_163_600_t10/c54_lb_163_600_t10.m3u8
-国剧修复,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c53_lb_77_720P_t10/c53_lb_77_720P_t10.m3u8?key
-老剧剧场,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c52_lb_92_600_t10/c52_lb_92_600_t10.m3u8?key
-华语院线,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c51_lb_114_600_t10/c51_lb_114_600_t10.m3u8?key
-古装剧场,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c54_lb_174_600_t10/c54_lb_174_600_t10.m3u8?key
-院线电影,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c52_lb_64_720P_t10/c52_lb_64_720P_t10.m3u8?key
-高分电影,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c51_lb_112_600_t10/c51_lb_112_600_t10.m3u8?key
-票房冠军,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c56_lb_184_600_t10/c56_lb_184_600_t10.m3u8?key
-日韩院线,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c53_lb_62_600_t10/c53_lb_62_600_t10.m3u8?key
-经典港片,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c51_lb_110_600_t10/c51_lb_110_600_t10.m3u8?key
-电影大片,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c56_lb_183_600_t10/c56_lb_183_600_t10.m3u8?key
-温情影院,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c51_lb_113_600_t10/c51_lb_113_600_t10.m3u8?key
-惊悚午夜,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c51_lb_115_600_t10/c51_lb_115_600_t10.m3u8?key
-粤语原声,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c56_lb_185_600_t10/c56_lb_185_600_t10.m3u8?key
-动画电影,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c51_lb_118_600_t10/c51_lb_118_600_t10.m3u8?key
-历史秘闻,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c57_lb_236_600_t10/c57_lb_236_600_t10.m3u8?key
-军事观察,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c57_lb_239_720P_t10/c57_lb_239_720P_t10.m3u8?key
-经典纪实,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c56_lb_220_600_t10/c56_lb_220_600_t10.m3u8?key
-科学探索,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c51_lb_108_720P_t10/c51_lb_108_720P_t10.m3u8?key
-自然地理,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c52_lb_81_600_t10/c52_lb_81_600_t10.m3u8?key
-央视大剧,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c54_lb_90_600_t10/c54_lb_90_600_t10.m3u8?key
-家庭剧场,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c55_lb_158_600_t10/c55_lb_158_600_t10.m3u8?key
-收视冠军,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c56_lb_230_720P_t10/c56_lb_230_720P_t10.m3u8?key
-老年剧场,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c56_lb_179_600_t10/c56_lb_179_600_t10.m3u8?key
-仙侠玄幻,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c55_lb_148_600_t10/c55_lb_148_600_t10.m3u8?key
-经典重温,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c55_lb_137_600_t10/c55_lb_137_600_t10.m3u8?key
-婚姻剧场,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c56_lb_219_600_t10/c56_lb_219_600_t10.m3u8?key
-情景喜剧,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c55_lb_145_600_t10/c55_lb_145_600_t10.m3u8?key
-热播剧场,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c57_lb_212_600_t10/c57_lb_212_600_t10.m3u8?key
-年代剧场,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c54_lb_171_300_t10/c54_lb_171_300_t10.m3u8?key
-抗战剧场,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c54_lb_163_600_t10/c54_lb_163_600_t10.m3u8?key
-宫庭正剧,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c54_lb_152_600_t10/c54_lb_152_600_t10.m3u8?key
-怀旧剧场,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c51_lb_109_600_t10/c51_lb_109_600_t10.m3u8?key
-军旅剧场,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c55_lb_144_600_t10/c55_lb_144_600_t10.m3u8?key
-权谋剧场,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c55_lb_167_600_t10/c55_lb_167_600_t10.m3u8?key
-谍战剧场,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c57_lb_216_600_t10/c57_lb_216_600_t10.m3u8?key
-人文社会,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c56_lb_243_600_t10/c56_lb_243_600_t10.m3u8?key
-我的祖国,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c53_lb_72_720P_t10/c53_lb_72_720P_t10.m3u8?key
-高清综艺,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c52_lb_75_720P_t10/c52_lb_75_720P_t10.m3u8?key
-爱奇艺兔小贝,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8?key
-爱奇艺兔小贝,http://aliyuncdnct.inter.ptqy.gitv.tv/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8?key
-爱奇艺兔小贝,http://lvbaiducdncmn.inter.ptqy.gitv.tv/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8?key
-爱奇艺兔小贝,http://baiducdncmn2.inter.iqiyi.com/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8?key
-爱奇艺兔小贝,http://bdcdncmn3.inter.71edge.com/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8?key
-爱奇艺兔小贝,http://118.26.120.33:55336/tslive/c54_lb_136_720P_t10/c54_lb_136_720P_t10.m3u8
-爱奇艺小猪佩奇,http://aliyuncdnct.inter.ptqy.gitv.tv/tslive/c53_lb_78_1080P_t10/c53_lb_78_1080P_t10.m3u8?key=08b3f8f3a31f12001f96a0f53163b0596
-爱奇艺小猪佩奇,http://118.26.120.33:55336/tslive/c53_lb_78_1080P_t10/c53_lb_78_1080P_t10.m3u8
-爱奇艺玩具,http://aliyuncdnct.inter.ptqy.gitv.tv/tslive/c54_lb_175_600_t10/c54_lb_175_600_t10.m3u8?key
-爱奇艺亲子,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c57_lb_213_600_t10/c57_lb_213_600_t10.m3u8?key
-爱奇艺亲子,http://aliyuncdnct.inter.ptqy.gitv.tv/tslive/c57_lb_213_600_t10/c57_lb_213_600_t10.m3u8?key
-爱奇艺宝宝课堂,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c57_lb_225_600_t10/c57_lb_225_600_t10.m3u8?key
-爱奇艺宝宝课堂,http://aliyuncdnct.inter.ptqy.gitv.tv/tslive/c57_lb_225_600_t10/c57_lb_225_600_t10.m3u8?key
-爱奇艺贝瓦儿歌,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c56_lb_188_600_t10/c56_lb_188_600_t10.m3u8?key
-爱奇艺贝瓦儿歌,http://aliyuncdnct.inter.ptqy.gitv.tv/tslive/c56_lb_188_600_t10/c56_lb_188_600_t10.m3u8?key
-爱奇艺宝宝巴士,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c55_lb_153_720P_t10/c55_lb_153_720P_t10.m3u8?key
-爱奇艺宝宝巴士,http://aliyuncdnct.inter.ptqy.gitv.tv/tslive/c55_lb_153_720P_t10/c55_lb_153_720P_t10.m3u8?key
-爱奇艺儿歌大全,http://bj.new1cloud.com/bdcdncmn3-inter-71edge-com.new1cloud.com/tslive/c57_lb_242_600_t10/c57_lb_242_600_t10.m3u8?key
-
-
浙江综合,#genre#
浙江钱江都市,http://hw-m-l.cztv.com/channels/lantian/channel002/1080p.m3u8?zzhed
浙江钱江都市,http://hw-m-l.cztv.com/channels/lantian/channel02/720p.m3u8?zzhed
@@ -992,9 +1023,6 @@ CCTV5-高清,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/32
山东综合,#genre#
青岛城阳,http://pili-live-rtmp.56.i2863.com/i2863-56/live_56_307317.m3u8?shandd
-日照新闻综合,http://live.rzw.com.cn/xwzh/sd/live.m3u8?shandd
-日照公共,http://live.rzw.com.cn/kzpd/sd/live.m3u8?shandd
-日照科教,http://live.rzw.com.cn/ggpd/sd/live.m3u8?shandd
烟台新闻综合,http://live.yantaitv.cn/live/3e81a8879da44c5dadf3bd9c10468e1c/9b776d420ee4438199b7657c8eb88f07-1.m3u8?shandd
烟台公共,http://live.yantaitv.cn/live/e50f104a4ffe4a41b2217cbda534146f/d86092e69df94668b33390278b061700-1.m3u8?shandd
烟台经济科技,http://live.yantaitv.cn/live/27f84144e95a4652ae9e5c211b2a6b55/405f3e33ba384aa0a16014d0becd1261-1.m3u8?shandd
@@ -1044,7 +1072,6 @@ CCTV5-高清,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/32
利州综合,http://tvfile.lzgbdst.com/nmip-media/channellive/channel106876/playlist.m3u8?zsicd
利州综合,http://tv.drs.lzgbdst.com:8100/channellive/lztv2.flv?zsicd
旺苍新闻综合,https://m3u8.channel.dzsm.com/cms/videos/nmip-media/channellive/channel9/playlist.m3u8?zsicd
-汉源综合,http://live.hyxrmt.com:85/live/xwpd.m3u8?zsicd
泸县新闻综合,http://lxfile.lxxcb.cn/nmip-media/channellive/channel103799/playlist.m3u8?zsicd
@@ -1158,14 +1185,11 @@ IPTV淘BABY,http://222.128.98.255:4000/rtp/239.3.1.238:8001
茶,http://39.134.24.162/dbiptv.sn.chinamobile.com/PLTV/88888890/224/3221226808/index.m3u8
CHC高清电影,http://www.51nas.top:4022/udp/239.81.0.240:4056
苏州4K频道,http://liveshowbak2.kan0512.com/ksz-norecord/csztv4k_4k.m3u8
-中国教育3台,http://txycsbl.centv.cn/zb/0822cetv3.m3u8
青海卫视,http://stream.qhbtv.com/qhws/sd/live.m3u8?_upt=1da074361609506578
内蒙古卫视,http://v2.91kds.cn/b9/hoge.m3u8?ip=nmtv&id=92&auth=rinimabi
康巴卫视,http://v2.91kds.cn/b9/sctv.m3u8?id=kbws&auth=rinimabi
安多卫视,http://stream.qhbtv.com/adws/sd/live.m3u8
延边卫视,http://live.ybtvyun.com/video/s10006-44f040627ca1/index.m3u8
-宁夏公共,http://livepgc.cmc.ningxiahuangheyun.com/pgc/041867befe3dde090202f620ade5b87c.m3u8?txSecret=39373ebcf0d57da2477968efb258e2b7&txTime=6235C9B6
-宁夏经济,http://livepgc.cmc.ningxiahuangheyun.com/pgc/10717759047cafd37fd87caa5883e9c2.m3u8?txSecret=6a3918f766d0ff625282376ffee72687&txTime=6235C9C1
百姓健康,https://liveplay.xiaoeknow.com/live/5060_pyBeyjJ4RjcfhK7T.m3u8
中国环球电视,http://live.cgtn.com/500/prog_index.m3u8
中国党员教育,http://12371ksc.v.kcdnvip.com/12371/dangyuanwang_1/index.m3u8
@@ -1691,7 +1715,6 @@ Soda东南亚之旅,https://vdse.bdstatic.com//b6295e9776c2cd347716fc2447e27fac.
霍尔果斯综合,http://117.190.118.175:9090/stream1/m2e2000.m3u8?zxinjd
玛纳斯综合,http://218.84.127.245:1026/hls/main1/playlist.m3u8?zxinjd
贵南综合,http://livecdn.dmqhyadmin.com/hls/xjguinan.m3u8?zqinghd
-宁夏公共,http://livepgc.cmc.ningxiahuangheyun.com/pgc/041867befe3dde090202f620ade5b87c.m3u8?txSecret=39373ebcf0d57da2477968efb258e2b7&txTime=6235C9B6
宁夏经济,http://livepgc.cmc.ningxiahuangheyun.com/pgc/10717759047cafd37fd87caa5883e9c2.m3u8?txSecret=6a3918f766d0ff625282376ffee72687&txTime=6235C9C1
吉林都市,http://stream1.jlntv.cn/dspd/sd/live.m3u8?zjild
吉林生活,http://stream1.jlntv.cn/shpd/sd/live.m3u8?zjild
diff --git a/tvboxqq/南风/spider.jar b/tvboxqq/南风/spider.jar
index 80f0d8a6b751004efa1af2456d1bca6eff98eb90..e406192a2ad4ce473ccef37afd39674af0cc3a27 100644
GIT binary patch
literal 827384
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