Update SrcJyAuto.js

assistant
jevons0411 2 years ago
parent da896dc181
commit c897a2122d
  1. 122
      SrcJyAuto.js

@ -303,8 +303,11 @@ var aytmParse = function (vipUrl,parseStr) {
var parsename = "";
var parseurl = "";
var lx = "";
var Jparselist = [];
var Uparselist = [];
var parselist = [];
//var Jparselist = [];
//var Uparselist = [];
var Jparsenum = 0;
var Uparsenum = 0;
var x5jxlist = []; //x5嗅探接口存放数组
var x5nmlist = []; //x5嗅探接口存放数组
var dellist = [];
@ -365,12 +368,18 @@ var aytmParse = function (vipUrl,parseStr) {
if(stopfrom.indexOf(from)==-1){
//自动筛选模式时,sort只做排序使用,不包含停用片源的解析,则加入解析接口组
if(lx=="J"){
let parsearr = { "id" : i,"sort" : sort, "name" : parsename };
Jparselist.push(parsearr);
//let parsearr = { "id" : i,"sort" : sort, "name" : parsename };
//Jparselist.push(parsearr);
let arr = { "id": i,"sort": sort, "name": parsename, "lx": "J" };
parselist.push(arr);
Jparsenum ++;
}
if(lx=="U"){
let urlarr = { "id" : i,"sort" : sort, "name" : parsename, "url" : parseurl };
Uparselist.push(urlarr);
//let urlarr = { "id" : i,"sort" : sort, "name" : parsename, "url" : parseurl };
//Uparselist.push(urlarr);
let arr = { "id": i,"sort": sort, "name": parsename, "url": parseurl, "lx": "U" };
parselist.push(arr);
Uparsenum ++;
}
}else{
if(stopfrom.length>=config.fromcount&&stopfrom.indexOf(from)>-1){
@ -385,12 +394,18 @@ var aytmParse = function (vipUrl,parseStr) {
}else{
//非自动筛选解析时按失败次数,小于设置的次数、且解析接口名有效,加入解析接口组
if(lx=="J"){
let parsearr = { "id" : i,"sort" : sort, "name" : parsename };
Jparselist.push(parsearr);
//let parsearr = { "id" : i,"sort" : sort, "name" : parsename };
//Jparselist.push(parsearr);
let arr = { "id": i,"sort": sort, "name": parsename, "lx": "J" };
parselist.push(arr);
Jparsenum ++;
}
if(lx=="U"){
let urlarr = { "id" : i,"sort" : sort, "name" : parsename, "url" : parseurl };
Uparselist.push(urlarr);
//let urlarr = { "id" : i,"sort" : sort, "name" : parsename, "url" : parseurl };
//Uparselist.push(urlarr);
let arr = { "id": i,"sort": sort, "name": parsename, "url": parseurl, "lx": "U" };
parselist.push(arr);
Uparsenum ++;
}
}
}
@ -401,15 +416,22 @@ var aytmParse = function (vipUrl,parseStr) {
writeFile("hiker://files/cache/SrcSet.js", 'var userconfig = ' + JSON.stringify(config))
if(config.printlog == 1){log("√建议删除解析口:"+dellist);}
}
if(Jparselist.length == 0 && Uparselist.length == 0){
//if(Jparselist.length == 0 && Uparselist.length == 0){
if(parselist.length == 0){
if(config.printlog==1){log("√没有可用的解析接口,需重新配置")};
hideLoading();
return 'toast://解析口全部无效了,重新配置吧';
}else{
//解析接口排序,将之前失败的排在后面
parselist.sort(sortData)
}
//解析接口排序,将之前失败的排在后面
if(Jparselist.length > 0){Jparselist.sort(sortData)};
if(Uparselist.length > 0){Uparselist.sort(sortData)};
if(config.printlog==1){log("√有效解析接口数:"+(Jparselist.length+Uparselist.length))};
//解析接口排序,将之前失败的排在后面
//if(Jparselist.length > 0){Jparselist.sort(sortData)};
//if(Uparselist.length > 0){Uparselist.sort(sortData)};
//if(config.printlog==1){log("√有效解析接口数:"+(Jparselist.length+Uparselist.length))};
if(config.printlog==1){
log("√有效解析数:"+parselist.length+",JS解析:"+Jparsenum+",URL解析:"+Uparsenum)
};
var exclude = /404\.m3u8|xiajia\.mp4|余额不足\.m3u8/;//设置排除地址
var contain = /\.mp4|\.m3u8|\.flv|\.avi|\.mpeg|\.wmv|\.mov|\.rmvb|\.dat|qqBFdownload|mime=video%2F|video_mp4/;//设置符合条件的正确地址
@ -428,6 +450,74 @@ var aytmParse = function (vipUrl,parseStr) {
}
if(config.testcheck==1){multiline=10}
//明码解析线程代码
var parsetask = function(obj) {
if(/^function/.test(obj.ulist.parse.trim())){
eval('var JSparse = '+obj.ulist.parse)
var rurl = JSparse(obj.vipUrl);
if(obj.testurl(rurl,obj.ulist.name)==0){
rurl = "";
}
obj.ulist['x5'] = 0;
return {url: rurl,ulist: obj.ulist};
}else{
var taskheader = {withStatusCode:true,timeout:5000};
let head = obj.ulist.header||{};
if(JSON.stringify(head) != "{}"){
taskheader['header'] = head;
}
var getjson = JSON.parse(request(obj.ulist.parse+obj.vipUrl,taskheader));
if (getjson.body&&getjson.statusCode==200){
var gethtml = getjson.body;
var rurl = "";
try {
rurl = JSON.parse(gethtml).url||JSON.parse(gethtml).data.url||JSON.parse(gethtml).data;
} catch (e) {
if(/\.m3u8|\.mp4/.test(getjson.url)&&getjson.url.indexOf('=http')==-1){
rurl = getjson.url;
}else if(/\.m3u8|\.mp4|\.flv/.test(gethtml)){
try {
if(gethtml.indexOf('urls = "') != -1){
rurl = gethtml.match(/urls = "(.*?)"/)[1];
}else if(gethtml.indexOf('"url":"') != -1){
rurl = gethtml.match(/"url":"(.*?)"/)[1];
}else if(gethtml.indexOf('id="video" src="') != -1){
rurl = gethtml.match(/id="video" src="(.*?)"/)[1];
}else if(gethtml.indexOf('url: "') != -1){
rurl = gethtml.match(/url: "(.*?)"/)[1];
}else{
//if(printlog==1){log('将日志提交给作者,帮助完善解析逻辑>>>'+gethtml)};
}
} catch (e) {
if(printlog==1){log('明码获取错误:'+e.message)};
}
}
}
var x5 = 0;
if(rurl == ""){
if(!/404 /.test(gethtml)&&obj.ulist.parse.indexOf('key=')==-1){
if(x5jxlist.length<=5){
x5jxlist.push(obj.ulist.parse);
if(printlog==1){log(obj.ulist.name + '>加入x5嗅探列表');}
x5namelist.push(obj.ulist.name);
}
x5 = 1;
}
}else{
if(obj.testurl(rurl,obj.ulist.name)==0){
rurl = "";
}
}
obj.ulist['x5'] = x5;
return {url: rurl,ulist: obj.ulist};
}else{
obj.ulist['x5'] = 0;
return {url: "",ulist: obj.ulist};
}
}
};
/*
if(Jparselist.length>0){
if(config.testcheck==1){showLoading('JS免嗅解析列表,检测中')};
if(config.printlog==1){log("√进入JS列表,接口数:"+Jparselist.length)};
@ -703,7 +793,7 @@ var aytmParse = function (vipUrl,parseStr) {
}
}//批量结果循环
}
}
}*/
if(issort==1&&isparse==0){writeFile("hiker://files/cache/SrcSort.json", JSON.stringify(sortlist))};
//上面js免嗅、json解析、剔除打不开网站做完了

Loading…
Cancel
Save