|
|
|
@ -26,13 +26,47 @@ function getFile(lx) { |
|
|
|
|
//获取所有接口或解析
|
|
|
|
|
function getDatas(lx, isyx) { |
|
|
|
|
let datalist = []; |
|
|
|
|
let sourcefile = getFile(lx); |
|
|
|
|
let sourcedata = fetch(sourcefile); |
|
|
|
|
if(sourcedata != ""){ |
|
|
|
|
try{ |
|
|
|
|
eval("datalist=" + sourcedata+ ";"); |
|
|
|
|
}catch(e){ |
|
|
|
|
datalist = []; |
|
|
|
|
if(getItem('runMode','1')=='1'){ |
|
|
|
|
let sourcefile = getFile(lx); |
|
|
|
|
let sourcedata = fetch(sourcefile); |
|
|
|
|
if(sourcedata != ""){ |
|
|
|
|
try{ |
|
|
|
|
eval("datalist=" + sourcedata+ ";"); |
|
|
|
|
}catch(e){ |
|
|
|
|
datalist = []; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}else if(getItem('runMode','1')=='2'){ |
|
|
|
|
if(Juconfig['dySource']){ |
|
|
|
|
let dyJkTmpFile = "hiker://files/_cache/"+md5(Juconfig['dySource'])+".txt"; |
|
|
|
|
if(!fileExist(dyJkTmpFile)){ |
|
|
|
|
let contnet = getJkContnet(Juconfig['dySource']); |
|
|
|
|
if(contnet){ |
|
|
|
|
writeFile(dyJkTmpFile, contnet); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if(fileExist(dyJkTmpFile)){ |
|
|
|
|
try{ |
|
|
|
|
let data = JSON.parse(fetch(dyJkTmpFile)); |
|
|
|
|
let jklist = data.sites || []; |
|
|
|
|
jklist.forEach(obj=>{ |
|
|
|
|
let arr; |
|
|
|
|
if(/^csp_AppYs/.test(obj.api)){ |
|
|
|
|
arr = { "name": obj.name, "url": obj.ext, "type": getapitype(obj.ext)}; |
|
|
|
|
}else if((obj.type==1||obj.type==0)&&obj.api.indexOf('cms.nokia.press')==-1){ |
|
|
|
|
arr = { "name": obj.name, "url": obj.api, "type": "cms"}; |
|
|
|
|
if(obj.categories){ |
|
|
|
|
arr["categories"] = obj.categories; |
|
|
|
|
} |
|
|
|
|
}else if(obj.type==4){ |
|
|
|
|
arr = { "name": obj.name, "url": obj.api, "type": "t4", "ext": obj.ext}; |
|
|
|
|
} |
|
|
|
|
if(arr){ |
|
|
|
|
datalist.push(arr); |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}catch(e){} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -47,7 +81,22 @@ function getDatas(lx, isyx) { |
|
|
|
|
let result = withoutStop.concat(withStop); |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//获取在线文件内容
|
|
|
|
|
function getJkContnet(url) { |
|
|
|
|
if(!url.startsWith('http')){ |
|
|
|
|
return ''; |
|
|
|
|
} |
|
|
|
|
if(url.startsWith('https://raw.github')){ |
|
|
|
|
let proxys = $.require('ghproxy').getproxy(); |
|
|
|
|
for(let i=0;i<proxys.length;i++){ |
|
|
|
|
let content = fetch(proxys[i]+url, {timeout:3000}); |
|
|
|
|
if (content && !content.trim().startsWith('<!DOCTYPE html>') && !content.startsWith('<html>')) { |
|
|
|
|
return content; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return fetch(url, {timeout:10000}); |
|
|
|
|
} |
|
|
|
|
//获取分组接口列表
|
|
|
|
|
function getGroupLists(datas, k) { |
|
|
|
|
k = k=="全部"?"":k; |
|
|
|
@ -320,6 +369,26 @@ function sortByPinyin(arr) { |
|
|
|
|
} |
|
|
|
|
return arrNew |
|
|
|
|
} |
|
|
|
|
//app类接口类型自动
|
|
|
|
|
function getapitype(apiurl) { |
|
|
|
|
if(apiurl){ |
|
|
|
|
if(apiurl.includes('.vod')){ |
|
|
|
|
return "v1"; |
|
|
|
|
}else if(apiurl.includes('/app/')){ |
|
|
|
|
return "app"; |
|
|
|
|
}else if(apiurl.includes('app.php')){ |
|
|
|
|
return "v2"; |
|
|
|
|
}else if(/iptv|Chengcheng/.test(apiurl)){ |
|
|
|
|
return "iptv"; |
|
|
|
|
}else if(apiurl.includes('provide/vod/')){ |
|
|
|
|
return "cms"; |
|
|
|
|
}else{ |
|
|
|
|
return ""; |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
return ""; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//文字上色
|
|
|
|
|
function colorTitle(title, Color) { |
|
|
|
|
return '<font color="' + Color + '">' + title + '</font>'; |
|
|
|
|