更新 'SrcJuying.js'

master
src48597962 8 months ago
parent 47cf476ba1
commit 0279cd7440
  1. 234
      SrcJuying.js

@ -94,6 +94,8 @@ function dianboerji() {
let d = []; let d = [];
let jkdata = MY_PARAMS.data; let jkdata = MY_PARAMS.data;
let name = MY_PARAMS.pageTitle; let name = MY_PARAMS.pageTitle;
let sgroup = jkdata.group||jkdata.type;
let sname = jkdata.name;
MY_URL = MY_PARAMS.url; MY_URL = MY_PARAMS.url;
let detailsmark; let detailsmark;
@ -124,7 +126,7 @@ function dianboerji() {
//海报 //海报
d.push({ d.push({
title: details1,//详情1 title: details1,//详情1
desc: "当前接口:"+(jkdata.group||jkdata.type)+"_"+jkdata.name+"\n"+details2,//详情2 desc: "当前接口:"+sgroup+"_"+sname+"\n"+details2,//详情2
pic_url: pic?/^http/.test(pic)&&!pic.includes('@Referer=')?pic+'@Referer=':pic:'',//图片 pic_url: pic?/^http/.test(pic)&&!pic.includes('@Referer=')?pic+'@Referer=':pic:'',//图片
url: MY_URL + '#noHistory#',//链接 url: MY_URL + '#noHistory#',//链接
col_type: 'movie_1_vertical_pic_blur', col_type: 'movie_1_vertical_pic_blur',
@ -139,25 +141,20 @@ function dianboerji() {
d.push(it); d.push(it);
}) })
// 片源标识数组 //取之前足迹记录,用于自动定位之前的线路和分页
let flags = erdata.flags; let smark = {};
// 影片标识 try {
let vodId = name; eval('SrcMark = ' + fetch("hiker://files/cache/src/Juying2/Mark.json"));
// 线路标识 if (SrcMark[MY_URL]) {
let lineId = vodId + '_' + (jkdata.group||jkdata.type); smark.line = SrcMark[MY_URL].line;
// 线路id smark.page = SrcMark[MY_URL].page;
let lineindex = getMyVar(lineId, '0'); }
if(!getMyVar(vodId)){ } catch (e) { }
//取之前足迹记录,用于自动定位之前的线路
try { // 标识
eval('let SrcMark = ' + fetch("hiker://files/cache/src/Juying2/Mark.json")); let lineid = parseInt(getMyVar(MY_URL+"_line", (smark.line||0).toString()));//线路index
if (SrcMark != "") { let pageid = parseInt(getMyVar(MY_URL+"_page", (smark.page||0).toString()));//分页index
if (SrcMark.line[lineId]) {
putMyVar(lineId, SrcMark.line[lineId]);
}
}
} catch (e) { }
}
//设置记录线路足迹的数量 //设置记录线路足迹的数量
let Marksum = 100; let Marksum = 100;
//线路部份 //线路部份
@ -193,119 +190,176 @@ function dianboerji() {
erdata.tabs.forEach((it,i)=>{ erdata.tabs.forEach((it,i)=>{
if(it){ if(it){
d.push({ d.push({
title: getMyVar(lineId, '0') == i ? getHead(it,Color1,1) : getHead(it,Color2), title: getMyVar(MY_URL+"_line", '0') == i ? getHead(it,Color1,1) : getHead(it,Color2),
url: $("#noLoading#").lazyRule((lineId, i, Marksum) => { url: $("#noLoading#").lazyRule((url, nowid, newid, Marksum) => {
if (parseInt(getMyVar(lineId, '0')) != i) { if (nowid != newid) {
let markFile = 'hiker://files/cache/src/Juying2/Mark.json'; let markFile = 'hiker://files/cache/src/Juying2/Mark.json';
let SrcMark = ""; let SrcMark = "";
try { try {
eval('SrcMark = ' + markFile); eval('SrcMark = ' + markFile);
} catch (e) { } } catch (e) { }
if (SrcMark == "") { if (SrcMark == "") {
SrcMark = { line: {} }; SrcMark = {};
} else if (!SrcMark.line) {
SrcMark.line = {};
} }
SrcMark.line[lineId] = i; SrcMark[url] = SrcMark[url] || {};
SrcMark[url].line = newid;
let key = 0; let key = 0;
let one = ""; let one = "";
for (var k in SrcMark.line) { for (var k in SrcMark) {
key++; key++;
if (key == 1) { one = k } if (key == 1) { one = k }
} }
if (key > Marksum) { delete SrcMark.line[one]; } if (key > Marksum) { delete SrcMark[one]; }
writeFile(markFile, JSON.stringify(SrcMark)); writeFile(markFile, JSON.stringify(SrcMark));
putMyVar(lineId, i); putMyVar(url+"_line", i);
refreshPage(false); refreshPage(false);
} }
return '#noHistory#hiker://empty' return '#noHistory#hiker://empty'
}, lineId, i, Marksum), }, MY_URL, lineid, i, Marksum),
col_type: 'scroll_button' col_type: 'scroll_button'
}) })
} }
}) })
//生成选集 //生成选集
let list = erdata.lists[lineindex] || []; let 列表 = erdata.lists[lineid] || [];
let flag = flags.length>0?flags[lineindex]:""; if(列表.length>0){
function playlist(lx, col_type) {//定义选集列表生成 try{
if (lx == '1') { let i1 = parseInt(列表.length / 6);
let playtitle = list[j].split('$')[0].trim(); let i2 = parseInt(列表.length / 4);
let playurl = list[j].split('$')[1].trim(); let i3 = parseInt(列表.length / 2);
let dataObj = {}; let list1 = 列表[i1].split('$')[0];
if(erdata.parse_api&&erdata.parse_api.length>0){ let list2 = 列表[i2].split('$')[0];
dataObj.parse_api = erdata.parse_api; let list3 = 列表[i3].split('$')[0];
if(parseInt(list1.match(/(\d+)/)[0])>parseInt(list2.match(/(\d+)/)[0]) && parseInt(list2.match(/(\d+)/)[0])>parseInt(list3.match(/(\d+)/)[0])){
列表.reverse();
}
}catch(e){
//xlog('√强制修正选集顺序失败>'+e.message)
}
}
if (getMyVar('shsort') == '1') {
列表.reverse();
}
//分页定义
let partpage = storage0.getItem('partpage') || {};
if(partpage.ispage){//启用分页
let 每页数量 = partpage.pagenum || 45; // 分页的每页数量
let 翻页阀值 = partpage.partnum || 100; // 分页的翻页阀值,超过多少才显示翻页
if (列表.length > 翻页阀值) {
let 最大页数 = Math.ceil(列表.length / 每页数量);
let 分页页码 = pageid + 1; //当前页数
if (分页页码 > 最大页数) { //防止切换线路导致页数数组越界
分页页码 = 最大页数;
} }
if(flag){ let 分页链接 = [];
dataObj.flag = flag; let 分页名 = [];
function getNewArray(array, subGroupLength) {
let index = 0;
let newArray = [];
while(index < array.length) {
newArray.push(array.slice(index, index += subGroupLength));
}
return newArray;
} }
let 分页s = getNewArray(列表, 每页数量);//按每页数据切割成小数组
分页s.forEach((it,i)=>{
分页链接.push($("#noLoading#").lazyRule((url,nowid,newid) => {
if(nowid != newid){
putMyVar(url+"_page", newid);
refreshPage(false);
}
return 'hiker://empty'
}, MY_URL, pageid, i))
let start = i * 每页数量 + 1;
let end = i * 每页数量 + it.length;
let title = start + ' - ' + end;
分页名.push(pageid==i?'““””<span style="color: #87CEFA">'+title:title)
})
d.push({
col_type: "blank_block",
extra: {
cls: "Juloadlist"
}
});
d.push({
title: 分页页码==1?"↪尾页":"⏮上页",
url: 分页页码==1?分页链接[分页名.length-1]:分页链接[pageid-1],
col_type: 'text_4',
extra: {
cls: "Juloadlist"
}
})
d.push({
title: 分页名[pageid],
url: $(分页名, 2).select((分页名,分页链接) => {
return 分页链接[分页名.indexOf(input)];
},分页名,分页链接),
col_type: 'text_2',
extra: {
cls: "Juloadlist"
}
})
d.push({
title: 分页页码==分页名.length?"首页↩":"下页⏭",
url: 分页页码==分页名.length?分页链接[0]:分页链接[pageid+1],
col_type: 'text_4',
extra: {
cls: "Juloadlist"
}
})
列表 = 分页s[pageid];//取当前分页的选集列表
}
}
if(列表.length==0){
d.push({
title: '当前无播放选集,点更多片源试试!',
url: '#noHistory#hiker://empty',
col_type: 'text_center_1'
});
}else{
let flag = erdata.flags.length>0?erdata.flags[lineid]:"";
let dataObj = {};
if(erdata.parse_api&&erdata.parse_api.length>0){
dataObj.parse_api = erdata.parse_api;
}
if(flag){
dataObj.flag = flag;
}
let jixieSet = storage0.getItem('jixieSet') || {};
let listone = 列表[0].split('$')[0].trim();
let len = listone.length;
let col_type = list.length > 4 && len < 7 ? 'text_4' : len > 20 ? 'text_1' :'text_3';
for(let i=0; i<列表.length; i++) {
let playtitle = 列表[i].split('$')[0].trim();
let playurl = 列表[i].split('$')[1].trim();
let lazy = $("").lazyRule((dataObj) => { let lazy = $("").lazyRule((dataObj) => {
require(config.依赖.match(/http(s)?:\/\/.*\//)[0] + 'SrcParseS.js'); require(config.依赖.match(/http(s)?:\/\/.*\//)[0] + 'SrcParseS.js');
return SrcParseS.聚影(input, dataObj); return SrcParseS.聚影(input, dataObj);
}, dataObj); }, dataObj);
let extra = { let extra = {
id: lineId + "_选集_" + lineindex + "_0_" + j,//标识_选集_线路index_分页index_列表index id: name + "_选集_" + (pageid?pageid+"_":"") + i,
jsLoadingInject: true, jsLoadingInject: true,
blockRules: ['.m4a', '.mp3', '.gif', '.jpeg', '.jpg', '.ico', '.png', 'hm.baidu.com', '/ads/*.js', 'cnzz.com'], blockRules: ['.m4a', '.mp3', '.gif', '.jpeg', '.jpg', '.ico', '.png', 'hm.baidu.com', '/ads/*.js', 'cnzz.com'],
videoExcludeRule: ['m3u8.js','?url='], videoExcludeRule: ['m3u8.js','?url='],
cls: "playlist" cls: "playlist"
} }
if(!/qq|youku|mgtv|bili|qiyi|sohu|pptv|le/.test(playurl) && /html/.test(playurl)){
if(!/qq|youku|mgtv|bili|qiyi|sohu|pptv/.test(playurl) && /html/.test(playurl)){
extra.referer = playurl; extra.referer = playurl;
} }
if(getMyVar('superwebM3U8') == "1"){ if(jixieSet.cacheM3u8){
extra.cacheM3u8 = true; extra.cacheM3u8 = true;
} }
d.push({ d.push({
title: getHead(playtitle.replace(/第|集|话|期|-|new|最新|新/g, ''), Color3), title: getHead(playtitle.replace(/第|集|话|期|-|new|最新|新/g, ''), Color3),
url: playurl + lazy, url: playurl + lazy,
extra: extra, col_type: col_type,
col_type: col_type extra: extra
});
} else {
d.push({
title: '当前无播放选集,点更多片源试试!',
url: '#noHistory#hiker://empty',
col_type: 'text_center_1'
}); });
} }
}
if (list.length == 0) {
playlist('0');
} else {
try{
let list1 = list[0].split('$')[0];
let list2 = list[list.length-1].split('$')[0];
if(parseInt(list1.match(/(\d+)/)[0])>parseInt(list2.match(/(\d+)/)[0])){
list.reverse();
}
}catch(e){
//log('修正选集顺序失败>'+e.message)
}
let listone = list[0].split('$')[0].trim();
let len = listone.length;
let col_type = list.length > 4 && len < 7 ? 'text_4' : len > 20 ? 'text_1' :'text_3';
if (getMyVar('shsort') == '1') {
try {
for (var j = list.length - 1; j >= 0; j--) {
playlist('1', col_type);
}
} catch (e) {
playlist('0');
}
} else {
try {
for (var j = 0; j < list.length; j++) {
playlist('1', col_type);
}
} catch (e) {
playlist('0');
}
}
} }
//底部说明 //底部说明

Loading…
Cancel
Save