Compare commits

...

20 Commits

Author SHA1 Message Date
leevi 7b4630369d 同步 2025-07-19 11:40:34 +08:00
leevi 2356a4f884 同步 2025-07-19 10:31:34 +08:00
leevi c4bf23d3c3 修复go状态 2025-07-18 17:48:31 +08:00
leevi 27ff7b7629 同步 2025-07-18 10:43:46 +08:00
leevi f8c311ccf8 同步 2025-07-18 10:38:00 +08:00
leevi f5e471fc13 同步 2025-07-18 10:01:42 +08:00
leevi 1254ed1d82 同步 2025-07-17 23:45:44 +08:00
leevi 44dcf84cf7 同步 2025-07-17 23:12:34 +08:00
leevi 4815d37a1b 同步 2025-07-17 11:36:47 +08:00
leevi d22c6b3bca 同步 2025-07-17 00:04:55 +08:00
leevi 2dcb88a6c0 同步 2025-07-16 21:08:49 +08:00
leevi c340c30518 同步 2025-07-16 20:53:04 +08:00
leevi ff59ec4734 同步 2025-07-16 20:47:34 +08:00
leevi 7ca558fb97 同步 2025-07-16 16:39:10 +08:00
leevi 79332c2689 同步 2025-07-16 16:31:07 +08:00
leevi b97fab6e86 同步 2025-07-16 15:45:50 +08:00
leevi 05fa2f0478 同步 2025-07-12 20:58:37 +08:00
leevi cec0f60113 同步 2025-07-09 13:12:25 +08:00
leevi ddd2e29a84 同步 2025-07-07 17:49:23 +08:00
leevi b27d38d329 同步 2025-07-07 13:51:25 +08:00
28 changed files with 22300 additions and 1427 deletions

148
JS/荐片.js Normal file
View File

@ -0,0 +1,148 @@
var rule = {
title: '荐片[优]',
host: 'https://api.ubj83.com',
homeUrl: '/api/dyTag/hand_data?category_id=88',
url: '/api/crumb/list?page=fypage&type=0&limit=24&fyfilter',
class_name: '电影&电视剧&动漫&短剧&综艺',
class_url: '1&2&3&67&4',
detailUrl: '/api/video/detailv2?id=fyid',
searchUrl: '/api/v2/search/videoV2?key=**&page=fypage',
searchable: 2,
quickSearch: 0,
filterable: 1,
filter: {
"1":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"1"},{"n":"首推","v":"5"},{"n":"动作","v":"6"},{"n":"喜剧","v":"7"},{"n":"战争","v":"8"},{"n":"恐怖","v":"9"},{"n":"剧情","v":"10"},{"n":"爱情","v":"11"},{"n":"科幻","v":"12"},{"n":"动画","v":"13"}]},{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2025","v":"107"},{"n":"2024","v":"119"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}],
"2":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"2"},{"n":"首推","v":"14"},{"n":"国产","v":"15"},{"n":"港台","v":"16"},{"n":"日韩","v":"17"},{"n":"海外","v":"18"}]},{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2025","v":"107"},{"n":"2024","v":"119"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}],
"3":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"3"},{"n":"首推","v":"19"},{"n":"海外","v":"20"},{"n":"日本","v":"21"},{"n":"国产","v":"22"}]},{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2025","v":"107"},{"n":"2024","v":"119"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}],
"4":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"4"},{"n":"首推","v":"23"},{"n":"国产","v":"24"},{"n":"海外","v":"25"},{"n":"港台","v":"26"}]},{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2025","v":"107"},{"n":"2024","v":"119"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}],
"67":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"67"},{"n":"言情","v":"70"},{"n":"爱情","v":"71"},{"n":"战神","v":"72"},{"n":"古代","v":"73"},{"n":"萌娃","v":"74"},{"n":"神医","v":"75"},{"n":"玄幻","v":"76"},{"n":"重生","v":"77"},{"n":"激情","v":"79"},{"n":"时尚","v":"82"},{"n":"剧情演绎","v":"83"},{"n":"影视","v":"84"},{"n":"人文社科","v":"85"},{"n":"二次元","v":"86"},{"n":"明星八卦","v":"87"},{"n":"随拍","v":"88"},{"n":"个人管理","v":"89"},{"n":"音乐","v":"90"},{"n":"汽车","v":"91"},{"n":"休闲","v":"92"},{"n":"校园教育","v":"93"},{"n":"游戏","v":"94"},{"n":"科普","v":"95"},{"n":"科技","v":"96"},{"n":"时政社会","v":"97"},{"n":"萌宠","v":"98"},{"n":"体育","v":"99"},{"n":"穿越","v":"80"},{"n":"","v":"81"},{"n":"闪婚","v":"112"}]},{"key":"sort","name":"排序","value":[{"n":"全部","v":""},{"n":"最新","v":"update"},{"n":"最热","v":"hot"}]}]
},
filter_url: 'area={{fl.area or "0"}}&sort={{fl.sort or "update"}}&year={{fl.year or "0"}}&category_id={{fl.cateId}}',
filter_def: {1: {cateId: '1'},2: {cateId: '2'},3: {cateId: '3'},4: {cateId: '4'},67: {cateId: '67'}},
headers: {
'User-Agent': 'jianpian-android/350',
'JPAUTH': 'y261ow7kF2dtzlxh1GS9EB8nbTxNmaK/QQIAjctlKiEv'
},
timeout: 5000,
limit: 8,
play_parse: true,
play_json: [{
re: '*',
json: {
parse: 0,
jx: 0
}
}],
lazy: '',
推荐: $js.toString(() => {
const data = JSON.parse(request(input)).data["20"];
const d = data.map(item => ({
title: item.title,
img: 'https://img1.vbwus.com' + item.path,
desc: (item.mask || item.playlist?.title) + ' ⭐' + item.score,
url: item.id
}));
setResult(d);
}),
一级: $js.toString(() => {
const tid = String(cateObj.tid);
let apiUrl = input;
if (tid === '67') {
apiUrl = apiUrl.replace('/api/crumb/list', '/api/crumb/shortList');
}
if (tid.endsWith('_clicklink')) {
const realTid = tid.split('_')[0];
apiUrl = `${HOST}/api/video/search?key=${realTid}&page=${MY_PAGE}`;
}
const data = JSON.parse(request(apiUrl)).data;
const d = data.map(item => {
const isShort = tid === '67';
const imgUrl = 'https://img1.vbwus.com' +
(isShort ? (item.cover_image || item.path) : (item.thumbnail || item.path));
return {
title: item.title,
img: imgUrl,
desc: (item.mask || item.playlist?.title) + ' ⭐' + item.score,
url: `${item.id}@${tid}`
};
});
setResult(d);
}),
二级: $js.toString(() => {
try {
const [id, tid] = input.split('=')[1].split('@');
const isShort = tid === '67';
const apiConfig = {
path: isShort ? '/api/detail' : '/api/video/detailv2',
param: isShort ? 'vid' : 'id'
};
const apiUrl = `${HOST}${apiConfig.path}?${apiConfig.param}=${id}`;
const response = request(apiUrl, {headers: rule.headers});
const itemData = JSON.parse(response).data;
const vodInfo = {
vod_id: id,
vod_name: itemData.title,
vod_pic: 'https://img1.vbwus.com' + (
isShort
? (itemData.cover_image || itemData.path || '')
: (itemData.thumbnail || itemData.path || '')
),
type_name: itemData.types?.map(t => t.name).join('/') || '',
vod_year: itemData.year || '',
vod_area: itemData.area || '',
vod_remarks: itemData.update_cycle || '',
vod_actor: itemData.actors?.map(a => a.name).join('/') || '',
vod_director: itemData.directors?.map(d => d.name).join('/') || '',
vod_content: itemData.description || ''
};
let playSources = [];
function renamePlaySource(name) {
return name === "常规线路" ? "边下边播线路" : name;
}
if (isShort) {
const playlist = itemData.playlist || [];
if (playlist.length > 0) {
let sourceName = playlist[0]?.source_config_name || "短剧";
sourceName = renamePlaySource(sourceName);
const episodes = playlist.map(ep => `${ep.title}$${ep.url}`);
playSources.push({
name: sourceName,
urls: episodes.join('#')
});
}
} else {
const sources = itemData.source_list_source || [];
sources.forEach(source => {
let sourceName = renamePlaySource(source.name);
const episodes = source.source_list?.map(ep =>
`${ep.source_name || ep.weight}$${ep.url}`
) || [];
if (episodes.length > 0) {
playSources.push({
name: sourceName,
urls: episodes.join('#')
});
}
});
}
if (playSources.length > 0) {
vodInfo.vod_play_from = playSources.map(s => s.name).join('$$$');
vodInfo.vod_play_url = playSources.map(s => s.urls).join('$$$');
}
VOD = vodInfo;
} catch (error) {
log(`二级详情解析失败: ${error.message}`);
log(`请求URL: ${input}`);
}
}),
搜索: $js.toString(() => {
const data = JSON.parse(request(input)).data;
const d = data.map(item => ({
title: item.title,
img: 'https://img1.vbwus.com' + item.thumbnail,
desc: item.mask + ' ⭐' + item.score,
url: item.id
}));
setResult(d);
}),
}

2941
config.bin

File diff suppressed because it is too large Load Diff

186
json/bili.json Normal file
View File

@ -0,0 +1,186 @@
{
"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": "動物世界"
}
],
"filters": {
"帕梅拉": [
{
"key": "order",
"name": "排序",
"value": [
{
"n": "綜合排序",
"v": "totalrank"
},
{
"n": "最多點擊",
"v": "click"
},
{
"n": "最新發布",
"v": "pubdate"
},
{
"n": "最多彈幕",
"v": "dm"
},
{
"n": "最多收藏",
"v": "stow"
}
]
},
{
"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": "tid",
"name": "分類",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "合集",
"v": "合集"
},
{
"n": "Pamela Reif",
"v": "Pamela Reif"
}
]
}
],
"太極拳": [
{
"key": "order",
"name": "排序",
"value": [
{
"n": "綜合排序",
"v": "totalrank"
},
{
"n": "最多點擊",
"v": "click"
},
{
"n": "最新發布",
"v": "pubdate"
},
{
"n": "最多彈幕",
"v": "dm"
},
{
"n": "最多收藏",
"v": "stow"
}
]
},
{
"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": "tid",
"name": "分類",
"value": [
{
"n": "全部",
"v": ""
},
{
"n": "合集",
"v": "合集"
},
{
"n": "五連鞭",
"v": "五連鞭"
}
]
}
]
}
}

5310
json/bilijihe.json Normal file

File diff suppressed because it is too large Load Diff

1204
json/czkt.json Normal file

File diff suppressed because it is too large Load Diff

1128
json/douban.json Normal file

File diff suppressed because it is too large Load Diff

15
json/dyxs.json Normal file
View File

@ -0,0 +1,15 @@
{
"站名": "电影先生",
"分类url": "https://dianyi.ng/pianku-{cateId}-{area}-------{catePg}---{year}.html",
"简介": "class=\"video-info-item video-info-content vod_content\">&&</span>",
"搜索url": "https://dianyi.ng/search--------------.html?wd={wd}",
"搜索数组": "<div class=\"module-item-pic\">&&</div>",
"图片": "src=\"&&\"",
"搜索标题": "title=\"&&\"",
"搜索副标题": ">&&</a>",
"线路数组": "data-dropdown-value=&&</div>",
"线路标题": "<span>&&</small>[替换:<span></small>共]+集",
"播放数组": "<div class=\"scroll-content\">&&</div>",
"播放标题": "<span>&&</span>",
"分类": "电影$dianying#电视剧$dianshiju#动漫$dongman#综艺$zongyi"
}

1580
json/gzkt.json Normal file

File diff suppressed because it is too large Load Diff

32
json/hhyy.json Normal file
View File

@ -0,0 +1,32 @@
{
"站名": "黑狐影院",
"主页url": "http://fagmn.com",
"数组": "class=\"stui-vodlist__box\"&&</a",
"图片": "data-original=\"&&\"",
"标题": "title=\"&&\"",
"链接": "href=\"&&\"",
"嗅探词": ".m3u8?#v3.huoshanvod.com#.m3u8#v3-dy-o.zjcdn#sf16-sg.larksuitecdn.com#v.kd1.qq.com#.mp4",
"过滤词": "/hls/#php",
"副标题": "<span class=\"pic-text text-right\">&&</span>",
"搜索url": "http://fagmn.com/search.php;post;searchword={wd}",
"搜索模式": "1",
"搜索数组": "<a class=\"v-thumb stui-vodlist__thumb&&</a>",
"搜索图片": "data-original=\"&&\"",
"搜索标题": "title=\"&&\"",
"搜索链接": "href=\"&&\"",
"搜索副标题": "<span class=\"pic-text text-right\">&&</span>",
"搜索后缀": "/view/",
"线路数组": "href=\"#down&&/a>[替换:奇异视频>>黑狐一线#优酷视频>>黑狐二线#搜狐视频>>黑狐三线#咪咕视频>>黑狐四线]",
"线路标题": "驸马影视",
"播放数组": "class=\"stui-content__playlist clearfix&&</ul>",
"状态": "地区:&&</p>",
"导演": "导演:&&</p>",
"主演": "主演:&&</p>",
"简介": "简介:&&</div>",
"播放列表": "<a&&/a>",
"播放标题": ">&&<",
"播放链接": "href=\"&&\"",
"免嗅": "0",
"分类": "电影$1#电视剧$2#动漫$3#综艺$4",
"分类url": "http://fagmn.com/list/{cateId}_{catePg}.html?order=time"
}

1146
json/mtv.json Normal file

File diff suppressed because it is too large Load Diff

25
json/sejy.json Normal file
View File

@ -0,0 +1,25 @@
{
"class": [
{
"type_name": "3-6岁益智动画",
"type_id": "3-6岁益智动画合集"
},
{
"type_name": "宝宝巴士",
"type_id": "宝宝巴士动画合集"
},
{
"type_name": "悟空识字",
"type_id": "识字认字动画合集"
},
{
"type_name": "少儿频道合集",
"type_id": "CCTV14少儿频道合集"
},
{
"type_name": "学而思",
"type_id": "学而思课程"
}
]
}

2870
json/song.json Normal file

File diff suppressed because it is too large Load Diff

36
json/wcys.json Normal file
View File

@ -0,0 +1,36 @@
{
"站名": "文才影视",
"分类": "国产剧&短剧&喜剧片&爱情片&恐怖片&战争片&科幻片&动作片&综艺&欧美剧&港台剧&日韩剧",
"分类值": "14&42&22&26&36&25&30&23&69&15&16&62",
"分类url": "https://api.zeqaht.com/api.php/provide/vod/?ac=list&ac=detail&t={cateId}&pg={catePg}",
"数组二次截取": "list\":[&&]",
"数组": "{&&}[不包含:]",
"图片": "vod_pic\":\"&&\"",
"标题": "vod_name\":\"&&\"",
"副标题": "+vod_remarks\":\"&&\"",
"链接": "https://api.zeqaht.com/api.php/provide/vod/?ac=list&ac=detail&ids=+vod_id\":&&,",
"搜索url": "https://api.zeqaht.com/api.php/provide/vod?ac=detail&wd={wd}",
"搜索模式": "1",
"搜索二次截取": "list\":[&&]",
"搜索数组": "{&&}[不包含:]",
"搜索图片": "vod_pic\"*\"&&\"",
"搜索标题": "vod_name\"*\"&&\"",
"搜索副标题": "type_name\":\"&&\"",
"搜索链接": "https://api.zeqaht.com/api.php/provide/vod/?ac=list&ac=detail&ids=+vod_id\":&&,",
"影片类型": "vod_class\"*\"&&\"",
"导演": "vod_director\"*\"&&\"",
"主演": "vod_actor\"*\"&&\"",
"简介": "vod_content\"*\"&&\"",
"线路二次截取": "\"list\":[&&]",
"线路数组": "\"vod_play_from\":&&,",
"线路标题": "\"&&\"",
"播放数组": "vod_play_url\":&&,[替换:\">>链表题#$>>题链#\\#>>链表表题]",
"播放二次截取": "",
"播放列表": "表&&表",
"播放标题": "题&&题",
"播放链接": "链&&链",
"嗅探词": ".m3u8",
"播放请求头": "User-Agent$Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36#Origin$www.whbax.cn#Referer$www.whbax.cn#Cookie$PHPSESSID=7da46a353cf8bac46b4f8226f06042ad",
"免嗅": "0",
"页面代理": "proxy"
}

640
json/xiqu.json Normal file
View File

@ -0,0 +1,640 @@
{
"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": "高腔超清"
}
],
"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": "tid",
"name": "分类",
"value": [
{
"n": "全部",
"v": "戏曲"
},
{
"n": "京剧",
"v": "京剧"
},
{
"n": "越剧",
"v": "越剧"
},
{
"n": "黄梅戏",
"v": "黄梅戏"
},
{
"n": "评剧",
"v": "评剧"
},
{
"n": "豫剧",
"v": "豫剧"
},
{
"n": "昆曲",
"v": "昆曲"
},
{
"n": "高腔",
"v": "高腔"
},
{
"n": "梆子腔",
"v": "梆子腔"
},
{
"n": "河北梆子",
"v": "河北梆子"
},
{
"n": "晋剧",
"v": "晋剧"
},
{
"n": "蒲剧",
"v": "蒲剧"
},
{
"n": "雁剧",
"v": "雁剧"
},
{
"n": "上党梆子",
"v": "上党梆子"
},
{
"n": "秦腔",
"v": "秦腔"
},
{
"n": "武安平调",
"v": "武安平调"
},
{
"n": "二人台",
"v": "二人台"
},
{
"n": "吉剧",
"v": "吉剧"
},
{
"n": "龙江剧",
"v": "龙江剧"
},
{
"n": "越调",
"v": "越调"
},
{
"n": "河南曲剧",
"v": "河南曲剧"
},
{
"n": "山东梆子",
"v": "山东梆子"
},
{
"n": "淮剧",
"v": "淮剧"
},
{
"n": "沪剧",
"v": "沪剧"
},
{
"n": "滑稽戏",
"v": "滑稽戏"
},
{
"n": "婺剧",
"v": "婺剧"
},
{
"n": "绍剧",
"v": "绍剧"
},
{
"n": "徽剧",
"v": "徽剧"
},
{
"n": "闽剧",
"v": "闽剧"
},
{
"n": "莆仙戏",
"v": "莆仙戏"
},
{
"n": "梨园戏",
"v": "梨园戏"
},
{
"n": "高甲戏",
"v": "高甲戏"
},
{
"n": "赣剧",
"v": "赣剧"
},
{
"n": "采茶戏",
"v": "采茶戏"
},
{
"n": "汉剧",
"v": "汉剧"
},
{
"n": "湘剧",
"v": "湘剧"
},
{
"n": "祁剧",
"v": "祁剧"
},
{
"n": "湖南花鼓戏",
"v": "湖南花鼓戏"
},
{
"n": "粤剧",
"v": "粤剧"
},
{
"n": "潮剧",
"v": "潮剧"
},
{
"n": "桂剧",
"v": "桂剧"
},
{
"n": "彩调",
"v": "彩调"
},
{
"n": "壮剧",
"v": "壮剧"
},
{
"n": "川剧",
"v": "川剧"
},
{
"n": "黔剧",
"v": "黔剧"
},
{
"n": "滇剧",
"v": "滇剧"
},
{
"n": "傣剧",
"v": "傣剧"
},
{
"n": "藏剧",
"v": "藏剧"
},
{
"n": "皮影戏",
"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"
}
]
}
]
}
}

1050
json/xxkt.json Normal file

File diff suppressed because it is too large Load Diff

60
json/yely.json Normal file
View File

@ -0,0 +1,60 @@
{
"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": "学而思"
}
]
}

View File

@ -1,11 +1,11 @@
{ {
"规则名": "农民影视", "规则名": "农民影视",
"规则作者": "香雅情", "规则作者": "香雅情",
"请求头参数": "User-Agent$手机#accept$text/html#Referer$https://vip.wwgz.cn:5200/", "请求头参数": "User-Agent$手机#accept$text/html#Referer$https://www.wwgz.cn",
"网页编码格式": "UTF-8", "网页编码格式": "UTF-8",
"图片是否需要代理": "0", "图片是否需要代理": "0",
"是否开启获取首页数据": "1", "是否开启获取首页数据": "1",
"首页推荐链接": "https://vip.wwgz.cn:5200/", "首页推荐链接": "https://www.wwgz.cn",
"首页列表数组规则": "body&&.globalPicList", "首页列表数组规则": "body&&.globalPicList",
"首页片单列表数组规则": "li:has(img)", "首页片单列表数组规则": "li:has(img)",
"首页片单是否Jsoup写法": "1", "首页片单是否Jsoup写法": "1",
@ -13,10 +13,10 @@
"首页片单链接": "a&&href", "首页片单链接": "a&&href",
"首页片单图片": "img&&data-echo||data-src||src", "首页片单图片": "img&&data-echo||data-src||src",
"首页片单副标题": ".sBottom&&Text", "首页片单副标题": ".sBottom&&Text",
"首页片单链接加前缀": "https://vip.wwgz.cn:5200/", "首页片单链接加前缀": "https://www.wwgz.cn",
"首页片单链接加后缀": "", "首页片单链接加后缀": "",
"分类起始页码": "1", "分类起始页码": "1",
"分类链接": "https://vip.wwgz.cn:5200/vod-list-id-{cateId}-pg-{catePg}-order--by-{by}-class--year-{year}-letter--area-{area}-lang-.html", "分类链接": "https://www.wwgz.cn/vod-list-id-{cateId}-pg-{catePg}-order--by-{by}-class--year-{year}-letter--area-{area}-lang-.html",
"分类名称": "电影&电视剧&综艺&动漫&短剧", "分类名称": "电影&电视剧&综艺&动漫&短剧",
"分类名称替换词": "1&2&3&4&26", "分类名称替换词": "1&2&3&4&26",
"筛选数据": "ext", "筛选数据": "ext",
@ -31,10 +31,10 @@
"分类片单链接": "a&&href", "分类片单链接": "a&&href",
"分类片单图片": "img&&data-echo||data-src||src", "分类片单图片": "img&&data-echo||data-src||src",
"分类片单副标题": ".sBottom&&Text", "分类片单副标题": ".sBottom&&Text",
"分类片单链接加前缀": "https://vip.wwgz.cn:5200/", "分类片单链接加前缀": "https://www.wwgz.cn",
"分类片单链接加后缀": "", "分类片单链接加后缀": "",
"搜索请求头参数": "User-Agent$手机#Referer$https://vip.wwgz.cn:5200/", "搜索请求头参数": "User-Agent$手机#Referer$https://www.wwgz.cn",
"search_url": "https://vip.wwgz.cn:5200/index.php?m=vod-search;post", "search_url": "https://www.wwgz.cn/index.php?m=vod-search;post",
"sea_PtBody": "wd={wd}", "sea_PtBody": "wd={wd}",
"search_mode": "1", "search_mode": "1",
"sea_arr_rule": "#data_list&&li", "sea_arr_rule": "#data_list&&li",
@ -43,7 +43,7 @@
"sea_title": ".sTit&&Text", "sea_title": ".sTit&&Text",
"sea_url": "a&&href", "sea_url": "a&&href",
"搜索片单副标题": ".sDes,-1&&Text", "搜索片单副标题": ".sDes,-1&&Text",
"搜索片单链接加前缀": "https://vip.wwgz.cn:5200/", "搜索片单链接加前缀": "https://www.wwgz.cn",
"搜索片单链接加后缀": "", "搜索片单链接加后缀": "",
"链接是否直接播放": "0", "链接是否直接播放": "0",
"直接播放链接加前缀": "https://live.52sf.ga/huya/", "直接播放链接加前缀": "https://live.52sf.ga/huya/",
@ -56,13 +56,14 @@
"演员详情": "body&&.sDes:contains(主演:)&&Text!主演:", "演员详情": "body&&.sDes:contains(主演:)&&Text!主演:",
"简介详情": ".detail-con&&p&&Text!简介:", "简介详情": ".detail-con&&p&&Text!简介:",
"线路列表数组规则": "#leftTabBox&&ul&&li", "线路列表数组规则": "#leftTabBox&&ul&&li",
"线路标题": "Text[替换:默认=>农民专线]",
"播放列表数组规则": "#leftTabBox&&.numList", "播放列表数组规则": "#leftTabBox&&.numList",
"选集列表数组规则": "li", "选集列表数组规则": "li",
"选集标题链接是否Jsoup写法": "1", "选集标题链接是否Jsoup写法": "1",
"选集标题": "a&&Text", "选集标题": "a&&Text",
"选集链接": "a&&href", "选集链接": "a&&href",
"是否反转选集序列": "1", "是否反转选集序列": "1",
"选集链接加前缀": "https://vip.wwgz.cn:5200/", "选集链接加前缀": "https://www.wwgz.cn",
"选集链接加后缀": "", "选集链接加后缀": "",
"分析MacPlayer": "0", "分析MacPlayer": "0",
"是否开启手动嗅探": "1", "是否开启手动嗅探": "1",

BIN
lib/XBPQ.jar Normal file

Binary file not shown.

140
lib/apple.py Normal file
View File

@ -0,0 +1,140 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import sys
sys.path.append('..')
from base.spider import Spider
class Spider(Spider):
def init(self, extend=""):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
host='http://item.xpgcom.com'
headers = {
"User-Agent": "okhttp/3.12.11"
}
def homeContent(self, filter):
data = self.fetch(f"{self.host}/api.php/v2.vod/androidtypes",headers=self.headers,).json()
dy = {
"classes": "类型",
"areas": "地区",
"years": "年份",
"sortby": "排序",
}
filters = {}
classes = []
for item in data['data']:
has_non_empty_field = False
item['soryby'] = ['updatetime', 'hits', 'score']
demos = ['时间', '人气', '评分']
classes.append({"type_name": item["type_name"], "type_id": str(item["type_id"])})
for key in dy:
if key in item and len(item[key]) > 1:
has_non_empty_field = True
break
if has_non_empty_field:
filters[str(item["type_id"])] = []
for dkey in item:
if dkey in dy and len(item[dkey]) > 1:
values = item[dkey]
value_array = [
{"n": demos[idx] if dkey == "sortby" else value.strip(), "v": value.strip()}
for idx, value in enumerate(values)
if value.strip() != ""
]
filters[str(item["type_id"])].append(
{"key": dkey, "name": dy[dkey], "value": value_array}
)
result = {}
result["class"] = classes
result["filters"] = filters
return result
def homeVideoContent(self):
rsp = self.fetch(f"{self.host}/api.php/v2.main/androidhome", headers=self.headers).json()
videos = []
for i in rsp['data']['list']:videos.extend(self.getlist(i['list']))
return {'list':videos}
def categoryContent(self, tid, pg, filter, extend):
params = {
"page": pg,
"type": tid,
"area":extend.get('areaes',''),
"year":extend.get('yeares',''),
"sortby":extend.get('sortby',''),
"class":extend.get('classes','')
}
params={i:v for i,v in params.items() if v}
rsp = self.fetch(f'{self.host}/api.php/v2.vod/androidfilter10086', headers=self.headers, params=params).json()
result = {}
result['list'] = self.getlist(rsp['data'])
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
return result
def detailContent(self, ids):
rsp = self.fetch(f'{self.host}/api.php/v3.vod/androiddetail2?vod_id={ids[0]}', headers=self.headers).json()
v = rsp['data']
vod = {
'vod_year':v.get('year'),
'vod_area':v.get('area'),
'vod_lang':v.get('lang'),
'type_name':v.get('className'),
'vod_actor':v.get('actor'),
'vod_director':v.get('director'),
'vod_content':v.get('content'),
'vod_play_from': '小苹果',
'vod_play_url': '#'.join([f"{i['key']}${i['url']}" for i in v['urls']])
}
return {'list':[vod]}
def searchContent(self, key, quick, pg='1'):
rsp = self.fetch(f'{self.host}/api.php/v2.vod/androidsearch10086?page={pg}&wd={key}', headers=self.headers).json()
return {'list':self.getlist(rsp['data']),'page':pg}
def playerContent(self, flag, id, vipFlags):
header = {
'user_id': 'XPGBOX',
'token2': 'SnAXiSW8vScXE0Z9aDOnK5xffbO75w1+uPom3WjnYfVEA1oWtUdi2Ihy1N8=',
'version': 'XPGBOX com.phoenix.tv1.5.7',
'hash': 'd78a',
'screenx': '2345',
'user-agent': 'Lavf/58.12.100',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
'token': 'ElEDlwCVgXcFHFhddiq2JKteHofExRBUrfNlmHrWetU3VVkxnzJAodl52N9EUFS+Dig2A/fBa/V9RuoOZRBjYvI+GW8kx3+xMlRecaZuECdb/3AdGkYpkjW3wCnpMQxf8vVeCz5zQLDr8l8bUChJiLLJLGsI+yiNskiJTZz9HiGBZhZuWh1mV1QgYah5CLTbSz8=',
'timestamp': '1743060300',
'screeny': '1065',
}
if 'http' not in id:id=f"http://c.xpgtv.net/m3u8/{id}.m3u8"
return {"parse": 0, "url": id, "header": header}
def localProxy(self, param):
pass
def getlist(self,data):
videos = []
for vod in data:
r=f"更新至{vod.get('updateInfo')}" if vod.get('updateInfo') else ''
videos.append({
"vod_id": vod['id'],
"vod_name": vod['name'],
"vod_pic": vod['pic'],
"vod_remarks": r or vod['score']
})
return videos

115
lib/blys.js Normal file
View File

@ -0,0 +1,115 @@
/**
* 影视TV 弹幕支持
* https://t.me/fongmi_offical/
* https://github.com/FongMi/Release/tree/main/apk
* Cookie设置
* Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
* Cookie设置方法1: DR-PY 后台管理界面
* CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存
* Cookie设置方法2: 手动替换Cookie
* 底下代码 headers的
* "Cookie":"$bili_cookie"
* 手动替换为
* "Cookie":"将获取的Cookie黏贴在这"
* 客户端长期Cookie设置教程:
* 抓包哔哩手机端搜索access_key,取任意链接里的access_key和appkey在drpy环境变量中增加同名的环境变量即可
* 此时哔哩.js这个解析可用于此源的解析线路用
*/
var rule = {
title:'哔哩影视',
host:'https://api.bilibili.com',
url:'/fyclass-fypage&vmid=$vmid',
detailUrl:'/pgc/view/web/season?season_id=fyid',
filter_url:'fl={{fl}}',
vmid获取教程:'登录后访问https://api.bilibili.com/x/web-interface/nav,搜索mid就是,cookie需要 bili_jct,DedeUserID,SESSDATA参数',
searchUrl:'/x/web-interface/search/type?keyword=**&page=fypage&search_type=',
searchable:1,
filterable:1,
quickSearch:0,
headers:{
'User-Agent':'PC_UA',
"Referer": "https://www.bilibili.com",
"Cookie":"https://d.kstore.space/download/6446/lib/cookie.txt"
},
timeout:5000,
class_name:'番剧&国创&电影&电视剧&纪录片&综艺&全部&追番&追剧&时间表',
class_url:'1&4&2&5&3&7&全部&追番&追剧&时间表',
filter:{"全部":[{"key":"tid","name":"分类","value":[{"n":"番剧","v":"1"},{"n":"国创","v":"4"},{"n":"电影","v":"2"},{"n":"电视剧","v":"5"},{"n":"记录片","v":"3"},{"n":"综艺","v":"7"}]},{"key":"order","name":"排序","value":[{"n":"播放数量","v":"2"},{"n":"更新时间","v":"0"},{"n":"最高评分","v":"4"},{"n":"弹幕数量","v":"1"},{"n":"追看人数","v":"3"},{"n":"开播时间","v":"5"},{"n":"上映时间","v":"6"}]},{"key":"season_status","name":"付费","value":[{"n":"全部","v":"-1"},{"n":"免费","v":"1"},{"n":"付费","v":"2%2C6"},{"n":"大会员","v":"4%2C6"}]}],"时间表":[{"key":"tid","name":"分类","value":[{"n":"番剧","v":"1"},{"n":"国创","v":"4"}]}]},
play_parse:true,
// play_json:[{re:'*', json:{jx:1, parse:0,header:JSON.stringify({"user-agent":"PC_UA"})}}],
pagecount:{"1":1,"2":1,"3":1,"4":1,"5":1,"7":1,"时间表":1},
lazy:'',
limit:5,
推荐:'',
推荐:'js:let d=[];function get_result(url){let videos=[];let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let vodList=jo.result?jo.result.list:jo.data.list;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod.new_ep?vod["new_ep"]["index_show"]:vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})})}return videos}function get_rank(tid,pg){return get_result("https://api.bilibili.com/pgc/web/rank/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_rank2(tid,pg){return get_result("https://api.bilibili.com/pgc/season/rank/web/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function home_video(){let videos=get_rank(1).slice(0,5);[4,2,5,3,7].forEach(function(i){videos=videos.concat(get_rank2(i).slice(0,5))});return videos}VODS=home_video();',
一级:'',
一级:'js:let d=[];let vmid=input.split("vmid=")[1].split("&")[0];function get_result(url){let videos=[];let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let vodList=jo.result?jo.result.list:jo.data.list;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod.new_ep?vod["new_ep"]["index_show"]:vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})})}return videos}function get_rank(tid,pg){return get_result("https://api.bilibili.com/pgc/web/rank/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_rank2(tid,pg){return get_result("https://api.bilibili.com/pgc/season/rank/web/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_zhui(pg,mode){let url="https://api.bilibili.com/x/space/bangumi/follow/list?type="+mode+"&follow_status=0&pn="+pg+"&ps=10&vmid="+vmid;return get_result(url)}function get_all(tid,pg,order,season_status){let url="https://api.bilibili.com/pgc/season/index/result?order="+order+"&pagesize=20&type=1&season_type="+tid+"&page="+pg+"&season_status="+season_status;return get_result(url)}function get_timeline(tid,pg){let videos=[];let url="https://api.bilibili.com/pgc/web/timeline/v2?season_type="+tid+"&day_before=2&day_after=4";let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let videos1=[];let vodList=jo.result.latest;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod["pub_index"]+" "+vod["follows"].replace("系列","");videos1.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});let videos2=[];for(let i=0;i<7;i++){let vodList=jo["result"]["timeline"][i]["episodes"];vodList.forEach(function(vod){if(vod["published"]+""==="0"){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let date=vod["pub_ts"];let remark=date+" "+vod["pub_index"];videos2.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})}})}videos=videos2.concat(videos1)}return videos}function cate_filter(d,cookie){if(MY_CATE==="1"){return get_rank(MY_CATE,MY_PAGE)}else if(["2","3","4","5","7"].includes(MY_CATE)){return get_rank2(MY_CATE,MY_PAGE)}else if(MY_CATE==="全部"){let tid=MY_FL.tid||"1";let order=MY_FL.order||"2";let season_status=MY_FL.season_status||"-1";return get_all(tid,MY_PAGE,order,season_status)}else if(MY_CATE==="追番"){return get_zhui(MY_PAGE,1)}else if(MY_CATE==="追剧"){return get_zhui(MY_PAGE,2)}else if(MY_CATE==="时间表"){let tid=MY_FL.tid||"1";return get_timeline(tid,MY_PAGE)}else{return[]}}VODS=cate_filter();',
二级:{
is_json:true,
title:".result.title;.result.share_sub_title",
img:".result.cover",
desc:".result.new_ep.desc;.result.publish.pub_time;.result.subtitle",
content:".result.evaluate",
tabs:"js:pdfa=jsp.pdfa;TABS=['B站']",
lists:".result.episodes",
list_text:'title',
list_url:'cid',
},
二级:'',
二级:'js:function zh(num){let p="";if(Number(num)>1e8){p=(num/1e8).toFixed(2)+"亿"}else if(Number(num)>1e4){p=(num/1e4).toFixed(2)+"万"}else{p=num}return p}let html=request(input);let jo=JSON.parse(html).result;let id=jo["season_id"];let title=jo["title"];let pic=jo["cover"];let areas=jo["areas"][0]["name"];let typeName=jo["share_sub_title"];let date=jo["publish"]["pub_time"].substr(0,4);let dec=jo["evaluate"];let remark=jo["new_ep"]["desc"];let stat=jo["stat"];let status="弹幕: "+zh(stat["danmakus"])+" 点赞: "+zh(stat["likes"])+" 投币: "+zh(stat["coins"])+" 追番追剧: "+zh(stat["favorites"]);let score=jo.hasOwnProperty("rating")?"评分: "+jo["rating"]["score"]+" "+jo["subtitle"]:"暂无评分"+" "+jo["subtitle"];let vod={vod_id:id,vod_name:title,vod_pic:pic,type_name:typeName,vod_year:date,vod_area:areas,vod_remarks:remark,vod_actor:status,vod_director:score,vod_content:dec};let ja=jo["episodes"];let playurls1=[];let playurls2=[];ja.forEach(function(tmpJo){let eid=tmpJo["id"];let cid=tmpJo["cid"];let link=tmpJo["link"];let part=tmpJo["title"].replace("#","-")+" "+tmpJo["long_title"];playurls1.push(part+"$"+eid+"_"+cid);playurls2.push(part+"$"+link)});let playUrl=playurls1.join("#")+"$$$"+playurls2.join("#");vod["vod_play_from"]="B站$$$bilibili";vod["vod_play_url"]=playUrl;VOD=vod;',
搜索:'',
搜索:'js:let url1=input+"media_bangumi";let url2=input+"media_ft";let html=request(url1);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let jo1=JSON.parse(html).data;html=request(url2);let jo2=JSON.parse(html).data;let videos=[];let vodList=[];if(jo1["numResults"]===0){vodList=jo2["result"]}else if(jo2["numResults"]===0){vodList=jo1["result"]}else{vodList=jo1["result"].concat(jo2["result"])}vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=KEY+"➢"+vod["title"].trim().replace(\'<em class="keyword">\',"").replace("</em>","");let img=vod["cover"].trim();let remark=vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
lazy:'',
lazy:`js:
if (/^http/.test(input)) {
input = {
jx: 1,
url: input,
parse: 0,
header: JSON.stringify({
"user-agent": "Mozilla/5.0"
})
}
} else {
let ids = input.split("_");
let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + ids[1];
let result = {};
let url = "https://api.bilibili.com/pgc/player/web/playurl?qn=116&ep_id=" + ids[0] + "&cid=" + ids[1];
let html = request(url);
let jRoot = JSON.parse(html);
if (jRoot["message"] !== "success") {
print("需要大会员权限才能观看");
input = ""
} else {
let jo = jRoot["result"];
let ja = jo["durl"];
let maxSize = -1;
let position = -1;
ja.forEach(function(tmpJo, i) {
if (maxSize < Number(tmpJo["size"])) {
maxSize = Number(tmpJo["size"]);
position = i
}
});
let url = "";
if (ja.length > 0) {
if (position === -1) {
position = 0
}
url = ja[position]["url"]
}
result["parse"] = 0;
result["playUrl"] = "";
result["url"] = url;
result["header"] = {
Referer: "https://www.bilibili.com",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
};
result["contentType"] = "video/x-flv";
result["danmaku"] = dan;
input = result
}
}
`,
}

52
lib/douyu.js Normal file

File diff suppressed because one or more lines are too long

76
lib/drpy2.min.js vendored Normal file

File diff suppressed because one or more lines are too long

98
lib/huya.js Normal file

File diff suppressed because one or more lines are too long

2155
lib/ipv4.m3u Normal file

File diff suppressed because it is too large Load Diff

1
lib/jzyy.js Normal file
View File

@ -0,0 +1 @@
H4sIAEIfMGcC/02OsU7DMBRF936Fp7SU1tlTRfwEbJHSp+YFG9mNZb+Quoh/6FSpQgwggVgYWJGAr0ml/gV1zcD0dO897+regmW2VchydjdgjO3fnvaPPxkbHl63/cP3cBJMkqQweC+f/fum//o47J5jIhpHx0AQGZeladd1/EZCs5ZcYyRaq45AqpV0lMplhavaLxQ4N629gWvkgrSKqEOwC3EVH6LgRpiLgOWRTqLdNbbKx+M/Rd5gHitOzaUB68Jern0rpwKhQluWGpctU3IGSXKJKwpXWKxnp1GjoqjOz4p/axSsfcbm88ng/he2mqoZJQEAAA==

2448
lib/lvse.txt Normal file

File diff suppressed because it is too large Load Diff

1
lib/qmdm.js Normal file
View File

@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+Wlh+exs+WKqOa8qycsCiAgICBob3N0OiAnaHR0cDovL3d3dy5xaW1pcWltaS5uZXQnLAogICAgdXJsOiAnL3Nob3cvZnljbGFzc2Z5ZmlsdGVyLmh0bWwnLAogICAgZmlsdGVyYWJsZTogMSwvL+aYr+WQpuWQr+eUqOWIhuexu+etm+mAiSwKICAgIGZpbHRlcl91cmw6ICd7e2ZsLmFyZWF9fXt7ZmwuYnl9fXt7ZmwuY2xhc3N9fXt7ZmwubGV0dGVyfX0vcGFnZS9meXBhZ2V7e2ZsLnllYXJ9fScsCiAgICBmaWx0ZXI6ICdINHNJQUFBQUFBQUFBKzJXVzA4VFVSU0YvOHM4WTNxbWN2V04rLzEreC9CUXNHcVZTOUlXWTBOSVZMQlcwVklJVWdoUUpiRUJRaXVneEpRMjhHczZVL292bkhabWRuZFhYM2prNGJ3eDYxdnNQV2N4SjZ4bDVhMW40YmxyUVhueWRGbDU3UTRvVDVUWk9aZlBwMVFwQzY1NXQvR1l1OHhvc1hYaitZMXJic2xkOUJsdVJmdDRrbDg5S2NqR2c3SlNaYW5CcmZ6ZXFhVTZpcE1jbG1aYmNxdkp1Nk4zNVJaTG95bnhUOXAxQnFhWW1tM1IzNi9uUXBmbEZrc2p5ODhqYlQ4SkZsT2pSWkd3OXZzTUZwa2FUWW5FY29sTm1HSnFaUG1UMGRkQ1lERTFPblE4bGs5dXc2Rk56YllZUCt0L3Y1ZGJMSTJtN04xcUVWaGthZlF1NFpOY0pBanZZbW8wNVhpeklsMUxJOHRaVFArQ2Z5TlRvMFVmRXJrZHpNWFU2RVNIVy9wdUhFNWthalFsdEp0TmY0WXBwbVpiN2lLSGQyR3dXQnFMcnVKRWxzWVc2VHZSaWtVRmpTelJ1SlpLZ2NYVVZxWUxKdk42dUx4dVYrbDJhQWNYMnRmMFBXK0hNVTAvU05nYkNvTWNwdVFvZlpHL2p2Tjd3VEpMTnBYVTltOUtGajF4bkxzTmwwOHBTaVZML3NlcDhTdGxGbE5pVTFMbjJzWkYrWlNpNUNnN2JjRHQ4ckxUWGw5bE16ZjNQSzFUT0IvYjh3dGpIRVdCVVNkU0o2Y3FVcFZUZ1ZRd3FqWUFOUVJHNjVIV2MxcUh0STdUV3FTMW5OWWdyZUcwR21rMXA1aVZ5ck5TTVN1Vlo2VmlWaXJQU3NXc1ZKNlZ3S3dFejBwZ1ZvSm5KVEFyd2JNU21KWGdXUW5NU3ZDc0JHWWxlRllDc3hJOEs0RlpDWjZWd0t3RXowcGdWb2JBcjhPYzIrOTM4d3VSak9ybjN5b3ZCTW44UWpUYXM4MHBqa1lpVFVDYWlEUURhU2JTQXFTRlNDdVFWaUp0UU5xSXRBTnBKOUlCcElOSUo1Qk9JbDFBdW9oMEEra20wZ09raDBndmtGNGlmVUQ2aVBRRDZTY3lBR1NBeUNDUVFTSkRRSWFJREFNWkpqSUNaSVRJS0pCUkltTkF4b2lNQXhrbk1nRmtnc2dra0VraVUwQ21pSWhIRGNBS0NyOENNNEhTNTYrSHQ3VDBSc1hucjBmLzVhTlg5cHlaZ01Qdk1lejJpbXc2clY5c00vclM0L2VWL3QyZnIybWhJS08rMlVXdnUvQUcwMVdLMXpNdnF5cGJKS3VxcktxeXFzcXFLcXVxcktxeXFzcXFxc2lxK2xDcTZvdWxSZGxWWlZlVlhWVjJWZGxWWlZlVlhWVjJWZGxWWlZkOWtGMzExZXl6ZWRsVVpWT1ZUVlUyVmRsVVpWT1ZUVlUyVmRsVVpWTjlhRTExNVQvMjJ6RUhyaW9BQUE9PScsCiAgICBzZWFyY2hhYmxlOiAyLC8v5piv5ZCm5ZCv55So5YWo5bGA5pCc57SiLAogICAgaGVhZGVyczogey8v572R56uZ55qE6K+35rGC5aS0LOWujOaVtOaUr+aMgeaJgOacieeahCzluLjluKZ1YeWSjGNvb2tpZXMKICAgICAgICAnVXNlci1BZ2VudCc6ICdQQ19VQScsCiAgICB9LAogICAgY2xhc3NfcGFyc2U6ICcjbmF2IGxpO2EmJlRleHQ7YSYmaHJlZjsuKi8oXFx3KykuaHRtbCcsCiAgICBjYXRlX2V4Y2x1ZGU6ICfnlarnu4TkuJPpoph85pyA6L+R5pu05pawJywKICAgIHBsYXlfcGFyc2U6IHRydWUsCiAgICBsYXp5OiAnJywKICAgIGxpbWl0OiA2LAogICAg5o6o6I2QOiAnKjsqOyo7LnRleHQmJlRleHQ7KicsCiAgICDkuIDnuqc6ICcuaW1nLWxpc3QgbGk7YSYmdGl0bGU7aW1nJiZzcmM7aSYmVGV4dDthJiZocmVmJywKICAgIOS6jOe6pzogewogICAgICAgICJ0aXRsZSI6ICJoMSYmVGV4dDtkbC5mbi1sZWZ0OmVxKDMpJiZUZXh0IiwKICAgICAgICAiaW1nIjogIi5kZXRhaWwtcGljJiZpbWcmJnNyYyIsCiAgICAgICAgImRlc2MiOiAiZGwuZm4tbGVmdDplcSgyKSYmVGV4dDs7Oy5ueXpodXktLWR0JiZUZXh0Oy5mbi1yaWdodDplcSgwKS0tZHQmJlRleHQiLAogICAgICAgICJjb250ZW50IjogIi50anVxaW5nJiZUZXh0IiwKICAgICAgICAidGFicyI6ICIuZG93bi10aXRsZSBoMiIsCiAgICAgICAgImxpc3RzIjogIi52aWRlb19saXN0OmVxKCNpZCkgYSIKICAgIH0sCiAgICBzZWFyY2hVcmw6ICcvaW5kZXgucGhwL2FqYXgvc3VnZ2VzdD9taWQ9MSZ3ZD0qKiZsaW1pdD01MCcsCiAgICBkZXRhaWxVcmw6ICcvZGV0YWlsL2Z5aWQuaHRtbCcsIC8v6Z2e5b+F5aGrLOS6jOe6p+ivpuaDheaLvOaOpemTvuaOpQogICAg5pCc57SiOiAnanNvbjpsaXN0O25hbWU7cGljOztpZCcsCn0=

251
lib/wdbl.js Normal file

File diff suppressed because one or more lines are too long