diff --git a/0821.json b/0821.json index a8d151dc..dd8eea7b 100644 --- a/0821.json +++ b/0821.json @@ -166,7 +166,7 @@ {"name":"zui","type":0,"url":"https://jx.zui.cm/?url="}, {"name":"看看","type":0,"url":"https://jx.m3u8.pw/?url="} ], -"rules":[{"name":"lz","hosts":["vip.lz","hd.lz","v.cdnlz"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"ff","hosts":["vip.ffzy","hd.ffzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"bf","hosts":["bfzy","s5.bfzycdn"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"hs","hosts":["huoshan.com"],"regex":["item_id="]},{"name":"dy","hosts":["douyin.com"],"regex":["is_play_url="]},{"name":"cl","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]}], +"rules":[{"name":"海外看","hosts":["haiwaikan"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:2.93[\\s\\S]*?#EXT-X-DISCONTINUITY"]},{"name":"lz","hosts":["vip.lz","hd.lz","v.cdnlz"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"ff","hosts":["vip.ffzy","hd.ffzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"bf","hosts":["bfzy","s5.bfzycdn"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"hs","hosts":["huoshan.com"],"regex":["item_id="]},{"name":"dy","hosts":["douyin.com"],"regex":["is_play_url="]},{"name":"cl","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]}], "flags":["youku","优酷","优 酷","优酷视频", "qq","腾讯","腾 讯","腾讯视频", "iqiyi", "qiyi","奇艺","爱奇艺","爱 奇 艺", "m1905", "xigua", "letv","leshi","乐视","乐 视", "sohu","搜狐","搜 狐","搜狐视频", "tudou", "pptv", "mgtv","芒果","imgo","芒果TV","芒 果 T V", "qiqi","kuying-qq","bilibili","哔 哩","哔 哩 哔 哩"], "ads":["wan.51img1.com","iqiyi.hbuioo.com","vip.ffzyad.com","https://lf1-cdn-tos.bytegoofy.com/obj/tos-cn-i-dy/455ccf9e8ae744378118e4bd289288dd"] } diff --git a/0825.json b/0825.json index b94a7263..e6b55632 100644 --- a/0825.json +++ b/0825.json @@ -55,6 +55,7 @@ {"key":"drpy_js_dydhhy","name":"dydhhy[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/dydhhy.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_97tvs","name":"97tvs[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/97tvs.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_rrdyw","name":"rrdyw[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/rrdyw.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_meow","name":"meow[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/meow.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_kkpans","name":"kk盘[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/kkpans.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_校长影视","name":"校长影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/xzys.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_yyetsp","name":"人人影视搜[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/yyetsp.js", "quickSearch":1, "changeable":1, "timeout":30}, @@ -86,6 +87,7 @@ {"name":"Quad9","url":"https://dns.quad9.net/dns-quer","ips":["9.9.9.9","149.112.112.112"]} ], "rules":[ +{"name":"海外看","hosts":["haiwaikan"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:2.93[\\s\\S]*?#EXT-X-DISCONTINUITY"]}, {"name":"暴风廣告","hosts":["bfzy","s5.bfzycdn"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY"]}, {"name":"磁力廣告","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]}, {"name":"星星","hosts":["aws.ulivetv.net"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:8,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:9,[\\s\\S]*?#EXT-X-DISCONTINUITY"]}, diff --git a/0827.json b/0827.json index 2dc54e24..5ab38bdf 100644 --- a/0827.json +++ b/0827.json @@ -1,5 +1,5 @@ { - "spider": "./jar/custom_spider.jar;md5;37e03cb1531bf4b163bf0b366bc9aa6c", + "spider": "./jar/custom_spider.jar;md5;d5a5fbed39e0451e8f201f8bf53f276c", "wallpaper": "http://饭太硬.top/深色壁纸/api.php", "sites": [ { @@ -283,6 +283,15 @@ } ], "rules": [ + { + "name": "海外看", + "hosts": [ + "haiwaikan" + ], + "regex": [ + "#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:2.93[\\s\\S]*?#EXT-X-DISCONTINUITY" + ] + }, { "name": "暴風", "hosts": [ diff --git a/cat.json b/cat.json index 65c85265..74ce1851 100644 --- a/cat.json +++ b/cat.json @@ -39,5 +39,5 @@ {"key":"dadou","name":"影视 | 大豆","type":3,"api":"./cat/js/AppYsV2.js","ext":"http://www.dadou.cm/api.php/app/"}, {"key":"qtw","name":"影视 | 彩虹","type":3,"api":"./cat/js/AppYsV2.js","ext":"http://ys.qtw.asia/lvdou_api.php/v1.vod"} ], -"rules":[{"name":"lz","hosts":["vip.lz","hd.lz","v.cdnlz"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"ff","hosts":["vip.ffzy","hd.ffzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"bf","hosts":["bfzy","s5.bfzycdn"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"hs","hosts":["huoshan.com"],"regex":["item_id="]},{"name":"dy","hosts":["douyin.com"],"regex":["is_play_url="]},{"name":"cl","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]}] +"rules":[{"name":"海外看","hosts":["haiwaikan"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:2.93[\\s\\S]*?#EXT-X-DISCONTINUITY"]},{"name":"lz","hosts":["vip.lz","hd.lz","v.cdnlz"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"ff","hosts":["vip.ffzy","hd.ffzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"bf","hosts":["bfzy","s5.bfzycdn"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"hs","hosts":["huoshan.com"],"regex":["item_id="]},{"name":"dy","hosts":["douyin.com"],"regex":["is_play_url="]},{"name":"cl","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]}] } diff --git a/cat/js/yqktv_open.js b/cat/js/yqktv_open.js index 7cefd1fc..aa194c4d 100644 --- a/cat/js/yqktv_open.js +++ b/cat/js/yqktv_open.js @@ -1 +1 @@ -//bbQ0FUT1C/ARp5cWt0dl9vcGVuLmpzGC4vbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybgxDcnlwdG8KZGF5anMMamluamEyBlVyaQJfBmtleQZ1cmwMZGV2aWNlDnNpdGVLZXkQc2l0ZVR5cGUOcmVxdWVzdAhpbml0CGhvbWUOaG9tZVZvZBJuZXh0VmFsdWUMd29ya2VyEGNhdGVnb3J5DGRldGFpbAhwbGF5DHNlYXJjaA5jaGFyU3RyDnJhbmRTdHIQcmFuZFVVSUQOcmFuZE1BQxRyYW5kRGV2aWNlGmZvcm1hdFBsYXlVcmwSanNvblBhcnNlCnlxa3R2emFiYWNkZWZnaGprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkCZQJ0AnICYQJvAm4CaQZyZXEab2todHRwLzMuMTQuORR1c2VyLWFnZW50DmNvbnRlbnQkd3d3LmZ1d2VudHV0ZW5nLmNuEmJ1bmRsZXJJZA5yZWdDb2RlCGltc2kYMTAwMV9kZWZhdWx0DjEuMC4wLjEOdmVyc2lvbgptb2RlbBRkZXZpY2VJbmZvBm1hYxZ2ZXJzaW9uQ29kZQ5yZWxlYXNlDG9zSW5mbxZpc0xvd0RldmljZRJyZXF1ZXN0SWRAZDZkNTIwZWE5MDkwNGYxYmE2ODBlZDZjOWM5ZjkwMDcKYXBwSWQIaW1laQh1ZGlkDGFzc2lnbghrZXlzDHNvcnRCeQhwdXNoAj1OYXBwS2V5PTcwYWY2N2QyYjZjZjQ3Njc5YjM5N2VhNGMxODg2ODc3Bk1ENQImFnRvTG93ZXJDYXNlCHNpZ24OaGVhZGVycwhwb3N0DG1ldGhvZAhkYXRhCHNrZXkKc3R5cGUKbG9jYWwKcGFyc2UOaXNFbXB0eQRpZBJzdHJpbmdpZnlEaHR0cHM6Ly9jb24ubGJwY3J3LmNvbS9jb25maWcuanNvbjwvdjEvYXBpL3NlYXJjaC9nZXRTZWFyY2hGaWx0ZXIUZmlsdGVyTGlzdB5maWx0ZXJWYWx1ZUxpc3QOdHlwZV9pZBJ0eXBlX25hbWUQcGFyc2VJbnQEe30wL3YxL2FwaS92b2RXb3JrZXIvZGV0YWlsFnZvZFdvcmtlcklkDnZvZExpc3QMcmVtYXJrCHRyaW0Kc2NvcmUGMC4wCnZvZElkDHZvZF9pZA52b2ROYW1lEHZvZF9uYW1lEGNvdmVySW1nDnZvZF9waWMCIBZ2b2RfcmVtYXJrcwhwYWdlEnBhZ2Vjb3VudAhsaXN0AnMCZAJjAmwCdRRzdGFydHNXaXRoDnZfd29ya18Mc3Vic3RyEmNoYW5uZWxJZBRmaWx0ZXJOYW1lDGFyZWFJZAUwVzpTCHllYXIFdF79TiRjaGFubmVsQ2hpbGRUeXBlSWQFe3yLVwVoUeiQAnYQc29ydExpc3QQc29ydFR5cGUFkmOPXhBzb3J0TmFtZRJmaWxlck5hbWUUZmlsZXJWYWx1ZRxxdWVyeVZhbHVlSnNvbg5uZXh0VmFsLi92MS9hcGkvc2VhcmNoL3F1ZXJ5Tm93Dmhhc05leHQKaXRlbXMMZmlsdGVyLC92MS9hcGkvdm9kSW5mby9kZXRhaWwWY2hhbm5lbE5hbWUQdm9kX3llYXIQYXJlYU5hbWUQdm9kX2FyZWEKaW50cm8Wdm9kX2NvbnRlbnQSYWN0b3JMaXN0Bm1hcAQsIBJ2b2RfYWN0b3IYZGlyZWN0b3JMaXN0GHZvZF9kaXJlY3RvchRwbGF5ZXJMaXN0FHBsYXllck5hbWUMZXBMaXN0DGVwTmFtZQIkCGVwSWQCIwYkJCQadm9kX3BsYXlfZnJvbRh2b2RfcGxheV91cmwadm9kV29ya2VyTmFtZQxbYT1jcjoEL10IWy9hXTYvdjEvYXBpL3ZvZEluZm8vZ2V0RXBEZXRhaWwecmVzb2x1dGlvbkl0ZW1zInZvZFJlc29sdXRpb25OYW1lNC92MS9hcGkvdm9kSW5mby9nZXRQbGF5VXJsGnZvZFJlc29sdXRpb24Oa2V5d29yZAZzY18qL3YxL2FwaS9zZWFyY2gvc2VhcmNoDHJhbmRvbQItFnRvVXBwZXJDYXNlAjoMSHVhd2VpCmJyYW5kHEhVQVdFSStNYXRlKzIwDmJ1aWxkSWQUcmVwbGFjZUFsbA5yZXBsYWNlBC8vDGh0dHBzOghodHRwFFVzZXItQWdlbnQOcmVmZXJlcg5SZWZlcmVyDGhlYWRlcg+kAwGmAwEAG6gDAAUAqgMAAawDAAKuAwADsAMABLIDAA4ABgGgAQAAAAEcEHkAqgMADKwDAQyuAwIMsAMDDLIDBAy0AwAJtgMBCbgDAgm6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 \ No newline at end of file +//bbQ0FUT1C/ARp5cWt0dl9vcGVuLmpzLGFzc2V0czovL2pzL2xpYi9jYXQuanMcX19qc0V2YWxSZXR1cm4MQ3J5cHRvCmRheWpzDGppbmphMgZVcmkCXwZrZXkGdXJsDGRldmljZQ5zaXRlS2V5EHNpdGVUeXBlDnJlcXVlc3QIaW5pdAhob21lDmhvbWVWb2QSbmV4dFZhbHVlDHdvcmtlchBjYXRlZ29yeQxkZXRhaWwIcGxheQxzZWFyY2gOY2hhclN0cg5yYW5kU3RyEHJhbmRVVUlEDnJhbmRNQUMUcmFuZERldmljZRpmb3JtYXRQbGF5VXJsEmpzb25QYXJzZQp5cWt0dnphYmFjZGVmZ2hqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5AmUCdAJyAmECbwJuAnMGcmVxGm9raHR0cC8zLjE0LjkUdXNlci1hZ2VudA5jb250ZW50JHd3dy5mdXdlbnR1dGVuZy5jbhJidW5kbGVySWQOcmVnQ29kZQhpbXNpGDEwMDFfZGVmYXVsdA4xLjAuMC4xDnZlcnNpb24KbW9kZWwUZGV2aWNlSW5mbwZtYWMWdmVyc2lvbkNvZGUOcmVsZWFzZQxvc0luZm8WaXNMb3dEZXZpY2UScmVxdWVzdElkQGQ2ZDUyMGVhOTA5MDRmMWJhNjgwZWQ2YzljOWY5MDA3CmFwcElkCGltZWkIdWRpZAxhc3NpZ24Ia2V5cwxzb3J0QnkIcHVzaAI9TmFwcEtleT03MGFmNjdkMmI2Y2Y0NzY3OWIzOTdlYTRjMTg4Njg3NwZNRDUCJhZ0b0xvd2VyQ2FzZQhzaWduDmhlYWRlcnMIcG9zdAxtZXRob2QIZGF0YQhza2V5CnN0eXBlCmxvY2FsCnBhcnNlDmlzRW1wdHkEaWQSc3RyaW5naWZ5RGh0dHBzOi8vY29uLmxicGNydy5jb20vY29uZmlnLmpzb248L3YxL2FwaS9zZWFyY2gvZ2V0U2VhcmNoRmlsdGVyFGZpbHRlckxpc3QeZmlsdGVyVmFsdWVMaXN0DnR5cGVfaWQSdHlwZV9uYW1lEHBhcnNlSW50BHt9MC92MS9hcGkvdm9kV29ya2VyL2RldGFpbBZ2b2RXb3JrZXJJZA52b2RMaXN0DHJlbWFyawh0cmltCnNjb3JlBjAuMAp2b2RJZAx2b2RfaWQOdm9kTmFtZRB2b2RfbmFtZRBjb3ZlckltZw52b2RfcGljAiAWdm9kX3JlbWFya3MIcGFnZRJwYWdlY291bnQIbGlzdAJpAmQCYwJsAnUUc3RhcnRzV2l0aA52X3dvcmtfDHN1YnN0chJjaGFubmVsSWQUZmlsdGVyTmFtZQxhcmVhSWQFMFc6Uwh5ZWFyBXRe/U4kY2hhbm5lbENoaWxkVHlwZUlkBXt8i1cFaFHokAJ2EHNvcnRMaXN0EHNvcnRUeXBlBZJjj14Qc29ydE5hbWUSZmlsZXJOYW1lFGZpbGVyVmFsdWUccXVlcnlWYWx1ZUpzb24ObmV4dFZhbC4vdjEvYXBpL3NlYXJjaC9xdWVyeU5vdw5oYXNOZXh0Cml0ZW1zDGZpbHRlciwvdjEvYXBpL3ZvZEluZm8vZGV0YWlsFmNoYW5uZWxOYW1lEHZvZF95ZWFyEGFyZWFOYW1lEHZvZF9hcmVhCmludHJvFnZvZF9jb250ZW50EmFjdG9yTGlzdAZtYXAELCASdm9kX2FjdG9yGGRpcmVjdG9yTGlzdBh2b2RfZGlyZWN0b3IUcGxheWVyTGlzdBRwbGF5ZXJOYW1lDGVwTGlzdAxlcE5hbWUCJAhlcElkAiMGJCQkGnZvZF9wbGF5X2Zyb20Ydm9kX3BsYXlfdXJsGnZvZFdvcmtlck5hbWUMW2E9Y3I6BC9dCFsvYV02L3YxL2FwaS92b2RJbmZvL2dldEVwRGV0YWlsHnJlc29sdXRpb25JdGVtcyJ2b2RSZXNvbHV0aW9uTmFtZTQvdjEvYXBpL3ZvZEluZm8vZ2V0UGxheVVybBp2b2RSZXNvbHV0aW9uDmtleXdvcmQGc2NfKi92MS9hcGkvc2VhcmNoL3NlYXJjaAxyYW5kb20CLRZ0b1VwcGVyQ2FzZQI6DEh1YXdlaQpicmFuZBxIVUFXRUkrTWF0ZSsyMA5idWlsZElkFHJlcGxhY2VBbGwOcmVwbGFjZQQvLwxodHRwczoIaHR0cBRVc2VyLUFnZW50DnJlZmVyZXIOUmVmZXJlcgxoZWFkZXIPpAMBpgMBABuoAwAFAKoDAAGsAwACrgMAA7ADAASyAwAOAAYBoAEAAAABHBB5AKoDAAysAwEMrgMCDLADAwyyAwQMtAM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 \ No newline at end of file diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 01fb9370..b09820ca 100644 Binary files a/jar/custom_spider.jar and b/jar/custom_spider.jar differ diff --git a/js.json b/js.json index f75d7d2a..249ac153 100644 --- a/js.json +++ b/js.json @@ -4,7 +4,6 @@ "wallpaper":"https://tool.weetai.cn/api", "sites":[ {"key":"drpy_js_豆瓣","name":"搜索 | 豆瓣[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/drpy.js","searchable":1,"quickSearch":0,"changeable":0}, -{"key":"暴風","name":"影视 | 暴風[直连]","type":1,"api":"https://bfzyapi.com/api.php/provide/vod/?ac=list","searchable":1,"changeable":1}, {"key":"drpy_js_TVB云播","name":"影视 | TVB云播[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/TVB云播.js"}, {"key":"drpy_js_网飞.TV","name":"影视 | 网飞.TV[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/网飞.TV.js"}, {"key":"迪迪","name":"影视 | 迪迪[App]","api":"csp_AppYsV2","type":3,"searchable":1,"quickSearch":1,"changeable":1,"jar":"./jar/fty.jar","ext":"https://api123.adys.app/xgapp.php/v3/"}, @@ -31,6 +30,7 @@ {"key": "4KHDR","name": "🧲世界磁力┃慎用","type": 3,"searchable": 1,"quickSearch": 1,"changeable": 0,"jar":"./jar/fty.jar","api": "./lib/drpy1.min.js","ext": "./js/4khdri.js"}, {"key":"Lib","name":"影视 | 利播[直连]","type":3,"api":"csp_Libvio","searchable":1,"quickSearch":1,"changeable":1,"jar":"./jar/fty.jar","ext":"https://www.libvio.fun/"}, {"key":"百度","name":"百度","type":1,"api":"https://api.apibdzy.com/api.php/provide/vod?ac=list","searchable":1,"filterable":0,"categories":["国产动漫","日韩动漫","大陆剧","欧美剧","韩剧","日剧","动作片","喜剧片","爱情片","科幻片","恐怖片","剧情片","战争片"]}, +{"key":"暴風","name":"影视 | 暴風[直连]","type":1,"api":"https://bfzyapi.com/api.php/provide/vod/?ac=list","searchable":1,"changeable":1}, {"key":"drpy_js_磁力熊搜索","name":"搜索 | 磁力熊[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/cilixiong.js","searchable":0,"quickSearch":0,"changeable":1}, {"key":"lf_js_search","name":"搜索 | 路飞[js]","type":3,"searchable":0,"changeable":1,"quickSearch":0,"filterable":0,"api":"./lib/lf_search3_min.js"}, @@ -118,6 +118,7 @@ {"key":"drpy_js_dydhhy","name":"影视 | dydhhy[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/dydhhy.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_97tvs","name":"影视 | 97tvs[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/97tvs.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_rrdyw","name":"影视 | rrdyw[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/rrdyw.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_meow","name":"影视 | meow[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/meow.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_kkpans","name":"夸克 | kk盘[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/kkpans.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_校长影视","name":"夸克 | 校长影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/xzys.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_yyets","name":"夸克 | 人人影视搜[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/yyets.js", "quickSearch":1, "changeable":1, "timeout":30}, @@ -325,7 +326,7 @@ {"name":"1717云","url":"https://www.1717yun.com/jx/ty.php?url=","type":0,"ext":{"flag":["qiyi","imgo","爱奇艺","奇艺","qq","腾讯","youku","优酷","pptv","PPTV","letv","乐视","leshi","bilibili","哔哩哔哩","哔哩","mgtv","芒果","sohu","xigua","fun","风行"],"header":{"User-Agent":"Mozilla/5.0"}},"header":{"User-Agent":"Mozilla/5.0"}}, {"name":"看看","type":0,"url":"https://jx.m3u8.pw/?url="} ], -"rules":[{"name":"lz","hosts":["vip.lz","hd.lz","v.cdnlz"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"ff","hosts":["vip.ffzy","hd.ffzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"bf","hosts":["bfzy","s5.bfzycdn"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"hs","hosts":["huoshan.com"],"regex":["item_id="]},{"name":"dy","hosts":["douyin.com"],"regex":["is_play_url="]},{"name":"cl","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]}], +"rules":[{"name":"海外看","hosts":["haiwaikan"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:2.93[\\s\\S]*?#EXT-X-DISCONTINUITY"]},{"name":"lz","hosts":["vip.lz","hd.lz","v.cdnlz"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"ff","hosts":["vip.ffzy","hd.ffzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"bf","hosts":["bfzy","s5.bfzycdn"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"hs","hosts":["huoshan.com"],"regex":["item_id="]},{"name":"dy","hosts":["douyin.com"],"regex":["is_play_url="]},{"name":"cl","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]}], "flags":["youku","优酷","优 酷","优酷视频", "qq","腾讯","腾 讯","腾讯视频", "iqiyi", "qiyi","奇艺","爱奇艺","爱 奇 艺", "m1905", "xigua", "letv","leshi","乐视","乐 视", "sohu","搜狐","搜 狐","搜狐视频", "tudou", "pptv", "mgtv","芒果","imgo","芒果TV","芒 果 T V", "qiqi","kuying-qq","bilibili","哔 哩","哔 哩 哔 哩"], "ads":["wan.51img1.com","iqiyi.hbuioo.com","vip.ffzyad.com","https://lf1-cdn-tos.bytegoofy.com/obj/tos-cn-i-dy/455ccf9e8ae744378118e4bd289288dd"] } diff --git a/js/meow.js b/js/meow.js new file mode 100644 index 00000000..22f5fbd3 --- /dev/null +++ b/js/meow.js @@ -0,0 +1,91 @@ +var rule = { + title:'meow.tg[搜]', + host:'https://meow.tg', + homeUrl:'/', + url:'*', + filter_url:'{{fl.class}}', + filter:{ + }, + searchUrl: '/api/results/query?page=fypage&perPage=20&keyword=**', + searchable:2, + quickSearch:0, + filterable:0, + headers:{ + 'User-Agent': PC_UA, + 'Accept': '*/*', + 'Referer': 'https://meow.tg/', + }, + timeout:5000, + class_name:'', + class_url:'', + play_parse:true, + play_json:[{ + re:'*', + json:{ + parse:0, + jx:0 + } + }], + lazy:'', + limit:6, + 推荐:'', + 一级:'', + 二级:`js: +VOD.vod_play_from = "雲盤"; +VOD.vod_remarks = detailUrl; +VOD.vod_actor = "沒有二級,只有一級鏈接直接推送播放"; +VOD.vod_content = MY_URL; +VOD.vod_play_url = "雲盤$" + detailUrl; +`, + 搜索:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +let newurl = rule.homeUrl + 'api/results/query?page=' + MY_PAGE+ '&perPage=20&keyword=' + encodeURIComponent(KEY); +let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); +log("meow search param>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params)); +let new_html=request(newurl, _fetch_params); +let json=JSON.parse(new_html); +let d=[]; +for(const it in json.finalList){ + if (json.finalList.hasOwnProperty(it)){ + //log("meow search it>>>>>>>>>>>>>>>" + JSON.stringify(json.finalList[it])); + let text = json.finalList[it]["results"]["text"]; + let high = json.finalList[it]["results"]["highLight"]; + if (/(www.aliyundrive.com|pan.quark.cn)/.test(text)){ + text = text; + }else if (/(www.aliyundrive.com|pan.quark.cn)/.test(high)){ + text = high; + }else{ + text = ""; + } + if (text.length>0){ + let title = ""; + if (/.*名称(:|:)([^\\n]*)/.test(text)){ + title = text.match(/.*名称(:|:)([^\\n]*)/)[2].trim(); + } + let content = ""; + if (/.*描述(:|:)([^\\n]*)/.test(text)){ + content = text.match(/.*描述(:|:)([^\\n]*)/)[2].trim(); + } + let desc = json.finalList[it]["source"]["name_zh"]; + let img = json.finalList[it]["source"]["avatar"]; + let matches = text.match(/(www.aliyundrive.com|pan.quark.cn)([^? \\n]*)/); + let burl = "https://" + matches[1] + matches[2]; + if (title.includes(KEY)){ + log("meow search title,url,img>>>>>>>>>>>>>>>" + title + ",[" + burl + "], " + img); + if (searchObj.quick === true){ + title = KEY; + } + d.push({ + title:title, + img:img, + content:content, + desc:desc, + url:'push://'+burl + }); + } + } + } +} +setResult(d); +`, +} diff --git a/jsm.json b/jsm.json index 2a5745fa..db22aa7f 100644 --- a/jsm.json +++ b/jsm.json @@ -4,7 +4,6 @@ "wallpaper":"https://tool.weetai.cn/api", "sites":[ {"key":"drpy_js_豆瓣","name":"搜索 | 豆瓣[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/drpy.js","searchable":1,"quickSearch":0,"changeable":0}, -{"key":"暴風","name":"影视 | 暴風[直连]","type":1,"api":"https://bfzyapi.com/api.php/provide/vod/?ac=list","searchable":1,"changeable":1}, {"key":"drpy_js_TVB云播","name":"影视 | TVB云播[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/TVB云播.js"}, {"key":"drpy_js_网飞.TV","name":"影视 | 网飞.TV[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/网飞.TV.js"}, {"key":"迪迪","name":"影视 | 迪迪[App]","api":"csp_AppYsV2","type":3,"searchable":1,"quickSearch":1,"changeable":1,"ext":"https://api123.adys.app/xgapp.php/v3/"}, @@ -31,6 +30,7 @@ {"key": "4KHDR","name": "🧲世界磁力┃慎用","type": 3,"searchable": 1,"quickSearch": 1,"changeable": 0,"api": "./lib/drpy1.min.js","ext": "./js/4khdri.js"}, {"key":"Lib","name":"影视 | 利播[直连]","type":3,"api":"csp_Libvio","searchable":1,"quickSearch":1,"changeable":1,"ext":"https://www.libvio.fun/"}, {"key":"百度","name":"百度","type":1,"api":"https://api.apibdzy.com/api.php/provide/vod?ac=list","searchable":1,"filterable":0,"categories":["国产动漫","日韩动漫","大陆剧","欧美剧","韩剧","日剧","动作片","喜剧片","爱情片","科幻片","恐怖片","剧情片","战争片"]}, +{"key":"暴風","name":"影视 | 暴風[直连]","type":1,"api":"https://bfzyapi.com/api.php/provide/vod/?ac=list","searchable":1,"changeable":1}, {"key":"drpy_js_磁力熊搜索","name":"搜索 | 磁力熊[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/cilixiong.js","searchable":0,"quickSearch":0,"changeable":1}, {"key":"lf_js_search","name":"搜索 | 路飞[js]","type":3,"searchable":0,"changeable":1,"quickSearch":0,"filterable":0,"api":"./lib/lf_search3_min.js"}, @@ -118,6 +118,7 @@ {"key":"drpy_js_dydhhy","name":"影视 | dydhhy[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/dydhhy.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_97tvs","name":"影视 | 97tvs[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/97tvs.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_rrdyw","name":"影视 | rrdyw[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/rrdyw.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_meow","name":"影视 | meow[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/meow.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_kkpans","name":"夸克 | kk盘[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/kkpans.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_校长影视","name":"夸克 | 校长影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/xzys.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_yyets","name":"夸克 | 人人影视搜[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/yyets.js", "quickSearch":1, "changeable":1, "timeout":30}, @@ -325,7 +326,7 @@ {"name":"1717云","url":"https://www.1717yun.com/jx/ty.php?url=","type":0,"ext":{"flag":["qiyi","imgo","爱奇艺","奇艺","qq","腾讯","youku","优酷","pptv","PPTV","letv","乐视","leshi","bilibili","哔哩哔哩","哔哩","mgtv","芒果","sohu","xigua","fun","风行"],"header":{"User-Agent":"Mozilla/5.0"}},"header":{"User-Agent":"Mozilla/5.0"}}, {"name":"看看","type":0,"url":"https://jx.m3u8.pw/?url="} ], -"rules":[{"name":"lz","hosts":["vip.lz","hd.lz","v.cdnlz"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"ff","hosts":["vip.ffzy","hd.ffzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"bf","hosts":["bfzy","s5.bfzycdn"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"hs","hosts":["huoshan.com"],"regex":["item_id="]},{"name":"dy","hosts":["douyin.com"],"regex":["is_play_url="]},{"name":"cl","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]}], +"rules":[{"name":"海外看","hosts":["haiwaikan"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:2.93[\\s\\S]*?#EXT-X-DISCONTINUITY"]},{"name":"lz","hosts":["vip.lz","hd.lz","v.cdnlz"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"ff","hosts":["vip.ffzy","hd.ffzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"bf","hosts":["bfzy","s5.bfzycdn"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"hs","hosts":["huoshan.com"],"regex":["item_id="]},{"name":"dy","hosts":["douyin.com"],"regex":["is_play_url="]},{"name":"cl","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]}], "flags":["youku","优酷","优 酷","优酷视频", "qq","腾讯","腾 讯","腾讯视频", "iqiyi", "qiyi","奇艺","爱奇艺","爱 奇 艺", "m1905", "xigua", "letv","leshi","乐视","乐 视", "sohu","搜狐","搜 狐","搜狐视频", "tudou", "pptv", "mgtv","芒果","imgo","芒果TV","芒 果 T V", "qiqi","kuying-qq","bilibili","哔 哩","哔 哩 哔 哩"], "ads":["wan.51img1.com","iqiyi.hbuioo.com","vip.ffzyad.com","https://lf1-cdn-tos.bytegoofy.com/obj/tos-cn-i-dy/455ccf9e8ae744378118e4bd289288dd"] } diff --git a/lf.json b/lf.json index b02149cc..e54762b8 100644 --- a/lf.json +++ b/lf.json @@ -2,7 +2,6 @@ "lives":[{"name":"live","type":0,"url":"https://xhdwc.tk/tvlive.txt","playerType":1,"epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo": "https://epg.112114.xyz/logo/{name}.png"}], "sites":[ {"key":"lf_js_search","name":"搜索 | lf_search","type":3,"searchable":0,"changeable":1,"quickSearch":0,"filterable":1,"api":"./lib/lf_search3_min.js"}, -{"key":"lf_js_ikanbot","name":"点播 | lf_ikanbot","type":3,"searchable":1,"changeable":1,"quickSearch":1,"filterable":1,"api":"./lib/lf_ikanbot_min.js"}, {"key":"荐片","name":"点播 | 荐片[T4]","type":4,"api":"http://home.jundie.top:9520/spider/csp_JP","searchable":1,"quickSearch":1,"filterable":1, "timeout":30}, {"key":"csp_wogg_cli","name":"阿里 | 玩偶哥哥[T4]","type":4,"api":"http://home.jundie.top:9520/spider/csp_Wogg","searchable":1,"quickSearch":1,"filterable":1,"ext":"http://127.0.0.1:9978/file/tvfan/token.txt", "timeout":30}, {"key":"小纸条_cli","name":"阿里 | 小纸条[T4]","type":4,"api":"http://home.jundie.top:9520/spider/cli_gitCafe","searchable":1,"quickSearch":1,"filterable":1,"ext":"http://127.0.0.1:9978/file/tvfan/token.txt", "timeout":30}, @@ -10,5 +9,5 @@ {"key":"lf_js_lf_live","name":"直播 | lf_live","type":3,"api":"./lib/lf_live_min.js","style":{ "type":"oval"},"searchable":1,"changeable":0,"quickSearch":0,"filterable":1,"ext":"./js/lf_live.txt"}, {"key":"push_agent","name":"推送 | lf_push","type":3,"searchable":0,"changeable":1,"quickSearch":0,"filterable":0,"api":"./lib/lf_pushagent_min.js","timeout":30,"ext":"http://127.0.0.1:9978/file/tvfan/token.txt"} ], -"rules":[{"name":"lz","hosts":["vip.lz","hd.lz","v.cdnlz"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"ff","hosts":["vip.ffzy","hd.ffzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"bf","hosts":["bfzy","s5.bfzycdn"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"hs","hosts":["huoshan.com"],"regex":["item_id="]},{"name":"dy","hosts":["douyin.com"],"regex":["is_play_url="]},{"name":"cl","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]}] +"rules":[{"name":"海外看","hosts":["haiwaikan"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:2.93[\\s\\S]*?#EXT-X-DISCONTINUITY"]},{"name":"lz","hosts":["vip.lz","hd.lz","v.cdnlz"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.433333,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"ff","hosts":["vip.ffzy","hd.ffzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"bf","hosts":["bfzy","s5.bfzycdn"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY","#EXTINF.*?\\s+.*?1o.*?\\.ts\\s+"]},{"name":"hs","hosts":["huoshan.com"],"regex":["item_id="]},{"name":"dy","hosts":["douyin.com"],"regex":["is_play_url="]},{"name":"cl","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]}] } diff --git a/lib/drpy.min.js b/lib/drpy.min.js index 5e0ba864..fffbbb51 100644 --- a/lib/drpy.min.js +++ b/lib/drpy.min.js @@ -1 +1 @@ -import cheerio from"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/libs/cheerio.min.js";import"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/libs/crypto-js.js";import"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/libs/drT.js";import 模板 from"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/js/模板.js";import{gbkTool}from"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/libs/gbk.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"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/libs/cheerio.min.js";import"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/libs/crypto-js.js";import"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/libs/drT.js";import 模板 from"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/js/模板.js";import{gbkTool}from"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/libs/gbk.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.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;let is_video;if(rule.isVideo&&rule.isVideo.trim()){is_video=rule.isVideo.trim()}if(is_video.startsWith("js:")){is_video=is_video.replace("js:","");t=1}let isVideoObj={url:url,isVideo:is_video,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/lib/drpy2.min.js b/lib/drpy2.min.js index a2ef690f..13310607 100644 --- a/lib/drpy2.min.js +++ b/lib/drpy2.min.js @@ -1 +1 @@ -import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"../js/模板.js";import{gbkTool}from"./gbk.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}; +import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"../js/模板.js";import{gbkTool}from"./gbk.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;let is_video;if(rule.isVideo&&rule.isVideo.trim()){is_video=rule.isVideo.trim()}if(is_video.startsWith("js:")){is_video=is_video.replace("js:","");t=1}let isVideoObj={url:url,isVideo:is_video,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/listx.txt b/listx.txt index 494eb740..fa12841e 100644 --- a/listx.txt +++ b/listx.txt @@ -334,148 +334,148 @@ MSD-112/惹火上门按摩,https://ypmnkbb.saejeuj.com/api/app/media/m3u8/av/9m/ MSD-113/爽操少妇喷白浆,https://ypmnkbb.saejeuj.com/api/app/media/m3u8/av/9o/w7/qp/4a/4ec0964678e645ce89eef69903c719e1.m3u8? MSD-114/口爆童颜巨乳嫩妹,https://ypmnkbb.saejeuj.com/api/app/media/m3u8/av/yb/9e/kr/j1/28c0d9c657a74a5c8be6a799eac8b201.m3u8? rostelekom,#genre# -Unknown_5010,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5009/index.m3u8 -Unknown_5011,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5010/index.m3u8 -Unknown_5012,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5011/index.m3u8 -Unknown_5013,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5012/index.m3u8 -Unknown_5014,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5013/index.m3u8 -Unknown_5015,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5014/index.m3u8 -Unknown_5016,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5015/index.m3u8 -Unknown_6165,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6164/index.m3u8 -Unknown_6166,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6165/index.m3u8 -Unknown_6167,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6166/index.m3u8 -Unknown_6168,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6167/index.m3u8 -Unknown_6169,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6168/index.m3u8 -Unknown_6170,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6169/index.m3u8 -Unknown_6171,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6170/index.m3u8 -Unknown_6172,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6171/index.m3u8 -Unknown_6173,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6172/index.m3u8 -Unknown_6174,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6173/index.m3u8 -Unknown_6175,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6174/index.m3u8 -Unknown_6176,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6175/index.m3u8 -Unknown_6177,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6176/index.m3u8 -Unknown_6178,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6177/index.m3u8 -Unknown_6179,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6178/index.m3u8 -Unknown_6180,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6179/index.m3u8 -Unknown_6181,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6180/index.m3u8 -Unknown_6182,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6181/index.m3u8 -Unknown_6183,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6182/index.m3u8 -Unknown_6184,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6183/index.m3u8 -Unknown_6185,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6184/index.m3u8 -Unknown_6186,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6185/index.m3u8 -Unknown_6187,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6186/index.m3u8 -Unknown_6188,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6187/index.m3u8 -Unknown_6189,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6188/index.m3u8 -Unknown_6190,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6189/index.m3u8 -Unknown_6191,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6190/index.m3u8 -Unknown_6192,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6191/index.m3u8 -Unknown_6193,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6192/index.m3u8 -Unknown_6194,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6193/index.m3u8 -Unknown_6195,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6194/index.m3u8 -Unknown_6196,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6195/index.m3u8 -Unknown_6197,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6196/index.m3u8 -Unknown_6198,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6197/index.m3u8 -Unknown_6199,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6198/index.m3u8 -Unknown_6200,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6199/index.m3u8 -Unknown_6201,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6200/index.m3u8 -Unknown_6202,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6201/index.m3u8 -Unknown_6203,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6202/index.m3u8 -Unknown_6204,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6203/index.m3u8 -Unknown_6205,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6204/index.m3u8 -Unknown_6206,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6205/index.m3u8 -Unknown_6207,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6206/index.m3u8 -Unknown_6208,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6207/index.m3u8 -Unknown_6209,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6208/index.m3u8 -Unknown_6210,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6209/index.m3u8 -Unknown_6211,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6210/index.m3u8 -Unknown_6212,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6211/index.m3u8 -Unknown_6213,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6212/index.m3u8 -Unknown_6214,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6213/index.m3u8 -Unknown_6215,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6214/index.m3u8 -Unknown_6216,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6215/index.m3u8 -Unknown_6217,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6216/index.m3u8 -Unknown_6218,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6217/index.m3u8 -Unknown_6219,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6218/index.m3u8 -Unknown_6220,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6219/index.m3u8 -Unknown_6221,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6220/index.m3u8 -Unknown_6222,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6221/index.m3u8 -Unknown_6223,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6222/index.m3u8 -Unknown_6224,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6223/index.m3u8 -Unknown_6225,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6224/index.m3u8 -Unknown_6226,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6225/index.m3u8 -Unknown_6227,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6226/index.m3u8 -Unknown_6228,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6227/index.m3u8 -Unknown_6229,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6228/index.m3u8 -Unknown_6230,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6229/index.m3u8 -Unknown_6231,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6230/index.m3u8 -Unknown_6232,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6231/index.m3u8 -Unknown_6233,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6232/index.m3u8 -Unknown_6234,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6233/index.m3u8 -Unknown_6235,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6234/index.m3u8 -Unknown_6236,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6235/index.m3u8 -Unknown_6237,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6236/index.m3u8 -Unknown_6238,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6237/index.m3u8 -Unknown_6239,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6238/index.m3u8 -Unknown_6240,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6239/index.m3u8 -Unknown_6241,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6240/index.m3u8 -Unknown_6242,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6241/index.m3u8 -Unknown_6243,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6242/index.m3u8 -Unknown_6244,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6243/index.m3u8 -Unknown_6245,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6244/index.m3u8 -Unknown_6246,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6245/index.m3u8 -Unknown_6247,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6246/index.m3u8 -Unknown_6248,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6247/index.m3u8 -Unknown_6249,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6248/index.m3u8 -Unknown_6250,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6249/index.m3u8 -Unknown_6251,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6250/index.m3u8 -Unknown_6252,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6251/index.m3u8 -Unknown_6253,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6252/index.m3u8 -Unknown_6254,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6253/index.m3u8 -Unknown_6255,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6254/index.m3u8 -Unknown_6256,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6255/index.m3u8 -Unknown_6257,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6256/index.m3u8 -Unknown_6258,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6257/index.m3u8 -Unknown_6259,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6258/index.m3u8 -Unknown_6260,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6259/index.m3u8 -Unknown_6261,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6260/index.m3u8 -Unknown_6262,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6261/index.m3u8 -Unknown_6263,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6262/index.m3u8 -Unknown_6264,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6263/index.m3u8 -Unknown_6265,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6264/index.m3u8 -Unknown_6266,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6265/index.m3u8 -Unknown_6267,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6266/index.m3u8 -Unknown_6268,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6267/index.m3u8 -Unknown_6269,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6268/index.m3u8 -Unknown_6270,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6269/index.m3u8 -Unknown_6271,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6270/index.m3u8 -Unknown_6272,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6271/index.m3u8 -Unknown_6273,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6272/index.m3u8 -Unknown_6274,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6273/index.m3u8 -Unknown_6275,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6274/index.m3u8 -Unknown_6276,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6275/index.m3u8 -Unknown_6277,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6276/index.m3u8 -Unknown_6278,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6277/index.m3u8 -Unknown_6279,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6278/index.m3u8 -Unknown_6280,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6279/index.m3u8 -Unknown_6281,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6280/index.m3u8 -Unknown_6282,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6281/index.m3u8 -Unknown_6283,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6282/index.m3u8 -Unknown_6284,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6283/index.m3u8 -Unknown_6285,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6284/index.m3u8 -Unknown_6286,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6285/index.m3u8 -Unknown_6287,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6286/index.m3u8 -Unknown_6288,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6287/index.m3u8 -Unknown_6289,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6288/index.m3u8 -Unknown_6290,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6289/index.m3u8 -Unknown_6291,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6290/index.m3u8 -Unknown_6292,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6291/index.m3u8 -Unknown_6293,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6292/index.m3u8 -Unknown_6294,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6293/index.m3u8 -Unknown_6295,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6294/index.m3u8 -Unknown_6296,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6295/index.m3u8 -Unknown_6297,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6296/index.m3u8 -Unknown_6298,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6297/index.m3u8 -Unknown_6299,http://127.0.0.1:10079/?proxy=socks5://127.0.0.1:7890&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6298/index.m3u8 +Unknown_5010,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5009/index.m3u8 +Unknown_5011,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5010/index.m3u8 +Unknown_5012,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5011/index.m3u8 +Unknown_5013,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5012/index.m3u8 +Unknown_5014,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5013/index.m3u8 +Unknown_5015,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5014/index.m3u8 +Unknown_5016,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/5015/index.m3u8 +Unknown_6165,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6164/index.m3u8 +Unknown_6166,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6165/index.m3u8 +Unknown_6167,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6166/index.m3u8 +Unknown_6168,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6167/index.m3u8 +Unknown_6169,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6168/index.m3u8 +Unknown_6170,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6169/index.m3u8 +Unknown_6171,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6170/index.m3u8 +Unknown_6172,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6171/index.m3u8 +Unknown_6173,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6172/index.m3u8 +Unknown_6174,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6173/index.m3u8 +Unknown_6175,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6174/index.m3u8 +Unknown_6176,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6175/index.m3u8 +Unknown_6177,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6176/index.m3u8 +Unknown_6178,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6177/index.m3u8 +Unknown_6179,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6178/index.m3u8 +Unknown_6180,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6179/index.m3u8 +Unknown_6181,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6180/index.m3u8 +Unknown_6182,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6181/index.m3u8 +Unknown_6183,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6182/index.m3u8 +Unknown_6184,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6183/index.m3u8 +Unknown_6185,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6184/index.m3u8 +Unknown_6186,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6185/index.m3u8 +Unknown_6187,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6186/index.m3u8 +Unknown_6188,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6187/index.m3u8 +Unknown_6189,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6188/index.m3u8 +Unknown_6190,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6189/index.m3u8 +Unknown_6191,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6190/index.m3u8 +Unknown_6192,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6191/index.m3u8 +Unknown_6193,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6192/index.m3u8 +Unknown_6194,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6193/index.m3u8 +Unknown_6195,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6194/index.m3u8 +Unknown_6196,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6195/index.m3u8 +Unknown_6197,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6196/index.m3u8 +Unknown_6198,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6197/index.m3u8 +Unknown_6199,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6198/index.m3u8 +Unknown_6200,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6199/index.m3u8 +Unknown_6201,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6200/index.m3u8 +Unknown_6202,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6201/index.m3u8 +Unknown_6203,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6202/index.m3u8 +Unknown_6204,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6203/index.m3u8 +Unknown_6205,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6204/index.m3u8 +Unknown_6206,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6205/index.m3u8 +Unknown_6207,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6206/index.m3u8 +Unknown_6208,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6207/index.m3u8 +Unknown_6209,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6208/index.m3u8 +Unknown_6210,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6209/index.m3u8 +Unknown_6211,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6210/index.m3u8 +Unknown_6212,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6211/index.m3u8 +Unknown_6213,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6212/index.m3u8 +Unknown_6214,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6213/index.m3u8 +Unknown_6215,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6214/index.m3u8 +Unknown_6216,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6215/index.m3u8 +Unknown_6217,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6216/index.m3u8 +Unknown_6218,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6217/index.m3u8 +Unknown_6219,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6218/index.m3u8 +Unknown_6220,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6219/index.m3u8 +Unknown_6221,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6220/index.m3u8 +Unknown_6222,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6221/index.m3u8 +Unknown_6223,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6222/index.m3u8 +Unknown_6224,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6223/index.m3u8 +Unknown_6225,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6224/index.m3u8 +Unknown_6226,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6225/index.m3u8 +Unknown_6227,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6226/index.m3u8 +Unknown_6228,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6227/index.m3u8 +Unknown_6229,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6228/index.m3u8 +Unknown_6230,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6229/index.m3u8 +Unknown_6231,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6230/index.m3u8 +Unknown_6232,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6231/index.m3u8 +Unknown_6233,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6232/index.m3u8 +Unknown_6234,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6233/index.m3u8 +Unknown_6235,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6234/index.m3u8 +Unknown_6236,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6235/index.m3u8 +Unknown_6237,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6236/index.m3u8 +Unknown_6238,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6237/index.m3u8 +Unknown_6239,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6238/index.m3u8 +Unknown_6240,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6239/index.m3u8 +Unknown_6241,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6240/index.m3u8 +Unknown_6242,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6241/index.m3u8 +Unknown_6243,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6242/index.m3u8 +Unknown_6244,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6243/index.m3u8 +Unknown_6245,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6244/index.m3u8 +Unknown_6246,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6245/index.m3u8 +Unknown_6247,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6246/index.m3u8 +Unknown_6248,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6247/index.m3u8 +Unknown_6249,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6248/index.m3u8 +Unknown_6250,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6249/index.m3u8 +Unknown_6251,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6250/index.m3u8 +Unknown_6252,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6251/index.m3u8 +Unknown_6253,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6252/index.m3u8 +Unknown_6254,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6253/index.m3u8 +Unknown_6255,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6254/index.m3u8 +Unknown_6256,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6255/index.m3u8 +Unknown_6257,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6256/index.m3u8 +Unknown_6258,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6257/index.m3u8 +Unknown_6259,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6258/index.m3u8 +Unknown_6260,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6259/index.m3u8 +Unknown_6261,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6260/index.m3u8 +Unknown_6262,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6261/index.m3u8 +Unknown_6263,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6262/index.m3u8 +Unknown_6264,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6263/index.m3u8 +Unknown_6265,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6264/index.m3u8 +Unknown_6266,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6265/index.m3u8 +Unknown_6267,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6266/index.m3u8 +Unknown_6268,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6267/index.m3u8 +Unknown_6269,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6268/index.m3u8 +Unknown_6270,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6269/index.m3u8 +Unknown_6271,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6270/index.m3u8 +Unknown_6272,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6271/index.m3u8 +Unknown_6273,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6272/index.m3u8 +Unknown_6274,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6273/index.m3u8 +Unknown_6275,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6274/index.m3u8 +Unknown_6276,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6275/index.m3u8 +Unknown_6277,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6276/index.m3u8 +Unknown_6278,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6277/index.m3u8 +Unknown_6279,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6278/index.m3u8 +Unknown_6280,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6279/index.m3u8 +Unknown_6281,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6280/index.m3u8 +Unknown_6282,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6281/index.m3u8 +Unknown_6283,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6282/index.m3u8 +Unknown_6284,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6283/index.m3u8 +Unknown_6285,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6284/index.m3u8 +Unknown_6286,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6285/index.m3u8 +Unknown_6287,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6286/index.m3u8 +Unknown_6288,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6287/index.m3u8 +Unknown_6289,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6288/index.m3u8 +Unknown_6290,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6289/index.m3u8 +Unknown_6291,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6290/index.m3u8 +Unknown_6292,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6291/index.m3u8 +Unknown_6293,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6292/index.m3u8 +Unknown_6294,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6293/index.m3u8 +Unknown_6295,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6294/index.m3u8 +Unknown_6296,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6295/index.m3u8 +Unknown_6297,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6296/index.m3u8 +Unknown_6298,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6297/index.m3u8 +Unknown_6299,http://127.0.0.1:10079/?proxy=socks5://192.168.1.9:4592&thread=0&url=http://vl05t7es.rostelekom.xyz/iptv/QAX2K7HNCDZF2N/6298/index.m3u8 Adult,#genre# A teen with a mature,http://ovhv39.twincdn.com/videos/5/5912/5912_720p.mp4 Adriana Malao,http://ovhv39.twincdn.com/videos/12/12570/12570_720p.mp4