From 98c894fa8d58aaf5ee4a06d242688a6d643adbaf Mon Sep 17 00:00:00 2001 From: chuqiuyu <58679624+gaotianliuyun@users.noreply.github.com> Date: Fri, 6 Oct 2023 19:57:16 +0800 Subject: [PATCH] update JS --- js.json | 16 +-- js/if101[飞].js | 28 ++++- js/ikanbot3.js | 3 +- js/吼吼[飞].js | 84 ++++++++----- js/往往影视.js | 51 -------- js/我的哔哩.js | 302 +++++++++++++++++++++++++++++++++++++++++---- js/蘑菇.js | 2 +- 7 files changed, 365 insertions(+), 121 deletions(-) delete mode 100644 js/往往影视.js diff --git a/js.json b/js.json index 06dfd1f0..e7bb1136 100644 --- a/js.json +++ b/js.json @@ -33,22 +33,14 @@ {"key":"drpy_js_在线之家","name":"影视 | 在线之家[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/在线之家.js"}, {"key":"drpy_js_热播库","name":"影视 | 热播库[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/热播库.js"}, -{"key":"drpy_js_9U电影","name":"影视 | 9U电影[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/9U电影.js"}, {"key":"drpy_js_达达龟","name":"影视 | 达达龟[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/达达龟.js"}, -{"key":"drpy_js_大师兄影视","name":"影视 | 大师兄影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/大师兄影视.js"}, -{"key":"drpy_js_起飞影院","name":"影视 | 起飞影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/起飞影院.js"}, {"key":"drpy_js_蛋蛋剧","name":"影视 | 蛋蛋剧[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/蛋蛋剧.js"}, {"key":"drpy_js_B站影视","name":"影视 | B站影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/B站影视.js"}, {"key":"drpy_js_91free","name":"影视 | 91free[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/91free.js"}, -{"key":"drpy_js_兰花影院","name":"影视 | 兰花影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/兰花影院.js"}, {"key":"drpy_js_凌云影视","name":"影视 | 凌云影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/凌云影视.js"}, {"key":"drpy_js_哔哩兔","name":"影视 | 哔哩兔[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/哔哩兔.js"}, {"key":"drpy_js_孜然影视","name":"影视 | 孜然影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/孜然影视.js"}, -{"key":"drpy_js_往往影视","name":"影视 | 往往影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/往往影视.js"}, {"key":"drpy_js_我爱跟剧","name":"影视 | 我爱跟剧[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/我爱跟剧.js"}, -{"key":"drpy_js_胖虎","name":"影视 | 胖虎[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/胖虎.js"}, -{"key":"drpy_js_落攻阁影视","name":"影视 | 落攻阁影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/落攻阁影视.js"}, -{"key":"drpy_js_爱迪影视","name":"影视 | 爱迪影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/爱迪影视.js"}, {"key":"drpy_js_蘑菇","name":"影视 | 蘑菇[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/蘑菇.js"}, {"key":"drpy_js_555电影[V2]","name":"影视 | 555电影[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/555电影[V2].js"}, @@ -192,6 +184,7 @@ {"key":"drpy_js_酷客影院","name":"影视 | 酷客影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/酷客影院.js"}, {"key":"drpy_js_乐鱼影视","name":"影视 | 乐鱼影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/乐鱼影视.js"}, {"key":"drpy_js_零度影视","name":"影视 | 零度影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/零度影视.js"}, +{"key":"drpy_js_落攻阁影视","name":"影视 | 落攻阁影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/落攻阁影视.js"}, {"key":"drpy_js_美剧网","name":"影视 | 美剧网[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/美剧网.js"}, {"key":"drpy_js_美视网","name":"影视 | 美视网[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/美视网.js"}, {"key":"drpy_js_米爱影视","name":"影视 | 米爱影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/米爱影视.js"}, @@ -222,6 +215,13 @@ {"key":"drpy_js_追剧迷","name":"影视 | 追剧迷[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/追剧迷.js"}, {"key":"drpy_js_子子影视","name":"影视 | 子子影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/子子影视.js"}, +{"key":"drpy_js_9U电影","name":"起飞 | 9U电影[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/9U电影.js"}, +{"key":"drpy_js_大师兄影视","name":"起飞 | 大师兄影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/大师兄影视.js"}, +{"key":"drpy_js_起飞影院","name":"起飞 | 起飞影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/起飞影院.js"}, +{"key":"drpy_js_兰花影院","name":"起飞 | 兰花影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/兰花影院.js"}, +{"key":"drpy_js_往往影视","name":"起飞 | 往往影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/往往影视.js"}, +{"key":"drpy_js_胖虎","name":"起飞 | 胖虎[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/胖虎.js"}, +{"key":"drpy_js_爱迪影视","name":"起飞 | 爱迪影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/爱迪影视.js"}, {"key":"drpy_js_555影视[飞]","name":"起飞 | 555影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/555影视[飞].js"}, {"key":"drpy_js_if101[飞]","name":"起飞 | if101[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/if101[飞].js"}, {"key":"drpy_js_KUBO影视[飞]","name":"起飞 | KUBO影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/KUBO影视[飞].js"}, diff --git a/js/if101[飞].js b/js/if101[飞].js index a130b623..645b68f9 100644 --- a/js/if101[飞].js +++ b/js/if101[飞].js @@ -2,9 +2,10 @@ var rule={ title:'if101[飞]', // host:'https://olevod.live', host:'https://olevod.io', + homeUrl:'/index.php/label/rankweek.html', // 人气排行榜周榜 url:'/index.php/vod/show/id/fyfilter.html', filterable:1,//是否启用分类筛选, - filter_url:'{{fl.cateId}}{{fl.area}}{{fl.by}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}', + filter_url:'{{fl.cateId}}{{fl.area}}{{fl.by or "/by/time"}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}', filter: { "1":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"1"},{"n":"冒险","v":"6"},{"n":"剧情","v":"7"},{"n":"动作","v":"8"},{"n":"动画电影","v":"9"},{"n":"同性","v":"10"},{"n":"喜剧","v":"11"},{"n":"奇幻","v":"12"},{"n":"恐怖","v":"20"},{"n":"悬疑","v":"21"},{"n":"惊悚","v":"22"},{"n":"战争","v":"23"},{"n":"歌舞","v":"24"},{"n":"灾难","v":"25"},{"n":"爱情","v":"26"},{"n":"犯罪","v":"27"},{"n":"科幻","v":"28"},{"n":"经典","v":"29"},{"n":"网络电影","v":"30"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"欧美","v":"/area/欧美"},{"n":"韩国","v":"/area/韩国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"},{"n":"2008","v":"/year/2008"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], "2":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"2"},{"n":"欧美剧","v":"13"},{"n":"日剧","v":"14"},{"n":"韩剧","v":"15"},{"n":"国产剧","v":"16"},{"n":"泰剧","v":"31"},{"n":"港剧","v":"32"},{"n":"台剧","v":"33"},{"n":"新马剧","v":"34"},{"n":"其它剧","v":"35"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"日本","v":"/area/日本"},{"n":"韩国","v":"/area/韩国"},{"n":"欧美","v":"/area/欧美"},{"n":"泰国","v":"/area/泰国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"},{"n":"2008","v":"/year/2008"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], @@ -26,13 +27,28 @@ var rule={ headers:{ 'User-Agent':'MOBILE_UA', }, - class_parse:'.conch-nav&&li:gt(1):lt(9);a&&Text;a&&href;.*/(.*?).html', - cate_exclude:'直播', + // class_parse:'.conch-nav&&li:gt(1):lt(9);a&&Text;a&&href;.*/(.*?).html', + class_parse:'.conch-nav&&li:gt(1):lt(8);a&&Text;a&&href;/(\\d+).html', + // cate_exclude:'直播', play_parse:true, - lazy:'js:var html=JSON.parse(request(input).match(/r player_.*?=(.*?) 排行榜 > 原创 url:'/x/web-interface/search/type?search_type=videofyfilter', - class_name:'经典无损音乐合集&帕梅拉&太极拳&健身&舞蹈&音乐&歌曲&MV&演唱会&白噪音&知名UP主&说案&解说&演讲&时事&探索发现&纪录片&平面设计教学&软件教程&实用教程&旅游&风景&食谱&美食&搞笑&球星&动物世界&相声小品&戏曲&儿童&小姐姐&热门&旅行探险', - class_url:'经典无损音乐合集&帕梅拉&太极拳&健身&舞蹈&音乐&歌曲&MV4K&演唱会4K&白噪音4K&知名UP主&说案&解说&演讲&时事&探索发现超清&纪录片超清&平面设计教学&软件教程&实用教程&旅游&风景4K&食谱&美食超清&搞笑&球星&动物世界超清&相声小品&戏曲&儿童&小姐姐4K&热门&旅行探险', + class_name:'推荐&经典无损音乐合集&帕梅拉&太极拳&健身&舞蹈&音乐&歌曲&MV&演唱会&白噪音&知名UP主&说案&解说&演讲&时事&探索发现&纪录片&平面设计教学&软件教程&实用教程&旅游&风景&食谱&美食&搞笑&球星&动物世界&相声小品&戏曲&儿童&小姐姐&热门&旅行探险', + class_url:'推荐&经典无损音乐合集&帕梅拉&太极拳&健身&舞蹈&音乐&歌曲&MV4K&演唱会4K&白噪音4K&知名UP主&说案&解说&演讲&时事&探索发现超清&纪录片超清&平面设计教学&软件教程&实用教程&旅游&风景4K&食谱&美食超清&搞笑&球星&动物世界超清&相声小品&戏曲&儿童&小姐姐4K&热门&旅行探险', filterable: 1, filter_url: '&keyword={{fl.tid}}&page=fypage&duration={{fl.duration}}&order={{fl.order}}', filter_def:{ + 推荐:{tid:'推荐'}, 经典无损音乐合集:{tid:'经典无损音乐合集'}, 帕梅拉:{tid:'帕梅拉'}, 太极拳:{tid:'太极拳'}, @@ -96,7 +100,8 @@ var rule = { "热门":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"热门"},{"n":"刀郎","v":"刀郎"},{"n":"罗刹海市","v":"罗刹海市"},{"n":"狂飙","v":"狂飙"},{"n":"淄博烧烤","v":"淄博烧烤"},{"n":"原神","v":"原神"},{"n":"漫长的季节","v":"漫长的季节"},{"n":"AI","v":"AI"},{"n":"俄乌","v":"俄乌"},{"n":"ChatGPT","v":"ChatGPT"},{"n":"重启人生","v":"重启人生"},{"n":"棋手战鹰","v":"棋手战鹰"},{"n":"中国奇谭","v":"中国奇谭"},{"n":"三体","v":"三体"},{"n":"刘慈欣","v":"刘慈欣"},{"n":"鬼吹灯","v":"鬼吹灯"},{"n":"天下霸唱","v":"天下霸唱"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}], "旅行探险":[{"key":"order","name":"排序","value":[{"n":"综合排序","v":"0"},{"n":"最多点击","v":"click"},{"n":"最新发布","v":"pubdate"},{"n":"最多弹幕","v":"dm"},{"n":"最多收藏","v":"stow"}]},{"key":"tid","name":"分类","value":[{"n":"全部","v":"旅行探险"},{"n":"摩旅","v":"摩托车旅游"},{"n":"骑行","v":"骑行旅游"},{"n":"徒步旅游","v":"徒步旅游"},{"n":"自驾旅游","v":"自驾旅游"},{"n":"洞穴探险","v":"洞穴探险"},{"n":"荒野求生","v":"荒野求生"},{"n":"凶宅探险","v":"凶宅探险"},{"n":"灵异探险","v":"灵异探险"},{"n":"户外攀岩","v":"户外攀岩"},{"n":"高空攀爬","v":"高空攀爬"},{"n":"潜水探险","v":"潜水探险"},{"n":"翼装飞行","v":"翼装飞行"},{"n":"极限运动","v":"极限运动"},{"n":"速降","v":"速降"},{"n":"高空跑酷","v":"高空跑酷"},{"n":"冲浪","v":"冲浪"}]},{"key":"duration","name":"时长","value":[{"n":"全部","v":"0"},{"n":"60分钟以上","v":"4"},{"n":"30~60分钟","v":"3"},{"n":"10~30分钟","v":"2"},{"n":"10分钟以下","v":"1"}]}] }, - detailUrl:'/x/web-interface/view?aid=fyid',//二级详情拼接链接(json格式用) + // detailUrl:'/x/web-interface/view?aid=fyid',//二级详情拼接链接(json格式用) + detailUrl:'/x/web-interface/view/detail?aid=fyid',//二级详情拼接链接(json格式用) searchUrl:'/x/web-interface/search/type?search_type=video&keyword=**&page=fypage', searchable:2, quickSearch:0, @@ -141,21 +146,132 @@ var rule = { '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.contentType = 'video/x-flv'; + if (/\\.flv/.test(purl)) { + result.contentType = 'video/x-flv'; + } else { + result.contentType = ''; + } result.danmaku = dan; input = result `, double:false, - 推荐:'*', + // 推荐:'*', + 推荐:`js: + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + if (duration >= 3600) { + let rSAH = duration % 3600; + min = Math.floor(rSAH / 60); + sec = rSAH % 60; + } else { + min = Math.floor(duration / 60); + sec = duration % 60; + } + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + function ConvertNum(num) { + let _ws = Math.pow(10, 1); + let _b = 1e4; + if (num < _b) { + return num.toString(); + } + let _r = ''; + let _strArg = ['', '万', '亿', '万亿']; + let _i = Math.floor(Math.log(num) / Math.log(_b)); + if (_i > 3) { + _i = 3; + } + _r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i]; + return _r; + } + let html = request(input); + let vodList = JSON.parse(html).data.list; + let videos = []; + vodList.forEach(function(vod) { + let aid = vod.aid; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let remark = turnDHM(vod.duration) + ' ▶' + ConvertNum(vod.stat.view) + ' 🆙' + vod.owner.name; + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, // 一级:'js:let html=request(input);let msg=JSON.parse(html).message;function title_rep(title){if(/keyword/.test(title)){title=title.replace(\'\',"").replace("","").replace(""","\'");log("名称替换👉"+title)};return title}if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result;vodList.forEach(function(vod){let aid=vod["aid"];let title=vod["title"].trim();title=title_rep(title);title=title_rep(title);title=title_rep(title);title=title_rep(title);let img="https:"+vod["pic"];let remark=vod["duration"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}', 一级:`js: - let html = request(input); function stripHtmlTag(src) { return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); } function turnDHM(duration) { - let min = duration.split(':')[0]; - let sec = duration.split(':')[1]; + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + if (duration >= 3600) { + let rSAH = duration % 3600; + min = Math.floor(rSAH / 60); + sec = rSAH % 60; + } else { + min = Math.floor(duration / 60); + sec = duration % 60; + } + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } if (min == 0) { return sec + '秒' } else if (0 < min && min < 60) { @@ -190,13 +306,49 @@ var rule = { } return null } + function ConvertNum(num) { + let _ws = Math.pow(10, 1); + let _b = 1e4; + if (num < _b) { + return num.toString(); + } + let _r = ''; + let _strArg = ['', '万', '亿', '万亿']; + let _i = Math.floor(Math.log(num) / Math.log(_b)); + if (_i > 3) { + _i = 3; + } + _r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i]; + return _r; + } + let data = []; + let vodList = []; + if (MY_CATE === '推荐') { + input = HOST + '/x/web-interface/index/top/rcmd?ps=14&fresh_idx=' + MY_PAGE + '&fresh_idx_1h=' + MY_PAGE; + data = JSON.parse(request(input)).data; + vodList = data.item; + } else { + data = JSON.parse(request(input)).data; + vodList = data.result; + } let videos = []; - let vodList = JSON.parse(html).data.result; vodList.forEach(function(vod) { - let aid = vod.aid; + let aid = vod.aid?vod.aid:vod.id; let title = stripHtmlTag(vod.title); - let img = 'https:' + vod.pic; - let remark = turnDHM(vod.duration); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let play = ''; + let danmaku = '' + if (MY_CATE === '推荐') { + play = ConvertNum(vod.stat.view); + danmaku = vod.stat.danmaku; + } else { + play = ConvertNum(vod.play); + danmaku = vod.video_review; + } + let remark = turnDHM(vod.duration) + ' ▶' + play + ' 💬' + danmaku; videos.push({ vod_id: aid, vod_name: title, @@ -211,28 +363,40 @@ var rule = { return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); } let html = request(input); - let jo = JSON.parse(html).data; + let jo = JSON.parse(html).data.View; + let stat = jo.stat; + let up_info = JSON.parse(html).data.Card; + let relation = up_info.following ? '已关注' : '未关注'; let aid = jo.aid; let title = stripHtmlTag(jo.title); let pic = jo.pic; let desc = jo.desc; - let year = jo.pubdate; - let dire = jo.owner.name; + + let date = new Date(jo.pubdate * 1000); + let yy = date.getFullYear().toString(); + let mm = date.getMonth()+1; + mm = mm < 10 ? ('0' + mm) : mm; + let dd = date.getDate(); + dd = dd < 10 ? ('0' + dd) : dd; + + let up_name = jo.owner.name; let typeName = jo.tname; - let remark = jo.duration; + // let remark = jo.duration; let vod = { vod_id: aid, vod_name: title, vod_pic: pic, type_name: typeName, - vod_year: year, + vod_year: yy+mm+dd, vod_area: 'bilidanmu', - vod_remarks: remark, + // vod_remarks: remark, vod_tags: 'mv', - vod_director: dire, + vod_director: '🆙 ' + up_name + ' 👥 ' + up_info.follower + ' ' + relation, + vod_actor: '▶' + stat.view + ' ' + '💬' + stat.danmaku + ' ' + '👍' + stat.like + ' ' + '💰' + stat.coin + ' ' + '⭐' + stat.favorite, vod_content: desc }; let ja = jo.pages; + let treeMap = {}; let playurls = []; ja.forEach(function(tmpJo) { let cid = tmpJo.cid; @@ -241,11 +405,99 @@ var rule = { part + '$' + aid + '_' + cid ) }); - let playUrl = playurls.join('#'); - vod.vod_play_from = 'B站'; - vod.vod_play_url = playUrl; + treeMap['B站'] = playurls.join('#'); + let relatedData = JSON.parse(html).data.Related; + playurls = []; + relatedData.forEach(function(rd) { + let ccid = rd.cid; + let title = rd.title.replace('#', '﹟').replace('$', '﹩'); + let aaid = rd.aid; + playurls.push( + title + '$' + aaid + '_' + ccid + ) + }); + treeMap['相关推荐'] = playurls.join('#'); + vod.vod_play_from = Object.keys(treeMap).join("$$$"); + vod.vod_play_url = Object.values(treeMap).join("$$$"); VOD = vod; `, - 搜索:'*', + // 搜索:'*', + 搜索:`js: + let html = request(input); + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + if (duration >= 3600) { + let rSAH = duration % 3600; + min = Math.floor(rSAH / 60); + sec = rSAH % 60; + } else { + min = Math.floor(duration / 60); + sec = duration % 60; + } + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + let videos = []; + let vodList = JSON.parse(html).data.result; + vodList.forEach(function(vod) { + let aid = vod.aid; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let remark = turnDHM(vod.duration); + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, // 预处理:'if(rule_fetch_params.headers.Cookie.startsWith("http")){rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie);setItem(RULE_CK,cookie)};log(rule_fetch_params.headers.Cookie)', } \ No newline at end of file diff --git a/js/蘑菇.js b/js/蘑菇.js index d195c1cb..ec023ee3 100644 --- a/js/蘑菇.js +++ b/js/蘑菇.js @@ -17,7 +17,7 @@ var rule = { headers:{ 'User-Agent':'PC_UA' }, - class_parse:'.stui-header__menu&&li:lt(5);a&&Text;a&&href;/(\\w+).html', + class_parse:'.stui-header__menu&&li;a&&Text;a&&href;e/(\\w+).html', lazy:`js: var html = JSON.parse(request(input).match(/r player_.*?=(.*?)