解析逻辑优化

This commit is contained in:
hjdhnx 2023-10-03 17:02:22 +08:00
parent 2d7f95f944
commit 2b6bd6a65e
20 changed files with 301 additions and 243 deletions

View File

@ -86,6 +86,7 @@ def parse_home(filename):
env = get_env()
py_ctx.update({
'vipUrl': url,
'input': url,
'fetch_params': {'headers': {'Referer':url}, 'timeout': 10, 'encoding': 'utf-8'},
'jsp':jsp,
'重定向':重定向,
@ -105,7 +106,9 @@ def parse_home(filename):
t1 = time()
try:
loader, _ = runJScode(jscode, ctx=ctx)
realUrl = loader.eval('realUrl')
# realUrl = loader.eval('realUrl')
# realUrl = loader.eval(f'lazy("{url}")')
realUrl = loader.eval('lazy()')
if not realUrl:
return R.failed(f'解析失败:{realUrl}')
if isinstance(realUrl, PyJsString):

View File

@ -1,13 +1,17 @@
function lazy(){
let jxUrl = 'https://vip.lianfaka.com/vip/?url=';
fetch_params.headers.Referer = 'https://www.dy6g.com';
// fetch_params.headers['User-Agent'] = 'Mozilla/5.0 (Linux; Android 6.0.1; OPPO R9s Plus Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36';
fetch_params.headers['User-Agent'] = MOBILE_UA;
try {
let html = request(jxUrl+vipUrl);
let html = request(jxUrl+input);
log(html);
realUrl=html.match(/source src="(.*?)"/)[1];
log('解析到真实播放地址:'+realUrl);
}catch (e) {
log('解析发生错误:'+e.message);
realUrl = vipUrl;
realUrl = input;
}
return realUrl
}

View File

@ -1,12 +1,15 @@
let jxUrl = 'https://80k.tv/jxplayer.php?v=';
fetch_params.headers.Referer = 'https://1080p.tv';
fetch_params.headers['User-Agent'] = MOBILE_UA;
try {
let html = request(jxUrl+vipUrl);
log(html);
realUrl=html.match(/src="(h.*?)"/)[1];
log('解析到真实播放地址:'+realUrl);
}catch (e) {
log('解析发生错误:'+e.message);
realUrl = vipUrl;
function lazy() {
let jxUrl = 'https://80k.tv/jxplayer.php?v=';
fetch_params.headers.Referer = 'https://1080p.tv';
fetch_params.headers['User-Agent'] = MOBILE_UA;
try {
let html = request(jxUrl + input);
log(html);
realUrl = html.match(/src="(h.*?)"/)[1];
log('解析到真实播放地址:' + realUrl);
} catch (e) {
log('解析发生错误:' + e.message);
realUrl = input;
}
return realUrl
}

View File

@ -1,12 +1,21 @@
let jxUrl = 'https://json.legendwhb.cn/llq/?url=';
fetch_params.headers.Referer = jxUrl;
try {
let html = request(jxUrl+vipUrl);
eval(html.match(/var config = {[\s\S]*?}/)[0] + "");
let play = request("https://json.legendwhb.cn/llq/API.php", {headers: {"User-Agent": MOBILE_UA, "X-Requested-With": "XMLHttpRequest", "origin": "https://json.legendwhb.cn"}, body: "url=" + config.url + "&time=" + config.time + "&key=" + config.key, method: "POST"});
realUrl = JSON.parse(play).url;
log('解析到真实播放地址:'+realUrl);
}catch (e) {
log('解析发生错误:'+e.message);
realUrl = vipUrl;
function lazy() {
let jxUrl = 'https://json.legendwhb.cn/llq/?url=';
fetch_params.headers.Referer = jxUrl;
try {
let html = request(jxUrl + input);
eval(html.match(/var config = {[\s\S]*?}/)[0] + "");
let play = request("https://json.legendwhb.cn/llq/API.php", {
headers: {
"User-Agent": MOBILE_UA,
"X-Requested-With": "XMLHttpRequest",
"origin": "https://json.legendwhb.cn"
}, body: "url=" + config.url + "&time=" + config.time + "&key=" + config.key, method: "POST"
});
realUrl = JSON.parse(play).url;
log('解析到真实播放地址:' + realUrl);
} catch (e) {
log('解析发生错误:' + e.message);
realUrl = input;
}
return realUrl
}

View File

@ -1,4 +1,4 @@
// realUrl = 重定向('https://play.fuqizhishi.com/juhe/API.php?appkey=caijijuhe220902&url='+vipUrl)
// https://play.fuqizhishi.com/jx2/API.php?appkey=iiiixiaobai&url=
// realUrl = 重定向('http://jxhc.ioivip.xyz/?url='+vipUrl);
realUrl = 重定向('https://play.fuqizhishi.com/jx2/API.php?appkey=iiiixiaobai&url='+vipUrl)
function lazy() {
realUrl = 重定向('https://play.fuqizhishi.com/jx2/API.php?appkey=iiiixiaobai&url=' + input);
return realUrl
}

View File

@ -1,76 +1,80 @@
// 星驰免嗅
// let jxUrl = 'https://vip.swuii.top/player/?url=';
let jxUrl = 'https://vip.swuii.top/player/analysis.php?v=';
fetch_params.headers.Referer = jxUrl;
try {
let html = request(jxUrl + vipUrl);
eval(html.match(/var config = {[\s\S]*?}/)[0]);
url = config.url;
_0x4909f4 = url;
let _0xc6d095='';
log(url);
eval(getCryptoJS());
var _0x4909f4 = atob(_0x4909f4);
log(_0x4909f4);
function lazy() {
let jxUrl = 'https://vip.swuii.top/player/analysis.php?v=';
fetch_params.headers.Referer = jxUrl;
try {
let html = request(jxUrl + input);
eval(html.match(/var config = {[\s\S]*?}/)[0]);
url = config.url;
_0x4909f4 = url;
let _0xc6d095 = '';
log(url);
eval(getCryptoJS());
var _0x4909f4 = atob(_0x4909f4);
log(_0x4909f4);
// log(_0x4909f4.length);
var _0x3e9518 = _0x4909f4.length;
var _0x3e9518 = _0x4909f4.length;
// log(_0x4909f4);
var _0x2c3abf = [];
var _0x1c7cc5 = [];
var _0xfc0e29 = "202205051426239465";
var _0x1a1b75 = _0xfc0e29.length;
var _0x320253 = {"EmMtr": function (_0xcb360, _0x190522) {
return _0xcb360 < _0x190522;
}, "INrFk": function (_0x118889, _0x267e98) {
return _0x118889 % _0x267e98;
}, "YJmqv": function (_0x31bf52, _0x2fd6b6) {
return _0x31bf52 % _0x2fd6b6;
}, "IVJrP": function (_0x43c04f, _0x1fa873) {
return _0x43c04f % _0x1fa873;
}, "aTggn": function (_0x13bd41, _0x2f040c) {
return _0x13bd41 + _0x2f040c;
}, "txtvd": function (_0x450d4d, _0x107d6d) {
return _0x450d4d % _0x107d6d;
}, "EpjZa": function (_0x54d0f7, _0x37f36f) {
return _0x54d0f7 ^ _0x37f36f;
}, "WgDgB": function (_0x166316, _0x170b36) {
return _0x166316 < _0x170b36;
}, "vwjta": function (_0x13d5f4, _0x4d75ba) {
return _0x13d5f4 + _0x4d75ba;
}};
for (i = 0; _0x320253["EmMtr"](i, 256); i++) {
_0x2c3abf[i] = _0xfc0e29[_0x320253["YJmqv"](i, _0x1a1b75)]["charCodeAt"]();
_0x1c7cc5[i] = i;
}
var _0x2c3abf = [];
var _0x1c7cc5 = [];
var _0xfc0e29 = "202205051426239465";
var _0x1a1b75 = _0xfc0e29.length;
var _0x320253 = {
"EmMtr": function (_0xcb360, _0x190522) {
return _0xcb360 < _0x190522;
}, "INrFk": function (_0x118889, _0x267e98) {
return _0x118889 % _0x267e98;
}, "YJmqv": function (_0x31bf52, _0x2fd6b6) {
return _0x31bf52 % _0x2fd6b6;
}, "IVJrP": function (_0x43c04f, _0x1fa873) {
return _0x43c04f % _0x1fa873;
}, "aTggn": function (_0x13bd41, _0x2f040c) {
return _0x13bd41 + _0x2f040c;
}, "txtvd": function (_0x450d4d, _0x107d6d) {
return _0x450d4d % _0x107d6d;
}, "EpjZa": function (_0x54d0f7, _0x37f36f) {
return _0x54d0f7 ^ _0x37f36f;
}, "WgDgB": function (_0x166316, _0x170b36) {
return _0x166316 < _0x170b36;
}, "vwjta": function (_0x13d5f4, _0x4d75ba) {
return _0x13d5f4 + _0x4d75ba;
}
};
for (i = 0; _0x320253["EmMtr"](i, 256); i++) {
_0x2c3abf[i] = _0xfc0e29[_0x320253["YJmqv"](i, _0x1a1b75)]["charCodeAt"]();
_0x1c7cc5[i] = i;
}
// log(_0x1c7cc5);
for (j = i = 0; _0x320253["EmMtr"](i, 256); i++) {
j = _0x320253["INrFk"](_0x320253["vwjta"](j, _0x1c7cc5[i]) + _0x2c3abf[i], 256);
tmp = _0x1c7cc5[i];
_0x1c7cc5[i] = _0x1c7cc5[j];
_0x1c7cc5[j] = tmp;
}
for (j = i = 0; _0x320253["EmMtr"](i, 256); i++) {
j = _0x320253["INrFk"](_0x320253["vwjta"](j, _0x1c7cc5[i]) + _0x2c3abf[i], 256);
tmp = _0x1c7cc5[i];
_0x1c7cc5[i] = _0x1c7cc5[j];
_0x1c7cc5[j] = tmp;
}
// log(_0x2c3abf);
// log(_0x1c7cc5);
for (a = j = i = 0; _0x320253["WgDgB"](i, _0x3e9518); i++) {
a = _0x320253["IVJrP"](a + 1, 256);
j = _0x320253["aTggn"](j, _0x1c7cc5[a]) % 256;
tmp = _0x1c7cc5[a];
_0x1c7cc5[a] = _0x1c7cc5[j];
_0x1c7cc5[j] = tmp;
k = _0x1c7cc5[_0x320253["txtvd"](_0x320253["aTggn"](_0x1c7cc5[a], _0x1c7cc5[j]), 256)];
_0xc6d095 += String["fromCharCode"](_0x320253["EpjZa"](_0x4909f4[i]["charCodeAt"](), k));
// log(_0x4909f4[i]);
}
for (a = j = i = 0; _0x320253["WgDgB"](i, _0x3e9518); i++) {
a = _0x320253["IVJrP"](a + 1, 256);
j = _0x320253["aTggn"](j, _0x1c7cc5[a]) % 256;
tmp = _0x1c7cc5[a];
_0x1c7cc5[a] = _0x1c7cc5[j];
_0x1c7cc5[j] = tmp;
k = _0x1c7cc5[_0x320253["txtvd"](_0x320253["aTggn"](_0x1c7cc5[a], _0x1c7cc5[j]), 256)];
_0xc6d095 += String["fromCharCode"](_0x320253["EpjZa"](_0x4909f4[i]["charCodeAt"](), k));
// log(_0x4909f4[i]);
}
// log(_0x1c7cc5);
log(_0xc6d095);
url = unescape(_0xc6d095);
if (/m3u8|mp4/.test(url)) {
realUrl = url;
}else {
realUrl = toast(vipUrl+'解析失败:'+url);
}
log('解析到真实播放地址:'+realUrl);
}catch (e) {
log('解析发生错误:'+e.message);
realUrl = vipUrl;
log(_0xc6d095);
url = unescape(_0xc6d095);
if (/m3u8|mp4/.test(url)) {
realUrl = url;
} else {
realUrl = toast(input + '解析失败:' + url);
}
log('解析到真实播放地址:' + realUrl);
} catch (e) {
log('解析发生错误:' + e.message);
realUrl = input;
}
return realUrl
}

View File

@ -1,5 +1,5 @@
// print(env);
// vipUrl = 'https://www.bilibili.com/bangumi/play/ep704873';
// input = 'https://www.bilibili.com/bangumi/play/ep704873';
fetch_params.headers = {
'User-Agent':PC_UA,
"Referer": "https://www.bilibili.com",
@ -17,15 +17,15 @@ let epUrl = unescape(short_link);
return epUrl
}
function getCidEid(vipUrl){
// print(vipUrl);
let url = vipUrl.split('?')[0];
function getCidEid(input){
// print(input);
let url = input.split('?')[0];
// print(url);
if(url.endsWith('/')){
url = url.slice(0,-1);
}
if(url.includes('bilibili.com/video/')){
let r = request(vipUrl);
let r = request(input);
try{
let mtext = r.match(/window\.__INITIAL_STATE__=(.*?);\(function/)[1];
mtext = JSON.parse(mtext);
@ -54,18 +54,19 @@ return [cid,avid,null];
return null
}
}else if(url.includes('/ss')){
let epUrl = getEpUrl(vipUrl);
let epUrl = getEpUrl(input);
return getCid(epUrl)
}else{
return null
}
}
if(!/bilibili/.test(vipUrl)){
realUrl = vipUrl;
function lazy(){
if(!/bilibili/.test(input)){
realUrl = input;
}else {
try {
// print(vipUrl);
let ids = getCidEid(vipUrl);
// print(input);
let ids = getCidEid(input);
if (Array.isArray(ids)) {
print(ids);
let cid = ids[0];
@ -83,12 +84,15 @@ if(!/bilibili/.test(vipUrl)){
} catch (e) {
print(e.message);
realUrl = vipUrl;
realUrl = input;
}
} else {
realUrl = vipUrl;
realUrl = input;
}
} catch (e) {
print(e.message);
}
}
return realUrl
}

View File

@ -1,12 +1,15 @@
let jxUrl = 'http://chaloli.cn/home/api?type=ys&uid=1&key=ekloswzABCGHKLOT58&url=';
fetch_params.headers.Referer = jxUrl;
try {
// realUrl = null;
let html = request(jxUrl+vipUrl);
// log(html);
realUrl = jsp.pjfh(html,'$..url');
log('解析到真实播放地址:'+realUrl);
}catch (e) {
log('解析发生错误:'+e.message);
realUrl = vipUrl;
function lazy() {
let jxUrl = 'http://chaloli.cn/home/api?type=ys&uid=1&key=ekloswzABCGHKLOT58&url=';
fetch_params.headers.Referer = jxUrl;
try {
// realUrl = null;
let html = request(jxUrl + input);
// log(html);
realUrl = jsp.pjfh(html, '$..url');
log('解析到真实播放地址:' + realUrl);
} catch (e) {
log('解析发生错误:' + e.message);
realUrl = input;
}
return realUrl
}

View File

@ -1,5 +1,5 @@
js:
//输入的vipUrl如:https://m.douyu.com/312212?dyshid=0-00000003333&dyshci=1
//输入的input如:https://m.douyu.com/312212?dyshid=0-00000003333&dyshci=1
function getSign(script, rid, did, tt){
let result = script.match(/(function ub98484234.*)\s(var.*)/)[0];
@ -19,26 +19,31 @@ function getSign(script, rid, did, tt){
return params
}
// log(env);
// fetch_params.headers.Referer = vipUrl;
try {
// realUrl = null;
let html = request(vipUrl);
// log(html);
let rid = html.match(/rid":(.*?),"vipId/)[1];
log(rid);
// let tt = Date.parse(new Date()).toString().substr(0, 10);
let tt = Math.round(new Date().getTime()/1000).toString();
let did = '10000000000000000000000000001501';
let param_body = getSign(html, rid, did, tt);
log(param_body);
let stream_json = request('https://m.douyu.com/api/room/ratestream', {headers: {
'Content-Type': 'application/x-www-form-urlencoded',
}, body: param_body, method:'POST'});
log(stream_json);
let stream = JSON.parse(stream_json).data;
realUrl = stream.url;
log('解析到真实播放地址:'+realUrl);
}catch (e) {
log('解析发生错误:'+e.message);
realUrl = vipUrl;
// fetch_params.headers.Referer = input;
function lazy() {
try {
// realUrl = null;
let html = request(input);
// log(html);
let rid = html.match(/rid":(.*?),"vipId/)[1];
log(rid);
// let tt = Date.parse(new Date()).toString().substr(0, 10);
let tt = Math.round(new Date().getTime() / 1000).toString();
let did = '10000000000000000000000000001501';
let param_body = getSign(html, rid, did, tt);
log(param_body);
let stream_json = request('https://m.douyu.com/api/room/ratestream', {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
}, body: param_body, method: 'POST'
});
log(stream_json);
let stream = JSON.parse(stream_json).data;
realUrl = stream.url;
log('解析到真实播放地址:' + realUrl);
} catch (e) {
log('解析发生错误:' + e.message);
realUrl = input;
}
return realUrl
}

View File

@ -1,14 +1,17 @@
// let jxUrl = 'http://api.ckflv.cn/?url=';
log(env);
let jxUrl = 'https://k.json.icu/home/api?type=ys&uid=12406929&key=adgouwyCGIRSTUV046&url=';
fetch_params.headers.Referer = jxUrl;
try {
// realUrl = null;
let html = request(jxUrl+vipUrl);
log(html);
realUrl = jsp.pjfh(html,'$..url');
log('解析到真实播放地址:'+realUrl);
}catch (e) {
log('解析发生错误:'+e.message);
realUrl = vipUrl;
function lazy() {
log(env);
let jxUrl = 'https://k.json.icu/home/api?type=ys&uid=12406929&key=adgouwyCGIRSTUV046&url=';
fetch_params.headers.Referer = jxUrl;
try {
// realUrl = null;
let html = request(jxUrl + input);
log(html);
realUrl = jsp.pjfh(html, '$..url');
log('解析到真实播放地址:' + realUrl);
} catch (e) {
log('解析发生错误:' + e.message);
realUrl = input;
}
return realUrl
}

View File

@ -1,15 +1,16 @@
// realUrl = 重定向('http://211.99.99.236:4567/jhjson/ceshi.php?url='+vipUrl);
// let jxUrl = 'http://211.99.99.236:4567/jhjson/ceshi.php?url=';
// let jxUrl = 'http://jx.vipmv.co/json.php?token=123457&url=';
let jxUrl = 'http://45.248.10.163:4433/json.php?wap=0&url=';
fetch_params.headers.Referer = jxUrl;
try {
// realUrl = null;
let html = request(jxUrl+vipUrl);
// log(html);
realUrl = jsp.pjfh(html,'$..url');
log('解析到真实播放地址:'+realUrl);
}catch (e) {
log('解析发生错误:'+e.message);
realUrl = vipUrl;
function lazy() {
let jxUrl = 'http://45.248.10.163:4433/json.php?wap=0&url=';
fetch_params.headers.Referer = jxUrl;
try {
// realUrl = null;
let html = request(jxUrl + input);
// log(html);
realUrl = jsp.pjfh(html, '$..url');
log('解析到真实播放地址:' + realUrl);
} catch (e) {
log('解析发生错误:' + e.message);
realUrl = input;
}
return realUrl
}

View File

@ -1,9 +1,12 @@
let PWD = 'drpy';
function lazy() {
let PWD = 'drpy';
// log(params);
if(!params.passwd){
realUrl = vipUrl
} else if(params.passwd !== PWD){
realUrl = toast(vipUrl+' 解析失败。解析密码错误');
}else{
realUrl = 重定向('http://211.99.99.236:4567/jhjson/ceshi.php?url='+vipUrl)
if (!params.passwd) {
realUrl = input
} else if (params.passwd !== PWD) {
realUrl = toast(input + ' 解析失败。解析密码错误');
} else {
realUrl = 重定向('http://211.99.99.236:4567/jhjson/ceshi.php?url=' + input)
}
return realUrl
}

View File

@ -1,20 +1,23 @@
let jxUrl = 'http://api.kunyu77.com/api.php/provide/parserUrl?url=';
var t = Math.floor(new Date().getTime() /1000).toString();
let jxExt = "&retryNum=0&pcode=010110002&version=2.1&devid=f9c9ce5bb5827a266829383718e6131a&package=com.sevenVideo.app.android&sys=android&sysver=12&brand=Xiaomi&model=Mi_10_Pro&sj="+t;
let url = jxUrl+vipUrl+jxExt;
let TK = "/api.php/provide/parserUrl"+"Xiaomif9c9ce5bb5827a266829383718e6131aMi_10_Procom.sevenVideo.app.android010110002"+0+t+"android12"+ encodeURIComponent(vipUrl) + "2.1"+t+"XSpeUFjJ";
fetch_params.headers.Referer = jxUrl;
function lazy() {
let jxUrl = 'http://api.kunyu77.com/api.php/provide/parserUrl?url=';
var t = Math.floor(new Date().getTime() / 1000).toString();
let jxExt = "&retryNum=0&pcode=010110002&version=2.1&devid=f9c9ce5bb5827a266829383718e6131a&package=com.sevenVideo.app.android&sys=android&sysver=12&brand=Xiaomi&model=Mi_10_Pro&sj=" + t;
let url = jxUrl + input + jxExt;
let TK = "/api.php/provide/parserUrl" + "Xiaomif9c9ce5bb5827a266829383718e6131aMi_10_Procom.sevenVideo.app.android010110002" + 0 + t + "android12" + encodeURIComponent(input) + "2.1" + t + "XSpeUFjJ";
fetch_params.headers.Referer = jxUrl;
// fetch_params.headers['User-Agent'] = "Dalvik/2.1.0";
fetch_params.headers['User-Agent'] = "okhttp/3.12.0";
fetch_params.headers['TK'] = md5(TK);
try {
// realUrl = null;
let html = request(url);
log(html);
realUrl = jsp.pjfh(html,'$..url');
realUrl = 重定向(realUrl);
log('解析到真实播放地址:'+realUrl);
}catch (e) {
log('解析发生错误:'+e.message);
realUrl = vipUrl;
fetch_params.headers['User-Agent'] = "okhttp/3.12.0";
fetch_params.headers['TK'] = md5(TK);
try {
// realUrl = null;
let html = request(url);
log(html);
realUrl = jsp.pjfh(html, '$..url');
realUrl = 重定向(realUrl);
log('解析到真实播放地址:' + realUrl);
} catch (e) {
log('解析发生错误:' + e.message);
realUrl = input;
}
return realUrl
}

View File

@ -1,2 +1,5 @@
// realUrl = 重定向('http://ivips.ml/jx/json.php/?url='+vipUrl)
realUrl = 重定向('http://103.40.240.46/jh/?url='+vipUrl)
// realUrl = 重定向('http://ivips.ml/jx/json.php/?url='+input)
function lazy() {
realUrl = 重定向('http://103.40.240.46/jh/?url=' + input);
return realUrl
}

View File

@ -2,57 +2,62 @@
// fetch_params.headers.Referer = jxUrl;
// try {
// // realUrl = null;
// let html = request(jxUrl+vipUrl);
// let html = request(jxUrl+input);
// log(html);
// //realUrl = jsp.pjfh(html,'$..url');
// realUrl=html.match(/var urls = "(.*?)"/)[1];
// log('解析到真实播放地址:'+realUrl);
// }catch (e) {
// log('解析发生错误:'+e.message);
// realUrl = vipUrl;
// realUrl = input;
// }
// 虾米免嗅
let jxUrl = 'https://jx.xmflv.com/?url=';
fetch_params.headers.Referer = jxUrl;
eval(getCryptoJS());
function encrypt(_0x5cf953) {
var _0x5efb07 = CryptoJS.enc.Utf8.parse(vkey);
var _0x45c0ea = CryptoJS.enc.Utf8.parse('ash3omcjsoajh1ur');
var _0x268682 = CryptoJS.AES.encrypt(_0x5cf953, _0x5efb07, {
'iv': _0x45c0ea,
'mode': CryptoJS.mode.CBC,
'padding': CryptoJS.pad.ZeroPadding
});
return _0x268682.toString();
}
function lazy() {
let jxUrl = 'https://jx.xmflv.com/?url=';
fetch_params.headers.Referer = jxUrl;
eval(getCryptoJS());
function jsdecrypt(_0x1a43fe) {
var _0x10ab4d = CryptoJS.enc.Utf8.parse(vkey);
var _0x291247 = CryptoJS.enc.Utf8.parse('contentDocuments');
var _0x5abb12 = CryptoJS.AES.decrypt(_0x1a43fe, _0x10ab4d, {
'iv': _0x291247,
'mode': CryptoJS.mode.CBC,
'padding': CryptoJS.pad.ZeroPadding
}).toString(CryptoJS.enc.Utf8);
return _0x5abb12.toString();
}
try {
let html = request(jxUrl+vipUrl);
let time = html.match(/var time = '(.*?)'/)[1];
let ua = html.match(/var ua = '(.*?)'/)[1];
let vkey = html.match(/var vkey = '(.*?)'/)[1];
function encrypt(_0x5cf953) {
var _0x5efb07 = CryptoJS.enc.Utf8.parse(vkey);
var _0x45c0ea = CryptoJS.enc.Utf8.parse('ash3omcjsoajh1ur');
var _0x268682 = CryptoJS.AES.encrypt(_0x5cf953, _0x5efb07, {
'iv': _0x45c0ea,
'mode': CryptoJS.mode.CBC,
'padding': CryptoJS.pad.ZeroPadding
});
return _0x268682.toString();
}
function jsdecrypt(_0x1a43fe) {
var _0x10ab4d = CryptoJS.enc.Utf8.parse(vkey);
var _0x291247 = CryptoJS.enc.Utf8.parse('contentDocuments');
var _0x5abb12 = CryptoJS.AES.decrypt(_0x1a43fe, _0x10ab4d, {
'iv': _0x291247,
'mode': CryptoJS.mode.CBC,
'padding': CryptoJS.pad.ZeroPadding
}).toString(CryptoJS.enc.Utf8);
return _0x5abb12.toString();
}
try {
let html = request(jxUrl + input);
let time = html.match(/var time = '(.*?)'/)[1];
let ua = html.match(/var ua = '(.*?)'/)[1];
let vkey = html.match(/var vkey = '(.*?)'/)[1];
// log(encrypt(vkey));
let phtml = request("https://jx.xmflv.com/favicon.ico", {
headers: {
"origin": "https://jx.xmflv.com"
},
body: "url=" + vipUrl + "&time=" + time + "&ua=" + ua + "&vkey=" + encrypt(vkey),
method: "post"
});
let phtml = request("https://jx.xmflv.com/favicon.ico", {
headers: {
"origin": "https://jx.xmflv.com"
},
body: "url=" + input + "&time=" + time + "&ua=" + ua + "&vkey=" + encrypt(vkey),
method: "post"
});
// log(phtml);
realUrl = jsdecrypt(JSON.parse(phtml).url);
log('解析到真实播放地址:'+realUrl);
}catch (e) {
log('解析发生错误:'+e.message);
realUrl = vipUrl;
realUrl = jsdecrypt(JSON.parse(phtml).url);
log('解析到真实播放地址:' + realUrl);
} catch (e) {
log('解析发生错误:' + e.message);
realUrl = input;
}
return realUrl
}

View File

@ -183,7 +183,7 @@ def jxTxt2Json(text: str, host: str):
return jxs
def getJxs(path='js', host=None):
def getJxs(path=None, host=None):
custom_jx = 'base/解析.conf'
if not os.path.exists(custom_jx):
with open(custom_jx, 'w+', encoding='utf-8') as f1:
@ -195,8 +195,10 @@ def getJxs(path='js', host=None):
"""
f1.write(msg)
base_path = 'jiexi' # 自建解析目录
if path is None:
path = base_path
os.makedirs(base_path, exist_ok=True)
file_name = os.listdir(base_path)
file_name = os.listdir(path)
file_name = list(
filter(lambda x: str(x).endswith('.js') and str(x).find('模板') < 0 and str(x).find('加密') < 0, file_name))
# print(file_name)

View File

@ -1 +1 @@
3.9.47beta40
3.9.47beta41

View File

@ -11,6 +11,9 @@
* "Cookie":"$bili_cookie"
* 手动替换为
* "Cookie":"将获取的Cookie黏贴在这"
* 客户端长期Cookie设置教程:
* 抓包哔哩手机端搜索access_key,取任意链接里的access_key和appkey在drpy环境变量中增加同名的环境变量即可
* 此时哔哩.js这个解析可用于此源的解析线路用
*/
var rule = {

View File

@ -70,14 +70,14 @@
"url": "{{ jx.url }}",
"type": {{ jx.type }},
"ext": {
"flag": ["qiyi","imgo","爱奇艺", "奇艺", "qq","qq 预告及花絮", "腾讯", "youku", "优酷", "pptv", "PPTV", "letv", "乐视","leshi", "bilibili", "哔哩哔哩", "哔哩", "mgtv", "芒果","sohu", "xigua","fun","风行"],
"flag": ["qiyi","imgo","爱奇艺", "奇艺", "qq","qq 预告及花絮", "腾讯", "youku", "优酷", "pptv", "PPTV", "letv", "乐视","leshi", "mgtv", "芒果","sohu", "xigua","fun","风行"],
"header": {
"User-Agent": "{{ jx.ua }}"
}
}
}{% if loop.last==False %},{% endif %}{% endfor %}
],
"flags": ["imgo","youku", "qq","qq 预告及花絮", "iqiyi", "qiyi","fun", "letv","leshi","sohu", "tudou","xigua","cntv","1905", "pptv", "mgtv", "wasu", "bilibili", "renrenmi"],
"flags": ["imgo","youku", "qq","qq 预告及花絮", "iqiyi", "qiyi","fun", "letv","leshi","sohu", "tudou","xigua","cntv","1905", "pptv", "mgtv", "wasu", "renrenmi"],
"hotSearch": [{
"name": "mobilesearch",
"request": {