var updateLog = ` 2022/08/24 废除部分代码 2022/08/22 优化自动模板匹配的通用免嗅,修复搜索的自动匹配 2022/08/21 记录翻页位置(伪足迹,不能解决翻页但是没观看的足迹问题),智能最新章节优化 2022/08/20 增强小说模式免嗅探,内置净化内容,优化自动匹配抛错问题,一级处理判断 自动匹配属性为真的时候才抛错。二级增加双击线路名称快速切换选集按钮样式 2022/08/19 增强漫画模式免嗅探 2022/07/28 coding依赖链接全部转移至csdn 2022/07/15 修复蓝莓影视多多资源没法通免的问题 2022/07/08 增加config.ui插件,可被引用 2022/07/07 封装了另外一套常用动态分类写法,函数为动态分类(一级列表变量) 2022/07/06 优化动态翻页逻辑,增加bug 2022/07/05 dr模板升级到5.0,二级翻页组件升级为动态元素切换 2022/07/04 调整自动一级函数的参数顺序,html参数改到cates之后 2022/06/29 新增磁力兼容,新增嗅探结果处理 2022/06/21 增加牛逼功能二级处理=>附加数据,附加数据标题,内容附加折叠到简介后面 2022/06/20 兼容磁力链接动态解析 一级提速半秒以上,相比以前提升1.2倍。3.0支持套小说了!支持完美自动获取智能最新章节.支持验证码识别.小说模式优化。二级页面带cookie.取消程序自毁.支持小说下载。新增收藏二级显示单规则名 `.trim(); var version={ author:"道长", ver:"5.2.1", // appv:2316, appv:583, requireId:"http://hiker.nokia.press/hikerule/rulelist.json?id=2505", update:'2022/08/24 14:25', info:updateLog, ua:';get;utf-8;{User-Agent@Mozilla/5.0&&Cookie@}', ok:'https://okjx.cc/?url=', jsRoot:'https://dr.playdreamer.cn/js/', }; putVar('dr依赖',version.requireId); /* var lsg = (function() { evalPrivateJS("XnUmRAbE641s4myhkr5brclFfsHk4YBZw7AEwR2RDZo="); pathto=undefined; evalPrivateJS("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"); return $.exports; })(); */ var lsg = evalPrivateJS("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"); var 取随机列表 = function(arr, num) { var sData = arr.slice(0), i = arr.length, min = i - num, item, index; while (i-- > min) { index = Math.floor((i + 1) * Math.random()); item = sData[index]; sData[index] = sData[i]; sData[i] = item; } return sData.slice(min); }; var 取随机颜色 = function() { return '#' + ('00000' + (Math.random() * 0x1000000 << 0).toString(16)).substr(-6); } var 汉字转数字 = (function(){ var map = { "零": 0, "一": 1, "壹": 1, "二": 2, "贰": 2, "两": 2, "三": 3, "叁": 3, "四": 4, "肆": 4, "五": 5, "伍": 5, "六": 6, "陆": 6, "七": 7, "柒": 7, "八": 8, "捌": 8, "九": 9, "玖": 9, "十": 10, "拾": 10, "百": 100, "佰": 100, "千": 1000, "仟": 1000, "万": 10000, "十万": 100000, "百万": 1000000, "千万": 10000000, "亿": 100000000 }; // 解析失败返回-1,成功返回转换后的数字,不支持负数 function numberDigit(chinese_number) { var len = chinese_number.length; if (len == 0) return -1; if (len == 1) return (map[chinese_number] <= 10) ? map[chinese_number] : -1; var summary = 0; if (map[chinese_number[0]] == 10) { chinese_number = "一" + chinese_number; len++; } if (len >= 3 && map[chinese_number[len - 1]] < 10) { var last_second_num = map[chinese_number[len - 2]]; if (last_second_num == 100 || last_second_num == 1000 || last_second_num == 10000 || last_second_num == 100000000) { for (var key in map) { if (map[key] == last_second_num / 10) { chinese_number += key; len += key.length; break; } } } } if (chinese_number.match(/亿/g) && chinese_number.match(/亿/g).length > 1) return -1; var splited = chinese_number.split("亿"); if (splited.length == 2) { var rest = splited[1] == "" ? 0 : numberDigit(splited[1]); return summary + numberDigit(splited[0]) * 100000000 + rest; } splited = chinese_number.split("万"); if (splited.length == 2) { var rest = splited[1] == "" ? 0 : numberDigit(splited[1]); return summary + numberDigit(splited[0]) * 10000 + rest; } var i = 0; while (i < len) { var first_char_num = map[chinese_number[i]]; var second_char_num = map[chinese_number[i + 1]]; if (second_char_num > 9) summary += first_char_num * second_char_num; i++; if (i == len) summary += first_char_num <= 9 ? first_char_num : 0; } return summary; } $.exports = numberDigit; return $.exports; })(); if(typeof(config)==='undefined'||!config){ // eval('config = {}'); var config = {}; } function color(text, color) { text += ""; if (text.indexOf("““””") === 0) { text.replace("““””", ""); } return "““””" + text + ""; } function htmlTag(tag, text) { text += ""; if (text.indexOf("““””") === 0) { text.replace("““””", ""); } return "““””" + "<" + tag + ">" + text + "" + tag + ">"; } function small(text) { return htmlTag("small", text); } function right(text) { return ''+text+''; } function blank(){ return '\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' } function isPic(str){ return /\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(str); } function gbk编码(code){ return encodeStr(code, 'GBK'); } function getJdCk(ck){//获取京东cookie // m.jd.com 登录后取gif上面的cookie. 服务器里 docker-compose up -d // docker exec -it jd_scripts /bin/sh -c "node /scripts/jd_bean_sign.js |ts >> /scripts/logs/jd_bean_sign.log 2>&1" // docker exec -it jd_scripts /bin/sh -c "node /scripts/jd_fruit.js |ts >> /scripts/logs/jd_fruit.log 2>&1" // 青龙面板拉库 ql repo https://ghproxy.com/https://github.com/okyyds/yydspure.git "jd_|jx_|gua_|jddj_|jdCookie" "activity|backUp" "^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_graphics_validate|ql|JDSignValidator" "master // 修复依赖 01 docker exec -it qinglong bash // 修复依赖 02 curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/shufflewzc/QLDependency/main/Shell/QLOneKeyDependency.sh | sh // 教程 https://thin-hill-428.notion.site/1c598629675145988b43a37998a1604a // 教程 https://blog.csdn.net/qq_29183811/article/details/120247352 // 教程 https://thin-hill-428.notion.site/Ninja-7e693618f706453ab01d869fbd2adb69 // 配置环境变量: JD_COOKIE // nginx -s reload ql.nokia.press document = typeof(document)!=='undefined'?document:{}; ck = ck||document.cookie; let obj = ck.split(';').map(it=>{return {key:it.split('=')[0].trim(),value:it.split('=')[1].trim()}}); obj = obj.filter(it=> ['pt_pin','pt_key'].includes(it.key)); obj=obj.map(it=>it.key+'='+it.value); return obj.join(';') } function getTxCk(ck){//获取腾讯视频cookie document = typeof(document)!=='undefined'?document:{}; ck = ck||document.cookie; let obj = ck.split(';').map(it=>{return {key:it.split('=')[0].trim(),value:it.split('=')[1].trim()}}); obj = obj.filter(it=> ['vqq_appid','vqq_openid','vqq_access_token','vqq_vusession','vqq_vuserid'].includes(it.key)); obj=obj.map(it=>it.key+'='+it.value); return obj.join(';') } function getAliToken() {//获取阿里云的refreshtoken,网页版登录后控制台执行即可 //这个cookie获取后无法使用文件直链,需要去手机app抓token //获取移动端cookie;https://alist-doc.nn.ci/docs/driver/aliyundrive return JSON.parse(localStorage.token).refresh_token; } function 预处理固定代码(){//使用: require(version.jsRoot+'预处理.js') var dr_jsRoot = 'https://dr.playdreamer.cn/js/'; try { const {getApi} = $.require("hiker://page/utiliy?rule=道长仓库Pro"); var 模板 = getApi('importUrl')+"2505"; require(模板); 预处理(模板) }catch (e) { log('预处理执行失败:'+e.message); var 模板 = dr_jsRoot+'dr.js'; require(模板); 预处理(模板) } } function 检测依赖固定代码(){ // codeberyRoot:'https://gitlab.com/hjdhnx/hiker/-/raw/main/js/', // gitlabRoot:'https://codeberg.org/hjdhnx/hiker/raw/branch/main/js/', require('https://codeberg.org/hjdhnx/hiker/raw/branch/main/js/依赖检测.js'); require('https://gitlab.com/hjdhnx/hiker/-/raw/main/js/依赖检测.js'); 检测依赖(); //加密后 evalPrivateJS('4ZFai6WdmDyH6oz/nhtVRLmKvoUg5wsLHMYcQURS3FcFSnRsh1drySmlUaq9i+3wo+Jg4/0WltZSeEhk515pl8ugSp/sJ0bZBw6cihfXZOTm6bWDcENtECiauhBo5b3DVfanahs/y0iZxcSL0PJAcQ=='); //新的加密后 evalPrivateJS('4ZFai6WdmDyH6oz/nhtVROAIx1c0dRGZtfmf6PyWCr6dHnPVIOLddKI4gXInyEoixmC+cyqM8V/plDjccHPKYdMRRu3DLjeWtkw/W5GbPWQVKdbbEohqdTqYxEM0KWdh'); } function 依赖检测(){ // 一级进行依赖检测,固定写法,废弃原来的检测依赖固定代码 require(version.jsRoot+'依赖检测.js'); 检测依赖(); } function 预处理(模板参数,ckUrl){ 模板参数 = 模板参数||false; ckUrl=ckUrl||""; // log('进入了预处理...'); 模板 = (typeof(模板)!=='undefined'&&模板)?模板:模板参数; 验证码 = (typeof(验证码)!=='undefined'&&验证码)?验证码:ckUrl; ua = (typeof(ua)!=='undefined'&&ua)?ua:false;//指定ua var ua = PC_UA; let 全局ua=lsg.getItem('ua','电脑');//电脑 手机 let obj = { 模板:模板||config.模板, 样式:['滚动','默认'].includes(lsg.getItem('样式','滚动'))?lsg.getItem('样式','滚动'):'滚动',//或者不填就是默认 按钮样式:lsg.getItem('按钮样式',''),//空 ua:全局ua, } if(ua){//指定ua加入config Object.assign(obj,{指定ua:ua}); } initConfig(obj); let def_ua = 全局ua==='手机'?MOBILE_UA:PC_UA;//根据全局UA获得的ua字符串 def_ua = ua||def_ua; // 取指定ua和全局ua中的 // log('本小程序预处理默认UA:'+def_ua); //先预处理依赖,后获取cookie if(/^http/.test(验证码)){ // log('验证码:'+验证码); if(!getMyVar('cookie')){ let ret = fetchCookie(验证码, { headers: { "User-Agent": def_ua } }); // log('cookie:'+ret); let cookie = JSON.parse(ret||'[]'); putMyVar('cookie', cookie.join(';')); } } 引入动态分类() } function 匹配设置(col_type){//用于一级设置 let d = []; col_type = col_type||'scroll_button'; d.push({ title:'清除匹配记录', col_type:col_type, url:$('清空匹配记录下次会重新匹配,第一次匹配速度将变慢,确认清空?').confirm(()=>{ clearMyVar('ssmuban'); clearMyVar('muban'); clearMyVar('yjmuban'); return 'toast://二级模板与搜索模板匹配记录已清除' }) }); function localMb(local){//本地模板 // local: 一级模板,二级模板,搜索模板 // writeFile(root+local+'.json',JSON.stringify(inner)); // return inner var root = 'hiker://files/rules/dzHouse/json/'; //模板根目录 let code = fetch(root+local+'.json')||'[]'; try { return JSON.parse(code); }catch (e) { log(`本地${local}:${root+local+'.json'}有误:`+e.message); log(code); return [] } } d.push({ title:"指定一级模板", col_type:col_type, url:$('#noLoading#').lazyRule((localMb)=>{ let now = JSON.parse(getMyVar('yjmuban','{}')).名称||false; log('当前一级模板:'+now); let sel = localMb('一级模板').map(it=>now&&it.名称===now?'👉'+it.名称:it.名称); return $(sel,2,'请指定一个一级模板').select(()=>{ input = input.replace(/👉/g,''); // log(input); putMyVar('yjmuban',JSON.stringify({名称:input})); //匹配成功保存上次匹配的模板,下次匹配直接排第一个 refreshPage(false); return 'hiker://empty' }) },localMb) }); d.push({ title:"指定二级模板", col_type:col_type, url:$('#noLoading#').lazyRule((localMb)=>{ let now = JSON.parse(getMyVar('muban','{}')).名称||false; log('当前二级模板:'+now); let sel = localMb('二级模板').map(it=>now&&it.名称===now?'👉'+it.名称:it.名称); return $(sel,2,'请指定一个二级模板').select(()=>{ input = input.replace(/👉/g,''); // log(input); putMyVar('muban',JSON.stringify({名称:input})); //匹配成功保存上次匹配的模板,下次匹配直接排第一个 refreshPage(false); return 'hiker://empty' }) },localMb) }); d.push({ title:"指定搜索模板", col_type:col_type, url:$('#noLoading#').lazyRule((localMb)=>{ let now = JSON.parse(getMyVar('ssmuban','{}')).名称||false; log('当前搜索模板:'+now); let sel = localMb('搜索模板').map(it=>now&&it.名称===now?'👉'+it.名称:it.名称); return $(sel,2,'请指定一个搜索模板').select(()=>{ input = input.replace(/👉/g,''); // log(input); putMyVar('ssmuban',JSON.stringify({名称:input})); //匹配成功保存上次匹配的模板,下次匹配直接排第一个 refreshPage(false); return 'hiker://empty' }) },localMb) }); let nextMode = lsg.getItem('dr_mode','WEB')==='WEB'?'APP':'WEB'; d.push({ title:'模式:'+color(lsg.getItem('dr_mode','WEB'),'#1aad19'), col_type: col_type, url:$('#noLoading#').lazyRule((nextMode)=>{ return $(`切换一级匹配模式为${nextMode}?`).confirm((nextMode)=>{ require(getVar('dr依赖')); lsg.setItem('dr_mode',nextMode); refreshPage(false); return 'hiker://empty' },nextMode) },nextMode) }); return d } function 设置(d,end){ end = end||false; if(typeof(page)==='undefined'||!page){ page = MY_PAGE||1; } if(parseInt(page)===1) { if(!getMyVar('是否进入规则','')){ try { eval(fetch(version.jsRoot+'更新.js',{timeout:2000})); let jsUpdate = new Date(updateT).getTime(); // 依赖更新时间默认为当前减去一天 let localDate = lsg.getItem('dr依赖更新时间',''+(new Date().getTime()-3600*24*1000)); // if(parseInt(jsUpdate)!==parseInt(localDate)){ if(parseInt(jsUpdate)>parseInt(localDate)){ log('云端依赖更新时间:'+jsUpdate+'\n,本地依赖更新时间:'+localDate); confirm({ title:'更新完毕', // content:'已自动更新依赖\n本地依赖时间:'+new Date(parseInt(localDate)).toLocaleString()+'\n云端最新时间:'+new Date(jsUpdate).toLocaleString(), content:'已自动更新依赖\n本地依赖时间:'+$.dateFormat(new Date(parseInt(localDate)),"yyyy-MM-dd HH:mm:ss")+'\n云端最新时间:'+$.dateFormat(new Date(jsUpdate),"yyyy-MM-dd HH:mm:ss"), }); try { 更新依赖(); lsg.setItem('dr依赖更新时间',''+jsUpdate); refreshPage(true); }catch (e) {} } }catch (e) { //confirm({title:'提示',content:e.message}) log(new Date().toLocaleString()+'检测更新错误,可能是超时返回了空源码:'+e.message) } } putMyVar('是否进入规则','是'); let settings = { title: '⚙️设置', col_type: 'scroll_button', url: $().rule((color,htmlTag,blank) => { try { require(getVar('dr依赖')); }catch (e) { setResult([{ title:e.message, col_type:'long_text', url:'hiker://empty' }]); } function small(text) { return htmlTag("small", text); } let d = []; addListener('onClose', $.toString(()=>{ // refreshPage(false); //返回自动刷新使设置生效 })); d.push({ title: '小程序个性化设置 '+blank()+small(color('帮助','#0048ff')), desc: 'dr模板(道长多功能模板+reborn动态分类)\n影视/漫画/听书/小说/图片/随机小姐姐', col_type: 'text_1', url: $().rule(()=>{ setPageTitle('影漫模板套娃帮助'); require(config['模板']); require("http://hiker.nokia.press/hikerule/rulelist.json?id=3187");//md插件 let d = []; // let help = fetch(version.jsRoot+'帮助.html'); let help = "#### 获取帮助失败,请检查网络"; try { help = fetch(version.jsRoot+'dr_help.md'); }catch (e) {} d.push({ title:'
/g,'').replace(/<\/p>/g,'').replace(/
/g,'\n');
tmp = tmp.split('\n').join('\n ');
content+=tmp;
}
return content
}
//调用 var lazy=小说();
function getCode(){//用于一级函数获取源码
let curl=MY_TYPE==='search'?获取搜索链接(MY_URL):MY_URL;
return /<\/html>/.test(getResCode())?getResCode():获取源码(curl)
}
function 一级(parStr,ej,d,rule_id,yj_html,onlyback){
//列表,标题,图片,描述,链接,内容
//是否有二级,必须填true才有
//前置数据d。可不填,或者注入动态分类,搜索框之类的
//免责声明localstorage ID ,传false或者null则无需免责声明
//网页源码/文本或者json对象 {html:'',page:''}
addListener('onClose', $.toString(()=>{
// initConfig({}); //清空配置,避免炸视界
clearMyVar('header.url');
clearMyVar('header.category');
}));
initConfig({html:''});//清空二级记录
d=d||[];
onlyback = onlyback||false;
// rule_id=rule_id||MY_RULE.title;
rule_id=rule_id||false;
password=(typeof(password)==='undefined'||!password)?'dz':password;
let nv=parseInt(getAppVersion());
var ruleName = MY_RULE.title;
// log(ruleName+'=>'+nv);
if(nv
我愿意承担责任,开始学习研究'
d.push({
title:title+'
'+desc,
// desc:desc,
col_type:'rich_text',
});
d.push({
title:color(agree,'#ab2415'),
col_type:'text_center_1',
url:$('#noLoading#').lazyRule((version,rule_id)=>{
require(version.requireId);
lsg.setItem(rule_id,'ok');
// putMyVar('show','ok');
refreshPage(true);
return 'toast://你已经接受此霸王条款,后续程序问题与作者无关'
},version,rule_id),
extra: {
lineVisible:false
}
});
setResult(d);
return;
}
lazy=(typeof(lazy)==='undefined'||!lazy)?false:lazy;
html=((typeof(html)==='undefined'||!html)&&!yj_html)?getCode():(yj_html||html);
一级处理=(typeof(一级处理)==='undefined'||!一级处理)?false:一级处理;
let jscode=comParse(parStr,ej,true,html,lazy,一级处理);
d=d.concat(jscode);
if(onlyback){
return d;
}else{
setResult(d);
return d;
}
}
function 一级书签(detailUrl,setUrl,extra,d){//贝贝书签 拦截详情页,设置页,过滤,附加功能
detailUrl = detailUrl||'/detail/'; //详情页链接如 'vod/detail/'
extra = extra||{};
d = d&&Array.isArray(d)?d:[];//附加设置
setUrl = setUrl||false;//设置页
MY_URL = MY_URL.replace('hiker://empty##',''); // 拿到地址栏链接
let js = $.toString((MY_RULE,detailUrl,setUrl,d) => {
MY_URL=input;//附加首页地址为了getHome正常运行
var rule = MY_RULE.title;//小程序名称
var host=getHome(input);//获取拦截地址的域名
var route=input.replace(host,'');//获取拦截地址的路由
// if((!setUrl&&(route==='/'||route===''))||route===setUrl){//附加设置功能拦截首页
var detail_reg = detailUrl.split('|').map(it=>it.startsWith(".")?'\\'+it:it).join("|");
var setUrl_reg = setUrl?setUrl.split('|').map(it=>it.replace(/[.]/g,'\\.')).join("|"):'/';
// route.includes(setUrl)
if((!setUrl&&(route==='/'||route===''))||route===setUrl||(setUrl.length>2&&(new RegExp(setUrl_reg)).test(route))){//附加设置功能拦截首页
return $.toString((url,MY_RULE, rule,d) => {
let ejUrl = 'hiker://empty##' + url;
let group = MY_RULE.group;
let preRule = MY_RULE.preRule2||MY_RULE.preRule;
let pages = MY_RULE.pages;
fba.open(JSON.stringify({
title:'隐藏功能',
rule: rule,
url: ejUrl,
group:group,
preRule:preRule,
pages:pages,
findRule: "js:" + $$$.toString((preRule,rule,d) => {//自定义js页面规则代码写法
if(!config.模板){//执行预处理完了hook config,或者用refresh也行
eval(preRule);
// log('执行了预处理:'+preRule);
let _cfg = getMyVar('initConfig', '{}');
if (_cfg && _cfg.length > 0) {
config = JSON.parse(_cfg);
}
}
addListener('onClose', $.toString(() => {
refreshPage();//监听返回就刷新页面.yyds
}));
require(config['模板']);
var s = [];
// var page=1;//设置页面固定当前页数为1,不起作用的
// log('page:'+page);
// log('mpg:'+MY_PAGE);
设置(s);
d.unshift(s[0]);
d = d.concat(匹配设置('text_2'));
/*
d.push({
title: '🔙返回并刷新生效',
desc:'为节省性能,直接点左上角返回不会刷新和生效',
col_type: 'text_1',
url: $('#noLoading#').lazyRule(() => {
clearMyVar('是否进入规则');
back(true)
// refreshX5WebView('http://127.0.0.1:4848');
// refreshX5Desc('float&&0');
return 'hiker://empty'
})
});
*/
setResult(d);
}, preRule,rule,d),
}));
}, input, MY_RULE,rule,d)
}else if ((new RegExp(detail_reg)).test(input)) {
// 原来写法,不支持正则 input.includes(detailUrl)
return $.toString((url, MY_RULE,rule) => {
let ejUrl = 'hiker://empty##' + url + '#immersiveTheme#';
fba.parseLazyRule($$$().lazyRule((ck,rule)=>{
let privateCk = rule+'@cookie';
putVar(privateCk,ck);
// log('已设置cookie:'+ck);
// log('设置后cookie:'+getVar(privateCk));
return 'hiker://empty';
},document.cookie,rule));
let group = MY_RULE.group;
let preRule = MY_RULE.preRule2||MY_RULE.preRule;
let pages = MY_RULE.pages;
let detail_find_rule = MY_RULE.detail_find_rule||JSON.parse(request('hiker://home@' + rule)).detail_find_rule;
fba.open(JSON.stringify({
// title: rule,
title:'详情页',
rule: rule,
group:group,
preRule:preRule,
pages:pages,
// url: 'hiker://page/ej?rule=' + rule + '&url=' + url,//子页面写法
url: ejUrl,
// findRule:JSON.parse(request('hiker://home@' + rule)).detail_find_rule,
findRule: "js:" + $$$.toString((preRule,detail_find_rule) => {//自定义js页面规则代码写法
if(!config.模板){
eval(preRule);
// log('执行了预处理:'+preRule);
let _cfg = getMyVar('initConfig', '{}');
if (_cfg && _cfg.length > 0) {
config = JSON.parse(_cfg);
}
}
// log(config);
// 可能测试环境取不到 MY_RULE.detail_find_rule就eval本规则
eval(detail_find_rule);
}, preRule,detail_find_rule),
}));
}, input,MY_RULE, rule)
}
}, MY_RULE,detailUrl,setUrl,d);
extra = Object.assign({
canBack: true,
urlInterceptor: js,
floatVideo: true,
},extra);
setResult([{
col_type: "x5_webview_single",
url: MY_URL,
desc: "float&&100%",
extra: extra
}]);
}
function getLazy(url,lazy) {//动态获取动态解析可兼容磁力链接
if ((typeof(lazy)==='undefined'||!lazy) && /^magnet:\?|^ftp:|^thunder:/.test(url.trim())) {//处理磁力
return ''
} else {
def_lazy = (typeof(def_lazy)==='undefined'||!def_lazy)?'':def_lazy;
return lazy || def_lazy
}
}
function 附加数据(more_data,more_tips){//传入附加的数据参数
if(!Array.isArray(more_data)||more_data.length<1){//传入附加数据必须是大于0的列表
return []
}
more_tips = more_tips||'附加数据';//可传磁力
let c = [];//附加数据函数最终返回结果
let b = [];//附加数据处理结果
let cls = 'more';
let switch_id = 'more_switch';
for(let i in more_data){
let tmp = more_data[i];
tmp.extra = tmp.extra||{};
Object.assign(tmp.extra,{id:cls+'_'+i,cls:cls});
b.push(tmp);
}
function getMoreTitle(flag,more_tips,b){
let drzd = '““””∨';
let drzk = '““””∧';
// let showOrder = getMyVar('附加数据','折叠')==='折叠'?color('(☆展开↑)','#228be6'):color('(★折叠↓)','#d0aa344');
let showOrder = flag==='折叠'?(lsg.getItem('折叠样式',drzd)+color('(已折叠)','#228be6')):(lsg.getItem('展开样式',drzk)+color('(已展开)','#1aad19'));
// let showOrder = flag==='折叠'?color('(☆展开↑)','#228be6'):color('(★折叠↓)','#d0aa344');
return small(color(more_tips+'列表共计','#098AC1')+color(b.length,'#d96715')+color('条记录','#098AC1'))+blank()+right(small(showOrder));
}
let switch_title1 = getMoreTitle('折叠',more_tips,b);
let switch_title2 = getMoreTitle('展开',more_tips,b);
c.push({
title:getMoreTitle(getMyVar('附加数据','折叠'),more_tips,b),
col_type:'text_1',
url:$('#noLoading#').lazyRule((cls,switch_id,switch_title1,switch_title2,b)=>{
if(getMyVar('附加数据','折叠')==='展开'){
putMyVar('附加数据','折叠');
deleteItemByCls(cls);
}else{
putMyVar('附加数据','展开');
addItemAfter('more_switch', b);
}
let newTitle = getMyVar('附加数据','折叠')==='折叠'?switch_title1:switch_title2;
updateItem(switch_id,{
title:newTitle
});
// refreshPage(true);
// return 'toast://已'+getMyVar('附加数据')
return 'hiker://empty'
},cls,switch_id,switch_title1,switch_title2,b),
extra:{
lineVisible:false,
id:switch_id
}
});
if(getMyVar('附加数据','折叠')==='展开'){
c = c.concat(b);
}
return c
}
function 二级(parse,lazy,dp,错误){
/*调用示例
js:
let parse={
title:'',
img:'',
url:'',
desc:'',
content:'',
tabs:'',
lists:'',
};
二级(parse);
*/
MY_PARAMS = MY_PARAMS||{};
阅读模式=(!(typeof (阅读模式) === 'undefined' || !阅读模式));
二级处理=(typeof(二级处理)==='undefined'||!二级处理)?false:二级处理;
倒序=(typeof(倒序)==='undefined'||!倒序)?false:倒序;
编码=(typeof(编码)==='undefined'||!编码)?false:编码;
动态最新章节=(typeof(动态最新章节)==='undefined'||!动态最新章节)?false:动态最新章节;
指定cookie=(typeof(指定cookie)==='undefined'||!指定cookie)?getMyVar('cookie',''):指定cookie;
指定ua=(typeof(指定ua)==='undefined'||!指定ua)?false:指定ua;
下载=(typeof(下载)==='undefined'||!下载)?false:下载;
if(二级处理){
二级处理.选集名称=二级处理.选集名称||通用二级处理.选集名称;
二级处理.选集链接=二级处理.选集链接||通用二级处理.选集链接;
二级处理.图片=二级处理.图片||通用二级处理.图片;
二级处理.图片点击=二级处理.图片点击||通用二级处理.图片点击;
二级处理.重定向=二级处理.重定向||通用二级处理.重定向; // 返回重定向后的源码
}
//log(typeof(二级处理.重定向));
dp=dp||false;
错误=错误||false;
let d=[];
var html;
let ua = config.ua==='手机'?MOBILE_UA:PC_UA;
if(config.指定ua){
ua = config.指定ua
}
if(指定ua&&typeof(指定ua)==='string'){
ua = 指定ua
}
let fetchParams = {headers: {
"User-Agent": ua,
"Cookie":getMyVar('cookie')
}};
var nowUrl = MY_URL.replace('hiker://empty##','').split('#')[0];
function 足迹处理(){// 足迹处理
let footHistory = lsg.getItem('footHistory','{}');
try {JSON.parse(footHistory);}catch (e) {lsg.removeItem('footHistory');footHistory='{}'}//移除足迹
footHistory = JSON.parse(footHistory);
putMyVar('选集翻页',footHistory[nowUrl]||'1');
}
if(MY_URL.startsWith('hiker://empty##')){
let lastUrl = getMyVar('lastUrl','');
if(config.html&&lastUrl===nowUrl){
html = config.html
}else{
//html = fetch(tUrl,fetchParams);
var extra_headers='';
if(编码){
extra_headers={
"content-type":"charset="+编码||'utf-8',
};
}
html=获取源码(nowUrl,ua,'',指定cookie,extra_headers);
//log(html);
if (/检测中/.test(html)){
html = request(nowUrl + '?btwaf' + html.match(/btwaf(.*?)\"/)[1], {});
}
putMyVar('lastUrl',nowUrl);
initConfig({html:html}); // 自动合并注入
足迹处理();
}
}else{
html=getResCode();
if (/检测中/.test(html)){
html = request(nowUrl + '?btwaf' + html.match(/btwaf(.*?)\"/)[1], {});
}
if(getMyVar('lastUrl','')!==nowUrl){
putMyVar('lastUrl',nowUrl);
足迹处理();
}
}
let _title=parse.title;
let _img=parse.img;
let _url=parse.url;
let _desc=parse.desc;
let _col_type=parse.col_type||"movie_1_vertical_pic_blur";
let _info=parse.content;
let 样式 = config.样式||'默认'; //可以默认和滚动
//样式,默认?滚动
/*
let _reChange=parse.reChange||function(playUrl){
if(typeof(window)!=='undefined'){
fba.log("开始改变链接");
}else{
log("开始改变链接");
}
if (/cat\.wkfile\.com\/m3u8/.test(playUrl)){
playUrl+=";{Referer@https://fantuan.tv}"
}
return playUrl
};
*/
let _reChange=(parse.reChange && typeof(parse.reChange)==='function')?parse.reChange:false;
let _tabs=parse.tabs;
let _tabstr=parse.线路处理;
let _lists=parse.lists;
let _tab_id=parse.tab_id||false;
let _list_id=parse.list_id||'a&&href';
let _list_text=parse.list_text||'a&&Text';
let _tab_text=parse.tab_text||'body&&Text';
var bUrl='',bImg='';
try {bUrl=_url?pd(html,_url):MY_PARAMS.pic_url||''}catch (e) {bUrl=MY_URL.split("##").slice(-1)[0];}
try {bImg=_img?pd(html,_img):'';}catch (e) {}
if(isPic(bUrl)&&!/@Referer=/.test(bUrl)){
bUrl+='@Referer='
}
if(二级处理){
bImg=二级处理.图片(bImg);
bUrl=二级处理.图片点击(bUrl);
}
if(isPic(bImg)&&!/@Referer=/.test(bImg)){
bImg+='@Referer='
}else if(/^http/.test(bImg)&&bImg.length>10&&!/@Referer=/.test(bImg)){
bImg+='@Referer='
}
bImg = bImg||MY_PARAMS.pic_url||'';
//https://z3.ax1x.com/2021/11/16/IfaPqf.jpg
//let showlist=parse.showlist||false;
var title = '',desc='',info='';
var 分隔符=lsg.getItem('分隔符','换行符')==='换行符'?'\n':' ';
if(_title){
let tmpTitle=[];
for(let it of _title.split(';')){
try {
tmpTitle.push(pdfh(addTb(html),it));
}catch (e) {}
}
if(!MY_PARAMS.title&&tmpTitle[0]){//没传参数就可能是书签,设置二级标题
setPageTitle(tmpTitle[0]);
}
title = tmpTitle.join(分隔符);
}
if(_desc){
let tmpDesc = [];
for(let it of _desc.split(';')){
try {
tmpDesc.push(pdfh(addTb(html),it));
}catch (e) {}
}
desc = tmpDesc.join(分隔符);
}
title = title||MY_PARAMS.title||'暂无标题';
desc = desc||MY_PARAMS.desc||'暂无描述';
info = MY_PARAMS.content||info;
var ChapterRule = {
_tabs:_tabs,
_tab_id:_tab_id,
_lists:_lists,
_list_id:_list_id,
_list_text:_list_text,
指定cookie:指定cookie,
二级处理:二级处理,
编码:编码,
指定ua:指定ua,
};
var bookName = MY_PARAMS.title||title.split(分隔符)[0];
var ruleName = MY_RULE.title;
var rootPath = false;
if(倒序!==false&&倒序!=='智能'){//传 真 或 ''
ChapterRule._order=倒序?'0':'-1';
}
if(动态最新章节&&typeof(动态最新章节)==='boolean') {
setLastChapterRule('js:' + $.toString((ChapterRule,MY_PARAMS) => {
require(config['模板']);
准最新(ChapterRule,MY_PARAMS);
}, ChapterRule,MY_PARAMS));
}else if(动态最新章节&&typeof(动态最新章节)==='function'){
// 动态最新章节为剪头函数 ()=>{} 其中参数就是 _tabs, _tab_id, _lists, 倒序
setLastChapterRule('js:' + $.toString(动态最新章节, ChapterRule));
}
// log('最新章节处理完毕');
d.push({
title:small(title),
pic_url:dp?bImg||'https://z3.ax1x.com/2021/11/16/IfaPqf.jpg':bImg,
url:dp?'hiker://page/Route?rule=MyFieldᴰⁿ&type=设置#noHistory##noRecordHistory#':bUrl,
desc:small(desc),
col_type:_col_type
});
setPagePicUrl(bImg); // 动态设置二级收藏图片
// lazy=lazy||通免(_reChange);
def_lazy=通免(_reChange);
if(_info||info){
try {info=(_info?pdfh(html,_info):info)||'暂无详情'}catch (e) {}
// d.push({
// title:color("剧情简介","#098AC1"),
// desc:small(info),
// col_type:"text_1",
// extra:{
// lineVisible: false
// },
// url:$('hiker://empty#noHistory##noRecordHistory#').rule((info)=>{
// let d=[];
// d.push({
// title:info,
// col_type:"long_text"
// },info);
// setResult(d)
// },info)
// });
let limit_text = info.substring(0,parseInt(lsg.getItem('简介字数','100')))+'...';
let download_text = '';
if(/小说|漫画/.test(下载)){
const Config = $.require("hiker://page/Config.json?rule=本地资源管理");
rootPath = 下载==='小说'?Config.novelPath:Config.comicPath;
download_text = '下载'.link($().b64("'").lazyRule(() => {
let rule_exits = fetch('hiker://home@本地资源管理');
rule_exits = rule_exits!=='null'&&rule_exits!=='';
if(!rule_exits){
return $('未安装[本地资源管理]小程序,无法下载资源,现在安装?').confirm(()=>{
let ruleHead = '海阔视界首页频道规则【本地资源管理】¥home_rule_url¥';
let rulecode = 'rule://'+base64Encode(ruleHead+'http://hiker.nokia.press/hikerule/rulelist.json?id=3559');
return rulecode
});
}else{
return "hiker://page/download.view#noHistory##noRecordHistory##noRefresh#?rule=本地资源管理";
}
}));
download_text+='\t\t\t\t\t';
download_text+='更新下载器'.link($().b64("'").lazyRule(() => {
let ruleHead = '海阔视界首页频道规则【本地资源管理】¥home_rule_url¥';
let rulecode = 'rule://'+base64Encode(ruleHead+'http://hiker.nokia.press/hikerule/rulelist.json?id=3559');
return rulecode
}));
download_text+='\t\t\t\t\t';
download_text += '本地阅读'.link($().b64("'").lazyRule((bookName, ruleName,下载,rootPath) => {
let rule_exits = fetch('hiker://home@本地资源管理');
rule_exits = rule_exits !== 'null' && rule_exits !== '';
if (!rule_exits) {
return $('未安装[本地资源管理]小程序,无法本地阅读,现在安装?').confirm(() => {
let ruleHead = '海阔视界首页频道规则【本地资源管理】¥home_rule_url¥';
let rulecode = 'rule://' + base64Encode(ruleHead + 'http://hiker.nokia.press/hikerule/rulelist.json?id=3559');
return rulecode
});
} else {
// return "hiker://page/NovelBrowser.view?rule=本地资源管理";
let bindUrl = 下载==='小说'?'hiker://page/NovelBrowser.view':'hiker://page/ComicBrowser.view';
let localReadUrl = buildUrl(bindUrl, {
hasParams: true,
rule: "本地资源管理",
path: encodeURIComponent(rootPath + ruleName + "/" + bookName),
name: encodeURIComponent(bookName)
});
// log(localReadUrl);
return localReadUrl
}
}, bookName, ruleName,下载,rootPath));
}
let rich_html = ("剧情简介\t\t\t\t\t"+download_text+"
").fontcolor("#098AC1")+limit_text.fontcolor("grey").small();
rich_html = rich_html+"查看详情".fontcolor("#098AC1").small().link($().b64("'").rule(d => setResult(d), [{
title:info,
col_type:"long_text"
}]));
d.push({
title:rich_html,
col_type:"rich_text",
extra:{
lineVisible: false,
textSizeb:11,
lineSpacing:-11
},
});
}
var tabs;
var error = function (info){
return {
title:'线路定位错误,不用玩了\n仔细检查是不是网站内地址跳了别的站点',
desc:info,
col_type:'text_1',
url:'hiker://empty'
}};
var redhtml = html;//默认源码就是本身获得的
if(二级处理&&二级处理.重定向){
try {
redhtml = 二级处理.重定向(MY_URL,html);
}catch (e) {
log('获取重定向源码失败:'+e.message);
}
}
if(二级处理&&二级处理.附加数据&&typeof(二级处理.附加数据)==='function'){//有二级附加数据且考虑重定向问题t
try {
let more_data = 二级处理.附加数据(redhtml);
let more_title = 二级处理.附加数据标题||false;
d = d.concat(附加数据(more_data,more_title));
}catch (e) {
log('二级附加数据处理失败:'+e.message)
}
}
try {
var tabs_html = html;
if(二级处理&&二级处理.重定向){
tabs_html = redhtml;
}
if(typeof (_tabs)==='function'){
tabs = _tabs(tabs_html);
}else if(typeof (_tabs)==='string'){
tabs=pdfa(tabs_html,_tabs);
}else{
tabs = []
}
if(tabs.length<1&&!错误){
d.push(error('解析到线路列表为空'));
setResult(d);
return;
}else if(tabs.length<1&&错误){
throw new Error("线路匹配失败1");
}
}catch (e) {
if(!错误){
d.push(error(e.message));
setResult(d);
return;
}else{
throw new Error("线路匹配失败2");
}
}
let showOrder = getMyVar('顺序','正续')==='逆序'?color('(☆逆序↑)','#228be6'):color('(★正序↓)','#d0aa344');
d.push({
title:small(color('选集列表共计','#098AC1')+color(tabs.length,'#d96715')+color('条线路','#098AC1'))+blank()+right(small(showOrder)),
col_type:'text_1',
url:$('#noLoading#').lazyRule(()=>{
if(getMyVar('顺序','正续')==='逆序'){
putMyVar('顺序','正续');
}else{
putMyVar('顺序','逆序');
}
refreshPage(true);
return 'toast://已切换顺序为:'+getMyVar('顺序','正续')
}),
extra:{
lineVisible:false
}
});
//id是tab里的href,_lists是tab内播放列表解析式
function showlist(id,_lists){
//_lists=".tab-content&&id&&li";
if(id){
_lists=_lists.replace("#id",id);
}
return _lists;
}
function renderList(showList){//渲染列表
let allList = [];
for (let j in showList) {
let it = showList[j];
let mytt = pdfh(it, _list_text);
let colt = config.按钮样式?config.按钮样式:(showList.length > 10 ? "flex_button" : "text_2");
let playUrl=pd(it, _list_id);
if(阅读模式){
playUrl+='#autoPage##readTheme#';
}
if(二级处理){
mytt=二级处理.选集名称(mytt);
playUrl=二级处理.选集链接(playUrl);
}
allList.push({
title: mytt,
url: playUrl + getLazy(playUrl,lazy),
col_type: colt,
extra: {
id:playUrl,
cls:'playList',
ua:ua,
jsLoadingInject: true,
blockRules: ['baidu.*.png', '.mp3', '.mp4', '.flv', '.avi', '.3gp', '.mpeg', '.wmv', '.mov', '.rmvb', '.gif', '.png', '.ico', '.svg']
}
});
}
return allList
}
if(样式==='滚动'){
let nowTab = parseInt(getMyVar('nowTab','0')||'0');
// log('nowTab:'+nowTab);
addListener('onClose', $.toString((nowUrl)=>{
//log('滚动模式下检测到程序关闭,开始清历史线路');
//putMyVar("nowTab","0"); //清除历史线路
//clearMyVar("nowTab");
require(config['模板']);
let footHistory = lsg.getItem('footHistory','{}');
try {JSON.parse(footHistory);}catch (e) {lsg.removeItem('footHistory');footHistory='{}'}//移除足迹
footHistory = JSON.parse(footHistory);
footHistory[nowUrl] = getMyVar('选集翻页','1');
// 3天程序自毁
// lsg.setItem('footHistory',JSON.stringify(footHistory),3600*24*3*1000);
lsg.setItem('footHistory',JSON.stringify(footHistory));
// 设置足迹页数缓存
// clearMyVar('选集翻页'); //不清了
//不管用。,妈蛋
// return 'hiker://empty'
},nowUrl));
for(let i in tabs){
let tab_name = pdfh(addTb(tabs[i]),_tab_text);
if(_tabstr){
try {
tab_name = _tabstr(tab_name)
}catch (e) {}
}
d.push({
title:nowTab===parseInt(i)?color(tab_name,'#09c11b'):color(tab_name,'#098AC1'),
url:$('#noLoading#').lazyRule((i,tab_name,nowTab)=>{
if(nowTab===parseInt(i)){
require(getVar('dr依赖'));
let all_cols = [''].concat(getColTypes());
let col = (lsg.getItem('按钮样式', '')||'');
let 按钮样式 = all_cols.map((it) => {
return it === col ? '👉' + it : it;
});
let tips = '请选择选集按钮样式';
return $(按钮样式, 2, tips).select(() => {
require(getVar('dr依赖'));
input = input.replace(/👉/g, '');
lsg.setItem('按钮样式', input);
// config.按钮样式 = input;
initConfig({按钮样式:input});
// refreshPage(true);
let oldIds = (findItemsByCls('playList')||[]).map(it=>it.extra.id);//老元素ids
// log(oldIds);
oldIds.forEach(x=>{
updateItem(x, {
col_type:input
});
});
let showList = storage0.getMyVar('showList'); //获取储存的选集列表
showList.forEach(x=>{x.col_type = input});
storage0.putMyVar('showList',showList);
return 'toast://已切换选集按钮样式为:' + input;
});
// return 'toast://吃饱了没事儿干?点什么点!'
}
putMyVar('nowTab',''+i);
refreshPage(false);
return 'toast://切换线路为:'+tab_name
},i,tab_name,nowTab),
col_type:"scroll_button"
});
}
let id = '0';
let list = [];
try {
id = _tab_id ? (pdfh(addTb(tabs[nowTab]), _tab_id) || (nowTab + '')) : (nowTab + '');
if(二级处理&&二级处理.重定向){
html = redhtml;
}
if(typeof(_lists)==='string'){
list = pdfa(html, showlist(id, _lists));
}else if(typeof(_lists)==='function'){
list = _lists(html,MY_URL,id);
}
clearMyVar('线路错误');
}catch (e) {
if(getMyVar('nowTab','0')!=='0'){
putMyVar('nowTab','0');
refreshPage(false);
return
}else {
if (!错误) {
d.push(error(e.message));
setResult(d);
return;
} else {
throw new Error("获取线路列表0对应选集列表错误");
}
}
}
let 翻页阀值 = Number(lsg.getItem('翻页阀值',40));
let 每页数量 = Number(lsg.getItem('每页数量',40));
let 最大页数 = Math.ceil(list.length/每页数量);
function force_order(list){//强制正序
let start = Math.floor(list.length/2); // 0
let end = Math.min(list.length-1,start+1); // list.slice(-1)[0]
let first = pdfh(list[start], "a&&Text");
let second = pdfh(list[end],"a&&Text");
try{
if(first.match(/(\d+)/)&&second.match(/(\d+)/)){ //数字章节的
if(parseInt(first.match(/(\d+)/)[0])>parseInt(second.match(/(\d+)/)[0])){
list.reverse()
}
}else{ // 中文转换
if(汉字转数字(first)>汉字转数字(second)){
list.reverse()
}
}
}catch(e){}
return list
}
//强制正序当前线路下的选集列表
if(list.length>1) {
list = force_order(list)
}
let showList = list;
let nowPage = Number(getMyVar('选集翻页', '1'))||1; //当前页数
if(nowPage>最大页数){//防止切换线路导致页数数组越界
nowPage = 最大页数
}
// 禁止 动态列表使用翻页功能
var canPage = true;
if(typeof(_lists)==='function'&&/request|fetch|获取源码/.test(_lists.toString())){
canPage = false;
}
if(!canPage&&getMyVar('选集显示', '分页') === '分页'){
putMyVar('选集显示', '全部');
}
if(list.length>翻页阀值&&getMyVar('选集显示', '分页') === '分页'){
let maxNum = 每页数量*nowPage; //第一页的话,最大显示40*1集,第2页41-80集
showList = list.slice((nowPage-1)*每页数量,maxNum);
}
if (getMyVar('顺序', '正续') === '逆序') {
showList = showList.reverse();
}
let showCol = 'avatar';
let showPic = '';
let pageTitleInfo = '';
function jumpToPageOld(每页数量,toPage,nowPage,pageTitleInfo){//跳页旧版
if(nowPage===toPage){
return //跳转页数等于当前页,不操作
}
let toDeleteIds = (findItemsByCls('playList')||[]).map(it=>it.extra.id);
// deleteItemByCls('playList');
let showList = storage0.getMyVar('showList'); //获取储存的选集列表
let maxNum = 每页数量*toPage; //第一页的话,最大显示40*1集,第2页41-80集
showList = showList.slice((toPage-1)*每页数量,maxNum);
if (getMyVar('顺序', '正续') === '逆序') {
showList = showList.reverse();
}
let pageTitle = pageTitleInfo.replace('$page',getMyVar('选集翻页', '1')).replace('$cnt',showList.length);
pageTitle = pageTitle.replace(/““””/g,'');
updateItem('pageTitle',{
title:pageTitle
});
if(Array.isArray(showList)&&showList.length>0){
addItemAfter('page',showList);
}
deleteItem(toDeleteIds);
}
function jumpToPage(每页数量,toPage,nowPage,pageTitleInfo){//跳页
if(nowPage===toPage){
return //跳转页数等于当前页,不操作
}
// showLoading(`正在前往第${toPage}页,请稍等`);
let oldIds = (findItemsByCls('playList')||[]).map(it=>it.extra.id);//老元素ids
let showList = storage0.getMyVar('showList'); //获取储存的选集列表
let maxNum = 每页数量*toPage; //第一页的话,最大显示40*1集,第2页41-80集
showList = showList.slice((toPage-1)*每页数量,maxNum);
if (getMyVar('顺序', '正续') === '逆序') {
showList = showList.reverse();
}
let toDeleteIds = [];//待删除的旧id
let toAddDatas = [];//待新增的新数据
if(oldIds.length > showList.length){
toDeleteIds = oldIds.slice(showList.length);
}else if(oldIds.length < showList.length){
toAddDatas = showList.slice(oldIds.length)
}
let cnt = Math.min(oldIds.length,showList.length);
let pageTitle = pageTitleInfo.replace('$page',getMyVar('选集翻页', '1')).replace('$cnt',showList.length);
pageTitle = pageTitle.replace(/““””/g,'');
updateItem('pageTitle',{
title:pageTitle
});
if(toDeleteIds.length>0){//有删除的先删除
deleteItem(toDeleteIds);
}
if(toAddDatas.length>0){//有新增的先新增
addItemAfter(oldIds[cnt-1],toAddDatas);
}
for(let i=0;i