diff --git a/0707.json b/0707.json index d5c7a2f8..7b555374 100644 --- a/0707.json +++ b/0707.json @@ -2,53 +2,43 @@ "urls": [ { "url": "./0821.json", - "name": "高天流云 No.1", - "time": "2023-04-19" + "name": "高天流云 No.1" }, { "url": "./0825.json", - "name": "高天流云 PG", - "time": "2023-04-19" + "name": "高天流云 PG" }, { "url": "./0826.json", - "name": "高天流云 FTY", - "time": "2023-04-19" + "name": "高天流云 FTY" }, { "url": "./0827.json", - "name": "高天流云 FM", - "time": "2023-04-19" + "name": "高天流云 FM" }, { "url": "./0828.json", - "name": "高天流云 TS", - "time": "2023-04-19" + "name": "高天流云 TS" }, { "url": "./js.json", - "name": "高天流云 JS", - "time": "2023-04-19" + "name": "高天流云 JS" }, { "url": "./XBPQ.json", - "name": "高天流云 XBPQ", - "time": "2023-04-19" + "name": "高天流云 XBPQ" }, { "url": "./XYQ.json", - "name": "高天流云 XYQ", - "time": "2023-04-19" + "name": "高天流云 XYQ" }, { "url": "./cat.json", - "name": "高天流云 CAT", - "time": "2023-04-19" + "name": "高天流云 CAT" }, { "url": "./lf.json", - "name": "高天流云 LF", - "time": "2023-04-19" + "name": "高天流云 LF" } ] } \ No newline at end of file diff --git a/0821.json b/0821.json index 6bcf1709..ba037b4b 100644 --- a/0821.json +++ b/0821.json @@ -1,5 +1,5 @@ { -"spider":"./jar/fan.txt;md5;4d1c769684cc9b85f8adf54f8b43abb6", +"spider":"./jar/fan.txt;md5;f20b74480c058b1ff6236601f92d65a8", "lives":[{"name":"初秋语•综合","type":0,"url":"./list.txt","playerType":1,"epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, {"name":"YanG•综合","type":0,"url":"https://ghproxy.com/https://raw.githubusercontent.com/YanG-1989/m3u/main/Gather.m3u","playerType":1,"epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, {"name":"范明明•综合","type":0,"url":"https://ghproxy.com/https://raw.githubusercontent.com/fanmingming/live/main/tv/m3u/global.m3u","playerType":1,"epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, @@ -36,6 +36,7 @@ {"key":"迪迪","name":"迪迪┃App","api":"csp_AppYsV2","type":3,"searchable":1,"quickSearch":1,"changeable":1,"ext":"https://api123.adys.app/xgapp.php/v3/"}, {"key":"Czsapp","name":"厂长┃直连","type":3,"api":"csp_Czsapp","playerType":2,"searchable":1,"quickSearch":1,"changeable":1}, +{"key":"率率","name":"率率┃App","type":3,"api":"csp_AppYsV2","playerType":1,"searchable": 1, "quickSearch": 1, "changeable":1, "ext": "http://s.ether-mine.com/api.php/app/"}, {"key":"Auete","name":"奥特┃直连","type": 3,"api":"csp_Auete","searchable":1,"quickSearch":1,"changeable":1}, {"key":"zxzj","name":"在线┃直连","type":3,"api":"csp_Zxzj","searchable":1,"quickSearch":1,"changeable":1,"ext":"https://www.zxzj.pro/"}, {"key":"探探","name":"影探┃App","type":3,"playerType":"1","api":"csp_YTVIP","searchable":1,"quickSearch":1,"changeable":1,"ext":"vip.lyyytv.cn"}, diff --git a/0825.json b/0825.json index 9908cd4e..3e7246b5 100644 --- a/0825.json +++ b/0825.json @@ -1,5 +1,5 @@ { -"spider":"./jar/fm.jar;md5;60aa3afc63b564d66450b23272cf22ce", +"spider":"./jar/fm.jar;md5;5d0c3b405db6cef91758441b28e04ec5", "lives":[{"name":"初秋语•综合","type":0,"url":"./list.txt","playerType":1,"epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, {"name":"Ray•综合","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"}, {"name":"俊于•综合","type":0,"url":"http://home.jundie.top:81/Cat/tv/live.txt","playerType":1,"epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo": "https://epg.112114.xyz/logo/{name}.png"}], @@ -10,7 +10,7 @@ {"key":"lf_js_search","name":"搜索lf","type":3,"searchable":0,"changeable":1,"quickSearch":0,"filterable":0,"api":"./lib/lf_search3_min.js"}, {"key":"drpy_js_新片场","name":"片场","type":3,"api":"./lib/drpy2.min.js","ext":"./js/新片场.js","searchable":1,"quickSearch":1,"changeable":0}, {"key":"csp_YGP","name":"新片","type":3,"api":"csp_YGP","searchable":1,"quickSearch":1,"changeable":0}, -{"key":"csp_WoGG","name":"哥哥","type":3,"api":"csp_Wogg","searchable":1,"quickSearch":1,"changeable":0,"ext":"http://127.0.0.1:9978/file/tvfan/token.json$$$https://tvfan.xxooo.cf/", "timeout":30}, +{"key":"csp_WoGG","name":"哥哥","type":3,"api":"csp_Wogg","searchable":1,"quickSearch":1,"changeable":0,"ext":"http://127.0.0.1:9978/file/tvfan/token.json$$$http://www.wogg.xyz/", "timeout":30}, {"key":"drpy_js_ikanbot3","name":"爱姬","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"changeable":1,"ext":"./js/ikanbot3.js"}, {"key":"drpy_js_荐片","name":"荐片","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"changeable":1,"ext":"./js/荐片.js", "timeout":30}, {"key":"csp_wogg_cli","name":"玩偶jun","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}, @@ -26,6 +26,7 @@ {"key":"csp_Kuaikan","name":"快看","type":3,"api":"csp_Kuaikan","searchable":1,"quickSearch":1,"filterable":1}, {"key":"泥巴","name":"泥巴","type":3,"api":"csp_NiNi","searchable":1,"changeable":1,"ext":"0;socks5://192.168.1.9:4592"}, {"key":"星星","name":"星星","type":3,"api":"csp_Star","searchable":1,"changeable":1,"ext":"socks5://192.168.1.9:4592"}, +{"key":"影视","name":"影视","type":3,"api":"csp_YingShi","searchable":1,"changeable":1}, {"key":"櫻花","name":"櫻花","type":3,"api":"csp_Ying","searchable":1,"changeable":1}, {"key":"巴士","name":"巴士","type":3,"api":"csp_Dm84","searchable":1,"changeable":1}, {"key":"哈喽","name":"哈喽","type":3,"api":"csp_AppYsV2","searchable":1,"quickSearch":1,"changeable":1,"ext":"http://www.miniku.cc/xgapp.php/v1/"}, @@ -44,19 +45,21 @@ {"key":"UP云搜","name":"云搜","type":3,"api":"csp_UpYun","ext":"http://127.0.0.1:9978/file/tvfan/token.json", "timeout":30}, {"key":"drpy_js_4KHDR","name":"4KHDR[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/4khdr.js","playerType":"1", "searchable":1, "quickSearch":1, "changeable":1, "timeout":30}, -{"key":"drpy_js_极影网p","name":"极影网p[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/jiyingwp.js","playerType":"1", "searchable":1, "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_极影网p","name":"极影网[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/jiyingwp.js","playerType":"1", "searchable":1, "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_MP4US","name":"MP4电影[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/mp4us.js","playerType":"1", "searchable":1, "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_电影港","name":"电影港[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/dygang.js","playerType":"1", "searchable":1, "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_kuba","name":"酷吧[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/kuba.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_xb6v","name":"新版6v[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/xb6v.js","playerType":"1", "searchable":1, "quickSearch":1, "changeable":1, "timeout":30}, -{"key":"drpy_js_美剧迷p","name":"美剧迷p[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/meijumip.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_美剧迷p","name":"美剧迷[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/meijumip.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_ddys","name":"低端影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/ddys.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_libvio","name":"libvio[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/libvio.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_tzfile","name":"团长影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/tzfile.js", "quickSearch":1, "changeable":1, "timeout":30}, {"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_yyetsp","name":"人人影视p[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/yyetsp.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_kk小站","name":"kk小站[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/kkxz.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}, +{"key":"drpy_js_奇妙搜[夸]","name":"奇妙搜[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/qimiao.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_愛盤搜","name":"爱盘搜[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/aipanso.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"drpy_js_趣盤搜","name":"趣盘搜[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/funletu.js", "quickSearch":1, "changeable":1, "timeout":30}, {"key":"push_agent","name":"推送","type":3,"api":"csp_Push","searchable":0,"quickSearch":0,"changeable":0,"ext":"http://127.0.0.1:9978/file/tvfan/token.json", "timeout":30}, diff --git a/0826.json b/0826.json index a4e67da4..8399b58f 100644 --- a/0826.json +++ b/0826.json @@ -1,5 +1,5 @@ { -"spider":"./jar/fan.txt;md5;4d1c769684cc9b85f8adf54f8b43abb6", +"spider":"./jar/fan.txt;md5;f20b74480c058b1ff6236601f92d65a8", "wallpaper":"http://饭太硬.top/深色壁纸/api.php", "sites":[ @@ -18,7 +18,7 @@ {"key":"迪迪","name":"😎迪迪┃App","api":"csp_AppYsV2","type":3,"searchable":1,"quickSearch":1,"changeable":1,"ext":"https://api123.adys.app/xgapp.php/v3/"}, {"key":"Czsapp","name":"📔厂长┃直连","type":3,"api":"csp_Czsapp","playerType":2,"searchable":1,"quickSearch":1,"changeable":1}, -//{"key":"率率","name":"💡率率┃App","type":3,"api":"csp_AppYsV2","playerType":1,"searchable": 1, "quickSearch": 1, "changeable":1, "ext": "http://11111111.moguys.xyz/api.php/app/"}, +{"key":"率率","name":"💡率率┃App","type":3,"api":"csp_AppYsV2","playerType":1,"searchable": 1, "quickSearch": 1, "changeable":1, "ext": "http://s.ether-mine.com/api.php/app/"}, {"key":"Auete","name":"🏝奥特┃直连","type": 3,"api":"csp_Auete","searchable":1,"quickSearch":1,"changeable":1}, {"key":"zxzj","name":"📗在线┃直连","type":3,"api":"csp_Zxzj","searchable":1,"quickSearch":1,"changeable":1,"ext":"https://www.zxzj.pro/"}, diff --git a/0827.json b/0827.json index f3eba2c9..2d9c7a8a 100644 --- a/0827.json +++ b/0827.json @@ -1,60 +1,14 @@ { - "spider": "./jar/custom_spider.jar;md5;0cd8dd32e89511058fd8e6bceb586a28", + "spider": "./jar/custom_spider.jar;md5;37e03cb1531bf4b163bf0b366bc9aa6c", "wallpaper": "http://饭太硬.top/深色壁纸/api.php", "sites": [ { - "key": "本地", - "name": "本地", + "key": "影視", + "name": "影視", "type": 3, - "api": "csp_Local", - "searchable": 0, - "changeable": 0 - }, - { - "key": "AList", - "name": "AList", - "type": 3, - "api": "csp_AList", + "api": "csp_YingShi", "searchable": 1, - "changeable": 0, - "ext": "./json/alist.json" - }, - { - "key": "WebDAV", - "name": "WebDAV", - "type": 3, - "api": "csp_WebDAV", - "searchable": 1, - "changeable": 0, - "ext": "./json/webdav.json" - }, - { - "key": "bili_open", - "name": "哔哩猫", - "type": 3, - "api": "./js/bili_open.js", - "searchable": 1, - "changeable": 0, - "ext": { - "categories": "沙雕动画#沙雕穿越#沙雕", - "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7" - } - }, - { - "key": "哔哩", - "name": "哔哩", - "type": 3, - "api": "csp_Bili", - "searchable": 1, - "changeable": 0, - "style": { - "type": "rect", - "ratio": 1.433 - }, - "ext": { - "json": "./json/chuqiuyu1.json", - "cookie": "SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7" - } + "changeable": 1 }, { "key": "泥巴", @@ -64,6 +18,14 @@ "searchable": 1, "changeable": 1 }, + { + "key": "星星", + "name": "星星", + "type": 3, + "api": "csp_Star", + "searchable": 1, + "changeable": 1 + }, { "key": "玩偶", "name": "玩偶", @@ -76,14 +38,6 @@ "filter": "./json/wogg.json" } }, - { - "key": "星星", - "name": "星星", - "type": 3, - "api": "csp_Star", - "searchable": 1, - "changeable": 1 - }, { "key": "獨播", "name": "獨播", @@ -97,7 +51,7 @@ "key": "廠長", "name": "廠長", "type": 3, - "api": "./js/czzy_open.js", + "api": "https://fongmi.cachefly.net/FongMi/CatVodOpen/main/open/czzy_open.js", "searchable": 1, "changeable": 1 }, @@ -105,7 +59,7 @@ "key": "愛看", "name": "愛看", "type": 3, - "api": "./js/ikanbot_open.js", + "api": "https://fongmi.cachefly.net/FongMi/CatVodOpen/main/open/ikanbot_open.js", "searchable": 1, "changeable": 1 }, @@ -113,7 +67,7 @@ "key": "快看", "name": "快看", "type": 3, - "api": "./js/kkys_open.js", + "api": "https://fongmi.cachefly.net/FongMi/CatVodOpen/main/open/kkys_open.js", "searchable": 1, "changeable": 1 }, @@ -157,6 +111,60 @@ "searchable": 1, "changeable": 1 }, + { + "key": "哔哩", + "name": "哔哩", + "type": 3, + "api": "csp_Bili", + "searchable": 1, + "changeable": 0, + "style": { + "type": "rect", + "ratio": 1.433 + }, + "ext": { + "json": "./json/chuqiuyu1.json", + "cookie": "" + } + }, + { + "key": "bili_open", + "name": "哔哩貓", + "type": 3, + "api": "https://fongmi.cachefly.net/FongMi/CatVodOpen/main/open/bili_open.js", + "searchable": 1, + "changeable": 0, + "ext": { + "categories": "沙雕动画#沙雕穿越#沙雕", + "cookie": "" + } + }, + { + "key": "本地", + "name": "本地", + "type": 3, + "api": "csp_Local", + "searchable": 0, + "changeable": 0 + }, + { + "key": "AList", + "name": "AList", + "type": 3, + "api": "csp_AList", + "searchable": 1, + "changeable": 0, + "ext": "./json/alist.json" + }, + { + "key": "WebDAV", + "name": "WebDAV", + "type": 3, + "api": "csp_WebDAV", + "searchable": 1, + "changeable": 0, + "ext": "./json/webdav.json" + }, { "key": "七夜", "name": "七夜", @@ -164,7 +172,7 @@ "api": "csp_Dovx", "searchable": 1, "changeable": 0, - "ext": "http://127.0.0.1:9978/file/tvfan/token.txt" + "ext":"http://127.0.0.1:9978/file/tvfan/token.txt" }, { "key": "易搜", @@ -173,7 +181,7 @@ "api": "csp_YiSo", "searchable": 1, "changeable": 0, - "ext": "http://127.0.0.1:9978/file/tvfan/token.txt" + "ext":"http://127.0.0.1:9978/file/tvfan/token.txt" }, { "key": "雲搜", @@ -182,7 +190,7 @@ "api": "csp_UpYun", "searchable": 1, "changeable": 0, - "ext": "http://127.0.0.1:9978/file/tvfan/token.txt" + "ext":"http://127.0.0.1:9978/file/tvfan/token.txt" }, { "key": "盤搜", @@ -191,7 +199,7 @@ "api": "csp_PanSou", "searchable": 1, "changeable": 0, - "ext": "http://127.0.0.1:9978/file/tvfan/token.txt" + "ext":"http://127.0.0.1:9978/file/tvfan/token.txt" }, { "key": "紙條搜", @@ -200,7 +208,7 @@ "api": "csp_XiaoZhiTiao", "searchable": 1, "changeable": 0, - "ext": "http://127.0.0.1:9978/file/tvfan/token.txt" + "ext":"http://127.0.0.1:9978/file/tvfan/token.txt" }, { "key": "盤搜索", @@ -209,7 +217,7 @@ "api": "csp_PanSearch", "searchable": 1, "changeable": 0, - "ext": "http://127.0.0.1:9978/file/tvfan/token.txt" + "ext":"http://127.0.0.1:9978/file/tvfan/token.txt" }, { "key": "找資源", @@ -227,7 +235,7 @@ "api": "csp_Push", "searchable": 1, "changeable": 0, - "ext": "http://127.0.0.1:9978/file/tvfan/token.txt" + "ext":"http://127.0.0.1:9978/file/tvfan/token.txt" } ], "doh": [ diff --git a/9918.json b/9918.json index 3e2b36e7..d9058ee4 100644 --- a/9918.json +++ b/9918.json @@ -1,5 +1,5 @@ { -"spider":"./jar/fm.nogo.jar;md5;4612b0e8d76d35fab0358121458c9e19", +"spider":"./jar/fm.nogo.jar;md5;f8f99deba73b8e92e112bb99cb0428d1", "lives":[{"name":"初秋语","type":0,"url":"./listx.txt"}, {"name":"YanG","type":0,"url":"https://ghproxy.com/https://raw.githubusercontent.com/YanG-1989/m3u/main/Adult.m3u"}, {"name":"atsushi","type":0,"url":"https://ghproxy.com/https://raw.githubusercontent.com/atsushi444/iptv-epg/main/Adult.m3u"}, diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 9b4207a8..01fb9370 100644 Binary files a/jar/custom_spider.jar and b/jar/custom_spider.jar differ diff --git a/jar/fan.txt b/jar/fan.txt index bde8adb1..4c91dbd4 100644 Binary files a/jar/fan.txt and b/jar/fan.txt differ diff --git a/jar/fm.jar b/jar/fm.jar index 0c901798..8181910a 100644 Binary files a/jar/fm.jar and b/jar/fm.jar differ diff --git a/jar/fm.nogo.jar b/jar/fm.nogo.jar index d347d8d3..75fadcd1 100644 Binary files a/jar/fm.nogo.jar and b/jar/fm.nogo.jar differ diff --git a/js.json b/js.json index 35d51df4..fd6588c7 100644 --- a/js.json +++ b/js.json @@ -1,5 +1,5 @@ { -"spider":"./jar/fm.jar;md5;60aa3afc63b564d66450b23272cf22ce", +"spider":"./jar/fm.jar;md5;5d0c3b405db6cef91758441b28e04ec5", "lives":[{"name":"live","type":0,"url":"./tvlive.txt","playerType":1,"epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo": "https://epg.112114.xyz/logo/{name}.png"}], "wallpaper":"https://tool.weetai.cn/api", "sites":[ diff --git a/js/dygang.js b/js/dygang.js index 654b2f17..5499ffdf 100644 --- a/js/dygang.js +++ b/js/dygang.js @@ -230,7 +230,7 @@ let dlist = pdfa(search_html, 'table.border1'); dlist.forEach(function(it){ let title = pdfh(it, 'img&&alt'); if (searchObj.quick === true){ - if (title.includes(KEY)){ + if (false && title.includes(KEY)){ title = KEY; } } diff --git a/js/kkxz.js b/js/kkxz.js new file mode 100644 index 00000000..34223b23 --- /dev/null +++ b/js/kkxz.js @@ -0,0 +1,130 @@ +var rule = { + title: 'kk小站', + host: 'http://127.0.0.1:10079', + homeUrl: '/p/0/socks5:%252F%252F192.168.101.1:1080/https://kkxz.vip/', + url: '/p/0/socks5:%252F%252F192.168.101.1:1080/https://kkxz.vip/t/fyclass?', + filter_url: '{{fl.class}}', + filter: {}, + searchUrl: '/p/0/socks5:%252F%252F192.168.101.1:1080/https://kkxz.vip/?q=**', + searchable: 2, + quickSearch: 1, + filterable: 0, + headers: { + 'User-Agent': PC_UA, + 'Accept': '*/*', + 'Cookie':'http://127.0.0.1:9978/file:///tvbox/JS/lib/kkxz.txt', + 'Referer': 'https://kkxz.vip/' + }, + + class_name: '電視劇&電影', + class_url: 'tv&movie', + play_parse: true, + play_json: [{ + re: '*', + json: { + parse: 0, + jx: 0 + } + }], + lazy: '', + limit: 6, + 推荐: '', + 一级: 'div.DiscussionList li;h3&&Text;img&src;;a&&href', + 二级: { + title: "h2&&Text", + img: "img&&src", + desc: "p&&Text", + content: "p&&Text", + tabs: `js: pdfh = jsp.pdfh; + pdfa = jsp.pdfa; + pd = jsp.pd; + TABS = []; + let d = pdfa(html, '.Post-body p a'); + let tabsa = []; + let tabsq = []; + let tabsm = false; + let tabse = false; + d.forEach(function(it) { + let burl = pdfh(it, 'a&&href'); + if (burl.startsWith("https://www.aliyundrive.com/s/")) { + tabsa.push("阿里云盤"); + } else if (burl.startsWith("https://pan.quark.cn/s/")) { + tabsq.push("夸克云盤"); + } else if (burl.startsWith("magnet")) { + tabsm = true; + } else if (burl.startsWith("ed2k")) { + tabse = true; + } + }); + if (tabsm === true) { + TABS.push("磁力"); + } + if (tabse === true) { + TABS.push("電驢"); + } + let tmpIndex; + tmpIndex = 1; + tabsa.forEach(function(it) { + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; + }); + tmpIndex = 1; + tabsq.forEach(function(it) { + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; + }); + log('alyps TABS >>>>>>>>>>>>>>>>>>' + TABS);`, + lists: `js: log(TABS); + pdfh = jsp.pdfh; + pdfa = jsp.pdfa; + pd = jsp.pd; + LISTS = []; + let d = pdfa(html, '.Post-body p a'); + let lista = []; + let listq = []; + let listm = []; + let liste = []; + d.forEach(function(it) { + let burl = pdfh(it, 'a&&href'); + let title = pdfh(it, 'a&&Text'); + log('alyps title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title); + log('alyps burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl); + let loopresult = title + '$' + burl; + if (burl.startsWith("https://www.aliyundrive.com/s/")) { + if (TABS.length == 1) { + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl); + } else { + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl); + } + loopresult = title + '$' + burl; + lista.push(loopresult); + } else if (burl.startsWith("https://pan.quark.cn/s/")) { + if (TABS.length == 1) { + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl); + } else { + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl); + } + loopresult = title + '$' + burl; + listq.push(loopresult); + } else if (burl.startsWith("magnet")) { + listm.push(loopresult); + } else if (burl.startsWith("ed2k")) { + liste.push(loopresult); + } + }); + if (listm.length > 0) { + LISTS.push(listm.reverse()); + } + if (liste.length > 0) { + LISTS.push(liste.reverse()); + } + lista.forEach(function(it) { + LISTS.push([it]); + }); + listq.forEach(function(it) { + LISTS.push([it]); + });`, + + }, + 搜索: 'div.Discussionlist li;h3&&Text;img&&src;span.TagLabel-text;a&&href', +} diff --git a/js/mp4us.js b/js/mp4us.js index f4e64195..3a6efe33 100644 --- a/js/mp4us.js +++ b/js/mp4us.js @@ -157,7 +157,7 @@ let dlist = pdfa(search_html, 'div#list_all li'); dlist.forEach(function(it){ let title = pdfh(it, 'img.lazy&&alt'); if (searchObj.quick === true){ - if (title.includes(KEY)){ + if (false && title.includes(KEY)){ title = KEY; } } diff --git a/js/qimiao.js b/js/qimiao.js new file mode 100644 index 00000000..d67466c7 --- /dev/null +++ b/js/qimiao.js @@ -0,0 +1,63 @@ +var rule = { + title:'奇妙搜[夸]', + host:'https://www.magicalsearch.top', + homeUrl:'/', + url: '/search?', + filter_url:'{{fl.class}}', + filter:{ + }, + 搜索编码: 'utf-8', + searchUrl: '/api/pshou/getData?type=%E9%98%BF%E9%87%8C%E7%BD%91%E7%9B%98&word=**', + searchable:2, + quickSearch:0, + filterable:0, + headers:{ + 'User-Agent': PC_UA, + 'Accept': '*/*', + 'Referer': 'https://www.magicalsearch.top/' + }, + 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: +let new_html=request(input); +//log("qimiao search result>>>>>>>>>>>>>>>" + new_html); +let json=JSON.parse(JSON.parse(new_html)); +json = json.result.items; +let d=[]; +for(const it in json){ + if (json.hasOwnProperty(it)){ + log("qimiao search it>>>>>>>>>>>>>>>" + JSON.stringify(json[it])); + if (json[it].title.includes(KEY)){ + d.push({ + title:json[it].title, + img:'', + content:json[it].content.title, + desc:json[it].insert_time, + url:'push://'+json[it].page_url + }); + } + } +} +setResult(d); +`, +} diff --git a/js/wrapper/index.js b/js/wrapper/index.js deleted file mode 100644 index a08bbdfc..00000000 --- a/js/wrapper/index.js +++ /dev/null @@ -1,266 +0,0 @@ -// !!!!! Do not use in release mode. Just a native inject fake wrapper for test spider. !!!!! -// !!!!! Do not use in release mode. Just a native inject fake wrapper for test spider. !!!!! -// !!!!! Do not use in release mode. Just a native inject fake wrapper for test spider. !!!!! -import axios from 'axios'; -import crypto from 'crypto'; -import https from 'https'; -import fs from 'node:fs'; -import qs from 'qs'; -import { Uri, _ } from '../lib/cat.js'; - -const confs = {}; - -function initLocalStorage(storage) { - if (!_.has(confs, storage)) { - if (!fs.existsSync('local')) { - fs.mkdirSync('local'); - } - - const storagePath = 'local/js_' + storage; - - if (!fs.existsSync(storagePath)) { - fs.writeFileSync(storagePath, '{}'); - confs[storage] = {}; - } else { - confs[storage] = JSON.parse(fs.readFileSync(storagePath).toString()); - } - } -} - -function localGet(storage, key) { - initLocalStorage(storage); - return _.get(confs[storage], key, ''); -} - -function localSet(storage, key, value) { - initLocalStorage(storage); - confs[storage][key] = value; - fs.writeFileSync('local/js_' + storage, JSON.stringify(confs[storage])); -} - -async function request(url, opt) { - try { - var data = opt ? opt.data || null : null; - var postType = opt ? opt.postType || null : null; - var returnBuffer = opt ? opt.buffer || 0 : 0; - var timeout = opt ? opt.timeout || 5000 : 5000; - - var headers = opt ? opt.headers || {} : {}; - if (postType == 'form') { - headers['Content-Type'] = 'application/x-www-form-urlencoded'; - - if (data != null) { - data = qs.stringify(data, { encode: false }); - } - } - let respType = returnBuffer == 1 || returnBuffer == 2 ? 'arraybuffer' : undefined; - var resp = await axios(url, { - responseType: respType, - method: opt ? opt.method || 'get' : 'get', - headers: headers, - data: data, - timeout: timeout, - httpsAgent: https.Agent({ - rejectUnauthorized: false, - }), - }); - var data = resp.data; - - var resHeader = {}; - for (const hks of resp.headers) { - var v = hks[1]; - resHeader[hks[0]] = Array.isArray(v) ? (v.length == 1 ? v[0] : v) : v; - } - - if (!returnBuffer) { - if (typeof data === 'object') { - data = JSON.stringify(data); - } - } else if (returnBuffer == 1) { - return { code: resp.status, headers: resHeader, content: data }; - } else if (returnBuffer == 2) { - return { code: resp.status, headers: resHeader, content: data.toString('base64') }; - } - return { code: resp.status, headers: resHeader, content: data }; - } catch (error) { - console.error(error); - } - return { headers: {}, content: '' }; -} - -function base64EncodeBuf(buff, urlsafe = false) { - return buff.toString(urlsafe ? 'base64url' : 'base64'); -} - -function base64Encode(text, urlsafe = false) { - return base64EncodeBuf(Buffer.from(text, 'utf8'), urlsafe); -} - -function base64DecodeBuf(text) { - return Buffer.from(text, 'base64'); -} - -function base64Decode(text) { - return base64DecodeBuf(text).toString('utf8'); -} - -function md5(text) { - return crypto.createHash('md5').update(Buffer.from(text, 'utf8')).digest('hex'); -} - -function aes(mode, encrypt, input, inBase64, key, iv, outBase64) { - if (iv.length == 0) iv = null; - try { - if (mode.startsWith('AES/CBC')) { - switch (key.length) { - case 16: - mode = 'aes-128-cbc'; - break; - case 32: - mode = 'aes-256-cbc'; - break; - } - } else if (mode.startsWith('AES/ECB')) { - switch (key.length) { - case 16: - mode = 'aes-128-ecb'; - break; - case 32: - mode = 'aes-256-ecb'; - break; - } - } - const inBuf = inBase64 ? base64DecodeBuf(input) : Buffer.from(input, 'utf8'); - let keyBuf = Buffer.from(key); - if (keyBuf.length < 16) keyBuf = Buffer.concat([keyBuf], 16); - let ivBuf = iv == null ? Buffer.alloc(0) : Buffer.from(iv); - if (iv != null && ivBuf.length < 16) ivBuf = Buffer.concat([ivBuf], 16); - const cipher = encrypt ? crypto.createCipheriv(mode, keyBuf, ivBuf) : crypto.createDecipheriv(mode, keyBuf, ivBuf); - const outBuf = Buffer.concat([cipher.update(inBuf), cipher.final()]); - return outBase64 ? base64EncodeBuf(outBuf) : outBuf.toString('utf8'); - } catch (error) { - console.log(error); - } - return ''; -} - -function des(mode, encrypt, input, inBase64, key, iv, outBase64) { - try { - if (mode.startsWith('DESede/CBC')) { - // https://stackoverflow.com/questions/29831300/convert-desede-ecb-nopadding-algorithm-written-in-java-into-nodejs-using-crypto - switch (key.length) { - case 16: - mode = 'des-ede-cbc'; - break; - case 24: - mode = 'des-ede3-cbc'; - break; - } - } - const inBuf = inBase64 ? base64DecodeBuf(input) : Buffer.from(input, 'utf8'); - let keyBuf = Buffer.from(key); - if (keyBuf.length < 16) keyBuf = Buffer.concat([keyBuf], 16); - let ivBuf = iv == null ? Buffer.alloc(0) : Buffer.from(iv); - if (iv != null && ivBuf.length < 8) ivBuf = Buffer.concat([ivBuf], 8); - const cipher = encrypt ? crypto.createCipheriv(mode, keyBuf, ivBuf) : crypto.createDecipheriv(mode, keyBuf, ivBuf); - const outBuf = Buffer.concat([cipher.update(inBuf), cipher.final()]); - return outBase64 ? base64EncodeBuf(outBuf) : outBuf.toString('utf8'); - } catch (error) { - console.log(error); - } - return ''; -} - -// pkcs8 only -function rsa(mode, pub, encrypt, input, inBase64, key, outBase64) { - try { - let pd = undefined; - const keyObj = pub ? crypto.createPublicKey(key) : crypto.createPrivateKey(key); - if (!keyObj.asymmetricKeyDetails || !keyObj.asymmetricKeyDetails.modulusLength) return ''; - const moduleLen = keyObj.asymmetricKeyDetails.modulusLength; - let blockLen = moduleLen / 8; - switch (mode) { - case 'RSA/PKCS1': - pd = crypto.constants.RSA_PKCS1_PADDING; - blockLen = encrypt ? blockLen - 11 : blockLen; - break; - case 'RSA/None/NoPadding': - pd = crypto.constants.RSA_NO_PADDING; - break; - case 'RSA/None/OAEPPadding': - pd = crypto.constants.RSA_PKCS1_OAEP_PADDING; - blockLen = encrypt ? blockLen - 41 : blockLen; - break; - default: - throw Error('not support ' + mode); - } - let inBuf = inBase64 ? base64DecodeBuf(input) : Buffer.from(input, 'utf8'); - let bufIdx = 0; - let outBuf = Buffer.alloc(0); - while (bufIdx < inBuf.length) { - const bufEndIdx = Math.min(bufIdx + blockLen, inBuf.length); - let tmpInBuf = inBuf.subarray(bufIdx, bufEndIdx); - if (pd == crypto.constants.RSA_NO_PADDING) { - if (tmpInBuf.length < blockLen) { - tmpInBuf = Buffer.concat([Buffer.alloc(128 - tmpInBuf.length), tmpInBuf]); - } - } - let tmpBuf; - if (pub) { - tmpBuf = encrypt ? crypto.publicEncrypt({ key: keyObj, padding: pd }, tmpInBuf) : crypto.publicDecrypt({ key: keyObj, padding: pd }, tmpInBuf); - } else { - tmpBuf = encrypt ? crypto.privateEncrypt({ key: keyObj, padding: pd }, tmpInBuf) : crypto.privateDecrypt({ key: keyObj, padding: pd }, tmpInBuf); - } - bufIdx = bufEndIdx; - outBuf = Buffer.concat([outBuf, tmpBuf]); - } - return outBase64 ? base64EncodeBuf(outBuf) : outBuf.toString('utf8'); - } catch (error) { - console.log(error); - } - return ''; -} - -var charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789'; - -function randStr(len, withNum) { - var _str = ''; - let containsNum = withNum === undefined ? true : withNum; - for (var i = 0; i < len; i++) { - let idx = _.random(0, containsNum ? charStr.length - 1 : charStr.length - 11); - _str += charStr[idx]; - } - return _str; -} - -globalThis.local = { - get: async function (storage, key) { - return localGet(storage, key); - }, - set: async function (storage, key, val) { - localSet(storage, key, val); - }, -}; - -globalThis.md5X = md5; -globalThis.rsaX = rsa; -globalThis.aesX = aes; -globalThis.desX = des; - -globalThis.req = request; - -globalThis.url2Proxy = async function (type, url, headers) { - let hd = Object.keys(headers).length == 0 ? '_' : encodeURIComponent(JSON.stringify(headers)); - let uri = new Uri(url); - let path = uri.path(); - path = path.substring(path.lastIndexOf('/')); - let ext = path.indexOf('.') >= 0 ? path.substring(path.indexOf('.')) : '.bin'; - return 'http://127.0.0.1:13333/up/' + randStr(6) + '/' + type + '/' + hd + '/' + encodeURIComponent(url) + '/' + ext; -}; - -globalThis.js2Proxy = async function (dynamic, siteType, site, url, headers) { - let hd = Object.keys(headers).length == 0 ? '_' : encodeURIComponent(JSON.stringify(headers)); - return (dynamic ? 'js2p://_WEB_/' : 'http://127.0.0.1:13333/jp/') + randStr(6) + '/' + siteType + '/' + site + '/' + hd + '/' + encodeURIComponent(url); -}; - -export default {}; diff --git a/js/xb6v.js b/js/xb6v.js index 8936a3d5..d0d64382 100644 --- a/js/xb6v.js +++ b/js/xb6v.js @@ -258,7 +258,7 @@ let dlist = pdfa(search_html, 'div.mainleft&&ul#post_container&&li'); dlist.forEach(function(it){ let title = pdfh(it, 'div.thumbnail img&&alt').replace( /(<([^>]+)>)/ig, ''); if (searchObj.quick === true){ - if (title.includes(KEY)){ + if (false && title.includes(KEY)){ title = KEY; } } diff --git a/json/alist.json b/json/alist.json index 0a1b823a..5849e8df 100644 --- a/json/alist.json +++ b/json/alist.json @@ -1,5 +1,5 @@ { - "vodPic": "https://s1.ax1x.com/2023/05/04/p9tgI81.png", + "vodPic": "https://x.imgs.ovh/x/2023/09/05/64f680bb030b4.png", "drives": [ { "name": "弱水",