diff --git a/js.json b/js.json index 90ac6a67..a68ed678 100644 --- a/js.json +++ b/js.json @@ -110,9 +110,9 @@ {"key":"drpy_js_我的哔哩","name":"弹幕 | 哔哩合集[js]","type":3,"api":"./lib/drpy2.min.js","recordable":0,"style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/我的哔哩.js"}, {"key":"drpy_js_哔哩直播","name":"弹幕 | 哔哩直播[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/哔哩直播.js"}, {"key":"drpy_js_哔哩影视","name":"弹幕 | 哔哩影视[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/哔哩影视.js"}, +{"key":"drpy_js_JustLive","name":"弹幕 | JustLive[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/JustLive.js"}, {"key":"drpy_js_斗鱼直播","name":"直播 | 斗鱼[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/斗鱼直播.js"}, {"key":"drpy_js_虎牙直播","name":"直播 | 虎牙[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/虎牙直播.js"}, -{"key":"drpy_js_JustLive","name":"直播 | JustLive[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/JustLive.js"}, {"key":"drpy_js_310直播","name":"体育 | 310直播[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/310直播.js"}, {"key":"drpy_js_88看球","name":"体育 | 88看球[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/88看球.js"}, {"key":"drpy_js_JRKAN直播","name":"体育 | JRKAN直播[js]","type":3,"api":"./lib/drpy.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/JRKAN直播.js"}, diff --git a/js/JustLive.js b/js/JustLive.js index 0646dfb5..72d77fc5 100644 --- a/js/JustLive.js +++ b/js/JustLive.js @@ -32,13 +32,45 @@ var rule = { }, timeout: 5000, play_parse: true, - lazy: '', + // lazy: '', + lazy:`js: + let purl = input.split("|")[0]; + let pfrom = input.split("|")[1]; + let cid = input.split("|")[2]; + print("purl:" + purl); + print("pfrom:" + pfrom); + print("cid:" + cid); + let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + cid; + if (/bilibili/.test(pfrom)){ + let result = {}; + result['parse'] = 0; + result['playUrl'] = ''; + result['url'] = unescape(purl); + result['header'] = { + Referer: 'https://live.bilibili.com', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' + }; + result['danmaku'] = dan; + if (/h5/.test(purl)) { + result['contentType'] = ''; + input = result + } else { + result['contentType'] = 'video/x-flv'; + input = result + } + } else { + input = purl + } + `, limit: 6, 推荐: '*', 一级: 'json:data;roomName;roomPic;ownerName;roomId', // 二级: 'js:var d=[];var jo=JSON.parse(request(input)).data;VOD={vod_id:jo.roomId,vod_name:jo.roomName,vod_pic:jo.roomPic,type_name:jo.platForm.replace("huya","虎牙").replace("douyu","斗鱼").replace("cc","网易CC").replace("bilibili","哔哩哔哩")+"."+jo.categoryName,vod_content:"🏷分区:"+jo.platForm.replace("huya","虎牙").replace("douyu","斗鱼").replace("cc","网易CC").replace("bilibili","哔哩哔哩")+"·"+jo.categoryName+" 🏷UP主:"+jo.ownerName+" 🏷人气:"+jo.online+(jo.isLive===1?" 🏷状态:正在直播":"状态:未开播")};var playurl=JSON.parse(request("http://live.yj1211.work/api/live/getRealUrl?platform="+jo.platForm+"&roomId="+jo.roomId)).data;var name={"OD":"原画","FD":"流畅","LD":"标清","SD":"高清","HD":"超清","2K":"2K","4K":"4K","FHD":"全高清","XLD":"极速","SQ":"普通音质","HQ":"高音质"};Object.keys(playurl).forEach(function(key){if(!/ayyuid|to/.test(key)){d.push({title:name[key],url:playurl[key]})}});VOD.vod_play_from="选择画质";VOD.vod_play_url=d.map(function(it){return it.title+"$"+it.url}).join("#");setResult(d)', 二级: `js: var d = []; + if (typeof play_url === "undefined") { + var play_url = "" + } input = /platform=&/.test(input) ? input.replace("platform=", "platform=bilibili") : input; var jo = JSON.parse(request(input)).data; VOD = { @@ -72,7 +104,8 @@ var rule = { }); VOD.vod_play_from = "选择画质"; VOD.vod_play_url = d.map(function(it) { - return it.title + "$" + it.url + // return it.title + "$" + it.url + return it.title + "$" + play_url + urlencode(it.url + "|" + jo.platForm + "|" + jo.roomId) }).join("#"); setResult(d) `, diff --git a/js/ikanbot2.js b/js/ikanbot2.js index db3bb72c..d1c0169a 100644 --- a/js/ikanbot2.js +++ b/js/ikanbot2.js @@ -26,7 +26,8 @@ VOD.vod_name = pdfh(html1, "h2&&Text"); let html = request(input, { headers: { // 'User-Agent':'PC_UA', - 'User-Agent':'MOBILE_UA', + // 'User-Agent':'MOBILE_UA', + 'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', 'Referer': input, } }); @@ -44,7 +45,7 @@ VOD.vod_name = pdfh(html1, "h2&&Text"); if (!playMap.hasOwnProperty(source)) { playMap[source] = [] } - playMap[source].push(playurl["url"]) + playMap[source].push(playurl["url"].replaceAll('##','#')) }) }); let playFrom = []; diff --git a/js/ikanbot3.js b/js/ikanbot3.js index 6f25ab48..22a69e44 100644 --- a/js/ikanbot3.js +++ b/js/ikanbot3.js @@ -20,12 +20,13 @@ try { var v_tks = ''; // let script = pdfa(html1,'script').find(it=>it.includes('v_tks+=')).replace(/