提交 0560a600 编写于 作者: H hjdhnx

增加菜狗源(筛选和解析播放待处理)

上级 4ee0dc07
3.5.2
\ No newline at end of file
3.5.3
\ No newline at end of file
......@@ -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;i<video_lists.length;i+=30){video_list.push(video_lists.slice(i,i+30))}video_list.forEach(function(it,idex){let o_url="https://union.video.qq.com/fcgi-bin/data?otype=json&tid=682&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist="+it.join(",");let o_html=fetch(o_url,fetch_params);eval(o_html);QZOutputJson.results.forEach(function(it1){it1=it1.fields;let url="https://v.qq.com/x/cover/"+cid+"/"+it1.vid+".html";d.push({title:it1.title,pic_url:it1.pic160x90.replace("/160",""),desc:it1.video_checkup_time,url:url})})})}}vod.vod_play_from="qq";vod.vod_play_url=d.map(function(it){return it.title+"$"+it.url}).join("#");',
二级:'js:var vod={vod_id:input};let html=request(input);try{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){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{vod.vod_name=name;vod.vod_director=director;vod.vod_actor=starring;vod.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");vod.vod_content=introduction}try{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("$$$");vod_lists=[];lists.forEach(function(item,idex){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){let arr=[];let tmp=[];let zy=shows.item_list[idex];zy.date.forEach(function(date){let day=date.day;for(let j=0;j<day.length;j++){let dayy=day[j][0]>=10?day[j][0]:"0"+day[j][0];let Tdate=date.year+date.month+dayy;arr.push(Tdate)}});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[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("#"))}});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){}',
搜索:'',
搜索:'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
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') == ' - 逆序') ? '““””<b><span style="color: #FF0000">∨</span></b>': '““””<b><span style="color: #1aad19">∧</span></b>',
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<day.length;j++) {
let dayy = day[j][0] >= 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
......@@ -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:细节处理以及详情页拼接细节
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册