From 9b2ae86a10e44a533e5eb11f27e4121502a3fad9 Mon Sep 17 00:00:00 2001 From: hjdhnx Date: Wed, 7 Sep 2022 16:00:37 +0800 Subject: [PATCH] =?UTF-8?q?=E9=AB=98=E7=BA=A7=E7=8E=A9=E6=84=8F=E5=84=BF?= =?UTF-8?q?=E5=93=9F=EF=BC=8C=E8=AE=B0=E5=BE=97=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/version.txt | 2 +- ...76\344\272\221\351\251\276\351\233\276.js" | 7 +- ...76\350\256\257\344\272\214\347\272\247.js" | 116 ++++++++++++++++++ readme.md | 1 + utils/encode.py | 12 +- 5 files changed, 131 insertions(+), 7 deletions(-) create mode 100644 "py/\350\205\276\350\256\257\344\272\214\347\272\247.js" diff --git a/js/version.txt b/js/version.txt index c4a602d..6a3913b 100644 --- a/js/version.txt +++ b/js/version.txt @@ -1 +1 @@ -3.2.6 \ No newline at end of file +3.2.7 \ No newline at end of file diff --git "a/js/\350\205\276\344\272\221\351\251\276\351\233\276.js" "b/js/\350\205\276\344\272\221\351\251\276\351\233\276.js" index e121d5b..b22c335 100644 --- "a/js/\350\205\276\344\272\221\351\251\276\351\233\276.js" +++ "b/js/\350\205\276\344\272\221\351\251\276\351\233\276.js" @@ -1,8 +1,8 @@ var rule = { title:'腾云驾雾', - host:'https://v.qq.com', + host:'https://v.%71%71.com', homeUrl:'/channel/choice?listpage=1&channel=choice&sort=18&_all=1', - detailUrl:'https://node.video.qq.com/x/api/float_vinfo2?cid=fyid', + detailUrl:'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid', searchUrl:'https://node.video.%71%71.com/x/api/msearch?keyWord=**', searchable:1, quickSearch:1, @@ -23,6 +23,7 @@ var rule = { 一级:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', // 二级:{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:print(input);let html=JSON.parse(fetch(input,fetch_params));let data=html.data;let tilte=data.title;let img=data.cdncover;let vod_type=data.moviecategory.join(",");let area=data.area.join(",");let director=data.director.join(",");let actor=data.actor.join(",");let content=data.description;base_vod={vod_id:input,vod_name:tilte,type_name:vod_type,vod_actor:actor,vod_director:director,vod_content:content,vod_remarks:area,vod_pic:urljoin2(input,img)};let delta=200;let vod_play={};let sites=data.playlink_sites;for(let i in sites){let site=sites[i];let playList="";let vodItems=[];if(data.allupinfo){let total=parseInt(data.allupinfo[site]);for(let j=1;j0){playList=vodItems.join("#")}if(playList.length<1){continue}vod_play[site]=playList}let tabs=Object.keys(vod_play);let playUrls=[];for(let id in tabs){playUrls.push(vod_play[tabs[id]])}if(tabs.length>0){vod_play_from=tabs.join("$$$");vod_play_url=playUrls.join("$$$");base_vod.vod_play_from=vod_play_from;base_vod.vod_play_url=vod_play_url}vod=base_vod;', + 二级:'', + 二级:'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 1) { // 电视剧 或者动漫? 电影也分普通话版和英语版 + // print('流程2-3'); + for (let i = 0; i < video_lists.length; i += 30) { + video_list.push(video_lists.slice(i, i + 30)) + } + // print(video_list); + 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, + }); + }); + }); + + } + +} +// print(d); +vod.vod_play_from = 'qq'; +vod.vod_play_url = d.map(function (it){ + return it.title + '$' + it.url; +}).join('#'); \ No newline at end of file diff --git a/readme.md b/readme.md index 8f7bb0e..1577d3d 100644 --- a/readme.md +++ b/readme.md @@ -51,6 +51,7 @@ - [X] 2.增加了镜像合并脚本(三合一直接拉 hjdhnx/drpy 即可) - [X] 3.js源增加cate_exlude参数 - [X] 4.增加腾云驾雾源(二级暂未完善,后面再说) +- [X] 5.完善腾云驾雾源,修复直播下载乱码,修复网站强制证书验证 ###### 2022/09/06 - [X] 1.增加了后台管理界面在线检测升级系统功能 - [X] 2.增加了后台管理界面修改直播源地址和同步直播源 diff --git a/utils/encode.py b/utils/encode.py index 0d7e84f..1fef0c8 100644 --- a/utils/encode.py +++ b/utils/encode.py @@ -7,7 +7,12 @@ import base64 from urllib.parse import urljoin -import requests +import requests,warnings +# 关闭警告 +warnings.filterwarnings("ignore") +from requests.packages import urllib3 +urllib3.disable_warnings() + import requests.utils from time import sleep import os @@ -158,6 +163,7 @@ def dealObj(obj=None): } def base_request(url,obj,method=None): + # verify=False 关闭证书验证 url = str(url).replace("'", "") if not method: method = 'get' @@ -166,9 +172,9 @@ def base_request(url,obj,method=None): try: # r = requests.get(url, headers=headers, params=body, timeout=timeout) if method.lower() == 'get': - r = requests.get(url, headers=obj['headers'], params=obj['body'], timeout=obj['timeout']) + r = requests.get(url, headers=obj['headers'], params=obj['body'], timeout=obj['timeout'],verify=False) else: - r = requests.post(url, headers=obj['headers'], data=obj['body'], timeout=obj['timeout']) + r = requests.post(url, headers=obj['headers'], data=obj['body'], timeout=obj['timeout'],verify=False) # r = requests.get(url, timeout=timeout) # r = requests.get(url) # print(encoding) -- GitLab