23
This commit is contained in:
126
jtxtv12/js/人人电影.js
Normal file
126
jtxtv12/js/人人电影.js
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
var rule = {
|
||||||
|
title: '人人电影网',
|
||||||
|
host: 'https://www.rrdynb.com',
|
||||||
|
homeUrl: '/',
|
||||||
|
url: '/fyclass_fypage.html?',
|
||||||
|
filter_url: '{{fl.class}}',
|
||||||
|
filter: {},
|
||||||
|
searchUrl: '/plus/search.php?q=**&pagesize=10&submit=',
|
||||||
|
searchable: 2,
|
||||||
|
quickSearch: 1,
|
||||||
|
filterable: 0,
|
||||||
|
headers: {
|
||||||
|
'User-Agent': 'PC_UA',
|
||||||
|
'Cookie': ''
|
||||||
|
},
|
||||||
|
timeout: 5000,
|
||||||
|
class_name: '影视&电视剧&老电影&动漫',
|
||||||
|
class_url: 'movie/list_2&dianshiju/list_6&zongyi/list_10&dongman/list_13',
|
||||||
|
play_parse: true,
|
||||||
|
play_json: [{
|
||||||
|
re: '*',
|
||||||
|
json: {
|
||||||
|
parse: 0,
|
||||||
|
jx: 0
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
lazy: "js:\n input = 'push://' + input;\n ",
|
||||||
|
limit: 6,
|
||||||
|
推荐: '',
|
||||||
|
一级: 'li:has(img);img&&alt;img&&data-original;;a&&href',
|
||||||
|
二级: {
|
||||||
|
title: "h1&&Text",
|
||||||
|
img: "img&&src",
|
||||||
|
desc: ".info:eq(0)&&Text",
|
||||||
|
content: ".content&&Text",
|
||||||
|
tabs: `js:
|
||||||
|
pdfh = jsp.pdfh;
|
||||||
|
pdfa = jsp.pdfa;
|
||||||
|
TABS = [];
|
||||||
|
let d = pdfa(html, 'span a');
|
||||||
|
let hasBaidu = false;
|
||||||
|
let hasQuark = false;
|
||||||
|
|
||||||
|
d.forEach(function(it) {
|
||||||
|
let burl = pdfh(it, 'a&&href');
|
||||||
|
if (burl.includes("pan.baidu.com/s/")) {
|
||||||
|
hasBaidu = true;
|
||||||
|
} else if (burl.includes("pan.quark.cn/s/")) {
|
||||||
|
hasQuark = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 确保线路顺序固定:百度网盘在前,夸克网盘在后
|
||||||
|
if (hasBaidu) TABS.push("百度网盘");
|
||||||
|
if (hasQuark) TABS.push("夸克网盘");
|
||||||
|
|
||||||
|
log('生成TABS: ' + JSON.stringify(TABS));`,
|
||||||
|
lists: `js:
|
||||||
|
pdfh = jsp.pdfh;
|
||||||
|
pdfa = jsp.pdfa;
|
||||||
|
LISTS = [];
|
||||||
|
let d = pdfa(html, 'span a');
|
||||||
|
|
||||||
|
// 提取码识别函数
|
||||||
|
function extractCode(title, patterns) {
|
||||||
|
for (let pattern of patterns) {
|
||||||
|
const match = title.match(pattern);
|
||||||
|
if (match && match[1]) {
|
||||||
|
return match[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建资源分类数组
|
||||||
|
let baiduList = [];
|
||||||
|
let quarkList = [];
|
||||||
|
|
||||||
|
d.forEach(function(it) {
|
||||||
|
let burl = pdfh(it, 'a&&href');
|
||||||
|
let title = pdfh(it, 'a&&Text');
|
||||||
|
|
||||||
|
// 百度网盘处理
|
||||||
|
if (burl.includes("pan.baidu.com/s/")) {
|
||||||
|
const baiduPatterns = [
|
||||||
|
/(?:提取码|密码|验证码|code|pwd|码)[::\s]*(\w{4})/i,
|
||||||
|
/(?:\b|\s)(\w{4})(?=提取|百度|网盘|分享|$)/i,
|
||||||
|
/[\s\[](\w{4})[\s\]]/,
|
||||||
|
/\b(\w{4})\b/
|
||||||
|
];
|
||||||
|
const code = extractCode(title, baiduPatterns);
|
||||||
|
if (code) {
|
||||||
|
burl += '#' + code;
|
||||||
|
log('百度网盘提取码识别成功: ' + code);
|
||||||
|
} else {
|
||||||
|
log('未识别到百度提取码,使用原始链接');
|
||||||
|
}
|
||||||
|
baiduList.push(title + '$' + burl);
|
||||||
|
}
|
||||||
|
// 夸克网盘处理
|
||||||
|
else if (burl.includes("pan.quark.cn/s/")) {
|
||||||
|
const quarkPatterns = [
|
||||||
|
/(?:密码|pwd)[::\s]*(\w{4,8})/i,
|
||||||
|
/(?:\b|\s)(\w{4,8})(?=提取|夸克|网盘|分享|$)/i,
|
||||||
|
/[\s\[](\w{4,8})[\s\]]/,
|
||||||
|
/\b(\w{4,8})\b/
|
||||||
|
];
|
||||||
|
const code = extractCode(title, quarkPatterns);
|
||||||
|
if (code) {
|
||||||
|
burl += '#' + code;
|
||||||
|
log('夸克网盘密码识别成功: ' + code);
|
||||||
|
}
|
||||||
|
quarkList.push(title + '$' + burl);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 按固定顺序添加资源列表,与TABS顺序一致
|
||||||
|
if (baiduList.length > 0) {
|
||||||
|
LISTS.push(baiduList);
|
||||||
|
}
|
||||||
|
if (quarkList.length > 0) {
|
||||||
|
LISTS.push(quarkList);
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
搜索: 'li:has(img);h2&&Text;img&&data-original;.tags&&Text;a&&href',
|
||||||
|
};
|
||||||
105
jtxtv12/js/努努影院.js
Normal file
105
jtxtv12/js/努努影院.js
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
var rule = {
|
||||||
|
//rc4解密函数
|
||||||
|
rc4Decrypt: function (encryptedHex) {
|
||||||
|
const key = "i_love_you";
|
||||||
|
const encryptedBytes = new Uint8Array(encryptedHex.length / 2);
|
||||||
|
for (let i = 0; i < encryptedBytes.length; i++) {
|
||||||
|
encryptedBytes[i] = parseInt(encryptedHex.substr(i * 2, 2), 16);
|
||||||
|
}
|
||||||
|
const s = Array.from({ length: 256 }, (_, i) => i);
|
||||||
|
let j = 0;
|
||||||
|
const keyLength = key.length;
|
||||||
|
for (let i = 0; i < 256; i++) {
|
||||||
|
j = (j + s[i] + key.charCodeAt(i % keyLength)) % 256;
|
||||||
|
[s[i], s[j]] = [s[j], s[i]];
|
||||||
|
}
|
||||||
|
let i = 0;
|
||||||
|
j = 0;
|
||||||
|
const decryptedBytes = new Uint8Array(encryptedBytes.length);
|
||||||
|
for (let k = 0; k < encryptedBytes.length; k++) {
|
||||||
|
i = (i + 1) % 256;
|
||||||
|
j = (j + s[i]) % 256;
|
||||||
|
[s[i], s[j]] = [s[j], s[i]];
|
||||||
|
const keyStreamByte = s[(s[i] + s[j]) % 256];
|
||||||
|
decryptedBytes[k] = encryptedBytes[k] ^ keyStreamByte;
|
||||||
|
}
|
||||||
|
const decoder = new TextDecoder('utf-8');
|
||||||
|
const result = decoder.decode(decryptedBytes);
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
|
||||||
|
author: '小可乐/v5.10.1',
|
||||||
|
title: '努努影院',
|
||||||
|
类型: '影视',
|
||||||
|
host: 'https://nnyy.la',
|
||||||
|
hostJs: '',
|
||||||
|
headers: {'User-Agent': MOBILE_UA},
|
||||||
|
编码: 'utf-8',
|
||||||
|
timeout: 5000,
|
||||||
|
|
||||||
|
homeUrl: '/',
|
||||||
|
url: '/fyclass/?page=fypage&fyfilter',
|
||||||
|
filter_url: 'area={{fl.area}}&by={{fl.by}}&class={{fl.class}}&year={{fl.year}}',
|
||||||
|
searchUrl: '/search?page=fypage&wd=**',
|
||||||
|
detailUrl: '',
|
||||||
|
|
||||||
|
limit: 9,
|
||||||
|
double: false,
|
||||||
|
class_name: '电影&剧集&综艺&动漫&短剧&纪录',
|
||||||
|
class_url: 'dianying&dianshiju&zongyi&dongman&duanju&jilupian',
|
||||||
|
filter_def: {},
|
||||||
|
|
||||||
|
推荐: '*',
|
||||||
|
一级: $js.toString(() => {
|
||||||
|
let klists = pdfa(fetch(input), '.thumbnail');
|
||||||
|
VODS = [];
|
||||||
|
klists.forEach((it) => {
|
||||||
|
VODS.push({
|
||||||
|
vod_name: pdfh(it, 'img&&alt'),
|
||||||
|
vod_pic: pdfh(it, 'img&&data-src'),
|
||||||
|
vod_remarks: pdfh(it, '.note&&Text'),
|
||||||
|
vod_id: pdfh(it, 'a&&href')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
搜索: '*',
|
||||||
|
二级: $js.toString(() => {
|
||||||
|
let khtml = fetch(input);
|
||||||
|
let ktabs = pdfa(khtml, 'dl&&dt').map((it) => { return pdfh(it, 'body&&Text') });
|
||||||
|
let kurls = pdfa(khtml, '.sort-list').map((item) => {
|
||||||
|
let kurl = pdfa(item, 'a').map((it) => { return pdfh(it, 'body&&Text') + '$' + input + '@' + pdfh(it, 'a&&onclick') });
|
||||||
|
return kurl.join('#')
|
||||||
|
});
|
||||||
|
VOD = {
|
||||||
|
vod_id: input,
|
||||||
|
vod_name: pdfh(khtml, '.thumb&&alt'),
|
||||||
|
vod_pic: pdfh(khtml, '.thumb&&data-src'),
|
||||||
|
type_name: pdfh(khtml, '.product-excerpt:contains(类型)&&Text').replace('类型:','') || '未提供',
|
||||||
|
vod_remarks: pdfh(khtml, 'h1.product-title&&span:eq(-1)&&Text') || '未提供',
|
||||||
|
vod_year: pdfh(khtml, 'h2&&span&&Text').replace(/\D+/g, '') || '3000',
|
||||||
|
vod_area: pdfh(khtml, '.product-excerpt:contains(地区:)&&a&&Text') || '未提供',
|
||||||
|
vod_lang: '未提供',
|
||||||
|
vod_director: pdfh(khtml, '.product-excerpt:contains(导演)&&Text').replace('导演:','') || '未提供',
|
||||||
|
vod_actor: pdfh(khtml, '.product-excerpt:contains(主演)&&Text').replace('主演:','') || '未提供',
|
||||||
|
vod_content: pdfh(khtml, '.product-excerpt:eq(-1)&&span&&Text') || '未提供',
|
||||||
|
vod_play_from: ktabs.join('$$$'),
|
||||||
|
vod_play_url: kurls.join('$$$')
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
|
||||||
|
play_parse: true,
|
||||||
|
lazy: $js.toString(() => {
|
||||||
|
let [kurl, kids] = input.split('@');
|
||||||
|
let [sid, kid] = kids.match(/\d+/g);
|
||||||
|
let flag = `[${sid}][${kid}]`;
|
||||||
|
kurl = fetch(kurl).split(`${flag}`)[1].split('"')[1];
|
||||||
|
if (kurl) { kurl = rule.rc4Decrypt(kurl) };
|
||||||
|
if (/\.(m3u8|mp4|mkv)/.test(kurl)) {
|
||||||
|
input = { jx: 0, parse: 0, url: kurl, header: rule.headers }
|
||||||
|
} else {
|
||||||
|
input = { jx: 0, parse: 1, url: input }
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
|
||||||
|
filter: 'H4sIAAAAAAAAA+1Y204iQRB99zPm2Qfvt18xPsy6RHEVN6KbsMbECyioC2oUFiXqxgvqiuIlKsOCPzPdA3+xDd1d3YOmmWyM7kO/cep09a16qk4x22J89puBkD8wYgwMtswaX3whY8AYHjeDQaPVCJgTPgJRLIuXIgR/M8dniGFw1gjUzJGz6tJZzUyAMdfKrMkMGc+sDHDOid6wiQQAv9Uzu5ThfhSAX3YTFYrcjwLJz9kuCr8a4BxevHSSm4xjAOZcvXZKF3xOCsBvaRUv7nI/CmC95a1q+pyvRwHnqgd3dmGDcQyAX3wZJW65HwXAnayI8zEAe1nYwPNJvhcKgIv+tK0Y5yjgnP3nsHKVZxwD4Jdbr0T3uR8Fgju1y4fA1YG4l0gldgv3Ugdwnwvl6m6Z3ycFnKucPIuXwgD4WReotOPEVrgrYBhxkJNoCuaG5lrhuZpTPlN6rZk8Wre8vtYf8cp1jt88BXDay6xTjvPTUiAifY72ShDpOgC/1AnOXHI/CiAqTzkyFB1nq+llHhvZBGcux8X8DLjnqJ6m8dO1aw5malgrkceFsnstaoLorN2ItRiAs9ztCI4BuLvyo+AYAL9wgpwIRfmHIrD0JpwEiWVaPAuGRWzyyDqF2NSB2Fde3lfedT/PYaeUwkm4HMAiZxzitWeyIUgbHMP85Tu6X9uCPCCbpIyG8tsowj80gWHE5j6KPHGaAtjH4z05Nt8EBSJ6hSqcngHXqw/5zCnp1Rfu7WLJ46vvaOtoqzscMUYySGO6Bdst27uEvUu2dwp7p2zvEPYO2d4u7O2uvUm7kuzt/WAnPyV741naX56lrXFMW+OYfveI/ka+z833NfK9br63ke9x8z2NPN67xyn4XChwxftTSEQbx7eQlXgRbbwew6mHauqeTTPtJ6NhgfWYbVk4v83IUf90UCYr12EU5UkpODw55aut3zLUSjVCcNQ/NvPRIkFV0JVCQFHUUOK4csTXYwC4qwdkQXmgwIuAUAkWVUFXiQRVsVeJJ5VgUYkEEVABPAkWhXhSiQSVKHlVWH2wBKgXbR5HBt5LHniVACoZoS77ivLqUVY0lwD/Ki6aS4fmEuBNy7IHwdJccjSXEk1FiZYHWh58gDz4PhkYCfnfShs4mQOyESc7z78DwPD9h29Q4kiMENhLI/5qndG1RNcSXUt0LdG15KNbTVJLJszAmxWTeFhqxCjw1KSpGkZFQ0X6MpxMiSatBoDb2HcuoXmlQDSFa+QbhaawDqAA5LbFPhmAM/zex6tQKSnw0iyTWoGeeMpiALjDX2iPFzEG3MXZVZmFX/zM2eBRZcBLY+sUE1L6pAD8Ig92EQojBW9WrJcjZDzEsQ68FFZlIW+2X51KdSp9r1Q6Ywb0X3b6LzvG/W9/2elMqDPhO2XCMf/4zFe/W1XqLl93+brL1wlZJ+T3Tsgtc38Bc7UuQ3cmAAA='
|
||||||
|
}
|
||||||
66
jtxtv12/js/夸克影院.js
Normal file
66
jtxtv12/js/夸克影院.js
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
@header({
|
||||||
|
searchable: 1,
|
||||||
|
filterable: 0,
|
||||||
|
quickSearch: 0,
|
||||||
|
title: '夸克影院'
|
||||||
|
})
|
||||||
|
*/
|
||||||
|
|
||||||
|
var rule = {
|
||||||
|
title: '夸克影院',
|
||||||
|
host: 'https://www.qkmov.cc', //发布页http://www.taoju.vip
|
||||||
|
searchable: 1,
|
||||||
|
quickSearch: 0,
|
||||||
|
filterable: 0,
|
||||||
|
url: '/type/fyclass-fypage.html',
|
||||||
|
class_name: "电影&电视剧&动漫&综艺",
|
||||||
|
class_url: "20&21&22&23",
|
||||||
|
searchUrl: '/search/-------------.html?wd=**',
|
||||||
|
play_parse: true,
|
||||||
|
limit: 6,
|
||||||
|
推荐:'*',
|
||||||
|
一级:'.col-md-6.col-sm-4.col-xs-3;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||||
|
二级: async function () {
|
||||||
|
let {input,pdfa,pdfh,pd} = this;
|
||||||
|
input = input.replace(/video/g, 'play').replace(/.html/g, '-1-1.html')
|
||||||
|
let html = await request(input);
|
||||||
|
let VOD = {};
|
||||||
|
VOD.vod_name = pdfh(html, '.stui-content__detail .title&&Text');
|
||||||
|
VOD.vod_content = pdfh(html, '.detail&&Text');
|
||||||
|
let playlist = pdfa(html, '.cloud-links a')
|
||||||
|
let play_urls = []
|
||||||
|
let play_from = []
|
||||||
|
playlist.map((item) => {
|
||||||
|
play_urls.push(pdfh(item,'a&&title') + '$' + pdfh(item,'a&&href'));
|
||||||
|
play_from.push(pdfh(item,'a&&title'))
|
||||||
|
});
|
||||||
|
VOD.vod_play_from =play_from.join('$$$');
|
||||||
|
VOD.vod_play_url = play_urls.join('#');
|
||||||
|
return VOD
|
||||||
|
},
|
||||||
|
lazy:async function (){
|
||||||
|
let {input} = this;
|
||||||
|
if(/pan.quark.cn/.test(input)){
|
||||||
|
return {parse: 0,jx: 0,url: 'push://' + input}
|
||||||
|
}else{
|
||||||
|
return {parse: 1,jx: 0,url: input}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
搜索: async function () {
|
||||||
|
let {input,pdfa,pdfh,pd} = this;
|
||||||
|
let html = await request(input);
|
||||||
|
let d = [];
|
||||||
|
let data = pdfa(html, '.stui-vodlist__media li');
|
||||||
|
data.forEach((it) => {
|
||||||
|
d.push({
|
||||||
|
title: pdfh(it, '.thumb a&&title'),
|
||||||
|
pic_url: pd(it, '.thumb a&&data-original'),
|
||||||
|
desc: pdfh(it, '.pic-text&&Text'),
|
||||||
|
url: pd(it, '.thumb a&&href'),
|
||||||
|
content: pdfh(it, '.hl-item-content&&p:eq(0)&&Text'),
|
||||||
|
})
|
||||||
|
});
|
||||||
|
return setResult(d)
|
||||||
|
}
|
||||||
|
}
|
||||||
412
jtxtv12/js/泥泥视频.js
Normal file
412
jtxtv12/js/泥泥视频.js
Normal file
@@ -0,0 +1,412 @@
|
|||||||
|
var rule = {
|
||||||
|
author: '书虫/250613/第1版',
|
||||||
|
title: '泥视频',
|
||||||
|
类型: '影视',
|
||||||
|
//主页 网页的域名根
|
||||||
|
host: 'https://www.nivod.vip/',
|
||||||
|
hostJs: ``,
|
||||||
|
headers: {
|
||||||
|
'User-Agent': 'Mozilla/5.0'
|
||||||
|
},
|
||||||
|
//不填就默认utf-8,根据网页源码所显示的格式填,根据需要可填UTF-8,GBK,GB2312
|
||||||
|
编码: 'utf-8',
|
||||||
|
timeout: 5000,
|
||||||
|
//首页链接,可以是完整路径或者相对路径,用于分类获取和推荐获取
|
||||||
|
homeUrl: '/',
|
||||||
|
//分类链接,分类参数用fyclasss,页码用fypage,带筛选的用fyfilter,第一页无页码的用[]括起,处理方式同xbpq方式,fyfilter代表filter_url里内容
|
||||||
|
|
||||||
|
// https://www.nivod.vip/k/6-大陆-------2---2021/
|
||||||
|
url: 'https://www.nivod.vip/k/fyfilter/',
|
||||||
|
filter_url: '{{fl.cateId}}-{{fl.area}}-------fypage---{{fl.year}}',
|
||||||
|
detailUrl: 'https://www.nivod.vip/nivod/fyid/',
|
||||||
|
//搜索链接 可以是完整路径或者相对路径,用于分类获取和推荐获取 **代表搜索词 fypage代表页数
|
||||||
|
// searchUrl: 'https://www.shkangping.com/vodsearch/**----------fypage---.html',
|
||||||
|
// 搜索页找参数 数组标题图片副标题链接
|
||||||
|
// 搜索: '*',
|
||||||
|
//rss搜索写法
|
||||||
|
// searchUrl: '/rss/index.xml?wd=**&page=fypage',
|
||||||
|
// ajax搜索写法
|
||||||
|
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&page=fypage&limit=30',
|
||||||
|
|
||||||
|
搜索: 'json:list;name;pic;en;id',
|
||||||
|
|
||||||
|
searchable: 1,
|
||||||
|
quickSearch: 1,
|
||||||
|
filterable: 1,
|
||||||
|
limit: 10,
|
||||||
|
double: false,
|
||||||
|
class_name: '电影&电视剧&综艺&动漫',
|
||||||
|
//静态分类值
|
||||||
|
class_url: '1&2&3&4',
|
||||||
|
|
||||||
|
|
||||||
|
filter_def: {
|
||||||
|
1: {
|
||||||
|
cateId: '1'
|
||||||
|
},
|
||||||
|
2: {
|
||||||
|
cateId: '2'
|
||||||
|
},
|
||||||
|
3: {
|
||||||
|
cateId: '3'
|
||||||
|
},
|
||||||
|
4: {
|
||||||
|
cateId: '4'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
//推荐列表可以单独写也是几个参数,和一级列表部分参数一样的可以用*代替,不一样写不一样的,全和一级一样,可以用一个*代替
|
||||||
|
推荐: 'a:has(.lazyload);a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||||
|
//推荐页的json模式
|
||||||
|
//推荐: 'json:list;vod_name;vod_pic;vod_remarks;vod_id',
|
||||||
|
//数组、标题、图片、副标题、链接,分类页找参数
|
||||||
|
一级: 'a:has(.module-item-pic);a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||||
|
|
||||||
|
|
||||||
|
//数组、标题、图片、副标题、链接,分类页找参数
|
||||||
|
|
||||||
|
//一级: `js:
|
||||||
|
//let klist=pdfa(request(input),'.vertical-box');
|
||||||
|
// let k=[];
|
||||||
|
//klist.forEach(it=>{
|
||||||
|
// k.push({
|
||||||
|
//title: pdfh(it,'.title&&Text'),
|
||||||
|
// pic_url: !pdfh(it,'.lazyload&&data-original').startsWith('http') ? HOST + pdfh(it,'.lazyload&&data-original') : pdfh(it,'.lazyload&&data-original'),
|
||||||
|
|
||||||
|
//desc: pdfh(it,''),
|
||||||
|
// url: pdfh(it,'a&&href'),
|
||||||
|
//content: ''
|
||||||
|
// })
|
||||||
|
//});
|
||||||
|
//setResult(k)
|
||||||
|
//`,
|
||||||
|
|
||||||
|
//普通搜索模板 搜索数组标题图片副标题链接
|
||||||
|
//搜索: `js:
|
||||||
|
|
||||||
|
//let klist=pdfa(request(input),'.hzixunui-vodlist__thumb');
|
||||||
|
// let k=[];
|
||||||
|
//klist.forEach(it=>{
|
||||||
|
//k.push({
|
||||||
|
// title: pdfh(it,'a&&title'),
|
||||||
|
// pic_url: !pdfh(it,'a&&data-original').startsWith('http') ? HOST + pdfh(it,'a&&data-original') : pdfh(it,'a&&data-original'),
|
||||||
|
// desc: pdfh(it,'.text-right&&Text'),
|
||||||
|
// url: pdfh(it,'a&&href'),
|
||||||
|
// content: ''
|
||||||
|
// })
|
||||||
|
// });
|
||||||
|
// setResult(k)
|
||||||
|
// `,
|
||||||
|
|
||||||
|
//rss搜索模板
|
||||||
|
// 搜索: `js:
|
||||||
|
//let klist=pdfa(request(input),'rss&&item');
|
||||||
|
// let k=[];
|
||||||
|
// klist.forEach(it=>{
|
||||||
|
// it=it.replace(/title|link|author|pubdate|description/g,'p');
|
||||||
|
// k.push({
|
||||||
|
// title: pdfh(it,'p:eq(0)&&Text'),
|
||||||
|
// pic_url: '',
|
||||||
|
// desc: pdfh(it,'p:eq(3)&&Text'),
|
||||||
|
// url: pdfh(it,'p:eq(1)&&Text').replace('cc','la'),
|
||||||
|
// content: pdfh(it,'p:eq(4)&&Text')
|
||||||
|
// })
|
||||||
|
// });
|
||||||
|
// setResult(k)
|
||||||
|
//" `,
|
||||||
|
|
||||||
|
//详情页找参数
|
||||||
|
//第一部分分别是对应参数式中的标题、类型、图片、备注、年份、地区、导演、主演、简介
|
||||||
|
//第二部分分别对应参数式中的线路数组和线路标题
|
||||||
|
//第三部分分别对应参数式中的播放数组、播放列表、播放标题、播放链接
|
||||||
|
|
||||||
|
二级: `js:
|
||||||
|
let html = request(input);
|
||||||
|
VOD = {};
|
||||||
|
VOD.vod_id = input;
|
||||||
|
VOD.vod_name = '标题: '+pdfh(html, 'h1&&Text');
|
||||||
|
VOD.type_name = pdfh(html, '.module-info-tag-link:eq(2)&&Text');
|
||||||
|
VOD.vod_pic = pd(html, '.lazyload&&data-original', input);
|
||||||
|
VOD.vod_remarks = pdfh(html, '.module-info-item:contains(集数)&&Text').replace('集数:','');
|
||||||
|
VOD.vod_year = pdfh(html, '.module-info-tag-link:eq(0)&&Text');
|
||||||
|
VOD.vod_area = pdfh(html, '.module-info-tag-link:eq(1)&&Text');
|
||||||
|
VOD.vod_director = pdfh(html, '.module-info-item:contains(导演)&&Text').replace('导演:','');
|
||||||
|
VOD.vod_actor = pdfh(html, '.module-info-item:contains(主演)&&Text').replace('主演:','');
|
||||||
|
VOD.vod_content = '祝您观影愉快!介绍剧情:' + pdfh(html, '.module-info-introduction-content&&Text');
|
||||||
|
|
||||||
|
let r_ktabs = pdfa(html,'#y-playList&&span');
|
||||||
|
let ktabs = r_ktabs.map(it => pdfh(it, 'Text'));
|
||||||
|
VOD.vod_play_from = ktabs.join('$$$');
|
||||||
|
|
||||||
|
|
||||||
|
let klists = [];
|
||||||
|
let r_plists = pdfa(html, '.module-play-list');
|
||||||
|
r_plists.forEach((rp) => {
|
||||||
|
let klist = pdfa(rp, 'body&&a:not([rel])').map((it) => {
|
||||||
|
return pdfh(it, 'a&&Text') + '$' + pd(it, 'a&&href', input);
|
||||||
|
});
|
||||||
|
klist = klist.join('#');
|
||||||
|
klists.push(klist);
|
||||||
|
});
|
||||||
|
VOD.vod_play_url = klists.join('$$$')
|
||||||
|
|
||||||
|
|
||||||
|
`,
|
||||||
|
//是否启用辅助嗅探: 1,0
|
||||||
|
sniffer: 0,
|
||||||
|
// 辅助嗅探规则
|
||||||
|
isVideo: 'http((?!http).){26,}\\.(m3u8|mp4|flv|avi|mkv|wmv|mpg|mpeg|mov|ts|3gp|rm|rmvb|asf|m4a|mp3|wma)',
|
||||||
|
|
||||||
|
play_parse: true,
|
||||||
|
//播放地址通用解析
|
||||||
|
lazy: `js:
|
||||||
|
let kcode = JSON.parse(request(input).match(/var player_.*?=(.*?)</)[1]);
|
||||||
|
let kurl = kcode.url;
|
||||||
|
if (kcode.encrypt == '1') {
|
||||||
|
url = unescape(url)
|
||||||
|
} else if (kcode.encrypt == '2') {
|
||||||
|
url = unescape(base64Decode(url))
|
||||||
|
};
|
||||||
|
if (/\\.(m3u8|mp4)/.test(kurl)) {
|
||||||
|
input = { jx: 0, parse: 0, url: kurl }
|
||||||
|
} else {
|
||||||
|
input = { jx: 0, parse: 1, url: input }
|
||||||
|
}`,
|
||||||
|
filter: {
|
||||||
|
"1": [
|
||||||
|
|
||||||
|
{
|
||||||
|
"key": "cateId",
|
||||||
|
"name": "类型",
|
||||||
|
"value":[
|
||||||
|
{"n": "全部", "v": "1"},
|
||||||
|
{"n": "动作片", "v": "6"},
|
||||||
|
{"n": "喜剧片", "v": "7"},
|
||||||
|
{"n": "爱情片", "v": "8"},
|
||||||
|
{"n": "科幻片", "v": "9"},
|
||||||
|
{"n": "奇幻片", "v": "10"},
|
||||||
|
{"n": "恐怖片", "v": "11"},
|
||||||
|
{"n": "剧情片", "v": "12"},
|
||||||
|
{"n": "战争片", "v": "20"},
|
||||||
|
{"n": "纪录片", "v": "21"},
|
||||||
|
{"n": "动画片", "v": "26"},
|
||||||
|
{"n": "悬疑片", "v": "22"},
|
||||||
|
{"n": "冒险片", "v": "23"},
|
||||||
|
{"n": "犯罪片", "v": "24"},
|
||||||
|
{"n": "惊悚片", "v": "45"},
|
||||||
|
{"n": "歌舞片", "v": "46"},
|
||||||
|
{"n": "灾难片", "v": "47"},
|
||||||
|
{"n": "网络片", "v": "48"}
|
||||||
|
]
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "area",
|
||||||
|
"name": "地区",
|
||||||
|
"value": [
|
||||||
|
{"n": "全部", "v": ""},
|
||||||
|
{"n": "大陆", "v": "大陆"},
|
||||||
|
{"n": "香港", "v": "香港"},
|
||||||
|
{"n": "台湾", "v": "台湾"},
|
||||||
|
{"n": "美国", "v": "美国"},
|
||||||
|
{"n": "欧美", "v": "欧美"},
|
||||||
|
{"n": "日本", "v": "日本"},
|
||||||
|
{"n": "韩国", "v": "韩国"},
|
||||||
|
{"n": "泰国", "v": "泰国"},
|
||||||
|
{"n": "其他", "v": "其他"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"key": "year",
|
||||||
|
"name": "年份",
|
||||||
|
"value": [
|
||||||
|
{"n": "全部", "v": ""},
|
||||||
|
{"n": "2025", "v": "2025"},
|
||||||
|
{"n": "2024", "v": "2024"},
|
||||||
|
{"n": "2023", "v": "2023"},
|
||||||
|
{"n": "2022", "v": "2022"},
|
||||||
|
{"n": "2021", "v": "2021"},
|
||||||
|
{"n": "2020", "v": "2020"},
|
||||||
|
{"n": "2019", "v": "2019"},
|
||||||
|
{"n": "2018", "v": "2018"},
|
||||||
|
{"n": "2017", "v": "2017"},
|
||||||
|
{"n": "2016", "v": "2016"},
|
||||||
|
{"n": "2015", "v": "2015"},
|
||||||
|
{"n": "2014", "v": "2014"},
|
||||||
|
{"n": "2013", "v": "2013"},
|
||||||
|
{"n": "2012", "v": "2012"}
|
||||||
|
]
|
||||||
|
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"2": [{
|
||||||
|
"key": "cateId",
|
||||||
|
"name": "类型",
|
||||||
|
"value":[
|
||||||
|
{"n": "全部", "v": "2"},
|
||||||
|
{"n": "国产剧", "v": "13"},
|
||||||
|
{"n": "港台剧", "v": "14"},
|
||||||
|
{"n": "日剧", "v": "15"},
|
||||||
|
{"n": "韩剧", "v": "33"},
|
||||||
|
{"n": "欧美剧", "v": "16"},
|
||||||
|
{"n": "泰剧", "v": "34"},
|
||||||
|
{"n": "新马剧", "v": "35"},
|
||||||
|
{"n": "其他剧", "v": "25"}
|
||||||
|
]
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "area",
|
||||||
|
"name": "地区",
|
||||||
|
"value": [
|
||||||
|
{"n": "全部", "v": ""},
|
||||||
|
{"n": "内地", "v": "内地"},
|
||||||
|
{"n": "韩国", "v": "韩国"},
|
||||||
|
{"n": "香港", "v": "香港"},
|
||||||
|
{"n": "台湾", "v": "台湾"},
|
||||||
|
{"n": "日本", "v": "日本"},
|
||||||
|
{"n": "美国", "v": "美国"},
|
||||||
|
{"n": "泰国", "v": "泰国"},
|
||||||
|
{"n": "英国", "v": "英国"},
|
||||||
|
{"n": "新加坡", "v": "新加坡"},
|
||||||
|
{"n": "其他", "v": "其他"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"key": "year",
|
||||||
|
"name": "年份",
|
||||||
|
"value": [
|
||||||
|
{"n": "全部", "v": ""},
|
||||||
|
{"n": "2025", "v": "2025"},
|
||||||
|
{"n": "2024", "v": "2024"},
|
||||||
|
{"n": "2023", "v": "2023"},
|
||||||
|
{"n": "2022", "v": "2022"},
|
||||||
|
{"n": "2021", "v": "2021"},
|
||||||
|
{"n": "2020", "v": "2020"},
|
||||||
|
{"n": "2019", "v": "2019"},
|
||||||
|
{"n": "2018", "v": "2018"},
|
||||||
|
{"n": "2017", "v": "2017"},
|
||||||
|
{"n": "2016", "v": "2016"},
|
||||||
|
{"n": "2015", "v": "2015"},
|
||||||
|
{"n": "2014", "v": "2014"},
|
||||||
|
{"n": "2013", "v": "2013"},
|
||||||
|
{"n": "2012", "v": "2012"}
|
||||||
|
]
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
"3": [{
|
||||||
|
"key": "cateId",
|
||||||
|
"name": "类型",
|
||||||
|
"value":[
|
||||||
|
{"n": "全部", "v": "3"},
|
||||||
|
{"n": "内地综艺", "v": "27"},
|
||||||
|
{"n": "港台综艺", "v": "28"},
|
||||||
|
{"n": "日本综艺", "v": "29"},
|
||||||
|
{"n": "韩国综艺", "v": "36"},
|
||||||
|
{"n": "欧美综艺", "v": "30"},
|
||||||
|
{"n": "新马泰综艺", "v": "37"},
|
||||||
|
{"n": "其他综艺", "v": "38"}
|
||||||
|
]
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "area",
|
||||||
|
"name": "地区",
|
||||||
|
"value": [
|
||||||
|
{"n": "全部", "v": ""},
|
||||||
|
{"n": "内地", "v": "内地"},
|
||||||
|
{"n": "港台", "v": "港台"},
|
||||||
|
{"n": "日韩", "v": "日韩"},
|
||||||
|
{"n": "欧美", "v": "欧美"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"key": "year",
|
||||||
|
"name": "年份",
|
||||||
|
"value": [
|
||||||
|
{"n": "全部", "v": ""},
|
||||||
|
{"n": "2025", "v": "2025"},
|
||||||
|
{"n": "2024", "v": "2024"},
|
||||||
|
{"n": "2023", "v": "2023"},
|
||||||
|
{"n": "2022", "v": "2022"},
|
||||||
|
{"n": "2021", "v": "2021"},
|
||||||
|
{"n": "2020", "v": "2020"},
|
||||||
|
{"n": "2019", "v": "2019"},
|
||||||
|
{"n": "2018", "v": "2018"},
|
||||||
|
{"n": "2017", "v": "2017"},
|
||||||
|
{"n": "2016", "v": "2016"},
|
||||||
|
{"n": "2015", "v": "2015"},
|
||||||
|
{"n": "2014", "v": "2014"},
|
||||||
|
{"n": "2013", "v": "2013"},
|
||||||
|
{"n": "2012", "v": "2012"}
|
||||||
|
]
|
||||||
|
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"4": [{
|
||||||
|
"key": "cateId",
|
||||||
|
"name": "类型",
|
||||||
|
"value": [
|
||||||
|
{"n": "全部", "v": "4"},
|
||||||
|
{"n": "国产动漫", "v": "31"},
|
||||||
|
{"n": "日本动漫", "v": "32"},
|
||||||
|
{"n": "韩国动漫", "v": "39"},
|
||||||
|
{"n": "港台动漫", "v": "40"},
|
||||||
|
{"n": "新马泰动漫", "v": "41"},
|
||||||
|
{"n": "欧美动漫", "v": "42"},
|
||||||
|
{"n": "其他动漫", "v": "43"}
|
||||||
|
]
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "area",
|
||||||
|
"name": "地区",
|
||||||
|
"value": [
|
||||||
|
{"n": "全部", "v": ""},
|
||||||
|
{"n": "国产", "v": "国产"},
|
||||||
|
{"n": "日本", "v": "日本"},
|
||||||
|
{"n": "欧美", "v": "欧美"},
|
||||||
|
{"n": "其他", "v": "其他"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"key": "year",
|
||||||
|
"name": "年份",
|
||||||
|
"value": [
|
||||||
|
{"n": "全部", "v": ""},
|
||||||
|
{"n": "2025", "v": "2025"},
|
||||||
|
{"n": "2024", "v": "2024"},
|
||||||
|
{"n": "2023", "v": "2023"},
|
||||||
|
{"n": "2022", "v": "2022"},
|
||||||
|
{"n": "2021", "v": "2021"},
|
||||||
|
{"n": "2020", "v": "2020"},
|
||||||
|
{"n": "2019", "v": "2019"},
|
||||||
|
{"n": "2018", "v": "2018"},
|
||||||
|
{"n": "2017", "v": "2017"},
|
||||||
|
{"n": "2016", "v": "2016"},
|
||||||
|
{"n": "2015", "v": "2015"},
|
||||||
|
{"n": "2014", "v": "2014"},
|
||||||
|
{"n": "2013", "v": "2013"},
|
||||||
|
{"n": "2012", "v": "2012"}
|
||||||
|
]
|
||||||
|
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
105
jtxtv12/js/米盘搜索.js
Normal file
105
jtxtv12/js/米盘搜索.js
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
var rule = {
|
||||||
|
|
||||||
|
safeParseJSON: function(jStr){
|
||||||
|
try {return JSON.parse(jStr);} catch(e) {return null;}
|
||||||
|
},
|
||||||
|
|
||||||
|
getkvods: function (url, words = '米', emode = false) {
|
||||||
|
let kwd = words;
|
||||||
|
let rbody = {
|
||||||
|
"page": 1,
|
||||||
|
"q": kwd,
|
||||||
|
"user": "",
|
||||||
|
"exact": emode,
|
||||||
|
"format": [".mp4", ".mkv", ".flv", ".rmvb", ".wmv", ".3gp", ".mov", ".m4v", ".swf", ".f4v", ".webm", ".ogg", ".ogv", ".m3u8", ".mpd", ".avi", ".mpg", ".mpeg", ".mpe", ".mpv", ".m2v", ".mxf", ".3g2", ".f4p", ".f4a", ".f4b"],
|
||||||
|
"share_time": "",
|
||||||
|
"size": 15, "type": "",
|
||||||
|
"exclude_user": [],
|
||||||
|
"adv_params": {"wechat_pwd": "", "platform": ""}
|
||||||
|
};
|
||||||
|
let khtml = fetch(url, {
|
||||||
|
headers: {
|
||||||
|
...rule.headers,
|
||||||
|
"Content-Type": "application/json; charset=UTF-8"
|
||||||
|
},
|
||||||
|
method: 'POST',
|
||||||
|
body: rbody
|
||||||
|
});
|
||||||
|
let klists = rule.safeParseJSON(khtml)?.data?.list ?? [];
|
||||||
|
let kvods = [];
|
||||||
|
klists.forEach(it => {
|
||||||
|
let kname = it.disk_name.replace(/<[^>]*?>/g, '') || '名称';
|
||||||
|
let kpic = rule.panPics[it.disk_type] || '图片';
|
||||||
|
let kremarks = `${it.disk_type}|${it.shared_time || '无分享时间'}`;
|
||||||
|
kvods.push({
|
||||||
|
vod_name: kname,
|
||||||
|
vod_pic: kpic,
|
||||||
|
vod_remarks: kremarks,
|
||||||
|
vod_id: `${it.link}@${kname}@${kpic}@${kremarks}`
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return kvods;
|
||||||
|
},
|
||||||
|
|
||||||
|
author: '小可乐/v5.12.1',
|
||||||
|
title: '米盘搜',
|
||||||
|
类型: '影视',
|
||||||
|
host: 'http://misopan.fun',
|
||||||
|
headers: {'User-Agent': MOBILE_UA},
|
||||||
|
编码: 'utf-8',
|
||||||
|
timeout: 5000,
|
||||||
|
|
||||||
|
homeUrl: '/v1/search/disk',
|
||||||
|
url: '/v1/search/disk',
|
||||||
|
searchUrl: '/v1/search/disk',
|
||||||
|
|
||||||
|
limit: 9,
|
||||||
|
double: false,
|
||||||
|
class_name: '电影&国产剧&短剧',
|
||||||
|
class_url: '电影&国产剧&短剧',
|
||||||
|
pagecount: {"电影": 1, "国产剧": 1, "短剧": 1},
|
||||||
|
|
||||||
|
exaxt: false,//精准搜索改为true
|
||||||
|
panPics: {
|
||||||
|
"QUARK": "https://so.slowread.net/static/img/quark.jpg",
|
||||||
|
"BDY": "https://so.slowread.net/static/img/baidu.jpg",
|
||||||
|
"UC": "https://so.slowread.net/static/img/uc.jpg"
|
||||||
|
},
|
||||||
|
|
||||||
|
推荐: $js.toString(() => {
|
||||||
|
let kwd = '美剧';
|
||||||
|
VODS = rule.getkvods(input, kwd, rule.exaxt);
|
||||||
|
}),
|
||||||
|
一级: $js.toString(() => {
|
||||||
|
VODS = rule.getkvods(input, MY_CATE, rule.exaxt);
|
||||||
|
}),
|
||||||
|
搜索: $js.toString(() => {
|
||||||
|
VODS = rule.getkvods(input, KEY, rule.exaxt);
|
||||||
|
}),
|
||||||
|
二级: $js.toString(() => {
|
||||||
|
let [kid, kname, kpic, kremarks] = input.split('@');
|
||||||
|
let [type, remark='状态'] = kremarks.split('|');
|
||||||
|
let kurl = `合集$${kid}`;
|
||||||
|
VOD = {
|
||||||
|
vod_id: kid,
|
||||||
|
vod_name: kname,
|
||||||
|
vod_pic: kpic,
|
||||||
|
type_name: type,
|
||||||
|
vod_remarks: remark,
|
||||||
|
vod_year: '1000',
|
||||||
|
vod_area: '地区',
|
||||||
|
vod_lang: '语言',
|
||||||
|
vod_director: '导演',
|
||||||
|
vod_actor: '演员',
|
||||||
|
vod_content: `${kname}_${kid}`,
|
||||||
|
vod_play_from: type,
|
||||||
|
vod_play_url: kurl
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
|
||||||
|
play_parse: true,
|
||||||
|
lazy: $js.toString(() => {
|
||||||
|
let kurl = `push://${input}`;
|
||||||
|
input = { jx: 0, parse: 0, url: kurl };
|
||||||
|
}),
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user