提交 83bf8557 编写于 作者: H hjdhnx

完善低端影视选集和播放免嗅

上级 8f04dfd9
无法预览此类型文件
......@@ -895,7 +895,7 @@ class CMS:
'd': self.d,
'getParse': self.d.getParse,
'saveParse': self.d.saveParse,
'jsp': jsp, 'setDetail': setDetail,
'jsp': jsp, 'setDetail': setDetail,'play_url':self.play_url
})
init_flag['ctx'] = True
if p.get('重定向') and str(p['重定向']).startswith('js:'):
......@@ -992,7 +992,7 @@ class CMS:
vod_tab_list.append(vlist)
vod_play_url = vod_play_url.join(vod_tab_list)
# print(vod_play_url)
print(vod_play_url)
vod['vod_play_from'] = vod_play_from
# print(vod_play_from)
vod['vod_play_url'] = vod_play_url
......@@ -1222,6 +1222,8 @@ class CMS:
pass
# print(unquote(play_url))
play_url = unquote(play_url)
origin_play_url = play_url
print(origin_play_url)
if self.lazy:
print(f'{play_url}->开始执行免嗅代码{type(self.lazy)}->{self.lazy}')
t1 = time()
......@@ -1271,6 +1273,10 @@ class CMS:
# print(type(play_url))
# print(play_url)
logger.info(f'js免嗅耗时:{get_interval(t1)}毫秒,播放地址:{play_url}')
if not play_url and play_url!='' and play_url!={}:
play_url = origin_play_url
# if play_url == {}:
# play_url = None
except Exception as e:
logger.info(f'免嗅耗时:{get_interval(t1)}毫秒,并发生错误:{e}')
return play_url
......
......@@ -16,12 +16,14 @@ var rule={
class_parse:'#primary-menu li.menu-item;a&&Text;a&&href;\.tv/(.*)',
cate_exclude:'站长|^其他$|关于|^电影$|^剧集$|^类型$',
play_parse:true,
lazy:'',
lazy:'js:let purl=input.split("|")[0];let referer=input.split("|")[1];let zm=input.split("|")[2];print("purl:"+purl);print("referer:"+referer);print("zm:"+zm);let myua="okhttp/3.15";if(/ddrkey/.test(purl)){let ret=request(purl,{Referer:referer,withHeaders:true,"User-Agent":myua});log(ret);input=purl}else{let html=request(purl,{headers:{Referer:referer,"User-Agent":myua}});print(html);try{input=JSON.parse(html).url||{}}catch(e){input=purl}}',
limit:6,
//推荐:'.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
double:true, // 推荐内容是否双层定位
一级:'.post-box-list&&article;a:eq(-1)&&Text;.post-box-image&&style;a:eq(0)&&Text;a:eq(-1)&&href',
二级:{"title":".post-title&&Text;.cat-links&&Text","img":".doulist-item&&img&&data-cfsrc","desc":".published&&Text","content":".abstract&&Text","tabs":"js:TABS=['道长在线','道长在线2']","lists":"js:log(TABS);LISTS=[['第1集$http://1.mp4','第2集$http://2.mp4'],['第3集$http://1.mp4','第4集$http://2.mp4']]"},
二级:{"title":".post-title&&Text;.cat-links&&Text","img":".doulist-item&&img&&data-cfsrc","desc":".published&&Text","content":".abstract&&Text","tabs":"js:TABS=['国内','海外(貌似不能播放)']",
lists:'js:log(TABS);let d=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;if(typeof play_url==="undefined"){var play_url=""}function getLists(html){let src=pdfh(html,".wp-playlist-script&&Html");src=JSON.parse(src).tracks;let list1=[];let list2=[];src.forEach(function(it){let src0=it.src0;let src1=it.src1;let src2=it.src2;let title=it.caption;let url1="https://ddys.tv/getvddr/video?id="+src1+"&dim=1080P+&type=mix";let url2="https://w.ddys.tv"+src0+"?ddrkey="+src2;let zm="https://ddys.tv/subddr/"+it.subsrc;list1.push({title:title,url:url1,desc:zm});list2.push({title:title,url:url2,desc:zm})});return{list1:list1,list2:list2}}var data=getLists(html);var list1=data.list1;var list2=data.list2;let nums=pdfa(html,"body&&.post-page-numbers");nums.forEach(function(it){let num=pdfh(it,"body&&Text");log(num);let nurl=input+num+"/";if(num==1){return}log(nurl);let html=request(nurl);let data=getLists(html);list1=list1.concat(data.list1);list2=list2.concat(data.list2)});list1=list1.map(function(item){return item.title+"$"+play_url+urlencode(item.url+"|"+input+"|"+item.desc)});list2=list2.map(function(item){return item.title+"$"+play_url+urlencode(item.url+"|"+input+"|"+item.desc)});LISTS=[list1,list2];',
},
搜索:'#main&&article;.post-title&&Text;;.published&&Text;a&&href',
推荐:'*'
}
\ No newline at end of file
3.9.7beta6
\ No newline at end of file
3.9.8
\ No newline at end of file
......@@ -881,7 +881,9 @@ function request(url,obj,ocr_flag){
obj.headers = headers;
}
if(rule.encoding&&rule.encoding!=='utf-8'&&!ocr_flag){
obj.headers["Content-Type"] = 'text/html; charset='+rule.encoding;
if(!obj.headers.hasOwnProperty('Content-Type')){ // 手动指定了就不管
obj.headers["Content-Type"] = 'text/html; charset='+rule.encoding;
}
}
if(typeof(obj.headers.body)!='undefined'&&obj.headers.body&&typeof (obj.headers.body)==='string'){
let data = {};
......
此差异已折叠。
js:
let purl = input.split('|')[0];
let referer = input.split('|')[1];
let zm = input.split('|')[2];
print('purl:'+purl);
print('referer:'+referer);
print('zm:'+zm);
let myua = 'okhttp/3.15';
if(/ddrkey/.test(purl)){
let ret=request(purl,{
Referer: referer,
withHeaders:true,
'User-Agent':myua
});
log(ret);
input = purl;
}else {
let html = request(purl, {
headers: {
Referer: referer,
'User-Agent':myua
}
});
print(html);
try {
input = JSON.parse(html).url||{};
}catch (e) {
input = purl
}
}
\ No newline at end of file
js:
log(TABS);
let d=[];
pdfh = jsp.pdfh;
pdfa = jsp.pdfa;
if(typeof(play_url)==='undefined'){
var play_url = '';
}
// play_url = play_url.replace('&play_url=','&type=json&play_url=');
function getLists(html){
let src=pdfh(html,'.wp-playlist-script&&Html');
src=JSON.parse(src).tracks;
let list1=[];
let list2=[];
src.forEach(function(it){
let src0=it.src0;
let src1=it.src1;
let src2=it.src2;
let title=it.caption;
let url1 = "https://ddys.tv/getvddr/video?id=" + src1+"&dim=1080P+&type=mix";
let url2="https://w.ddys.tv" + src0 + "?ddrkey=" + src2;
let zm = "https://ddys.tv/subddr/" + it.subsrc;
list1.push({
title:title,
url:url1,
desc:zm,
});
list2.push({
title:title,
url:url2,
desc:zm,
});
});
return {
list1:list1,
list2:list2
}
}
var data=getLists(html);
var list1=data.list1;
var list2=data.list2;
let nums=pdfa(html,'body&&.post-page-numbers');
nums.forEach(function(it){
let num=pdfh(it,'body&&Text');
log(num);
let nurl=input+num+'/';
if(num==1){
return
}
log(nurl);
let html=request(nurl);
let data=getLists(html);
list1=list1.concat(data.list1);
list2=list2.concat(data.list2);
});
list1 = list1.map(function (item){return item.title+'$'+play_url+urlencode(item.url+'|'+input+'|'+item.desc)});
list2 = list2.map(function (item){return item.title+'$'+play_url+urlencode(item.url+'|'+input+'|'+item.desc)});
LISTS=[list1, list2]
\ No newline at end of file
......@@ -47,6 +47,8 @@
[dockerfile教程](https://blog.csdn.net/qq_46158060/article/details/125718218)
[获取本地设备信息](https://blog.csdn.net/cui_yonghua/article/details/125508991)
[获取本地设备信息](https://m.jb51.net/article/140716.htm)
###### 2022/10/16
- [X] 3.9.8 完成ddys选集播放和免嗅(可惜我刚弄完没播放俩个剧就被封ip了)
###### 2022/10/15
- [X] beta2 修复dealJson导致的兔小贝一级分类无数据
- [X] beta6 尝试完善低端影视,增加tabs和lists支持js:写法(js模式0和模式1同步测试)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册