更新 'SrcJyData.js'

master
src48597962 9 months ago
parent f1be8024a1
commit 2dfe6d9cc0
  1. 156
      SrcJyData.js

@ -705,6 +705,18 @@ function getErData(jkdata) {
"parse_api": parse_api "parse_api": parse_api
}; };
} }
// extData缓存
function extDataCache(jkdata) {
if(jkdata.ext && /^http/.test(jkdata.ext) && /^hiker/.test(jkdata.url)){
if (!fileExist(jkdata.url)) {
let content = fetch(extfile, {timeout:2000});
if (content) {
writeFile(jkdata.url, content);
}
}
}
return fetch(jkdata.url);
}
// 获取一级数据 // 获取一级数据
function getYiData(jkdata) { function getYiData(jkdata) {
let d = []; let d = [];
@ -714,7 +726,7 @@ function getYiData(jkdata) {
let api_ua = jkdata.ua||"MOBILE_UA"; let api_ua = jkdata.ua||"MOBILE_UA";
api_ua = api_ua=="MOBILE_UA"?MOBILE_UA:api_ua=="PC_UA"?PC_UA:api_ua; api_ua = api_ua=="MOBILE_UA"?MOBILE_UA:api_ua=="PC_UA"?PC_UA:api_ua;
let vodurlhead,classurl,listurl,listnode; let vodurlhead,classurl,listurl,listnode,extdata;
if(api_name&&api_type&&api_url){ if(api_name&&api_type&&api_url){
if (api_type=="v1") { if (api_type=="v1") {
let date = new Date(); let date = new Date();
@ -745,6 +757,14 @@ function getYiData(jkdata) {
classurl = api_url + "?ac=list"; classurl = api_url + "?ac=list";
listurl = api_url + '?ac=videolist&pg='; listurl = api_url + '?ac=videolist&pg=';
listnode = "html.list"; listnode = "html.list";
} else if (api_type=="XBPQ") {
let cacheData = extDataCache(jkdata)
if(cacheData){
eval("extdata = " + cacheData);
let host = extdata["主页url"];
classurl = extdata["分类"];
listurl = /^http/.test(extdata["分类url"])?extdata["分类url"]:host + extdata["分类url"];
}
} else { } else {
log('api类型错误') log('api类型错误')
} }
@ -754,74 +774,96 @@ function getYiData(jkdata) {
const Color = "#3399cc"; const Color = "#3399cc";
let typeclass = []; let typeclass = [];
try{ try{
if(api_type=="XBPQ"){
let gethtml = request(classurl, { headers: { 'User-Agent': api_ua }, timeout:5000 }); if(extdata["分类"].indexOf('$')>-1){
if (api_type=="v1") { let types = extdata["分类"].split('#');
let typehtml = JSON.parse(gethtml); typeclass = types.map((type)=>{
let typelist = typehtml.data.list||typehtml.data.typelist;
typeclass = typelist.map((list)=>{
return {
"type_id": list.type_id,
"type_pid": list.type_pid,
"type_name": list.type_name
}
})
} else if (/app|v2/.test(api_type)) {
let typehtml = JSON.parse(gethtml);
let typelist = typehtml.list||typehtml.data;
typeclass = typelist.map((list)=>{
return {
"type_id": list.type_id,
"type_pid": 0,
"type_name": list.type_name
}
})
} else if (api_type=="iptv") {
let type_dict = {
comic: '动漫',
movie: '电影',
tvplay: '电视剧',
tvshow: '综艺',
movie_4k: '4k',
hanguoju: '韩剧',
oumeiju: '欧美剧',
tiyu: '体育'
};
let typehtml = JSON.parse(gethtml);
typeclass = typehtml.map((list)=>{
if(type_dict[list]){
return { return {
"type_id": list, "type_id": type.split('$')[1],
"type_pid": 0, "type_pid": 0,
"type_name": type_dict[list] "type_name": type.split('$')[0]
} }
})
}else if(extdata["分类"].indexOf('&')>-1&&extdata["分类值"]){
let typenames = extdata["分类"].split('&');
let typeids = extdata["分类值"].split('&');
for(let i in typeids){
typeclass.push({
"type_id": typeids[i],
"type_pid": 0,
"type_name": typenames[i]
})
} }
}) }
typeclass = typeclass.filter(n => n); }else{
} else if (api_type=="cms") { let gethtml = request(classurl, { headers: { 'User-Agent': api_ua }, timeout:5000 });
if(/<\?xml/.test(gethtml)){ if (api_type=="v1") {
let typelist = pdfa(gethtml,'class&&ty'); let typehtml = JSON.parse(gethtml);
let typelist = typehtml.data.list||typehtml.data.typelist;
typeclass = typelist.map((list)=>{ typeclass = typelist.map((list)=>{
return { return {
"type_id": String(xpath(list,`//ty/@id`)).trim(), "type_id": list.type_id,
"type_pid": list.type_pid,
"type_name": list.type_name
}
})
} else if (/app|v2/.test(api_type)) {
let typehtml = JSON.parse(gethtml);
let typelist = typehtml.list||typehtml.data;
typeclass = typelist.map((list)=>{
return {
"type_id": list.type_id,
"type_pid": 0, "type_pid": 0,
"type_name": String(xpath(list,`//ty/text()`)).trim() "type_name": list.type_name
} }
}) })
}else{ } else if (api_type=="iptv") {
let type_dict = {
comic: '动漫',
movie: '电影',
tvplay: '电视剧',
tvshow: '综艺',
movie_4k: '4k',
hanguoju: '韩剧',
oumeiju: '欧美剧',
tiyu: '体育'
};
let typehtml = JSON.parse(gethtml); let typehtml = JSON.parse(gethtml);
typeclass = typehtml.class; typeclass = typehtml.map((list)=>{
} if(type_dict[list]){
if(jkdata.categories){ return {
for(var i=0;i<typeclass.length;i++){ "type_id": list,
if(jkdata.categories.indexOf(typeclass[i].type_name)==-1){ "type_pid": 0,
typeclass.splice(i,1); "type_name": type_dict[list]
i = i -1; }
}
})
typeclass = typeclass.filter(n => n);
} else if (api_type=="cms") {
if(/<\?xml/.test(gethtml)){
let typelist = pdfa(gethtml,'class&&ty');
typeclass = typelist.map((list)=>{
return {
"type_id": String(xpath(list,`//ty/@id`)).trim(),
"type_pid": 0,
"type_name": String(xpath(list,`//ty/text()`)).trim()
}
})
}else{
let typehtml = JSON.parse(gethtml);
typeclass = typehtml.class;
}
if(jkdata.categories){
for(var i=0;i<typeclass.length;i++){
if(jkdata.categories.indexOf(typeclass[i].type_name)==-1){
typeclass.splice(i,1);
i = i -1;
}
} }
} }
}else {
log('api类型错误')
} }
} else {
log('api类型错误')
} }
}catch(e){ }catch(e){
log(api_name+' 接口访问异常,请更换接口!获取分类失败>'+e.message); log(api_name+' 接口访问异常,请更换接口!获取分类失败>'+e.message);
@ -895,7 +937,7 @@ function getYiData(jkdata) {
let lists = []; let lists = [];
try{ try{
if(api_type=="XBPQ"){ if(api_type=="XBPQ"){
MY_URL = listurl.replace('{catePg}',jkdata["起始页"]?MY_PAGE>jkdata["起始页"]?MY_PAGE:"":MY_PAGE).replace('{cateId}',getMyVar('SrcJu_dianbo$type_id','1')); MY_URL = listurl.replace('{catePg}',extdata["起始页"]?MY_PAGE>extdata["起始页"]?MY_PAGE:"":MY_PAGE).replace('{cateId}',getMyVar('SrcJu_dianbo$type_id','1'));
}else{ }else{
MY_URL = listurl + MY_PAGE; MY_URL = listurl + MY_PAGE;
if(api_type=="v2"||api_type=="app"){ if(api_type=="v2"||api_type=="app"){

Loading…
Cancel
Save