mirror of
https://github.com/letian1650/N3RD.git
synced 2025-01-24 03:05:33 +08:00
Add files via upload
This commit is contained in:
parent
16880d50a1
commit
6814385e20
102
JN/dr_py/js/JRKAN直播.js
Normal file
102
JN/dr_py/js/JRKAN直播.js
Normal file
@ -0,0 +1,102 @@
|
||||
// 道长 hipy仓库 https://github.com/hjdhnx/hipy-server
|
||||
|
||||
var rule = {
|
||||
title: 'JRKAN直播',
|
||||
host: 'http://www.jrkankan.com/?lan=1',
|
||||
// JRKAN备用域名:www.jrkankan.com / www.jrkan365.com / jrsyyds.com / www.jryyds.com / jrskan.com / jrsbxj.com
|
||||
// JRKAN网址发布:qiumi1314.com
|
||||
url: '/fyclass',
|
||||
searchUrl: '',
|
||||
searchable: 0,
|
||||
quickSearch: 0,
|
||||
class_name: '全部',
|
||||
class_url: '/',
|
||||
//class_url:'?live',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
let _id = input.match(/id=(.*?)&/)[1];
|
||||
_id = decodeURIComponent(_id);
|
||||
let html = request(input);
|
||||
// log(html);
|
||||
let src = html.match(/src='(.*?)'/)[1].replace('"+id1+"', _id);
|
||||
log('src:' + src);
|
||||
//let _url = `http://play.sportsteam356.com/play/${_id}.html`;
|
||||
let _url = urljoin(input, src);
|
||||
log('_url:' + _url);
|
||||
html = request(_url);
|
||||
_url = 'http:' + pdfh(html, 'iframe&&src');
|
||||
log('iframe_url:' + _url);
|
||||
|
||||
function J_get(name, url) {
|
||||
url = url ? url : 'http://cloud.yumixiu768.com/player/msss.html?id=/live/705782/playlist.m3u8?k=f8444f76c5852ada0b6ac9181714b310&t=1819702363';
|
||||
var start = url.indexOf(name + '=');
|
||||
if (start == -1) return '';
|
||||
var len = start + name.length + 1;
|
||||
var end = url.indexOf('######', len);
|
||||
if (end == -1) end = url.length;
|
||||
return unescape(url.substring(len, end));
|
||||
}
|
||||
|
||||
let id = J_get('id', _url);
|
||||
if (id) {
|
||||
let purl = "//hls.szsummer.cn" + id;
|
||||
if (!purl.startsWith('http')) {
|
||||
purl = 'https:' + purl;
|
||||
}
|
||||
log('play_url:' + purl);
|
||||
input = {parse: 0, url: purl};
|
||||
}
|
||||
}),
|
||||
limit: 6,
|
||||
double: false,
|
||||
推荐: '*',
|
||||
一级: $js.toString(() => {
|
||||
let d = [];
|
||||
let html = request(input);
|
||||
let tabs = pdfa(html, 'ul.d-touch');
|
||||
tabs.forEach((it) => {
|
||||
let ps = pdfh(it, '.name&&Text');
|
||||
let pz = pdfh(it, '.name:eq(1)&&Text');
|
||||
let pk = pdfh(it, '.name:eq(2)&&Text');
|
||||
let img = pd(it, 'img&&src');
|
||||
let timer = pdfh(it, '.lab_time&&Text');
|
||||
let url = pd(it, 'a.me&&href');
|
||||
d.push({
|
||||
title: pz + '🆚' + pk,
|
||||
desc: timer + '🏆' + ps,
|
||||
img: img,
|
||||
url: url
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
二级: {
|
||||
"title": ".sub_list li:lt(2)&&Text;.sub_list li:eq(0)&&Text",
|
||||
"img": "img&&src",
|
||||
"desc": ";;;.lab_team_home&&Text;.lab_team_away&&Text",
|
||||
"content": ".sub_list ul&&Text",
|
||||
"tabs": "js:TABS=['JRKAN直播']",
|
||||
lists: $js.toString(() => {
|
||||
//log(TABS);
|
||||
LISTS = [];
|
||||
let html = request(input);
|
||||
let data = pdfa(html, '.sub_playlist&&a');
|
||||
let lists1 = [];
|
||||
data.forEach((it) => {
|
||||
let name = pdfh(it, 'strong&&Text');
|
||||
let url1 = pdfh(it, 'a&&data-play');
|
||||
// log(url1);
|
||||
if (url1.length > 8) { //过滤无效选集
|
||||
let url = pd(it, 'a&&data-play', input);
|
||||
lists1.push(name + '$' + url);
|
||||
}
|
||||
});
|
||||
LISTS.push(lists1);
|
||||
}),
|
||||
},
|
||||
搜索: '',
|
||||
}
|
38
JN/dr_py/js/最新4K.js
Normal file
38
JN/dr_py/js/最新4K.js
Normal file
@ -0,0 +1,38 @@
|
||||
var rule = {
|
||||
模板: '首图2',
|
||||
title: '最新4K',
|
||||
host: 'https://www.1080.ee',
|
||||
url: '/vodtype/fyclass-fypage.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
cate_exclude: '专题',
|
||||
搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
lazy: $js.toString(() => {
|
||||
let html = request(input);
|
||||
html = JSON.parse(html.match(/r player_.*?=(.*?)</)[1]);
|
||||
let url = html.url;
|
||||
// log('url:'+url);
|
||||
let config = {};
|
||||
let jscode = request(HOST + '/static/js/playerconfig.js');
|
||||
// log('jscode:'+jscode);
|
||||
eval(jscode + '\nconfig=MacPlayerConfig;');
|
||||
let jx = config.player_list[html.from].parse;
|
||||
if (jx == '') {
|
||||
jx = config.parse
|
||||
}
|
||||
log('jx:' + jx);
|
||||
let p = 'url=' + url;
|
||||
let video = JSON.parse(request(jx.replace('?url=', 'API.php'), {
|
||||
headers: {
|
||||
'Referer': HOST
|
||||
},
|
||||
body: p,
|
||||
method: 'POST'
|
||||
})).url;
|
||||
log(video);
|
||||
input = {
|
||||
jx: 0,
|
||||
url: video,
|
||||
parse: 0
|
||||
}
|
||||
}),
|
||||
}
|
@ -6,4 +6,81 @@ var rule = {
|
||||
tab_exclude: '排序',
|
||||
url: '/vodshow/fyclass--------fypage---.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
lazy: $js.toString(() => {
|
||||
let html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
let url = html.url;
|
||||
if (html.encrypt == '1') {
|
||||
url = unescape(url);
|
||||
} else if (html.encrypt == '2') {
|
||||
url = unescape(base64Decode(url));
|
||||
}
|
||||
if (/m3u8/.test(url)) {
|
||||
input = {
|
||||
jx: 0,
|
||||
url: url,
|
||||
parse: 0
|
||||
}
|
||||
} else {
|
||||
let config = {};
|
||||
eval(request(HOST + '/static/js/playerconfig.js') + '\nconfig=MacPlayerConfig;');
|
||||
let jx = HOST + config.player_list[html.from].parse;
|
||||
if (jx == '') {
|
||||
jx = HOST + config.parse;
|
||||
}
|
||||
log(jx);
|
||||
eval(request(jx + url, {
|
||||
headers: {
|
||||
'Referer': input
|
||||
}
|
||||
}).match(/let config = {[\s\S]*?}/)[0]);
|
||||
log(config.url);
|
||||
eval(getCryptoJS());
|
||||
|
||||
function rc4(data, key, t) {
|
||||
let pwd = key || 'ffsirllq';
|
||||
let cipher = '';
|
||||
key = [];
|
||||
let box = [];
|
||||
let pwd_length = pwd.length;
|
||||
if (t == 1) {
|
||||
data = atob(data);
|
||||
} else {
|
||||
data = encodeURIComponent(data);
|
||||
}
|
||||
let data_length = data.length;
|
||||
for (let i = 0; i < 256; i++) {
|
||||
key[i] = pwd[i % pwd_length].charCodeAt();
|
||||
box[i] = i;
|
||||
}
|
||||
for (let j = 0, i = 0; i < 256; i++) {
|
||||
j = (j + box[i] + key[i]) % 256;
|
||||
let tmp = box[i];
|
||||
box[i] = box[j];
|
||||
box[j] = tmp;
|
||||
}
|
||||
for (let a = 0, j = 0, i = 0; i < data_length; i++) {
|
||||
a = (a + 1) % 256;
|
||||
j = (j + box[a]) % 256;
|
||||
let tmp = box[a];
|
||||
box[a] = box[j];
|
||||
box[j] = tmp;
|
||||
let k = box[((box[a] + box[j]) % 256)];
|
||||
cipher += String.fromCharCode(data[i].charCodeAt() ^ k);
|
||||
}
|
||||
if (t == 1) {
|
||||
return decodeURIComponent(cipher);
|
||||
} else {
|
||||
return btoa(cipher);
|
||||
}
|
||||
}
|
||||
|
||||
let play = rc4(config.url, "202205051426239465", 1);
|
||||
input = {
|
||||
jx: 0,
|
||||
url: play,
|
||||
parse: 0
|
||||
}
|
||||
|
||||
}
|
||||
}),
|
||||
}
|
16
JN/dr_py/js/追剧兔.js
Normal file
16
JN/dr_py/js/追剧兔.js
Normal file
@ -0,0 +1,16 @@
|
||||
Object.assign(muban.短视2.二级, {
|
||||
img: '.lazy&&data-src',
|
||||
});
|
||||
var rule = {
|
||||
模板: '短视2',
|
||||
title: '追剧兔',
|
||||
host: 'https://zjtu.tv',
|
||||
class_name: '电影&电视剧&综艺&动漫&记录&短剧',
|
||||
class_url: '1&2&3&4&5&20',
|
||||
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
|
||||
detailUrl: '/project-fyid/',
|
||||
推荐: '.public-list-box;a&&title;.lazy&&data-src;.public-list-prb&&Text;a&&href',
|
||||
图片替换: $js.toString(() => {
|
||||
input = input.replace('mac://', 'https://');
|
||||
}),
|
||||
}
|
@ -1 +1,127 @@
|
||||
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
|
||||
var rule = {
|
||||
title: '黑料不打烊[密]',
|
||||
host: 'https://hl49.co',
|
||||
url: '/category/fyclass/fypage.html',
|
||||
searchUrl: '/index/search_article?word=**&page=fypage',
|
||||
searchable: 1,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
headers: {
|
||||
'User-Agent': 'Mozilla/5.0',
|
||||
},
|
||||
class_parse: '.slider-content&&a;span&&Text;a&&href;.*/(\\d+)\.html',
|
||||
hostJs: $js.toString(() => {
|
||||
HOST = 'https://mgj.uzrpy.com';
|
||||
try {
|
||||
let html = request(rule.host);
|
||||
HOST = pdfh(html, ".box-wrap&&a&&href") || HOST;
|
||||
} catch (e) {
|
||||
log(`获取Host错误${e.message}`);
|
||||
}
|
||||
}),
|
||||
hikerListCol: "card_pic_1",
|
||||
hikerClassListCol: "card_pic_1",
|
||||
lazy: typeof MY_NAME !== "undefined" ? $js.toString(() => {
|
||||
var list = jsp.pdfa(request(input), '.dplayer');
|
||||
input = {
|
||||
parse: ""
|
||||
};
|
||||
if (list.length === '1') {
|
||||
let url = JSON.parse(pdfh(list[0], '.dplayer&&config')).video.url;
|
||||
input.url = url.startsWith("http") ? url : "https://hls.vdtuzv.com" + url;
|
||||
} else {
|
||||
var a = []
|
||||
list.forEach((data, id) => a.push('第' + (id + 1) + '部'))
|
||||
input.url = $(a, 1)
|
||||
.select(list => {
|
||||
input = input.match(/\d+/)[0] - 1
|
||||
return $(JSON.parse(pdfh(list[input], '.dplayer&&config'))
|
||||
.video.url)
|
||||
.lazyRule(() => input.startsWith("http") ? input : "https://hls.vdtuzv.com" + input)
|
||||
}, list)
|
||||
}
|
||||
}) : void 0,
|
||||
play_parse: true,
|
||||
limit: 6,
|
||||
proxy_rule: $js.toString(() => {
|
||||
//log(input);
|
||||
// 测试:https://www.wakatool.com/base64img
|
||||
if (input) {
|
||||
let t1 = new Date().getTime();
|
||||
let _type = input.url.split('.').slice(-1)[0];
|
||||
let data = request(input.url, {toBase64: true});
|
||||
//log(data);
|
||||
let t2 = new Date().getTime();
|
||||
log(`网络请求获取图片耗时:${t2 - t1}ms`);
|
||||
// log(`当前线程:${java.lang.Thread.currentThread().getName()}`);
|
||||
|
||||
let key = CryptoJS.enc.Utf8.parse("f5d965df75336270");
|
||||
let iv = CryptoJS.enc.Utf8.parse("97b60394abc2fbe1");
|
||||
let encrypted = CryptoJS.AES.decrypt({
|
||||
ciphertext: CryptoJS.enc.Base64.parse(data)
|
||||
}, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString(CryptoJS.enc.Base64);
|
||||
let img_base64 = 'data:image/' + _type + ';base64,' + encrypted;
|
||||
let t3 = new Date().getTime();
|
||||
log(`已获取图片${input.url}解密耗时:${t3 - t2}ms`);
|
||||
// // input = [200, 'text/plain', img_base64];
|
||||
// input = [302, 'text/html', '', {Location:'https://www.baidu.com'}];
|
||||
input = [200, 'image/' + _type, img_base64, null, 1];
|
||||
// input = [200, 'text/plain', data];
|
||||
}
|
||||
}),
|
||||
预处理: $js.toString(() => {
|
||||
rule.cate_exclude = '';
|
||||
}),
|
||||
推荐: '*',
|
||||
一级: $js.toString(() => {
|
||||
let d = [];
|
||||
let html = request(input);
|
||||
let list = pdfa(html, '.video-item');
|
||||
list.forEach(item => {
|
||||
var pic = pdfh(item, 'img&&onload');
|
||||
var url = pd(item, 'a&&href', MY_URL);
|
||||
var title = pdfh(item, '.title&&Text');
|
||||
if (title) {
|
||||
d.push({
|
||||
title: title,
|
||||
img: pic,
|
||||
desc: "0",
|
||||
url: url
|
||||
});
|
||||
}
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
//一级: '.video-item;.title&&Text;img&&onload;;a&&href',
|
||||
图片替换: $js.toString(() => {
|
||||
if (/loadImg/.test(input)) {
|
||||
input = input.split("'")[1];
|
||||
}
|
||||
input = getProxyUrl() + '&url=' + input;
|
||||
}),
|
||||
二级: "*",
|
||||
搜索: $js.toString(() => {
|
||||
let d = [];
|
||||
let u = input.split("?");
|
||||
let h = post(u[0], {
|
||||
body: u[1]
|
||||
});
|
||||
let list = JSON.parse(h).data.list;
|
||||
|
||||
list.forEach(item => {
|
||||
let pic = item.thumb;
|
||||
let url = `${rule.host}/archives/${item.id}.html`
|
||||
d.push({
|
||||
title: item.title,
|
||||
desc: item.created_date,
|
||||
img: pic,
|
||||
url: url
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
})
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user