/* 【热门监控】@evilbutcher 【仓库地址】https://github.com/evilbutcher/Quantumult_X/tree/master(欢迎star🌟) 【BoxJs】https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/evilbutcher.boxjs.json 【致谢】 本脚本使用了Chavy的Env.js,感谢! @南叔、@mini计划-图标聚合、@zZPiglet、@xinian、@api-evangelist-rss2json ⚠️【免责声明】 ------------------------------------------ 1、此脚本仅用于学习研究,不保证其合法性、准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。 2、由于此脚本仅用于学习研究,您必须在下载后 24 小时内将所有内容从您的计算机或手机或任何存储设备中完全删除,若违反规定引起任何事件本人对此均不负责。 3、请勿将此脚本用于任何商业或非法目的,若违反规定请自行对此负责。 4、此脚本涉及应用与本人无关,本人对因此引起的任何隐私泄漏或其他后果不承担任何责任。 5、本人对任何脚本引发的问题概不负责,包括但不限于由脚本错误引起的任何损失和损害。 6、如果任何单位或个人认为此脚本可能涉嫌侵犯其权利,应及时通知并提供身份证明,所有权证明,我们将在收到认证文件确认后删除此脚本。 7、所有直接或间接使用、查看此脚本的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此脚本,即视为您已接受此免责声明。 ⚠️【使用方法】请仔细阅读⚠️ ------------------------------------------ 1、按照客户端配置好task,支持监控微博热搜、知乎热榜、百度风云榜、B站日榜、豆瓣榜单、抖音榜单、36氪、Kindle图书、rss订阅、人人影视最新美剧资源 2、不再需要获取Cookie,无用Cookie会自动清除;B站榜单对应关系:0全站,1动画,3音乐,4游戏,5娱乐,36科技,119鬼畜,129舞蹈。 3、本地直接修改关键词,远程可通过BoxJs修改关键词,有关键词更新时会通知,否则不通知。 4、可选择是否合并同一榜单的全部通知。 5、可选择匹配关键词或者直接获取热搜最新内容,并自定义数量。 6、B站、豆瓣榜单独立推送时可显示封面。 7、可选择是否附带跳转链接。 8、可自定每个榜单匹配关键词还是获取最新内容。 9、可自定每个榜单推送分开还是合并。 10、支持BoxJs直接运行脚本。 本地脚本keyword设置关键词,注意是英文逗号;BoxJs是用中文逗号。 ⚠️【BoxJs】设置注意事项⚠️ ------------------------------------------ 订阅后,可以在BoxJs里面修改关键词,设置清除Cookie、开启对应榜单等。 #微博热搜检测数量设置:建议最大为8,设置检测数量太多显示不完全,内容过多。其他榜单最大检测数量暂无建议,自行决定即可。 #关键词:对所有榜单生效,榜单内无关键词匹配不会通知。 #忽略关键词推送最新内容:打开,将无视关键词,直接获取设定检测数量的对应榜单内容。 #消息分开推送:关闭,同一榜单的内容将整合为一条通知,可直接下拉或在通知面板长按通知展开,点击链接跳转详情;开启,每条内容分开推送,推送将会分为多条通知。关键词匹配模式下可打开,获取最新内容时建议关闭。 仅测试Quantumult X、Loon,理论上也支持Surge(没Surge无法测试)。 【Surge】配置 ------------------------------------------ 热门监控 = type=cron,cronexp="30 0 8-22/2 * * *",script-path=https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/check_in/hotsearch/hot.js,wake-system=true,timeout=600 【Loon】配置 ------------------------------------------ [script] cron "30 0 8-22/2 * * *" script-path=https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/check_in/hotsearch/hot.js, timeout=600, tag=热门监控 【Quantumult X】配置 ------------------------------------------ [task_local] 30 0 8-22/2 * * * https://raw.githubusercontent.com/evilbutcher/Quantumult_X/master/check_in/hotsearch/hot.js, tag=热门监控 */ const $ = new Env("热门监控"); const base64 = new Base64Code(); //⚠️本地自定参数修改位置⚠️ var keyword = ["万茜"]; //👈本地脚本关键词在这里设置。 var rsslink = ["http://sspai.me/feed", "http://songshuhui.net/feed"]; //👈本地rss订阅设置 //⚠️👆以上用英文逗号、英文双引号⚠️ $.weibo = true; //是否开启相应榜单监控 $.wbnum = 6; //自定微博热搜数量 $.zhihu = true; //是否开启相应榜单监控 $.zhnum = 6; //自定知乎热榜数量 $.baidu = true; //是否开启相应榜单监控 $.bdnum = 6; //自定百度风云榜数量 $.bilibili = true; //是否开启相应榜单监控 $.blnum = 6; //自定B站榜单数量 $.douban = true; //是否开启相应榜单监控 $.dbnum = 6; //自定豆瓣榜单数量 $.douyin = true; //是否开启相应榜单监控 $.dynum = 6; //自定抖音榜单数量 $.k36 = true; //是否开启相应榜单监控 $.k36num = 6; //自定36氪榜单数量 $.amazon = true; //是否开启相应榜单监控 $.amznum = 6; //自定Kindle图书榜单数量 $.rss = true; //是否开启相应榜单监控 $.rssnum = 6; //自定rss订阅推送数量 /*$.zmz = true; //是否开启相应榜单监控 $.zmznum = 6; //自定人人影视推送数量*/ $.splitpushwb = false; //是否分开推送微博榜单 $.pushnewwb = false; //是否忽略关键词推送微博最新内容 $.splitpushzh = false; //是否分开推送知乎榜单 $.pushnewzh = false; //是否忽略关键词推送知乎最新内容 $.splitpushbd = false; //是否分开推送百度榜单 $.pushnewbd = false; //是否忽略关键词推送百度最新内容 $.splitpushbl = false; //是否分开推送B站榜单 $.pushnewbl = false; //是否忽略关键词推送B站最新内容 $.splitpushdb = false; //是否分开推送豆瓣榜单 $.pushnewdb = false; //是否忽略关键词推送豆瓣最新内容 $.splitpushdy = false; //是否分开推送抖音榜单 $.pushnewdy = false; //是否忽略关键词推送抖音最新内容 $.splitpushk36 = false; //是否分开推送36氪榜单 $.pushnewk36 = false; //是否忽略关键词推送36氪最新内容 $.splitpushamz = false; //是否分开推送Kindle图书榜单 $.pushnewamz = false; //是否忽略关键词推送Kindle图书最新内容 $.splitpushrss = false; //是否分开推送rss内容 $.pushnewrss = false; //是否忽略关键词推送rss最新内容 /*$.splitpushzmz = false; //是否分开推送人人影视内容 $.pushnewzmz = false; //是否忽略关键词推送人人影视最新内容*/ $.attachurl = false; //通知是否附带跳转链接 $.refreshtime = 6; //重复内容默认在6小时内不再通知,之后清空,可自行修改 $.rid = 0; //更改B站监控榜单 $.time = 2; //榜单获取时限,单位秒 //⚠️本地自定参数修改位置⚠️ var itemswb = []; var itemszh = []; var itemsbd = []; var itemsbl = []; var itemsdb = []; var itemsdy = []; var itemsk36 = []; var itemsamz = []; var itemsrss = []; //var itemszmz = []; var urlswb = []; var urlszh = []; var urlsbd = []; var urlsbl = []; var urlsdb = []; var urlsdy = []; var urlsk36 = []; var urlsamz = []; var urlsrss = []; //var urlszmz = []; var coversbl = []; var coversdb = []; var coversamz = []; var coversrss = []; var resultwb = []; var resultzh = []; var resultbd = []; var resultbl = []; var resultdb = []; var resultdy = []; var resultk36 = []; var resultamz = []; var resultrss = []; //var resultzmz = []; var openurlwb = []; var openurlzh = []; var openurlbd = []; var openurlbl = []; var openurldb = []; var openurldy = []; var openurlk36 = []; var openurlamz = []; var openurlrss = []; //var openurlzmz = []; var mediaurlbl = []; var mediaurldb = []; var mediaurlamz = []; var mediaurlrss = []; var titlerss = []; var saveditem = []; var checkrssresult = false; !(async () => { /*if (typeof $request != "undefined") { getCookie(); return; }*/ getsetting(); if (havekeyword() == true) { if ($.weibo == true) { await gethotsearch(); } else { $.log("微博热搜未获取😫"); } if ($.zhihu == true) { await gethotlist(); } else { $.log("知乎热榜未获取😫"); } if ($.baidu == true) { await getfylist(); } else { $.log("百度风云榜未获取😫"); } if ($.bilibili == true) { await getbllist(); } else { $.log("B站日榜未获取😫"); } if ($.douban == true) { await getdblist(); } else { $.log("豆瓣榜单未获取😫"); } if ($.douyin == true) { await getdylist(); } else { $.log("抖音榜单未获取😫"); } if ($.k36 == true) { await getk36list(); } else { $.log("36氪榜单未获取😫"); } if ($.amazon == true) { await getamazonlist(); } else { $.log("Kindle图书榜单未获取😫"); } /*if ($.zmz == true) { await getzmzlist(); } else { $.log("人人影视榜单未获取😫"); }*/ if ($.rss == true) { if (haversslink()) { await Promise.all( rsslink.map(async (rss) => { await getrsslist( rss, resultrss, openurlrss, mediaurlrss, titlerss, itemsrss, urlsrss, coversrss ); }) ); } } else { $.log("rss订阅未获取😫"); } last(); final(); //deluselessck(); } })() .catch((e) => { $.log("", `❌失败! 原因: ${e}!`, ""); }) .finally(() => { $.done(); }); function havekeyword() { if (keyword.length == 0) { $.msg("热门监控", "请输入要监控的关键词🔍", "请在BoxJs或本地中进行设置。"); return false; } else { for (var i = 0; i < keyword.length; i++) { if (keyword[i] != 0) { return true; } } $.msg( "热门监控", "请输入要监控的关键词🔍", "存在为空的关键词,请在BoxJs或本地重新设置。" ); return false; } } function haversslink() { if (rsslink.length == 0) { $.msg("热门监控", "请输入要监控的rss链接🔍", "请在BoxJs中进行设置。"); return false; } else { for (var i = 0; i < rsslink.length; i++) { if (rsslink[i] != 0) { return true; } } $.msg( "热门监控", "请输入要监控的rss链接🔍", "存在为空的rss链接,请在BoxJs重新设置。" ); return false; } } function getsetting() { $.log("初始化!"); if ( $.getdata("evil_savedtime") != undefined && $.getdata("evil_savedtime") != "" ) { $.savedtime = $.getdata("evil_savedtime"); $.nowtime = new Date().getTime(); } else { $.savedtime = new Date().getTime(); $.nowtime = new Date().getTime(); $.setdata(JSON.stringify($.nowtime), "evil_savedtime"); $.setdata("[]", "evil_saveditem"); } $.refreshtime = $.getdata("evil_refreshtime") || $.refreshtime; var minus = $.nowtime - $.savedtime; if (minus > $.refreshtime * 3600000) { $.setdata("[]", "evil_saveditem"); $.setdata(JSON.stringify($.nowtime), "evil_savedtime"); } if ( $.getdata("evil_saveditem") != undefined && $.getdata("evil_saveditem") != "" ) { var storeitem = JSON.parse($.getdata("evil_saveditem")); } else { storeitem = []; } for (var i = 0; i < storeitem.length; i++) { saveditem.push(storeitem[i]); } if (saveditem.length != 0) { $.log("\n刷新时间内不再通知的内容👇\n" + saveditem + "\n"); } if ( $.getdata("evil_wb_keyword") != undefined && $.getdata("evil_wb_keyword") != "" ) { var key = $.getdata("evil_wb_keyword"); keyword = key.split(","); } if ( $.getdata("evil_rsslink") != undefined && $.getdata("evil_rsslink") != "" ) { var rssurl = $.getdata("evil_rsslink"); rsslink = rssurl.split(","); } $.weibo = JSON.parse($.getdata("evil_wb") || $.weibo); $.zhihu = JSON.parse($.getdata("evil_zh") || $.zhihu); $.baidu = JSON.parse($.getdata("evil_bd") || $.baidu); $.bilibili = JSON.parse($.getdata("evil_bl") || $.bilibili); $.douban = JSON.parse($.getdata("evil_db") || $.douban); $.douyin = JSON.parse($.getdata("evil_dy") || $.douyin); $.k36 = JSON.parse($.getdata("evil_k36") || $.k36); $.amazon = JSON.parse($.getdata("evil_amazon") || $.amazon); $.rss = JSON.parse($.getdata("evil_rss") || $.rss); $.zmz = JSON.parse($.getdata("evil_zmz") || $.zmz); $.splitpushwb = JSON.parse($.getdata("evil_splitpushwb") || $.splitpushwb); $.splitpushzh = JSON.parse($.getdata("evil_splitpushzh") || $.splitpushzh); $.splitpushbd = JSON.parse($.getdata("evil_splitpushbd") || $.splitpushbd); $.splitpushbl = JSON.parse($.getdata("evil_splitpushbl") || $.splitpushbl); $.splitpushdb = JSON.parse($.getdata("evil_splitpushdb") || $.splitpushdb); $.splitpushdy = JSON.parse($.getdata("evil_splitpushdy") || $.splitpushdy); $.splitpushk36 = JSON.parse($.getdata("evil_splitpushk36") || $.splitpushk36); $.splitpushamz = JSON.parse($.getdata("evil_splitpushamz") || $.splitpushamz); $.splitpushrss = JSON.parse($.getdata("evil_splitpushrss") || $.splitpushrss); $.splitpushzmz = JSON.parse($.getdata("evil_splitpushzmz") || $.splitpushzmz); $.pushnewwb = JSON.parse($.getdata("evil_pushnewwb") || $.pushnewwb); $.pushnewzh = JSON.parse($.getdata("evil_pushnewzh") || $.pushnewzh); $.pushnewbd = JSON.parse($.getdata("evil_pushnewbd") || $.pushnewbd); $.pushnewbl = JSON.parse($.getdata("evil_pushnewbl") || $.pushnewbl); $.pushnewdb = JSON.parse($.getdata("evil_pushnewdb") || $.pushnewdb); $.pushnewdy = JSON.parse($.getdata("evil_pushnewdy") || $.pushnewdy); $.pushnewk36 = JSON.parse($.getdata("evil_pushnewk36") || $.pushnewk36); $.pushnewamz = JSON.parse($.getdata("evil_pushnewamz") || $.pushnewamz); $.pushnewrss = JSON.parse($.getdata("evil_pushnewrss") || $.pushnewrss); $.pushnewzmz = JSON.parse($.getdata("evil_pushnewzmz") || $.pushnewzmz); $.attachurl = JSON.parse($.getdata("evil_attachurl") || $.attachurl); $.rid = $.getdata("evil_blrid") * 1 || $.rid; $.wbnum = $.getdata("evil_wbnum") * 1 || $.wbnum; $.zhnum = $.getdata("evil_zhnum") * 1 || $.zhnum; $.bdnum = $.getdata("evil_bdnum") * 1 || $.bdnum; $.blnum = $.getdata("evil_blnum") * 1 || $.blnum; $.dbnum = $.getdata("evil_dbnum") * 1 || $.dbnum; $.dynum = $.getdata("evil_dynum") * 1 || $.dynum; $.k36num = $.getdata("evil_k36num") * 1 || $.k36num; $.amznum = $.getdata("evil_amznum") * 1 || $.amznum; $.rssnum = $.getdata("evil_rssnum") * 1 || $.rssnum; $.zmznum = $.getdata("evil_zmznum") * 1 || $.zmznum; $.time = $.getdata("evil_time") * 1000 || $.time * 1000; $.log("监控关键词 " + keyword); $.log("刷新时间 " + $.refreshtime + "小时"); $.log("此次运行时间戳 " + $.nowtime); $.log("上次保存时间戳 " + $.savedtime); $.log("间隔 " + (minus / 3600000).toFixed(2) + "小时"); $.log("监控rss链接 " + rsslink); $.log("获取rss订阅 " + $.rss); $.log("分开推送rss内容 " + $.splitpushrss); $.log("忽略关键词获取rss最新内容 " + $.pushnewrss); $.log("获取rss数量 " + $.rssnum + "个"); $.log("获取微博热搜 " + $.weibo); $.log("分开推送微博内容 " + $.splitpushwb); $.log("忽略关键词获取微博最热内容 " + $.pushnewwb); $.log("获取微博热搜数量 " + $.wbnum + "个"); $.log("获取知乎热榜 " + $.zhihu); $.log("分开推送知乎内容 " + $.splitpushzh); $.log("忽略关键词获取知乎最热内容 " + $.pushnewzh); $.log("获取知乎热榜数量 " + $.zhnum + "个"); $.log("获取百度风云榜 " + $.baidu); $.log("分开推送百度内容 " + $.splitpushbd); $.log("忽略关键词获取百度最热内容 " + $.pushnewbd); $.log("获取百度风云榜数量 " + $.bdnum + "个"); $.log("获取B站榜单 " + $.bilibili); $.log("分开推送B站内容 " + $.splitpushbl); $.log("忽略关键词获取B站最热内容 " + $.pushnewbl); $.log("获取B站日榜数量 " + $.blnum + "个"); $.log("获取豆瓣榜单 " + $.douban); $.log("分开推送豆瓣内容 " + $.splitpushdb); $.log("忽略关键词获取豆瓣最热内容 " + $.pushnewdb); $.log("获取豆瓣榜单数量 " + $.dbnum + "个"); $.log("获取抖音榜单 " + $.douyin); $.log("分开推送抖音内容 " + $.splitpushdy); $.log("忽略关键词获取抖音最热内容 " + $.pushnewdy); $.log("获取抖音榜单数量 " + $.dynum + "个"); $.log("获取36氪榜单 " + $.k36); $.log("分开推送36氪内容 " + $.splitpushk36); $.log("忽略关键词获取36氪最热内容 " + $.pushnewk36); $.log("获取36氪榜单数量 " + $.k36num + "个"); $.log("获取Kindle图书榜单 " + $.amazon); $.log("分开推送Kindle图书内容 " + $.splitpushamz); $.log("忽略关键词获取Kindle图书最热内容 " + $.pushnewamz); $.log("获取Kindle图书榜单数量 " + $.amznum + "个"); $.log("获取人人影视榜单 " + $.zmz); $.log("分开推送人人影视内容 " + $.splitpushzmz); $.log("忽略关键词获取人人影视最新内容 " + $.pushnewzmz); $.log("获取人人影视榜单数量 " + $.zmznum + "个"); if ($.getdata("evil_cltz") == "1") { $.log("调用迅雷离线"); } else if ($.getdata("evil_cltz") == "2") { $.log("调用115离线"); } else if ($.getdata("evil_cltz") == "3") { $.log("调用袋鼠下载"); } else if ($.getdata("evil_cltz") == "4") { $.log("调用闪电下载"); } $.link = "shortcuts://x-callback-url/run-shortcut?name=%E7%A3%81%E5%8A%9B%E7%A6%BB%E7%BA%BF&input="; $.log("附带跳转链接 " + $.attachurl + "\n"); } function gethotsearch() { $.log("开始获取微博榜单..."); return new Promise((resolve) => { const wbRequest = { url: "https://m.weibo.cn/api/container/getIndex?containerid=106003%26filter_type%3Drealtimehot", }; $.get(wbRequest, (error, response, data) => { try { if (error) throw new Error(error); if (response.statusCode == 200) { var body = response.body; var obj = JSON.parse(body); if ( obj.hasOwnProperty("errmsg") || obj.data.cards == undefined || obj.data.cards == null ) { $.msg( $.name, "🚨获取微博榜单出现错误", `⚠️原因:${obj.errmsg}\n可稍后重试,若问题依旧可联系作者` ); resolve(); return; } var group = obj.data.cards[0]["card_group"]; var num = group.length; for (var i = 0; i < num; i++) { var item = group[i].desc; var urllong = group[i].scheme; var content = urllong.match(new RegExp(/q%3D.*?&isnewpage/)); var con = JSON.stringify(content); var newcon = con.slice(2, -12); var postcon = newcon.replace("q%3D", "q="); var url = "sinaweibo://searchall?" + postcon; itemswb.push(item); urlswb.push(url); } $.log("微博热搜获取成功✅\n" + itemswb); if ($.pushnewwb == false) { for (var j = 0; j < keyword.length; j++) { getkeywordcontenturl( $.splitpushwb, "微博", resultwb, openurlwb, keyword[j], itemswb, urlswb ); } } else { gethotcontenturl( $.splitpushwb, "微博", resultwb, openurlwb, $.wbnum, itemswb, urlswb ); } if (resultwb.length != 0) { if ($.splitpushwb == true) { splitpushnotify(resultwb, openurlwb); } else { mergepushnotify(resultwb); } } resolve(); } else { $.log("获取微博热搜出现错误❌以下详情:\n"); $.log(JSON.stringify(response)); } resolve(); } catch (e) { $.log("获取微博热搜出现错误❌原因:\n"); $.log(JSON.stringify(e, Object.getOwnPropertyNames(e))); resolve(); } setTimeout(() => { resolve(); }, $.time); }); }); } function gethotlist() { $.log("开始获取知乎榜单..."); return new Promise((resolve) => { const zhRequest = { url: "https://api.zhihu.com/topstory/hot-lists/total?limit=10&reverse_order=0", }; $.get(zhRequest, (error, response, data) => { try { if (error) throw new Error(error); if (response.statusCode == 200) { var body = response.body; var obj = JSON.parse(body); if ( obj.hasOwnProperty("errmsg") || obj.data == undefined || obj.data == null ) { $.msg( $.name, "🚨获取知乎榜单出现错误", `⚠️原因:${obj.errmsg}\n可稍后重试,若问题依旧可联系作者` ); resolve(); return; } var group = obj.data; var num = group.length; for (var i = 0; i < num; i++) { var item = group[i].target.title; var oriurl = group[i].target.url; var url = oriurl.replace("https://api.zhihu.com/", "zhihu://"); itemszh.push(item); urlszh.push(url); } $.log("知乎热榜获取成功✅\n" + itemszh); if ($.pushnewzh == false) { for (var j = 0; j < keyword.length; j++) { getkeywordcontenturl( $.splitpushzh, "知乎", resultzh, openurlzh, keyword[j], itemszh, urlszh ); } } else { gethotcontenturl( $.splitpushzh, "知乎", resultzh, openurlzh, $.zhnum, itemszh, urlszh ); } if (resultzh.length != 0) { if ($.splitpushzh == true) { splitpushnotify(resultzh, openurlzh); } else { mergepushnotify(resultzh); } } resolve(); } else { $.log("获取知乎热榜出现错误❌以下详情:\n"); $.log(JSON.stringify(response)); } resolve(); } catch (e) { $.log("获取知乎热榜出现错误❌原因:\n"); $.log(JSON.stringify(e, Object.getOwnPropertyNames(e))); resolve(); } setTimeout(() => { resolve(); }, $.time); }); }); } function getfylist() { $.log("开始获取百度榜单..."); return new Promise((resolve) => { const bdRequest = { url: "http://top.baidu.com/mobile_v2/buzz?b=1&c=515", }; $.get(bdRequest, (error, response, data) => { try { if (error) throw new Error(error); if (response.statusCode == 200) { var body = response.body; var obj = JSON.parse(body); if ( obj.hasOwnProperty("errmsg") || obj.result.descs == undefined || obj.result.descs == null ) { $.msg( $.name, "🚨获取百度榜单出现错误", `⚠️原因:${obj.errmsg}\n可稍后重试,若问题依旧可联系作者` ); resolve(); return; } var group = obj.result.descs; var num = group.length; for (var i = 0; i < num; i++) { var originitem = group[i].content; if (originitem == undefined) { continue; } var item = originitem.data[0].title; if (item == undefined) { continue; } var url = originitem.data[0].originlink; if (url == undefined) { continue; } itemsbd.push(item); urlsbd.push(url); } $.log("百度风云榜获取成功✅\n" + itemsbd); if ($.pushnewbd == false) { for (var j = 0; j < keyword.length; j++) { getkeywordcontenturl( $.splitpushbd, "百度", resultbd, openurlbd, keyword[j], itemsbd, urlsbd ); } } else { gethotcontenturl( $.splitpushbd, "百度", resultbd, openurlbd, $.bdnum, itemsbd, urlsbd ); } if (resultbd.length != 0) { if ($.splitpushbd == true) { splitpushnotify(resultbd, openurlbd); } else { mergepushnotify(resultbd); } } resolve(); } else { $.log("获取百度风云榜出现错误❌以下详情:\n"); $.log(JSON.stringify(response)); } resolve(); } catch (e) { $.log("获取百度风云榜出现错误❌原因:\n"); $.log(JSON.stringify(e, Object.getOwnPropertyNames(e))); resolve(); } setTimeout(() => { resolve(); }, $.time); }); }); } function getbllist() { $.log("开始获取B站日榜..."); return new Promise((resolve) => { const blRequest = { url: "https://app.bilibili.com/x/v2/rank/region?rid=" + $.rid, }; $.get(blRequest, (error, response, data) => { try { if (error) throw new Error(error); if (response.statusCode == 200) { var body = response.body; var obj = JSON.parse(body); if ( obj.hasOwnProperty("errmsg") || obj.data == undefined || obj.data == null ) { $.msg( $.name, "🚨获取B站榜单出现错误", `⚠️原因:${obj.errmsg}\n可稍后重试,若问题依旧可联系作者` ); resolve(); return; } var group = obj.data; var num = group.length; for (var i = 0; i < num; i++) { var item = group[i].title; var url = group[i].uri; var cover = group[i].cover; itemsbl.push(item); urlsbl.push(url); coversbl.push(cover); } $.log("B站日榜获取成功✅\n" + itemsbl); if ($.pushnewbl == false) { for (var j = 0; j < keyword.length; j++) { getkeywordcontentmedia( $.splitpushbl, "B站", resultbl, openurlbl, mediaurlbl, keyword[j], itemsbl, urlsbl, coversbl ); } } else { gethotcontentmedia( $.splitpushbl, "B站", resultbl, openurlbl, mediaurlbl, $.blnum, itemsbl, urlsbl, coversbl ); } if (resultbl.length != 0) { if ($.splitpushbl == true) { splitpushnotifymedia(resultbl, openurlbl, mediaurlbl); } else { mergepushnotify(resultbl); } } resolve(); } else { $.log("获取B站日榜出现错误❌以下详情:\n"); $.log(JSON.stringify(response)); } resolve(); } catch (e) { $.log("获取B站日榜出现错误❌原因:\n"); $.log(JSON.stringify(e, Object.getOwnPropertyNames(e))); resolve(); } setTimeout(() => { resolve(); }, $.time); }); }); } function getdblist() { $.log("开始获取豆瓣榜单..."); return new Promise((resolve) => { const dbheader = { Referer: `https://m.douban.com/pwa/cache_worker`, }; const dbRequest = { url: "https://m.douban.com/rexxar/api/v2/subject_collection/movie_real_time_hotest/items?start=0&count=50&items_only=1&for_mobile=1", headers: dbheader, }; $.get(dbRequest, (error, response, data) => { try { if (error) throw new Error(error); if (response.statusCode == 200) { var body = response.body; var obj = JSON.parse(body); if ( obj.hasOwnProperty("errmsg") || obj["subject_collection_items"] == undefined || obj["subject_collection_items"] == null ) { $.msg( $.name, "🚨获取豆瓣榜单出现错误", `⚠️原因:${obj.errmsg}\n可稍后重试,若问题依旧可联系作者` ); resolve(); return; } var group = obj["subject_collection_items"]; var num = group.length; for (var i = 0; i < num; i++) { var title = group[i].title; var subtitle = group[i]["card_subtitle"]; var rating = group[i].rating; if (rating == null) continue; var star = rating["star_count"]; var item = title + "\n" + "评分:" + star + "星🌟" + "\n" + subtitle; var url = group[i].url; var cover = group[i].cover.url; itemsdb.push(item); urlsdb.push(url); coversdb.push(cover); } $.log("豆瓣榜单获取成功✅\n" + itemsdb); if ($.pushnewdb == false) { for (var j = 0; j < keyword.length; j++) { getkeywordcontentmedia( $.splitpushdb, "豆瓣", resultdb, openurldb, mediaurldb, keyword[j], itemsdb, urlsdb, coversdb ); } } else { gethotcontentmedia( $.splitpushdb, "豆瓣", resultdb, openurldb, mediaurldb, $.dbnum, itemsdb, urlsdb, coversdb ); } if (resultdb.length != 0) { if ($.splitpushdb == true) { splitpushnotifymedia(resultdb, openurldb, mediaurldb); } else { mergepushnotify(resultdb); } } resolve(); } else { $.log("获取豆瓣榜单出现错误❌以下详情:\n"); $.log(JSON.stringify(response)); } resolve(); } catch (e) { $.log("获取豆瓣榜单出现错误❌原因:\n"); $.log(JSON.stringify(e, Object.getOwnPropertyNames(e))); resolve(); } setTimeout(() => { resolve(); }, $.time); }); }); } function getdylist() { $.log("开始获取抖音榜单..."); return new Promise((resolve) => { const dyRequest = { url: "https://tophub.today/n/DpQvNABoNE", }; $.get(dyRequest, (error, response, data) => { try { if (error) throw new Error(error); if (response.statusCode == 200) { var body = response.body; parsehtml(body, itemsdy, urlsdy); $.log("抖音榜单获取成功✅\n" + itemsdy); if ($.pushnewdy == false) { for (var j = 0; j < keyword.length; j++) { getkeywordcontenturl( $.splitpushdy, "抖音", resultdy, openurldy, keyword[j], itemsdy, urlsdy ); } } else { gethotcontenturl( $.splitpushdy, "抖音", resultdy, openurldy, $.dynum, itemsdy, urlsdy ); } if (resultdy.length != 0) { if ($.splitpushdy == true) { splitpushnotify(resultdy, openurldy); } else { mergepushnotify(resultdy); } } resolve(); } else { $.log("获取抖音榜单出现错误❌以下详情:\n"); $.log(JSON.stringify(response)); } resolve(); } catch (e) { $.log("获取抖音榜单出现错误❌原因:\n"); $.log(JSON.stringify(e, Object.getOwnPropertyNames(e))); resolve(); } setTimeout(() => { resolve(); }, $.time); }); }); } function getk36list() { $.log("开始获取36氪榜单..."); return new Promise((resolve) => { const k36Request = { url: "https://tophub.today/n/Q1Vd5Ko85R", }; $.get(k36Request, (error, response, data) => { try { if (error) throw new Error(error); if (response.statusCode == 200) { var body = response.body; parsehtml(body, itemsk36, urlsk36); $.log("36氪榜单获取成功✅\n" + itemsk36); if ($.pushnewk36 == false) { for (var j = 0; j < keyword.length; j++) { getkeywordcontenturl( $.splitpushk36, "36氪", resultk36, openurlk36, keyword[j], itemsk36, urlsk36 ); } } else { gethotcontenturl( $.splitpushk36, "36氪", resultk36, openurlk36, $.k36num, itemsk36, urlsk36 ); } if (resultk36.length != 0) { if ($.splitpushk36 == true) { splitpushnotify(resultk36, openurlk36); } else { mergepushnotify(resultk36); } } resolve(); } else { $.log("获取36氪榜单出现错误❌以下详情:\n"); $.log(JSON.stringify(response)); } resolve(); } catch (e) { $.log("获取36氪榜单出现错误❌原因:\n"); $.log(JSON.stringify(e, Object.getOwnPropertyNames(e))); resolve(); } setTimeout(() => { resolve(); }, $.time); }); }); } function getamazonlist() { $.log("开始获取Kindle图书榜单..."); return new Promise((resolve) => { const amazonRequest = { url: "https://www.amazon.cn/gp/bestsellers/digital-text", headers: { "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Mobile/15E148 Safari/604.1", }, }; $.get(amazonRequest, (error, response, data) => { try { if (error) throw new Error(error); if (response.statusCode == 200) { var body = response.body; parsehtmlkindle(body, itemsamz, urlsamz, coversamz); $.log("Kindle图书榜单获取成功✅\n" + itemsamz); if ($.pushnewamz == false) { for (var j = 0; j < keyword.length; j++) { getkeywordcontentmedia( $.splitpushamz, "Kindle书单", resultamz, openurlamz, mediaurlamz, keyword[j], itemsamz, urlsamz, coversamz ); } } else { gethotcontentmedia( $.splitpushamz, "Kindle书单", resultamz, openurlamz, mediaurlamz, $.amznum, itemsamz, urlsamz, coversamz ); } if (resultamz.length != 0) { if ($.splitpushamz == true) { splitpushnotifymedia(resultamz, openurlamz, mediaurlamz); } else { mergepushnotify(resultamz); } } resolve(); } else { $.log("获取Kindle图书榜单出现错误❌以下详情:\n"); $.log(JSON.stringify(response)); } resolve(); } catch (e) { $.log("获取Kindle图书榜单出现错误❌原因:\n"); $.log(JSON.stringify(e, Object.getOwnPropertyNames(e))); resolve(); } setTimeout(() => { resolve(); }, $.time); }); }); } function getzmzlist() { $.log("开始获取人人影视榜单..."); return new Promise((resolve) => { const zmzRequest = { url: `http://file.apicvn.com/file/list?page=1&order=create_time&sort=desc`, headers: { Host: "file.apicvn.com", "Content-Type": "application/x-www-form-urlencoded", "User-Agent": "Mozilla/5.0", }, }; $.get(zmzRequest, (error, response, data) => { try { if (error) throw new Error(error); if (response.statusCode == 200) { var body = response.body; var obj = JSON.parse(body); for (var i = 0; i < obj.length; i++) { var item = obj[i]["file_name"]; var oriurl = obj[i]["magnet_url"]; if ($.getdata("evil_cltz") == "1") { var posturl = "xunlei|" + oriurl; } else if ($.getdata("evil_cltz") == "2") { posturl = "115|" + oriurl; } else if ($.getdata("evil_cltz") == "3") { posturl = "daishu|" + oriurl; } else if ($.getdata("evil_cltz") == "4") { posturl = "shandian|" + oriurl; } else { posturl = "xunlei|" + oriurl; } var encodeurl = base64.encode(posturl); var url = $.link + encodeurl; var size = (obj[i]["file_size"] / 1048576).toFixed(2); var finalsize = size + "MB"; if (size > 1024) { size = (obj[i]["file_size"] / 1073741824).toFixed(2); finalsize = size + "GB"; } if (oriurl == "") { var postitem = "🧲未找到|" + item; } else { postitem = item; } var finalitem = postitem + "\n📦大小:" + finalsize; itemszmz.push(finalitem); urlszmz.push(url); } $.log("人人影视榜单获取成功✅\n" + itemszmz); if ($.pushnewzmz == false) { for (var j = 0; j < keyword.length; j++) { getkeywordcontenturl( $.splitpushzmz, "人人影视", resultzmz, openurlzmz, keyword[j], itemszmz, urlszmz ); } } else { gethotcontenturl( $.splitpushzmz, "人人影视", resultzmz, openurlzmz, $.zmznum, itemszmz, urlszmz ); } if (resultzmz.length != 0) { if ($.splitpushzmz == true) { splitpushnotify(resultzmz, openurlzmz); } else { mergepushnotify(resultzmz); } } resolve(); } else { $.log("获取人人影视榜单出现错误❌以下详情:\n"); $.log(JSON.stringify(response)); } resolve(); } catch (e) { $.log("获取人人影视榜单出现错误❌原因:\n"); $.log(JSON.stringify(e, Object.getOwnPropertyNames(e))); resolve(); } setTimeout(() => { resolve(); }, $.time); }); }); } function getrsslist( rsslink, resultrss, openurlrss, mediaurlrss, titlerss, itemsrss, urlsrss, coversrss ) { $.log("开始获取RSS内容..."); resultrss = []; openurlrss = []; mediaurlrss = []; titlerss = []; itemsrss = []; urlsrss = []; coversrss = []; return new Promise((resolve) => { const rssRequest = { url: "https://api.rss2json.com/v1/api.json?rss_url=" + encodeURIComponent(rsslink), }; $.get(rssRequest, (error, response, data) => { try { if (error) throw new Error(error); if (response.statusCode == 200) { var body = response.body; var obj = JSON.parse(body); titlerss = obj.feed.title; var items = obj.items; var num = items.length; for (var i = 0; i < num; i++) { var title = items[i].title; var url = items[i].link; if (items[i].thumbnail != null) { var cover = items[i].thumbnail; } else { cover = "https://raw.githubusercontent.com/58xinian/icon/master/hot.png"; } if (items[i].description != null) { var des = items[i].description; var postdes = des .replace(new RegExp(/\\n/, "gm"), "") .replace(new RegExp(/\<.*?\>/, "gm"), ""); var finaldes = postdes.trim(); var description = "\n🔎详情:" + finaldes.slice(0, 50); } else { description = "\n🔎详情:暂无"; } if (items[i].author == "") { var author = "\n👨💻作者:暂无"; } else { author = "\n👨💻作者:" + items[i].author; } var item = title + author + description; itemsrss.push(item); urlsrss.push(url); coversrss.push(cover); } $.log("RSS内容获取成功✅\n" + itemsrss); } else { $.log(JSON.stringify(response.body)); $.log("RSS解析出错❌请检查订阅稍后重试⚠️本次将使用正则。"); return new Promise((resolve) => { const rssregRequest = { url: rsslink, }; $.get(rssregRequest, (error, response, data) => { if (error) throw new Error(error); if (response.statusCode == 200) { var body = response.body; parsehtmlrss(body, titlerss, itemsrss, urlsrss, coversrss); $.log("RSS内容正则获取成功✅\n" + itemsrss); resolve(); } else { $.log("获取RSS内容出现错误❌以下详情:\n"); $.log(JSON.stringify(body)); resolve(); } }); }); } if ($.pushnewrss == false) { for (var j = 0; j < keyword.length; j++) { getkeywordcontentmedia( $.splitpushrss, titlerss, resultrss, openurlrss, mediaurlrss, keyword[j], itemsrss, urlsrss, coversrss ); } } else { gethotcontentmedia( $.splitpushrss, titlerss, resultrss, openurlrss, mediaurlrss, $.rssnum, itemsrss, urlsrss, coversrss ); } if (resultrss.length != 0) { checkrssresult = true; if ($.splitpushrss == true) { splitpushnotifymedia(resultrss, openurlrss, mediaurlrss); } else { mergepushnotify(resultrss); } } resolve(); } catch (e) { $.log("获取RSS内容出现错误❌原因:\n"); $.log(JSON.stringify(e, Object.getOwnPropertyNames(e))); resolve(); } setTimeout(() => { resolve(); }, $.time); }); }); } function parsehtmlrss(str, title, items, urls, covers) { var text = JSON.stringify(str); //title表达式 var alltitle = /channel\>(\\\S.*?|)\