parent
ef47afdac0
commit
c13155eead
|
@ -1,5 +1,5 @@
|
|||
# tvboxtg
|
||||
#
|
||||
整体更新25.07.02
|
||||
整体更新25.07.03
|
||||
#
|
||||
The resources are sourced from the internet and are only used for learning purposes. Please delete them yourself 24 hours after using them for learning.
|
|
@ -13,7 +13,6 @@
|
|||
{"key":"热播","name":"💢热播","type":3,"api":"csp_TTian","searchable":1,"quickSearch":1,"filterable":1,"ext":"7lj763gg0939791h1l3888jig44gi291li"},
|
||||
{"key":"追剧","name":"💢追剧","type":3,"api":"csp_TTian","searchable":1,"quickSearch":1,"filterable":1,"ext":"7lj763gg0939791h1l2681i6g94li291li"},
|
||||
{"key":"lanyingys","name":"💢橘子","type":3,"api":"csp_Qiji","searchable":1,"quickSearch":1,"filterable":1,"ext":"7lj763gg0939795i0678i481k40hi2i3ghlg840i9lj166700g1449g3k5244k2017h35698h4739ih31117kigil3k02hl2jk6i5155ih9kkgl311gl37g240g85111ggg2"},
|
||||
{"key":"kafeiys","name":"💢狂风","type":3,"api":"csp_Qiji","searchable":1,"quickSearch":1,"filterable":1,"ext":"7lj763gg402i7942522k849kg4499i9hl1k5ik48i38l292l1l4l1klgl41255091i8313k2ik478h8j751kh28kh9gk56l3k874684ll3h7j9k83l9034li7lhi5g45k8k3j6hkk760276g8h5h295i9jk7597177g3kk7g3hh79ili"},
|
||||
{"key":"huomaoys","name":"💢火猫","type":3,"api":"csp_Muou","searchable":1,"quickSearch":1,"filterable":1,"ext":"7lj763gg0939790i413gi484k8058896highi4414h68l7g6hk8qiaojig9k2k289l9ik807i213k5j602"},
|
||||
{"key":"yizys","name":"💢驿站","type":3,"api":"csp_Muou","searchable":1,"quickSearch":1,"filterable":1,"ext":"7lj763gg402i7942403h83i2h945858hljhji148i18k2837535112l2qiaojik9075l17028i49g192419i8g3245h3j1l9gi02h6k7732650h3h09jkg759j65hj39l50347k3gj97l4g12l7h6418h6k9j04l26i1glgj3631973hh280lkihjh"},
|
||||
{"key":"永夜","name":"💢永夜","type":3,"api":"csp_Qiji","searchable":1,"quickSearch":1,"filterable":1,"ext":"7lj763gg402i794240208hi3g05l8181highj909i7i7282k425j21ggg13i630l378272k58l71i2h42l18g1h9glg433jll14i6071h6g5k8gj169138kl3kll1j"},
|
||||
|
|
13
南风/live.txt
13
南风/live.txt
|
@ -5,7 +5,6 @@ CCTV1,http://112.123.206.32:808/hls/1/index.m3u8
|
|||
CCTV1,http://120.76.248.139/live/bfgd/4200000488.m3u8
|
||||
CCTV2,http://58.57.40.22:9901/tsfile/live/1001_1.m3u8
|
||||
CCTV2,http://36.105.100.208:35455/gaoma/cctv2.m3u8
|
||||
CCTV2,http://112.123.206.32:808/hls/2/index.m3u8
|
||||
CCTV2,http://60.29.124.66:6080/hls/13/index.m3u8
|
||||
CCTV2,http://120.76.248.139/live/bfgd/4200000061.m3u8
|
||||
CCTV3,http://36.105.100.208:35455/gaoma/cctv3.m3u8
|
||||
|
@ -42,17 +41,14 @@ CCTV9,http://112.46.85.60:8009/hls/509/index.m3u8
|
|||
CCTV9,http://58.19.43.46:9901/tsfile/live/1028_1.m3u8
|
||||
CCTV9,http://58.57.40.22:9901/tsfile/live/1009_1.m3u8
|
||||
CCTV9,http://120.238.94.10:9901/tsfile/live/1027_1.m3u8
|
||||
CCTV10,http://39.164.160.249:9901/tsfile/live/0010_1.m3u8
|
||||
CCTV10,http://58.57.40.22:9901/tsfile/live/1010_1.m3u8
|
||||
CCTV10,http://36.105.100.208:35455/gaoma/cctv10.m3u8
|
||||
CCTV10,http://120.76.248.139/live/bfgd/4200000129.m3u8
|
||||
CCTV10,http://182.150.23.74:808/hls/10/index.m3u8
|
||||
CCTV11,http://58.57.40.22:9901/tsfile/live/1011_1.m3u8
|
||||
CCTV11,http://36.105.100.208:35455/gaoma/cctv11.m3u8
|
||||
CCTV11,http://39.164.160.249:9901/tsfile/live/0011_1.m3u8
|
||||
CCTV11,http://120.76.248.139/live/bfgd/4200000130.m3u8
|
||||
CCTV11,https://piccpndali.v.myalicdn.com/audio/cctv11_2.m3u8
|
||||
CCTV12,http://39.164.160.249:9901/tsfile/live/0012_1.m3u8
|
||||
CCTV12,http://36.105.100.208:35455/gaoma/cctv12.m3u8
|
||||
CCTV12,http://1b6467f415.iok.la:9931/tsfile/live/1032_1.m3u8
|
||||
CCTV12,http://116.128.242.83:9901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
|
@ -116,7 +112,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
|
|||
兵团卫视,http://liveout.btzx.com.cn/62ds9e/yil08g.m3u8
|
||||
兵团卫视,http://183.11.239.36:808/hls/7/index.m3u8
|
||||
兵团卫视,http://120.76.248.139/live/bfgd/4200000124.m3u8
|
||||
兵团卫视,http://218.89.240.144:59901/tsfile/live/0115_1.m3u8
|
||||
东方卫视,http://39.164.160.249:9901/tsfile/live/0107_1.m3u8
|
||||
东方卫视,http://36.32.174.67:60080/newlive/live/hls/24/live.m3u8
|
||||
东方卫视,http://183.11.239.36:808/hls/114/index.m3u8
|
||||
|
@ -127,7 +122,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
|
|||
东南卫视,http://58.19.43.46:9901/tsfile/live/1046_1.m3u8
|
||||
东南卫视,http://123.129.70.178:9901/tsfile/live/0137_1.m3u8
|
||||
东南卫视,http://58.221.214.82:9901/tsfile/live/0137_1.m3u8
|
||||
广东卫视,http://39.164.160.249:9901/tsfile/live/0125_1.m3u8
|
||||
广东卫视,http://58.57.40.22:9901/tsfile/live/1039_1.m3u8
|
||||
广东卫视,http://120.238.94.10:9901/tsfile/live/1008_1.m3u8
|
||||
广东卫视,http://183.11.239.36:808/hls/80/index.m3u8
|
||||
|
@ -136,7 +130,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
|
|||
广西卫视,http://182.150.23.74:808/hls/31/index.m3u8
|
||||
广西卫视,http://113.25.252.226:9901/tsfile/live/0113_1.m3u8
|
||||
贵州卫视,http://58.19.43.46:9901/tsfile/live/1011_1.m3u8
|
||||
贵州卫视,http://119.32.12.17:2901/udp/224.1.100.58:11111
|
||||
贵州卫视,http://110.7.131.40:9901/tsfile/live/0120_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
海南卫视,http://58.57.40.22:9901/tsfile/live/1000_1.m3u8
|
||||
海南卫视,http://36.32.174.67:60080/newlive/live/hls/46/live.m3u8
|
||||
|
@ -152,7 +145,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
|
|||
河南卫视,http://58.57.40.22:9901/tsfile/live/1048_1.m3u8
|
||||
河南卫视,http://satellitepull.cnr.cn/live/wxhnws/playlist.m3u8
|
||||
河南卫视,http://tvpull.dxhmt.cn:9081/tv/11425-1.m3u8
|
||||
河南卫视,http://cssbyd.imwork.net:8082/hls/37/index.m3u8
|
||||
河南卫视,http://120.76.248.139/live/bfgd/4200000339.m3u8
|
||||
湖北卫视,http://120.238.94.10:9901/tsfile/live/1055_1.m3u8
|
||||
湖北卫视,http://58.57.40.22:9901/tsfile/live/1038_1.m3u8
|
||||
|
@ -177,7 +169,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
|
|||
江西卫视,http://58.17.48.228:808/hls/17/index.m3u8
|
||||
江西卫视,http://36.32.174.67:60080/newlive/live/hls/31/live.m3u8
|
||||
江西卫视,http://58.221.214.82:9901/tsfile/live/0138_1.m3u8
|
||||
康巴卫视,http://218.89.240.144:59901/tsfile/live/1010_1.m3u8
|
||||
康巴卫视,http://111.202.12.159:8080/kYGHWzA/1000/live.m3u8
|
||||
康巴卫视,http://111.202.12.159:8080/3zvkK28/1000/live.m3u8
|
||||
辽宁卫视,http://39.164.160.249:9901/tsfile/live/0121_1.m3u8
|
||||
|
@ -217,7 +208,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
|
|||
四川卫视,http://58.57.40.22:9901/tsfile/live/1046_1.m3u8
|
||||
四川卫视,http://183.11.239.36:808/hls/50/index.m3u8
|
||||
四川卫视,http://113.25.252.226:9901/tsfile/live/0123_1.m3u8
|
||||
四川卫视,http://119.32.12.17:2901/udp/224.1.100.72:11111
|
||||
四川卫视,http://39.150.96.141:65535/tsfile/live/0123_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
天津卫视,http://58.57.40.22:9901/tsfile/live/1034_1.m3u8
|
||||
天津卫视,http://112.46.85.60:8009/hls/44/index.m3u8
|
||||
|
@ -234,7 +224,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
|
|||
延边卫视,http://120.76.248.139/live/bfgd/4200000117.m3u8
|
||||
延边卫视,http://61.138.128.226:19901/tsfile/live/1008_1.m3u8
|
||||
延边卫视,http://gmxw.7766.org:808/hls/15/index.m3u8
|
||||
云南卫视,http://39.164.160.249:9901/tsfile/live/0119_1.m3u8
|
||||
云南卫视,http://58.57.40.22:9901/tsfile/live/1047_1.m3u8
|
||||
云南卫视,http://36.32.174.67:60080/newlive/live/hls/45/live.m3u8
|
||||
云南卫视,http://111.61.236.247:9081/hls/32/index.m3u8
|
||||
|
@ -259,7 +248,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
|
|||
黑龙江卫视,http://58.19.43.46:9901/tsfile/live/1008_1.m3u8
|
||||
内蒙古卫视,http://111.61.236.247:9081/hls/48/index.m3u8
|
||||
内蒙古卫视,http://183.11.239.36:808/hls/60/index.m3u8
|
||||
内蒙古卫视,http://cssbyd.imwork.net:8082/hls/44/index.m3u8
|
||||
内蒙古卫视,http://120.76.248.139/live/bfgd/4200000110.m3u8
|
||||
山东教育,https://test1.live.sdetv.com.cn/live/dianshizhibo/playlist.m3u8
|
||||
香港卫视,http://zhibo.hkstv.tv/livestream/mutfysrq/playlist.m3u8
|
||||
|
@ -273,7 +261,6 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
|
|||
东南卫视,http://120.76.248.139/live/bfgd/4200000483.m3u8
|
||||
甘肃卫视,http://live.zohi.tv/video/s10001-fztv-3/index.m3u8
|
||||
广东卫视,http://183.215.134.239:19901/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
广西卫视,http://live.cztv.cc:85/live/ggpd.m3u8
|
||||
广西卫视,http://116.9.204.242:9901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
广西卫视,http://116.9.204.242:9901/tsfile/live/0113_1.m3u8
|
||||
江西卫视,http://120.76.248.139/live/bfgd/4200000098.m3u8
|
||||
|
|
1923
摸鱼儿/api.json
1923
摸鱼儿/api.json
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
150
摸鱼儿/js/jp.js
150
摸鱼儿/js/jp.js
|
@ -1,150 +0,0 @@
|
|||
/**
|
||||
* 影视TV 超連結跳轉支持
|
||||
* https://t.me/fongmi_offical/
|
||||
* https://github.com/FongMi/Release/tree/main/apk
|
||||
*/
|
||||
|
||||
var rule = {
|
||||
title: '荐片',
|
||||
host: 'http://api2.rinhome.com',
|
||||
homeUrl: '/api/tag/hand?code=unknown601193cf375db73d&channel=wandoujia',//网站的首页链接,用于分类获取和推荐获取
|
||||
// url:'/api/crumb/list?area=0&category_id=fyclass&page=fypage&type=0&limit=24&fyfilter',
|
||||
url: '/api/crumb/list?page=fypage&type=0&limit=24&fyfilter',
|
||||
class_name: '全部&电影&电视剧&动漫&综艺', // 筛选 /api/term/ad_fenlei?limit=10&page=1
|
||||
class_url: '0&1&2&3&4',
|
||||
detailUrl: '/api/node/detail?channel=wandoujia&token=&id=fyid',//二级详情拼接链接(json格式用)
|
||||
searchUrl: '/api/video/search?key=**&page=fypage',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
filter: {
|
||||
"0":[{"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":"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"}]}],
|
||||
"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":"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":"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":"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":"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"}]}]
|
||||
},
|
||||
filter_url: 'area={{fl.area or "0"}}&sort={{fl.sort or "update"}}&year={{fl.year or "0"}}&category_id={{fl.cateId}}',
|
||||
filter_def: {
|
||||
0:{cateId:'0'},
|
||||
1:{cateId:'1'},
|
||||
2:{cateId:'2'},
|
||||
3:{cateId:'3'},
|
||||
4:{cateId:'4'}
|
||||
},
|
||||
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: '',
|
||||
图片来源: '@Referer=www.jianpianapp.com@User-Agent=jianpian-version353',
|
||||
// 推荐:'json:.video;*;*;*;*',
|
||||
推荐: `js:
|
||||
var d = [];
|
||||
let html = request(input);
|
||||
html = JSON.parse(html).data[0].video;
|
||||
html.forEach(it => {
|
||||
d.push({
|
||||
title: it.title,
|
||||
img: it.path,
|
||||
desc: it.playlist.title + ' ⭐' + it.score,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
// 一级:'json:data;title;path;playlist.title;id',
|
||||
一级: `js:
|
||||
cateObj.tid = cateObj.tid+'';
|
||||
if (cateObj.tid.endsWith('_clicklink')) {
|
||||
cateObj.tid = cateObj.tid.split('_')[0];
|
||||
input = HOST + '/api/video/search?key=' + cateObj.tid + '&page=' + + MY_PAGE;
|
||||
}
|
||||
var d = [];
|
||||
let html = request(input);
|
||||
html = JSON.parse(html).data;
|
||||
html.forEach(it => {
|
||||
d.push({
|
||||
title: it.title,
|
||||
img: it.thumbnail||it.path,
|
||||
desc: (it.mask || it.playlist.title) + ' ⭐' + it.score,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
二级: `js:
|
||||
function getLink(data) {
|
||||
let link = data.map(it => {
|
||||
return '[a=cr:' + JSON.stringify({'id':it.name+'_clicklink','name':it.name}) + '/]' + it.name + '[/a]'
|
||||
}).join(', ');
|
||||
return link
|
||||
}
|
||||
try {
|
||||
let html = request(input);
|
||||
html = JSON.parse(html);
|
||||
let node = html.data;
|
||||
VOD = {
|
||||
vod_id: node.id,
|
||||
vod_name: node.title,
|
||||
vod_pic: node.thumbnail,
|
||||
type_name: node.types[0].name,
|
||||
vod_year: node.year.title,
|
||||
vod_area: node.area.title,
|
||||
vod_remarks: node.score,
|
||||
vod_actor: getLink(node.actors),
|
||||
vod_director: getLink(node.directors),
|
||||
vod_content: node.description.strip()
|
||||
};
|
||||
if (typeof play_url === 'undefined') {
|
||||
var play_url = ''
|
||||
}
|
||||
let playMap = {};
|
||||
if (node.have_ftp_ur == 1) {
|
||||
playMap["边下边播,勤去清缓存"] = node.new_ftp_list.map(it => {
|
||||
return it.title + "$" + (/m3u8/.test(it.url) ? play_url + it.url : "tvbox-xg:" + it.url)
|
||||
}).join('#');
|
||||
}
|
||||
if (node.have_m3u8_ur == 1) {
|
||||
playMap["在线点播普清版"] = node.new_m3u8_list.map(it => {
|
||||
return it.title + "$" + (/m3u8/.test(it.url) ? play_url + it.url : "tvbox-xg:" + it.url)
|
||||
}).join('#');
|
||||
}
|
||||
let playFrom = [];
|
||||
let playList = [];
|
||||
Object.keys(playMap).forEach(key => {
|
||||
playFrom.append(key);
|
||||
playList.append(playMap[key])
|
||||
});
|
||||
VOD.vod_play_from = playFrom.join('$$$');
|
||||
VOD.vod_play_url = playList.join('$$$');
|
||||
} catch (e) {
|
||||
log("获取二级详情页发生错误:" + e.message);
|
||||
}
|
||||
`,
|
||||
// 搜索:'json:data;*;thumbnail;mask;*',
|
||||
搜索: `js:
|
||||
var d = [];
|
||||
let html = request(input);
|
||||
html = JSON.parse(html).data;
|
||||
html.forEach(it => {
|
||||
d.push({
|
||||
title: it.title,
|
||||
img: it.thumbnail,
|
||||
desc: it.mask + ' ⭐' + it.score,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
var rule = {
|
||||
title:'JRKAN直播',
|
||||
host:'http://www.jrkan2022.com/?lan=1',
|
||||
// JRKAN备用域名:www.jrkankan.com / www.jrkan365.com / jrsyyds.com / www.jryyds.com / jrskan.com / jrsbxj.com /Jrkan备用域名1: www.jrkan2022.com 备用域名2: www.jrs23.com 备用域名2: www.jrskk.com 最新网址发布:www.qiumi1314.co
|
||||
|
||||
url:'/fyclass',
|
||||
searchUrl:'/x/search/?q=**',
|
||||
searchable:1,
|
||||
quickSearch:1,
|
||||
class_name:'全部',
|
||||
class_url:'/',
|
||||
//class_url:'?live',
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
play_parse:true,
|
||||
lazy:"",
|
||||
limit:6,
|
||||
double:false,
|
||||
推荐:'*',
|
||||
// 一级:'.loc_match:eq(2) ul;li:gt(1):lt(4)&&Text;img&&src;li:lt(2)&&Text;a:eq(1)&&href',//play.sportsteam333.com
|
||||
一级:"js:var items=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;var html=request(input);var tabs=pdfa(html,'body&&.d-touch');tabs.forEach(function(it){var pz=pdfh(it,'.name:eq(1)&&Text');var ps=pdfh(it,'.name:eq(0)&&Text');var pk=pdfh(it,'.name:eq(2)&&Text');var img=pd(it,'img&&src');var url=pd(it,'a.me&&href');var timer=pdfh(it,'.lab_time&&Text');var parts = timer.split(' ');var dateParts = parts[0].split('-');var timeParts = parts[1].split(':');var year = new Date().getFullYear();var date = new Date(year, dateParts[0] - 1, dateParts[1], timeParts[0], timeParts[1]);var now = new Date();var hundredMinutesAgo = new Date(now.getTime() - 100 * 60 * 1000);if (date > hundredMinutesAgo) {timer = timer.split(' ')[1];items.push({desc:timer+ ' '+'🏆'+ps,title:pz+' 🆚 '+pk,pic_url:img,url:url})}});setResult(items);",
|
||||
二级:{
|
||||
"title":".sub_list li:lt(2)&&Text;.sub_list li:eq(0)&&Text",
|
||||
"img":"img&&src",
|
||||
"desc":";;;.lab_team_home&&Text;.lab_team_away&&Text",
|
||||
"content":".sub_list ul&&Text",
|
||||
"tabs":"js:TABS=['实时直播']",
|
||||
"lists":"js:LISTS=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;let html=request(input);let data=pdfa(html,'.sub_playlist&&a');TABS.forEach(function(tab){let d=data.map(function(it){let name=pdfh(it,'strong&&Text');let url=pd(it,'a&&data-play');return name+'$'+url});LISTS.push(d)});",
|
||||
},
|
||||
搜索:'js:let d=[];setResult(d);',
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
var rule = {
|
||||
title:'兔小贝',
|
||||
host:'https://www.tuxiaobei.com',
|
||||
homeUrl:'',
|
||||
url:'/list/mip-data?typeId=fyclass&page=fypage&callback=',
|
||||
detailUrl:'/play/fyid',
|
||||
searchUrl:'/search/index?key=**',
|
||||
searchable:2,
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
class_url:'2&3&4&25',
|
||||
class_name:'儿歌&故事&国学&启蒙',
|
||||
//class_name:'#page-viewport&&ul&&li;.text&&Text;a&&href;/(.*)',
|
||||
cate_exclude:'应用',
|
||||
推荐:'.pic-list.list-box;.items;.text&&Text;mip-img&&src;.all&&Text;a&&href',
|
||||
double:true,
|
||||
limit:5,
|
||||
play_parse:true,
|
||||
lazy:'js:fetch_params.headers["user-agent"] = IOS_UA;let html=fetch(input,fetch_params);let src = jsp.pdfh(html,"body&&#videoWrap&&video-src");input=src;',
|
||||
// 一级:'json:data.items;name;image;collect_num;category_id+video_id',
|
||||
一级:'json:data.items;name;image;duration_string;video_id',
|
||||
二级:'*',
|
||||
搜索:'.list-con&&.items;.text&&Text;mip-img&&src;.time&&Text;a&&href',
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
var rule = {
|
||||
title:'有声小说吧',
|
||||
编码:'gb18030',
|
||||
host:'http://m.ysxs8.vip',
|
||||
host:'http://m.ysxs8.top',
|
||||
url:'/downlist/fyclass_fypage.html',
|
||||
searchUrl:'/search.asp?page=fypage&searchword=**&searchtype=-1',
|
||||
searchable:2,
|
||||
|
@ -34,4 +34,4 @@ var rule = {
|
|||
lists:'#playlist ul li',
|
||||
},
|
||||
搜索:'*',
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
http://59.153.167.137:7788
|
|
@ -1,199 +0,0 @@
|
|||
{
|
||||
"classes": [
|
||||
{
|
||||
"type_name": "电影",
|
||||
"type_id": "dy"
|
||||
},
|
||||
{
|
||||
"type_name": "电视",
|
||||
"type_id": "ds"
|
||||
},
|
||||
{
|
||||
"type_name": "短剧",
|
||||
"type_id": "dj"
|
||||
},
|
||||
{
|
||||
"type_name": "综艺",
|
||||
"type_id": "zy"
|
||||
},
|
||||
{
|
||||
"type_name": "动漫",
|
||||
"type_id": "dm"
|
||||
},
|
||||
{
|
||||
"type_name": "音乐",
|
||||
"type_id": "yy"
|
||||
}
|
||||
],
|
||||
"filters": {
|
||||
"dy": [
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"ds": [
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"dj": [
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"zy": [
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"dm": [
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"yy": [
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"siteUrl": "https://ys1api.yingso.fun/v7/ali/all"
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
{"errcode":"1001","msg":"url error"}
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
"SiteUrl": "https://www.kuafuzy.com,https://www.kfzy.cc",
|
||||
"Classes": [
|
||||
{
|
||||
"type_name": "电影",
|
||||
"type_id": "1"
|
||||
},
|
||||
{
|
||||
"type_name": "剧集",
|
||||
"type_id": "2"
|
||||
},
|
||||
{
|
||||
"type_name": "4K电影",
|
||||
"type_id": "3"
|
||||
},
|
||||
{
|
||||
"type_name": "4K剧集",
|
||||
"type_id": "4"
|
||||
},
|
||||
{
|
||||
"type_name": "动漫",
|
||||
"type_id": "5"
|
||||
},
|
||||
{
|
||||
"type_name": "短剧",
|
||||
"type_id": "6"
|
||||
}
|
||||
],
|
||||
"Cookie": "bbs_token=zNQpYs_2BmC2e_2FcUM_2BmuihZ33Jswh_2Fj7sPtelqcw_3D_3D; bbs_sid=lgs96gh42gevj7lsg5f8o3kjsi"
|
||||
}
|
File diff suppressed because it is too large
Load Diff
BIN
摸鱼儿/spider.jar
BIN
摸鱼儿/spider.jar
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
http://160.202.244.9:1256/
|
68
欧歌/api.json
68
欧歌/api.json
|
@ -4,9 +4,9 @@
|
|||
"spider": "./spider.jar",
|
||||
"lives": [
|
||||
{
|
||||
"name": "公众号【欧歌APP】仅供测试安装24小时后删除!.",
|
||||
"name": "公众号【光歌软件分享】严谨用于任何商业用途!",
|
||||
"type": 0,
|
||||
"url": "./lives/公众号【欧歌APP】仅供测试安装24小时后删除!..txt",
|
||||
"url": "./lives/公众号【光歌软件分享】严谨用于任何商业用途!.txt",
|
||||
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}",
|
||||
"logo":"https://live.fanmingming.cn/tv/{name}.png",
|
||||
"playerType":2,
|
||||
|
@ -22,20 +22,20 @@
|
|||
"sites": [
|
||||
{
|
||||
"key": "豆瓣2",
|
||||
"name": "📢公众号【欧歌APP】仅供测试安装24小时后删除!.",
|
||||
"name": "📢公众号【光歌软件分享】严谨用于任何商业用途!",
|
||||
"type": 3,
|
||||
"api": "csp_Douban",
|
||||
"searchable": 0
|
||||
},
|
||||
{
|
||||
"key": "豆瓣1",
|
||||
"name": "📢公众号【欧歌APP】仅供测试安装24小时后删除!.公告❤更新:7/1❤",
|
||||
"name": "📢公众号【光歌软件分享】严谨用于任何商业用途!公告❤更新:7/3❤",
|
||||
"type": 3,
|
||||
"api": "csp_Notice",
|
||||
"searchable": 0,
|
||||
"changeable": 0,
|
||||
"jar": "./jars/豆瓣1.jar",
|
||||
"ext": "https://xn--dkw0c.v.nxog.top/m/公告.php?b=公众号【欧歌APP】仅供测试安装24小时后删除!."
|
||||
"ext": "https://xn--dkw0c.v.nxog.top/m/公告.php?b=公众号【光歌软件分享】严谨用于任何商业用途!"
|
||||
},
|
||||
{
|
||||
"key": "csp_woog",
|
||||
|
@ -54,7 +54,7 @@
|
|||
],
|
||||
"url_key": "woog",
|
||||
"threadinfo": {
|
||||
"chunksize": 224,
|
||||
"chunksize": 269,
|
||||
"threads": 16
|
||||
}
|
||||
}
|
||||
|
@ -83,7 +83,7 @@
|
|||
],
|
||||
"url_key": "UC",
|
||||
"threadinfo": {
|
||||
"chunksize": 234,
|
||||
"chunksize": 251,
|
||||
"threads": 60
|
||||
}
|
||||
}
|
||||
|
@ -114,7 +114,7 @@
|
|||
],
|
||||
"url_key": "woog2",
|
||||
"threadinfo": {
|
||||
"chunksize": 259,
|
||||
"chunksize": 210,
|
||||
"threads": 16
|
||||
}
|
||||
}
|
||||
|
@ -145,7 +145,7 @@
|
|||
"name": "🐢采集┃搜索",
|
||||
"type": 3,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"ext": "./js/CJZW.js?type=url¶ms=./json/CJJT.json$1$1"
|
||||
"ext": "./js/采集之王.js?type=url¶ms=./json/采集静态.json$1$1"
|
||||
},
|
||||
{
|
||||
"key": "荐片",
|
||||
|
@ -161,7 +161,7 @@
|
|||
"type": 3,
|
||||
"api": "csp_YDjisu",
|
||||
"searchable": 1,
|
||||
"changeable": 1
|
||||
"quickSearch": 1
|
||||
},
|
||||
{
|
||||
"key": "热播影视",
|
||||
|
@ -262,7 +262,7 @@
|
|||
},
|
||||
{
|
||||
"key": "三六零",
|
||||
"name": "💡三六零|视频",
|
||||
"name": "💡三六|视频",
|
||||
"type": 3,
|
||||
"api": "csp_SP360"
|
||||
},
|
||||
|
@ -310,6 +310,12 @@
|
|||
"filterable": 1,
|
||||
"ext": "https://wwgz.cn/"
|
||||
},
|
||||
{
|
||||
"key": "鸭梨影视",
|
||||
"name": "💡鸭梨|影视",
|
||||
"type": 3,
|
||||
"api": "csp_KmeiJu"
|
||||
},
|
||||
{
|
||||
"key": "huomaoys",
|
||||
"name": "💡火猫|影视",
|
||||
|
@ -328,18 +334,6 @@
|
|||
"playerType": 2,
|
||||
"ext": "7lj763gg402i79425i3l85i6h848i295l5hiji5l828g3l3jjhg6kg7410lhjkqiaojij3ig1lg475178k7h0il4ig3h753h7hi516758699jh2g5h433li30gk11g73l90312h4g7"
|
||||
},
|
||||
{
|
||||
"key": "行动",
|
||||
"name": "👑行动|弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_AppSy",
|
||||
"ext": {
|
||||
"url": "http://160.202.246.9:2356",
|
||||
"key1": "aassddwwxxllsx1x",
|
||||
"key2": "aassddwwxxllsx1x",
|
||||
"key3": "aassddwwxxllsx1x"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "斗量",
|
||||
"name": "👑斗量|弹幕",
|
||||
|
@ -406,20 +400,6 @@
|
|||
"version": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "米兔",
|
||||
"name": "👑米兔|弹幕",
|
||||
"type": 3,
|
||||
"quickSearch": 1,
|
||||
"api": "csp_AppGet",
|
||||
"ext": {
|
||||
"url": "http://v.tkbot.fun",
|
||||
"dataKey": "d032c12876bc6848",
|
||||
"dataIv": "d032c12876bc6848",
|
||||
"deviceId": "",
|
||||
"version": "200"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "海豚",
|
||||
"name": "👑海豚|弹幕",
|
||||
|
@ -544,6 +524,20 @@
|
|||
"jxurl": "https://ap.dxgsp.cc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "蓝鹰",
|
||||
"name": "👑蓝鹰|弹幕",
|
||||
"type": 3,
|
||||
"quickSearch": 1,
|
||||
"api": "csp_AppGet2",
|
||||
"ext": {
|
||||
"url": "http://172.247.192.138:18520",
|
||||
"dataKey": "SuNlEkOLAoWJj1Oe",
|
||||
"dataIv": "SuNlEkOLAoWJj1Oe",
|
||||
"deviceId": "",
|
||||
"version": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "csp_XYQHiker_农民影视",
|
||||
"name": "🧿农民|影视",
|
||||
|
|
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,378 @@
|
|||
globalThis.getRandomItem = function(items) {
|
||||
return items[Math.random() * items.length | 0];
|
||||
}
|
||||
var rule = {
|
||||
title: '采集之王[合]',
|
||||
author: '道长',
|
||||
version: '20240706 beta17',
|
||||
update_info: ``.trim(),
|
||||
host: '',
|
||||
homeTid: '',
|
||||
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
|
||||
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
|
||||
searchUrl: '/api.php/provide/vod/?wd=**&pg=#TruePage##page=fypage',
|
||||
classUrl: '/api.php/provide/vod/',
|
||||
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyfilter',
|
||||
filter_url: '{{fl.类型}}',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
limit: 20,
|
||||
search_limit: 10,
|
||||
searchable: 1,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
search_match: false,
|
||||
search_pic: true,
|
||||
预处理: $js.toString(() => {
|
||||
function getClasses(item) {
|
||||
let classes = [];
|
||||
if (item.class_name && item.class_url) {
|
||||
if (!/&|电影|电视剧|综艺|动漫[\u4E00-\u9FA5]+/.test(item.class_name)) {
|
||||
try {
|
||||
item.class_name = ungzip(item.class_name)
|
||||
} catch (e) {
|
||||
log(`不识别的class_name导致gzip解码失败:${e}`)
|
||||
return classes
|
||||
}
|
||||
}
|
||||
let names = item.class_name.split('&');
|
||||
let urls = item.class_url.split('&');
|
||||
let cnt = Math.min(names.length, urls.length);
|
||||
for (let i = 0; i < cnt; i++) {
|
||||
classes.push({
|
||||
'type_id': urls[i],
|
||||
'type_name': names[i]
|
||||
});
|
||||
}
|
||||
}
|
||||
return classes
|
||||
}
|
||||
if (typeof(batchFetch) === 'function') {
|
||||
rule.search_limit = 16;
|
||||
log('当前程序支持批量请求[batchFetch],搜索限制已设置为16');
|
||||
}
|
||||
let _url = rule.params;
|
||||
log(`传入参数:${_url}`);
|
||||
if (_url && typeof(_url) === 'string' && /^(http|file)/.test(_url)) {
|
||||
if (_url.includes('$')) {
|
||||
let _url_params = _url.split('$');
|
||||
_url = _url_params[0];
|
||||
rule.search_match = !!(_url_params[1]);
|
||||
if (_url_params.length > 2) {
|
||||
rule.search_pic = !!(_url_params[2]);
|
||||
}
|
||||
}
|
||||
let html = request(_url);
|
||||
let json = JSON.parse(html);
|
||||
let _classes = [];
|
||||
rule.filter = {};
|
||||
rule.filter_def = {};
|
||||
json.forEach(it => {
|
||||
let _obj = {
|
||||
type_name: it.name,
|
||||
type_id: it.url,
|
||||
parse_url: it.parse_url || '',
|
||||
searchable: it.searchable !== 0,
|
||||
api: it.api || '',
|
||||
cate_exclude: it.cate_exclude || '',
|
||||
cate_excludes: it.cate_excludes || [],
|
||||
};
|
||||
_classes.push(_obj);
|
||||
try {
|
||||
let json1 = [];
|
||||
if (it.class_name && it.class_url) {
|
||||
json1 = getClasses(it);
|
||||
} else {
|
||||
json1 = JSON.parse(request(urljoin(_obj.type_id, _obj.api || rule.classUrl))).class;
|
||||
}
|
||||
if (_obj.cate_excludes && Array.isArray(_obj.cate_excludes) && _obj.cate_excludes.length > 0) {
|
||||
json1 = json1.filter(cl => !_obj.cate_excludes.includes(cl.type_name));
|
||||
} else if (_obj.cate_exclude) {
|
||||
json1 = json1.filter(cl => !new RegExp(_obj.cate_exclude, 'i').test(cl.type_name));
|
||||
}
|
||||
rule.filter[_obj.type_id] = [{
|
||||
"key": "类型",
|
||||
"name": "类型",
|
||||
"value": json1.map(i => {
|
||||
return {
|
||||
"n": i.type_name,
|
||||
'v': i.type_id
|
||||
}
|
||||
})
|
||||
}];
|
||||
if (json1.length > 0) {
|
||||
rule.filter_def[it.url] = {
|
||||
"类型": json1[0].type_id
|
||||
};
|
||||
}
|
||||
} catch (e) {
|
||||
rule.filter[it.url] = [{
|
||||
"key": "类型",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}]
|
||||
}];
|
||||
}
|
||||
});
|
||||
rule.classes = _classes;
|
||||
}
|
||||
}),
|
||||
class_parse: $js.toString(() => {
|
||||
input = rule.classes;
|
||||
}),
|
||||
推荐: $js.toString(() => {
|
||||
VODS = [];
|
||||
if (rule.classes) {
|
||||
let randomClass = getRandomItem(rule.classes);
|
||||
let _url = urljoin(randomClass.type_id, input);
|
||||
if (randomClass.api) {
|
||||
_url = _url.replace('/api.php/provide/vod/', randomClass.api)
|
||||
}
|
||||
try {
|
||||
let html = request(_url, {
|
||||
timeout: rule.timeout
|
||||
});
|
||||
let json = JSON.parse(html);
|
||||
VODS = json.list;
|
||||
VODS.forEach(it => {
|
||||
it.vod_id = randomClass.type_id + '$' + it.vod_id;
|
||||
it.vod_remarks = it.vod_remarks + '|' + randomClass.type_name;
|
||||
});
|
||||
} catch (e) {}
|
||||
}
|
||||
}),
|
||||
一级: $js.toString(() => {
|
||||
VODS = [];
|
||||
if (rule.classes) {
|
||||
let _url = urljoin(MY_CATE, input);
|
||||
let current_vod = rule.classes.find(item => item.type_id === MY_CATE);
|
||||
if (current_vod && current_vod.api) {
|
||||
_url = _url.replace('/api.php/provide/vod/', current_vod.api)
|
||||
}
|
||||
let html = request(_url);
|
||||
let json = JSON.parse(html);
|
||||
VODS = json.list;
|
||||
VODS.forEach(it => {
|
||||
it.vod_id = MY_CATE + '$' + it.vod_id
|
||||
});
|
||||
}
|
||||
}),
|
||||
二级: $js.toString(() => {
|
||||
VOD = {};
|
||||
if (orId === 'update_info') {
|
||||
VOD = {
|
||||
vod_content: rule.update_info.trim(),
|
||||
vod_name: '更新日志',
|
||||
type_name: '更新日志',
|
||||
vod_pic: 'https://resource-cdn.tuxiaobei.com/video/FtWhs2mewX_7nEuE51_k6zvg6awl.png',
|
||||
vod_remarks: `版本:${rule.version}`,
|
||||
vod_play_from: '道长在线',
|
||||
vod_play_url: '随机小视频$http://api.yujn.cn/api/zzxjj.php',
|
||||
};
|
||||
} else {
|
||||
if (rule.classes) {
|
||||
let _url = urljoin(fyclass, input);
|
||||
let current_vod = rule.classes.find(item => item.type_id === fyclass);
|
||||
if (current_vod && current_vod.api) {
|
||||
_url = _url.replace('/api.php/provide/vod/', current_vod.api)
|
||||
}
|
||||
let html = request(_url);
|
||||
let json = JSON.parse(html);
|
||||
let data = json.list;
|
||||
VOD = data[0];
|
||||
if (current_vod && current_vod.type_name) {
|
||||
VOD.vod_play_from = VOD.vod_play_from.split('$$$').map(it => current_vod.type_name + '|' + it).join('$$$')
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
VODS = [];
|
||||
if (rule.classes) {
|
||||
let canSearch = rule.classes.filter(it => it.searchable);
|
||||
let page = Number(MY_PAGE);
|
||||
page = (MY_PAGE - 1) % Math.ceil(canSearch.length / rule.search_limit) + 1;
|
||||
let truePage = Math.ceil(MY_PAGE / Math.ceil(canSearch.length / rule.search_limit));
|
||||
if (rule.search_limit) {
|
||||
let start = (page - 1) * rule.search_limit;
|
||||
let end = page * rule.search_limit;
|
||||
let t1 = new Date().getTime();
|
||||
let searchMode = typeof(batchFetch) === 'function' ? '批量' : '单个';
|
||||
log('start:' + start);
|
||||
log('end:' + end);
|
||||
log('搜索模式:' + searchMode);
|
||||
log('精准搜索:' + rule.search_match);
|
||||
log('强制获取图片:' + rule.search_pic);
|
||||
if (start < canSearch.length) {
|
||||
let search_classes = canSearch.slice(start, end);
|
||||
let urls = [];
|
||||
search_classes.forEach(it => {
|
||||
let _url = urljoin(it.type_id, input);
|
||||
if (it.api) {
|
||||
_url = _url.replace('/api.php/provide/vod/', it.api)
|
||||
}
|
||||
_url = _url.replace("#TruePage#", "" + truePage);
|
||||
urls.push(_url);
|
||||
});
|
||||
let results_list = [];
|
||||
let results = [];
|
||||
if (typeof(batchFetch) === 'function') {
|
||||
let reqUrls = urls.map(it => {
|
||||
return {
|
||||
url: it,
|
||||
options: {
|
||||
timeout: rule.timeout
|
||||
}
|
||||
}
|
||||
});
|
||||
let rets = batchFetch(reqUrls);
|
||||
let detailUrls = [];
|
||||
let detailUrlCount = 0;
|
||||
rets.forEach((ret, idx) => {
|
||||
let it = search_classes[idx];
|
||||
if (ret) {
|
||||
try {
|
||||
let json = JSON.parse(ret);
|
||||
let data = json.list;
|
||||
data.forEach(i => {
|
||||
i.site_name = it.type_name;
|
||||
i.vod_id = it.type_id + '$' + i.vod_id;
|
||||
i.vod_remarks = i.vod_remarks + '|' + it.type_name;
|
||||
});
|
||||
if (rule.search_match) {
|
||||
data = data.filter(item => item.vod_name && (new RegExp(KEY, 'i')).test(item.vod_name))
|
||||
}
|
||||
if (data.length > 0) {
|
||||
if (rule.search_pic && !data[0].vod_pic) {
|
||||
log(`当前搜索站点【${it.type_name}】没图片,尝试访问二级去获取图片`);
|
||||
let detailUrl = urls[idx].split('wd=')[0] + 'ac=detail&ids=' + data.map(k => k.vod_id.split('$')[1]).join(',');
|
||||
detailUrls.push(detailUrl);
|
||||
results_list.push({
|
||||
data: data,
|
||||
has_pic: false,
|
||||
detailUrlCount: detailUrlCount
|
||||
});
|
||||
detailUrlCount++;
|
||||
} else {
|
||||
results_list.push({
|
||||
data: data,
|
||||
has_pic: true
|
||||
});
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
log(`请求:${it.type_id}发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
});
|
||||
let reqUrls2 = detailUrls.map(it => {
|
||||
return {
|
||||
url: it,
|
||||
options: {
|
||||
timeout: rule.timeout
|
||||
}
|
||||
}
|
||||
});
|
||||
let rets2 = reqUrls2.length > 0 ? batchFetch(reqUrls2) : [];
|
||||
for (let k = 0; k < results_list.length; k++) {
|
||||
let result_data = results_list[k].data;
|
||||
if (!results_list[k].has_pic) {
|
||||
try {
|
||||
let detailJson = JSON.parse(rets2[results_list[k].detailUrlCount]);
|
||||
log('二级数据列表元素数:' + detailJson.list.length);
|
||||
result_data.forEach((d, _seq) => {
|
||||
let detailVodPic = detailJson.list.find(vod => vod.vod_id.toString() === d.vod_id.split('$')[1]);
|
||||
if (detailVodPic) {
|
||||
Object.assign(d, {
|
||||
vod_pic: detailVodPic.vod_pic
|
||||
});
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
log(`强制获取网站${result_data[0].site_name}的搜索图片失败:${e.message}`);
|
||||
}
|
||||
}
|
||||
results = results.concat(result_data);
|
||||
}
|
||||
} else {
|
||||
urls.forEach((_url, idx) => {
|
||||
let it = search_classes[idx];
|
||||
try {
|
||||
let html = request(_url);
|
||||
let json = JSON.parse(html);
|
||||
let data = json.list;
|
||||
data.forEach(i => {
|
||||
i.vod_id = it.type_id + '$' + i.vod_id;
|
||||
i.vod_remarks = i.vod_remarks + '|' + it.type_name;
|
||||
});
|
||||
if (rule.search_match) {
|
||||
data = data.filter(item => item.vod_name && (new RegExp(KEY, 'i')).test(item.vod_name))
|
||||
}
|
||||
if (data.length > 0) {
|
||||
if (rule.search_pic && !data[0].vod_pic) {
|
||||
log(`当前搜索站点【${it.type_name}】没图片,尝试访问二级去获取图片`);
|
||||
let detailUrl = urls[idx].split('wd=')[0] + 'ac=detail&ids=' + data.map(k => k.vod_id.split('$')[1]).join(',');
|
||||
try {
|
||||
let detailJson = JSON.parse(request(detailUrl));
|
||||
log('二级数据列表元素数:' + detailJson.list.length);
|
||||
data.forEach((d, _seq) => {
|
||||
let detailVodPic = detailJson.list.find(vod => vod.vod_id.toString() === d.vod_id.split('$')[1]);
|
||||
if (detailVodPic) {
|
||||
Object.assign(d, {
|
||||
vod_pic: detailVodPic.vod_pic
|
||||
});
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
log(`强制获取网站${it.type_id}的搜索图片失败:${e.message}`);
|
||||
}
|
||||
}
|
||||
results = results.concat(data);
|
||||
}
|
||||
results = results.concat(data);
|
||||
} catch (e) {
|
||||
log(`请求:${it.type_id}发生错误:${e.message}`)
|
||||
}
|
||||
});
|
||||
}
|
||||
VODS = results;
|
||||
let t2 = new Date().getTime();
|
||||
log(`${searchMode}搜索:${urls.length}个站耗时:${(Number(t2) - Number(t1))}ms`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
lazy: $js.toString(() => {
|
||||
let parse_url = '';
|
||||
if (flag && flag.includes('|')) {
|
||||
let type_name = flag.split('|')[0];
|
||||
let current_vod = rule.classes.find(item => item.type_name === type_name);
|
||||
if (current_vod && current_vod.parse_url) {
|
||||
parse_url = current_vod.parse_url
|
||||
}
|
||||
}
|
||||
if (/\.(m3u8|mp4)/.test(input)) {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: input
|
||||
}
|
||||
} else {
|
||||
if (parse_url.startsWith('json:')) {
|
||||
let purl = parse_url.replace('json:', '') + input;
|
||||
let html = request(purl);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: JSON.parse(html).url
|
||||
}
|
||||
} else {
|
||||
input = parse_url + input;
|
||||
}
|
||||
}
|
||||
}),
|
||||
}
|
|
@ -80,14 +80,6 @@
|
|||
"class_name": "H4sIAFlXhmYC/z1RbXaCMBC8TU7QW/RSip/oq8orxVp56hNoaqtFq1gFopfJZsMtGhLor93Z3czuTNBNgB0IuomkXbApwSyXdkpg8CHyrzJw5qPdI+D5ql1m2D+IVkdn1IFrVmaiORENT8/ZtOqK/itPbV2bM57Skl1sKd5GZVYsN7owjXS4xGWA8V6jow6YfgJ70VTJL4SenghpMetWR6rHiqYGimK8r4HeU2sx640i86YG5px/regaNZqqnjG7K5C74B54/kY4e5bWj0zmPB0SjL9x0iLyfCxDsW6DM9BEXizjFDpDokxWBksayPikHGTC6+FyVyri+TtOutVOfrExNeaoo01HRnfhXeuxaST8bQX4JRQNKuMbrCwC3Rn6S2ztZH9BHh7RfKzwbQhqKRAdi7UjmkP1hcrrJ8m26hRjfCiDDs9m/LYicD3xLMDNXZ4HRLYdcVoIa4ueQ3C0V52ixeBikcJKxH5s9vwBtOQp10cCAAA=",
|
||||
"class_url": "1&2&3&4&6&7&8&9&10&11&12&13&14&15&16&17&18&19&20&23&25&26&27&28&29&30&31&39&44&45&47&48&49&50&51&52&53&54&55&56&57&58&59&60&61&62&63&64&65&66&67&68&69&70"
|
||||
},
|
||||
{
|
||||
"name": "快车资源",
|
||||
"url": "https://caiji.kczyapi.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影|电视剧|综艺|动漫|预告片|伦理|影视解说|体育赛事|港台三级|两性课堂|写真热舞",
|
||||
"class_name": "H4sIAFZXhmYC/z1RbXaCMBC8TU7QW/RSip/oq8orxVp56hNoaqtFq1gFopfJZsMtGhLor93Z3czuTNBNgB0IuomkXbApwSyXdkpg8CHyrzJw5qPdI+D5ql1m2D+IVkdn1IFrVmaiORENT8/ZtOqK/itPbV2bM57Skl1sKd5GZVYsN7owjXS4xGWA8V6jow6YfgJ70VTJL4SenghpMetWR6rHiqYGimK8r4HeU2sx640i86YG5px/regaNZqqnjG7K5C74B54/kY4e5bWj0zmPB0SjL9x0iLyfCxDsW6DM9BEXizjFDpDokxWBksayPikHGTC6+FyVyri+TtOutVOfrExNeaoo01HRnfhXeuxaST8bQX4JRQNKuMbrCwC3Rn6S2ztZH9BHh7RfKzwbQhqKRAdi7UjmkP1hcrrJ8m26hRjfCiDDs9m/LYicD3xLMDNXZ4HRLYdcVoIa4ueQ3C0V52ixeBikcJKxH5s9vwBtOQp10cCAAA=",
|
||||
"class_url": "1&2&3&4&6&7&8&9&10&11&12&13&14&15&16&17&18&19&20&23&25&26&27&28&29&30&31&39&44&45&47&48&49&50&51&52&53&54&55&56&57&58&59&60&61&62&63&64&65&66&67&68&69&70"
|
||||
},
|
||||
{
|
||||
"name": "️极速资源",
|
||||
"url": "https://jszyapi.com",
|
||||
|
@ -113,23 +105,6 @@
|
|||
"class_name": "H4sIAFZXhmYC/1WR0VLCQAxF/6bfqXQsbB9omYEq2JEHKqtQ2iIC0nbxZ5pk+Qt303VG307uZnJvsjQ9gtqTGHr6+4WaHQjpUdNqUVsNwjdst446lTIlqWmyRKM9+g9McgKXxhLex3iXcJ+Q7hVHT10tWHtWXS2tx209x6+SafluZEuYS7qOLUFU4eXK2uMrpjnT8QxZYkkXFagZ+y53LhxNmz8GHPt3niv6Qa4w1lHV7+kCuAIyeZsHrsBD9S+ak4lvpuVKl58e+iEOFuxdnKDu80SZXvHqMA4g+uAjDHJKJhw6LEltmMqCYt/r2jXFAf/B6WAFs5Yx/QEG4wmPmwEAAA==",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&22&23&24&25&26&27&30&31&32&33&37&38&39&42&43&44&45&46&48&49&51&54"
|
||||
},
|
||||
{
|
||||
"name": "天空资源",
|
||||
"url": "https://m3u8.tiankongapi.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影|连续剧|动漫|综艺|伦理片|电影解说|体育赛事|短剧",
|
||||
"api": "/api.php/provide/vod/from/tkm3u8/",
|
||||
"class_name": "H4sIAFdXhmYC/zVQW3LCMAy8jc/JYygknSllCqGUTPkoYAphEqCB4uD0Mrbk3KK2Yn95V9autMJpqeWJodhrOcNoyMzfJ1ZHHXEGGcf6xaFmu4Df3CEd75RMXR+OTtAfEOITfa8cgu4rdBKHbK//hdG7EhHVktSWCcU7nJIC4xzlnmpLqQSnaatvS/w0eBwYVg8TCabXvFk8eeL2GReBzDdWFAitHTTjAu41ebX+raMVQJoF0ub0pLzpdRLIpfCbWIF7kK5l+JfJf5jeDH1u7NbNR01pexkmE8ozuKqKbqHkm+mdTblU4pnhyt32H73g+qZ2AQAA",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42&44"
|
||||
},
|
||||
{
|
||||
"name": "百度云资源",
|
||||
"url": "https://api.apibdzy.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影|电视剧|综艺|动漫|伦理片|纪录片|体育赛事|资讯",
|
||||
"class_name": "H4sIAFdXhmYC/zVP7W7CMAx8mzzn1vGVTgKqla4TSEgTLMAQLaBMkDZ9msRO32KNm/67O9t3Z0yl1VeGqXRiYrlgWNWOK2bjA9S/zNQ/uJwgn3rB6A2hbNMteoSzK7yNCYnEPiuP4HUJLxntcRGmMMuN4qTtRPtFOfAooLl71G6PJHzuKV+drF6RZ1ygPoVsTCvsq9pFCc+GLs4Cm7lHdvxnqoy0e0kC5YRfOucuYyCPonMYCDkML6+1USI83t8MpA8KJDpjlvhabSShXIRaRn+46Obk2qh35uTIXQrWjwKBfA75NpD2e2ST+B8HkFGOfQEAAA==",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&36&37&38&39"
|
||||
},
|
||||
{
|
||||
"name": "无尽资源",
|
||||
"url": "https://api.wujinapi.me",
|
|
@ -107,6 +107,8 @@ CCTV-11,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888
|
|||
CCTV-11,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226334/1.m3u8
|
||||
CCTV-11,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226448/1.m3u8
|
||||
CCTV-11,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226228/1.m3u8
|
||||
CCTV-12,http://58.221.214.82:9901/tsfile/live/0012_1.m3u8
|
||||
CCTV-12,http://116.9.204.242:9901/tsfile/live/0012_1.m3u8
|
||||
CCTV-12,http://php.jdshipin.com/TVOD/hljyd.php?id=3221225731
|
||||
CCTV-12,http://z.b.bkpcp.top/m.php?id=CCTV-12社会与法社会与法
|
||||
CCTV-12,http://[2409:8087:74f0:22::4]:6410/270000001128/9900000509/index.m3u8
|
||||
|
@ -115,8 +117,6 @@ CCTV-12,http://[2409:8087:1a01:df::7005]/ottrrs.hl.chinamobile.com/PLTV/88888888
|
|||
CCTV-12,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226568/index.m3u8
|
||||
CCTV-12,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226942/1.m3u8
|
||||
CCTV-12,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226228/1.m3u8
|
||||
CCTV-12,http://iptv.huuc.edu.cn/hls/cctv12hd.m3u8
|
||||
CCTV-12,http://lu.wqwqwq.sbs/itv/1000000005000265012.m3u8?cdn=ystenlive
|
||||
CCTV-13,http://ali-m-l.cztv.com/channels/lantian/channel21/1080p.m3u8
|
||||
CCTV-13,https://event.pull.hebtv.com/jishi/cp1.m3u8
|
||||
CCTV-13,http://z.b.bkpcp.top/m.php?id=cctv13
|
||||
|
@ -165,7 +165,6 @@ CCTV-17,http://[2409:8087:1a01:df::4025]:80/TVOD/88888888/224/3221225708/main.m3
|
|||
CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226442/1.m3u8
|
||||
|
||||
卫视频道,#genre#
|
||||
北京卫视,http://satellitepull.cnr.cn/live/wxbtv/playlist.m3u8
|
||||
北京卫视,http://php.jdshipin.com/TVOD/hnyd.php?id=200000001898/460000089800010143
|
||||
北京卫视,http://z.b.bkpcp.top/m.php?id=bjws
|
||||
北京卫视,http://j.x.bkpcp.top/jx/BEIJHD
|
||||
|
@ -175,6 +174,7 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
北京卫视,http://[2409:8087:1a01:df::7005]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226450/index.m3u8
|
||||
北京卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226450/index.m3u8
|
||||
北京卫视,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010143/1.m3u8
|
||||
北京卫视,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010043/1.m3u8
|
||||
东方卫视,http://php.jdshipin.com/TVOD/hnyd.php?id=200000001898/460000089800010054
|
||||
东方卫视,http://z.b.bkpcp.top/m.php?id=dfws#rtsp://115.85.232.19/PLTV/88888910/224/3221225531/10000100000000060000000000107311_0.smil
|
||||
东方卫视,http://goo.bkpcp.top/mg/dfws
|
||||
|
@ -186,8 +186,8 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
东方卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226898/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0uh4lyjjBCCN7TCq21vSIQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
东方卫视,http://iptv.huuc.edu.cn/hls/dfhd.m3u8
|
||||
浙江卫视,http://8.138.7.223/tv/zjws.m3u8
|
||||
浙江卫视,http://ali-m-l.cztv.com:80/channels/lantian/channel001/1080p.m3u8
|
||||
浙江卫视,http://ali-m-l.cztv.com/channels/lantian/channel01/1080p.m3u8
|
||||
浙江卫视,http://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8#mitv://generationnexxxt.com:19806/7bf4b3a65eaf421ab6d71bd8dcc4547a
|
||||
浙江卫视,http://zwebl02.cztv.com/live/channel011080P.m3u8?auth_key=2524708799-0-0-9a1229d8b9d311024ebea08c3fb1d63f
|
||||
浙江卫视,http://zhfivel02.cztv.com/channel01/1080p.m3u8?auth_key=2524708799-0-0-adde67b1b344fdd5e512f30a4ae31915
|
||||
浙江卫视,http://php.jdshipin.com/TVOD/hnyd.php?id=200000001898/460000089800010070
|
||||
|
@ -256,6 +256,7 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
安徽卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226943/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0QmKQ_slRCwvVVUUfxPVbw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
安徽卫视,http://iptv.huuc.edu.cn/hls/ahhd.m3u8
|
||||
山东卫视,http://satellitepull.cnr.cn/live/wxsdws/playlist.m3u8
|
||||
山东卫视,http://116.128.242.83:9901/tsfile/live/1005_1.m3u8
|
||||
山东卫视,http://php.jdshipin.com/TVOD/hnyd.php?id=200000001898/460000089800010066
|
||||
山东卫视,http://z.b.bkpcp.top/m.php?id=sdws
|
||||
山东卫视,http://j.x.bkpcp.top/jx/SHANDHD
|
||||
|
@ -264,7 +265,6 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
山东卫视,http://[2409:8087:1a01:df::4077]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226456/index.m3u8
|
||||
山东卫视,http://[2409:8087:1a01:df::7005]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226456/index.m3u8
|
||||
山东卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226456/index.m3u8
|
||||
山东卫视,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010066/1.m3u8
|
||||
辽宁卫视,http://php.jdshipin.com/TVOD/hljyd.php?id=3221226546
|
||||
辽宁卫视,http://z.b.bkpcp.top/m.php?id=lnws
|
||||
辽宁卫视,http://j.x.bkpcp.top/jx/LIAONHD
|
||||
|
@ -344,6 +344,7 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
湖北卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226477/index.m3u8
|
||||
湖北卫视,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010057/1.m3u8
|
||||
湖北卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226952/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EREB40lnZnCEwjRy7LZuhIQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
广西卫视,http://119.32.12.17:2901/udp/224.1.100.110:11111
|
||||
广西卫视,http://nas.hssvm.com:8888/udp/225.1.2.81:5002
|
||||
广西卫视,http://php.jdshipin.com/TVOD/hljyd.php?id=3221226549
|
||||
广西卫视,http://z.b.bkpcp.top/m.php?id=gxws
|
||||
|
@ -353,7 +354,6 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
广西卫视,http://[2409:8087:74f0:22::7]:6410/270000001128/9900000034/index.m3u8
|
||||
广西卫视,http://[2409:8087:1a01:df::7005]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226549/index.m3u8
|
||||
广西卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226549/index.m3u8
|
||||
广西卫视,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010099/1.m3u8
|
||||
东南卫视,http://satellitepull.cnr.cn/live/wx32fjws/playlist.m3u8
|
||||
东南卫视,http://php.jdshipin.com/TVOD/hnyd.php?id=200000001898/460000089800010096
|
||||
东南卫视,http://z.b.bkpcp.top/m.php?id=dnws
|
||||
|
@ -385,6 +385,7 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
青海卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226529/1.m3u8
|
||||
青海卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226916/1.m3u8
|
||||
吉林卫视,http://satellitepull.cnr.cn/live/wxjlws/playlist.m3u8
|
||||
吉林卫视,http://nas.hssvm.com:8888/udp/225.1.2.26:5002
|
||||
吉林卫视,http://php.jdshipin.com/TVOD/hnyd.php?id=200000001898/460000089800010075
|
||||
吉林卫视,http://z.b.bkpcp.top/m.php?id=jlws
|
||||
吉林卫视,http://j.x.bkpcp.top/jx/JILHD
|
||||
|
@ -394,7 +395,6 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
吉林卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226533/1.m3u8
|
||||
吉林卫视,http://dsj.motem.top:8880/bptv/10000100000000050000000004972569.m3u8
|
||||
黑龙江卫视,http://satellitepull.cnr.cn/live/wx32hljws/playlist.m3u8
|
||||
黑龙江卫视,http://120.76.248.139/live/bfgd/4200000095.m3u8
|
||||
黑龙江卫视,http://php.jdshipin.com/TVOD/hnyd.php?id=200000001898/460000089800010056
|
||||
黑龙江卫视,http://j.x.bkpcp.top/jx/HEILJHD
|
||||
黑龙江卫视,http://l.cztvcloud.com/channels/lantian/SXyuyao3/720p.m3u8
|
||||
|
@ -403,6 +403,7 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
黑龙江卫视,http://[2409:8087:1a01:df::4077]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225799/index.m3u8
|
||||
黑龙江卫视,http://[2409:8087:1a01:df::7005]/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226327/index.m3u8
|
||||
黑龙江卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226327/index.m3u8
|
||||
黑龙江卫视,http://[2409:8087:5e00:24::1e]:6060/200000001898/460000089800010056/1.m3u8
|
||||
安多卫视,http://php.jdshipin.com/TVOD/hljyd.php?id=3221225659
|
||||
安多卫视,http://[2409:8087:1a0b:df::4007]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225659/index.m3u8
|
||||
安多卫视,https://liveout.xntv.tv/a65jur/96iln2.m3u8
|
||||
|
@ -449,7 +450,6 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
山西卫视,http://dsj.motem.top:8880/bptv/10000100000000050000000003887413.m3u8
|
||||
山西卫视,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel7/playlist.m3u8
|
||||
陕西卫视,http://qwt.zhibotv.top:2016/全网通.php?id=陕西卫视
|
||||
陕西卫视,http://gxlive.snrtv.com/sxws-SD.m3u8
|
||||
陕西卫视,http://php.jdshipin.com/TVOD/hnyd.php?id=200000001898/460000089800010113
|
||||
陕西卫视,http://z.b.bkpcp.top/m.php?id=sxws
|
||||
陕西卫视,http://gat.bkpcp.top/ymg.php?id=sxws
|
||||
|
@ -458,6 +458,7 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
陕西卫视,http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221225625/index.m3u8
|
||||
陕西卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226532/1.m3u8
|
||||
陕西卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226926/1.m3u8
|
||||
陕西卫视,http://dsj.motem.top:8880/bptv/10000100000000050000000003887404.m3u8
|
||||
三沙卫视,http://qwt.zhibotv.top:2016/全网通.php?id=三沙卫视
|
||||
三沙卫视,http://[2409:8087:5e00:24::1e]:6060/000000001000/4600001000000000117/1.m3u8
|
||||
三沙卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226544/1.m3u8
|
||||
|
@ -562,8 +563,10 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
福建公共,http://8.138.7.223/tv/fjtv.php?id=6
|
||||
福建新闻,http://satellitepull.cnr.cn/live/wx32fjxwgb/playlist.m3u8
|
||||
福建新闻,https://satellitepull.cnr.cn/live/wx32fjxwgb/playlist.m3u8
|
||||
福建电视剧,http://8.138.7.223/tv/fjtv.php?id=7
|
||||
福建旅游,http://8.138.7.223/tv/fjtv.php?id=8
|
||||
福建经济,http://satellitepull.cnr.cn/live/wx32fjdnjjgb/playlist.m3u8
|
||||
福建文体,http://8.138.7.223/tv/fjtv.php?id=10
|
||||
福建少儿,http://8.138.7.223/tv/fjtv.php?id=2
|
||||
|
||||
甘肃频道,#genre#
|
||||
甘肃经济,https://hls.gstv.com.cn/49048r/10iv1j.m3u8
|
||||
|
@ -581,8 +584,8 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
广东体育,https://epg.pw/stream/7b470f9fc5c305db0c8622117b7b25ca00eb35ba3e93e865cf0ff9df5c736681.m3u8
|
||||
广东体育,http://cdn2.163189.xyz/live/gdty/stream.m3u8
|
||||
广东体育,http://cdn2.132.us.kg/live/gdty/stream.m3u8
|
||||
广东民生,http://119.32.12.17:2901/udp/224.1.100.4:11111
|
||||
广东民生,http://183.237.95.108:9901/tsfile/live/1032_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
广东民生,http://119.32.12.17:2901/udp/224.1.100.4:11111
|
||||
广东民生,http://183.11.239.36:808/hls/18/index.m3u8
|
||||
广东新闻,https://satellitepull.cnr.cn/live/wxgdxwgb/playlist.m3u8
|
||||
广东经济科教,http://119.32.12.17:2901/udp/224.1.100.6:11111
|
||||
|
@ -645,7 +648,7 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
|
||||
湖北频道,#genre#
|
||||
湖北综合,http://[2409:8087:4c0a:22:1::11]:6410/170000001115/UmaiCHAN638072216f7da/index.m3u8?AuthInfo=9kOOdBn7MFF%2F2bWjKgahUUAdKgLqNB5aOAUhcp5CeNLx3R3LdIBdA5q61lut1LwZcw4SC2tJubc%2Bq5t%2F61jvWCtjrJL0x%2BHncPgdmcbBW9I
|
||||
湖北经视,http://113.57.93.165:9900/tsfile/live/1017_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
湖北经视,http://58.19.43.46:9901/tsfile/live/1017_1.m3u8
|
||||
湖北影视,http://58.19.43.46:9901/tsfile/live/1016_1.m3u8
|
||||
湖北教育,http://[2409:8087:4c0a:22:1::11]:6410/170000001115/UmaiCHAN638072a6cbbf6/index.m3u8?AuthInfo=9kOOdBn7MFF%2F2bWjKgahUUAdKgLqNB5aOAUhcp5CeNKTFQuOKNd5i0HMa3ydMWIQ6kJ2fBJGJ77BLTXK72CqUYQsX3ZguYt0954s9hfZTfc
|
||||
湖北生活,http://satellitepull.cnr.cn/live/wx32hubczshgb/playlist.m3u8
|
||||
|
@ -681,13 +684,13 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
哈尔滨新闻综合,http://php.jdshipin.com/TVOD/hljyd.php?id=3221226434
|
||||
哈尔滨影视,http://111.43.126.240:9003/hls/5/index.m3u8
|
||||
哈尔滨影视,https://stream.hrbtv.net/yspd/sd/live.m3u8
|
||||
哈尔滨影视,https://stream.hrbtv.net/yspd/playlist.m3u8
|
||||
哈尔滨影视,http://stream.hrbtv.net/yspd/sd/live.m3u8
|
||||
哈尔滨影视,http://stream.hrbtv.net/yspd/sd/live.m3u8?zheild
|
||||
哈尔滨资讯,http://stream.hrbtv.net/zxpd/sd/live.m3u8
|
||||
哈尔滨生活,http://111.43.126.240:9003/hls/3/index.m3u8
|
||||
哈尔滨生活,https://stream.hrbtv.net/shpd/sd/live.m3u8
|
||||
哈尔滨生活,http://stream.hrbtv.net/shpd/sd/live.m3u8
|
||||
哈尔滨娱乐,http://stream.hrbtv.net/ylpd/sd/live.m3u8
|
||||
哈尔滨娱乐,https://stream.hrbtv.net/ylpd/sd/live.m3u8
|
||||
|
||||
吉林频道,#genre#
|
||||
吉林乡村,https://satellitepull.cnr.cn/live/wxjlxcgb/playlist.m3u8
|
||||
|
@ -735,22 +738,18 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
|
||||
辽宁频道,#genre#
|
||||
辽宁都市,https://ls.qingting.fm/live/1099/64k.m3u8
|
||||
辽宁影视剧,http://120.76.248.139/live/bfgd/4200000070.m3u8
|
||||
辽宁影视剧,http://dassby.qqff.top:99/live/%E8%BE%BD%E5%AE%81%E5%BD%B1%E8%A7%86%E5%89%A7/index.m3u8
|
||||
辽宁生活,http://120.76.248.139/live/bfgd/4200000073.m3u8
|
||||
辽宁影视剧,http://120.76.248.139/live/bfgd/4200000070.m3u8
|
||||
辽宁生活,http://dassby.qqff.top:99/live/辽宁生活/index.m3u8
|
||||
辽宁教育青少,http://120.76.248.139/live/bfgd/4200000075.m3u8
|
||||
辽宁生活,http://120.76.248.139/live/bfgd/4200000073.m3u8
|
||||
辽宁教育青少,http://dassby.qqff.top:99/live/辽宁教育青少/index.m3u8
|
||||
辽宁北方,http://120.76.248.139/live/bfgd/4200000071.m3u8
|
||||
辽宁教育青少,http://120.76.248.139/live/bfgd/4200000075.m3u8
|
||||
辽宁北方,http://dassby.qqff.top:99/live/辽宁北方/index.m3u8
|
||||
辽宁北方,http://120.76.248.139/live/bfgd/4200000071.m3u8
|
||||
朝阳新闻综合,http://120.76.248.139/live/bfgd/4200000282.m3u8
|
||||
|
||||
内蒙古频道,#genre#
|
||||
内蒙古文体娱乐,https://livestream-bt.nmtv.cn/nmtv/2319general.m3u8?txSecret=c7b5c515d2bb6df442492d54955329a3&txTime=771E8800
|
||||
内蒙古经济生活,https://ls.qingting.fm/live/1885/64k.m3u8
|
||||
内蒙古农牧,http://play1-qk.nmtv.cn:80/live/1686561299036179.m3u8
|
||||
内蒙古农牧,https://livestream-bt.nmtv.cn/nmtv/2320general.m3u8?txSecret=4d368a175afa19737a9f5be10af24fe2&txTime=771E8800
|
||||
内蒙古少儿,https://livestream-bt.nmtv.cn/nmtv/2318general.m3u8?txSecret=a2c948908728a0733cecbe1fadea23dc&txTime=771E8800
|
||||
|
||||
宁夏频道,#genre#
|
||||
宁夏经济,https://ls.qingting.fm/live/1841/64k.m3u8
|
||||
|
@ -770,9 +769,7 @@ CCTV-17,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/
|
|||
山西频道,#genre#
|
||||
|
||||
陕西频道,#genre#
|
||||
陕西新闻资讯,http://124.116.183.146:9901/tsfile/live/1000_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
陕西都市青春,http://112.46.105.20:8009/hls/19/index.m3u8
|
||||
陕西都市青春,http://124.116.183.146:9901/tsfile/live/1001_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
农林卫视,http://[2409:8087:8:21::18]:6610/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226544/1.m3u8
|
||||
|
||||
四川频道,#genre#
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
BIN
欧歌/spider.jar
BIN
欧歌/spider.jar
Binary file not shown.
|
@ -1 +1 @@
|
|||
http://160.202.244.9:9666/
|
||||
http://160.202.244.9:1256/
|
39
潇洒/api.json
39
潇洒/api.json
|
@ -314,20 +314,6 @@
|
|||
"version": "200"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "剧咖",
|
||||
"name": "剧咖|APP",
|
||||
"type": 3,
|
||||
"quickSearch": 1,
|
||||
"api": "csp_AppGet",
|
||||
"ext": {
|
||||
"url": "https://ys.xiaoqi0.cn",
|
||||
"dataKey": "jukayingshi88888",
|
||||
"dataIv": "jukayingshi88888",
|
||||
"deviceId": "20d9b2c01d130342a99fdc8d693bfc0cd",
|
||||
"version": "112"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "瓜萌",
|
||||
"name": "瓜萌|APP",
|
||||
|
@ -510,20 +496,6 @@
|
|||
"version": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "晚枫",
|
||||
"name": "晚枫|APP",
|
||||
"type": 3,
|
||||
"quickSearch": 1,
|
||||
"api": "csp_AppGet",
|
||||
"ext": {
|
||||
"url": "http://111.180.202.216:999",
|
||||
"dataKey": "fjhndgbjidfhgjsd",
|
||||
"dataIv": "fjhndgbjidfhgjsd",
|
||||
"deviceId": "2a7baa6ca6f46308cbf1d939bab0586f3",
|
||||
"version": "120"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "诺映",
|
||||
"name": "诺映|APP",
|
||||
|
@ -957,6 +929,17 @@
|
|||
"quickSearch": 0,
|
||||
"filterable": 0
|
||||
},
|
||||
{
|
||||
"key": "河马短剧",
|
||||
"name": "河马|短剧",
|
||||
"type": 3,
|
||||
"api": "./py/河马短剧.py",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"playerType": 2
|
||||
},
|
||||
{
|
||||
"key": "偷乐短剧",
|
||||
"name": "偷乐|短剧",
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"SiteUrl": "https://wogg.banye.tech:7086",
|
||||
"Domains": [
|
||||
"http://woggpan.wogg.lol",
|
||||
"https://wogg.xxooo.cf",
|
||||
"https://wogg.333232.xyz",
|
||||
"https://woggpan.333232.xyz",
|
||||
|
@ -570,8 +571,8 @@
|
|||
"name": "时间",
|
||||
"value": [
|
||||
{
|
||||
"v": "2025",
|
||||
"n": "2025"
|
||||
"v": "2025",
|
||||
"n": "2025"
|
||||
},
|
||||
{
|
||||
"v": "2024",
|
||||
|
|
|
@ -0,0 +1,380 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import requests
|
||||
import re
|
||||
import json
|
||||
import traceback
|
||||
import sys
|
||||
from urllib.parse import quote
|
||||
|
||||
sys.path.append('../../')
|
||||
try:
|
||||
from base.spider import Spider
|
||||
except ImportError:
|
||||
# 定义一个基础接口类,用于本地测试
|
||||
class Spider:
|
||||
def init(self, extend=""):
|
||||
pass
|
||||
|
||||
class Spider(Spider):
|
||||
def __init__(self):
|
||||
self.siteUrl = "https://www.kuaikaw.cn"
|
||||
self.cateManual = {
|
||||
"甜宠": "462",
|
||||
"古装仙侠": "1102",
|
||||
"现代言情": "1145",
|
||||
"青春": "1170",
|
||||
"豪门恩怨": "585",
|
||||
"逆袭": "417-464",
|
||||
"重生": "439-465",
|
||||
"系统": "1159",
|
||||
"总裁": "1147",
|
||||
"职场商战": "943"
|
||||
}
|
||||
self.headers = {
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
|
||||
"Referer": self.siteUrl,
|
||||
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
|
||||
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
|
||||
}
|
||||
|
||||
def getName(self):
|
||||
return "河马短剧"
|
||||
|
||||
def init(self, extend=""):
|
||||
return
|
||||
|
||||
def fetch(self, url, headers=None, retry=2):
|
||||
"""统一的网络请求接口"""
|
||||
if headers is None:
|
||||
headers = self.headers
|
||||
|
||||
for i in range(retry + 1):
|
||||
try:
|
||||
response = requests.get(url, headers=headers, timeout=10, allow_redirects=True)
|
||||
response.raise_for_status()
|
||||
return response
|
||||
except Exception as e:
|
||||
if i == retry:
|
||||
print(f"请求异常: {url}, 错误: {str(e)}")
|
||||
return None
|
||||
continue
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
video_formats = ['.mp4', '.mkv', '.avi', '.wmv', '.m3u8', '.flv', '.rmvb']
|
||||
return any(format in url.lower() for format in video_formats)
|
||||
|
||||
def manualVideoCheck(self):
|
||||
return False
|
||||
|
||||
def homeContent(self, filter):
|
||||
result = {}
|
||||
classes = [{'type_name': k, 'type_id': v} for k, v in self.cateManual.items()]
|
||||
result['class'] = classes
|
||||
|
||||
try:
|
||||
result['list'] = self.homeVideoContent()['list']
|
||||
except:
|
||||
result['list'] = []
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
videos = []
|
||||
try:
|
||||
response = self.fetch(self.siteUrl)
|
||||
if not response:
|
||||
return {'list': []}
|
||||
|
||||
html_content = response.text
|
||||
next_data_pattern = r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>'
|
||||
next_data_match = re.search(next_data_pattern, html_content, re.DOTALL)
|
||||
if not next_data_match:
|
||||
return {'list': []}
|
||||
|
||||
next_data_json = json.loads(next_data_match.group(1))
|
||||
page_props = next_data_json.get("props", {}).get("pageProps", {})
|
||||
|
||||
# 处理轮播图数据
|
||||
if "bannerList" in page_props:
|
||||
for banner in page_props["bannerList"]:
|
||||
if banner.get("bookId"):
|
||||
videos.append({
|
||||
"vod_id": f"/drama/{banner['bookId']}",
|
||||
"vod_name": banner.get("bookName", ""),
|
||||
"vod_pic": banner.get("coverWap", ""),
|
||||
"vod_remarks": f"{banner.get('statusDesc', '')} {banner.get('totalChapterNum', '')}集".strip()
|
||||
})
|
||||
|
||||
# 处理SEO分类推荐
|
||||
if "seoColumnVos" in page_props:
|
||||
for column in page_props["seoColumnVos"]:
|
||||
for book in column.get("bookInfos", []):
|
||||
if book.get("bookId"):
|
||||
videos.append({
|
||||
"vod_id": f"/drama/{book['bookId']}",
|
||||
"vod_name": book.get("bookName", ""),
|
||||
"vod_pic": book.get("coverWap", ""),
|
||||
"vod_remarks": f"{book.get('statusDesc', '')} {book.get('totalChapterNum', '')}集".strip()
|
||||
})
|
||||
|
||||
# 去重处理
|
||||
seen = set()
|
||||
unique_videos = []
|
||||
for video in videos:
|
||||
key = (video["vod_id"], video["vod_name"])
|
||||
if key not in seen:
|
||||
seen.add(key)
|
||||
unique_videos.append(video)
|
||||
|
||||
except Exception as e:
|
||||
print(f"获取首页推荐内容出错: {e}")
|
||||
unique_videos = []
|
||||
|
||||
return {'list': unique_videos}
|
||||
|
||||
def categoryContent(self, tid, pg, filter, extend):
|
||||
result = {'list': [], 'page': pg, 'pagecount': 1, 'limit': 20, 'total': 0}
|
||||
url = f"{self.siteUrl}/browse/{tid}/{pg}"
|
||||
|
||||
response = self.fetch(url)
|
||||
if not response:
|
||||
return result
|
||||
|
||||
html_content = response.text
|
||||
next_data_match = re.search(r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>', html_content, re.DOTALL)
|
||||
if not next_data_match:
|
||||
return result
|
||||
|
||||
try:
|
||||
next_data_json = json.loads(next_data_match.group(1))
|
||||
page_props = next_data_json.get("props", {}).get("pageProps", {})
|
||||
|
||||
current_page = page_props.get("page", 1)
|
||||
total_pages = page_props.get("pages", 1)
|
||||
book_list = page_props.get("bookList", [])
|
||||
|
||||
videos = []
|
||||
for book in book_list:
|
||||
if book.get("bookId"):
|
||||
videos.append({
|
||||
"vod_id": f"/drama/{book['bookId']}",
|
||||
"vod_name": book.get("bookName", ""),
|
||||
"vod_pic": book.get("coverWap", ""),
|
||||
"vod_remarks": f"{book.get('statusDesc', '')} {book.get('totalChapterNum', '')}集".strip()
|
||||
})
|
||||
|
||||
result.update({
|
||||
'list': videos,
|
||||
'page': int(current_page),
|
||||
'pagecount': total_pages,
|
||||
'limit': len(videos),
|
||||
'total': len(videos) * total_pages if videos else 0
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
print(f"分类内容获取出错: {e}")
|
||||
|
||||
return result
|
||||
|
||||
def searchContent(self, key, quick, pg=1):
|
||||
return self.searchContentPage(key, quick, pg)
|
||||
|
||||
def searchContentPage(self, key, quick, pg=1):
|
||||
result = {'list': [], 'page': pg, 'pagecount': 1, 'limit': 20, 'total': 0}
|
||||
search_url = f"{self.siteUrl}/search?searchValue={quote(key)}&page={pg}"
|
||||
|
||||
response = self.fetch(search_url)
|
||||
if not response:
|
||||
return result
|
||||
|
||||
html_content = response.text
|
||||
next_data_match = re.search(r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>', html_content, re.DOTALL)
|
||||
if not next_data_match:
|
||||
return result
|
||||
|
||||
try:
|
||||
next_data_json = json.loads(next_data_match.group(1))
|
||||
page_props = next_data_json.get("props", {}).get("pageProps", {})
|
||||
|
||||
total_pages = page_props.get("pages", 1)
|
||||
book_list = page_props.get("bookList", [])
|
||||
|
||||
videos = []
|
||||
for book in book_list:
|
||||
if book.get("bookId"):
|
||||
videos.append({
|
||||
"vod_id": f"/drama/{book['bookId']}",
|
||||
"vod_name": book.get("bookName", ""),
|
||||
"vod_pic": book.get("coverWap", ""),
|
||||
"vod_remarks": f"{book.get('statusDesc', '')} {book.get('totalChapterNum', '')}集".strip()
|
||||
})
|
||||
|
||||
result.update({
|
||||
'list': videos,
|
||||
'pagecount': total_pages,
|
||||
'total': len(videos) * total_pages if videos else 0
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
print(f"搜索内容出错: {e}")
|
||||
|
||||
return result
|
||||
|
||||
def detailContent(self, ids):
|
||||
result = {'list': []}
|
||||
if not ids:
|
||||
return result
|
||||
|
||||
vod_id = ids[0]
|
||||
if not vod_id.startswith('/drama/'):
|
||||
vod_id = f'/drama/{vod_id}'
|
||||
|
||||
drama_url = f"{self.siteUrl}{vod_id}"
|
||||
response = self.fetch(drama_url)
|
||||
if not response:
|
||||
return result
|
||||
|
||||
html = response.text
|
||||
next_data_match = re.search(r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>', html, re.DOTALL)
|
||||
if not next_data_match:
|
||||
return result
|
||||
|
||||
try:
|
||||
next_data = json.loads(next_data_match.group(1))
|
||||
page_props = next_data.get("props", {}).get("pageProps", {})
|
||||
book_info = page_props.get("bookInfoVo", {})
|
||||
chapter_list = page_props.get("chapterList", [])
|
||||
|
||||
if not book_info.get("bookId"):
|
||||
return result
|
||||
|
||||
# 基本信息
|
||||
categories = [c.get("name", "") for c in book_info.get("categoryList", [])]
|
||||
performers = [p.get("name", "") for p in book_info.get("performerList", [])]
|
||||
|
||||
vod = {
|
||||
"vod_id": vod_id,
|
||||
"vod_name": book_info.get("title", ""),
|
||||
"vod_pic": book_info.get("coverWap", ""),
|
||||
"type_name": ",".join(categories),
|
||||
"vod_year": "",
|
||||
"vod_area": book_info.get("countryName", ""),
|
||||
"vod_remarks": f"{book_info.get('statusDesc', '')} {book_info.get('totalChapterNum', '')}集".strip(),
|
||||
"vod_actor": ", ".join(performers),
|
||||
"vod_director": "",
|
||||
"vod_content": book_info.get("introduction", "")
|
||||
}
|
||||
|
||||
# 处理剧集
|
||||
play_urls = self.processEpisodes(vod_id, chapter_list)
|
||||
if play_urls:
|
||||
vod['vod_play_from'] = '河马剧场'
|
||||
vod['vod_play_url'] = '$$$'.join(play_urls)
|
||||
|
||||
result['list'] = [vod]
|
||||
|
||||
except Exception as e:
|
||||
print(f"详情页解析出错: {e}")
|
||||
traceback.print_exc()
|
||||
|
||||
return result
|
||||
|
||||
def processEpisodes(self, vod_id, chapter_list):
|
||||
play_urls = []
|
||||
episodes = []
|
||||
|
||||
for chapter in chapter_list:
|
||||
chapter_id = chapter.get("chapterId", "")
|
||||
chapter_name = chapter.get("chapterName", "")
|
||||
|
||||
if not chapter_id or not chapter_name:
|
||||
continue
|
||||
|
||||
# 尝试获取直接视频链接
|
||||
video_url = self.getDirectVideoUrl(chapter)
|
||||
if video_url:
|
||||
episodes.append(f"{chapter_name}${video_url}")
|
||||
continue
|
||||
|
||||
# 回退方案
|
||||
episodes.append(f"{chapter_name}${vod_id}${chapter_id}${chapter_name}")
|
||||
|
||||
if episodes:
|
||||
play_urls.append("#".join(episodes))
|
||||
|
||||
return play_urls
|
||||
|
||||
def getDirectVideoUrl(self, chapter):
|
||||
if "chapterVideoVo" not in chapter or not chapter["chapterVideoVo"]:
|
||||
return None
|
||||
|
||||
video_info = chapter["chapterVideoVo"]
|
||||
for key in ["mp4", "mp4720p", "vodMp4Url"]:
|
||||
if key in video_info and video_info[key] and ".mp4" in video_info[key].lower():
|
||||
return video_info[key]
|
||||
return None
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
result = {
|
||||
"parse": 0,
|
||||
"url": id,
|
||||
"header": json.dumps(self.headers)
|
||||
}
|
||||
|
||||
# 如果已经是视频链接直接返回
|
||||
if 'http' in id and ('.mp4' in id or '.m3u8' in id):
|
||||
return result
|
||||
|
||||
# 解析参数
|
||||
parts = id.split('$')
|
||||
if len(parts) < 2:
|
||||
return result
|
||||
|
||||
drama_id = parts[0].replace('/drama/', '')
|
||||
chapter_id = parts[1]
|
||||
|
||||
# 尝试获取视频链接
|
||||
video_url = self.getEpisodeVideoUrl(drama_id, chapter_id)
|
||||
if video_url:
|
||||
result["url"] = video_url
|
||||
|
||||
return result
|
||||
|
||||
def getEpisodeVideoUrl(self, drama_id, chapter_id):
|
||||
episode_url = f"{self.siteUrl}/episode/{drama_id}/{chapter_id}"
|
||||
response = self.fetch(episode_url)
|
||||
if not response:
|
||||
return None
|
||||
|
||||
html = response.text
|
||||
|
||||
# 方法1: 从NEXT_DATA提取
|
||||
next_data_match = re.search(r'<script id="__NEXT_DATA__".*?>(.*?)</script>', html, re.DOTALL)
|
||||
if next_data_match:
|
||||
try:
|
||||
next_data = json.loads(next_data_match.group(1))
|
||||
page_props = next_data.get("props", {}).get("pageProps", {})
|
||||
chapter_info = page_props.get("chapterInfo", {})
|
||||
|
||||
if chapter_info and "chapterVideoVo" in chapter_info:
|
||||
video_info = chapter_info["chapterVideoVo"]
|
||||
for key in ["mp4", "mp4720p", "vodMp4Url"]:
|
||||
if key in video_info and video_info[key] and ".mp4" in video_info[key].lower():
|
||||
return video_info[key]
|
||||
except:
|
||||
pass
|
||||
|
||||
# 方法2: 直接从HTML提取
|
||||
mp4_matches = re.findall(r'(https?://[^"\']+\.mp4)', html)
|
||||
if mp4_matches:
|
||||
for url in mp4_matches:
|
||||
if chapter_id in url or drama_id in url:
|
||||
return url
|
||||
return mp4_matches[0]
|
||||
|
||||
return None
|
||||
|
||||
def localProxy(self, param):
|
||||
return [200, "video/MP2T", {}, param]
|
||||
|
||||
def destroy(self):
|
||||
pass
|
BIN
潇洒/spider.jar
BIN
潇洒/spider.jar
Binary file not shown.
|
@ -51,7 +51,8 @@
|
|||
"http://feimaoai.site",
|
||||
"http://www.labi88.sbs",
|
||||
"http://fmao.site",
|
||||
"https://fmao.shop"
|
||||
"https://fmao.shop",
|
||||
"http://xiaocge.fun"
|
||||
],
|
||||
"threadinfo": {
|
||||
"chunksize": 512,
|
||||
|
@ -241,8 +242,7 @@
|
|||
"name": "🎬┃荐片┃影视",
|
||||
"api": "csp_Jianpian",
|
||||
"type": 3,
|
||||
"playerType": "2",
|
||||
"ext": "http://api2.rinhome.com"
|
||||
"playerType": "2"
|
||||
},
|
||||
{
|
||||
"key": "csp_Quanwk",
|
||||
|
|
BIN
肥猫/spider.jar
BIN
肥猫/spider.jar
Binary file not shown.
|
@ -684,10 +684,10 @@
|
|||
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}",
|
||||
"logo":"https://epg.v1.mk/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name":"平台直播",
|
||||
"type":0,
|
||||
"url":"http://tv.iill.top/m3u/Live",
|
||||
{
|
||||
"name": "平台直播",
|
||||
"type": 0,
|
||||
"url": "./lives/平台直播.txt",
|
||||
"ua":"okhttp/3.15",
|
||||
"playerType":2
|
||||
}
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html><html lang="en" id="facebook"><head><title>Error</title><meta charset="utf-8" /><meta http-equiv="Cache-Control" content="no-cache" /><meta name="robots" content="noindex,nofollow" /><style nonce="vdMiEwzr">html, body { color: #333; font-family: 'Lucida Grande', 'Tahoma', 'Verdana', 'Arial', sans-serif; margin: 0; padding: 0; text-align: center;}
|
||||
#header { height: 30px; padding-bottom: 10px; padding-top: 10px; text-align: center;}
|
||||
#icon { width: 30px;}
|
||||
.core { margin: auto; padding: 1em 0; text-align: left; width: 904px;}
|
||||
h1 { font-size: 18px;}
|
||||
p { font-size: 13px;}
|
||||
.footer { border-top: 1px solid #ddd; color: #777; float: left; font-size: 11px; padding: 5px 8px 6px 0; width: 904px;}</style></head><body><div id="header"><a href="//www.facebook.com/"><img id="icon" src="//static.facebook.com/images/logos/facebook_2x.png" /></a></div><div class="core"><h1>Sorry, something went wrong.</h1><p>We're working on getting this fixed as soon as we can.</p><p><a id="back" href="//www.facebook.com/">Go back</a></p><div class="footer"> Meta © 2025 · <a href="//www.facebook.com/help/?ref=href052">Help</a></div></div><script nonce="vdMiEwzr">
|
||||
document.getElementById("back").onclick = function() {
|
||||
if (history.length > 1) {
|
||||
history.back();
|
||||
return false;
|
||||
}
|
||||
};
|
||||
</script></body></html><!-- @codegen-command : phps GenerateErrorPages --><!-- @generated SignedSource<<a2e14b6d3c6a99777af41324d62f78e6>> -->
|
Loading…
Reference in New Issue