diff --git a/SrcLastChapter.js b/SrcLastChapter.js deleted file mode 100644 index 87f2226a..00000000 --- a/SrcLastChapter.js +++ /dev/null @@ -1,258 +0,0 @@ -//本代码仅用于个人学习,请勿用于其他作用,下载后请24小时内删除,代码虽然是公开学习的,但请尊重作者,应留下说明 -function JY360(){ - try{ - MY_URL = MY_URL.replace('#immersiveTheme##autoCache#','').split('##')[1]; - let html = request(MY_URL, { headers: { 'User-Agent': PC_UA } }); - let json = JSON.parse(html).data; - let list = []; - let sitename = json.playlink_sites[0]; - if(json.allepidetail){ - list = json.allepidetail[sitename]; - setResult('更新至:' + list[list.length-1].playlink_num); - }else if(json.defaultepisode){ - list = json.defaultepisode; - setResult('更新至:' + list[0].period); - }else{ - setResult(''); - } - }catch(e){ - log('获取最新失败>'+e.message); - setResult(''); - } -} - -function sougou() { - try{ - var html = request(MY_URL.split('##')[1], { headers: { 'User-Agent': PC_UA }, timeout:3000 }); - var json = JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]).detail.itemData; - var plays = json.play.item_list; - var shows = json.play_from_open_index; - var list = plays[0].info; - }catch(e){ - log('获取最新失败>'+e.message); - var list = []; - setResult(''); - } - - if(list&&list.length > 0){ - setResult('更新至:' + list[list.length-1].index); - }else if (shows&&plays.length>0) { - var arr = []; - var zy = shows.item_list[0]; - for (var ii in zy.date) { - date = zy.date[ii]; - day = zy.date[ii].day; - for (j in day) { - dayy = day[j][0] >= 10 ? day[j][0] : "0" + day[j][0]; - Tdate = date.year + date.month + dayy; - arr.push(Tdate); - if (getMyVar('shsort') == '1') { - arr.sort(function(a, b) { - return a - b - }) - } else { - arr.sort(function(a, b) { - return b - a - }) - } - } - } - setResult('更新至:' + arr[arr.length-1]); - }else{ - setResult(''); - } -} - -function xunmi(type,ua,data) { - if (/v1|app|v2|iptv|cms/.test(type)) { - try{ - var gethtml = request(MY_URL.split('##')[1], { headers: { 'User-Agent': ua }, timeout:3000 }); - if(/cms/.test(type)&&/<\?xml/.test(gethtml)){ - var html = gethtml; - var isxml = 1; - }else{ - var html = JSON.parse(gethtml); - var isxml = 0; - } - } catch (e) { - var html = ""; - } - } else if (/xpath|biubiu||custom/.test(type)) { - try{ - var html = request(MY_URL.split('##')[1], { headers: { 'User-Agent': ua }, timeout:3000 }); - } catch (e) { - var html = ""; - } - } - try{ - if(/cms/.test(type)&&isxml==1){ - html = html.replace(/<!\[CDATA\[|\]\]>|/g,''); - var conts = xpathArray(html,`//video/dl/dd/text()`); - }else if (/v1|app|v2|cms/.test(type)) { - if (/cms/.test(type)) { - try{ - var json = html.list[0]; - }catch(e){ - var json = html.data.list[0]; - } - if(json.vod_play_from&&json.vod_play_url){ - var conts = json.vod_play_url.split('$$$'); - }else if(html.from&&html.play){ - var conts = []; - for (let i = 0; i < html.play.length; i++) { - let cont = []; - let plays = html.play[i]; - for (let j = 0; j < plays.length; j++) { - cont.push(plays[j][0]+"$"+plays[j][1]) - } - conts.push(cont.join("#")) - } - }else{ - var conts = []; - } - }else{ - if($.type(html.data)=="array"){ - var json = html.data[0]; - }else{ - var json = html.data; - } - if(json&&json.vod_info){ - json = json.vod_info; - } - var conts = json.vod_play_list || json.vod_url_with_player; - } - }else if (/iptv/.test(type)) { - var conts = html.videolist; - }else if (/xpath/.test(type)) { - var jsondata = data; - try{ - var arts = xpathArray(html, jsondata.dtFromNode+(jsondata.dtFromName.indexOf('concat(')>-1?'/text()':jsondata.dtFromName)); - }catch(e){ - var arts = []; - } - try{ - var conts = []; - for (let i = 1; i < arts.length+1; i++) { - if(arts[i-1].indexOf("在线视频")>-1){arts[i-1] = '播放源'+i;} - let contname = xpathArray(html, jsondata.dtUrlNode+'['+i+']'+jsondata.dtUrlSubNode+jsondata.dtUrlName); - let conturl = xpathArray(html, jsondata.dtUrlNode+'['+i+']'+jsondata.dtUrlSubNode+(jsondata.dtUrlId=="@href"?'/'+jsondata.dtUrlId:jsondata.dtUrlId)); - let cont = []; - for (let j = 0; j < contname.length; j++) { - let urlid = jsondata.dtUrlIdR; - if(urlid){ - let urlidl = urlid.split('(\\S+)')[0]; - let urlidr = urlid.split('(\\S+)')[1]; - var playUrl = conturl[j].replace(urlidl,'').replace(urlidr,''); - }else{ - var playUrl = conturl[j]; - } - cont.push(contname[j]+"$"+jsondata.playUrl.replace('{playUrl}',playUrl)) - } - conts.push(cont.join("#")) - } - }catch(e){ - var conts = []; - } - }else if (/biubiu/.test(type)) { - try{ - var jsondata = data; - let bflist = html.split(jsondata.bfjiequshuzuqian.replace(/\\/g,"")); - bflist.splice(0,1); - var conts = []; - for (let i = 0; i < bflist.length; i++) { - bflist[i] = bflist[i].split(jsondata.bfjiequshuzuhou.replace(/\\/g,""))[0]; - let bfline = pdfa(bflist[i],"body&&a"); - let cont = []; - for (let j = 0; j < bfline.length; j++) { - let contname = pdfh(bfline[j],"a&&Text"); - let conturl = pd(bfline[j],"a&&href"); - cont.push(contname+"$"+conturl) - } - conts.push(cont.join("#")) - } - }catch(e){ - var conts = conts||[]; - } - }else{ - //自定义接口/web自动匹配 - require(config.依赖.match(/http(s)?:\/\/.*\//)[0] + 'SrcAutoTmpl.js'); - let data = autoerji(MY_URL.split('##')[1].split('#')[0],html); - var conts = data.conts||[]; - } - if(/xpath|biubiu/.test(type)&&conts.length==0){ - require(config.依赖.match(/http(s)?:\/\/.*\//)[0] + 'SrcAutoTmpl.js'); - let data = autoerji(MY_URL.split('##')[1].split('#')[0],html); - conts = data.conts; - } - - var lists = []; - for (var i in conts) { - if (/v1|app|v2/.test(type)) { - if(conts[i].url){ - let single = conts[i].url||""; - if(single){lists.push(single.split('#'))}; - }else{ - let single = conts[i].urls||[]; - if(single.length>0){ - var si = []; - for (let j = 0; j < single.length; j++) { - si.push(single[j].name+"$"+single[j].url); - } - lists.push(si); - }; - } - }else if (/iptv/.test(type)) { - let single = conts[i]||[]; - if(single.length>0){ - var si = []; - for (let j = 0; j < single.length; j++) { - si.push(single[j].title+"$"+single[j].url); - } - lists.push(si); - }; - }else if (/cms|xpath|biubiu|custom/.test(type)) { - let single = conts[i]||""; - if(single){ - let lines = single.split('#'); - if(type=='cms'){ - for(let i in lines){ - if(lines[i].indexOf('$')==-1){ - let ii = parseInt(i)+1; - lines[i] = ii+'$'+lines[i]; - }else{ - break; - } - } - } - lists.push(lines) - }; - } - } - }catch(e){ - var lists = []; - } - - if(lists.length>0){ - //取线路选集最多的索引 - var indexOfMax = 0; - var tempMax = lists[0].length; - for(let i = 0; i < lists.length; i ++){ - if(lists[i].length > tempMax){ - tempMax = lists[i].length; - indexOfMax = i; - } - } - var list = lists[indexOfMax]; - if (/v1|app|v2|iptv|cms|xpath|biubiu|custom/.test(type)) { - 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){ - } - } - setResult('更新至:' + list[list.length-1].split('$')[0]); - } -} \ No newline at end of file