mirror of
https://github.com/qist/tvbox.git
synced 2026-11-03 18:24:11 +00:00
更新源 202606130919
This commit is contained in:
1 parent
8e2ac15646
commit
95f93a0f65
31 files changed
+17884
-2266
No files matched your search
+191
-1880
File diff suppressed because it is too large.
Load diff
+1
-169
@@ -1,169 +1 @@
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 3个set-Cookie
|
||||
|
||||
var rule = {
|
||||
title:'Anime1动畫',
|
||||
host:'https://anime1.me',
|
||||
url: '/fyclass',
|
||||
detailUrl:'/?cat=fyid',
|
||||
searchUrl: '/page/fypage?s=**',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{'User-Agent': 'PC_UA'},
|
||||
timeout:5000,
|
||||
class_name:'連載中&2025&2024&2023&2022&2021&2020&2019&2018&更早',
|
||||
class_url:'連載中&2025&2024&2023&2022&2021&2020&2019&2018&2017',
|
||||
play_parse:true,
|
||||
lazy:`js:
|
||||
var apiurl = 'https://v.anime1.me/api';
|
||||
var html = request(apiurl, {
|
||||
headers: {
|
||||
'Referer': HOST,
|
||||
},
|
||||
body: 'd=' + input,
|
||||
method: 'POST',
|
||||
withHeaders: true
|
||||
});
|
||||
let json = JSON.parse(html);
|
||||
print(json);
|
||||
log(Object.keys(json));
|
||||
let setCk = Object.keys(json).filter(it => it.toLowerCase() === "set-cookie");
|
||||
let cookie = setCk ? json[setCk] : "";
|
||||
// 3个set-Cookie
|
||||
if (Array.isArray(cookie)) {
|
||||
cookie = cookie.join(';');
|
||||
}
|
||||
cookie = cookie.split(';').filter(function(it) {
|
||||
return ['e', 'p', 'h'].includes(it.split('=')[0])
|
||||
}).join(';');
|
||||
log(cookie);
|
||||
var purl = JSON.parse(json.body).s[0].src;
|
||||
if (purl.startsWith('/')) {
|
||||
purl = 'https:' + purl
|
||||
}
|
||||
input = {
|
||||
jx: 0,
|
||||
url: purl,
|
||||
parse: 0,
|
||||
header: JSON.stringify({
|
||||
'referer': HOST,
|
||||
'Cookie': cookie,
|
||||
'user-agent': PC_UA
|
||||
}),
|
||||
}
|
||||
`,
|
||||
limit:6,
|
||||
推荐: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
return x[2].includes('連載中');
|
||||
});
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
一级: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
if (MY_CATE === '連載中') return x[2].includes(MY_CATE);
|
||||
else if (MY_CATE === '2017') return x[3] <= MY_CATE;
|
||||
else return x[3] == MY_CATE;
|
||||
});
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
二级: `js:
|
||||
pdfh = jsp.pdfh; pdfa = jsp.pdfa; pd = jsp.pd;
|
||||
var html = request(input);
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
var vid = input.split('=')[1];
|
||||
let playKeys = Object.values(list).find(function(x) {
|
||||
return x[0] === parseInt(vid);
|
||||
});
|
||||
VOD = {
|
||||
vod_pic: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
vod_id: playKeys[0],
|
||||
vod_name: playKeys[1],
|
||||
vod_content: playKeys[2],
|
||||
vod_year: playKeys[3],
|
||||
type_name: playKeys[4],
|
||||
vod_actor: playKeys[5],
|
||||
};
|
||||
var pageurl = pd(html, '.cat-links&&a&&href');
|
||||
var pagenum = 1;
|
||||
let vod_tab_list = [];
|
||||
let vlist = [];
|
||||
for (let p = 1; p < parseInt(pagenum) + 1; p++) {
|
||||
let phtml = request(pageurl + '/page/' + pagenum);
|
||||
let new_vod_list = [];
|
||||
let vodList = [];
|
||||
vodList = pdfa(phtml, '.site-main&&article');
|
||||
for (let i = 0; i < vodList.length; i++) {
|
||||
let it = vodList[i];
|
||||
let ptitle = pdfh(it, '.entry-title&&Text').replace(/\\[(.*)\\]/, '$1');
|
||||
let purl = pd(it, '.video-js&&data-apireq');
|
||||
new_vod_list.push(ptitle + '$' + purl);
|
||||
}
|
||||
vlist = vlist.concat(new_vod_list);
|
||||
try {
|
||||
pagenum = pd(phtml, '.nav-previous&&a&&href').split('/page/')[1];
|
||||
} catch(e) {}
|
||||
}
|
||||
let vlist2 = vlist.reverse().join("#");
|
||||
vod_tab_list.push(vlist2);
|
||||
VOD.vod_play_from = '在线播放';
|
||||
VOD.vod_play_url = vod_tab_list.join("$$$");
|
||||
`,
|
||||
搜索: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
var wd = input.split('=')[1];
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
return x[1].includes(wd);
|
||||
});
|
||||
log(playKeys);
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
||||
Ly8g5rOo5oSP5LqL6aG5OuatpOa6kOS7heaUr+aMgSDlvbHop4ZUViDlj4og54ix5L2s54mIdHZib3jmnIDmlrDniYgKLy8g5rOo5oSP5LqL6aG5OuatpOa6kOS7heaUr+aMgSDlvbHop4ZUViDlj4og54ix5L2s54mIdHZib3jmnIDmlrDniYgKLy8g5rOo5oSP5LqL6aG5OuatpOa6kOS7heaUr+aMgSDlvbHop4ZUViDlj4og54ix5L2s54mIdHZib3jmnIDmlrDniYgKLy8gM+S4qnNldC1Db29raWUKCnZhciBydWxlID0gewoJdGl0bGU6J0FuaW1lMeWKqOeVqycsCglob3N0OidodHRwczovL2FuaW1lMS5tZScsCgl1cmw6ICcvZnljbGFzcycsCglkZXRhaWxVcmw6Jy8/Y2F0PWZ5aWQnLAoJc2VhcmNoVXJsOiAnL3BhZ2UvZnlwYWdlP3M9KionLAoJc2VhcmNoYWJsZToyLAoJcXVpY2tTZWFyY2g6MCwKCWhlYWRlcnM6eydVc2VyLUFnZW50JzogJ1BDX1VBJ30sCgl0aW1lb3V0OjUwMDAsCiAgICBjbGFzc19uYW1lOifpgKPovInkuK0mMjAyNSYyMDI0JjIwMjMmMjAyMiYyMDIxJjIwMjAmMjAxOSYyMDE4JuabtOaXqScsCiAgICBjbGFzc191cmw6J+mAo+i8ieS4rSYyMDI1JjIwMjQmMjAyMyYyMDIyJjIwMjEmMjAyMCYyMDE5JjIwMTgmMjAxNycsCglwbGF5X3BhcnNlOnRydWUsCglsYXp5OmBqczoKCQl2YXIgYXBpdXJsID0gJ2h0dHBzOi8vdi5hbmltZTEubWUvYXBpJzsKCQl2YXIgaHRtbCA9IHJlcXVlc3QoYXBpdXJsLCB7CgkJCWhlYWRlcnM6IHsKCQkJCSdSZWZlcmVyJzogSE9TVCwKCQkJfSwKCQkJYm9keTogJ2Q9JyArIGlucHV0LAoJCQltZXRob2Q6ICdQT1NUJywKCQkJd2l0aEhlYWRlcnM6IHRydWUKCQl9KTsKCQlsZXQganNvbiA9IEpTT04ucGFyc2UoaHRtbCk7CgkJcHJpbnQoanNvbik7CgkJbG9nKE9iamVjdC5rZXlzKGpzb24pKTsKCQlsZXQgc2V0Q2sgPSBPYmplY3Qua2V5cyhqc29uKS5maWx0ZXIoaXQgPT4gaXQudG9Mb3dlckNhc2UoKSA9PT0gInNldC1jb29raWUiKTsKCQlsZXQgY29va2llID0gc2V0Q2sgPyBqc29uW3NldENrXSA6ICIiOwoJCS8vIDPkuKpzZXQtQ29va2llCgkJaWYgKEFycmF5LmlzQXJyYXkoY29va2llKSkgewoJCQljb29raWUgPSBjb29raWUuam9pbignOycpOwoJCX0KCQljb29raWUgPSBjb29raWUuc3BsaXQoJzsnKS5maWx0ZXIoZnVuY3Rpb24oaXQpIHsKCQkJcmV0dXJuIFsnZScsICdwJywgJ2gnXS5pbmNsdWRlcyhpdC5zcGxpdCgnPScpWzBdKQoJCX0pLmpvaW4oJzsnKTsKCQlsb2coY29va2llKTsKCQl2YXIgcHVybCA9IEpTT04ucGFyc2UoanNvbi5ib2R5KS5zWzBdLnNyYzsKCQlpZiAocHVybC5zdGFydHNXaXRoKCcvJykpIHsKCQkJcHVybCA9ICdodHRwczonICsgcHVybAoJCX0KCQlpbnB1dCA9IHsKCQkJang6IDAsCgkJCXVybDogcHVybCwKCQkJcGFyc2U6IDAsCgkJCWhlYWRlcjogSlNPTi5zdHJpbmdpZnkoewoJCQkJJ3JlZmVyZXInOiBIT1NULAoJCQkJJ0Nvb2tpZSc6IGNvb2tpZSwKCQkJCSd1c2VyLWFnZW50JzogUENfVUEKCQkJfSksCgkJfQoJYCwKCWxpbWl0OjYsCgnmjqjojZA6IGBqczoKCQl2YXIgZCA9IFtdOwoJCWZ1bmN0aW9uIHN0cmlwSHRtbFRhZyhzcmMpIHsKCQkJcmV0dXJuIHNyYy5yZXBsYWNlKC88XFwvP1tePl0rKD58JCkvZywgJycpLnJlcGxhY2UoLyYuezEsNX07L2csICcnKS5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7CgkJfQoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJbGV0IHBsYXlLZXlzID0gT2JqZWN0LnZhbHVlcyhsaXN0KS5maWx0ZXIoZnVuY3Rpb24oeCkgewoJCQlyZXR1cm4geFsyXS5pbmNsdWRlcygn6YCj6LyJ5LitJyk7CgkJfSk7CgkJcGxheUtleXMuZm9yRWFjaChmdW5jdGlvbihpdCkgewoJCQlkLnB1c2goewoJCQkJdGl0bGU6IHN0cmlwSHRtbFRhZyhpdFsxXSksCgkJCQlpbWc6ICdodHRwczovL3N0YS5hbmljZG4uY29tL3BsYXllckltZy84LmpwZycsCgkJCQlkZXNjOiBpdFsyXSwKCQkJCXVybDogaXRbMF0sCgkJCX0pOwoJCX0pOwoJCXNldFJlc3VsdChkKTsKCWAsCgnkuIDnuqc6IGBqczoKCQl2YXIgZCA9IFtdOwoJCWZ1bmN0aW9uIHN0cmlwSHRtbFRhZyhzcmMpIHsKCQkJcmV0dXJuIHNyYy5yZXBsYWNlKC88XFwvP1tePl0rKD58JCkvZywgJycpLnJlcGxhY2UoLyYuezEsNX07L2csICcnKS5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7CgkJfQoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJbGV0IHBsYXlLZXlzID0gT2JqZWN0LnZhbHVlcyhsaXN0KS5maWx0ZXIoZnVuY3Rpb24oeCkgewoJCQlpZiAoTVlfQ0FURSA9PT0gJ+mAo+i8ieS4rScpIHJldHVybiB4WzJdLmluY2x1ZGVzKE1ZX0NBVEUpOwoJCQllbHNlIGlmIChNWV9DQVRFID09PSAnMjAxNycpIHJldHVybiB4WzNdIDw9IE1ZX0NBVEU7CgkJCWVsc2UgcmV0dXJuIHhbM10gPT0gTVlfQ0FURTsKCQl9KTsKCQlwbGF5S2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGl0KSB7CgkJCWQucHVzaCh7CgkJCQl0aXRsZTogc3RyaXBIdG1sVGFnKGl0WzFdKSwKCQkJCWltZzogJ2h0dHBzOi8vc3RhLmFuaWNkbi5jb20vcGxheWVySW1nLzguanBnJywKCQkJCWRlc2M6IGl0WzJdLAoJCQkJdXJsOiBpdFswXSwKCQkJfSk7CgkJfSk7CgkJc2V0UmVzdWx0KGQpOwoJYCwKCeS6jOe6pzogYGpzOgoJCXBkZmggPSBqc3AucGRmaDsgcGRmYSA9IGpzcC5wZGZhOyBwZCA9IGpzcC5wZDsKCQl2YXIgaHRtbCA9IHJlcXVlc3QoaW5wdXQpOwoJCXZhciB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQl2YXIganNvbiA9IHJlcXVlc3QoJ2h0dHBzOi8vZDF6cXV6amd3bzl5Yi5jbG91ZGZyb250Lm5ldC8/Xz0nICsgdGltZXN0YW1wKTsKCQl2YXIgbGlzdCA9IEpTT04ucGFyc2UoanNvbik7CgkJdmFyIHZpZCA9IGlucHV0LnNwbGl0KCc9JylbMV07CgkJbGV0IHBsYXlLZXlzID0gT2JqZWN0LnZhbHVlcyhsaXN0KS5maW5kKGZ1bmN0aW9uKHgpIHsKCQkJcmV0dXJuIHhbMF0gPT09IHBhcnNlSW50KHZpZCk7CgkJfSk7CgkJVk9EID0gewoJCQl2b2RfcGljOiAnaHR0cHM6Ly9zdGEuYW5pY2RuLmNvbS9wbGF5ZXJJbWcvOC5qcGcnLAoJCQl2b2RfaWQ6IHBsYXlLZXlzWzBdLAoJCQl2b2RfbmFtZTogcGxheUtleXNbMV0sCgkJCXZvZF9jb250ZW50OiBwbGF5S2V5c1syXSwKCQkJdm9kX3llYXI6IHBsYXlLZXlzWzNdLAoJCQl0eXBlX25hbWU6IHBsYXlLZXlzWzRdLAoJCQl2b2RfYWN0b3I6IHBsYXlLZXlzWzVdLAoJCX07CgkJdmFyIHBhZ2V1cmwgPSBwZChodG1sLCAnLmNhdC1saW5rcyYmYSYmaHJlZicpOwoJCXZhciBwYWdlbnVtID0gMTsKCQlsZXQgdm9kX3RhYl9saXN0ID0gW107CgkJbGV0IHZsaXN0ID0gW107CgkJZm9yIChsZXQgcCA9IDE7IHAgPCBwYXJzZUludChwYWdlbnVtKSArIDE7IHArKykgewoJCQlsZXQgcGh0bWwgPSByZXF1ZXN0KHBhZ2V1cmwgKyAnL3BhZ2UvJyArIHBhZ2VudW0pOwoJCQlsZXQgbmV3X3ZvZF9saXN0ID0gW107CgkJCWxldCB2b2RMaXN0ID0gW107CgkJCXZvZExpc3QgPSBwZGZhKHBodG1sLCAnLnNpdGUtbWFpbiYmYXJ0aWNsZScpOwoJCQlmb3IgKGxldCBpID0gMDsgaSALine truncated
|
||||
@@ -0,0 +1,567 @@
|
||||
var rule = {
|
||||
title: "路漫漫",
|
||||
host: "https://www.lmm50.com",
|
||||
url: "/vod/show/id/fyclassfyfilter.html",
|
||||
searchUrl: '/vod/search/page/fypage/wd/**.html',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
filter: {
|
||||
"3": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"4": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"5": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"6": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"7": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"8": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2026",
|
||||
"v": "/year/2026"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
filter_url: "{{fl.排序}}{{fl.年代}}/page/fypage",
|
||||
filter_def: "",
|
||||
headers: {
|
||||
"User-Agent": "MOBILE_UA"
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: "日本动漫&国产动漫&欧美动漫&日本动画电影&国产动画电影&欧美动画电影",
|
||||
class_url: "6&7&8&3&4&5",
|
||||
class_parse: "",
|
||||
cate_exclude: "",
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
function getDAesString(token) {
|
||||
eval(getCryptoJS());
|
||||
var key = CryptoJS.enc.Utf8.parse("ejjooopppqqqrwww");
|
||||
|
||||
var iv = CryptoJS.enc.Utf8.parse("1348987635684651");
|
||||
|
||||
var token = CryptoJS.AES.decrypt(token, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7,
|
||||
});
|
||||
|
||||
return token.toString(CryptoJS.enc.Utf8);
|
||||
}
|
||||
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
var from = html.from;
|
||||
if (html.encrypt == "1") {
|
||||
url = unescape(url);
|
||||
} else if (html.encrypt == "2") {
|
||||
url = unescape(base64Decode(url));
|
||||
}
|
||||
if (/\.mp4|\.m3u8|\.flv/.test(url)) {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: url.split("&")[0],
|
||||
js: ''
|
||||
};
|
||||
} else {
|
||||
var jsh = request(HOST + "/static/player/" + from + ".js", {
|
||||
headers: {
|
||||
Referer: input
|
||||
},
|
||||
}).match(/\.src\s*=\s*(.*?);/)[1];
|
||||
//log(MY_HOME);
|
||||
if (/type=/.test(jsh)) {
|
||||
jsh = jsh
|
||||
.replace(/[\+\s']/g, "")
|
||||
.replace(/MacPlayer.Parse/, "")
|
||||
.replace(/MacPlayer.PlayUrl/, url)
|
||||
.replace(/window.location.href/, input);
|
||||
var playht = fetch(jsh, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
}
|
||||
});
|
||||
} else {
|
||||
jsh = jsh
|
||||
.replace(/[\+\s']/g, "")
|
||||
.replace(/MacPlayer.Parse/, "")
|
||||
.replace(/MacPlayer.PlayUrl/, url)
|
||||
.replace(/window.location.href/, input);
|
||||
|
||||
jsh = JSON.parse(
|
||||
fetch(jsh, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
},
|
||||
onlyHeaders: true
|
||||
})
|
||||
).url;
|
||||
var playht = fetch(jsh, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var postapi = jsh.match(/^(.*?\/\/.*?\/.*?\/)/)[1];
|
||||
|
||||
var posturl = postapi + playht.match(/post\("(.*?)"/)[1];
|
||||
if (/act\s*=/.test(playht)) {
|
||||
var vid = playht.match(/vid\s*=\s*"(.*?)"/)[1];
|
||||
var t = playht.match(/var\s*t\s*=\s*"(.*?)"/)[1];
|
||||
var token = playht.match(/token\s*=\s*"(.*?)"/)[1];
|
||||
var act = playht.match(/act\s*=\s*"(.*?)"/)[1];
|
||||
var play = playht.match(/play\s*=\s*"(.*?)"/)[1];
|
||||
token = getDAesString(token);
|
||||
|
||||
var data = JSON.parse(
|
||||
post(posturl, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
},
|
||||
body: {
|
||||
vid: vid,
|
||||
t: t,
|
||||
token: token,
|
||||
act: act,
|
||||
play: play,
|
||||
},
|
||||
timeout: 5000
|
||||
})
|
||||
);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: data.url,
|
||||
js: ''
|
||||
};
|
||||
} else {
|
||||
var key = "";
|
||||
|
||||
playht.match(/var (\w+)="(.*?)";/g).forEach(function(list) {
|
||||
key += list.match(/"(.*?)"/)[1];
|
||||
});
|
||||
const bodys = JSON.parse(
|
||||
playht
|
||||
.match(/post\(.*?,(.*?),\n/)[1]
|
||||
.replace(/"keyyy"\s*:\s*''.*?''/, '"keyyy" : "' + key + '"')
|
||||
);
|
||||
var data = JSON.parse(
|
||||
post(posturl, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
},
|
||||
body: bodys
|
||||
})
|
||||
);
|
||||
if (data.ext == "xgplayer") {
|
||||
var dataurl =
|
||||
"https://yun.366day.site/mp4hls/xgplayer.php?vid=" + data.url;
|
||||
var video = fetch(dataurl, {
|
||||
headers: {
|
||||
Referer: jsh
|
||||
}
|
||||
}).match(
|
||||
/"url": "(.*?)"/
|
||||
)[1];
|
||||
input = {
|
||||
parse: 0,
|
||||
url: video,
|
||||
js: ''
|
||||
};
|
||||
} else if (data.ext == "hls" || data.ext == "hls_list") {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: decodeURIComponent(data.url),
|
||||
js: ''
|
||||
};
|
||||
} else {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: data.url,
|
||||
js: ''
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
double: false,
|
||||
推荐: "*",
|
||||
一级: ".video-img-box;h6.title&&Text;.lazyload&&data-src;.label&&Text;a&&href",
|
||||
二级: {
|
||||
title: ".page-title&&Text;.tag-link&&Text",
|
||||
img: ".module-item-pic&&.lazyload&&src",
|
||||
desc: ".video-info-items:eq(3)&&Text;.video-info-items:eq(2)&&Text;;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text",
|
||||
content: ".video-info-content&&Text",
|
||||
tabs: ".module-tab-item.tab-item",
|
||||
lists: ".module-player-list:eq(#id) a",
|
||||
tab_text: "body&&Text",
|
||||
list_text: "body&&Text",
|
||||
list_url: "a&&href"
|
||||
},
|
||||
detailUrl: "",
|
||||
搜索: "*"
|
||||
}
|
||||
+1142
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "有声小说",
|
||||
"type_id": "有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "玄幻有声小说",
|
||||
"type_id": "玄幻有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "奇幻有声小说",
|
||||
"type_id": "奇幻有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "都市有声小说",
|
||||
"type_id": "都市有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "言情有声小说",
|
||||
"type_id": "言情有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "武侠有声小说",
|
||||
"type_id": "武侠有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "仙侠有声小说",
|
||||
"type_id": "仙侠有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "科幻有声小说",
|
||||
"type_id": "科幻有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "重生有声小说",
|
||||
"type_id": "重生有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "穿越有声小说",
|
||||
"type_id": "穿越有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "恐怖惊悚有声小说",
|
||||
"type_id": "恐怖惊悚有声小说"
|
||||
},
|
||||
{
|
||||
"type_name": "网游竞技有声小说",
|
||||
"type_id": "网游竞技有声小说"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "春晚小品",
|
||||
"type_id": "春晚小品"
|
||||
},
|
||||
{
|
||||
"type_name": "赵本山",
|
||||
"type_id": "赵本山"
|
||||
},
|
||||
{
|
||||
"type_name": "陈佩斯",
|
||||
"type_id": "陈佩斯"
|
||||
},
|
||||
{
|
||||
"type_name": "冯巩",
|
||||
"type_id": "冯巩"
|
||||
},
|
||||
{
|
||||
"type_name": "宋小宝",
|
||||
"type_id": "宋小宝"
|
||||
},
|
||||
{
|
||||
"type_name": "赵丽蓉",
|
||||
"type_id": "赵丽蓉"
|
||||
},
|
||||
{
|
||||
"type_name": "郭达",
|
||||
"type_id": "郭达"
|
||||
},
|
||||
{
|
||||
"type_name": "潘长江",
|
||||
"type_id": "潘长江"
|
||||
},
|
||||
{
|
||||
"type_name": "郭冬临",
|
||||
"type_id": "郭冬临"
|
||||
},
|
||||
{
|
||||
"type_name": "严顺开",
|
||||
"type_id": "严顺开"
|
||||
},
|
||||
{
|
||||
"type_name": "文松",
|
||||
"type_id": "文松"
|
||||
},
|
||||
{
|
||||
"type_name": "开心麻花",
|
||||
"type_id": "开心麻花"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,200 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "潮剧",
|
||||
"type_id": "潮剧"
|
||||
},
|
||||
{
|
||||
"type_name": "粤剧",
|
||||
"type_id": "粤剧"
|
||||
},
|
||||
{
|
||||
"type_name": "京剧",
|
||||
"type_id": "京剧"
|
||||
},
|
||||
{
|
||||
"type_name": "越剧",
|
||||
"type_id": "越剧"
|
||||
},
|
||||
{
|
||||
"type_name": "芗剧",
|
||||
"type_id": "芗剧"
|
||||
},
|
||||
{
|
||||
"type_name": "蒲剧",
|
||||
"type_id": "蒲剧"
|
||||
},
|
||||
{
|
||||
"type_name": "闽剧",
|
||||
"type_id": "闽剧"
|
||||
},
|
||||
{
|
||||
"type_name": "喊麦",
|
||||
"type_id": "喊麦"
|
||||
},
|
||||
{
|
||||
"type_name": "陕北说书",
|
||||
"type_id": "陕北说书"
|
||||
},
|
||||
{
|
||||
"type_name": "庐剧",
|
||||
"type_id": "庐剧"
|
||||
},
|
||||
{
|
||||
"type_name": "吕剧",
|
||||
"type_id": "吕剧"
|
||||
},
|
||||
{
|
||||
"type_name": "眉户",
|
||||
"type_id": "眉户"
|
||||
},
|
||||
{
|
||||
"type_name": "歌仔戏",
|
||||
"type_id": "歌仔戏"
|
||||
},
|
||||
{
|
||||
"type_name": "黄梅戏",
|
||||
"type_id": "黄梅戏"
|
||||
},
|
||||
{
|
||||
"type_name": "黄梅戏",
|
||||
"type_id": "黄梅戏"
|
||||
},
|
||||
{
|
||||
"type_name": "评剧",
|
||||
"type_id": "评剧"
|
||||
},
|
||||
{
|
||||
"type_name": "豫剧",
|
||||
"type_id": "豫剧"
|
||||
},
|
||||
{
|
||||
"type_name": "沪剧",
|
||||
"type_id": "沪剧"
|
||||
},
|
||||
{
|
||||
"type_name": "昆曲",
|
||||
"type_id": "昆曲"
|
||||
},
|
||||
{
|
||||
"type_name": "花鼓戏",
|
||||
"type_id": "花鼓戏"
|
||||
},
|
||||
{
|
||||
"type_name": "超清潮剧",
|
||||
"type_id": "超清潮剧"
|
||||
},
|
||||
{
|
||||
"type_name": "百花潮剧院",
|
||||
"type_id": "百花潮剧院"
|
||||
},
|
||||
{
|
||||
"type_name": "香港潮剧",
|
||||
"type_id": "香港潮剧"
|
||||
},
|
||||
{
|
||||
"type_name": "潮剧院",
|
||||
"type_id": "潮剧院"
|
||||
},
|
||||
{
|
||||
"type_name": "潮剧团",
|
||||
"type_id": "潮剧团"
|
||||
},
|
||||
{
|
||||
"type_name": "潮剧全剧",
|
||||
"type_id": "潮剧全剧"
|
||||
},
|
||||
{
|
||||
"type_name": "潮剧选段",
|
||||
"type_id": "潮剧选段"
|
||||
},
|
||||
{
|
||||
"type_name": "名家潮剧",
|
||||
"type_id": "名家潮剧"
|
||||
},
|
||||
{
|
||||
"type_name": "潮汕小品",
|
||||
"type_id": "潮汕小品"
|
||||
},
|
||||
{
|
||||
"type_name": "潮汕讲古",
|
||||
"type_id": "潮汕讲古"
|
||||
},
|
||||
{
|
||||
"type_name": "河北梆子",
|
||||
"type_id": "河北梆子"
|
||||
},
|
||||
{
|
||||
"type_name": "梆子腔",
|
||||
"type_id": "梆子腔"
|
||||
},
|
||||
{
|
||||
"type_name": "晋剧",
|
||||
"type_id": "晋剧"
|
||||
},
|
||||
{
|
||||
"type_name": "龙江剧",
|
||||
"type_id": "龙江剧"
|
||||
},
|
||||
{
|
||||
"type_name": "越调",
|
||||
"type_id": "越调"
|
||||
},
|
||||
{
|
||||
"type_name": "河南曲剧",
|
||||
"type_id": "河南曲剧"
|
||||
},
|
||||
{
|
||||
"type_name": "山东梆子",
|
||||
"type_id": "山东梆子"
|
||||
},
|
||||
{
|
||||
"type_name": "淮剧",
|
||||
"type_id": "淮剧"
|
||||
},
|
||||
{
|
||||
"type_name": "滑稽戏",
|
||||
"type_id": "滑稽戏"
|
||||
},
|
||||
{
|
||||
"type_name": "婺剧",
|
||||
"type_id": "婺剧"
|
||||
},
|
||||
{
|
||||
"type_name": "绍剧",
|
||||
"type_id": "绍剧"
|
||||
},
|
||||
{
|
||||
"type_name": "徽剧",
|
||||
"type_id": "徽剧"
|
||||
},
|
||||
{
|
||||
"type_name": "雁剧",
|
||||
"type_id": "雁剧"
|
||||
},
|
||||
{
|
||||
"type_name": "上党梆子",
|
||||
"type_id": "上党梆子"
|
||||
},
|
||||
{
|
||||
"type_name": "秦腔",
|
||||
"type_id": "秦腔"
|
||||
},
|
||||
{
|
||||
"type_name": "武安平调",
|
||||
"type_id": "武安平调"
|
||||
},
|
||||
{
|
||||
"type_name": "二人台",
|
||||
"type_id": "二人台"
|
||||
},
|
||||
{
|
||||
"type_name": "吉剧",
|
||||
"type_id": "吉剧"
|
||||
},
|
||||
{
|
||||
"type_name": "高腔",
|
||||
"type_id": "高腔"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "单口相声",
|
||||
"type_id": "单口相声"
|
||||
},
|
||||
{
|
||||
"type_name": "群口相声",
|
||||
"type_id": "群口相声"
|
||||
},
|
||||
{
|
||||
"type_name": "德云社",
|
||||
"type_id": "德云社"
|
||||
},
|
||||
{
|
||||
"type_name": "青曲社",
|
||||
"type_id": "青曲社"
|
||||
},
|
||||
{
|
||||
"type_name": "郭德纲",
|
||||
"type_id": "郭德纲"
|
||||
},
|
||||
{
|
||||
"type_name": "岳云鹏",
|
||||
"type_id": "岳云鹏"
|
||||
},
|
||||
{
|
||||
"type_name": "曹云金",
|
||||
"type_id": "曹云金"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,702 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "演唱会筛选",
|
||||
"type_id": "演唱会超清"
|
||||
},
|
||||
{
|
||||
"type_name": "粤语",
|
||||
"type_id": "粤语歌曲超清"
|
||||
},
|
||||
{
|
||||
"type_name": "热榜",
|
||||
"type_id": "2022年热们歌曲超清"
|
||||
},
|
||||
{
|
||||
"type_name": "抖音神曲",
|
||||
"type_id": "抖音神曲超清"
|
||||
},
|
||||
{
|
||||
"type_name": "经典老歌",
|
||||
"type_id": "经典老歌超清"
|
||||
},
|
||||
{
|
||||
"type_name": "DJ",
|
||||
"type_id": "DJ歌曲超清"
|
||||
},
|
||||
{
|
||||
"type_name": "网红翻唱",
|
||||
"type_id": "网红翻唱歌曲超清"
|
||||
},
|
||||
{
|
||||
"type_name": "韩国女团",
|
||||
"type_id": "韩国女团演唱会超清"
|
||||
}
|
||||
],
|
||||
"filters": {
|
||||
"演唱会超清": [
|
||||
{
|
||||
"key": "order",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "综合排序",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "最多点击",
|
||||
"v": "click"
|
||||
},
|
||||
{
|
||||
"n": "最新发布",
|
||||
"v": "pubdate"
|
||||
},
|
||||
{
|
||||
"n": "最多弹幕",
|
||||
"v": "dm"
|
||||
},
|
||||
{
|
||||
"n": "最多收藏",
|
||||
"v": "stow"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "tid",
|
||||
"name": "分类",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "A阿杜",
|
||||
"v": "阿杜演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "A阿黛尔",
|
||||
"v": "阿黛尔演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "BBeyond",
|
||||
"v": "Beyond演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "BBy2",
|
||||
"v": "By2演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "BBIGBANG",
|
||||
"v": "BIGBANG演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "B布兰妮",
|
||||
"v": "布兰妮演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "B坂井泉水",
|
||||
"v": "坂井泉水演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C陈奕迅",
|
||||
"v": "陈奕迅演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C蔡依林",
|
||||
"v": "蔡依林演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C初音未来",
|
||||
"v": "初音未来演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C蔡健雅",
|
||||
"v": "蔡健雅演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C陈小春",
|
||||
"v": "陈小春演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C草蜢",
|
||||
"v": "草蜢演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C陈慧娴",
|
||||
"v": "陈慧娴演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C崔健",
|
||||
"v": "崔健演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "C仓木麻衣",
|
||||
"v": "仓木麻衣演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D戴荃",
|
||||
"v": "戴荃演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D动力火车",
|
||||
"v": "动力火车演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D邓丽君",
|
||||
"v": "邓丽君演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D丁当",
|
||||
"v": "丁当演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D刀郎",
|
||||
"v": "刀郎演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D邓紫棋",
|
||||
"v": "邓紫棋演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D戴佩妮",
|
||||
"v": "戴佩妮演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "D邓丽君",
|
||||
"v": "邓丽君演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F飞儿乐队",
|
||||
"v": "飞儿乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F费玉清",
|
||||
"v": "费玉清演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F费翔",
|
||||
"v": "费翔演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F方大同",
|
||||
"v": "方大同演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F房东的猫",
|
||||
"v": "房东的猫演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F凤飞飞",
|
||||
"v": "凤飞飞演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "F凤凰传奇",
|
||||
"v": "凤凰传奇演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "G郭采洁",
|
||||
"v": "郭采洁演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "G光良",
|
||||
"v": "光良演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "G郭静",
|
||||
"v": "郭静演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "G郭富城",
|
||||
"v": "郭富城演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H胡彦斌",
|
||||
"v": "胡彦斌演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H胡夏",
|
||||
"v": "胡夏演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H韩红",
|
||||
"v": "韩红演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H黄品源",
|
||||
"v": "黄品源演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H黄小琥",
|
||||
"v": "黄小琥演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H花儿乐队",
|
||||
"v": "花儿乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H黄家强",
|
||||
"v": "黄家强演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "H后街男孩",
|
||||
"v": "后街男孩演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J经典老歌",
|
||||
"v": "经典老歌演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J贾斯丁比伯",
|
||||
"v": "贾斯丁比伯演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J金池",
|
||||
"v": "金池演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J金志文",
|
||||
"v": "金志文演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "J焦迈奇",
|
||||
"v": "焦迈奇演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "K筷子兄弟",
|
||||
"v": "筷子兄弟演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李玟",
|
||||
"v": "李玟演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林忆莲",
|
||||
"v": "林忆莲演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李克勤",
|
||||
"v": "李克勤演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L刘宪华",
|
||||
"v": "刘宪华演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李圣杰",
|
||||
"v": "李圣杰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林宥嘉",
|
||||
"v": "林宥嘉演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L梁静茹",
|
||||
"v": "梁静茹演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李健",
|
||||
"v": "李健演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林俊杰",
|
||||
"v": "林俊杰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李玉刚",
|
||||
"v": "李玉刚演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林志炫",
|
||||
"v": "林志炫演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李荣浩",
|
||||
"v": "李荣浩演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李宇春",
|
||||
"v": "李宇春演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L洛天依",
|
||||
"v": "洛天依演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林子祥",
|
||||
"v": "林子祥演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L李宗盛",
|
||||
"v": "李宗盛演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L黎明",
|
||||
"v": "黎明演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L刘德华",
|
||||
"v": "刘德华演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L罗大佑",
|
||||
"v": "罗大佑演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L林肯公园",
|
||||
"v": "林肯公园演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "LLadyGaga",
|
||||
"v": "LadyGaga演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "L旅行团乐队",
|
||||
"v": "旅行团乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "M莫文蔚",
|
||||
"v": "莫文蔚演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "M毛不易",
|
||||
"v": "毛不易演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "M梅艳芳",
|
||||
"v": "梅艳芳演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "M迈克尔杰克逊",
|
||||
"v": "迈克尔杰克逊演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "N南拳妈妈",
|
||||
"v": "南拳妈妈演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "P朴树",
|
||||
"v": "朴树演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Q齐秦",
|
||||
"v": "齐秦演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Q青鸟飞鱼",
|
||||
"v": "青鸟飞鱼演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "R容祖儿",
|
||||
"v": "容祖儿演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "R任贤齐",
|
||||
"v": "任贤齐演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "S水木年华",
|
||||
"v": "水木年华演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "S孙燕姿",
|
||||
"v": "孙燕姿演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "S苏打绿",
|
||||
"v": "苏打绿演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "SSHE",
|
||||
"v": "SHE演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "S孙楠",
|
||||
"v": "孙楠演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T陶喆",
|
||||
"v": "陶喆演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T谭咏麟",
|
||||
"v": "谭咏麟演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T田馥甄",
|
||||
"v": "田馥甄演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T谭维维",
|
||||
"v": "谭维维演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T逃跑计划",
|
||||
"v": "逃跑计划演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T田震",
|
||||
"v": "田震演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T谭晶",
|
||||
"v": "谭晶演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T屠洪刚",
|
||||
"v": "屠洪刚演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "T泰勒·斯威夫特",
|
||||
"v": "泰勒·斯威夫特演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王力宏",
|
||||
"v": "王力宏演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王杰",
|
||||
"v": "王杰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W吴克群",
|
||||
"v": "吴克群演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王心凌",
|
||||
"v": "王心凌演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王靖雯",
|
||||
"v": "好声音王靖雯演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W汪峰",
|
||||
"v": "汪峰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W伍佰",
|
||||
"v": "伍佰演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W王菲",
|
||||
"v": "王菲演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W五月天",
|
||||
"v": "五月天演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "W汪苏泷",
|
||||
"v": "汪苏泷演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X徐佳莹",
|
||||
"v": "徐佳莹演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X弦子",
|
||||
"v": "弦子演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X萧亚轩",
|
||||
"v": "萧亚轩演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X许巍",
|
||||
"v": "许巍演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X薛之谦",
|
||||
"v": "薛之谦演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X许嵩",
|
||||
"v": "许嵩演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X小虎队",
|
||||
"v": "小虎队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X萧敬腾",
|
||||
"v": "萧敬腾演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X谢霆锋",
|
||||
"v": "谢霆锋演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X徐小凤",
|
||||
"v": "徐小凤演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "X信乐队",
|
||||
"v": "信乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y夜愿乐队",
|
||||
"v": "夜愿乐队演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y羽泉",
|
||||
"v": "羽泉演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y郁可唯",
|
||||
"v": "郁可唯演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y叶倩文",
|
||||
"v": "叶倩文演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y杨坤",
|
||||
"v": "杨坤演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y庾澄庆",
|
||||
"v": "庾澄庆演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y尤长靖",
|
||||
"v": "尤长靖演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y易烊千玺",
|
||||
"v": "易烊千玺演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y袁娅维",
|
||||
"v": "袁娅维演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y杨丞琳",
|
||||
"v": "杨丞琳演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y杨千嬅",
|
||||
"v": "杨千嬅演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Y杨宗纬",
|
||||
"v": "杨宗纬演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z郑秀文",
|
||||
"v": "郑秀文演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周杰伦",
|
||||
"v": "周杰伦演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张学友",
|
||||
"v": "张学友演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张信哲",
|
||||
"v": "张信哲演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张宇",
|
||||
"v": "张宇演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周华健",
|
||||
"v": "周华健演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张韶涵",
|
||||
"v": "张韶涵演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周深",
|
||||
"v": "周深演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z纵贯线",
|
||||
"v": "纵贯线演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z赵雷",
|
||||
"v": "赵雷演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周传雄",
|
||||
"v": "周传雄演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张国荣",
|
||||
"v": "张国荣演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周慧敏",
|
||||
"v": "周慧敏演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张惠妹",
|
||||
"v": "张惠妹演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z周笔畅",
|
||||
"v": "周笔畅演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z郑中基",
|
||||
"v": "郑中基演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张艺兴",
|
||||
"v": "张艺兴演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张震岳",
|
||||
"v": "张震岳演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z张雨生",
|
||||
"v": "张雨生演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z郑智化",
|
||||
"v": "郑智化演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z卓依婷",
|
||||
"v": "卓依婷演唱会超清"
|
||||
},
|
||||
{
|
||||
"n": "Z中岛美雪",
|
||||
"v": "中岛美雪演唱会超清"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"主页url": "https://dora.xiaoxinbk.com/",
|
||||
"数组": "class=\"card-img-bili\"&&</a>",
|
||||
"标题": "alt=\"&&\"",
|
||||
"图片": "data-url=\"&&\"",
|
||||
"链接": "href=\"&&\"",
|
||||
"线路标题": "mt-0\">&&</h3>",
|
||||
"播放数组": "class=\"card-body button-list\"&&</div>",
|
||||
"播放列表": "<a&&a>",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"播放标题": ">&&</",
|
||||
"分类url": "https://www.dora-video.cn/search/sy/?niandai={year}&cat={class}&tag={cateId}&gaojijiansuo=1&zhuangtai={by}",
|
||||
"分类": "全部$0#动画$20#剧场版$21#MV$22#预告片$23#直播$27#同人$25#民间$26#目录$28#中篇$30",
|
||||
"剧情": "哆啦A梦新番$1#新哆啦A梦 台湾配音$2#哆啦A梦剧场版$3#最新预告片$6#剧场版集合$7#哆啦A梦MV$4#哆啦A梦七小子集合$11#生日特别篇$19#哆啦A梦生日特别篇$12#哆啦美生日特别篇$14#大雄生日特别篇$13#静香生日特别篇$15#胖虎生日特别篇$16#小夫生日特别篇$17#24小时直播$24#哆啦A梦中篇附映$29#哆啦A梦大山版 - 哆啦a梦1979版国语旧版 - 旧版$31#哆啦A梦大山修复&补档区$32#藤子·F·不二雄【其它动画】$33",
|
||||
"排序": "全部$0#完结$2#连载$1#待定$-1"
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
//写法思路来海阔视界,xpath筛选。本人是海阔用户,所以搬了海阔的jsoup写法过来。2022年9月17日
|
||||
//jsoup规则写法请查阅海阔视界或者海阔影视相关教程。不支持js写法
|
||||
//本文档为完整模板,请不要去无中生有添加多余的键值参数。
|
||||
{
|
||||
//规则名
|
||||
"title": "电影港",
|
||||
//作者
|
||||
"author": "香雅情",
|
||||
//请求头UA,键名$键值,每一组用#分开,不填则默认okhttp/3.12.11,可填MOBILE_UA或PC_UA使用内置的手机版或电脑版UA
|
||||
//多个请求头参数写法示例,"User-Agent$PC_UA#Referer$http://ww.baidu.com#Cookie$ser=ok",每一组用#分开。
|
||||
//习惯查看手机源码写建议用手机版UA,习惯查看PC版源码写建议用电脑版UA
|
||||
"Headers":"PC_UA",
|
||||
//网页编码格式默认UTF-8编码,UTF-8,GBK,GB2312
|
||||
"Coding_format":"gb2312",
|
||||
//图片是否需要代理
|
||||
"PicNeedProxy":"0",
|
||||
//是否开启获取首页数据,0关闭,1开启
|
||||
"homeContent":"0",
|
||||
//分类链接起始页码,禁止负数和含小数点。
|
||||
"firstpage": "1",
|
||||
//分类链接,{cateId}是分类,{catePg}是页码,第一页没有页码的可以这样写 第二页链接[firstPage=第一页的链接]
|
||||
"class_url": "https://www.dygang.tv/{cateId}/index_{catePg}.htm[firstPage=https://www.dygang.cc/{cateId}/index.htm]",
|
||||
//分类名,分类1&分类2&分类3
|
||||
"class_name": "最新电影&经典高清&国配电影&经典港片&国剧&日韩剧&美剧&综艺&动漫&纪录片&高清原盘&4K高清区&3D电影&电影专题",
|
||||
//分类名替换词,替换词1&替换词2&替换词3,替换词包含英文&的用两个中文&&代替,示例:&&id=0&&&id=1
|
||||
"class_value": "ys&bd&gy&gp&dsj&dsj1&yx&zy&dmq&jilupian&1080p&4K&3d&dyzt",
|
||||
//筛选数据,json格式,参考xpath的筛选写法
|
||||
"filterdata":{},
|
||||
|
||||
//分类页面截取数据模式,0为json,其它数字为普通网页。
|
||||
"cat_mode": "1",
|
||||
//分类列表数组定位,最多支持3层,能力有限,不是所有页面都能支持
|
||||
"cat_arr_rule": "body&&table[width=388]",
|
||||
//分类片单信息jsoup与xb截取写法切换,只作用于html网页,1为jsoup写法(默认),0为xb写法
|
||||
"cat_is_jsoup":"1",
|
||||
//分类片单标题
|
||||
"cat_title": "img&&alt",
|
||||
//分类片单链接
|
||||
"cat_url": "a&&href",
|
||||
//分类片单图片,支持自定义图片链接
|
||||
"cat_pic": "img&&src",
|
||||
//分类片单副标题
|
||||
"cat_subtitle":"[align=center]&&Text",
|
||||
//分类片单链接补前缀
|
||||
"cat_prefix": "https://www.dygang.tv",
|
||||
//分类片单链接补后缀
|
||||
"cat_suffix": "",
|
||||
|
||||
//搜索请求头参数,不填则默认okhttp/3.12.11,可填MOBILE_UA或PC_UA使用内置的手机版或电脑版UA
|
||||
//多个请求头参数写法示例,键名$键值,每一组用#分开。"User-Agent$PC_UA#Referer$http://ww.baidu.com#Cookie$ser=ok"。
|
||||
"SHeaders":"User-Agent$PC_UA#Content-Type$charset=gb2312",
|
||||
//搜索链接,搜索关键字用{wd}表示,post请求的最后面加;post
|
||||
//POST链接示例 http://www.lezhutv.com/index.php?m=vod-search;post
|
||||
"search_url": "https://www.dygang.tv/e/search/index123.php;post",
|
||||
//POST搜索body,填写搜索关键字的键值,一般常见的是searchword和wd,不是POST搜索的可留空或删除。
|
||||
"sea_PtBody":"keyboard={wd}&submit=搜+索&show=title,smalltext&tempid=1&tbname=article",
|
||||
|
||||
//搜索截取模式,0为json搜索,只支持列表在list数组里的,其它数字为网页截取。
|
||||
"search_mode": "1",
|
||||
//搜索列表数组定位,不填默认内置list,最多支持3层,能力有限,不是所有页面都能支持。
|
||||
"sea_arr_rule": "body&&table[width=388]",
|
||||
//搜索片单信息jsoup与xb截取写法切换,只作用于html网页,1为jsoup写法(默认),0为xb写法
|
||||
"sea_is_jsoup":"1",
|
||||
//搜索片单图片,支持自定义图片链接
|
||||
"sea_pic": "img&&src",
|
||||
//搜索片单标题
|
||||
"sea_title": "img&&alt",
|
||||
//搜索片单链接
|
||||
"sea_url": "a&&href",
|
||||
//搜索片单副标题
|
||||
"sea_subtitle":"",
|
||||
//搜索片单链接补前缀
|
||||
"search_prefix": "https://www.dygang.tv",
|
||||
//搜索片单链接补后缀,这个一般json搜索的需要
|
||||
"search_suffix": "",
|
||||
|
||||
//片单链接是否直接播放,0否,1分类片单链接直接播放,2详情选集链接直接播放。
|
||||
//设置成直接播放后,后面3个参数请注意该留空的请务必留空。
|
||||
"force_play": "0",
|
||||
//直接播放链接补前缀
|
||||
"play_prefix": "",
|
||||
//直接播放链接补后缀,设置为#isVideo=true#可强制识别为视频链接
|
||||
"play_suffix": "",
|
||||
//直接播放链接设置请求头,只对直链视频有效,每一组用#分开
|
||||
"play_header": "",
|
||||
|
||||
//项目信息jsoup与xb截取写法切换,1为jsoup写法(默认),0为xb写法
|
||||
"proj_is_jsoup":"0",
|
||||
//类型数据,截取前缀&&截取后缀
|
||||
"proj_cate": "",
|
||||
//年代数据,截取前缀&&截取后缀
|
||||
"proj_year": "",
|
||||
//地区数据,截取前缀&&截取后缀
|
||||
"proj_area": "",
|
||||
//演员数据,截取前缀&&截取后缀
|
||||
"proj_actor": "演 员&&</",
|
||||
//简介内容,截取前缀&&截取后缀
|
||||
"proj_plot": "简 介&&</",
|
||||
|
||||
//线路截取区域,如果不需要请把tab_title或tab_arr_rule置空或者全部不要填。
|
||||
//线路截取数组
|
||||
"tab_arr_rule": "#dede_content",
|
||||
//线路标题,截取前缀&&截取后缀
|
||||
"tab_title": "strong&&Text",
|
||||
|
||||
//列表数组截取,必须
|
||||
"list_arr_rule": "#dede_content",
|
||||
//集数数组截取,必须
|
||||
"epi_arr_rule": "table&&[href*=magnet]",
|
||||
//集数标题,截取前缀&&截取后缀
|
||||
"epi_title": "a&&Text",
|
||||
//集数链接,截取前缀&&截取后缀
|
||||
"epi_url": "a&&href",
|
||||
//选集是否反转显示
|
||||
"epi_reverse": "0",
|
||||
//集数链接补前缀
|
||||
"epiurl_prefix": "",
|
||||
//集数链接补后缀
|
||||
"epiurl_suffix": "",
|
||||
|
||||
//下面几个参数请勿乱用。否则可能会有副作用。
|
||||
//分析网页源码中有<script type="text/javascript">var player_aaaa={"flag":"play","encrypt这种源码的链接解析
|
||||
//如果网页源码里没有这种请设置为0
|
||||
"Anal_MacPlayer":"0",
|
||||
//是否开启手动嗅探,只对网页嗅探有效,0否,1是
|
||||
"ManualSniffer":"0",
|
||||
//手动嗅探视频链接关键字,每个用#隔开
|
||||
"VideoFormat":".mp4#.m3u8#.flv",
|
||||
//手动嗅探视频链接过滤关键词,每个用#隔开
|
||||
"VideoFilter":".html#=http"
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"规则名": "剧圈圈",
|
||||
"规则作者": "香雅情",
|
||||
"OCR_API":"https://api.nn.ci/ocr/b64/text",
|
||||
"请求头参数": "MOBILE_UA",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "否",
|
||||
"是否开启获取首页数据": "1",
|
||||
"首页推荐链接": "https://www.jqqzx.me",
|
||||
"首页列表数组规则": "body&&.module-main.tab-list.active",
|
||||
"首页片单列表数组规则": ".module-item",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "https://www.jqqzx.me/vodshow/id/{cateId}/page/{catePg}.html",
|
||||
"分类名称": "电影&电视剧&综艺&动漫&纪录片&爽剧",
|
||||
"分类名称替换词": "dianying&juji&zongyi&dongman&jilupian&shuangju",
|
||||
"筛选数据": {},
|
||||
//"筛选数据": "ext",
|
||||
//{cateId}
|
||||
"筛选子分类名称": "",
|
||||
"筛选子分类替换词": "",
|
||||
//{class}
|
||||
"筛选类型名称": "",
|
||||
"筛选类型替换词": "*",
|
||||
//{area}
|
||||
"筛选地区名称": "",
|
||||
"筛选地区替换词": "*",
|
||||
//{year}
|
||||
"筛选年份名称": "",
|
||||
"筛选年份替换词": "*",
|
||||
//{lang}
|
||||
"筛选语言名称": "",
|
||||
"筛选语言替换词": "*",
|
||||
//{by}
|
||||
"筛选排序名称": "时间&人气&评分",
|
||||
"筛选排序替换词": "time&hits&score",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": ".module-items&&.module-item",
|
||||
"分类片单是否Jsoup写法": "是",
|
||||
"分类片单标题": ".module-poster-item-title&&Text",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": ".lazyload&&data-original",
|
||||
"分类片单副标题": ".module-item-note&&Text",
|
||||
"分类片单链接加前缀": "https://www.jqqzx.me",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$MOBILE_UA",
|
||||
"搜索链接": "https://www.jqqzx.me/vodsearch{wd}/page/{SearchPg}.html",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": ".module-items&&.module-item",
|
||||
"搜索片单是否Jsoup写法": "是",
|
||||
"搜索片单图片": ".lazyload&&data-original",
|
||||
"搜索片单标题": ".module-card-item-title&&Text",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": ".module-item-note&&Text",
|
||||
"搜索片单链接加前缀": "https://www.jqqzx.me",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "否",
|
||||
"直接播放链接加前缀": "",
|
||||
"直接播放链接加后缀": "",
|
||||
"直接播放直链视频请求头": "",
|
||||
"详情是否Jsoup写法": "是",
|
||||
"类型详情": "",
|
||||
"年代详情": ".module-info-content&&.module-info-item,3&&Text",
|
||||
"地区详情": "",
|
||||
"演员详情": ".module-info-content&&.module-info-item,2&&Text",
|
||||
"简介详情": ".module-info-content&&.module-info-item&&Text",
|
||||
"线路列表数组规则": ".module-tab-items-box&&.module-tab-item",
|
||||
"线路标题": "Text",
|
||||
"播放列表数组规则": "body&&.module-play-list-content",
|
||||
"选集列表数组规则": "a",
|
||||
"选集标题链接是否Jsoup写法": "是",
|
||||
"选集标题": "a&&Text",
|
||||
"选集链接": "a&&href",
|
||||
"是否反转选集序列": "否",
|
||||
"选集链接加前缀": "https://www.jqqzx.me",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "否",
|
||||
"是否开启手动嗅探": "否",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"分类url": "https://v.aiwule.com/vodshow/{cateId}-{area}-{by}-{class}-{lang}-{letter}---{catePg}---{year}.html",
|
||||
"分类": "电影$20#电视剧$21#动漫$23#综艺$22#短剧$47",
|
||||
"简介": "简介:&&"
|
||||
}
|
||||
@@ -0,0 +1,454 @@
|
||||
{
|
||||
"class": [
|
||||
{
|
||||
"type_name": "儿童早教",
|
||||
"type_id": "儿童早教"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童启蒙故事",
|
||||
"type_id": "儿童启蒙故事"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童英语启蒙",
|
||||
"type_id": "儿童英语启蒙"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童歌曲",
|
||||
"type_id": "儿童歌曲"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童绘画",
|
||||
"type_id": "儿童绘画"
|
||||
},
|
||||
{
|
||||
"type_name": "睡前故事",
|
||||
"type_id": "睡前故事"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童动画",
|
||||
"type_id": "儿童动画"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童音乐",
|
||||
"type_id": "儿童音乐"
|
||||
},
|
||||
{
|
||||
"type_name": "儿童安全教育",
|
||||
"type_id": "儿童安全教育"
|
||||
},
|
||||
{
|
||||
"type_name": "贝瓦儿歌",
|
||||
"type_id": "贝瓦儿歌"
|
||||
},
|
||||
{
|
||||
"type_name": "悟空识字",
|
||||
"type_id": "悟空识字"
|
||||
},
|
||||
{
|
||||
"type_name": "宝宝巴士",
|
||||
"type_id": "宝宝巴士"
|
||||
},
|
||||
{
|
||||
"type_name": "儿歌多多",
|
||||
"type_id": "儿歌多多"
|
||||
},
|
||||
{
|
||||
"type_name": "学而思",
|
||||
"type_id": "学而思"
|
||||
}
|
||||
],
|
||||
"filters": {
|
||||
"儿童早教": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童启蒙故事": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童英语启蒙": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童歌曲": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童绘画": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"睡前故事": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童动画": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童音乐": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿童安全教育": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"贝瓦儿歌": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"悟空识字": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"宝宝巴士": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"儿歌多多": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"学而思": [
|
||||
{
|
||||
"key": "duration",
|
||||
"name": "时长",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "60分钟以上",
|
||||
"v": "4"
|
||||
},
|
||||
{
|
||||
"n": "30~60分钟",
|
||||
"v": "3"
|
||||
},
|
||||
{
|
||||
"n": "10~30分钟",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "10分钟以下",
|
||||
"v": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"线路数组": "<a data-toggle=\"tab\"&&/a>",
|
||||
"线路标题": ">&&<",
|
||||
"分类url": "http://dyxz.tv/list/{cateId}_{catePg}.html",
|
||||
"分类": "电影$1#电视剧$2#动漫$3#综艺$4"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"分类": "电影$1#电视剧$2#综艺$3#动漫$4",
|
||||
"类型": "动作片$6#喜剧片$7#爱情片$8#科幻片$9#奇幻片$10#恐怖片$11#剧情片$12#战争片$20#动画片$26#悬疑片$22#冒险片$23#犯罪片$24#惊悚片$45#歌舞片$46#灾难片$47#网络片$48||国产剧$13#港台剧$14#日剧$15#韩剧$33#欧美剧$16#泰剧$34#新马剧$35#其他剧$25||内地综艺$27#港台综艺$28#日本综艺$29#韩国综艺$36#欧美综艺$30#新马泰综艺$37#其他综艺$38||国产动漫$31#日本动漫$32#韩国动漫$39#港台动漫$40#新马泰动漫$41#欧美动漫$42#其他动漫$43",
|
||||
"分类url": "https://www.ylys.tv/vodshow/{cateId}-{area}-{by}-{class}-{lang}-{letter}---{catePg}---{year}.html"
|
||||
}
|
||||
@@ -0,0 +1,314 @@
|
||||
# coding=utf-8
|
||||
# !/usr/bin/python
|
||||
|
||||
"""
|
||||
|
||||
作者 丢丢喵 🚓 内容均从互联网收集而来 仅供交流学习使用 版权归原创者所有 如侵犯了您的权益 请通知作者 将及时删除侵权内容
|
||||
====================Diudiumiao====================
|
||||
|
||||
"""
|
||||
|
||||
from Crypto.Util.Padding import unpad
|
||||
from Crypto.Util.Padding import pad
|
||||
from urllib.parse import unquote
|
||||
from Crypto.Cipher import ARC4
|
||||
from urllib.parse import quote
|
||||
from base.spider import Spider
|
||||
from Crypto.Cipher import AES
|
||||
from datetime import datetime
|
||||
from bs4 import BeautifulSoup
|
||||
from base64 import b64decode
|
||||
import urllib.request
|
||||
import urllib.parse
|
||||
import datetime
|
||||
import binascii
|
||||
import requests
|
||||
import base64
|
||||
import json
|
||||
import time
|
||||
import sys
|
||||
import re
|
||||
import os
|
||||
|
||||
sys.path.append('..')
|
||||
|
||||
xurl = "https://search.bilibili.com"
|
||||
|
||||
xurl1 = "https://api.live.bilibili.com"
|
||||
|
||||
headerx = {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0'
|
||||
}
|
||||
|
||||
class Spider(Spider):
|
||||
global xurl
|
||||
global xurl1
|
||||
global headerx
|
||||
|
||||
def getName(self):
|
||||
return "首页"
|
||||
|
||||
def init(self, extend):
|
||||
pass
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
pass
|
||||
|
||||
def manualVideoCheck(self):
|
||||
pass
|
||||
|
||||
def extract_middle_text(self, text, start_str, end_str, pl, start_index1: str = '', end_index2: str = ''):
|
||||
if pl == 3:
|
||||
plx = []
|
||||
while True:
|
||||
start_index = text.find(start_str)
|
||||
if start_index == -1:
|
||||
break
|
||||
end_index = text.find(end_str, start_index + len(start_str))
|
||||
if end_index == -1:
|
||||
break
|
||||
middle_text = text[start_index + len(start_str):end_index]
|
||||
plx.append(middle_text)
|
||||
text = text.replace(start_str + middle_text + end_str, '')
|
||||
if len(plx) > 0:
|
||||
purl = ''
|
||||
for i in range(len(plx)):
|
||||
matches = re.findall(start_index1, plx[i])
|
||||
output = ""
|
||||
for match in matches:
|
||||
match3 = re.search(r'(?:^|[^0-9])(\d+)(?:[^0-9]|$)', match[1])
|
||||
if match3:
|
||||
number = match3.group(1)
|
||||
else:
|
||||
number = 0
|
||||
if 'http' not in match[0]:
|
||||
output += f"#{match[1]}${number}{xurl}{match[0]}"
|
||||
else:
|
||||
output += f"#{match[1]}${number}{match[0]}"
|
||||
output = output[1:]
|
||||
purl = purl + output + "$$$"
|
||||
purl = purl[:-3]
|
||||
return purl
|
||||
else:
|
||||
return ""
|
||||
else:
|
||||
start_index = text.find(start_str)
|
||||
if start_index == -1:
|
||||
return ""
|
||||
end_index = text.find(end_str, start_index + len(start_str))
|
||||
if end_index == -1:
|
||||
return ""
|
||||
|
||||
if pl == 0:
|
||||
middle_text = text[start_index + len(start_str):end_index]
|
||||
return middle_text.replace("\\", "")
|
||||
|
||||
if pl == 1:
|
||||
middle_text = text[start_index + len(start_str):end_index]
|
||||
matches = re.findall(start_index1, middle_text)
|
||||
if matches:
|
||||
jg = ' '.join(matches)
|
||||
return jg
|
||||
|
||||
if pl == 2:
|
||||
middle_text = text[start_index + len(start_str):end_index]
|
||||
matches = re.findall(start_index1, middle_text)
|
||||
if matches:
|
||||
new_list = [f'{item}' for item in matches]
|
||||
jg = '$$$'.join(new_list)
|
||||
return jg
|
||||
|
||||
def homeContent(self, filter):
|
||||
result = {}
|
||||
result = {"class": [{"type_id": "舞", "type_name": "舞蹈"},
|
||||
{"type_id": "音乐", "type_name": "音乐"},
|
||||
{"type_id": "手游", "type_name": "手游"},
|
||||
{"type_id": "网游", "type_name": "网游"},
|
||||
{"type_id": "单机游戏", "type_name": "单机游戏"},
|
||||
{"type_id": "虚拟主播", "type_name": "虚拟主播"},
|
||||
{"type_id": "电台", "type_name": "电台"},
|
||||
{"type_id": "体育", "type_name": "体育"},
|
||||
{"type_id": "聊天", "type_name": "聊天"},
|
||||
{"type_id": "娱乐", "type_name": "娱乐"},
|
||||
{"type_id": "电影", "type_name": "影视"},
|
||||
{"type_id": "新闻", "type_name": "新闻"}]
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
pass
|
||||
|
||||
def categoryContent(self, cid, pg, filter, ext):
|
||||
result = {}
|
||||
videos = []
|
||||
|
||||
if pg:
|
||||
page = int(pg)
|
||||
else:
|
||||
page = 1
|
||||
|
||||
url = f'{xurl}/live?keyword={cid}&page={str(page)}'
|
||||
detail = requests.get(url=url, headers=headerx)
|
||||
detail.encoding = "utf-8"
|
||||
res = detail.text
|
||||
doc = BeautifulSoup(res, "lxml")
|
||||
|
||||
soups = doc.find_all('div', class_="video-list-item")
|
||||
|
||||
for vod in soups:
|
||||
|
||||
names = vod.find('h3', class_="bili-live-card__info--tit")
|
||||
name = names.text.strip().replace('直播中', '')
|
||||
|
||||
id = names.find('a')['href']
|
||||
id = self.extract_middle_text(id, 'bilibili.com/', '?', 0)
|
||||
|
||||
pic = vod.find('img')['src']
|
||||
if 'http' not in pic:
|
||||
pic = "https:" + pic
|
||||
|
||||
remarks = vod.find('a', class_="bili-live-card__info--uname")
|
||||
remark = remarks.text.strip()
|
||||
|
||||
video = {
|
||||
"vod_id": id,
|
||||
"vod_name": name,
|
||||
"vod_pic": pic,
|
||||
"vod_remarks": remark
|
||||
}
|
||||
videos.append(video)
|
||||
|
||||
result = {'list': videos}
|
||||
result['page'] = pg
|
||||
result['pagecount'] = 9999
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
return result
|
||||
|
||||
def detailContent(self, ids):
|
||||
did = ids[0]
|
||||
result = {}
|
||||
videos = []
|
||||
xianlu = ''
|
||||
bofang = ''
|
||||
|
||||
url = f'{xurl1}/xlive/web-room/v2/index/getRoomPlayInfo?room_id={did}&platform=web&protocol=0,1&format=0,1,2&codec=0,1'
|
||||
detail = requests.get(url=url, headers=headerx)
|
||||
detail.encoding = "utf-8"
|
||||
data = detail.json()
|
||||
|
||||
content = '欢迎观看哔哩直播'
|
||||
|
||||
setup = data['data']['playurl_info']['playurl']['stream']
|
||||
|
||||
nam = 0
|
||||
|
||||
for vod in setup:
|
||||
|
||||
try:
|
||||
host = vod['format'][nam]['codec'][0]['url_info'][1]['host']
|
||||
except (KeyError, IndexError):
|
||||
continue
|
||||
|
||||
base = vod['format'][nam]['codec'][0]['base_url']
|
||||
|
||||
extra = vod['format'][nam]['codec'][0]['url_info'][1]['extra']
|
||||
|
||||
id = host + base + extra
|
||||
|
||||
nam = nam + 1
|
||||
|
||||
namc = f"{nam}号线路"
|
||||
|
||||
bofang = bofang + namc + '$' + id + '#'
|
||||
|
||||
bofang = bofang[:-1]
|
||||
|
||||
xianlu = '哔哩专线'
|
||||
|
||||
videos.append({
|
||||
"vod_id": did,
|
||||
"vod_content": content,
|
||||
"vod_play_from": xianlu,
|
||||
"vod_play_url": bofang
|
||||
})
|
||||
|
||||
result['list'] = videos
|
||||
return result
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
|
||||
result = {}
|
||||
result["parse"] = 0
|
||||
result["playUrl"] = ''
|
||||
result["url"] = id
|
||||
result["header"] = headerx
|
||||
return result
|
||||
|
||||
def searchContentPage(self, key, quick, pg):
|
||||
result = {}
|
||||
videos = []
|
||||
|
||||
if pg:
|
||||
page = int(pg)
|
||||
else:
|
||||
page = 1
|
||||
|
||||
url = f'{xurl}/live?keyword={key}&page={str(page)}'
|
||||
detail = requests.get(url=url, headers=headerx)
|
||||
detail.encoding = "utf-8"
|
||||
res = detail.text
|
||||
doc = BeautifulSoup(res, "lxml")
|
||||
|
||||
soups = doc.find_all('div', class_="video-list-item")
|
||||
|
||||
for vod in soups:
|
||||
|
||||
names = vod.find('h3', class_="bili-live-card__info--tit")
|
||||
name = names.text.strip().replace('直播中', '')
|
||||
|
||||
id = names.find('a')['href']
|
||||
id = self.extract_middle_text(id, 'bilibili.com/', '?', 0)
|
||||
|
||||
pic = vod.find('img')['src']
|
||||
if 'http' not in pic:
|
||||
pic = "https:" + pic
|
||||
|
||||
remarks = vod.find('a', class_="bili-live-card__info--uname")
|
||||
remark = remarks.text.strip()
|
||||
|
||||
video = {
|
||||
"vod_id": id,
|
||||
"vod_name": name,
|
||||
"vod_pic": pic,
|
||||
"vod_remarks": remark
|
||||
}
|
||||
videos.append(video)
|
||||
|
||||
result['list'] = videos
|
||||
result['page'] = pg
|
||||
result['pagecount'] = 9999
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
return result
|
||||
|
||||
def searchContent(self, key, quick, pg="1"):
|
||||
return self.searchContentPage(key, quick, '1')
|
||||
|
||||
def localProxy(self, params):
|
||||
if params['type'] == "m3u8":
|
||||
return self.proxyM3u8(params)
|
||||
elif params['type'] == "media":
|
||||
return self.proxyMedia(params)
|
||||
elif params['type'] == "ts":
|
||||
return self.proxyTs(params)
|
||||
return None
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+1260
File diff suppressed because it is too large.
Load diff
Binary file not shown.
Reference in new issue
Block a user