提交 65daaf65 编写于 作者: H hjdhnx

抄了一波最新的代码

上级 79b12c1a
3.8.3beta2 3.8.4
\ No newline at end of file \ No newline at end of file
var rule = Object.assign(muban.mxpro,{ var rule = Object.assign(muban.mxone5,{
title:'看视界', title:'看视界',
host:'https://www.1080kan.cc', host:'https://www.1080kan.cc',
url:'/show/fyclass--------fypage---.html',
searchUrl:'/search/**----------fypage---.html',
searchable:2,
class_parse:'.navbar-items li:gt(1):lt(6);a&&Text;a&&href;.*/(.*?).html',
}); });
\ No newline at end of file
此差异已折叠。
...@@ -371,8 +371,8 @@ function getCryptoJS(){ ...@@ -371,8 +371,8 @@ function getCryptoJS(){
return 'console.log("CryptoJS已装载");' return 'console.log("CryptoJS已装载");'
} }
globalThis.VODS = [];// 一级或者搜索需要的数据列表 let VODS = [];// 一级或者搜索需要的数据列表
globalThis.VOD = {};// 二级的单个数据 let VOD = {};// 二级的单个数据
globalThis.encodeUrl = urlencode; globalThis.encodeUrl = urlencode;
globalThis.urlencode = urlencode; globalThis.urlencode = urlencode;
...@@ -499,10 +499,18 @@ const parseTags = { ...@@ -499,10 +499,18 @@ const parseTags = {
}, },
jq:{ jq:{
pdfh(html, parse, base_url) { pdfh(html, parse, base_url) {
if (!parse || !parse.trim()){ if (!parse || !parse.trim()) {
return '' return ''
} }
let eleFind = typeof html === 'object';
let option = undefined; let option = undefined;
if (eleFind && parse.startsWith('body&&')) {
parse = parse.substr(6);
if (parse.indexOf('&&') < 0) {
option = parse.trim();
parse = '*=*';
}
}
if (parse.indexOf('&&') > -1) { if (parse.indexOf('&&') > -1) {
let sp = parse.split('&&'); let sp = parse.split('&&');
option = sp[sp.length - 1]; option = sp[sp.length - 1];
...@@ -521,23 +529,23 @@ const parseTags = { ...@@ -521,23 +529,23 @@ const parseTags = {
parse = sp.join(' '); parse = sp.join(' ');
} }
let result = ''; let result = '';
const $ = cheerio.load(html); const $ = eleFind ? html.rr : cheerio.load(html);
let ret = $(parse); let ret = eleFind ? ((parse === '*=*' || $(html.ele).is(parse)) ? html.ele : $(html.ele).find(parse)) : $(parse);
if (option) { if (option) {
if (option === 'Text'){ if (option === 'Text') {
result = $(ret).text(); result = $(ret).text();
} }
else if (option === 'Html'){ else if (option === 'Html') {
result = $(ret).html(); result = $(ret).html();
} }
else{ else {
result = $(ret).attr(option); result = $(ret).attr(option);
} }
if (result && base_url && DOM_CHECK_ATTR.test(option)) { if (result && base_url && DOM_CHECK_ATTR.test(option)) {
if(/http/.test(result)){ if (/http/.test(result)) {
result = result.substr(result.indexOf('http')); result = result.substr(result.indexOf('http'));
}else{ } else {
result = urljoin(base_url,result) result = urljoin(base_url, result)
} }
} }
} else { } else {
...@@ -546,9 +554,10 @@ const parseTags = { ...@@ -546,9 +554,10 @@ const parseTags = {
return result; return result;
}, },
pdfa(html, parse) { pdfa(html, parse) {
if (!parse || !parse.trim()){ if (!parse || !parse.trim()) {
return []; return [];
} }
let eleFind = typeof html === 'object';
if (parse.indexOf('&&') > -1) { if (parse.indexOf('&&') > -1) {
let sp = parse.split('&&'); let sp = parse.split('&&');
for (let i in sp) { for (let i in sp) {
...@@ -558,12 +567,12 @@ const parseTags = { ...@@ -558,12 +567,12 @@ const parseTags = {
} }
parse = sp.join(' '); parse = sp.join(' ');
} }
const $ = cheerio.load(html); const $ = eleFind ? html.rr : cheerio.load(html);
let ret = $(parse); let ret = eleFind ? ($(html.ele).is(parse) ? html.ele : $(html.ele).find(parse)) : $(parse);
let result = []; let result = [];
if (ret) { if (ret) {
ret.each(function (idx, ele) { ret.each(function (idx, ele) {
result.push($(ele).toString()); result.push({ rr: $, ele: ele });
}); });
} }
return result; return result;
...@@ -914,6 +923,7 @@ function homeParse(homeObj) { ...@@ -914,6 +923,7 @@ function homeParse(homeObj) {
try { try {
let html = getHtml(homeObj.MY_URL); let html = getHtml(homeObj.MY_URL);
if (html) { if (html) {
homeHtmlCache = html;
let list = pdfa(html, p[0]); let list = pdfa(html, p[0]);
if (list && list.length > 0) { if (list && list.length > 0) {
list.forEach((it,idex) => { list.forEach((it,idex) => {
...@@ -929,8 +939,8 @@ function homeParse(homeObj) { ...@@ -929,8 +939,8 @@ function homeParse(homeObj) {
} }
classes.push({ classes.push({
'type_id': url, 'type_id': url.trim(),
'type_name': name 'type_name': name.trim()
}); });
} catch (e) { } catch (e) {
console.log(`分类列表定位第${idex}个元素正常报错:${e.message}`); console.log(`分类列表定位第${idex}个元素正常报错:${e.message}`);
...@@ -993,7 +1003,8 @@ function homeVodParse(homeVodObj){ ...@@ -993,7 +1003,8 @@ function homeVodParse(homeVodObj){
let is_json = p[0].startsWith('json:'); let is_json = p[0].startsWith('json:');
p[0] = p[0].replace(/^(jsp:|json:|jq:)/,''); p[0] = p[0].replace(/^(jsp:|json:|jq:)/,'');
// print(p[0]); // print(p[0]);
let html = getHtml(MY_URL); let html = homeHtmlCache || getHtml(MY_URL);
homeHtmlCache = undefined;
if(is_json){ if(is_json){
// print('是json,开始处理'); // print('是json,开始处理');
html = dealJson(html); html = dealJson(html);
...@@ -1292,7 +1303,7 @@ function searchParse(searchObj) { ...@@ -1292,7 +1303,7 @@ function searchParse(searchObj) {
function detailParse(detailObj){ function detailParse(detailObj){
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
let vod = { let vod = {
vod_id: "id", vod_id: detailObj.orId, //"id",
vod_name: "片名", vod_name: "片名",
vod_pic: "", vod_pic: "",
type_name: "剧情", type_name: "剧情",
...@@ -1328,10 +1339,12 @@ function detailParse(detailObj){ ...@@ -1328,10 +1339,12 @@ function detailParse(detailObj){
if(!html){ if(!html){
html = getHtml(MY_URL); html = getHtml(MY_URL);
} }
let _impJQP = true;
let _ps; let _ps;
if(p.is_json){ if(p.is_json){
_ps = parseTags.json; _ps = parseTags.json;
html = dealJson(html); html = dealJson(html);
_impJQP = false;
}else if(p.is_jsp){ }else if(p.is_jsp){
_ps = parseTags.jsp; _ps = parseTags.jsp;
}else if(p.is_jq){ }else if(p.is_jq){
...@@ -1339,6 +1352,10 @@ function detailParse(detailObj){ ...@@ -1339,6 +1352,10 @@ function detailParse(detailObj){
}else{ }else{
_ps = parseTags.jq; _ps = parseTags.jq;
} }
if (_impJQP) {
let c$ = cheerio.load(html);
html = { rr: c$, ele: c$('html')[0] }
}
_pdfa = _ps.pdfa; _pdfa = _ps.pdfa;
_pdfh = _ps.pdfh; _pdfh = _ps.pdfh;
_pd = _ps.pd; _pd = _ps.pd;
...@@ -1381,6 +1398,10 @@ function detailParse(detailObj){ ...@@ -1381,6 +1398,10 @@ function detailParse(detailObj){
let playFrom = []; let playFrom = [];
if(p.重定向&&p.重定向.startsWith('js:')){ if(p.重定向&&p.重定向.startsWith('js:')){
html = eval(p.重定向.replace('js:','')); html = eval(p.重定向.replace('js:',''));
if (_impJQP) {
let c$ = cheerio.load(html);
html = { rr: c$, ele: c$('html')[0] }
}
} }
// console.log(2); // console.log(2);
...@@ -1429,7 +1450,8 @@ function detailParse(detailObj){ ...@@ -1429,7 +1450,8 @@ function detailParse(detailObj){
vodList.forEach(it=>{ vodList.forEach(it=>{
// 请注意,这里要固定pdfh解析body&&Text,不需要下划线,没写错 // 请注意,这里要固定pdfh解析body&&Text,不需要下划线,没写错
// new_vod_list.push(pdfh(it,'body&&Text')+'$'+_pd(it,'a&&href',MY_URL)); // new_vod_list.push(pdfh(it,'body&&Text')+'$'+_pd(it,'a&&href',MY_URL));
new_vod_list.push(cheerio.load(it).text()+'$'+_pd(it,'a&&href',MY_URL)); // new_vod_list.push(cheerio.load(it).text()+'$'+_pd(it,'a&&href',MY_URL));
new_vod_list.push(_pdfh(it, 'body&&Text') + '$' + _pd(it, 'a&&href', MY_URL));
}); });
let vlist = new_vod_list.join('#'); let vlist = new_vod_list.join('#');
vod_tab_list.push(vlist); vod_tab_list.push(vlist);
...@@ -1569,6 +1591,8 @@ function playParse(playObj){ ...@@ -1569,6 +1591,8 @@ function playParse(playObj){
} }
} }
let homeHtmlCache = undefined;
/** /**
* js源获取首页分类和筛选特定返回对象中的函数 * js源获取首页分类和筛选特定返回对象中的函数
* @param filter 筛选条件字典对象 * @param filter 筛选条件字典对象
...@@ -1630,6 +1654,7 @@ function category(tid, pg, filter, extend) { ...@@ -1630,6 +1654,7 @@ function category(tid, pg, filter, extend) {
* @returns {string} * @returns {string}
*/ */
function detail(vod_url) { function detail(vod_url) {
let orId = vod_url;
let fyclass = ''; let fyclass = '';
if(vod_url.indexOf('$')>-1){ if(vod_url.indexOf('$')>-1){
let tmp = vod_url.split('$'); let tmp = vod_url.split('$');
...@@ -1646,6 +1671,7 @@ function detail(vod_url) { ...@@ -1646,6 +1671,7 @@ function detail(vod_url) {
url = detailUrl url = detailUrl
} }
let detailObj = { let detailObj = {
orId: orId,
url:url, url:url,
二级:rule.二级, 二级:rule.二级,
detailUrl:detailUrl, detailUrl:detailUrl,
......
此差异已折叠。
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
###### 2022/10/09 ###### 2022/10/09
- [X] 1.v3.8.2 本地drpy.js抄了一下影魔代码实现了base64加解密和md5加密并且引入全局的CryptoJS对象 - [X] 1.v3.8.2 本地drpy.js抄了一下影魔代码实现了base64加解密和md5加密并且引入全局的CryptoJS对象
- [X] 2.v3.8.3 本地drpy.js抄了一下影魔代码不用import模板改成init加载模板解决换源冲突问题 - [X] 2.v3.8.3 本地drpy.js抄了一下影魔代码不用import模板改成init加载模板解决换源冲突问题
- [X] 3.v3.8.4 抄了影魔最新的代码并更新版本
###### 2022/10/08 ###### 2022/10/08
- [X] 1.v3.8.1 本地drpy.js优化优酷兼容,已全部完善 - [X] 1.v3.8.1 本地drpy.js优化优酷兼容,已全部完善
###### 2022/10/07 ###### 2022/10/07
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册