diff --git a/JN/dr_py/js/4K-AV.js b/JN/dr_py/js/4K-AV.js new file mode 100644 index 00000000..1726b894 --- /dev/null +++ b/JN/dr_py/js/4K-AV.js @@ -0,0 +1,32 @@ +var rule = { + 类型: '影视', + title: '4K-AV', + host: 'https://4k-av.com', + url: '/fyclass/page-fypage.html', + searchUrl: '/s?q=**&page=fypage', + searchable: 2, + quickSearch: 0, + headers: { + 'User-Agent': 'IOS_UA', + }, + timeout: 5000, + class_parse: '#cate_list&&li;a&&title;a&&href;/(\\w+)/', +// cate_exclude: '成人视频', + play_parse: true, + lazy: $js.toString(() => { + input = {parse: 1, url: input, header: rule.headers, js: ''} + }), + double: true, + 推荐: '#recommlist;ul&&li;h2&&Text;img&&src;span&&Text;a&&href', + 一级: '#MainContent_newestlist&&.NTMitem;h2&&Text;img&&src;div.resyear&&Text;a&&href', + 二级: { + title: 'h2&&Text;#MainContent_tags&&Text', + img: 'img&&src', + desc: '#MainContent_videodetail&&label&&Text;#MainContent_videodetail&&label:eq(2)&&Text;;;', + content: '', + tabs: '', + lists: '#rtlist:eq(#id) li', + tab_text: '4K-AV', + }, + 搜索: '*', +} \ No newline at end of file diff --git a/JN/dr_py/js/PTT[优].js b/JN/dr_py/js/PTT[优].js new file mode 100644 index 00000000..851a3048 --- /dev/null +++ b/JN/dr_py/js/PTT[优].js @@ -0,0 +1,85 @@ +var rule = { + 类型: '影视',//影视|听书|漫画|小说 + title: 'PTT[优]', + host: 'https://ptt.red', + homeUrl: '/zh-cn', + url: '/zh-cn/p/fyclassfyfilter', + searchUrl: '/zh-cn/q/**?page=fypage', + searchable: 2, + quickSearch: 0, + filterable: 1, + filter: 'H4sIAAAAAAAAAO2X32saQRDH/5d76JMQ74d3Z8C/pIRytD6UpimYtBCCYCIGY9qoIbWVSltIqia1UUkQf+TSf8bdPf+Luml0ZtcsBFqf9HH3M+vOznxnvNnRdG316Y72Kr6trWqk0iLv+1pI2/Bex/H6nbf+Nn5nuMG3M/VRus63xwstGbrfPauNyvv3u0+8RNx79vJFzJjyUbVMu02ZR+B8vkV7tzK34Py3c/LFl7nuTA3opx+00pgxcMGgUWO3R7KBDfyq9dANYXDxQ4v0qzMG4CPJdIaDkmxgask1bvE3yKw9IF8PIcjT9WOCPLypssIkyCvPV0wT7s7Vh34FEIpsqUIOakDgxSzbpukMEAgmqxVJbwAERXG3QFMlIFE4k2sy/wIIihzNfh72DxDSsd/05idCIJmx14J7OryW9S+I/xEFAt2112ClIkIWvoudoFeZkYdTN0YWvDionQbNa3TKEBJKetfDgY+qZrJ+TEKNsGFN9LId9xKxuw1ETZmamBoyNTDVZapjGpZpGFE9KlE9iqkrUxdTR6YOprZMbUwjMo1gKseK1x5KBT06Jv08pGK6FlPB9tv0+JecClpJ0VJrcsHmm8RWbN3b3OIXrIU0Yy59kota0QJ50UHMhe7JESpI3Pd4QUIehZ7JEQhAaIbcDVdZCjxBS70vmN7NueldLWqUkZlS0JV6d02l3l1DqXekHOF/n1eJoSwFw1yWwsKVgjWvUjBstahttagdtagdtXLdpXIXTrkR3MX/afAIOleskEbTBeSbNS9FBI+n3S7N5hGCfIwbvHDKRt/2flFEigGLt+plP148Vdv2/1I1y/riZAzRCeopYfa0Iazs/HfQyQFy1LOng+bc/Flwimdt9NmS9kl3D3V4+EF2UiGX3xECRQblAt09REg9zDrWskwWrEySfwAneSZu2xMAAA==', + filter_url: '{% if fyclass !="1" %}{{fl.地区}}?page=fypage{% else %}{{fl.类型}}?page=fypage{{fl.地区|safe}}{% endif %}{{fl.年份|safe}}{{fl.排序|safe}}', + filter_def: {}, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + timeout: 5000, + class_parse: '.nav-tabs&&a;a&&Text;a&&href;(\\d+)', + cate_exclude: '', + play_parse: true, + lazy: $js.toString(() => { + let html = request(input); + let sdata = pdfh(html, '.container-fluid&&script&&Html'); + // log(sdata); + let json = JSON.parse(sdata); + if (json.contentUrl) { + input = {parse: 0, url: json.contentUrl, js: ''}; + } + }), + double: false, + 推荐: '*', + 一级: '#videos&&.card;a:eq(-1)&&Text;img&&src;.badge-success&&Text;a:eq(-1)&&href', + 二级: $js.toString(() => { + let html = request(input); + let data = html.split('node:')[1].split('},')[0] + '}'; + data = data.trim(); + // log(data); + let json = JSON.parse(data); + // log(json); + VOD = {}; + + VOD.vod_name = json.title; + VOD.type_name = json.type; + VOD.vod_id = input; + VOD.vod_pic = urljoin(input, json.thumbnail); + VOD.vod_year = json.year; + VOD.vod_area = json._area; + VOD.vod_remarks = json.note; + VOD.vod_content = json.description; + VOD.vod_director = json.director; + VOD.vod_actor = json.actors; + let v_tabs = pdfa(html, '.nav-tabs&&li'); + let v_tab_urls = v_tabs.map(it => pd(it, 'a&&href', input)); + v_tabs = v_tabs.map(it => pdfh(it, 'a&&title')); + // log(v_tab_urls); + VOD.vod_play_from = v_tabs.join('$$$'); + let lists = []; + let list1 = pdfa(html, '.mb-2.fullwidth&&a').map(it => pdfh(it, 'a&&Text') + '$' + pd(it, 'a&&href', input)); + // log(list1); + lists.push(list1); + if (v_tab_urls.length > 1) { + let reqUrls = v_tab_urls.slice(1).map(it => { + return { + url: it, + options: { + timeout: 5000, + headers: rule.headers + } + } + }); + let htmls = batchFetch(reqUrls); + htmls.forEach((ht) => { + if (ht) { + let list0 = pdfa(ht, '.mb-2.fullwidth&&a').map(it => pdfh(it, 'a&&Text') + '$' + pd(it, 'a&&href', input)); + lists.push(list0); + } else { + lists.push([]); + } + }); + } + let playUrls = lists.map(it => it.join('#')); + VOD.vod_play_url = playUrls.join('$$$'); + }), + 搜索: '*', +} \ No newline at end of file diff --git a/JN/dr_py/js/喜马拉雅[听].js b/JN/dr_py/js/喜马拉雅[听].js new file mode 100644 index 00000000..90691c1b --- /dev/null +++ b/JN/dr_py/js/喜马拉雅[听].js @@ -0,0 +1,75 @@ +var rule = { + 类型: '听书', + title: '喜马拉雅[听]', + host: 'https://m.ximalaya.com', + url: '/m-revision/page/category/queryCategoryAlbumsByPage?sort=0&pageSize=50&page=fypage&categoryCode=fyclass', + searchUrl: 'https://www.ximalaya.com/revision/search/main?core=album&page=1&rows=20&kw=**', + searchable: 2, + quickSearch: 0, + timeout: 5000, + class_name: '有声书&儿童&音乐&相声&娱乐&广播剧&历史&外语', + class_url: 'youshengshu&ertong&yinyue&xiangsheng&yule&guangbojv&lishi&waiyu', + play_parse: true, + lazy: $js.toString(() => { + input = {url: input, parse: 0} + }), + double: true, + 一级: $js.toString(() => { + let d = []; + let html = request(input); + let data = JSON.parse(html).data.albumBriefDetailInfos; + data.forEach(it => { + let id = 'https://mobile.ximalaya.com/mobile/v1/album/track/ts-1720589105807?albumId=' + it.id + '&pageId=1&pageSize=3000&device=android&isAsc=true'; + d.push({ + url: id, + title: it.albumInfo.title, + img: 'http://imagev2.xmcdn.com/' + it.albumInfo.cover, + }) + }); + setResult(d); + }), + 二级: $js.toString(() => { + let urls = []; + let html = request(input); + let json = JSON.parse(html); + // log(html); + let data = json.data.list; + data.forEach(it => { + urls.push(it.title + '$' + it.playPathAacv164); + }); + let maxPageId = json.data.maxPageId; + if (typeof (batchFetch) === 'function' && maxPageId > 1) { + let reqUrls = []; + for (let j = 2; j <= maxPageId; j++) { + reqUrls.push({url: input.replace('pageId=1', 'pageId=' + j), option: {timeout: 5000}}); + } + let rhtmls = batchFetch(reqUrls); + rhtmls.forEach((rhtml) => { + let rjson = JSON.parse(rhtml); + let rdata = rjson.data.list; + rdata.forEach(it => { + urls.push(it.title + '$' + it.playPathAacv164); + }); + }); + } + + VOD = { + vod_play_from: '球球啦', + vod_play_url: urls.join('#') + }; + }), + 搜索: $js.toString(() => { + let d = []; + let html = request(input); + let data = JSON.parse(html).data.album.docs; + data.forEach(it => { + let id = 'https://mobile.ximalaya.com/mobile/v1/album/track/ts-1720589105807?albumId=' + it.albumId + '&pageId=1&pageSize=3000&device=android&isAsc=true'; + d.push({ + url: id, + title: it.title, + img: it.coverPath, + }) + }); + setResult(d); + }), +} \ No newline at end of file diff --git a/JN/dr_py/js/星芽短剧[优].js b/JN/dr_py/js/星芽短剧[优].js new file mode 100644 index 00000000..f90d56e0 --- /dev/null +++ b/JN/dr_py/js/星芽短剧[优].js @@ -0,0 +1,84 @@ +var rule = { + 类型: '影视', + title: '星芽短剧[优]', + host: 'https://app.whjzjx.cn', + url: '/cloud/v2/theater/home_page?theater_class_id=fyclass&type=fyclass&class2_ids=0&page_num=fypage&page_size=24', + searchUrl: '/v3/search', + searchable: 2, + quickSearch: 0, + headers: { + 'User-Agent': 'okhttp/4.10.0', + 'x-app-id': '7', + 'authorization': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjE4MjU0NjQsIlVzZXJJZCI6NTA5MDg3NDEsInJlZ2lzdGVyX3RpbWUiOiIyMDI0LTA3LTA5IDIwOjUwOjIxIiwiaXNfbW9iaWxlX2JpbmQiOmZhbHNlfQ.VllcrcGmVc8vPMJ8xOIfiq-87qmIGD1JeMRrayXMgts', + 'platform': '1', + 'manufacturer': 'realme', + 'version_name': '3.0.0.1', + 'user_agent': 'Mozilla/5.0 (Linux; Android 9; RMX1931 Build/PQ3A.190605.05081124; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Mobile Safari/537.36', + 'dev_token': 'BqU-Xm_tyKyrlzdfLCIiSZUEPxDbJ5wsZ6ajiltu77EF0SdTdyyXi0oZRHnZEicMFF2SalGVmz1p5kc9YooTR_DkCGIttK_DQjmfvICY2mUqUPzUWn7bQl6AsaQMO57BvemcXtn9BJib1BjZ-1sx9N9k-wtJJX80_A5-PeKO0YyU*', + 'app_version': '3.0.0.1', + 'device_platform': 'android', + 'personalized_recommend_status': '1', + 'device_type': 'RMX1931', + 'device_brand': 'realme', + 'os_version': '9', + 'channel': 'default', + 'raw_channel': 'default', + 'oaid': '', + 'msa_oaid': '', + 'uuid': 'randomUUID_a8f870fe-d890-4a10-9e85-05d90d41d731', + 'device_id': '24250683a3bdb3f118dff25ba4b1cba1a', + 'ab_id': '' + }, + timeout: 5000, + class_name: '剧场&热播剧&星选好剧&新剧&阳光剧场', + class_url: '1&2&7&3&5', + play_parse: true, + lazy: $js.toString(() => { + input = {url: input, parse: 0} + }), + double: true, + 一级: $js.toString(() => { + let d = []; + let html = request(input); + let data = JSON.parse(html).data.list; + data.forEach(it => { + let id = 'https://app.whjzjx.cn/v2/theater_parent/detail?theater_parent_id=' + it.theater.id; + d.push({ + url: id, + title: it.theater.title, + img: it.theater.cover_url, + desc: it.theater.theme, + }) + }) + setResult(d); + }), + 二级: $js.toString(() => { + let urls = []; + let html = request(input); + let data = JSON.parse(html).data; + data.theaters.forEach(it => { + urls.push(it.num + '$' + it.son_video_url); + }) + VOD = { + vod_name: data.title, + vod_pic: data.cover_url, + vod_play_from: '球球啦', + vod_play_url: urls.join('#') + }; + }), + 搜索: $js.toString(() => { + let d = []; + let html = post(input, {body: {"text": KEY}}) + let list = JSON.parse(html).data.theater.search_data; + list.forEach(it => { + let id = 'https://app.whjzjx.cn/v2/theater_parent/detail?theater_parent_id=' + it.id; + d.push({ + url: id, + title: it.title, + img: it.cover_url, + content: it.introduction, + }) + }) + setResult(d); + }), +} \ No newline at end of file diff --git a/JN/dr_py/js/火狐影视.js b/JN/dr_py/js/火狐影视.js new file mode 100644 index 00000000..598f08e1 --- /dev/null +++ b/JN/dr_py/js/火狐影视.js @@ -0,0 +1,9 @@ +var rule = { + 模板: 'mx', + title: '火狐影视', + host: 'https://www.huohutv.net', + url: '/vod-show-id-fyclass-page-fypage.html', + searchUrl: '/vod-search-page-fypage-wd-**.html', + class_parse: '.top_nav li;a&&Text;a&&href;/.*?(\\d*).html', + 图片来源: '@Referer=https://www.huohutv.net/', +} \ No newline at end of file diff --git a/JN/dr_py/js/酷我听书[听].js b/JN/dr_py/js/酷我听书[听].js new file mode 100644 index 00000000..af5a1458 --- /dev/null +++ b/JN/dr_py/js/酷我听书[听].js @@ -0,0 +1,65 @@ +var rule = { + 类型: '听书', + title: '酷我听书[听]', + host: 'http://tingshu.kuwo.cn', + url: '/v2/api/search/filter/albums?classifyId=fyfilter¬race=0&source=kwplayer_ar_9.1.8.1_tvivo.apk&platform=1&kweexVersion=1.1.5&uid=2511482006&sortType=playCnt&loginUid=540339516&bksource=kwbook_ar_9.1.8.1_tvivo.apk&rn=21&categoryId=fyclass&pn=fypage', + searchUrl: 'http://search.kuwo.cn/r.s?client=kt&all=**&ft=album&newsearch=1&itemset=web_2013&cluster=0&pn=(fypage-1)&rn=21&rformat=json&encoding=utf8&show_copyright_off=1&vipver=MUSIC_8.0.3.0_BCS75&show_series_listen=1&version=9.1.8.1', + searchable: 2, + quickSearch: 0, + filterable: 1, + filter_url: "{{fl.class or '44'}}", + filter: 'H4sIAAAAAAAAA5WV207iUBSG36XXXkBbELyet5h4YYxX43hjZpKJMUE5iDAUcBBFHGREDh4KFZQAtfRluvbefYvZAvsAk0ziTZPy9V/7X4e9OFBUZePzgfJl54eyoWzvbu3vK2vK3tbXHfqKn22oZen7963dbzuz7/befzYSMLaheUKf75D+pOvK4dqcIrPlTeueXaFPRiOc4nuXDDOoNsT3kwUNqZz6cQdGx95bnfRemFZQ3C7SE/FjDWViTLvOKUUoPiCdGIonFzQYjgpx9gm6Q+heQXrI8HpAqPN3nt1YUqsBKbjzTNopMG5I8YLhoCZyPn7C5SIyOriQYr5DQmykIN+HVNWbZJnvsDBmWKsn60FRkd9n6LKJ6n+gajKtiIzKJ2C2oJATtsJUu3m4uaaEPt7X6ggaFipb3oT1RlVF+eGtDlbRcwoLpkkFgPQlfsziVp4zMRCkl/DGLbhrQ7LDw0qVt/Lw6wgKaTItchyUI0PSIpkBixwQPSVuzRs50DrmpwodLlmQq3vjU86kbubOId+Yp8u7KYW9PfIvSygtEpXcmhVvFOMgJLUxi40mGtxyFpbPo3ZEDqrkBcdN/6Kz4kW6LzNAO0yHl+GosIP7d6RnzivMDpZrmxwga0SGSc6EYf/+yT93yZQXSBWGyesrtl+IIdh/ixcMaUKLnC6ctvkVk3JB/YclIiqOKlmZvGcwm2Ft/cNDjDJl/2aAmzVU7bOChaSbGouhizaJHSHzJ8fSjKernnONXRtKzwxL2wvoPb+uc50urw+/YXAg3f3cFXRvodiBdIblp6uSH6tIrAYn0nDjSY8m4o0LAgoj2idceqVYMNGguYr0prjD1k1QiwRWOF1WJFfgjv/B50mxrVRdRKdbCiVultW6NOoJFz82l4yrenTRzvDH/2sWi3fsojNTGhE9IpV49glpN0jPFlxb4Uu7m3Jh2a88eE6duI4UX4tKV9DOQ3JE9dLA6xF1ltPhXxyS0SNABwAA', + timeout: 5000, + class_name: '有声小说&音乐&相声评书&影视原声', + class_url: '2&37&5&62', + play_parse: true, + lazy: $js.toString(() => { + let html = request(input); + let url = JSON.parse(html).data.url; + input = {url: url, parse: 0}; + }), + double: true, + 一级: $js.toString(() => { + let d = []; + let html = request(input); + let data = JSON.parse(html).data.data; + data.forEach(it => { + let id = 'http://search.kuwo.cn/r.s?stype=albuminfo&user=8d378d72qw28f5f4&uid=2511552006&loginUid=540129516&loginSid=958467960&prod=kwplayer_ar_9.1.8.1&bkprod=kwbook_ar_9.1.8.1&source=kwplayer_ar_9.1.8.1_tvivo.apk&bksource=kwbook_ar_9.1.8.1_tvivo.apk&corp=kuwo&albumid=' + it.albumId + '&pn=0&rn=5000&show_copyright_off=1&vipver=MUSIC_8.2.0.0_BCS17&mobi=1&iskwbook=1'; + d.push({ + url: id, + title: it.albumName, + img: it.coverImg, + desc: it.title, + }); + }); + setResult(d); + }), + 二级: $js.toString(() => { + let urls = []; + let html = request(input); + let data = JSON.parse(html).musiclist; + data.forEach(it => { + urls.push(it.name + '$' + 'http://mobi.kuwo.cn/mobi.s?f=web&source=kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type=convert_url_with_sign&rid=' + it.musicrid + '&br=320kmp3'); + }); + VOD = { + vod_play_from: '球球啦', + vod_play_url: urls.join('#') + }; + }), + 搜索: $js.toString(() => { + let d = []; + // log(input); + let html = request(input); + let data = JSON5.parse(html).albumlist; + // log(data); + data.forEach(it => { + let id = 'http://search.kuwo.cn/r.s?stype=albuminfo&user=8d378d72qw28f5f4&uid=2511552006&loginUid=540129516&loginSid=958467960&prod=kwplayer_ar_9.1.8.1&bkprod=kwbook_ar_9.1.8.1&source=kwplayer_ar_9.1.8.1_tvivo.apk&bksource=kwbook_ar_9.1.8.1_tvivo.apk&corp=kuwo&albumid=' + it.DC_TARGETID + '&pn=0&rn=5000&show_copyright_off=1&vipver=MUSIC_8.2.0.0_BCS17&mobi=1&iskwbook=1'; + d.push({ + url: id, + title: it.name, + img: it.img, + }); + }); + setResult(d); + }) +} \ No newline at end of file