From 0560a600dfc184aecfa1acb295a0269c4da42afd Mon Sep 17 00:00:00 2001 From: hjdhnx Date: Sun, 11 Sep 2022 20:37:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8F=9C=E7=8B=97=E6=BA=90(?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E5=92=8C=E8=A7=A3=E6=9E=90=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E5=BE=85=E5=A4=84=E7=90=86)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/version.txt | 2 +- "js/\350\217\234\347\213\227.js" | 6 +- ...34\347\213\227\344\272\214\347\272\247.js" | 281 +++++------------- readme.md | 1 + 4 files changed, 83 insertions(+), 207 deletions(-) diff --git a/js/version.txt b/js/version.txt index 80d13b7..678fd88 100644 --- a/js/version.txt +++ b/js/version.txt @@ -1 +1 @@ -3.5.2 \ No newline at end of file +3.5.3 \ No newline at end of file diff --git "a/js/\350\217\234\347\213\227.js" "b/js/\350\217\234\347\213\227.js" index ddddba3..502b0c1 100644 --- "a/js/\350\217\234\347\213\227.js" +++ "b/js/\350\217\234\347\213\227.js" @@ -2,7 +2,6 @@ var rule = { title:'菜狗', host:'https://waptv.sogou.com/', homeUrl:'', - detailUrl:'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid', searchUrl:'https://v.sogou.com/v?query=**&typemask=6&p=&dp=&dr=&_asf=v.sogou.com&enter=1&ie=utf8', searchable:1, quickSearch:0, @@ -21,12 +20,9 @@ var rule = { // 手动调用解析请求json的url,此lazy不方便 lazy:'js:input="https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input', // 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', - // 一级:'json:.listData.results;name;v_picurl;ipad_play_for_list.episode||score||date;url', 一级:'js:let d=[];let html=request(input);html=JSON.parse(html);let list=html.listData.results;list.forEach(function(it){let desc1=it.ipad_play_for_list.finish_episode?it.ipad_play_for_list.episode===it.ipad_play_for_list.finish_episode?"全集"+it.ipad_play_for_list.finish_episode:"连载"+it.ipad_play_for_list.episode+"/"+it.ipad_play_for_list.finish_episode:"";let desc2=it.score?"评分:"+it.score:"";let desc3=it.date?"更至:"+it.date:"";d.push({title:it.name,img:it.v_picurl,url:"https://v.sogou.com"+it.url.replace("teleplay","series").replace("cartoon","series"),desc:desc1||desc2||desc3})});setResult(d);', - // 二级:{is_json:1,"title":"data.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites;data.playlinksdetail.#idv.quality","lists":"data.playlinksdetail.#idv.default_url"}, - // 二级:{is_json:1,"title":"data.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites","lists":"data.playlinksdetail.#idv.default_url"}, 二级:'', - 二级:'js:var vod={};let d=[];let video_list=[];let video_lists=[];let list=[];let html=fetch(input,fetch_params);let sourceId=/get_playsource/.test(input)?input.match(/id=(\\d*?)&/)[1]:input.split("cid=")[1];let cid=sourceId;let detailUrl="https://v.%71%71.com/detail/m/"+cid+".html";log("详情页:"+detailUrl);var pdfh=jsp.pdfh;var pd=jsp.pd;try{let json=JSON.parse(html);vod={vod_id:json.c.vid,vod_url:input,vod_name:json.c.title,type_name:json.typ.join(","),vod_actor:json.nam.join(","),vod_year:json.c.year,vod_content:json.c.description,vod_remarks:json.rec,vod_pic:urljoin2(input,json.c.pic)}}catch(e){log("解析片名海报等基础信息发生错误:"+e.message)}if(/get_playsource/.test(input)){eval(html);let indexList=QZOutputJson.PlaylistItem.indexList;indexList.forEach(function(it){let dataUrl="https://s.video.qq.com/get_playsource?id="+sourceId+"&plat=2&type=4&data_type=3&range="+it+"&video_type=10&plname=qq&otype=json";eval(fetch(dataUrl,fetch_params));let vdata=QZOutputJson.PlaylistItem.videoPlayList;vdata.forEach(function(item){d.push({title:item.title,pic_url:item.pic,desc:item.episode_number+"\\t\\t\\t播放量:"+item.thirdLine,url:item.playUrl})});video_lists=video_lists.concat(vdata)})}else{let json=JSON.parse(html);video_lists=json.c.video_ids;let url="https://v.qq.com/x/cover/"+sourceId+".html";if(json.c.type===10){let dataUrl="https://s.video.qq.com/get_playsource?id="+json.c.column_id+"&plat=2&type=2&data_type=3&video_type=8&plname=qq&otype=json";let o_html=fetch(dataUrl,fetch_params);eval(o_html);video_lists=[];let indexList=QZOutputJson.PlaylistItem.indexList;indexList.forEach(function(it){let dataUrl="https://s.video.qq.com/get_playsource?id="+json.c.column_id+"&plat=2&type=4&data_type=3&range="+it+"&video_type=10&plname=qq&otype=json";eval(fetch(dataUrl,fetch_params));let vdata=QZOutputJson.PlaylistItem.videoPlayList;vdata.forEach(function(item){d.push({title:item.title,pic_url:item.pic,desc:item.episode_number+"\\t\\t\\t播放量:"+item.thirdLine,url:item.playUrl})});video_lists=video_lists.concat(vdata)})}else if(video_lists.length===1){d.push({title:"在线播放",url:url})}else if(video_lists.length>1){for(let i=0;i1){let tmp=item.slice(1).map(function(its){return its.index+"$"+"https://v.sogou.com"+its.url});vod_lists.push(tmp.join("#"))}if(shows){let arr=[];let tmp=[];let zy=shows.item_list[idex];zy.date.forEach(function(date){let day=date.day;for(let j=0;j=10?day[j][0]:"0"+day[j][0];let Tdate=date.year+date.month+dayy;arr.push(Tdate)}});for(let k=0;k0?img[0]:""}}catch(e){}', 搜索:'', 搜索:'js:let d=[];let html=request(input);let jsonA=JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]).result.longVideo.results;jsonA.forEach(function(it){let name=it.name;let introduction=it.introduction;let pic=it.v_picurl;let url=it.tiny_url;let zone=it.zone;let score=it.score||"暂无";let style=it.style;if(it.play.item_list){let r={};r.title=name.replace(//,"").replace(//,"");r.url="https://v.sogou.com"+url;r.desc=it.list_category.join(",");r.content=introduction;r.pic_url=pic;d.push(r)}});setResult(d);', } \ No newline at end of file diff --git "a/py/\346\220\234\347\213\227\344\272\214\347\272\247.js" "b/py/\346\220\234\347\213\227\344\272\214\347\272\247.js" index b14a067..6cb06ee 100644 --- "a/py/\346\220\234\347\213\227\344\272\214\347\272\247.js" +++ "b/py/\346\220\234\347\213\227\344\272\214\347\272\247.js" @@ -1,217 +1,96 @@ -js: var res = {}; -var d = []; -var html = getResCode(); -var jsUrl = fetch('hiker://files/cache/MyParseSet.json'); -if (jsUrl == '' || !fetch(JSON.parse(jsUrl).cj)) { - var jsFile = fetch('https://gitee.com/Duan-Nian/Dn/raw/master/hikerview/CloudParse-V2_Dn.js'); -} else { - var jsFile = fetch(JSON.parse(jsUrl).cj); -} -eval(jsFile); -if (getVar("解析列表") == "开") { - setParse(); -} - -var easy = `@lazyRule=.js:try{var input=fetch(input,{}).split("('")[1].split("',")[0];if(input.match(/ixigua|iqiyi|qq.com|mgtv|le.com|bili|sohu|youku|pptv|cctv|1905.com/)){var input=input.split("?")[0];{input;`+lazy+`}}else if(input.match(/huanxi/)){var input=input.split("&")[0];{input;`+lazy+`}}else if(input.match(/migu/)){var input=input.replace(/\\?.*cid/,'?cid').replace(/http/,'https').split("&")[0];{input;`+lazy+`}}else{input;`+lazy+`}}catch(e){input}`; - - -var Rule = MY_URL+`@rule=js:var res={};var d=[];var html=getResCode();var get=parseDomForHtml(html, 'body&&.srch-result-info&&Html');for(let i = 0;;i++){try{d.push({title:parseDomForHtml(get, 'div,' +i+ '&&Html'),col_type: 'rich_text'});d.push({col_type: 'line'});}catch(e){break;}};res.data=d;setHomeResult(res);`; - +js: +// let d = []; +var vod = {vod_id:input}; +let html = request(input); try { - - var json = JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]).detail.itemData; - - var key = json.dockey; - var name = json.name; - var zone = json.zone; - var score = json.score ? json.score: '暂无'; - var style = json.style; - var emcee = json.emcee ? '主持:' + json.emcee: json.name; - var director = json.director ? '导演:' + json.director: name; - var starring = json.starring ? '演员:' + json.starring: '声优:' + json.shengyou; - var update = json.update_wordstr ? json.update_wordstr: ''; - var tv_station = json.tv_station ? json.tv_station: zone; - var introduction = json.introduction; - var shengyou = json.shengyou; - - var shows = json.play_from_open_index; - var plays = json.play.item_list; - + let json = JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]).detail.itemData; + let key = json.dockey; + let name = json.name; + let zone = json.zone; + let score = json.score ? json.score: '暂无'; + let style = json.style; + let emcee = json.emcee ? '主持:' + json.emcee: json.name; + let director = json.director ? '导演:' + json.director: name; + director = director.replace(/;/g, '\t'); + let starring = json.starring ? '演员:' + json.starring: '声优:' + json.shengyou; + starring = starring.replace(/.*undefined/, '').replace(/;/g, '\t') + let update = json.update_wordstr ? json.update_wordstr: ''; + let tv_station = json.tv_station ? json.tv_station: zone; + let introduction = json.introduction; + let shengyou = json.shengyou; + let shows = json.play_from_open_index; + let plays = json.play.item_list; if (shows) { - d.push({ - title: emcee + '\n' + tv_station, - desc: style + ' 评分:' + score + '\n' + update, - pic_url: parseDom(html, '#thumb_img&&img&&src'), - url: set_switch, - col_type: 'movie_1_vertical_pic_blur' - }); + vod.vod_name = name; + vod.vod_area = emcee + ',' + tv_station; + vod.vod_director = director; + vod.vod_actor = starring; + vod.vod_pic = jsp.pd(html, '#thumb_img&&img&&src'); + vod.vod_remarks = style + ' 评分:' + score + ',' + update; + vod.vod_content = introduction; } else { - d.push({ - title: director.replace(/;/g, '\t') + '\n' + starring.replace(/.*undefined/, '').replace(/;/g, '\t'), - desc: style + ' 评分:' + score + '\n' + update, - pic_url: parseDom(html, '#thumb_img&&img&&src'), - url: set_switch, - col_type: 'movie_1_vertical_pic_blur' - }); + vod.vod_name = name; + // vod.vod_area = ''; + vod.vod_director = director; + vod.vod_actor = starring; + vod.vod_pic = jsp.pd(html, '#thumb_img&&img&&src'); + // vod.vod_remarks = style + ' 评分:' + score + ',' + update; + vod.vod_content = introduction; } - d.push({ - title: "剧情", - url: Rule, -pic_url:'https://s1.ax1x.com/2020/11/09/BT6WIe.png', - col_type: 'icon_small_3' - }); - d.push({ - title: "资源网", - url: 'hiker://search?s=' + name + '&rule=资源网采集.xyq', -pic_url:'https://s3.ax1x.com/2020/11/23/DGW0de.png', - col_type: 'icon_small_3' - }); - d.push({ - title: "剧照", - url: MY_URL+`@rule=js:var res={};var d=[];var html=getResCode();try{var tabs=parseDomForArray(html, '#photoList&&.sort_lst_bx&&a');for(var i in tabs){d.push({pic_url: parseDomForHtml(tabs[i], 'img&&data-src'),url: parseDomForHtml(tabs[i], 'img&&data-src'),col_type: 'pic_1_full'});d.push({col_type: 'line'});}}catch(e){};res.data=d;setHomeResult(res);`, -pic_url:'https://s1.ax1x.com/2020/11/09/BT6cqK.png', - col_type: 'icon_small_3' - }); - d.push({ - col_type: "line" - }); try { - var tabs = []; - var lists = []; - - for (var i in plays) { - lists.push(plays[i].info) - tabs.push(plays[i].sitename[0]) - } - - function setTabs(tabs, vari) { - if (plays[i].info || shows) { - d.push({ - title: (getVar('shsort') == ' - 逆序') ? '““””': '““””', - url: `#noLoading#@lazyRule=.js:let conf = getVar('shsort');if(conf==' - 逆序'){putVar({key:'shsort', value:' - 正序'});}else{putVar({key:'shsort', value:' - 逆序'})};refreshPage(false);'toast://切换排序成功';'#noHistory#hiker://empty'`, - col_type: 'flex_button' - }) ; - for (var o in tabs) { - var url = "#noLoading#@lazyRule=.js:putVar('" + vari + "', '" + o + "');refreshPage(false);'toast://切换成功!';'#noHistory#hiker://empty'"; - d.push({ - title: getVar(vari, '0') == o ? '‘‘' + tabs[o] + '’’': tabs[o], - url: url, - col_type: 'flex_button' - }) - } - d.push({ - col_type: "line" - }) - } else { - d.push({ - col_type: "blank_block" - }) - } - } - - function setLists(lists, index) { - if (plays[i].info || shows) { - var list = lists[index]; - if (list) { - if (getVar('shsort') == ' - 逆序') { - - for (var j = list.length - 1; j >= 0; j--) { - if (!list[j].index == '0') { - d.push({ - title: list[j].index, - url: 'https://v.sogou.com' + list[j].url + easy, - col_type: "text_4" - }); - } - } - } else { - - for (var j = 0; j < list.length; j++) { - if (!list[j].index == '0') { - d.push({ - title: list[j].index, - url: 'https://v.sogou.com' + list[j].url + easy, - col_type: "text_4" - }); - } - } - } + let tabs = []; + let lists = []; + plays.forEach(function (it){ + lists.push(it.info); + tabs.push(it.sitename[0]||it.site.replace('.com','')); + }); + vod.vod_play_from = tabs.join('$$$'); + // print(vod); + // print(lists); + // print(shows); + vod_lists = []; // 拿$$$去填 + lists.forEach(function (item,idex){ // item是个json列表 + if (item || shows) { // 动漫,电视剧 + if(item && Array.isArray(item)&&item.length>1){ + let tmp = item.slice(1).map(function (its){return its.index+'$'+'https://v.sogou.com'+its.url}); + vod_lists.push(tmp.join('#')); } - if (shows) { - var arr = []; - zy = shows.item_list[index]; - - 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; - + if (shows) { //综艺,纪录片 + let arr = []; + let tmp = []; + let zy = shows.item_list[idex]; + zy.date.forEach(function (date){ + let day = date.day; + for (let j=0;j= 10 ? day[j][0] : "0" + day[j][0]; + let Tdate = date.year + date.month + dayy; arr.push(Tdate); - if (getVar('shsort') == ' - 逆序') { - arr.sort(function(a, b) { - return b - a - }) - } else { - arr.sort(function(a, b) { - return a - b - }) - } } - } - for (var k = 0; k < arr.length; k++) { - url = "https://v.sogou.com/vc/eplay?query=" + arr[k] + "&date=" + arr[k] + "&key=" + json.dockey + "&st=5&tvsite=" + plays[index].site; + }); - d.push({ - title: "第" + arr[k] + "期", - col_type: "text_2", - url: url + easy - }); + for (let k = 0; k < arr.length; k++) { + let url = "https://v.sogou.com/vc/eplay?query=" + arr[k] + "&date=" + arr[k] + "&key=" + key + "&st=5&tvsite=" + plays[idex].site; + tmp.push("第" + arr[k] + "期"+'$'+'https://v.sogou.com'+url); } + vod_lists.push(tmp.join('#')); } - } else if (plays[index].site) { - for (var m in plays) { - if (plays[m].flag_list.indexOf('trailer') == -1) { - d.push({ - title: plays[m].sitename[0], - img: plays[m].picurl || 'http://dlweb.sogoucdn.com/video/wap/static/img/logo/' + plays[m].sitename[1], - url: 'https://v.sogou.com' + plays[m].url + easy, - col_type: !plays[m].picurl ? "icon_2": "movie_2" - }) - } else { - d.push({ - url: "https://v.sogou.com" + plays[m].url + easy, - img: plays[m].picurl || 'http://dlweb.sogoucdn.com/video/wap/static/img/logo/' + plays[m].sitename[1], - title: plays[m].sitename[0] + '—预告', - col_type: !plays[m].picurl ? "icon_2": "movie_2" - }); - } + } else if (plays[idex].site) {//电影 + // print(plays[idex].site); + let tmp = []; + if (!plays[idex].flag_list.includes('trailer')) { + tmp.push(plays[idex].sitename[0]+'$'+'https://v.sogou.com' + plays[idex].url); + } else { + tmp.push(plays[idex].sitename[0] + '—预告'+'$'+"https://v.sogou.com" + plays[idex].url); } + vod_lists.push(tmp.join('#')); } - } - setTabs(tabs, MY_URL); - setLists(lists, getVar(MY_URL, '0')); - } catch(e) { - var img = json.photo.item_list; - d.push({ - title: '‘‘本片无选集’’', - col_type: "text_center_1" }); - for (var i in img) { - d.push({ - img: img[i], - col_type: "pic_1_full" - }) - } + // print(vod_lists); + vod.vod_play_url = vod_lists.join('$$$'); + } catch(e) { + let img = json.photo.item_list; + vod.vod_name = '本片无选集'; + vod.vod_pic = img.length>0?img[0]:''; } -} catch(e) {} - -res.data = d; -setHomeResult(res); \ No newline at end of file +} catch(e) {} \ No newline at end of file diff --git a/readme.md b/readme.md index db92016..3243778 100644 --- a/readme.md +++ b/readme.md @@ -48,6 +48,7 @@ [获取本地设备信息](https://m.jb51.net/article/140716.htm) ###### 2022/09/11 - [X] 1.升级至3.5.2.后台管理增加设置中心 (可能会存在bug) +- [X] 2.升级至3.5.3.增加菜狗源(筛选及解析播放暂未解决) ###### 2022/09/10 - [X] 1.升级至3.4.4.增加小强迷源,增加二级重定向属性(提供重定向后的源码,让代码重新取重定向过后的线路和播放列表) - [X] 2.升级至3.4.5.增加兔小贝儿歌源,优化json:细节处理以及详情页拼接细节 -- GitLab