上传文件至 jtxtv09/js

This commit is contained in:
2025-11-06 16:48:17 +00:00
parent 9fc1663634
commit 0800db1921
5 changed files with 305 additions and 0 deletions

22
jtxtv09/js/310直播.js Normal file
View File

@@ -0,0 +1,22 @@
var rule = {
title:'310直播',
host:'http://www.310.tv',
url:'/?s=0&t=1&a=fyclass&g=fypage',
searchUrl:'',
searchable:0,
quickSearch:0,
class_name:'热门&足球&篮球',
class_url:'0&1&2',
headers:{
'User-Agent':'MOBILE_UA'
},
timeout:5000,
play_parse:false,
lazy:'',
limit:6,
double:false,
推荐:'*',
一级:'.list_content a;.jiabifeng&&p:lt(5)&&Text;.feleimg img&&src;a&&t-nzf-o;a&&href',
二级:'*',
搜索:'',
}

73
jtxtv09/js/360吧.js Normal file
View File

@@ -0,0 +1,73 @@
globalThis.getVideos = function(link, key) {
let html = request(link);
let json = JSON.parse(html);
let data = json.data;
data = data[key];
let videos = data.map((n) => {
let id = n.url;
let name = n.league_name_zh + ' ' + n.home_team_zh + ' VS ' + n.away_team_zh;
let pic = n.cover;
let remarks = n.nickname;
return {
vod_id: id,
vod_name: name,
vod_pic: pic,
vod_remarks: remarks,
};
});
return videos
}
var rule = {
类型: '影视', //影视|听书|漫画|小说
title: '360吧[球]',
host: 'https://m.360ba.co/',
homeUrl: '/api/web/h5_index',
url: '/api/web/live_lists/fyclass',
searchUrl: '/api/web/search?keyword=**',
searchable: 2,
quickSearch: 0,
filterable: 0,
headers: {
'User-Agent': 'MOBILE_UA',
},
timeout: 5000,
class_name: '全部&足球&篮球&综合',
class_url: '1&2&3&99',
play_parse: true,
pagecount: {
"1": 1,
"2": 1,
"3": 1,
"99": 1,
},
lazy: $js.toString(() => {
input = {
parse: 0,
url: input,
header: rule.headers
};
}),
预处理: $js.toString(() => {
Object.assign(rule.headers, {
'Referer': rule.host,
'Origin': rule.host,
});
}),
推荐: $js.toString(() => {
VODS = getVideos(input, 'hot_matches');
}),
一级: $js.toString(() => {
VODS = [];
if (MY_PAGE <= 1) {
VODS = getVideos(input, 'data');
}
}),
二级: '*',
搜索: $js.toString(() => {
VODS = [];
if (MY_PAGE <= 1) {
VODS = getVideos(input, 'ball');
}
}),
}

40
jtxtv09/js/56动漫.js Normal file
View File

@@ -0,0 +1,40 @@
var rule = {
title: '56动漫',
host: 'https://www.56dm.cc/',
url: 'https://www.56dm.cc/type/fyclass-fypage.html',
searchUrl: 'https://www.56dm.cc/search/**----------fypage---.html',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选,
headers: {
'User-Agent': 'UC_UA', // "Cookie": ""
}, // class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
class_parse: '.snui-header-menu-nav li:gt(0):lt(6);a&&Text;a&&href;.*/(.*?).html',
play_parse: true,
lazy: `js:
if(/\\.(m3u8|mp4)/.test(input)){
input = {parse:0,url:input}
}else{
if(rule.parse_url.startsWith('json:')){
let purl = rule.parse_url.replace('json:','')+input;
let html = request(purl);
input = {parse:0,url:JSON.parse(html).url}
}else{
input= rule.parse_url+input;
}
}
`,
limit: 6,
推荐: '.cCBf_FAAEfbc;li;a&&title;.lazyload&&data-original;.dAD_BBCI&&Text;a&&href',
double: true, // 推荐内容是否双层定位
一级: '.cCBf_FAAEfbc li;a&&title;a&&data-original;.dAD_BBCI&&Text;a&&href',
二级: {
"title": "h1&&Text",
"img": ".stui-content__thumb .lazyload&&data-original",
"desc": ".cCBf_DABCcac__hcIdeE p:eq(0)&&Text;.cCBf_DABCcac__hcIdeE p:eq(1)&&Text;.cCBf_DABCcac__hcIdeE p:eq(2)&&Text;.cCBf_DABCcac__hcIdeE p:eq(3)&&Text;.cCBf_DABCcac__hcIdeE p:eq(4)&&Text",
"content": ".detail&&Text",
"tabs": ".channel-tab li",
"lists": ".play-list-content:eq(#id) li"
},
搜索: '.cCBf_FAAEfbc__dbD;a&&title;.lazyload&&data-original;.dAD_BBCI&&Text;a&&href;.cCBf_FAAEfbc__hcIdeE&&p:eq(0) p&&Text',
}

61
jtxtv09/js/88看球.js Normal file
View File

@@ -0,0 +1,61 @@
var rule = {
title:'88看球',
// host:'http://www.88kanqiu.cc',
host:'http://www.88kanqiu.bar/',
url: "/match/fyclass/live",
searchUrl: "",
searchable: 0,
quickSearch: 0,
class_parse: ".nav-pills li;a&&Text;a&&href;/match/(\\d+)/live",
headers: {
"User-Agent": "PC_UA",
},
timeout: 5000,
play_parse: true,
pagecount:{"1":1,"2":1,"4":1,"22":1,"8":1,"9":1,"10":1,"14":1,"15":1,"12":1,"13":1,"16":1,"28":1,"7":1,"11":1,"33":1,"27":1,"23":1,"26":1,"3":1,"21":1,"18":1},
lazy: `js:
if(/embed=/.test(input)) {
let url = input.match(/embed=(.*?)&/)[1];
url = base64Decode(url);
input = {
jx:0,
url: url.split('#')[0],
parse: 0
}
} else if (/\?url=/.test(input)){
input = {
jx:0,
url: input.split('?url=')[1].split('#')[0],
parse: 0
}
} else {
input
}
`,
limit: 6,
double: false,
推荐: "*",
一级: ".list-group .group-game-item;.d-none&&Text;img&&src;.btn&&Text;a&&href",
二级: {
title: ".game-info-container&&Text;.customer-navbar-nav li&&Text",
img: "img&&src",
desc: ";;;div.team-name:eq(0)&&Text;div.team-name:eq(1)&&Text",
content: "div.game-time&&Text",
tabs: "js:TABS=['实时直播']",
lists: `js:
LISTS = [];
let html = request(input.replace('play', 'play-url'));
let pdata = JSON.parse(html).data;
pdata = pdata.slice(6);
pdata = pdata.slice(0, -2);
pdata = base64Decode(pdata);
// log(pdata);
let jo = JSON.parse(pdata).links;
let d = jo.map(function (it) {
return it.name + '$' + urlencode(it.url)
});
LISTS.push(d)
`,
},
搜索: "",
};

109
jtxtv09/js/APPV2.js Normal file
View File

@@ -0,0 +1,109 @@
/**
* 传参 ?type=url&params=http://122.228.85.203:1000@泽少1
* 传参 ?type=url&params=http://122.228.85.203:1000@泽少2
*/
var rule = {
title: 'APPV2[模板]',
author: '道长',
version: '20241012 beta1',
update_info: `
20241012:
1.根据群友嗷呜的appv2模板修改成可传参源类似采集之王用法传参
`.trim(),
host: '',
url: '/api.php/app/video?tid=fyclassfyfilter&limit=20&pg=fypage',
filter_url: '',
filter: {},
homeUrl: '/api.php/app/index_video',
detailUrl: '/api.php/app/video_detail?id=fyid',
searchUrl: '/api.php/app/search?text=**&pg=fypage',
parseUrl: '',
searchable: 2,
quickSearch: 1,
filterable: 1,
headers: {
'User-Agent': 'okhttp/4.1.0'
},
params: 'http://122.228.85.203:1000$http://122.228.85.203:1000/play?url=',
hostJs: $js.toString(() => {
HOST = rule.params.split('$')[0];
}),
预处理: $js.toString(() => {
log(`传入参数:${rule.params}`);
let _host = rule.params.split('$')[0];
rule.parseUrl = rule.params.split('$')[1];
let _url = _host.rstrip('/') + '/api.php/app/nav?token';
let _headers = {'User-Agent': 'Dart/2.14 (dart:io)'};
let html = request(_url, {headers: _headers});
let data = JSON.parse(html);
let _classes = [];
let _filter = {};
let _filter_url = '';
let dy = {"class": "类型", "area": "地区", "lang": "语言", "year": "年份", "letter": "字母", "by": "排序"};
let jsonData = data.list;
for (let k = 0; k < jsonData.length; k++) {
let hasNonEmptyField = false;
let _obj = {
type_name: jsonData[k].type_name,
type_id: jsonData[k].type_id,
};
_classes.push(_obj);
for (let key in dy) {
if (key in jsonData[k].type_extend && jsonData[k].type_extend[key].trim() !== "") {
hasNonEmptyField = true;
break
}
}
if (hasNonEmptyField) {
_filter[String(jsonData[k].type_id)] = [];
for (let dkey in jsonData[k].type_extend) {
if (dkey in dy && jsonData[k].type_extend[dkey].trim() !== "") {
if (k === 0) {
_filter_url += `&${dkey}={{fl.${dkey}}}`
}
let values = jsonData[k].type_extend[dkey].split(',');
let valueArray = values.map(value => ({"n": value.trim(), "v": value.trim()}));
_filter[String(jsonData[k].type_id)].push({"key": dkey, "name": dy[dkey], "value": valueArray})
}
}
}
}
rule.classes = _classes;
rule.filter = _filter;
rule.filter_url = _filter_url;
}),
class_parse: $js.toString(() => {
input = rule.classes;
}),
play_parse: true,
lazy: $js.toString(() => {
if (!/^http/.test(input)) {
input = rule.parseUrl + input
} else {
input = {
url: input,
parse: 0,
header: ''
}
}
}),
推荐: $js.toString(() => {
let data = JSON.parse(request(input)).list;
let com = [];
data.forEach(item => {
if (Array.isArray(item.vlist) && item.vlist.length !== 0) {
com = com.concat(item.vlist)
}
})
VODS = com
}),
一级: $js.toString(() => {
VODS = JSON.parse(request(input)).list
}),
二级: $js.toString(() => {
VOD = JSON.parse(request(input)).data
}),
搜索: '*',
}