Update 0831/布卡影院.json, 0831/电视剧网.json, 0831/理理影院.json, 0831/小坝影视.json, 0831/94影院.json, 0831/999影视.json, 0930/评书.json, 0930/blifun影院.json, 0930/xbpq_韩迷TV.json, drpy_libs/模板老.js, drpy_libs/模板.js, drpy_libs/crypto-hiker.js, drpy_libs/crypto-js.js, drpy_libs/cheerio.min.js, drpy_libs/drpy2.js, drpy_libs/drpy2.min.js, drpy_libs/gbk.js, drpy_libs/jinja.js, drpy_libs/jsencrypt.js, drpy_libs/json5.js, drpy_libs/node-rsa.js, drpy_libs/pako.min.js, jar/o.jar, jar/spider.jar, jar/wencai.jar, jar/wogg.jar, jar/xm.jar, jar/xyqxbpq.jar, js/采集分类生成器.py, js/采集之王[合].js, js/采集转换器.py, js/采集[密]静态.json, js/采集[zy]静态.json, js/一曲肝肠断.js, js/一支穿云箭.js, js/有声绘本网[听].js, js/有声听书网[听].js, js/中华听书网[听].js, js/种子音乐[听].js, js/HDmoli.js, js/i275听书[听].js, js/KTV歌厅[听].js, dongtian.json, xmbjm.jar, lib/爱看机器人[虫].js, lib/爱你短剧.json, lib/爱奇艺.js, lib/爱优影视.js, lib/贝乐虎[儿].js, lib/哔哩合集.txt, lib/哔哩戏曲.json, lib/哔哩相声.json, lib/哔哩影视[官].js, lib/哔哩综合.json, lib/播视童趣.json, lib/博看听书.js, lib/采集静态.json, lib/采集之王.js, lib/采集之王[合].js, lib/茶狐杯.json, lib/畅梦.js, lib/初中课堂.json, lib/大全央视.js, lib/电影先生.js, lib/斗鱼直播.js, lib/短剧屋.json, lib/多多追剧[优].js, lib/高中课堂.json, lib/好趣网.js, lib/河马短剧.json, lib/即看影视.js, lib/极光.js, lib/剧圈圈.json, lib/酷奇MV.js, lib/蓝莓短剧.js, lib/六月听书.js, lib/芒果.js, lib/美柏.json, lib/南瓜.js, lib/农民影视.json, lib/女团热舞.json, lib/七新影视.json, lib/奇珍异兽[官].js, lib/企鹅直播.json, lib/搜狗.js, lib/素白白[优].js, lib/腾讯VIP.js, lib/兔小贝.json, lib/兔小贝2.json, lib/小学课堂.json, lib/新视觉.json, lib/星芽短剧.js, lib/学外语.json, lib/学习园地.json, lib/演唱会.json, lib/优酷视频.js, lib/子子.json, lib/4k剧院.js, lib/4kav.json, lib/88看球.js, lib/98影视.json, lib/310直播.js, lib/348.json, lib/360吧[球].js, lib/360影视[官].js, lib/a8yy.js, lib/bl.js, lib/blzb.js, lib/cheerio.min.js, lib/crypto-js.js, lib/DJyyyyw.json, lib/douban.js, lib/drpy2.min.js, lib/fgys.json, lib/guangun.json, lib/guoguo.js, lib/gz.js, lib/HDmoli.json, lib/huyazhibo.js, lib/jp.js, lib/jrk.js, lib/lf_search3_min.js, lib/live.txt, lib/live2.txt, lib/miaiys.json, lib/MTV.json, lib/nfzw.json, lib/qyg0.js, lib/qyg1.js, lib/qyg2.js, lib/qyg3.js, lib/qyg4.js, lib/qyg5.js, lib/rebozj.json, lib/sc1080.json, lib/sdtv.jar, lib/sdtv.js, lib/Vidhub.json, lib/voflix.json, lib/xcys.json, lib/xm.jar, lib/ynfys.json, lib/ysdq.json, lib/zb.txt files
This commit is contained in:
parent
9b7dbd9b45
commit
d14c82cf42
0831
0930
dongtian.jsondrpy_libs
cheerio.min.jscrypto-hiker.jscrypto-js.jsdrpy2.jsdrpy2.min.jsgbk.jsjinja.jsjsencrypt.jsjson5.jsnode-rsa.jspako.min.js模板.js模板老.js
jar
js
HDmoli.jsKTV歌厅[听].jsi275听书[听].js一支穿云箭.js一曲肝肠断.js中华听书网[听].js有声听书网[听].js有声绘本网[听].js种子音乐[听].js采集[zy]静态.json采集[密]静态.json采集之王[合].js采集分类生成器.py采集转换器.py
lib
310直播.js348.json360吧[球].js360影视[官].js4kav.json4k剧院.js88看球.js98影视.jsonDJyyyyw.jsonHDmoli.jsonMTV.jsonVidhub.jsona8yy.jsbl.jsblzb.jscheerio.min.jscrypto-js.jsdouban.jsdrpy2.min.jsfgys.jsonguangun.jsonguoguo.jsgz.jshuyazhibo.jsjp.jsjrk.jslf_search3_min.jslive.txtlive2.txtmiaiys.jsonnfzw.jsonqyg0.jsqyg1.jsqyg2.jsqyg3.jsqyg4.jsqyg5.jsrebozj.jsonsc1080.jsonsdtv.jarsdtv.jsvoflix.jsonxcys.jsonxm.jarynfys.jsonysdq.jsonzb.txt七新影视.json企鹅直播.json优酷视频.js兔小贝.json兔小贝2.json六月听书.js农民影视.json初中课堂.json剧圈圈.json南瓜.js
67
0831/94影院.json
Normal file
67
0831/94影院.json
Normal file
@ -0,0 +1,67 @@
|
||||
{
|
||||
"作者": "小可乐/2408/第一版",
|
||||
"站名": "XBPQ模板",
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"图片代理": "0",
|
||||
"主页url": "https://94itv.app",
|
||||
"首页": "120",
|
||||
"起始页": "1",
|
||||
"分类url": "https://94itv.app/vod-show-area-{area}-by-{by}-id-{cateId}-page-{catePg}-year-{year}.html;;mrcd0",
|
||||
"分类": "电影&剧集&综艺&动漫",
|
||||
"分类值": "1&2&3&4",
|
||||
"数组": "lazyload\"&&</a>",
|
||||
"标题": "title=\"&&\"",
|
||||
"图片": "data-original=\"&&\"",
|
||||
"副标题": "❄+000000;\">&&</",
|
||||
"链接": "href=\"&&\"",
|
||||
"副标题": "#5bb7fe;\">&&</span>+#ff9900;\">&&</span>+#000000;\">&&</span>",
|
||||
"链接": "href=\"&&\"",
|
||||
"影片年代": "年份:&&</a>",
|
||||
"影片地区": "地區:&&</a>",
|
||||
"影片类型": "分類:&&</a>",
|
||||
"状态": "目前狀態:&&</span>",
|
||||
"导演": "導演:&&</p>",
|
||||
"主演": "主演:&&</p>",
|
||||
"简介": "❄冬天❄为您剧情介绍❄+display: none;\">&&</span>",
|
||||
|
||||
"线路二次截取": "nav nav-tabs&&</ul>",
|
||||
"线路数组": "#playlist&&</a></li>",
|
||||
"线路标题": "❄+tab\">&&</a>",
|
||||
"播放二次截取": "",
|
||||
"播放数组": "list clearfix\"&&</ul>",
|
||||
"播放列表": "btn btn-default\"&&/a>",
|
||||
"播放标题": ">&&</a>",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"解析": "",
|
||||
"直接播放": "0",
|
||||
"播放请求头": "",
|
||||
"嗅探词": ".mp4#.m3u8",
|
||||
"过滤词": "",
|
||||
"跳转播放链接": "urlDecode(Base64(var player_*url\":\"&&\"))",
|
||||
"跳转解析": "",
|
||||
"搜索请求头": "User-Agent$MOBILE_UA",
|
||||
"搜索url": "",
|
||||
"搜索模式": "1",
|
||||
"搜索后缀": "",
|
||||
"搜索二次截取": "",
|
||||
"搜索数组": "",
|
||||
"搜索标题": "",
|
||||
"搜索图片": "",
|
||||
"搜索副标题": "",
|
||||
"搜索链接": "",
|
||||
"筛选": "1",
|
||||
"类型": "动作片$6#喜剧片$7#爱情片$8#科幻片$9#恐怖片$10#剧情片$11#战争片$12#动画片$20||台灣劇$21#日劇$22#陸劇$13#韓劇$15#歐美劇$16#香港劇$14#泰國劇$23||空||空",
|
||||
"剧情": "空||空||空||空",
|
||||
"剧情值": "*",
|
||||
"地区": "美國&台灣&大陸&香港&日本&韓國&法國&英國&德國&泰國&印度&意大利&西班牙&俄羅斯&其他||台灣&韓國&日本&大陸&香港&美國&法國&英國&泰國&其他||大陸&香港&台灣&美國&日本&韓國||大陸&香港&台灣&美國&日本&韓國",
|
||||
"地区值": "*",
|
||||
"年份": "2010-2024",
|
||||
"年份值": "*",
|
||||
"语言": "",
|
||||
"语言值": "*",
|
||||
"字母": "",
|
||||
"字母值": "*",
|
||||
"排序": "时间&人气&评分",
|
||||
"排序值": "time&hits&score"
|
||||
}
|
33
0831/999影视.json
Normal file
33
0831/999影视.json
Normal file
@ -0,0 +1,33 @@
|
||||
{
|
||||
"作者": "🐰兔爷🐇",
|
||||
"站名": "999影视",
|
||||
"编码": "UTF-8",
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"主页url": "https://www.999ys.top",
|
||||
"首页": "200",
|
||||
"起始页": "1",
|
||||
"分类url": "/index.php/vod/show/area/{area}/by/{by}/class/{class}/id/{cateId}/lang/{lang}/letter/{letter}/page/{catePg}/year/{year}.html",
|
||||
"分类": "电影$1#电视剧$2#综艺$3#动漫$4",
|
||||
"数组": "默认--/index.php/vod/detail&&</a||搜索--module-card-item module-item&&</a",
|
||||
"图片": "data-original=\"&&\"",
|
||||
"标题": "默认--title=\"&&\"||搜索--alt=\"&&\"",
|
||||
"副标题": "module-item-note\">&&</div",
|
||||
"链接": "默认--/index.php/vod/detail/id/+/id/&&.html\"+.html||搜索--href=\"&&\"",
|
||||
"影片年代": "/year/*.html\">&&</div",
|
||||
"影片地区": "/area/*.html\">&&</div",
|
||||
"影片类型": "/class/*.html\">&&</div",
|
||||
"状态": "集数:&&</div",
|
||||
"导演": "导演:&&</div",
|
||||
"主演": "主演:&&</div",
|
||||
"简介": "祝您观影愉快!❄冬天❄为您介绍剧情-+line-height: 20px;\">&&</p",
|
||||
"线路数组": "module-tab-item tab-item&&</div",
|
||||
"线路标题": "span>&&</span",
|
||||
"播放数组": "<div class=\"module-play-list-content&&</div",
|
||||
"播放列表": "<a&&</a",
|
||||
"播放标题": "span>&&</span",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"搜索url": "/index.php/vod/search/page/{pg}/wd/{wd}.html",
|
||||
"搜索模式": "1",
|
||||
"筛选": "1",
|
||||
"类型": "动作片$6#喜剧片$7#爱情片$8#科幻片$9#恐怖片$10#战争片$11#剧情片$12||国内剧$13#日韩剧$14#港台剧$15#海外剧$16||空||空"
|
||||
}
|
37
0831/小坝影视.json
Normal file
37
0831/小坝影视.json
Normal file
@ -0,0 +1,37 @@
|
||||
{
|
||||
"作者": "🐰兔爷🐇",
|
||||
"站名": "小坝影视",
|
||||
"编码": "UTF-8",
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"主页url": "http://www.nanxiaoba.com",
|
||||
"首页": "100",
|
||||
"起始页": "1",
|
||||
"分类url": "/type/{cateId}-{class}-{area}-{year}---addtime-{catePg}.html",
|
||||
"分类": "最新电影$1#电视剧$2#动漫$3#邵氏电影$4#短剧$5",
|
||||
"数组": "<li class=\"col-&&</a",
|
||||
"图片": "data-original=\"&&\"",
|
||||
"标题": "alt=\"&&\"",
|
||||
"副标题": "continu\">&&</span",
|
||||
"链接": "href=\"&&\"",
|
||||
"影片年代": "年份:&&</li",
|
||||
"影片地区": "地区:&&</li",
|
||||
"影片类型": "类型:&&</li",
|
||||
"状态": "text-red\">&&<",
|
||||
"导演": "导演:&&</li",
|
||||
"主演": "主演:&&</li",
|
||||
"简介": "祝您观影愉快!-+vod-content\">&&更多精彩",
|
||||
"线路数组": "glyphicon-play-circle&&/a>",
|
||||
"线路标题": "/span>&&<",
|
||||
"播放数组": "<ul class=\"list-unstyled&&</ul",
|
||||
"播放列表": "<li&&</li",
|
||||
"播放标题": ">&&</a",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"跳转播放链接": "var cms_player*\"url\":\"&&\"",
|
||||
"搜索url": "http://www.nanxiaoba.com/search/{wd}/{pg}.html",
|
||||
"搜索模式": "1",
|
||||
"筛选": "1",
|
||||
"剧情": "喜剧&爱情&恐怖&动作&科幻&剧情&战争&警匪&犯罪&动画&奇幻&武侠&冒险&枪战&恐怖||古装&战争&谍战&言情&武侠&罪案&悬疑&网剧&家庭&军旅&都市&偶像&喜剧&青春&农村||空||伦理&喜剧&爱情&恐怖&动作&科幻&剧情&战争&警匪&犯罪&动画&奇幻&武侠&冒险&枪战||女频恋爱&反转爽剧&古装仙侠&年代穿越&脑洞悬疑&现代都市",
|
||||
"剧情值": "*",
|
||||
"地区": "大陆&香港&台湾&美国&韩国&日本&泰国&新加坡&马来西亚&印度&英国&法国&加拿大&西班牙&俄罗斯&其它",
|
||||
"地区值": "*"
|
||||
}
|
65
0831/布卡影院.json
Normal file
65
0831/布卡影院.json
Normal file
@ -0,0 +1,65 @@
|
||||
{
|
||||
"作者": "乐哥/240828/第一版",
|
||||
"站名": "布卡影院",
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"图片代理": "0",
|
||||
"直接播放": "0",
|
||||
"播放请求头": "",
|
||||
"嗅探词": "",
|
||||
"过滤词": "",
|
||||
"主页url": "https://www.gtrgt.com",
|
||||
"首页": "120",
|
||||
"起始页": "1",
|
||||
"分类url": "https://www.gtrgt.com/vodshow/{cateId}-{area}-{by}-{class}-{lang}-{letter}---{catePg}---{year}.html;;mrc",
|
||||
"分类": "伦理$lunlipian#电影$dy#电视剧$dsj#综艺$zy#动漫$dm#体育$tiyu#短剧$duanju",
|
||||
"二次截取": "",
|
||||
"数组": "pic\">&&</li>",
|
||||
"标题": "title=\"&&\"",
|
||||
"图片": "data-original=\"&&\"",
|
||||
"副标题": "+text-overflow\">&&</p>",
|
||||
"链接": "href=\"&&\"",
|
||||
"影片年代": "+发行年份:&&</p>",
|
||||
"影片地区": "+首映地区:&&</p>",
|
||||
"影片类型": "+分类:&&</a>",
|
||||
"状态": "+状态:&&</p>",
|
||||
"导演": "+导演:&&</p>",
|
||||
"主演": "+演员:&&</p>",
|
||||
"简介": "❄冬天❄为您介绍剧情+简介:&&</p>",
|
||||
"线路二次截取": "",
|
||||
"线路数组": "slide ewave-tab active&&/em>",
|
||||
"线路标题": "+>&&<",
|
||||
"播放二次截取": "",
|
||||
"播放数组": "ewave-tab-content&&</ul>",
|
||||
"倒序": "0",
|
||||
"播放列表": "<a&&</li>",
|
||||
"播放标题": "+>&&</a>",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"解析": "",
|
||||
"跳转播放链接": "urlDecode(var player_*url\":\"&&\")",
|
||||
"跳转解析": "",
|
||||
"搜索请求头": "User-Agent$MOBILE_UA",
|
||||
"搜索url": "https://www.gtrgt.com/vodsearch/{wd}----------pg---.html",
|
||||
"搜索模式": "1",
|
||||
"搜索后缀": "",
|
||||
"搜索二次截取": "",
|
||||
"搜索数组": "pic\">&&</a>",
|
||||
"搜索标题": "title=\"&&\"",
|
||||
"搜索图片": "data-original=\"&&\"",
|
||||
"搜索副标题": "text-right\">&&</span>",
|
||||
"搜索链接": "href=\"&&\"",
|
||||
"筛选": "1",
|
||||
"类型": "空||动作片$dz#喜剧片$xj#爱情片$aq#科幻片$kh#恐怖片$kb#剧情片$jq#战争片$zz#纪录片$jilupian#电影解说$dianyingjieshuo||大陆剧$dalu#港台剧$gangtai#美剧$meiju#海外剧$qita#韩国剧$rihan#香港剧$xianggangju#日本剧$ribenju#泰国剧$taiguoju||大陆综艺$daluzongyi#港台综艺$gangtaizongyi#日韩综艺$rihanzongyi#欧美综艺$oumeizongyi||国产动漫$guochandongman#日韩动漫$rihandongman#欧美动漫$oumeidongman#港台动漫$gangtaidongman#海外动漫$haiwaidongman||足球$zuqiu#篮球$lanqiu#网球$wangqiu#斯诺克$sinuoke||空",
|
||||
"剧情": "喜剧&爱情&恐怖&动作&科幻&剧情&战争&警匪&犯罪&动画&奇幻&武侠&冒险&枪战&恐怖&悬疑&惊悚&经典&青春&文艺&微电影&古装&历史&运动&农村&儿童&网络电影",
|
||||
"剧情值": "*",
|
||||
"地区": "大陆&香港&台湾&美国&法国&英国&日本&韩国&德国&泰国&印度&意大利&西班牙&加拿大&其他",
|
||||
"地区值": "*",
|
||||
"年份": "2024&2023&2022&2021&2020&2019&2018&2017&2016&2015&2014&2013&2012&2011&2010",
|
||||
"年份值": "*",
|
||||
"语言": "国语&英语&粤语&闽南语&韩语&日语&法语&德语&其它",
|
||||
"语言值": "*",
|
||||
"字母": "A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&X&Y&Z&0-9",
|
||||
"字母值": "*",
|
||||
"排序": "时间&人气&评分",
|
||||
"排序值": "time&hits&score"
|
||||
}
|
46
0831/理理影院.json
Normal file
46
0831/理理影院.json
Normal file
@ -0,0 +1,46 @@
|
||||
{
|
||||
"作者": "🐰兔爷🐇",
|
||||
"站名": "理理影院",
|
||||
"编码": "UTF-8",
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"主页url": "https://www.liic.cc",
|
||||
"首页": "100",
|
||||
"起始页": "1",
|
||||
"分类url": "/vodshow/{cateId}-{area}-{by}-{class}-{lang}-{letter}---{catePg}---{year}.html",
|
||||
"分类": "电影$1#电视剧$2#综艺$3#动漫$4#短剧$5",
|
||||
"二次截取": "module-list\"&&id=\"page",
|
||||
"数组": "module-item-pic&&module-item\"[替换:module-footer>>module-item]",
|
||||
"图片": "data-src=\"&&\"",
|
||||
"标题": "title=\"&&\"",
|
||||
"副标题": "module-item-text\">&&<",
|
||||
"链接": "href=\"&&\" title",
|
||||
"影片年代": "-----------*.html\">&&</a",
|
||||
"影片地区": "-*----------.html\">&&</a",
|
||||
"影片类型": "---*--------.html\">&&</div",
|
||||
"状态": "集数:&&</div",
|
||||
"导演": "导演:&&</div",
|
||||
"主演": "主演:&&</div",
|
||||
"简介": "祝您观影愉快!❄冬天❄为您介绍剧情-+vod_content\">&&</span",
|
||||
"线路数组": "module-tab-item tab-item&&</div",
|
||||
"线路标题": "span>&&</span",
|
||||
"播放数组": "<div class=\"module-blocklist\"&&</div",
|
||||
"播放列表": "<a&&</a",
|
||||
"播放标题": "span>&&</span",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"跳转播放链接": "var player_*\"url\":\"&&\"",
|
||||
"搜索url": "/vodsearch/{wd}----------{pg}---.html",
|
||||
"搜索模式": "1",
|
||||
"搜索数组": "lazy lazyload\"&&/a>",
|
||||
"搜索图片": "data-src=\"&&\"",
|
||||
"搜索标题": "title=\"&&\"",
|
||||
"搜索副标题": "title=\"*\">&&<",
|
||||
"搜索链接": "href=\"&&\"",
|
||||
"筛选": "1",
|
||||
"类型": "动作片$6#喜剧片$7#爱情片$8#科幻片$9#剧情片$10#悬疑片$11#惊悚片$12#恐怖片$20#犯罪片$21#冒险片$22#战争片$24#记录片$25#动画电影$26||国产剧$13#港台剧$14#日韩剧$15#欧美剧$16#泰国剧$28#海外剧$29||空||空||空",
|
||||
"地区": "大陆&香港&台湾&美国&法国&英国&日本&韩国&德国&泰国&印度&意大利&西班牙&加拿大&其他||大陆&韩国&香港&台湾&日本&美国&泰国&英国&新加坡&其他||大陆&香港&台湾&韩国&日本&欧美||大陆&日本&欧美&香港&台湾&韩国||大陆&韩国&台湾&日本&美国&英国",
|
||||
"地区值": "*",
|
||||
"语言": "国语&英语&粤语&闽南语&韩语&日语&法语&德语&其它||国语&英语&粤语&闽南语&韩语&日语&其它||国语&英语&粤语&闽南语&韩语&日语&其它||国语&英语&粤语&闽南语&韩语&日语&其它||国语&英语&粤语&闽南语&韩语&日语&其它",
|
||||
"语言值": "*",
|
||||
"排序": "时间排序&人气排序&评分排序",
|
||||
"排序值": "time&hits&score"
|
||||
}
|
60
0831/电视剧网.json
Normal file
60
0831/电视剧网.json
Normal file
@ -0,0 +1,60 @@
|
||||
{
|
||||
"作者": "乐哥/240829/第一版",
|
||||
"站名": "电视剧网",
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"图片代理": "0",
|
||||
"直接播放": "0",
|
||||
"播放请求头": "",
|
||||
"嗅探词": ".mp4#.m3u8#.flv",
|
||||
"过滤词": "",
|
||||
"主页url": "https://dianshijuwang.com",
|
||||
"首页": "120",
|
||||
"起始页": "1",
|
||||
"分类url": "https://dianshijuwang.com/vodshow/{cateId}--{by}---{letter}---{catePg}---/;;mrc",
|
||||
"分类": "陆剧&日剧&韩剧&港剧&美剧&台剧&泰剧&短剧&电影&动漫&综艺",
|
||||
"分类值": "luju&riju&hanju&gangju&meiju&tai&taiju&duanju&dianying&dm&zy",
|
||||
"二次截取": "",
|
||||
"数组": "<a&&</div></div></a>",
|
||||
"标题": "alt=\"&&\"",
|
||||
"图片": "data-original=\"&&\"",
|
||||
"副标题": "❄+item-note\">&&</div>",
|
||||
"链接": "href=\"&&\"",
|
||||
"简介": "❄冬天为您介绍剧情❄+<p>&&</p>",
|
||||
"线路二次截取": "",
|
||||
"线路数组": "module-tab-item tab-item&&/small>",
|
||||
"线路标题": "❄冬天推荐❄+>&&</span>+【共+<small>&&<+集】",
|
||||
"播放二次截取": "",
|
||||
"播放数组": "module-play-list\">&&</div>",
|
||||
"倒序": "0",
|
||||
"播放列表": "<a&&/a>",
|
||||
"播放标题": "❄+<span>&&<",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"解析": "",
|
||||
"跳转播放链接": "urlDecode(var player_*url\":\"&&\")",
|
||||
"跳转解析": "",
|
||||
"搜索请求头": "User-Agent$MOBILE_UA",
|
||||
"搜索url": "/index.php/ajax/suggest?mid=1&wd={wd}&page={pg}&limit=30;post;searchword={wd}&searchtype=",
|
||||
"搜索模式": "1",
|
||||
"搜索后缀": "",
|
||||
"搜索二次截取": "",
|
||||
"搜索数组": "lazyload\"&&</a>",
|
||||
"搜索标题": "title=\"&&\"",
|
||||
"搜索图片": "data-original=\"&&\"",
|
||||
"搜索副标题": "❄+text-right\">&&</span>",
|
||||
"搜索链接": "href=\"&&\"",
|
||||
"筛选": "1",
|
||||
"类型": "",
|
||||
"剧情": "喜剧&爱情&恐怖&动作&科幻&剧情&战争&警匪&犯罪&动画&奇幻&武侠&冒险&枪战&恐怖&悬疑&惊悚&经典&青春&文艺&微电影&古装&历史&运动&农村&儿童&网络电影",
|
||||
"剧情值": "*",
|
||||
"地区": "大陆&香港&台湾&美国&法国&英国&日本&韩国&德国&泰国&印度&意大利&西班牙&加拿大&其他",
|
||||
"地区值": "*",
|
||||
"年份": "2024&2023&2022&2021&2020&2019&2018&2017&2016&2015&2014&2013&2012&2011&2010",
|
||||
"年份值": "*",
|
||||
"语言": "国语&英语&粤语&闽南语&韩语&日语&法语&德语&其它",
|
||||
"语言值": "*",
|
||||
"字母": "A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&X&Y&Z&0-9",
|
||||
"字母值": "*",
|
||||
"排序": "时间&人气&评分",
|
||||
"排序值": "time&hits&score"
|
||||
}
|
62
0930/blifun影院.json
Normal file
62
0930/blifun影院.json
Normal file
@ -0,0 +1,62 @@
|
||||
{
|
||||
"作者": "乐哥/240914/",
|
||||
"站名": "blifun影院",
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"图片代理": "0",
|
||||
"直接播放": "0",
|
||||
"播放请求头": "",
|
||||
"主页url": "http://bilfun.cc",
|
||||
"首页": "120",
|
||||
"起始页": "1",
|
||||
"分类url": "http://bilfun.cc/bilfunshow/{cateId}-{area}-{by}-{class}-{lang}-{letter}---{catePg}---{year}.html;;mrc",
|
||||
"分类": "电影$1#剧集$2#综艺$3#动漫$4#短剧$22",
|
||||
"二次截取": "",
|
||||
"数组": "<a&&</div></div></a>",
|
||||
"标题": "title=\"&&\"",
|
||||
"图片": "data-original=\"&&\"",
|
||||
"副标题": "❄+item-note\">&&</div>+item-douban\">&&</div>",
|
||||
"链接": "href=\"&&\"",
|
||||
"影片年代": "上映:&&</div>",
|
||||
"影片地区": "地区:&&</div>",
|
||||
"影片类型": "类型:&&</div>",
|
||||
"状态": "集数:&&</div>",
|
||||
"导演": "❄+导演:&&</div>",
|
||||
"主演": "❄+主演:&&</div>",
|
||||
"简介": "❄冬天为您介绍剧情❄+<p>&&</p>",
|
||||
"线路二次截取": "",
|
||||
"线路数组": "data-dropdown&&</div>",
|
||||
"线路标题": "❄冬天推荐❄+<span>&&<",
|
||||
"播放二次截取": "",
|
||||
"播放数组": "module-play-list\">&&</div>",
|
||||
"倒序": "0",
|
||||
"播放列表": "<a&&/a>",
|
||||
"播放标题": "❄+<span>&&<",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"解析": "",
|
||||
"跳转播放链接": "var player_*\"url\":\"&&\"",
|
||||
"跳转解析": "",
|
||||
"搜索请求头": "User-Agent$MOBILE_UA",
|
||||
"搜索url": "http://bilfun.cc/bilfunsearch/{wd}----------{pg}---.html",
|
||||
"搜索后缀": "",
|
||||
"搜索二次截取": "",
|
||||
"搜索数组": "<a&&</div></div></a>",
|
||||
"搜索标题": "title=\"&&\"",
|
||||
"搜索图片": "data-original=\"&&\"",
|
||||
"搜索副标题": "❄+item-note\">&&</div>+item-douban\">&&</div>",
|
||||
"搜索链接": "href=\"&&\"",
|
||||
"筛选": "1",
|
||||
"类型": "",
|
||||
"剧情": "喜剧&爱情&恐怖&动作&科幻&剧情&战争&警匪&犯罪&动画&奇幻&武侠&冒险&枪战&悬疑&惊悚&经典&青春&文艺&微电影&古装&历史&运动&农村&儿童&网络电影||古装&战争&青春偶像&喜剧&家庭&犯罪&动作&奇幻&剧情&历史&经典&乡村&情景&商战&网剧&其他||选秀&情感&访谈&播报&旅游&音乐&美食&纪实&曲艺&生活&游戏互动&财经&求职||情感&科幻&热血&推理&搞笑&冒险&萝莉&校园&动作&机战&运动&战争&少年&少女&社会&原创&亲子&益智&励志&其他||空",
|
||||
"剧情值": "*",
|
||||
"地区": "大陆&香港&台湾&美国&法国&英国&日本&韩国&德国&泰国&印度&意大利&西班牙&加拿大&其他||内地&韩国&香港&台湾&日本&美国&泰国&英国&新加坡&其他||内地&港台&日韩&欧美||国产&日本&欧美&其他||空",
|
||||
"地区值": "*",
|
||||
"年份": "2010-2024",
|
||||
"年份值": "*",
|
||||
"语言": "国语&英语&粤语&闽南语&韩语&日语&法语&德语&其它||国语&英语&粤语&闽南语&韩语&日语&其它||国语&英语&粤语&闽南语&韩语&日语&其它||国语&英语&粤语&闽南语&韩语&日语&其它||空",
|
||||
"语言值": "*",
|
||||
"字母": "A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&X&Y&Z&0-9",
|
||||
"字母值": "*",
|
||||
"排序": "时间&人气&评分",
|
||||
"排序值": "time&hits&score"
|
||||
}
|
49
0930/xbpq_韩迷TV.json
Normal file
49
0930/xbpq_韩迷TV.json
Normal file
@ -0,0 +1,49 @@
|
||||
{
|
||||
"作者": "小可乐/2409/第一版",
|
||||
"站名": "韩迷TV",
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"图片代理": "0",
|
||||
|
||||
"主页url": "https://www.hmtv8.cc",
|
||||
"首页": "120",
|
||||
"起始页": "1",
|
||||
"分类url": "/{cateId}/page/{catePg};;mrcd0",
|
||||
"分类": "韩影&韩剧&韩综&更新",
|
||||
"分类值": "dianying&hanju&zongyi&new",
|
||||
|
||||
"二次截取": "默认--m-movies clearfix\">&&\"pagination||首页--m-movies clearfix\">&&\"sidebar||搜索--m-movies clearfix\">&&\"pagination",
|
||||
"数组": "默认--<article&&</article>||搜索--<article&&</article>",
|
||||
"标题": "<h2>&&</h2>",
|
||||
"图片": "data-original=\"&&\"",
|
||||
"副标题": "pingfen\">&&</span>+zhuangtai\">&&</span>",
|
||||
"链接": "href=\"&&\"",
|
||||
|
||||
"影片年代": "首播:</strong> &&-",
|
||||
"影片地区": "国家/地区:&&<strong>",
|
||||
"影片类型": "类型:&&<strong>",
|
||||
"状态": "首播:&&)",
|
||||
"导演": "导演:&&<strong>",
|
||||
"主演": "主演:&&<strong>",
|
||||
"简介": "jianjie\">&&</span>",
|
||||
|
||||
"线路数组": "<strong>&&</strong>",
|
||||
"线路标题": "韩迷TV",
|
||||
"跳转数组": "vlink*>&&</a>",
|
||||
"跳转链接": "href=\"&&\"",
|
||||
"播放数组": "tab\"&&</section>",
|
||||
"播放列表": "<a&&/a>",
|
||||
"播放标题": ">&&<",
|
||||
"播放链接": "href=\"&&\"",
|
||||
|
||||
"直接播放": "0",
|
||||
"嗅探词": ".mp4#.m3u8",
|
||||
"跳转播放链接": "vid=\"&&\"",
|
||||
|
||||
"搜索请求头": "User-Agent$MOBILE_UA",
|
||||
"搜索url": "/page/{pg}?s={wd}",
|
||||
"搜索模式": "1",
|
||||
|
||||
"筛选": "1",
|
||||
"类型": "空||剧情$hanju/juqingju#动作$hanju/dongzuoju#古装$hanju/guzhuangju#喜剧$hanju/xiju#奇幻$hanju/qihuanju#悬疑$hanju/xuanyiju#爱情$hanju/aiqingju#惊悚$hanju/jingsongju#犯罪$hanju/fanzuiju||空||空"
|
||||
}
|
22
0930/评书.json
Normal file
22
0930/评书.json
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"主页url": "https://www.psmp3.com",
|
||||
"数组二次截取": "<ul id=\"post_list_box\">&&</ul",
|
||||
"数组": "<li class=\"www_psmp3_com post_list_li\">&&</div>",
|
||||
"图片": "https://bkimg.cdn.bcebos.com/pic/86d6277f9e2f07084e3cb402ee24b899a901f2f3",
|
||||
"标题": "title=\"&&\"",
|
||||
"副标题": ">&&</a",
|
||||
"链接": "href=\"&&\"",
|
||||
"播放二次截取": "autoplay&&;</script>",
|
||||
"播放数组": "\\[&&\\]",
|
||||
"播放列表": "{&&}",
|
||||
"播放链接": "url*\"&&\"",
|
||||
"播放标题": "name*\"&&\"",
|
||||
"播放副标题": "artist*\"&&\"",
|
||||
"线路数组": "评书随身听",
|
||||
"线路标题": "评书随听",
|
||||
"导演": "小米",
|
||||
"主演": "评书明星",
|
||||
"简介": "评书合集",
|
||||
"分类url": "https://www.psmp3.com/{cateId}/{catePg}.html;;av",
|
||||
"分类": "袁阔成$ykc#单田芳$stf#田连元$tly#刘兰芳$llf#连丽如$llr#张少佐$zsz#田战义$tzy"
|
||||
}
|
1294
dongtian.json
Normal file
1294
dongtian.json
Normal file
File diff suppressed because it is too large
Load Diff
1
drpy_libs/cheerio.min.js
vendored
Normal file
1
drpy_libs/cheerio.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
6140
drpy_libs/crypto-hiker.js
Normal file
6140
drpy_libs/crypto-hiker.js
Normal file
File diff suppressed because it is too large
Load Diff
6191
drpy_libs/crypto-js.js
Normal file
6191
drpy_libs/crypto-js.js
Normal file
File diff suppressed because it is too large
Load Diff
3579
drpy_libs/drpy2.js
Normal file
3579
drpy_libs/drpy2.js
Normal file
File diff suppressed because one or more lines are too long
73
drpy_libs/drpy2.min.js
vendored
Normal file
73
drpy_libs/drpy2.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
68
drpy_libs/gbk.js
Normal file
68
drpy_libs/gbk.js
Normal file
File diff suppressed because one or more lines are too long
577
drpy_libs/jinja.js
Normal file
577
drpy_libs/jinja.js
Normal file
@ -0,0 +1,577 @@
|
||||
/*!
|
||||
* Jinja Templating for JavaScript v0.1.8
|
||||
* https://github.com/sstur/jinja-js
|
||||
*
|
||||
* This is a slimmed-down Jinja2 implementation [http://jinja.pocoo.org/]
|
||||
*
|
||||
* In the interest of simplicity, it deviates from Jinja2 as follows:
|
||||
* - Line statements, cycle, super, macro tags and block nesting are not implemented
|
||||
* - auto escapes html by default (the filter is "html" not "e")
|
||||
* - Only "html" and "safe" filters are built in
|
||||
* - Filters are not valid in expressions; `foo|length > 1` is not valid
|
||||
* - Expression Tests (`if num is odd`) not implemented (`is` translates to `==` and `isnot` to `!=`)
|
||||
*
|
||||
* Notes:
|
||||
* - if property is not found, but method '_get' exists, it will be called with the property name (and cached)
|
||||
* - `{% for n in obj %}` iterates the object's keys; get the value with `{% for n in obj %}{{ obj[n] }}{% endfor %}`
|
||||
* - subscript notation `a[0]` takes literals or simple variables but not `a[item.key]`
|
||||
* - `.2` is not a valid number literal; use `0.2`
|
||||
*
|
||||
*/
|
||||
/*global require, exports, module, define */
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jinja = {}));
|
||||
})(this, (function (jinja) {
|
||||
"use strict";
|
||||
var STRINGS = /'(\\.|[^'])*'|"(\\.|[^"'"])*"/g;
|
||||
var IDENTS_AND_NUMS = /([$_a-z][$\w]*)|([+-]?\d+(\.\d+)?)/g;
|
||||
var NUMBER = /^[+-]?\d+(\.\d+)?$/;
|
||||
//non-primitive literals (array and object literals)
|
||||
var NON_PRIMITIVES = /\[[@#~](,[@#~])*\]|\[\]|\{([@i]:[@#~])(,[@i]:[@#~])*\}|\{\}/g;
|
||||
//bare identifiers such as variables and in object literals: {foo: 'value'}
|
||||
var IDENTIFIERS = /[$_a-z][$\w]*/ig;
|
||||
var VARIABLES = /i(\.i|\[[@#i]\])*/g;
|
||||
var ACCESSOR = /(\.i|\[[@#i]\])/g;
|
||||
var OPERATORS = /(===?|!==?|>=?|<=?|&&|\|\||[+\-\*\/%])/g;
|
||||
//extended (english) operators
|
||||
var EOPS = /(^|[^$\w])(and|or|not|is|isnot)([^$\w]|$)/g;
|
||||
var LEADING_SPACE = /^\s+/;
|
||||
var TRAILING_SPACE = /\s+$/;
|
||||
|
||||
var START_TOKEN = /\{\{\{|\{\{|\{%|\{#/;
|
||||
var TAGS = {
|
||||
'{{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}\}/,
|
||||
'{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}/,
|
||||
'{%': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?%\}/,
|
||||
'{#': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?#\}/
|
||||
};
|
||||
|
||||
var delimeters = {
|
||||
'{%': 'directive',
|
||||
'{{': 'output',
|
||||
'{#': 'comment'
|
||||
};
|
||||
|
||||
var operators = {
|
||||
and: '&&',
|
||||
or: '||',
|
||||
not: '!',
|
||||
is: '==',
|
||||
isnot: '!='
|
||||
};
|
||||
|
||||
var constants = {
|
||||
'true': true,
|
||||
'false': false,
|
||||
'null': null
|
||||
};
|
||||
|
||||
function Parser() {
|
||||
this.nest = [];
|
||||
this.compiled = [];
|
||||
this.childBlocks = 0;
|
||||
this.parentBlocks = 0;
|
||||
this.isSilent = false;
|
||||
}
|
||||
|
||||
Parser.prototype.push = function (line) {
|
||||
if (!this.isSilent) {
|
||||
this.compiled.push(line);
|
||||
}
|
||||
};
|
||||
|
||||
Parser.prototype.parse = function (src) {
|
||||
this.tokenize(src);
|
||||
return this.compiled;
|
||||
};
|
||||
|
||||
Parser.prototype.tokenize = function (src) {
|
||||
var lastEnd = 0, parser = this, trimLeading = false;
|
||||
matchAll(src, START_TOKEN, function (open, index, src) {
|
||||
//here we match the rest of the src against a regex for this tag
|
||||
var match = src.slice(index + open.length).match(TAGS[open]);
|
||||
match = (match ? match[0] : '');
|
||||
//here we sub out strings so we don't get false matches
|
||||
var simplified = match.replace(STRINGS, '@');
|
||||
//if we don't have a close tag or there is a nested open tag
|
||||
if (!match || ~simplified.indexOf(open)) {
|
||||
return index + 1;
|
||||
}
|
||||
var inner = match.slice(0, 0 - open.length);
|
||||
//check for white-space collapse syntax
|
||||
if (inner.charAt(0) === '-') var wsCollapseLeft = true;
|
||||
if (inner.slice(-1) === '-') var wsCollapseRight = true;
|
||||
inner = inner.replace(/^-|-$/g, '').trim();
|
||||
//if we're in raw mode and we are not looking at an "endraw" tag, move along
|
||||
if (parser.rawMode && (open + inner) !== '{%endraw') {
|
||||
return index + 1;
|
||||
}
|
||||
var text = src.slice(lastEnd, index);
|
||||
lastEnd = index + open.length + match.length;
|
||||
if (trimLeading) text = trimLeft(text);
|
||||
if (wsCollapseLeft) text = trimRight(text);
|
||||
if (wsCollapseRight) trimLeading = true;
|
||||
if (open === '{{{') {
|
||||
//liquid-style: make {{{x}}} => {{x|safe}}
|
||||
open = '{{';
|
||||
inner += '|safe';
|
||||
}
|
||||
parser.textHandler(text);
|
||||
parser.tokenHandler(open, inner);
|
||||
});
|
||||
var text = src.slice(lastEnd);
|
||||
if (trimLeading) text = trimLeft(text);
|
||||
this.textHandler(text);
|
||||
};
|
||||
|
||||
Parser.prototype.textHandler = function (text) {
|
||||
this.push('write(' + JSON.stringify(text) + ');');
|
||||
};
|
||||
|
||||
Parser.prototype.tokenHandler = function (open, inner) {
|
||||
var type = delimeters[open];
|
||||
if (type === 'directive') {
|
||||
this.compileTag(inner);
|
||||
} else if (type === 'output') {
|
||||
var extracted = this.extractEnt(inner, STRINGS, '@');
|
||||
//replace || operators with ~
|
||||
extracted.src = extracted.src.replace(/\|\|/g, '~').split('|');
|
||||
//put back || operators
|
||||
extracted.src = extracted.src.map(function (part) {
|
||||
return part.split('~').join('||');
|
||||
});
|
||||
var parts = this.injectEnt(extracted, '@');
|
||||
if (parts.length > 1) {
|
||||
var filters = parts.slice(1).map(this.parseFilter.bind(this));
|
||||
this.push('filter(' + this.parseExpr(parts[0]) + ',' + filters.join(',') + ');');
|
||||
} else {
|
||||
this.push('filter(' + this.parseExpr(parts[0]) + ');');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Parser.prototype.compileTag = function (str) {
|
||||
var directive = str.split(' ')[0];
|
||||
var handler = tagHandlers[directive];
|
||||
if (!handler) {
|
||||
throw new Error('Invalid tag: ' + str);
|
||||
}
|
||||
handler.call(this, str.slice(directive.length).trim());
|
||||
};
|
||||
|
||||
Parser.prototype.parseFilter = function (src) {
|
||||
src = src.trim();
|
||||
var match = src.match(/[:(]/);
|
||||
var i = match ? match.index : -1;
|
||||
if (i < 0) return JSON.stringify([src]);
|
||||
var name = src.slice(0, i);
|
||||
var args = src.charAt(i) === ':' ? src.slice(i + 1) : src.slice(i + 1, -1);
|
||||
args = this.parseExpr(args, {terms: true});
|
||||
return '[' + JSON.stringify(name) + ',' + args + ']';
|
||||
};
|
||||
|
||||
Parser.prototype.extractEnt = function (src, regex, placeholder) {
|
||||
var subs = [], isFunc = typeof placeholder == 'function';
|
||||
src = src.replace(regex, function (str) {
|
||||
var replacement = isFunc ? placeholder(str) : placeholder;
|
||||
if (replacement) {
|
||||
subs.push(str);
|
||||
return replacement;
|
||||
}
|
||||
return str;
|
||||
});
|
||||
return {src: src, subs: subs};
|
||||
};
|
||||
|
||||
Parser.prototype.injectEnt = function (extracted, placeholder) {
|
||||
var src = extracted.src, subs = extracted.subs, isArr = Array.isArray(src);
|
||||
var arr = (isArr) ? src : [src];
|
||||
var re = new RegExp('[' + placeholder + ']', 'g'), i = 0;
|
||||
arr.forEach(function (src, index) {
|
||||
arr[index] = src.replace(re, function () {
|
||||
return subs[i++];
|
||||
});
|
||||
});
|
||||
return isArr ? arr : arr[0];
|
||||
};
|
||||
|
||||
//replace complex literals without mistaking subscript notation with array literals
|
||||
Parser.prototype.replaceComplex = function (s) {
|
||||
var parsed = this.extractEnt(s, /i(\.i|\[[@#i]\])+/g, 'v');
|
||||
parsed.src = parsed.src.replace(NON_PRIMITIVES, '~');
|
||||
return this.injectEnt(parsed, 'v');
|
||||
};
|
||||
|
||||
//parse expression containing literals (including objects/arrays) and variables (including dot and subscript notation)
|
||||
//valid expressions: `a + 1 > b.c or c == null`, `a and b[1] != c`, `(a < b) or (c < d and e)`, 'a || [1]`
|
||||
Parser.prototype.parseExpr = function (src, opts) {
|
||||
opts = opts || {};
|
||||
//extract string literals -> @
|
||||
var parsed1 = this.extractEnt(src, STRINGS, '@');
|
||||
//note: this will catch {not: 1} and a.is; could we replace temporarily and then check adjacent chars?
|
||||
parsed1.src = parsed1.src.replace(EOPS, function (s, before, op, after) {
|
||||
return (op in operators) ? before + operators[op] + after : s;
|
||||
});
|
||||
//sub out non-string literals (numbers/true/false/null) -> #
|
||||
// the distinction is necessary because @ can be object identifiers, # cannot
|
||||
var parsed2 = this.extractEnt(parsed1.src, IDENTS_AND_NUMS, function (s) {
|
||||
return (s in constants || NUMBER.test(s)) ? '#' : null;
|
||||
});
|
||||
//sub out object/variable identifiers -> i
|
||||
var parsed3 = this.extractEnt(parsed2.src, IDENTIFIERS, 'i');
|
||||
//remove white-space
|
||||
parsed3.src = parsed3.src.replace(/\s+/g, '');
|
||||
|
||||
//the rest of this is simply to boil the expression down and check validity
|
||||
var simplified = parsed3.src;
|
||||
//sub out complex literals (objects/arrays) -> ~
|
||||
// the distinction is necessary because @ and # can be subscripts but ~ cannot
|
||||
while (simplified !== (simplified = this.replaceComplex(simplified))) ;
|
||||
//now @ represents strings, # represents other primitives and ~ represents non-primitives
|
||||
//replace complex variables (those with dot/subscript accessors) -> v
|
||||
while (simplified !== (simplified = simplified.replace(/i(\.i|\[[@#i]\])+/, 'v'))) ;
|
||||
//empty subscript or complex variables in subscript, are not permitted
|
||||
simplified = simplified.replace(/[iv]\[v?\]/g, 'x');
|
||||
//sub in "i" for @ and # and ~ and v (now "i" represents all literals, variables and identifiers)
|
||||
simplified = simplified.replace(/[@#~v]/g, 'i');
|
||||
//sub out operators
|
||||
simplified = simplified.replace(OPERATORS, '%');
|
||||
//allow 'not' unary operator
|
||||
simplified = simplified.replace(/!+[i]/g, 'i');
|
||||
var terms = opts.terms ? simplified.split(',') : [simplified];
|
||||
terms.forEach(function (term) {
|
||||
//simplify logical grouping
|
||||
while (term !== (term = term.replace(/\(i(%i)*\)/g, 'i'))) ;
|
||||
if (!term.match(/^i(%i)*/)) {
|
||||
throw new Error('Invalid expression: ' + src + " " + term);
|
||||
}
|
||||
});
|
||||
parsed3.src = parsed3.src.replace(VARIABLES, this.parseVar.bind(this));
|
||||
parsed2.src = this.injectEnt(parsed3, 'i');
|
||||
parsed1.src = this.injectEnt(parsed2, '#');
|
||||
return this.injectEnt(parsed1, '@');
|
||||
};
|
||||
|
||||
Parser.prototype.parseVar = function (src) {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
var str = args.pop(), index = args.pop();
|
||||
//quote bare object identifiers (might be a reserved word like {while: 1})
|
||||
if (src === 'i' && str.charAt(index + 1) === ':') {
|
||||
return '"i"';
|
||||
}
|
||||
var parts = ['"i"'];
|
||||
src.replace(ACCESSOR, function (part) {
|
||||
if (part === '.i') {
|
||||
parts.push('"i"');
|
||||
} else if (part === '[i]') {
|
||||
parts.push('get("i")');
|
||||
} else {
|
||||
parts.push(part.slice(1, -1));
|
||||
}
|
||||
});
|
||||
return 'get(' + parts.join(',') + ')';
|
||||
};
|
||||
|
||||
//escapes a name to be used as a javascript identifier
|
||||
Parser.prototype.escName = function (str) {
|
||||
return str.replace(/\W/g, function (s) {
|
||||
return '$' + s.charCodeAt(0).toString(16);
|
||||
});
|
||||
};
|
||||
|
||||
Parser.prototype.parseQuoted = function (str) {
|
||||
if (str.charAt(0) === "'") {
|
||||
str = str.slice(1, -1).replace(/\\.|"/, function (s) {
|
||||
if (s === "\\'") return "'";
|
||||
return s.charAt(0) === '\\' ? s : ('\\' + s);
|
||||
});
|
||||
str = '"' + str + '"';
|
||||
}
|
||||
//todo: try/catch or deal with invalid characters (linebreaks, control characters)
|
||||
return JSON.parse(str);
|
||||
};
|
||||
|
||||
|
||||
//the context 'this' inside tagHandlers is the parser instance
|
||||
var tagHandlers = {
|
||||
'if': function (expr) {
|
||||
this.push('if (' + this.parseExpr(expr) + ') {');
|
||||
this.nest.unshift('if');
|
||||
},
|
||||
'else': function () {
|
||||
if (this.nest[0] === 'for') {
|
||||
this.push('}, function() {');
|
||||
} else {
|
||||
this.push('} else {');
|
||||
}
|
||||
},
|
||||
'elseif': function (expr) {
|
||||
this.push('} else if (' + this.parseExpr(expr) + ') {');
|
||||
},
|
||||
'endif': function () {
|
||||
this.nest.shift();
|
||||
this.push('}');
|
||||
},
|
||||
'for': function (str) {
|
||||
var i = str.indexOf(' in ');
|
||||
var name = str.slice(0, i).trim();
|
||||
var expr = str.slice(i + 4).trim();
|
||||
this.push('each(' + this.parseExpr(expr) + ',' + JSON.stringify(name) + ',function() {');
|
||||
this.nest.unshift('for');
|
||||
},
|
||||
'endfor': function () {
|
||||
this.nest.shift();
|
||||
this.push('});');
|
||||
},
|
||||
'raw': function () {
|
||||
this.rawMode = true;
|
||||
},
|
||||
'endraw': function () {
|
||||
this.rawMode = false;
|
||||
},
|
||||
'set': function (stmt) {
|
||||
var i = stmt.indexOf('=');
|
||||
var name = stmt.slice(0, i).trim();
|
||||
var expr = stmt.slice(i + 1).trim();
|
||||
this.push('set(' + JSON.stringify(name) + ',' + this.parseExpr(expr) + ');');
|
||||
},
|
||||
'block': function (name) {
|
||||
if (this.isParent) {
|
||||
++this.parentBlocks;
|
||||
var blockName = 'block_' + (this.escName(name) || this.parentBlocks);
|
||||
this.push('block(typeof ' + blockName + ' == "function" ? ' + blockName + ' : function() {');
|
||||
} else if (this.hasParent) {
|
||||
this.isSilent = false;
|
||||
++this.childBlocks;
|
||||
blockName = 'block_' + (this.escName(name) || this.childBlocks);
|
||||
this.push('function ' + blockName + '() {');
|
||||
}
|
||||
this.nest.unshift('block');
|
||||
},
|
||||
'endblock': function () {
|
||||
this.nest.shift();
|
||||
if (this.isParent) {
|
||||
this.push('});');
|
||||
} else if (this.hasParent) {
|
||||
this.push('}');
|
||||
this.isSilent = true;
|
||||
}
|
||||
},
|
||||
'extends': function (name) {
|
||||
name = this.parseQuoted(name);
|
||||
var parentSrc = this.readTemplateFile(name);
|
||||
this.isParent = true;
|
||||
this.tokenize(parentSrc);
|
||||
this.isParent = false;
|
||||
this.hasParent = true;
|
||||
//silence output until we enter a child block
|
||||
this.isSilent = true;
|
||||
},
|
||||
'include': function (name) {
|
||||
name = this.parseQuoted(name);
|
||||
var incSrc = this.readTemplateFile(name);
|
||||
this.isInclude = true;
|
||||
this.tokenize(incSrc);
|
||||
this.isInclude = false;
|
||||
}
|
||||
};
|
||||
|
||||
//liquid style
|
||||
tagHandlers.assign = tagHandlers.set;
|
||||
//python/django style
|
||||
tagHandlers.elif = tagHandlers.elseif;
|
||||
|
||||
var getRuntime = function runtime(data, opts) {
|
||||
var defaults = {autoEscape: 'toJson'};
|
||||
var _toString = Object.prototype.toString;
|
||||
var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
||||
var getKeys = Object.keys || function (obj) {
|
||||
var keys = [];
|
||||
for (var n in obj) if (_hasOwnProperty.call(obj, n)) keys.push(n);
|
||||
return keys;
|
||||
};
|
||||
var isArray = Array.isArray || function (obj) {
|
||||
return _toString.call(obj) === '[object Array]';
|
||||
};
|
||||
var create = Object.create || function (obj) {
|
||||
function F() {
|
||||
}
|
||||
|
||||
F.prototype = obj;
|
||||
return new F();
|
||||
};
|
||||
var toString = function (val) {
|
||||
if (val == null) return '';
|
||||
return (typeof val.toString == 'function') ? val.toString() : _toString.call(val);
|
||||
};
|
||||
var extend = function (dest, src) {
|
||||
var keys = getKeys(src);
|
||||
for (var i = 0, len = keys.length; i < len; i++) {
|
||||
var key = keys[i];
|
||||
dest[key] = src[key];
|
||||
}
|
||||
return dest;
|
||||
};
|
||||
//get a value, lexically, starting in current context; a.b -> get("a","b")
|
||||
var get = function () {
|
||||
var val, n = arguments[0], c = stack.length;
|
||||
while (c--) {
|
||||
val = stack[c][n];
|
||||
if (typeof val != 'undefined') break;
|
||||
}
|
||||
for (var i = 1, len = arguments.length; i < len; i++) {
|
||||
if (val == null) continue;
|
||||
n = arguments[i];
|
||||
val = (_hasOwnProperty.call(val, n)) ? val[n] : (typeof val._get == 'function' ? (val[n] = val._get(n)) : null);
|
||||
}
|
||||
return (val == null) ? '' : val;
|
||||
};
|
||||
var set = function (n, val) {
|
||||
stack[stack.length - 1][n] = val;
|
||||
};
|
||||
var push = function (ctx) {
|
||||
stack.push(ctx || {});
|
||||
};
|
||||
var pop = function () {
|
||||
stack.pop();
|
||||
};
|
||||
var write = function (str) {
|
||||
output.push(str);
|
||||
};
|
||||
var filter = function (val) {
|
||||
for (var i = 1, len = arguments.length; i < len; i++) {
|
||||
var arr = arguments[i], name = arr[0], filter = filters[name];
|
||||
if (filter) {
|
||||
arr[0] = val;
|
||||
//now arr looks like [val, arg1, arg2]
|
||||
val = filter.apply(data, arr);
|
||||
} else {
|
||||
throw new Error('Invalid filter: ' + name);
|
||||
}
|
||||
}
|
||||
if (opts.autoEscape && name !== opts.autoEscape && name !== 'safe') {
|
||||
//auto escape if not explicitly safe or already escaped
|
||||
val = filters[opts.autoEscape].call(data, val);
|
||||
}
|
||||
output.push(val);
|
||||
};
|
||||
var each = function (obj, loopvar, fn1, fn2) {
|
||||
if (obj == null) return;
|
||||
var arr = isArray(obj) ? obj : getKeys(obj), len = arr.length;
|
||||
var ctx = {loop: {length: len, first: arr[0], last: arr[len - 1]}};
|
||||
push(ctx);
|
||||
for (var i = 0; i < len; i++) {
|
||||
extend(ctx.loop, {index: i + 1, index0: i});
|
||||
fn1(ctx[loopvar] = arr[i]);
|
||||
}
|
||||
if (len === 0 && fn2) fn2();
|
||||
pop();
|
||||
};
|
||||
var block = function (fn) {
|
||||
push();
|
||||
fn();
|
||||
pop();
|
||||
};
|
||||
var render = function () {
|
||||
return output.join('');
|
||||
};
|
||||
data = data || {};
|
||||
opts = extend(defaults, opts || {});
|
||||
var filters = extend({
|
||||
html: function (val) {
|
||||
return toString(val)
|
||||
.split('&').join('&')
|
||||
.split('<').join('<')
|
||||
.split('>').join('>')
|
||||
.split('"').join('"');
|
||||
},
|
||||
safe: function (val) {
|
||||
return val;
|
||||
},
|
||||
toJson: function (val) {
|
||||
if (typeof val === 'object') {
|
||||
return JSON.stringify(val);
|
||||
}
|
||||
return toString(val);
|
||||
}
|
||||
}, opts.filters || {});
|
||||
var stack = [create(data || {})], output = [];
|
||||
return {
|
||||
get: get,
|
||||
set: set,
|
||||
push: push,
|
||||
pop: pop,
|
||||
write: write,
|
||||
filter: filter,
|
||||
each: each,
|
||||
block: block,
|
||||
render: render
|
||||
};
|
||||
};
|
||||
|
||||
var runtime;
|
||||
|
||||
jinja.compile = function (markup, opts) {
|
||||
opts = opts || {};
|
||||
var parser = new Parser();
|
||||
parser.readTemplateFile = this.readTemplateFile;
|
||||
var code = [];
|
||||
code.push('function render($) {');
|
||||
code.push('var get = $.get, set = $.set, push = $.push, pop = $.pop, write = $.write, filter = $.filter, each = $.each, block = $.block;');
|
||||
code.push.apply(code, parser.parse(markup));
|
||||
code.push('return $.render();');
|
||||
code.push('}');
|
||||
code = code.join('\n');
|
||||
if (opts.runtime === false) {
|
||||
var fn = new Function('data', 'options', 'return (' + code + ')(runtime(data, options))');
|
||||
} else {
|
||||
runtime = runtime || (runtime = getRuntime.toString());
|
||||
fn = new Function('data', 'options', 'return (' + code + ')((' + runtime + ')(data, options))');
|
||||
}
|
||||
return {render: fn};
|
||||
};
|
||||
|
||||
jinja.render = function (markup, data, opts) {
|
||||
var tmpl = jinja.compile(markup);
|
||||
return tmpl.render(data, opts);
|
||||
};
|
||||
|
||||
jinja.templateFiles = [];
|
||||
|
||||
jinja.readTemplateFile = function (name) {
|
||||
var templateFiles = this.templateFiles || [];
|
||||
var templateFile = templateFiles[name];
|
||||
if (templateFile == null) {
|
||||
throw new Error('Template file not found: ' + name);
|
||||
}
|
||||
return templateFile;
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
* Helpers
|
||||
*/
|
||||
|
||||
function trimLeft(str) {
|
||||
return str.replace(LEADING_SPACE, '');
|
||||
}
|
||||
|
||||
function trimRight(str) {
|
||||
return str.replace(TRAILING_SPACE, '');
|
||||
}
|
||||
|
||||
function matchAll(str, reg, fn) {
|
||||
//copy as global
|
||||
reg = new RegExp(reg.source, 'g' + (reg.ignoreCase ? 'i' : '') + (reg.multiline ? 'm' : ''));
|
||||
var match;
|
||||
while ((match = reg.exec(str))) {
|
||||
var result = fn(match[0], match.index, str);
|
||||
if (typeof result == 'number') {
|
||||
reg.lastIndex = result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}));
|
265
drpy_libs/jsencrypt.js
Normal file
265
drpy_libs/jsencrypt.js
Normal file
File diff suppressed because one or more lines are too long
1737
drpy_libs/json5.js
Normal file
1737
drpy_libs/json5.js
Normal file
File diff suppressed because one or more lines are too long
2
drpy_libs/node-rsa.js
Normal file
2
drpy_libs/node-rsa.js
Normal file
File diff suppressed because one or more lines are too long
2
drpy_libs/pako.min.js
vendored
Normal file
2
drpy_libs/pako.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
412
drpy_libs/模板.js
Normal file
412
drpy_libs/模板.js
Normal file
@ -0,0 +1,412 @@
|
||||
if (typeof Object.assign !== 'function') {
|
||||
Object.assign = function () {
|
||||
let target = arguments[0];
|
||||
for (let i = 1; i < arguments.length; i++) {
|
||||
let source = arguments[i];
|
||||
for (let key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return target;
|
||||
};
|
||||
}
|
||||
|
||||
// 通用免嗅探播放
|
||||
let common_lazy = `js:
|
||||
let html = request(input);
|
||||
let hconf = html.match(/r player_.*?=(.*?)</)[1];
|
||||
let json = JSON5.parse(hconf);
|
||||
let url = json.url;
|
||||
if (json.encrypt == '1') {
|
||||
url = unescape(url);
|
||||
} else if (json.encrypt == '2') {
|
||||
url = unescape(base64Decode(url));
|
||||
}
|
||||
if (/\\.(m3u8|mp4|m4a|mp3)/.test(url)) {
|
||||
input = {
|
||||
parse: 0,
|
||||
jx: 0,
|
||||
url: url,
|
||||
};
|
||||
} else {
|
||||
input;
|
||||
}`;
|
||||
// 默认嗅探播放
|
||||
|
||||
let def_lazy = `js:
|
||||
input = { parse: 1, url: input, js: '' };`;
|
||||
// 采集站播放
|
||||
|
||||
let cj_lazy = `js:
|
||||
if (/\\.(m3u8|mp4)/.test(input)) {
|
||||
input = { parse: 0, url: input };
|
||||
} else {
|
||||
if (rule.parse_url.startsWith('json:')) {
|
||||
let purl = rule.parse_url.replace('json:', '') + input;
|
||||
let html = request(purl);
|
||||
let json = JSON.parse(html);
|
||||
if (json.url) {
|
||||
input = { parse: 0, url: json.url };
|
||||
}
|
||||
} else {
|
||||
input = rule.parse_url + input;
|
||||
}
|
||||
}`;
|
||||
|
||||
function getMubans() {
|
||||
const mubanDict = { // 模板字典
|
||||
mx: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---/',
|
||||
searchUrl: '/vodsearch/**----------fypage---/',
|
||||
class_parse: '.top_nav li;a&&Text;a&&href;.*/(.*?)/',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true,
|
||||
推荐: '.cbox_list;*;*;*;*;*',
|
||||
一级: 'ul.vodlist li;a&&title;a&&data-original;.pic_text&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h2&&Text;.content_detail:eq(1)&&li&&a:eq(2)&&Text',
|
||||
img: '.vodlist_thumb&&data-original',
|
||||
desc: '.content_detail:eq(1)&&li:eq(1)&&Text;.content_detail:eq(1)&&li&&a&&Text;.content_detail:eq(1)&&li&&a:eq(1)&&Text;.content_detail:eq(1)&&li:eq(2)&&Text;.content_detail:eq(1)&&li:eq(3)&&Text',
|
||||
content: '.content_desc&&span&&Text',
|
||||
tabs: '.play_source_tab&&a',
|
||||
lists: '.content_playlist:eq(#id) li',
|
||||
},
|
||||
搜索: '*',
|
||||
},
|
||||
mxpro: {
|
||||
title: '',
|
||||
host: '', // homeUrl:'/',
|
||||
url: '/vodshow/fyclass--------fypage---.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.navbar-items li:gt(0):lt(10);a&&Text;a&&href;/(\\d+)',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.module-info-tag-link:eq(-1)&&Text',
|
||||
img: '.lazyload&&data-original||data-src||src',
|
||||
desc: '.module-info-item:eq(-2)&&Text;.module-info-tag-link&&Text;.module-info-tag-link:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(1)&&Text',
|
||||
content: '.module-info-introduction&&Text',
|
||||
tabs: '.module-tab-item',
|
||||
lists: '.module-play-list:eq(#id) a',
|
||||
tab_text: 'div--small&&Text',
|
||||
},
|
||||
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
|
||||
}, mxone5: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/show/fyclass--------fypage---.html',
|
||||
searchUrl: '/search/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?)\.html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.tag-link&&Text',
|
||||
img: '.module-item-pic&&img&&data-src',
|
||||
desc: '.video-info-items:eq(3)&&Text;.tag-link:eq(2)&&Text;.tag-link:eq(1)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text',
|
||||
content: '.vod_content&&Text',
|
||||
tabs: '.module-tab-item',
|
||||
lists: '.module-player-list:eq(#id)&&.scroll-content&&a',
|
||||
tab_text: 'div--small&&Text',
|
||||
},
|
||||
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
|
||||
}, 首图: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---/',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.myui-content__detail .title--span&&Text;.myui-content__detail p.data:eq(3)&&Text',
|
||||
img: '.myui-content__thumb .lazyload&&data-original',
|
||||
desc: '.myui-content__detail p.otherbox&&Text;.year&&Text;.myui-content__detail p.data:eq(4)&&Text;.myui-content__detail p.data:eq(2)&&Text;.myui-content__detail p.data:eq(0)&&Text',
|
||||
content: '.content&&Text',
|
||||
tabs: '.myui-panel__head&&li',
|
||||
// tabs: '.nav-tabs&&li',
|
||||
lists: '.myui-content__list:eq(#id) li',
|
||||
},
|
||||
搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
|
||||
}, 首图2: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/list/fyclass-fypage.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA', // "Cookie": ""
|
||||
},
|
||||
class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
|
||||
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.stui-content__detail .title&&Text;.stui-content__detail&&p:eq(-2)&&a&&Text',
|
||||
title1: '.stui-content__detail .title&&Text;.stui-content__detail&&p&&Text',
|
||||
img: '.stui-content__thumb .lazyload&&data-original',
|
||||
desc: '.stui-content__detail p&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(2)&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text;.stui-content__detail p:eq(1)&&Text',
|
||||
desc1: '.stui-content__detail p:eq(4)&&Text;;;.stui-content__detail p:eq(1)&&Text',
|
||||
content: '.detail&&Text',
|
||||
tabs: '.stui-pannel__head h3',
|
||||
tabs1: '.stui-vodlist__head h3',
|
||||
lists: '.stui-content__playlist:eq(#id) li',
|
||||
},
|
||||
搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
|
||||
}, 默认: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '',
|
||||
searchUrl: '',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
filter: '',
|
||||
filter_url: '',
|
||||
filter_def: {},
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: '#side-menu li;a&&Text;a&&href;/(.*?)\.html',
|
||||
cate_exclude: '',
|
||||
play_parse: true,
|
||||
lazy: def_lazy,
|
||||
double: true,
|
||||
推荐: '列表1;列表2;标题;图片;描述;链接;详情',
|
||||
一级: '列表;标题;图片;描述;链接;详情',
|
||||
二级: {
|
||||
title: 'vod_name;vod_type',
|
||||
img: '图片链接',
|
||||
desc: '主要信息;年代;地区;演员;导演',
|
||||
content: '简介',
|
||||
tabs: '',
|
||||
lists: 'xx:eq(#id)&&a',
|
||||
tab_text: 'body&&Text',
|
||||
list_text: 'body&&Text',
|
||||
list_url: 'a&&href',
|
||||
},
|
||||
搜索: '列表;标题;图片;描述;链接;详情',
|
||||
}, vfed: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA',
|
||||
},
|
||||
class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text',
|
||||
img: '.fed-list-info&&a&&data-original',
|
||||
desc: '.fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text',
|
||||
content: '.fed-part-esan&&Text',
|
||||
tabs: '.fed-drop-boxs&&.fed-part-rows&&li',
|
||||
lists: '.fed-play-item:eq(#id)&&ul:eq(1)&&li',
|
||||
},
|
||||
搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
|
||||
}, 海螺3: {
|
||||
title: '',
|
||||
host: '',
|
||||
searchUrl: '/v_search/**----------fypage---.html',
|
||||
url: '/vod_____show/fyclass--------fypage---.html',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
|
||||
cate_exclude: '明星|专题|最新|排行',
|
||||
limit: 40,
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
double: true,
|
||||
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.hl-dc-title&&Text;.hl-dc-content&&li:eq(6)&&Text',
|
||||
img: '.hl-lazy&&data-original',
|
||||
desc: '.hl-dc-content&&li:eq(10)&&Text;.hl-dc-content&&li:eq(4)&&Text;.hl-dc-content&&li:eq(5)&&Text;.hl-dc-content&&li:eq(2)&&Text;.hl-dc-content&&li:eq(3)&&Text',
|
||||
content: '.hl-content-text&&Text',
|
||||
tabs: '.hl-tabs&&a',
|
||||
tab_text: 'a--span&&Text',
|
||||
lists: '.hl-plays-list:eq(#id)&&li',
|
||||
},
|
||||
搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
}, 海螺2: {
|
||||
title: '',
|
||||
host: '',
|
||||
searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage/',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
|
||||
limit: 40,
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
double: true,
|
||||
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
|
||||
一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h2&&Text;.deployment&&Text',
|
||||
img: '.lazy&&data-original',
|
||||
desc: '.deployment&&Text',
|
||||
content: '.ec-show&&Text',
|
||||
tabs: '#tag&&a',
|
||||
lists: '.play_list_box:eq(#id)&&li',
|
||||
},
|
||||
搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
}, 短视: {
|
||||
title: '',
|
||||
host: '', // homeUrl:'/',
|
||||
url: '/channel/fyclass-fypage.html',
|
||||
searchUrl: '/search.html?wd=**',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
|
||||
cate_exclude: '解析|动态',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.content-rt&&p:eq(0)&&Text',
|
||||
img: '.img&&img&&data-src',
|
||||
desc: '.content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text',
|
||||
content: '.zkjj_a&&Text',
|
||||
tabs: '.py-tabs&&option',
|
||||
lists: '.player:eq(#id) li',
|
||||
},
|
||||
搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
|
||||
}, 短视2: {
|
||||
title: '',
|
||||
host: '',
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&3&4',
|
||||
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
headers: {'User-Agent': 'MOBILE_UA'},
|
||||
url: '/index.php/api/vod#type=fyclass&page=fypage',
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
filter_url: '',
|
||||
filter: {},
|
||||
filter_def: {},
|
||||
detailUrl: '/index.php/vod/detail/id/fyid.html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
推荐: '.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
|
||||
一级: 'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
|
||||
二级: {
|
||||
title: '.slide-info-title&&Text;.slide-info:eq(2)--strong&&Text',
|
||||
img: '.detail-pic&&data-original',
|
||||
desc: '.slide-info-remarks&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(1)--strong&&Text;.info-parameter&&ul&&li:eq(3)&&Text',
|
||||
content: '#height_limit&&Text',
|
||||
tabs: '.anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a',
|
||||
tab_text: 'a--span&&Text',
|
||||
lists: '.anthology-list-box:eq(#id) li',
|
||||
},
|
||||
搜索: 'json:list;name;pic;;id',
|
||||
}, 采集1: {
|
||||
title: '',
|
||||
host: '',
|
||||
homeTid: '13',
|
||||
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
|
||||
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
|
||||
searchUrl: '/api.php/provide/vod/?wd=**&pg=fypage',
|
||||
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
|
||||
headers: {'User-Agent': 'MOBILE_UA'},
|
||||
timeout: 5000, // class_name: '电影&电视剧&综艺&动漫',
|
||||
// class_url: '1&2&3&4',
|
||||
// class_parse:'js:let html=request(input);input=JSON.parse(html).class;',
|
||||
class_parse: 'json:class;',
|
||||
limit: 20,
|
||||
multi: 1,
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 1,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
lazy: cj_lazy,
|
||||
推荐: '*',
|
||||
一级: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
|
||||
二级: `js:
|
||||
let html=request(input);
|
||||
html=JSON.parse(html);
|
||||
let data=html.list;
|
||||
VOD=data[0];`,
|
||||
搜索: '*',
|
||||
},
|
||||
};
|
||||
return JSON.parse(JSON.stringify(mubanDict));
|
||||
}
|
||||
|
||||
var mubanDict = getMubans();
|
||||
var muban = getMubans();
|
||||
export default {muban, getMubans};
|
377
drpy_libs/模板老.js
Normal file
377
drpy_libs/模板老.js
Normal file
@ -0,0 +1,377 @@
|
||||
if (typeof Object.assign != 'function') {
|
||||
Object.assign = function () {
|
||||
let target = arguments[0];
|
||||
for (let i = 1; i < arguments.length; i++) {
|
||||
let source = arguments[i];
|
||||
for (let key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return target;
|
||||
};
|
||||
}
|
||||
|
||||
function getMubans() {
|
||||
var mubanDict = { // 模板字典
|
||||
mx: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---/',
|
||||
searchUrl: '/vodsearch/**----------fypage---/',
|
||||
class_parse: '.top_nav li;a&&Text;a&&href;.*/(.*?)/',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.cbox_list;*;*;*;*;*',
|
||||
double: true,
|
||||
一级: 'ul.vodlist li;a&&title;a&&data-original;.pic_text&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h2&&Text;.detail_list&&ul:eq(1)&&li&&a:eq(2)&&Text',
|
||||
img: '.vodlist_thumb&&data-original',
|
||||
desc: '.content_detail&&li:eq(1)&&Text;.detail_list&&ul:eq(1)&&li&&a&&Text;.detail_list&&ul:eq(1)&&li&&a:eq(1)&&Text;.detail_list&&ul:eq(1)&&li:eq(2)&&Text;.detail_list&&ul:eq(1)&&li:eq(3)&&Text',
|
||||
content: '.content_desc&&span&&Text',
|
||||
tabs: '.play_source_tab&&a',
|
||||
lists: '.content_playlist:eq(#id) li',
|
||||
},
|
||||
搜索: '*',
|
||||
},
|
||||
mxpro: {
|
||||
title: '',
|
||||
host: '', // homeUrl:'/',
|
||||
url: '/vodshow/fyclass--------fypage---.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.module-info-tag&&Text",
|
||||
"img": ".lazyload&&data-original",
|
||||
"desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text",
|
||||
"content": ".module-info-introduction&&Text",
|
||||
"tabs": ".module-tab-item",
|
||||
"lists": ".module-play-list:eq(#id) a"
|
||||
},
|
||||
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
|
||||
}, mxone5: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/show/fyclass--------fypage---.html',
|
||||
searchUrl: '/search/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.tag-link&&Text",
|
||||
"img": ".module-item-pic&&img&&data-src",
|
||||
"desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text",
|
||||
"content": ".vod_content&&Text",
|
||||
"tabs": ".module-tab-item",
|
||||
"lists": ".module-player-list:eq(#id)&&.scroll-content&&a"
|
||||
},
|
||||
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
|
||||
}, 首图: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---/',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
"title": ".myui-content__detail .title&&Text;.myui-content__detail p:eq(-2)&&Text",
|
||||
"img": ".myui-content__thumb .lazyload&&data-original",
|
||||
"desc": ".myui-content__detail p:eq(0)&&Text;.myui-content__detail p:eq(1)&&Text;.myui-content__detail p:eq(2)&&Text",
|
||||
"content": ".content&&Text",
|
||||
"tabs": ".nav-tabs:eq(0) li",
|
||||
"lists": ".myui-content__list:eq(#id) li"
|
||||
},
|
||||
搜索: '#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
}, 首图2: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/list/fyclass-fypage.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA', // "Cookie": ""
|
||||
}, // class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
|
||||
class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
"title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text",
|
||||
"img": ".stui-content__thumb .lazyload&&data-original",
|
||||
"desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text",
|
||||
"content": ".detail&&Text",
|
||||
"tabs": ".stui-vodlist__head h3",
|
||||
"lists": ".stui-content__playlist:eq(#id) li"
|
||||
},
|
||||
搜索: 'ul.stui-vodlist__media:eq(0),ul.stui-vodlist:eq(0),#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
搜索1: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
搜索2: 'ul.stui-vodlist__media&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
}, 默认: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '',
|
||||
searchUrl: '',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
filter: '',
|
||||
filter_url: '',
|
||||
filter_def: {},
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: '#side-menu li;a&&Text;a&&href;/(.*?)\.html',
|
||||
cate_exclude: '',
|
||||
play_parse: true,
|
||||
lazy: `js:input = {parse: 1, url: input, js: ''}`,
|
||||
double: true,
|
||||
推荐: '列表1;列表2;标题;图片;描述;链接;详情',
|
||||
一级: '列表;标题;图片;描述;链接;详情',
|
||||
二级: {
|
||||
title: 'vod_name;vod_type',
|
||||
img: '图片链接',
|
||||
desc: '主要信息;年代;地区;演员;导演',
|
||||
content: '简介',
|
||||
tabs: '',
|
||||
lists: 'xx:eq(#id)&&a',
|
||||
tab_text: 'body&&Text',
|
||||
list_text: 'body&&Text',
|
||||
list_url: 'a&&href'
|
||||
},
|
||||
搜索: '列表;标题;图片;描述;链接;详情',
|
||||
}, vfed: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA',
|
||||
}, // class_parse:'.fed-pops-navbar&&ul.fed-part-rows&&a.fed-part-eone:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
|
||||
class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text",
|
||||
"img": ".fed-list-info&&a&&data-original",
|
||||
"desc": ".fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text",
|
||||
"content": ".fed-part-esan&&Text",
|
||||
"tabs": ".fed-drop-boxs&&.fed-part-rows&&li",
|
||||
"lists": ".fed-play-item:eq(#id)&&ul:eq(1)&&li"
|
||||
},
|
||||
搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
|
||||
}, 海螺3: {
|
||||
title: '',
|
||||
host: '',
|
||||
searchUrl: '/v_search/**----------fypage---.html',
|
||||
url: '/vod_____show/fyclass--------fypage---.html',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
|
||||
cate_exclude: '明星|专题|最新|排行',
|
||||
limit: 40,
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
double: true,
|
||||
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
二级: {
|
||||
"title": ".hl-infos-title&&Text;.hl-text-conch&&Text",
|
||||
"img": ".hl-lazy&&data-original",
|
||||
"desc": ".hl-infos-content&&.hl-text-conch&&Text",
|
||||
"content": ".hl-content-text&&Text",
|
||||
"tabs": ".hl-tabs&&a",
|
||||
"lists": ".hl-plays-list:eq(#id)&&li"
|
||||
},
|
||||
搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
}, 海螺2: {
|
||||
title: '',
|
||||
host: '',
|
||||
searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage/',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
|
||||
limit: 40,
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
|
||||
double: true,
|
||||
一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h2&&Text;.deployment&&Text",
|
||||
"img": ".lazy&&data-original",
|
||||
"desc": ".deployment&&Text",
|
||||
"content": ".ec-show&&Text",
|
||||
"tabs": "#tag&&a",
|
||||
"lists": ".play_list_box:eq(#id)&&li"
|
||||
},
|
||||
搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
}, 短视: {
|
||||
title: '',
|
||||
host: '', // homeUrl:'/',
|
||||
url: '/channel/fyclass-fypage.html',
|
||||
searchUrl: '/search.html?wd=**',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
|
||||
cate_exclude: '解析|动态',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.content-rt&&p:eq(0)&&Text",
|
||||
"img": ".img&&img&&data-src",
|
||||
"desc": ".content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text",
|
||||
"content": ".zkjj_a&&Text",
|
||||
"tabs": ".py-tabs&&option",
|
||||
"lists": ".player:eq(#id) li"
|
||||
},
|
||||
搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
|
||||
}, 短视2: {
|
||||
title: '',
|
||||
host: '',
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&3&4',
|
||||
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
headers: {'User-Agent': 'MOBILE_UA'},
|
||||
url: '/index.php/api/vod#type=fyclass&page=fypage',
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
filter_url: '',
|
||||
filter: {},
|
||||
filter_def: {},
|
||||
detailUrl: '/index.php/vod/detail/id/fyid.html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
|
||||
一级: 'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
|
||||
二级: {
|
||||
"title": ".slide-info-title&&Text;.slide-info:eq(3)--strong&&Text",
|
||||
"img": ".detail-pic&&data-original",
|
||||
"desc": ".fraction&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(2)--strong&&Text;.slide-info:eq(1)--strong&&Text",
|
||||
"content": "#height_limit&&Text",
|
||||
"tabs": ".anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a",
|
||||
"tab_text": ".swiper-slide&&Text",
|
||||
"lists": ".anthology-list-box:eq(#id) li"
|
||||
},
|
||||
搜索: 'json:list;name;pic;;id',
|
||||
}, 采集1: {
|
||||
title: '',
|
||||
host: '',
|
||||
homeTid: '13',
|
||||
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
|
||||
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
|
||||
searchUrl: '/api.php/provide/vod/?wd=**&pg=fypage',
|
||||
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
|
||||
headers: {'User-Agent': 'MOBILE_UA'},
|
||||
timeout: 5000, // class_name: '电影&电视剧&综艺&动漫',
|
||||
// class_url: '1&2&3&4',
|
||||
// class_parse:'js:let html=request(input);input=JSON.parse(html).class;',
|
||||
class_parse: 'json:class;',
|
||||
limit: 20,
|
||||
multi: 1,
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 1,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
lazy: `js:
|
||||
if(/\\.(m3u8|mp4)/.test(input)){
|
||||
input = {parse:0,url:input}
|
||||
}else{
|
||||
if(rule.parse_url.startsWith('json:')){
|
||||
let purl = rule.parse_url.replace('json:','')+input;
|
||||
let html = request(purl);
|
||||
input = {parse:0,url:JSON.parse(html).url}
|
||||
}else{
|
||||
input= rule.parse_url+input;
|
||||
}
|
||||
}
|
||||
`,
|
||||
推荐: '*',
|
||||
一级: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
|
||||
二级: `js:
|
||||
let html=request(input);
|
||||
html=JSON.parse(html);
|
||||
let data=html.list;
|
||||
VOD=data[0];`,
|
||||
搜索: '*',
|
||||
}
|
||||
};
|
||||
return JSON.parse(JSON.stringify(mubanDict));
|
||||
}
|
||||
|
||||
var mubanDict = getMubans();
|
||||
var muban = getMubans();
|
||||
export default {muban, getMubans};
|
BIN
jar/o.jar
Normal file
BIN
jar/o.jar
Normal file
Binary file not shown.
BIN
jar/spider.jar
Normal file
BIN
jar/spider.jar
Normal file
Binary file not shown.
BIN
jar/wencai.jar
Normal file
BIN
jar/wencai.jar
Normal file
Binary file not shown.
BIN
jar/wogg.jar
Normal file
BIN
jar/wogg.jar
Normal file
Binary file not shown.
BIN
jar/xm.jar
Normal file
BIN
jar/xm.jar
Normal file
Binary file not shown.
BIN
jar/xyqxbpq.jar
Normal file
BIN
jar/xyqxbpq.jar
Normal file
Binary file not shown.
1
js/HDmoli.js
Normal file
1
js/HDmoli.js
Normal file
@ -0,0 +1 @@
|
||||
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ0hEbW9saScsCiAgICBob3N0OiAnaHR0cHM6Ly93d3cuaGRtb2xpLnBybycsCiAgICB1cmw6ICcvc2VhcmNoLnBocD9wYWdlPWZ5cGFnZSZzZWFyY2h0eXBlPTUmdGlkPWZ5ZmlsdGVyJywKICAgIHNlYXJjaFVybDogJy9zZWFyY2gucGhwP3BhZ2U9ZnlwYWdlJnNlYXJjaHdvcmQ9Kiomc2VhcmNodHlwZT0nLAogICAgc2VhcmNoYWJsZTogMiwKICAgIHF1aWNrU2VhcmNoOiAwLAogICAgImZpbHRlcmFibGUiOiAxLAogICAgImZpbHRlciI6ICJINHNJQUFBQUFBQUFBKzJYM1c0U1FSVEgzMld2aVdWMytXekNrNWhlckdFVFVUNGlVbVBUTk5GaUtWQkRhYVBnQjlHckJ0cTB0dGlHQ0loOW1aM2Q4aGJ1TW1kbnprd204Y0o2WS9ieS8vK2RHV2JPbmpNbmJHdTZ0djV3VzN0cWIybnJtamVla3k4SFdrd3JXeVViNnhkV2NkTmVCWllGMnhmYVRveTZwRDF5RmdOd2s4ejJtbU8zdmdkMml0dkRJektkZzUxbXR2dTY2NzdxZ1ozaGR2T0RNMnVCbmVVLzJSdVExaEJzUGM0M241MlJ4WHV2dFI4aW5TOXBEZmx4ZElNdmFWOTZpelB3elRpK2xmY3VQS2ZweDI4RWhLYUw3UVhwNG5zTDZSSitVbjJsSjg5eW9KV0pDRERWeW12NEdMUXk2VDRHelZaL201RFpCVnBOTmIvem1OejJFYWFhSFczMzNPc2RvYU5ScmF5RDFlcVZadmhrbjMvNEFGUE5jT040K2ZFVVlhb1o3alRJNFhlRXFXWkhxN2ZkM1Uvb2FGU0hlUG4xMnBsMk9RYXRyTWtnYTFRclN5VEFWSWY0N3Jiclg1VmowTXBhRFU1T3RWQlBneXZ5ZG9icUtkUlNQVEZiYUwrOTBiSStrbDN2VjRkOFhvQnJWVzByQnc1UHlha1VBQTY3MXNGWUNnQ0g1YngvNGc3T2NRQTRMT0Q2U3RvQm5EREErWEVoQllERDd6Wng1ajBjQUk2UXZlbU5NMStnN0lWYXloNnovNXc5STI0a3dOdXlyV3B1cFJFMEpXaGlhRWpRd0ZDWG9JNWhYSUp4QlBXc0NQVXNoaGtKWmpCTVN6Q05ZVXFDS1F5VEVreGlLR1ZJeHhuU3BRenBQRU9sU3RYR2NLWHg5M1E3eDJSMnlMOG4wK0wzNUxid3V2WW55LzROdUpWcTNxN21hZ1YvRzFiVmwyOUlzeUh3ZkdYemtWVU9qckFSMDR6N21vcEJ1L0VSbFJUNmp2c3AzRTNJTjRVMlpMNlpVUGNPeW4zUVlpemU0RVhpelgvZXRjTEh3OHlxVzh6TVJITXVtblBSbkl2bVhEVG4vdTg1bDhCLy8vNnFMNFgyV0NzVkM4OXJhNFZ5M242Wk1CNDhycFdLNmlJWEFrMElqRVpQTkhyKzFlaUpIcy9vOGJ5ZngzUG5OMGRreThjOEV3QUEiLAogICJmaWx0ZXJfdXJsIjogInt7Zmwu57G75Z6LfX0me3tmbC7liafmg4V9fSZ7e2ZsLuWcsOWMun19Jnt7Zmwu5bm05Lu9fX0me3tmbC7mjpLluo99fSIsCiAgImZpbHRlcl9kZWYiOiB7CiAgICAiMSI6IHsKICAgICAgIuexu+WeiyI6ICIxIgogICAgfSwKICAgICIyIjogewogICAgICAi57G75Z6LIjogIjIiCiAgICB9LAogICAgIjQxIjogewogICAgICAi57G75Z6LIjogIjQxIgogICAgfQogIH0sCiAgICBoZWFkZXJzOiB7CiAgICAgICAgJ1VzZXItQWdlbnQnOiAnTU9CSUxFX1VBJywKICAgIH0sCiAgICBjbGFzc19wYXJzZTogJy5teXVpLWhlYWRlcl9fbWVudSBsaTthJiZUZXh0O2EmJmhyZWY7aW5kZXgoXFxkKylcLmh0bWwnLAogICAgcGxheV9wYXJzZTogdHJ1ZSwKICAgIGxhenk6ICcnLAogICAgbGltaXQ6IDYsCiAgICDmjqjojZA6ICd1bC5teXVpLXZvZGxpc3QuY2xlYXJmaXg7bGk7YSYmdGl0bGU7YSYmZGF0YS1vcmlnaW5hbDsucGljLXRleHQmJlRleHQ7YSYmaHJlZicsCiAgICBkb3VibGU6IHRydWUsCiAgICDkuIDnuqc6ICcubXl1aS12b2RsaXN0IGxpO2EmJnRpdGxlO2EmJmRhdGEtb3JpZ2luYWw7LnBpYy10ZXh0JiZUZXh0O2EmJmhyZWYnLAogICAg5LqM57qnOiB7CiAgICAgICAgdGl0bGU6ICcubXl1aS1jb250ZW50X19kZXRhaWwgLnRpdGxlJiZUZXh0Oy5teXVpLWNvbnRlbnRfX2RldGFpbCBwOmVxKC0yKSYmVGV4dCcsCiAgICAgICAgaW1nOiAnLm15dWktY29udGVudF9fdGh1bWIgLmxhenlsb2FkJiZkYXRhLW9yaWdpbmFsJywKICAgICAgICBkZXNjOiAnLm15dWktY29udGVudF9fZGV0YWlsIHA6ZXEoMCkmJlRleHQ7Lm15dWktY29udGVudF9fZGV0YWlsIHA6ZXEoMSkmJlRleHQ7Lm15dWktY29udGVudF9fZGV0YWlsIHA6ZXEoMikmJlRleHQnLAogICAgICAgIGNvbnRlbnQ6ICcuY29udGVudCYmVGV4dCcsCiAgICAgICAgdGFiczogJy5uYXYtdGFiczplcSgwKSBsaScsCiAgICAgICAgbGlzdHM6ICcubXl1aS1jb250ZW50X19saXN0OmVxKCNpZCkgbGknLAogICAgfSwKICAgIOaQnOe0ojogJyNzZWFyY2hMaXN0IGxpO2EmJnRpdGxlOy5sYXp5bG9hZCYmZGF0YS1vcmlnaW5hbDsucGljLXRleHQudGV4dC1yaWdodCYmVGV4dDthJiZocmVmOy5kZXRhaWwmJnA6ZXEoMykmJlRleHQnLAp9
|
1
js/KTV歌厅[听].js
Normal file
1
js/KTV歌厅[听].js
Normal file
File diff suppressed because one or more lines are too long
1
js/i275听书[听].js
Normal file
1
js/i275听书[听].js
Normal file
@ -0,0 +1 @@
|
||||
dmFyIHJ1bGUgPSB7CiAgICDnsbvlnos6ICflkKzkuaYnLAogICAgdGl0bGU6ICdpMjc15ZCs5LmmJywKICAgIGhvc3Q6ICdodHRwczovL20udGluZzI3NS5jb20nLAogICAgLy8gdXJsOiAnL2NhdGVnb3J5L2Z5Y2xhc3MvMi5odG1sP3BhZ2U9ZnlwYWdlJywKICAgIHVybDogJy9jYXRlZ29yeS9meWNsYXNzL2Z5ZmlsdGVyL2Z5cGFnZS5odG1sJywKICAgIGZpbHRlcmFibGU6IDEsLy/mmK/lkKblkK/nlKjliIbnsbvnrZvpgIksCiAgICBmaWx0ZXJfdXJsOiAne3tmbC5ieX19JywKICAgIGZpbHRlcjogewogICAgICAgICI2IjogW3sia2V5IjogImJ5IiwgIm5hbWUiOiAi5o6S5bqPIiwgInZhbHVlIjogW3sibiI6ICLmm7TmlrAiLCAidiI6ICIyIn0sIHsibiI6ICLkurrmsJQiLCAidiI6ICIzIn1dfV0sCiAgICAgICAgIjciOiBbeyJrZXkiOiAiYnkiLCAibmFtZSI6ICLmjpLluo8iLCAidmFsdWUiOiBbeyJuIjogIuabtOaWsCIsICJ2IjogIjIifSwgeyJuIjogIuS6uuawlCIsICJ2IjogIjMifV19XSwKICAgICAgICAiOCI6IFt7ImtleSI6ICJieSIsICJuYW1lIjogIuaOkuW6jyIsICJ2YWx1ZSI6IFt7Im4iOiAi5pu05pawIiwgInYiOiAiMiJ9LCB7Im4iOiAi5Lq65rCUIiwgInYiOiAiMyJ9XX1dLAogICAgICAgICI5IjogW3sia2V5IjogImJ5IiwgIm5hbWUiOiAi5o6S5bqPIiwgInZhbHVlIjogW3sibiI6ICLmm7TmlrAiLCAidiI6ICIyIn0sIHsibiI6ICLkurrmsJQiLCAidiI6ICIzIn1dfV0sCiAgICAgICAgIjEwIjogW3sia2V5IjogImJ5IiwgIm5hbWUiOiAi5o6S5bqPIiwgInZhbHVlIjogW3sibiI6ICLmm7TmlrAiLCAidiI6ICIyIn0sIHsibiI6ICLkurrmsJQiLCAidiI6ICIzIn1dfV0sCiAgICAgICAgIjExIjogW3sia2V5IjogImJ5IiwgIm5hbWUiOiAi5o6S5bqPIiwgInZhbHVlIjogW3sibiI6ICLmm7TmlrAiLCAidiI6ICIyIn0sIHsibiI6ICLkurrmsJQiLCAidiI6ICIzIn1dfV0sCiAgICAgICAgIjEyIjogW3sia2V5IjogImJ5IiwgIm5hbWUiOiAi5o6S5bqPIiwgInZhbHVlIjogW3sibiI6ICLmm7TmlrAiLCAidiI6ICIyIn0sIHsibiI6ICLkurrmsJQiLCAidiI6ICIzIn1dfV0sCiAgICAgICAgIjEzIjogW3sia2V5IjogImJ5IiwgIm5hbWUiOiAi5o6S5bqPIiwgInZhbHVlIjogW3sibiI6ICLmm7TmlrAiLCAidiI6ICIyIn0sIHsibiI6ICLkurrmsJQiLCAidiI6ICIzIn1dfV0sCiAgICAgICAgIjE0IjogW3sia2V5IjogImJ5IiwgIm5hbWUiOiAi5o6S5bqPIiwgInZhbHVlIjogW3sibiI6ICLmm7TmlrAiLCAidiI6ICIyIn0sIHsibiI6ICLkurrmsJQiLCAidiI6ICIzIn1dfV0sCiAgICAgICAgIjE1IjogW3sia2V5IjogImJ5IiwgIm5hbWUiOiAi5o6S5bqPIiwgInZhbHVlIjogW3sibiI6ICLmm7TmlrAiLCAidiI6ICIyIn0sIHsibiI6ICLkurrmsJQiLCAidiI6ICIzIn1dfV0sCiAgICAgICAgIjQ5IjogW3sia2V5IjogImJ5IiwgIm5hbWUiOiAi5o6S5bqPIiwgInZhbHVlIjogW3sibiI6ICLmm7TmlrAiLCAidiI6ICIyIn0sIHsibiI6ICLkurrmsJQiLCAidiI6ICIzIn1dfV0sCiAgICAgICAgIjUwIjogW3sia2V5IjogImJ5IiwgIm5hbWUiOiAi5o6S5bqPIiwgInZhbHVlIjogW3sibiI6ICLmm7TmlrAiLCAidiI6ICIyIn0sIHsibiI6ICLkurrmsJQiLCAidiI6ICIzIn1dfV0sCiAgICAgICAgIjUxIjogW3sia2V5IjogImJ5IiwgIm5hbWUiOiAi5o6S5bqPIiwgInZhbHVlIjogW3sibiI6ICLmm7TmlrAiLCAidiI6ICIyIn0sIHsibiI6ICLkurrmsJQiLCAidiI6ICIzIn1dfV0KICAgIH0sCiAgICBmaWx0ZXJfZGVmOiB7CiAgICAgICAgNjoge2J5OiAnMid9LAogICAgICAgIDc6IHtieTogJzInfSwKICAgICAgICA4OiB7Ynk6ICcyJ30sCiAgICAgICAgOToge2J5OiAnMid9LAogICAgICAgIDEwOiB7Ynk6ICcyJ30sCiAgICAgICAgMTE6IHtieTogJzInfSwKICAgICAgICAxMjoge2J5OiAnMid9LAogICAgICAgIDEzOiB7Ynk6ICcyJ30sCiAgICAgICAgMTQ6IHtieTogJzInfSwKICAgICAgICAxNToge2J5OiAnMid9LAogICAgICAgIDQ5OiB7Ynk6ICcyJ30sCiAgICAgICAgNTA6IHtieTogJzInfSwKICAgICAgICA1MToge2J5OiAnMid9CiAgICB9LAogICAgc2VhcmNoVXJsOiAnL3BjL2luZGV4L3NlYXJjaC5odG1sP2tleXdvcmQ9KiomcGFnZT1meXBhZ2UnLAogICAgc2VhcmNoYWJsZTogMiwKICAgIHF1aWNrU2VhcmNoOiAwLAogICAgaGVhZGVyczogeydVc2VyLUFnZW50JzogJ01PQklMRV9VQSd9LAogICAgY2xhc3NfbmFtZTogJ+eOhOW5u+Wlh+W5uybpg73luILoqIDmg4Um5a6r5paX5aWz6aKRJuWumOWcuuWVhuaImCbmrabkvqDku5nkvqAm5YiR5L6m5o6o55CGJuaOoumZqeenkeW5uybph43nlJ/nqb/otoom5oGQ5oCW5oOK5oKaJuaWh+WtpuWOhuWPsibkuKTmgKfmg4XmhJ8m572R5ri456ue5oqAJuebuOWjsOivhOS5picsCiAgICBjbGFzc191cmw6ICc2JjcmOCY5JjEwJjExJjEyJjEzJjE0JjE1JjQ5JjUwJjUxJywKICAgIHBsYXlfcGFyc2U6IHRydWUsCiAgICBsYXp5OiAnJywKICAgIGxpbWl0OiA2LAogICAg5o6o6I2QOiAnKicsCiAgICAvLyDkuIDnuqc6Jy5saXN0LXdyYXBwZXImJi5pdGVtLWxpbms7aDItLXNwYW4mJlRleHQ7aW1nJiZkYXRhLWNmc3JjOy5zdGF0dXMmJlRleHQ7YSYmaHJlZicsCiAgICDkuIDnuqc6ICcubGlzdC13cmFwcGVyJiYuaXRlbS1saW5rO2gyLS1zcGFuJiZUZXh0O2ltZyYmc3JjOy5zdGF0dXMmJlRleHQ7YSYmaHJlZicsCiAgICDkuoznuqc6IHsKICAgICAgICAidGl0bGUiOiAiLmJvb2stdGl0bGUmJlRleHQ7LnRleHQ6ZXEoMCkmJlRleHQiLAogICAgICAgIC8vICJpbWciOiIuaW1nJiZkYXRhLWNmc3JjIiwKICAgICAgICAiaW1nIjogIi5pbWcmJnNyYyIsCiAgICAgICAgImRlc2MiOiAiLnVwZGF0ZS10aW1lJiZUZXh0Ozs7LnRleHQ6ZXEoMSkmJlRleHQ7LnRleHQ6ZXEoMikmJlRleHQiLAogICAgICAgICJjb250ZW50IjogIi5ib29rLWludHJvJiZUZXh0IiwKICAgICAgICAidGFicyI6ICIub3BlcmF0ZS1iYXImJi50b3RhbC1udW0iLAogICAgICAgICJsaXN0cyI6ICIuYm9vay1saXN0OmVxKCNpZCkmJi5saXN0LWl0ZW0iCiAgICB9LAogICAg5pCc57SiOiAnKicsCn0=
|
1
js/一支穿云箭.js
Normal file
1
js/一支穿云箭.js
Normal file
@ -0,0 +1 @@
|
||||
H4sIAIioBmcC/3VXWavkxhV+n19xGcIs1sxVt1pqSTM40K19aam1troxDNpbrX1tqc0FQ0ggxHYSY8hDFsiTnQfHCTiQjAn+M7P9jOgu49yQmQIh1Tnnq/OpVKX6juwcfLc5t+s6CrMHaevY2XnaF1V+/uL5p6+ff/Xo7OM7Z2NrbOdZ4/fNk7P7XtQ9flyndpLcu6ePpvuP7lw8fHqns6uzqk38sw9vIK++/vOrP/4wAq7GG6OuxomaxH9ydvfFPz959eW3r//yw4vnv33912/uXnv3eT1muLtvmuIJCKZ5F/nnw8kdDueZ39zEtFUyhoBR5vn9ebEvwC73wHqfH8HIA4MhiJLGr873TZrcAGrfrty98U7YlQss7NAfoVe3owd+8MH/w23nkjZ0bSrbyI21K/uTs8m17Trvddj0tmnMysI1t3jbAMh2zJWuqSTbTRrfRyyPomkMAdcnDJWsrt7vSr2r1gImtEI7iEKz0KheIcwlhyzCkAg1NeYILl4e4FWReQjdufxhVsz9dHqiy3C3s1C3A8Ai9aECCvKsPZHhMoYxuSOPPKguYYpcWG3CC7a/7LYUGgdA1IhZMKxnYB5DpIyhdR4203W+mVfiabvY+qjC7kay4RB1Jso3ZRDPiE450EdKSDKR0fVBLUxIqTmE36nBttjDsVkOQDqwCF3XUlTPVW7ZC5WHHUrGXFOSpC4G+5SeElVveq4TMCNWNIYGQrvuQaygaU5GtwxmmXCskbGB7VgboFsiWq1ZDXS2K4puJOoACWzaGPQBNzdzoO42ArcU7Vbz7BXFlU22642RDSVoxGbWeSK8ZQma62mRnWp5Rq3kfgXPtp5S7BYsvdnA65VV51rTJBrpAQjdViVhNLJl6b6aVqjQ5pmBc+phATPprqccglTwHRJak7Xubq3Vstok2smFxB3cziNPn1gMf1oYszXZuM5UN3B6F/I2m0e1nxJF5HbYkbP9IrE9aa76CtsI+JZrQu4SEwT1kZIWvSdoZsQM/SRnmEGHka0IeBNqnu0VRlqXdRwxx3ByWHWbVdH3IqnkOUSXTVcyu+M0t0luS88Tcxdy9q6eQbEoYyLTLIyhNWvNZgEjn0qkXsxQJ6hN32JC+7hmBmtV4Ki0nea7CZFyPGwOaqYE691kWfepDax7JI7UUxrGAmG6FZj09iB3G2PP75196GzQYh2TRIPnNr2UkpPBC62sd9ZsIQo+pa3p2Z5OeIIFYkRA5Rg4LvgZZM3FwN3zO9Ni0ZROJHVFAPMdfVCC07GNZAFEF4sExwXfFbiO2uATqewOsos3kJC6WQ9alpoYnjougQLvZBZoybysQAlnJEXgeNOdZWVY40LJHiFTIvSd4gHAVsEHcRYccSHSjnGDLLSi7kpR9BUqQuI2GvwCTVWjTokW7hdcnJGirVJGIyULleeZxkXDiUKIiIN6i1ZpeAhrzW2RuInsHBCUsE6cK+SW7BKkLSgnaLngSIuy80aPp4JuwJISTuV+vIbQI4EMGDKvB2JAa2rEsb2JOPdQQZmemNI2eqyMa51HKupoC8iaHUqtX2VpPU+NzvJVF6pzkIc7N2Bs8UDyHsLJW6VhWzTdZxhBaAp8dJVM2MauxB0Oy2G5SlQ1hyPZdbiVprOMnsrIQjnwCOHuZCWOE3mVUfyQFqyurUZw6PAbw5G5Q8YOZBwjfYwcAIXgel+xGD3mCl480D3hFqk6TKJ2xXL0YJpMFQlIX4dTXnJ37RaNl9FqFksjmLC1DXxylVTEJjW9tWzaOS5zl3I3BhSKcMVgSwGd+tocKzbrAIZgKcSns+yAlOQ4xXR5Isu6yw5O5ltA7uto7/Ptqk3nGBpkHjvvGLQjtioEsWkFH5mSx00rttZ0uUvdNg/DSSKkCFDSESWWvChv6s60NY2eLinRy82FYzsLB8S3/CrzewfqPSNr8l4gUxqdVXkEJAxUxQJSmLUzLs5Dki6aymosezwvjHW1g9hdY5IQwOwzu6hP1cEmy7Tooml68IPdNicYdxarHrhRjEj2ok29LNYOgiX83PV8S4aaLXxgWSvC90rA+4iMMxouz6GA1HBRLXn9OFlvVnSBwVZ8kufMVMcnGcYWDh40Heju9EYLsUDIRWrwheOKiVpSxeRwoi9haXG0ya3EHo8H9LTVA319kHoOdHVRb2o+DtcTbpqGKYpTibdHgz6IhawTLEXwsdKTSsAfpkSlecVu1mw3CmZXRoUW+NQsbWlf8f6shDeUE3FTnBS0+uhsE6cyTGIZTcNtlZeb1M6tWeJO9lIyUzTStHxMToWTMRG0uYBo4zzuK3m3EU3QrRlb3ieeVNgwClChvd0EtSQUREVTntdR+2q5Eua4V+QMHTvKRF4LMFR1K2ArNjK+bQ2JmMNGrbGFhs1LVGxTvjLbBSL5SFDMqimaBfUKTcY9lVfrYwkJAAFqOYytJePoU55Zs6XM6kBr2sLG9qNan+M2bpfzNFJNwLVN19c6cmYJ64QgN2gsKFAF4+Qco9nVoU0m9BxU16q+YKu5UHfNMFWTjW3U0rIv3JoLosuDY8Ko+ZCgkQUCi6IuZ0mCRebWTUt4XU8TvJQlomJ0dom2UbIP5WmXE7NVbM34CRDCZm8HKHuADVcwLILoXGecu3yaWl0nZdRkJLar3DzDW8YYf/AiLKqcTi66XEjwViuGikpVJoQnqw0h1eCOsKNyLkAcerLXzoQKp4AMdZjaoJsUY8Y/HNrWBg2MRxHoAsBIuGADYtwh2A7j62XXZ8f0yIBMELUmIE4WfQPuwRydSsB+jStyECggXoIol02gUfl8ePe2Lnp2LeQ+/jhIzl///fuXf/rVxcVV5+Uf/vby0+c3nVeff/Hy+a/fen751auf/fym8+bbb958/clbzze/e/XtZxcXt6XcteNf3734/t8XF/+b2vODJzcq9bJNb3cu2zWfkd307o/2i0c/PkLvjYfeGT97b/zsnfHwe+Phd4//fkKz24zu3MLtfdvzq/o28K5R+9XjRehnzd0RupKXnEg9MxZ3b+OaKPXzdlTpyGRyI33dZCwfnhV2VV8q+/PM7hy7ehw1flrfu5dET+3rOuHyvq/84OmDjz7ygIc3X8S1G/+Z37tJ612iX3/5jzdf/eL177979cXbouCy9PhvwPWCuHGN+ml4m7ipWv/amtin4cnZTw71eTMKuirKwgcPHp59+NNbrxplRdtcVio34Omj67riyv7o7DDOy/37F0+vX/zh9bBe3l6p+8BO6ptMrz7/+s1nvxlZfTASunPxH4HVTdVNDQAA
|
1
js/一曲肝肠断.js
Normal file
1
js/一曲肝肠断.js
Normal file
File diff suppressed because one or more lines are too long
1
js/中华听书网[听].js
Normal file
1
js/中华听书网[听].js
Normal file
@ -0,0 +1 @@
|
||||
Ly8g5pCc57Si6aqM6K+BCnZhciBydWxlID0gewogICAg57G75Z6LOiAn5ZCs5LmmJywKICAgIHRpdGxlOiAn5Lit5Y2O5ZCs5Lmm572RJywKICAgIGhvc3Q6ICdodHRwczovL3d3dy50aW5nc2h1Y24uY29tJywKICAgIHVybDogJy9saXN0L2Z5Y2xhc3MtZnlwYWdlLmh0bWwnLAogICAgc2VhcmNoVXJsOiAnL3NlYXJjaC5waHA/cGFnZT1meXBhZ2Ujc2VhcmNod29yZD0qKiZzZWFyY2h0eXBlPTtwb3N0JywKICAgIHNlYXJjaGFibGU6IDIsCiAgICBxdWlja1NlYXJjaDogMCwKICAgIGhlYWRlcnM6IHsKICAgICAgICAnVXNlci1BZ2VudCc6ICdQQ19VQScKICAgIH0sCiAgICB0aW1lb3V0OiA1MDAwLAogICAgY2xhc3NfcGFyc2U6ICcjbmV3c19uYXYmJmxpOmhhcyhhKTthJiZUZXh0O2EmJmhyZWY7LiovKFxcZCspLmh0bWwnLAogICAgcGxheV9wYXJzZTogdHJ1ZSwKICAgIC8vICBsYXp5OidqczppbnB1dD1pbnB1dC5yZXBsYWNlKCJ3d3ciLCJtIiknLAogICAgbGF6eTogJGpzLnRvU3RyaW5nKCgpID0+IHsKICAgICAgICBsZXQgdXJsID0gaW5wdXQ7CiAgICAgICAgaWYgKC9tM3U4fG1wNHxtcDN8YWNjfG00YXx3bWF8YWFjLy50ZXN0KHVybCkpIHsKICAgICAgICAgICAgaW5wdXQgPSB7CiAgICAgICAgICAgICAgICBqeDogMCwKICAgICAgICAgICAgICAgIHVybDogdXJsLAogICAgICAgICAgICAgICAgcGFyc2U6IDAKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlucHV0ID0gaW5wdXR1cmwKICAgICAgICB9CiAgICB9KSwKICAgIGxpbWl0OiA2LAogICAg5Zu+54mH5p2l5rqQOiAnQFJlZmVyZXI9aHR0cHM6Ly93d3cudGluZ3NodWNuLmNvbScsCiAgICDmjqjojZA6ICcubGF5b3V0X3JpZ2h0OmVxKDEpJiZsaTsqOyo7ZW0mJlRleHQ7KicsCiAgICDkuIDnuqc6ICcubGlzdEJveCYmbGk7aW1nJiZhbHQ7aW1nJiZzcmM7cDplcSgwKSYmc3BhbiYmVGV4dDthJiZocmVmJywKICAgIOS6jOe6pzogewogICAgICAgIHRpdGxlOiAnaDMmJlRleHQ7LndlYnppX3RvcCYmbGk6ZXEoNCkmJlRleHQnLAogICAgICAgIGltZzogJy5waWMmJmltZyYmc3JjJywKICAgICAgICBkZXNjOiAnLndlYnppX3RvcCYmbGk6ZXEoMSkmJnNwYW4mJlRleHQ7Ozsud2ViemlfdG9wJiZsaTplcSgzKSYmVGV4dDsud2ViemlfdG9wJiZsaTplcSgyKSYmVGV4dCcsCiAgICAgICAgY29udGVudDogJyNpZERJVi0tYSYmVGV4dCcsCiAgICAgICAgdGFiczogJy5jb250ZW50X2pydG9wOmVxKDApJiZsaScsCiAgICAgICAgbGlzdHM6ICcudmlkZW91cmw6ZXEoI2lkKSYmbGknCiAgICB9LAogICAg5pCc57SiOiAnKicsCn0=
|
1
js/有声听书网[听].js
Normal file
1
js/有声听书网[听].js
Normal file
@ -0,0 +1 @@
|
||||
dmFyIHJ1bGUgPSB7CiAgICDnsbvlnos6ICflkKzkuaYnLC8v5b2x6KeGfOWQrOS5pnzmvKvnlLt85bCP6K+0CiAgICB0aXRsZTogJ+acieWjsOWQrOS5pue9kVvlkKxdJywKICAgIGhvc3Q6ICdodHRwczovL3d3dy55c3RzLmNjLycsCiAgICB1cmw6ICcvYm9vay9meWNsYXNzL2xhc3R1cGRhdGUvZnlwYWdlLmh0bWwnLAogICAgc2VhcmNoVXJsOiAnL3NlYXJjaC5odG1sP3NlYXJjaHR5cGU9bmFtZSZzZWFyY2h3b3JkPSoqJnBhZ2U9ZnlwYWdlJywKICAgIHNlYXJjaGFibGU6IDIsCiAgICBxdWlja1NlYXJjaDogMCwKICAgIGZpbHRlcmFibGU6IDEsCiAgICBmaWx0ZXI6ICcnLAogICAgZmlsdGVyX3VybDogJycsCiAgICBmaWx0ZXJfZGVmOiB7fSwKICAgIGhlYWRlcnM6IHsKICAgICAgICAnVXNlci1BZ2VudCc6ICdQQ19VQScsCiAgICB9LAogICAgdGltZW91dDogNTAwMCwKICAgIGNsYXNzX3BhcnNlOiAnLm5hdi1vbCBsaTthJiZUZXh0O2EmJmhyZWY7LiovKC4qPylcL2xhc3R1cGRhdGUnLAogICAgY2F0ZV9leGNsdWRlOiAnJywKICAgIHBsYXlfcGFyc2U6IHRydWUsCiAgICBsYXp5OiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIGlucHV0ID0ge3BhcnNlOiAxLCB1cmw6IGlucHV0LCBqczogJyd9OwogICAgfSksCiAgICBkb3VibGU6IHRydWUsCiAgICAvL+aOqOiNkDon5YiX6KGoMTvliJfooagyO+agh+mimDvlm77niYc75o+P6L+wO+mTvuaOpTvor6bmg4UnLAogICAg5LiA57qnOiAnLmxpc3Qtd29ya3MgbGk7YSYmdGl0bGU7aW1nJiZkYXRhLW9yaWdpbmFsO3NwYW4mJlRleHQ7YSYmaHJlZjtkZCYmVGV4dCcsCiAgICDkuoznuqc6IHsKICAgICAgICB0aXRsZTogJy5jb250ZW50JiZhJiZ0aXRsZTsuY29udGVudCYmYTplcSgxKSYmVGV4dCcsCiAgICAgICAgaW1nOiAnLmNvbnRlbnQmJmltZyYmZGF0YS1vcmlnaW5hbCcsCiAgICAgICAgZGVzYzogJ+S4u+imgeS/oeaBrzsuY29udGVudCYmZGQ6ZXEoMykmJlRleHQ75Zyw5Yy6Oy5jb250ZW50JiZkZDplcSg0KSYmVGV4dDvlr7zmvJQnLAogICAgICAgIGNvbnRlbnQ6ICcuY29udGVudCYmLmJvb2stZGVzJiZUZXh0JywKICAgICAgICB0YWJzOiAnLnBsYXlsaXN0LXRvcCYmaDInLAogICAgICAgIC8vdGFiczogJy5jaGFwdGVyLWxpc3QtYmxvY2smJmxpJywKICAgICAgICAvLyDliJfooajmnInliIbpobXvvIzmmoLml7bop6PlhrPkuI3kuobjgILov5nnp43ogIE2572R56uZCiAgICAgICAgbGlzdHM6ICcucGxheWxpc3QmJmxpJywKICAgICAgICB0YWJfdGV4dDogJ2JvZHkmJlRleHQnLAogICAgICAgIGxpc3RfdGV4dDogJ2JvZHkmJlRleHQnLAogICAgICAgIGxpc3RfdXJsOiAnYSYmaHJlZicsCiAgICAgICAgbGlzdF91cmxfcHJlZml4OiAnJywKICAgIH0sCgogICAg5pCc57SiOiAnLmxpc3Qtd29ya3MgbGk7KjsqOyo7Kjvor6bmg4UnLAp9
|
1
js/有声绘本网[听].js
Normal file
1
js/有声绘本网[听].js
Normal file
@ -0,0 +1 @@
|
||||
H4sIAIioBmcC/21RTWvbQBC951cIApLt2JJoSQISJqTQQ6Elh9Y3g9moY2nxSlZ2V1VMCITSHEo/cHKJW0wPSakNCXEMxU1j+m8iyf0XXX34UMjsYdk3b9/MvHmDqEQDAlJdOliRRCTTefTtgyEpUf/q/vcPpZqhHHMCAoyH76OLm2Q+iIdXyZ+TIut0GRdJh3OfGZoWhqHa6wbMAc92ArwLnmp13YIbUCKoWrtnEcSYuH1kQ5FjgKjlNHJG/lB9x9+S9+qVipwS6w/w0W7a2qMc2guw1XmZ4Yak51gbEw40pxWQA+g1UGYUQ6ehNBjQ2rYNHldE/Rc7T549f9pqbCsZ43DpgwvdQAy7rut6VdOEB8nll+Tru+h4HE2PFpNf8fTtYnYcn82qf+eDxfX3eDB5LLjx5DIZnWYa2eAtH1GWOrrqghfUXIQ9WSbYsHlJLxuElzbLJpLlV7DP09uh0DaFiVqp2QzXysX8PkG9pRCnAeQowS4WHW7kr/jzePGpLwpVik/3t0fJ3UgAiHJsEVBh3wLq85q1nlbKNm1i15ZlRi1T9cVuawR34P9mlmJ3H3OxpXrcHyY/zx9Q56FZESc1sFBKvxz+A+3Iko+AAgAA
|
1
js/种子音乐[听].js
Normal file
1
js/种子音乐[听].js
Normal file
@ -0,0 +1 @@
|
||||
H4sIAIioBmcC/31Ty24TMRTd8xUWqmYmIbH7kFjMaChFYgECKlG6aqvKnblJ3HoetT2kSRWJHUKiKHtASEioLGAFC+iCr2kT+AvssZtGqsAb29fH597jc/2cCiQqDihGxzeQHoopDiHyp6cnF1/Hfz58O/853roYf9nxW/V5r5BKH/eUKmVISL/fx8Ph0vIKTopsBslgU3CNIpxJRTI5zHBPZasl7UK85FCVRXQGCadSXp13BmZyIAlUJD26Z0patqHDiiUHG3U8RIsuI9AUhAydBjP8TQmivdaFXPk6z+P1ew8e3d/dXHPENURABwQI/196iAOP7FQXultSIc0DYSpZCu0M8qptZGJdZ54D97ytniZuxia4E1HPewZHyswmHOGgBjcbRrHjLzkdXPIqUYGNcjochGhhX2JVbCjB8m4QNFB8Z04ky8tKaevqGQvQRAkExPBtk2C7f6uxbdKQFvLpPj0iqzRRsSzyLss7hcfSeGHJ4zTvxn4jmpHyohvUhPMxUCgrV3SqhxvrT3BdayDgsAKpHLiBU6oo1qjoWn3HTtxiy9quQS1nWli3H3YOjuzdUcM9AcuY7rbbdkcIQhdvf01fvZy8/zQ5G4f+3afWwfi/9k3efP59Mg7RzeZNGzj/8WJ6dmo8zIo9xqH2z/Pmd22mIIuweaucZuBMxMYTXtDU84zYthRJhGmleoWYQzmrXfbzs9c2WdOfybBtbf6IT+yarB7AIG42vet/QOMn43fT7x/DGcXVff2D5pytw55jssbaCykoyri7YNpD/zuWmt7gl49kUyB/X2sOjbooM5qikiWRrFcs1djRX63TH1EyBAAA
|
1333
js/采集[zy]静态.json
Normal file
1333
js/采集[zy]静态.json
Normal file
File diff suppressed because it is too large
Load Diff
145
js/采集[密]静态.json
Normal file
145
js/采集[密]静态.json
Normal file
@ -0,0 +1,145 @@
|
||||
[
|
||||
{
|
||||
"name": "jk",
|
||||
"url": "https://jkunzy.com",
|
||||
"parse_url": "",
|
||||
"class_name": "H4sIAFQldWYC/zVOzU7CQBh8m+89OHnXBM/Gq4kmnryJDVQgUtoE9wCaFbQl1bU2oq67LH2Z/b7dvoVt1MtkfpKZsVLQbYiC4fcMiD3R4oUWQ8d7/4LxVnS6Plv5YgPHp+dnJ0cXUAcG5RVVlxT0gfgDzkXDrBqDVQpT7dRHm9Sria2Y3aZuOgCMUldqfIvaIhKp3XGMHrEvoZ5Vrgh9de+NgVrHVt75oqQghoPDzh74MKfxDfa+GoTfTRytafsMzsROLa3UlAigydKPSveu8ZqBlUOnsr/l7r7PBj5LAOfGti7HPAG34c1Zmgr/mkPN1s17qz9/AO52o6oSAQAA",
|
||||
"class_url": "1&2&3&4&5&20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37",
|
||||
"cate_excludes": [
|
||||
"都市激情",
|
||||
"校园情事",
|
||||
"人妻纵情",
|
||||
"风俗伦理",
|
||||
"另类小说",
|
||||
"武侠古典",
|
||||
"长篇连载"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "鲨鱼",
|
||||
"url": "http://shayuzy5.com",
|
||||
"parse_url": "",
|
||||
"class_name": "H4sIAFMldWYC/z2PTU7CUBhFd/PNXQJDJ46M+ymmajF9Fgm2QElLg21RiopRyuvfZr6fdheWhDi8ybk359KiQp3wrdlae2D3lf0tu6GEBgxu2FPsBYB5xi/3lLl0nIJUY9ER5gU/Z8APDmpNo5TLd+BtIrU6L9Gi4nQlicGPNnTTpjUbzJdt5EM3LGj3e6rFBXTBpiexjMW5gy6ecf5xDrKvaWKwSlvbAVKB6C9a71plAQdz9tPry6sB0DrhVa/8hkfz3/cCsDAkGcusJlv1zIZ/DtKUQJ9PdFh2XoOV05v2vyzMRzwMUc9PjvxdcTT5AwonCZQRAQAA",
|
||||
"class_url": "1&2&3&20&21&22&23&24&25&26&27&28&31&32&33&34&35&36&37&38&39&40",
|
||||
"cate_excludes": [
|
||||
"原纱央莉",
|
||||
"柚木TINA",
|
||||
"大桥未久",
|
||||
"仁科百华",
|
||||
"天海翼",
|
||||
"小川阿佐美",
|
||||
"三上悠亚",
|
||||
"长泽梓"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "奥斯卡",
|
||||
"url": "https://aosikazy.com",
|
||||
"parse_url": "",
|
||||
"class_name": "H4sIAFUldWYC/z2PbU6DQBCGb7P38AD+0aTngaC1VEoAU0CBFlG6WkvapsTQhepldmaXW8inP5953zwzA8GFMyrptE5swosM3QfIPDgvCXQJr2LYOgS9FMMdhrqI1RG8uIMdFT/mAFAxSAt+PvJqQ2D2jeFC7o+o2aOtKNHJCP4qqN3D/AOrL4K+if4aF4m8KwjO3drPh3MgPfHK73PSz3ihgMFGYEYL4mJjENWlje7zf01vk+YKYU0bEIySq4mkb3Kfk9tredBw2XStSJo6HOxmEcGVCk8qbF8aUbsZLAMViupj6xcsgfcco9fBD0HQ+RmDjStOJcw8Uq8/2yf7Dyc3TVFS5w/sThNDXwEAAA==",
|
||||
"class_url": "20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42&43&44&45&46&47",
|
||||
"cate_excludes": [
|
||||
"视频一区",
|
||||
"视频二区",
|
||||
"视频三区",
|
||||
"视频四区"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "乐播",
|
||||
"url": "https://lbapi9.com",
|
||||
"parse_url": "",
|
||||
"class_name": "H4sIAFMldWYC/y2QbW6CQBCGbzNX6U2a9BZSiqjIV6v1AwxoqxgtsX5EYRF6mZ3Z5RZdIn822eSdZ955OJvT5US6IfsnwKDkLOFZQe9p+5HmjiwbaBKLWOPZBw4Z0E8iKoc6iegdQXQjXJ85Y7gpAO8M1xnPj/y+AbxteX5WSfUCz1L6NDGdYD4G7F0ptOXhSLoPahq9oaKRZgHay7ozx8FWjAqQSbde+QolvC7gr6+S0ltIpw+1aaP7pSqr4tDsNkoF4OwbaH7BQSBnHlYGYLoRo4jiJQYpCOcN84IXM17FQFOHphFqV9RdaDKXotZLzF5VUVttVF0atCjcejekscGZBSLxFVAxSD8Djg6Ng8wQ7ACi9NG1WlX8YfRhp1X112lodXhCk6F2E7s11PupvEU8W8hV2J5N931z9tPLsxKAQfUP2nDGlJwBAAA=",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&19&20&21&22&23&24&25&26&27&28&29&30&31&32",
|
||||
"cate_excludes": [
|
||||
"暴力虐待",
|
||||
"学生校园",
|
||||
"玄幻仙侠",
|
||||
"明星偶像",
|
||||
"生活都市",
|
||||
"不伦恋情",
|
||||
"经验故事",
|
||||
"科学幻想",
|
||||
"唯美清纯",
|
||||
"网友自拍",
|
||||
"亚洲性爱",
|
||||
"欧美激情",
|
||||
"露出偷窥",
|
||||
"高跟丝袜",
|
||||
"卡通漫画",
|
||||
"Gif动图"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "老鸭",
|
||||
"url": "https://api.apilyzy.com",
|
||||
"parse_url": "",
|
||||
"class_name": "H4sIAFUldWYC/zWPYU6DQBCFbzP36E8v4Hm6qZZihUJVwIhCqixNLakUFVhoT7Mzu97CLdo/L3mTee/Lw6eDFDlNrrW9BwozircUpiplZxPbJyObggILixDbB6Btro4uvTC8Y4A3a+rf1f44mF5g1si2lD0HXEQ0ZrjgquwAB45sOloWgPVatpXpMAo4+6bY0buSJj6oaYJZJYVA3hmorUym58qbgrY2NHeQ1UZhdEHOSl81QF81vgUUuRQlgB++CWvvWbv2GdinuFmCOvhKrH46n4JHMD/o3dI4JzaHARWoqsNZCKNLnb/q3SdgwdV98n/9G3oq59Yvnjb47C8BAAA=",
|
||||
"class_url": "20&21&22&23&24&26&27&28&29&30&31&33&34&53&57&58&62&63&74&75&76&77&78&79"
|
||||
},
|
||||
{
|
||||
"name": "森林",
|
||||
"url": "http://senlinzy2.com",
|
||||
"parse_url": "",
|
||||
"class_name": "H4sIAFQldWYC/0VSzZLSQBB+m7579Gj5Ap68e7dKqzx5g10hQJbAruxGIUggIUF2I79KSEjyMtM9M29hB7K1h3RVV3f6+xu5zfF7nayF6vYBR5lIQtXe0nUDRJzSXSRHe64gkiHtt2S70q0/N0773MQRPRgY2Xi8BzwsxHEnc4srryUYpLI5wfkO8JTgPBbHjTgFQE8h78gzNKj+WFltXN+WazyV/aaI2zIJgVr98kZnQadHUMaSzC7WD1wBW//I6Yp4rGYOYM8Tia9nDq6/Adlzcp6q028/ffn88cNXkHuXD10u8PqajrnKPQyOoCe/WTTmUwxZ/mDFtChelY2IHezaLPXNe+abqHyDxg1XwHbI9ojUlCkf84clRX/4Dl6/ImumOhuQ2a1MZvS3jkYC2rDQf9DOtmyw5yuvQe0/dBoAyxWnH3KXYsvmyUq2NhgFcjAB7VmMQLatZozQyFRtV63JW0ecMuX5oO2DXg6p46PH3hSGap69YGwajbW9YCddXN4xamkEY2H/hmoh1U2Qg8NLw59qFNK80tEA9HWG8RUVtTJ/cqc4ikqpifmcZbwpJ3q2EIWNtUeOipkHcpPiuqdWe6AoELnLMrERg74v5MpQxS+VZZW32PwpnUnJEntmlcfFmwpUTe2XlC/58m/MELA71bUhvwQ5SKsHdPHpP+FuGXjCAgAA",
|
||||
"class_url": "20&22&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42&43&44&45&46&47&48&49&50&51&52&53&54&55&56&57&58&59&60&61&63&64&65&66&67&68&69&70&71&72&73&74&75&76&77",
|
||||
"cate_excludes": [
|
||||
"都市激情",
|
||||
"校园情事",
|
||||
"人妻縱情",
|
||||
"風俗倫理",
|
||||
"另类小说",
|
||||
"武侠古典",
|
||||
"长篇连载",
|
||||
"唯美写真",
|
||||
"网友自拍",
|
||||
"露出激情",
|
||||
"街拍偷拍",
|
||||
"丝袜美腿",
|
||||
"卡通漫画",
|
||||
"欧美风情"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "阿里BB",
|
||||
"url": "https://bbckzy1.cc",
|
||||
"parse_url": "",
|
||||
"class_name": "H4sIAFYldWYC/zXOXQqCQBSG4d3MPrpsV4mVKSj+UF44gUj+UA5hQY022mbmnOMyMtDL5+b9PlAd5FK3jVYFg6TXXanlB0MxA71sdJoZ9BggMhj1ASZn8E2KOFut0c3GrWQY58hrjFNKjQXc/kNLgScLRAztcYJN04YqyN8zOLyQu+O9QTNg+N2guQOnQnWbA/CudPtkWJc0eHApybaWkyqFa/gDXRGYEL4AAAA=",
|
||||
"class_url": "2&4&5&6&7&8&9&10&11&12&13&14&15&16&17"
|
||||
},
|
||||
{
|
||||
"name": "滴滴",
|
||||
"url": "https://didizy.com",
|
||||
"parse_url": "",
|
||||
"class_name": "H4sIAFUldWYC/zWPzVLCQBCE32buHn0R7564WOXBg1c05YaA8mclIbAloRQCQoRIKhWSEF9mZ3bzFi4abvNNd3VX4+QoskCkr/icAf4Bdh/RZiDSnIahCpj62gK5c+Ibcn3pP5yBWycQaUiOiaGLB/sE+qptNfzbaBfTG6e4VMG72sZQZbmKmCh8/BzC5QW2EmmZuhkU5zQz8Bih0atl/FjJsluD/C5FyrUu0jHQaCpXme6rvP7Z3NvRoby7v24APiUid+q/SC2phxYL2Weg43C+R+ZJPgV8mVXNMbaXVKyhMs1qwsj25LIDarBW7UXdJfcO/hhXN7cNoE2gE6gZyFYEVT4gxxNZR+TJL1aKp0hOAQAA",
|
||||
"class_url": "20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42&43&44",
|
||||
"cate_excludes": [
|
||||
"国产厂商",
|
||||
"水果派解说",
|
||||
"卡通动漫",
|
||||
"采集教程"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "奶香",
|
||||
"url": "https://naixxzy.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "精品国产|精品日韩|精品综合|精品小说|精品美图",
|
||||
"class_name": "H4sIAFUldWYC/zWOW3KCQBBFd9P7yALyk1S5niBGBKPim4QkWFo4vvAVkyACbma6Z9hFBiE/U3Wq5957xDHFvoZuwiMG4gY09jNvWYK4xGg3SsB9R+5O/5e0jW4KRVQaK2q2gIcX6gVydyC9C9SeSusgormobgG1X/VBvWLlg0i65H6grYv+O5A1ypyT8AJhGsDjCa56aDLSn6EQKTpLoPFETDS1E9DIwGCM5yHcVSSb5V7UmspaSE6bHA8wjtAP+fnA4zmg/8Vjp7zQhil3uj7lG5nRws6sBB6aImIqIOw6FBJoLShew+O93Os0fM2b0H6hJ0ZaEyoPktUl60GmJxhW5eLWQm8ntFyefgtrB7j9wShQlblGHqt5MlrzpA8qJ80jmVuKByDmHWwskW1ArYnBRV4/ZZL8AQZHJrmdAQAA",
|
||||
"class_url": "1&2&3&4&5&20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42&43&44&45&46&47",
|
||||
"cate_excludes": [
|
||||
"精品国产",
|
||||
"精品日韩",
|
||||
"精品综合",
|
||||
"精品小说",
|
||||
"精品美图",
|
||||
"都市言情",
|
||||
"暴力侵犯",
|
||||
"家庭伦伦",
|
||||
"性感身体",
|
||||
"角色扮演",
|
||||
"福利姬",
|
||||
"漫画连载"
|
||||
]
|
||||
}
|
||||
]
|
1
js/采集之王[合].js
Normal file
1
js/采集之王[合].js
Normal file
File diff suppressed because one or more lines are too long
226
js/采集分类生成器.py
Normal file
226
js/采集分类生成器.py
Normal file
@ -0,0 +1,226 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# File : 采集分类生成器.py
|
||||
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
|
||||
# Date : 2024/6/21
|
||||
|
||||
import os
|
||||
import json
|
||||
import gzip
|
||||
import base64
|
||||
|
||||
from urllib.parse import urljoin
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
from pprint import pprint
|
||||
import time
|
||||
|
||||
import requests
|
||||
|
||||
import warnings
|
||||
|
||||
# 关闭警告
|
||||
warnings.filterwarnings("ignore")
|
||||
requests.packages.urllib3.disable_warnings()
|
||||
|
||||
pool = ThreadPoolExecutor(max_workers=20) # 初始化线程池内线程数量为20
|
||||
|
||||
headers = {
|
||||
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
|
||||
'Connection': 'close' # 设置为关闭长连接
|
||||
}
|
||||
|
||||
timeout = 5 # 5秒
|
||||
|
||||
use_gzip = False
|
||||
|
||||
|
||||
def compress_and_encode(data: str):
|
||||
# 压缩数据
|
||||
compressed_data = gzip.compress(data.encode('utf-8'))
|
||||
# 对压缩数据进行Base64编码
|
||||
encoded_data = base64.b64encode(compressed_data).decode('utf-8')
|
||||
return encoded_data
|
||||
|
||||
|
||||
def decode_and_decompress(encoded_data: str):
|
||||
# 解码Base64数据
|
||||
decoded_data = base64.b64decode(encoded_data.encode('utf-8'))
|
||||
# 解压缩数据
|
||||
decompressed_data = gzip.decompress(decoded_data).decode('utf-8')
|
||||
return decompressed_data
|
||||
|
||||
|
||||
def get_classes(rec):
|
||||
classes = None
|
||||
if rec.get('url') and str(rec['url']).startswith('http'):
|
||||
_class_api = rec.get('api') or '/api.php/provide/vod/'
|
||||
_api = urljoin(str(rec['url']).rstrip('/'), _class_api)
|
||||
# _api = urljoin(rec['url'], '/api.php/provide/vod/at/json')
|
||||
print(_api)
|
||||
try:
|
||||
r = requests.get(_api, headers=headers, timeout=timeout, verify=False)
|
||||
ret = r.json()
|
||||
if rec.get('name') == '乐视资源':
|
||||
print('=======乐视=========')
|
||||
print(ret)
|
||||
# print(ret)
|
||||
classes = ret.get('class')
|
||||
except Exception as e:
|
||||
print(f'获取资源【{rec["name"]}】({_api})分类发生错误:{e}')
|
||||
|
||||
return classes
|
||||
|
||||
|
||||
def convert_class(classes, name=None):
|
||||
"""
|
||||
获取的分类转静态分类格式
|
||||
@param classes:
|
||||
@return:
|
||||
"""
|
||||
if name is None:
|
||||
name = ''
|
||||
if not classes:
|
||||
return {
|
||||
"name": "",
|
||||
"class_name": "",
|
||||
"class_url": "",
|
||||
}
|
||||
class_names = []
|
||||
class_urls = []
|
||||
for cls in classes:
|
||||
if cls.get('type_name') and cls.get('type_id'):
|
||||
class_urls.append(str(cls['type_id']))
|
||||
class_names.append(str(cls['type_name']))
|
||||
global use_gzip
|
||||
return {
|
||||
"name": name,
|
||||
"class_name": compress_and_encode('&'.join(class_names)) if use_gzip else '&'.join(class_names),
|
||||
"class_url": '&'.join(class_urls),
|
||||
}
|
||||
|
||||
|
||||
def get_convert_classes(rec):
|
||||
classes = get_classes(rec)
|
||||
classes = convert_class(classes, rec.get('name'))
|
||||
return classes
|
||||
|
||||
|
||||
def check_class(api, type_name, type_id, limit_count=6):
|
||||
_url = f'{api}?ac=detail&pg=1&t={type_id}'
|
||||
try:
|
||||
r = requests.get(_url, headers=headers, timeout=timeout, verify=False)
|
||||
ret = r.json()
|
||||
if not ret.get("list") or len(ret["list"]) < limit_count:
|
||||
print(f'获取资源 {api} 分类【{type_name}】数量为:{len(ret["list"])} 小于{limit_count}视为排除')
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f'获取资源 {_url} 分类【{type_name}】发生错误:{e}')
|
||||
return True
|
||||
|
||||
|
||||
def check_active(api):
|
||||
try:
|
||||
r = requests.get(api, headers=headers, timeout=timeout, verify=False)
|
||||
ret = r.json()
|
||||
if not ret.get("class"):
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f'检查api: {api} 存活发生错误:{e}')
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def main(fname='采集'):
|
||||
file_path = f'./{fname}.json'
|
||||
out_file_path = file_path.replace('.json', '静态.json')
|
||||
if not os.path.exists(file_path):
|
||||
exit(f'不存在采集文件路径:{file_path}')
|
||||
with open(file_path, encoding='utf-8') as f:
|
||||
data = f.read()
|
||||
records = json.loads(data)
|
||||
print(records)
|
||||
# for rec in records:
|
||||
# ret = get_convert_classes(rec)
|
||||
# pprint(ret)
|
||||
tasks = [pool.submit(get_convert_classes, rec) for rec in records] # 构造一个列表,循环向线程池内submit提交执行的方法
|
||||
pool.shutdown(wait=True) # 线程数等待所有线程结束,这里 卡住主线程
|
||||
results = [task.result() for task in tasks]
|
||||
print(results)
|
||||
new_records = []
|
||||
for record in records:
|
||||
rec_name = record["name"]
|
||||
if rec_name:
|
||||
has_name = [ret for ret in results if ret.get("name") == rec_name]
|
||||
if has_name:
|
||||
record.update(has_name[-1])
|
||||
new_records.append(record)
|
||||
pprint(new_records)
|
||||
print(f'转换静态数据成功记录数:{len(new_records)}')
|
||||
with open(out_file_path, mode='w+', encoding='utf-8') as f:
|
||||
f.write(json.dumps(new_records, ensure_ascii=False, indent=2))
|
||||
|
||||
|
||||
def main_exclude(fname='采集静态', max_workers=0):
|
||||
file_path = f'./{fname}.json'
|
||||
if not os.path.exists(file_path):
|
||||
exit(f'不存在采集文件路径:{file_path}')
|
||||
with open(file_path, encoding='utf-8') as f:
|
||||
data = f.read()
|
||||
records = json.loads(data)
|
||||
if len(records) < 1 or not records[0].get('class_name'):
|
||||
exit('输入数据有误,疑似不是静态数据')
|
||||
print(records)
|
||||
new_records = []
|
||||
for rec in records:
|
||||
new_rec = rec.copy()
|
||||
if rec.get('api'):
|
||||
api_url = urljoin(rec['url'], rec['api'])
|
||||
else:
|
||||
api_url = urljoin(rec['url'], '/api.php/provide/vod/')
|
||||
print(api_url)
|
||||
cate_excludes = []
|
||||
if not check_active(api_url):
|
||||
print(f'{rec["name"]} ({rec["url"]})视为不存活,跳过分类检测')
|
||||
else:
|
||||
class_names = decode_and_decompress(rec['class_name']).split('&')
|
||||
class_urls = rec['class_url'].split('&')
|
||||
rec_pool = ThreadPoolExecutor(max_workers=max_workers or len(class_names)) # 初始化线程池内线程数量为分类数量
|
||||
tasks = []
|
||||
for i in range(len(class_names)):
|
||||
type_name = class_names[i]
|
||||
type_id = class_urls[i]
|
||||
tasks.append(rec_pool.submit(check_class, api_url, type_name, type_id))
|
||||
rec_pool.shutdown(wait=True) # 线程数等待所有线程结束,这里 卡住主线程
|
||||
results = [task.result() for task in tasks]
|
||||
print(results)
|
||||
for i in range(len(class_names)):
|
||||
type_name = class_names[i]
|
||||
# type_id = class_urls[i]
|
||||
if not results[i]:
|
||||
cate_excludes.append(type_name)
|
||||
if len(cate_excludes) > 0:
|
||||
new_rec['cate_excludes'] = cate_excludes
|
||||
new_records.append(new_rec)
|
||||
|
||||
with open(file_path, mode='w+', encoding='utf-8') as f:
|
||||
f.write(json.dumps(new_records, ensure_ascii=False, indent=2))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
use_gzip = True
|
||||
fmode = str(input('请输入处理文件方式(0:生成分类 1:添加分类过滤),留空默认为生成静态分类:\n'))
|
||||
ftips = '采集静态' if fmode == '1' else '采集'
|
||||
fname = str(input(f'请输入文件名(q结束程序),留空默认为{ftips}:\n'))
|
||||
t1 = time.time()
|
||||
if fname == 'q':
|
||||
exit('已主动结束脚本')
|
||||
if not fmode or fmode == '0':
|
||||
fname = fname or '采集'
|
||||
main(fname)
|
||||
elif fmode == '1':
|
||||
fname = fname or '采集静态'
|
||||
main_exclude(fname, 10)
|
||||
else:
|
||||
exit(f'未知的处理类型:{fmode}')
|
||||
t2 = time.time()
|
||||
print(f'本次程序运行耗时:{round(t2 - t1, 2)}秒')
|
88
js/采集转换器.py
Normal file
88
js/采集转换器.py
Normal file
@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# File : 采集转换器.py
|
||||
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
|
||||
# Date : 2024/7/4
|
||||
|
||||
import json
|
||||
import requests
|
||||
from urllib.parse import urlsplit
|
||||
from collections import OrderedDict
|
||||
|
||||
|
||||
def get_host(url):
|
||||
"""
|
||||
获取主页地址
|
||||
@param url:
|
||||
@return:
|
||||
"""
|
||||
ret = urlsplit(url)
|
||||
return f'{ret.scheme}://{ret.netloc}'
|
||||
|
||||
|
||||
def get_sid(url):
|
||||
"""
|
||||
获取id主页
|
||||
@param url:
|
||||
@return:
|
||||
"""
|
||||
ret = urlsplit(url)
|
||||
return ret.netloc
|
||||
|
||||
|
||||
def get_api(url):
|
||||
"""
|
||||
获取接口api
|
||||
@param url:
|
||||
@return:
|
||||
"""
|
||||
ret = urlsplit(url)
|
||||
return ret.path.rstrip('/') + '/'
|
||||
|
||||
|
||||
def delete_same(data, key='url'):
|
||||
"""
|
||||
字典列表去重,按字典的某个key
|
||||
@param data:
|
||||
@param key:
|
||||
@return:
|
||||
"""
|
||||
unique_data = list(OrderedDict((d[key], d) for d in data).values())
|
||||
if key == 'sid':
|
||||
for site in unique_data:
|
||||
del site['sid']
|
||||
return unique_data
|
||||
|
||||
|
||||
def main(zy_url="https://cdn.jsdelivr.net/gh/waifu-project/v1@latest/zy.json"):
|
||||
r = requests.get(zy_url)
|
||||
ret = r.json()
|
||||
sites = ret['sites']['data']
|
||||
sites = [site for site in sites if site.get('type') and site['type'] == 1]
|
||||
print(f'共计发现type1的站点:{len(sites)}条记录')
|
||||
covert_sites = []
|
||||
for site in sites:
|
||||
if site.get("name") and site.get("api"):
|
||||
surl = site['api']
|
||||
host = get_host(surl)
|
||||
api = get_api(surl)
|
||||
sid = get_sid(surl)
|
||||
cvalue = {
|
||||
"sid": sid,
|
||||
"name": site["name"],
|
||||
"url": host,
|
||||
"parse_url": "",
|
||||
"cate_exclude": ""
|
||||
}
|
||||
if api != '/api.php/provide/vod/':
|
||||
cvalue["api"] = api
|
||||
covert_sites.append(cvalue)
|
||||
print(f'转换完成采集之王的站点:{len(covert_sites)}条记录')
|
||||
covert_sites = delete_same(covert_sites, 'sid')
|
||||
print(f'去重后的采集之王的站点:{len(covert_sites)}条记录')
|
||||
with open('采集[zy].json', mode='w+', encoding='utf-8') as f:
|
||||
f.write(json.dumps(covert_sites, ensure_ascii=False, indent=4))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
22
lib/310直播.js
Normal file
22
lib/310直播.js
Normal file
@ -0,0 +1,22 @@
|
||||
var rule = {
|
||||
title:'310直播',
|
||||
host:'http://www.310.tv',
|
||||
url:'/?s=0&t=1&a=fyclass&g=fypage',
|
||||
searchUrl:'',
|
||||
searchable:0,
|
||||
quickSearch:0,
|
||||
class_name:'热门&足球&篮球',
|
||||
class_url:'0&1&2',
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
play_parse:false,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
double:false,
|
||||
推荐:'*',
|
||||
一级:'.list_content a;.jiabifeng&&p:lt(5)&&Text;.feleimg img&&src;a&&t-nzf-o;a&&href',
|
||||
二级:'*',
|
||||
搜索:'',
|
||||
}
|
49
lib/348.json
Normal file
49
lib/348.json
Normal file
@ -0,0 +1,49 @@
|
||||
{
|
||||
|
||||
"作者":"荷城茶秀",
|
||||
|
||||
"站名":"348影视",
|
||||
|
||||
"主页url":"https://348z.com/",
|
||||
|
||||
"简介":"+详情:&&</div>",
|
||||
|
||||
"导演":"导演:&&</li>",
|
||||
|
||||
"主演":"主演:&&</li>",
|
||||
|
||||
"影片状态":"状态:&&</li>",
|
||||
|
||||
"影片类型":"data vodTag\">&&</li>",
|
||||
|
||||
"数组":"list-width volistwidthb\">&&</li>",
|
||||
|
||||
"标题":"title=\"&&\"",
|
||||
|
||||
"副标题":"list-remarks hidden\">&&</span>",
|
||||
|
||||
"图片":"data-original=\"&&\"",
|
||||
|
||||
"链接":"href=\"&&\"",
|
||||
|
||||
"搜索url":"/vodsearch.html?wd={wd}",
|
||||
|
||||
"搜索模式":"1",
|
||||
|
||||
"搜索数组":"img lazy eclazy br\"&&</a>",
|
||||
|
||||
"搜索标题":"title=\"&&\"",
|
||||
|
||||
"搜索副标题":"list-remarks hidden\">&&</span>",
|
||||
|
||||
"搜索图片":"data-original=\"&&\"",
|
||||
|
||||
"搜索链接":"href=\"&&\"",
|
||||
|
||||
"线路数组":"data-from=&&</a>[不包含:超清资源#MY][排序:极速2]",
|
||||
|
||||
"线路标题":">&&</em>[替换:<em>>>共]+集",
|
||||
|
||||
"分类url":"https://348z.com/vodshow/{area}{by}/id/{cateId}/page/{catePg}/year/{year}.html;;ak",
|
||||
|
||||
"分类":"电影$1#电视剧$2#综艺$3#动漫$4"}
|
1
lib/360吧[球].js
Normal file
1
lib/360吧[球].js
Normal file
@ -0,0 +1 @@
|
||||
Z2xvYmFsVGhpcy5nZXRWaWRlb3MgPSBmdW5jdGlvbiAobGluaywga2V5KSB7CiAgICBsZXQgaHRtbCA9IHJlcXVlc3QobGluayk7CiAgICBsZXQganNvbiA9IEpTT04ucGFyc2UoaHRtbCk7CiAgICBsZXQgZGF0YSA9IGpzb24uZGF0YTsKICAgIGRhdGEgPSBkYXRhW2tleV07CiAgICBsZXQgdmlkZW9zID0gZGF0YS5tYXAoKG4pID0+IHsKICAgICAgICBsZXQgaWQgPSBuLnVybDsKICAgICAgICBsZXQgbmFtZSA9IG4ubGVhZ3VlX25hbWVfemggKyAnICcgKyBuLmhvbWVfdGVhbV96aCArICcgVlMgJyArIG4uYXdheV90ZWFtX3poOwogICAgICAgIGxldCBwaWMgPSBuLmNvdmVyOwogICAgICAgIGxldCByZW1hcmtzID0gbi5uaWNrbmFtZTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICB2b2RfaWQ6IGlkLAogICAgICAgICAgICB2b2RfbmFtZTogbmFtZSwKICAgICAgICAgICAgdm9kX3BpYzogcGljLAogICAgICAgICAgICB2b2RfcmVtYXJrczogcmVtYXJrcywKICAgICAgICB9OwogICAgfSk7CiAgICByZXR1cm4gdmlkZW9zCn0KdmFyIHJ1bGUgPSB7CiAgICDnsbvlnos6ICflvbHop4YnLC8v5b2x6KeGfOWQrOS5pnzmvKvnlLt85bCP6K+0CiAgICB0aXRsZTogJzM2MOWQp1vnkINdJywKICAgIGhvc3Q6ICdodHRwczovL20uMzYwYmEuY28vJywKICAgIGhvbWVVcmw6ICcvYXBpL3dlYi9oNV9pbmRleCcsCiAgICB1cmw6ICcvYXBpL3dlYi9saXZlX2xpc3RzL2Z5Y2xhc3MnLAogICAgc2VhcmNoVXJsOiAnL2FwaS93ZWIvc2VhcmNoP2tleXdvcmQ9KionLAogICAgc2VhcmNoYWJsZTogMiwKICAgIHF1aWNrU2VhcmNoOiAwLAogICAgZmlsdGVyYWJsZTogMCwKICAgIGhlYWRlcnM6IHsKICAgICAgICAnVXNlci1BZ2VudCc6ICdNT0JJTEVfVUEnLAogICAgfSwKICAgIHRpbWVvdXQ6IDUwMDAsCiAgICBjbGFzc19uYW1lOiAn5YWo6YOoJui2s+eQgybnr67nkIMm57u85ZCIJywKICAgIGNsYXNzX3VybDogJzEmMiYzJjk5JywKICAgIHBsYXlfcGFyc2U6IHRydWUsCiAgICBwYWdlY291bnQ6IHsKICAgICAgICAiMSI6IDEsCiAgICAgICAgIjIiOiAxLAogICAgICAgICIzIjogMSwKICAgICAgICAiOTkiOiAxLAogICAgfSwKICAgIGxhenk6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgaW5wdXQgPSB7cGFyc2U6IDAsIHVybDogaW5wdXQsIGhlYWRlcjogcnVsZS5oZWFkZXJzfTsKICAgIH0pLAogICAg6aKE5aSE55CGOiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIE9iamVjdC5hc3NpZ24ocnVsZS5oZWFkZXJzLCB7CiAgICAgICAgICAgICdSZWZlcmVyJzogcnVsZS5ob3N0LAogICAgICAgICAgICAnT3JpZ2luJzogcnVsZS5ob3N0LAogICAgICAgIH0pOwogICAgfSksCiAgICDmjqjojZA6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgVk9EUyA9IGdldFZpZGVvcyhpbnB1dCwgJ2hvdF9tYXRjaGVzJyk7CgogICAgfSksCiAgICDkuIDnuqc6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgVk9EUyA9IFtdOwogICAgICAgIGlmIChNWV9QQUdFIDw9IDEpIHsKICAgICAgICAgICAgVk9EUyA9IGdldFZpZGVvcyhpbnB1dCwgJ2RhdGEnKTsKICAgICAgICB9CiAgICB9KSwKICAgIOS6jOe6pzogJyonLAogICAg5pCc57SiOiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIFZPRFMgPSBbXTsKICAgICAgICBpZiAoTVlfUEFHRSA8PSAxKSB7CiAgICAgICAgICAgIFZPRFMgPSBnZXRWaWRlb3MoaW5wdXQsICdiYWxsJyk7CiAgICAgICAgfQogICAgfSksCn0=
|
1
lib/360影视[官].js
Normal file
1
lib/360影视[官].js
Normal file
File diff suppressed because one or more lines are too long
66
lib/4kav.json
Normal file
66
lib/4kav.json
Normal file
@ -0,0 +1,66 @@
|
||||
{
|
||||
"规则名": "4K",
|
||||
"规则作者": "香雅情",
|
||||
"请求头参数": "User-Agent$Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1#Referer$https://4k-av.com/",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "0",
|
||||
"是否开启获取首页数据": "1",
|
||||
"首页推荐链接": "https://4k-av.com",
|
||||
"首页列表数组规则": "#recommlist",
|
||||
"首页片单列表数组规则": "ul&&li",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"首页片单标题": "h2&&Text",
|
||||
"首页片单链接": "a&&href",
|
||||
"首页片单图片": "img&&src",
|
||||
"首页片单副标题": "span&&Text",
|
||||
"首页片单链接加前缀": "https://4k-av.com",
|
||||
"分类起始页码": "0",
|
||||
"分类链接": "https://4k-av.com/{cateId}/page-{catePg}.html",
|
||||
"分类名称": "电影&电视剧",
|
||||
"分类名称替换词": "movie&tv",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": "#MainContent_newestlist&&.NTMitem",
|
||||
"分类片单是否Jsoup写法": "1",
|
||||
"分类片单标题": "h2&&Text",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": "img&&src",
|
||||
"分类片单副标题": "div.resyear&&Text",
|
||||
"分类片单链接加前缀": "https://4k-av.com",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1#Referer$https://4k-av.com/",
|
||||
"搜索链接": "https://4k-av.com/s?q={wd}",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": "#MainContent_newestlist&&.NTMitem",
|
||||
"搜索片单是否Jsoup写法": "1",
|
||||
"搜索片单图片": "img&&src",
|
||||
"搜索片单标题": "h2&&Text",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": "div.resyear&&Text",
|
||||
"搜索片单链接加前缀": "https://4k-av.com",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "0",
|
||||
"直接播放链接加前缀": "",
|
||||
"直接播放链接加后缀": "#isVideo=true#",
|
||||
"直接播放直链视频请求头": "",
|
||||
"详情是否Jsoup写法": "1",
|
||||
"类型详情": "#MainContent_tags&&Text!标签: ",
|
||||
"年代详情": "label:contains(年份: )&&a&&Text",
|
||||
"地区详情": "",
|
||||
"演员详情": "h2&&Text",
|
||||
"简介详情": "p&&Text",
|
||||
"线路列表数组规则": "",
|
||||
"线路标题": "",
|
||||
"播放列表数组规则": "ul#rtlist",
|
||||
"选集列表数组规则": "ul&&li",
|
||||
"选集标题链接是否Jsoup写法": "1",
|
||||
"选集标题": "span&&Text",
|
||||
"选集链接": "img&&src!screenshot.jpg",
|
||||
"是否反转选集序列": "0",
|
||||
"选集链接加前缀": "",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "0",
|
||||
"是否开启手动嗅探": "1",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
1
lib/4k剧院.js
Normal file
1
lib/4k剧院.js
Normal file
File diff suppressed because one or more lines are too long
61
lib/88看球.js
Normal file
61
lib/88看球.js
Normal file
@ -0,0 +1,61 @@
|
||||
var rule = {
|
||||
title:'88看球',
|
||||
// host:'http://www.88kanqiu.cc',
|
||||
host:'http://www.88kanqiu.bar/',
|
||||
url: "/match/fyclass/live",
|
||||
searchUrl: "",
|
||||
searchable: 0,
|
||||
quickSearch: 0,
|
||||
class_parse: ".nav-pills li;a&&Text;a&&href;/match/(\\d+)/live",
|
||||
headers: {
|
||||
"User-Agent": "PC_UA",
|
||||
},
|
||||
timeout: 5000,
|
||||
play_parse: true,
|
||||
pagecount:{"1":1,"2":1,"4":1,"22":1,"8":1,"9":1,"10":1,"14":1,"15":1,"12":1,"13":1,"16":1,"28":1,"7":1,"11":1,"33":1,"27":1,"23":1,"26":1,"3":1,"21":1,"18":1},
|
||||
lazy: `js:
|
||||
if(/embed=/.test(input)) {
|
||||
let url = input.match(/embed=(.*?)&/)[1];
|
||||
url = base64Decode(url);
|
||||
input = {
|
||||
jx:0,
|
||||
url: url.split('#')[0],
|
||||
parse: 0
|
||||
}
|
||||
} else if (/\?url=/.test(input)){
|
||||
input = {
|
||||
jx:0,
|
||||
url: input.split('?url=')[1].split('#')[0],
|
||||
parse: 0
|
||||
}
|
||||
} else {
|
||||
input
|
||||
}
|
||||
`,
|
||||
limit: 6,
|
||||
double: false,
|
||||
推荐: "*",
|
||||
一级: ".list-group .group-game-item;.d-none&&Text;img&&src;.btn&&Text;a&&href",
|
||||
二级: {
|
||||
title: ".game-info-container&&Text;.customer-navbar-nav li&&Text",
|
||||
img: "img&&src",
|
||||
desc: ";;;div.team-name:eq(0)&&Text;div.team-name:eq(1)&&Text",
|
||||
content: "div.game-time&&Text",
|
||||
tabs: "js:TABS=['实时直播']",
|
||||
lists: `js:
|
||||
LISTS = [];
|
||||
let html = request(input.replace('play', 'play-url'));
|
||||
let pdata = JSON.parse(html).data;
|
||||
pdata = pdata.slice(6);
|
||||
pdata = pdata.slice(0, -2);
|
||||
pdata = base64Decode(pdata);
|
||||
// log(pdata);
|
||||
let jo = JSON.parse(pdata).links;
|
||||
let d = jo.map(function (it) {
|
||||
return it.name + '$' + urlencode(it.url)
|
||||
});
|
||||
LISTS.push(d)
|
||||
`,
|
||||
},
|
||||
搜索: "",
|
||||
};
|
21
lib/98影视.json
Normal file
21
lib/98影视.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
|
||||
"作者":"拾光",
|
||||
|
||||
"站名":"玖八",
|
||||
|
||||
"主页url":"http://www.98dyb.com/",
|
||||
|
||||
"简介":"❄冬天❄提醒您请勿相信广告,以免上当受骗!+<span class=\"detail-content\" style=*>&&</span>",
|
||||
|
||||
"影片状态":"状态:&&</p>",
|
||||
|
||||
"搜索url":"/search.php;post;searchword={wd}",
|
||||
|
||||
"线路数组":"<h3&&/h3>",
|
||||
|
||||
"线路标题":"+src=*>&&<",
|
||||
|
||||
"分类url":"http://www.98dyb.com/{cateId}/index{catePg}.html[http://www.7xdy.com/{cateId}/index.html];;k",
|
||||
|
||||
"分类":"电影$dianyingpian#电视剧$dianshiju#综艺$zongyi#动漫$dongman"}
|
70
lib/DJyyyyw.json
Normal file
70
lib/DJyyyyw.json
Normal file
@ -0,0 +1,70 @@
|
||||
{
|
||||
"规则名": "DJ呦呦音乐网",
|
||||
"规则作者": "",
|
||||
"请求头参数": "电脑",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "0",
|
||||
"是否开启获取首页数据": "1",
|
||||
"首页推荐链接": "http://www.djuu.com",
|
||||
"首页列表数组规则": "body&&.recommended-list",
|
||||
"首页片单列表数组规则": "li",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"首页片单标题": ".index-music-title&&Text",
|
||||
"首页片单链接": "a&&href",
|
||||
"首页片单图片": "img&&src",
|
||||
"首页片单副标题": ".index-music-hit&&b&&Text",
|
||||
"首页片单链接加前缀": "http://www.djuu.com",
|
||||
"首页片单链接加后缀": "",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "http://www.djuu.com/{cateId}_{catePg}.html",
|
||||
"分类名称": "独家舞曲&迪高串烧&中文串烧&外语串烧&中英串烧&喊麦串烧&慢摇串烧&中文串烧&外语串烧&中英串烧&酒吧串烧&喊麦串烧&慢歌串烧&中文慢歌&外语慢歌&中英慢歌&中文Remix&Club&Electro&ProgHouse&VinaHouse&Funky/FunkyHouse&Melbourne&ElectroHouse&Bounce/Vina Bounce&车载版&更多...&外文Remix&中国风&越南鼓&车载版&HOUSE&Electro/Vina/Bass&Bounce/Vina&DeepHouse&FunkyHouse&ProgHouse&BounceHouse&ElectroDutch&ElectroMelbourne&Speed/ClubHouse&TechHouse/Vocal&Nudisco/DiscoHouse&Future/Bigroom/Edm&更多...&霓虹风格&HipHop&RnB&Funky/Rap&Trap&Rock&Pop&Reggae/Moombah&Dubstep&DanceHall&BreakBeat&暖场&蓝调&中文&更多...&Mashup&Mashup&PartyBreak&E.D.M&Remixes&变速/反差&更多...&中文DISCO&国潮中文&DISCO&外文DISCO&Hardstyle/HardBounce&Disco/PopDance&PopTechno&TechnoTrance&更多...&交谊舞曲&快三&慢三&中三&快四&中四&慢四&平四&中慢四&并四&贴面慢四&伦巴&桑巴&六步&恰恰&慢中四&靠步&拉并&牛仔&探戈&摇并&兔子舞&十四步&三步踩&拉丁舞&广场舞&古特巴&慢伦巴&南京小拉&三十二步&更多...",
|
||||
"分类名称替换词": "exclusive/115&djlist/1&djlist/13&djlist/14&djlist/96&djlist/12&djlist/2&djlist/16&djlist/17&djlist/98&djlist/97&djlist/15&djlist/3&djlist/18&djlist/19&djlist/20&djlist/4&djlist/21&djlist/22&djlist/26&djlist/107&djlist/99&djlist/25&djlist/23&djlist/24&djlist/41&djlist/27&djlist/5&djlist/28&djlist/110&djlist/29&djlist/6&djlist/30&djlist/31&djlist/36&djlist/100&djlist/35&djlist/38&djlist/33&djlist/32&djlist/34&djlist/37&djlist/39&djlist/40&djlist/42&djlist/7&djlist/43&djlist/94&djlist/44&djlist/48&djlist/50&djlist/49&djlist/45&djlist/46&djlist/47&djlist/95&djlist/51&djlist/52&djlist/53&djlist/54&djlist/8&djlist/55&djlist/56&djlist/108&djlist/57&djlist/58&djlist/59&djlist/9&djlist/60&djlist/61&djlist/10&djlist/114&djlist/62&djlist/63&djlist/64&djlist/65&djlist/11&djlist/71&djlist/73&djlist/72&djlist/66&djlist/67&djlist/69&djlist/68&djlist/112&djlist/70&djlist/111&djlist/74&djlist/78&djlist/80&djlist/75&djlist/82&djlist/79&djlist/81&djlist/85&djlist/76&djlist/77&djlist/91&djlist/90&djlist/89&djlist/88&djlist/86&djlist/87&djlist/83&djlist/92&djlist/84&djlist/93",
|
||||
"筛选数据": {},
|
||||
//"筛选数据": "ext",
|
||||
//{cateId}
|
||||
"筛选子分类名称": "",
|
||||
"筛选子分类替换词": "",
|
||||
//{class}
|
||||
"筛选类型名称": "",
|
||||
"筛选类型替换词": "*",
|
||||
//{area}
|
||||
"筛选地区名称": "",
|
||||
"筛选地区替换词": "*",
|
||||
//{year}
|
||||
"筛选年份名称": "",
|
||||
"筛选年份替换词": "*",
|
||||
//{lang}
|
||||
"筛选语言名称": "",
|
||||
"筛选语言替换词": "*",
|
||||
//{by}
|
||||
"筛选排序名称": "时间&人气&评分",
|
||||
"筛选排序替换词": "time&hits&score",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": ".list_musiclist&&tr:has(.isgood_list)",
|
||||
"分类片单是否Jsoup写法": "1",
|
||||
"分类片单标题": "a&&title",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": "img&&src",
|
||||
"分类片单副标题": ".sc_1&&Text",
|
||||
"分类片单链接加前缀": "http://www.djuu.com",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$电脑",
|
||||
"搜索链接": "http://www.djuu.com/search?musicname={wd}&list=2&cid=0&page=1",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": ".list_musiclist&&tr:has(.isgood_list)",
|
||||
"搜索片单是否Jsoup写法": "1",
|
||||
"搜索片单图片": "img&&src",
|
||||
"搜索片单标题": "a&&title",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": ".sc_2&&Text",
|
||||
"搜索片单链接加前缀": "http://www.djuu.com",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "1",
|
||||
"直接播放链接加前缀": "",
|
||||
"直接播放链接加后缀": "",
|
||||
"直接播放直链视频请求头": "",
|
||||
"是否开启手动嗅探": "1",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m4a#.mp3#.aac#.m3u8#.flv#video/tos",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
210
lib/HDmoli.json
Normal file
210
lib/HDmoli.json
Normal file
@ -0,0 +1,210 @@
|
||||
{
|
||||
|
||||
"作者":"荷城茶秀",
|
||||
|
||||
"站名":"HD魔力",
|
||||
|
||||
"主页url":"https://www.hdmoli.pro/",
|
||||
|
||||
"简介":"简介:&&</p>",
|
||||
|
||||
"导演":"导演:&&</p>",
|
||||
|
||||
"主演":"演员:&&</p>",
|
||||
|
||||
"影片类型":"分类:&&<span class=\"split-line\">",
|
||||
|
||||
"影片地区":"地区:&&<span class=\"split-line\">",
|
||||
|
||||
"影片年代":"年份:&&<span class=\"split-line\">",
|
||||
|
||||
"影片状态":"15px;\">&&</h1>",
|
||||
|
||||
"数组":"myui-vodlist__thumb&&</a>",
|
||||
|
||||
"图片":"data-original=\"&&\"",
|
||||
|
||||
"标题":"title=\"&&\"",
|
||||
|
||||
"副标题":"pic-text text-right\">&&</span>",
|
||||
|
||||
"链接":"href=\"&&\"",
|
||||
|
||||
"搜索url":"/search.php?searchword={wd}",
|
||||
|
||||
"搜索数组":"vodlist__thumb&&</a>",
|
||||
|
||||
"搜索标题":"title=\"&&\"",
|
||||
|
||||
"搜索副标题":"pic-text text-right\">&&</span>",
|
||||
|
||||
"搜索图片":"data-original=\"&&\"",
|
||||
|
||||
"搜索链接":"href=\"&&\"",
|
||||
|
||||
"线路数组":"data-toggle=&&</li>[替换:线路1>>在线播放①#线路2>>在线播放②#线路3>>在线播放③]",
|
||||
|
||||
"线路标题":">&&</a>",
|
||||
|
||||
"播放数组":"-content__list sort-list&&</ul>",
|
||||
|
||||
"播放标题":">&&<",
|
||||
|
||||
"播放列表":"<a&&/a>",
|
||||
|
||||
"分类url":"https://www.hdmoli.pro/search.php?page={catePg}&searchtype=5&order={by}&tid={cateId}&area={area}&year={year}&letter=&yuyan=&state=&money=&ver=&jq={class};;ak",
|
||||
|
||||
"分类":"电影$1#电视剧$2#动漫$41",
|
||||
|
||||
"筛选":{
|
||||
"1":[
|
||||
{"key":"cateId","name":"类型","value":[
|
||||
{"n":"全部类型","v":""},
|
||||
{"n":"动作","v":"5"},
|
||||
{"n":"爱情","v":"6"},
|
||||
{"n":"科幻","v":"7"},
|
||||
{"n":"恐怖","v":"8"},
|
||||
{"n":"战争","v":"9"},
|
||||
{"n":"喜剧","v":"10"},
|
||||
{"n":"纪录片","v":"11"},
|
||||
{"n":"剧情","v":"12"},
|
||||
{"n":"犯罪","v":"30"},
|
||||
{"n":"动画","v":"32"}
|
||||
]
|
||||
},
|
||||
{"key":"class","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":"运动"},
|
||||
{"n":"喜剧","v":"喜剧"}
|
||||
]
|
||||
},
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部地区","v":""},
|
||||
{"n":"中国","v":"中国"},
|
||||
{"n":"美国","v":"美国"},
|
||||
{"n":"韩国","v":"韩国"},
|
||||
{"n":"英国","v":"英国"},
|
||||
{"n":"日本","v":"日本"},
|
||||
{"n":"泰国","v":"泰国"},
|
||||
{"n":"其他","v":"其他"}
|
||||
]
|
||||
},
|
||||
{"key":"year","name":"时间","value":[
|
||||
{"n":"全部时间","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"more","v":"more"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"评分排序","v":"douban"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2":[
|
||||
{"key":"cateId","name":"类型","value":[
|
||||
{"n":"全部类型","v":""},
|
||||
{"n":"中国","v":"14"},
|
||||
{"n":"美剧","v":"15"},
|
||||
{"n":"韩剧","v":"16"},
|
||||
{"n":"日剧","v":"13"},
|
||||
{"n":"英剧","v":"34"},
|
||||
{"n":"泰剧","v":"29"},
|
||||
{"n":"综艺","v":"39"},
|
||||
{"n":"其他","v":"38"}
|
||||
]
|
||||
},
|
||||
{"key":"class","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":"运动"},
|
||||
{"n":"喜剧","v":"喜剧"}
|
||||
]
|
||||
},
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部地区","v":""},
|
||||
{"n":"中国","v":"中国"},
|
||||
{"n":"美国","v":"美国"},
|
||||
{"n":"韩国","v":"韩国"},
|
||||
{"n":"英国","v":"英国"},
|
||||
{"n":"日本","v":"日本"},
|
||||
{"n":"泰国","v":"泰国"},
|
||||
{"n":"其他","v":"其他"}
|
||||
]
|
||||
},
|
||||
{"key":"year","name":"时间","value":[
|
||||
{"n":"全部时间","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"more","v":"more"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"评分排序","v":"douban"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"41":[
|
||||
{"key":"cateId","name":"地区","value":[
|
||||
{"n":"全部地区","v":""},
|
||||
{"n":"日本","v":"42"},
|
||||
{"n":"其他","v":"43"}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
2286
lib/MTV.json
Normal file
2286
lib/MTV.json
Normal file
File diff suppressed because it is too large
Load Diff
268
lib/Vidhub.json
Normal file
268
lib/Vidhub.json
Normal file
@ -0,0 +1,268 @@
|
||||
{
|
||||
"作者": "菜妮丝https://cainisi.cf",
|
||||
"站名": "Vidhub",
|
||||
"主页url": "https://vidhub2.cc",
|
||||
|
||||
"分类": "电影$1#连续剧$2#综艺$3#动漫$4",
|
||||
|
||||
"分类url": "https://vidhub2.cc/vodshow/{cateId}-{area}-{by}-{class}-----{catePg}---{year}.html",
|
||||
|
||||
"数组": "module-item\">&&</div>",
|
||||
"图片": "data-src=\"&&\"",
|
||||
|
||||
"搜索模式": "0",
|
||||
"搜索后缀": "/voddetail/",
|
||||
|
||||
"导演": "导演:&&</div>",
|
||||
"主演": "主演:&&</div>",
|
||||
"简介": "剧情:</span>&&</span>",
|
||||
|
||||
"线路数组": "data-dropdown-value=&&</div>",
|
||||
"线路标题": "<span>&&</small>[替换:</span><small>>>]+集",
|
||||
|
||||
"播放数组": "<div class=\"sort-item&&</div>",
|
||||
|
||||
"筛选":{
|
||||
"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":"25"},
|
||||
{"n":"奇幻片","v":"26"},
|
||||
{"n":"纪录片","v":"30"},
|
||||
{"n":"动画电影","v":"27"}]},
|
||||
|
||||
{"key":"class","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":"悬疑"},
|
||||
{"n":"惊悚","v":"惊悚"},
|
||||
{"n":"经典","v":"经典"},
|
||||
{"n":"青春","v":"青春"},
|
||||
{"n":"文艺","v":"文艺"},
|
||||
{"n":"微电影","v":"微电影"},
|
||||
{"n":"古装","v":"古装"},
|
||||
{"n":"历史","v":"历史"},
|
||||
{"n":"运动","v":"运动"},
|
||||
{"n":"农村","v":"农村"},
|
||||
{"n":"儿童","v":"儿童"},
|
||||
{"n":"网络电影","v":"网络电影"}]},
|
||||
|
||||
{"key":"area","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":"其他"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}]}],
|
||||
|
||||
"2":[
|
||||
{"key":"cateId","name":"类型","value":[
|
||||
{"n":"全部","v":"2"},
|
||||
{"n":"内地剧","v":"13"},
|
||||
{"n":"港台剧","v":"14"},
|
||||
{"n":"日韩剧","v":"15"},
|
||||
{"n":"欧美剧","v":"16"},
|
||||
{"n":"泰国剧","v":"28"}]},
|
||||
|
||||
{"key":"class","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":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"内地","v":"内地"},
|
||||
{"n":"韩国","v":"韩国"},
|
||||
{"n":"香港","v":"香港"},
|
||||
{"n":"台湾","v":"台湾"},
|
||||
{"n":"日本","v":"日本"},
|
||||
{"n":"美国","v":"美国"},
|
||||
{"n":"泰国","v":"泰国"},
|
||||
{"n":"英国","v":"英国"},
|
||||
{"n":"新加坡","v":"新加坡"},
|
||||
{"n":"其他","v":"其他"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}]}],
|
||||
|
||||
"3":[
|
||||
{"key":"class","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":"求职"}]},
|
||||
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"内地","v":"内地"},
|
||||
{"n":"港台","v":"港台"},
|
||||
{"n":"日韩","v":"日韩"},
|
||||
{"n":"欧美","v":"欧美"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}]}],
|
||||
|
||||
"4":[
|
||||
{"key":"class","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":"原创"},
|
||||
{"n":"亲子","v":"亲子"},
|
||||
{"n":"益智","v":"益智"},
|
||||
{"n":"励志","v":"励志"},
|
||||
{"n":"其他","v":"其他"}]},
|
||||
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"国产","v":"国产"},
|
||||
{"n":"日本","v":"日本"},
|
||||
{"n":"欧美","v":"欧美"},
|
||||
{"n":"其他","v":"其他"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}]}]}
|
||||
}
|
20
lib/a8yy.js
Normal file
20
lib/a8yy.js
Normal file
@ -0,0 +1,20 @@
|
||||
var rule = {
|
||||
title:'A8音乐',
|
||||
host:'http://v.a8.com',
|
||||
url:'/category/fyclass?p=fypage',
|
||||
searchUrl:'/search?t=**',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA',
|
||||
},
|
||||
class_parse: '.categorys-inner li:gt(1):lt(7);a&&Text;a&&href;.*/(\\d+)',
|
||||
timeout:5000,
|
||||
limit:6,
|
||||
play_parse:true,
|
||||
lazy:'js:let html=request(input);let purl=jsp.pdfh(html,".video-js&&source&&src");input={jx:0,url:purl,parse:0}',
|
||||
推荐: '.v-list-body:eq(1)&&.v_item;*;*;*;*',
|
||||
一级: '.list-div&&.v_item;img&&alt;img&&data-original;.v-time&&Text;a&&href',
|
||||
二级:'*',
|
||||
搜索:'.v-list-body&&.v_item;*;*;*;*',
|
||||
}
|
115
lib/bl.js
Normal file
115
lib/bl.js
Normal file
@ -0,0 +1,115 @@
|
||||
/**
|
||||
* 影视TV 弹幕支持
|
||||
* https://t.me/fongmi_offical/
|
||||
* https://github.com/FongMi/Release/tree/main/apk
|
||||
* Cookie设置
|
||||
* Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
|
||||
* Cookie设置方法1: DR-PY 后台管理界面
|
||||
* CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存
|
||||
* Cookie设置方法2: 手动替换Cookie
|
||||
* 底下代码 headers的
|
||||
* "Cookie":"$bili_cookie"
|
||||
* 手动替换为
|
||||
* "Cookie":"将获取的Cookie黏贴在这"
|
||||
* 客户端长期Cookie设置教程:
|
||||
* 抓包哔哩手机端搜索access_key,取任意链接里的access_key和appkey在drpy环境变量中增加同名的环境变量即可
|
||||
* 此时哔哩.js这个解析可用于此源的解析线路用
|
||||
*/
|
||||
|
||||
var rule = {
|
||||
title:'哔哩影视',
|
||||
host:'https://api.bilibili.com',
|
||||
url:'/fyclass-fypage&vmid=$vmid',
|
||||
detailUrl:'/pgc/view/web/season?season_id=fyid',
|
||||
filter_url:'fl={{fl}}',
|
||||
vmid获取教程:'登录后访问https://api.bilibili.com/x/web-interface/nav,搜索mid就是,cookie需要 bili_jct,DedeUserID,SESSDATA参数',
|
||||
searchUrl:'/x/web-interface/search/type?keyword=**&page=fypage&search_type=',
|
||||
searchable:1,
|
||||
filterable:1,
|
||||
quickSearch:0,
|
||||
headers:{
|
||||
'User-Agent':'PC_UA',
|
||||
"Referer": "https://www.bilibili.com",
|
||||
"Cookie":"$bili_cookie"
|
||||
},
|
||||
timeout:5000,
|
||||
class_name:'番剧&国创&电影&电视剧&纪录片&综艺&全部&追番&追剧&时间表',
|
||||
class_url:'1&4&2&5&3&7&全部&追番&追剧&时间表',
|
||||
filter:{"全部":[{"key":"tid","name":"分类","value":[{"n":"番剧","v":"1"},{"n":"国创","v":"4"},{"n":"电影","v":"2"},{"n":"电视剧","v":"5"},{"n":"记录片","v":"3"},{"n":"综艺","v":"7"}]},{"key":"order","name":"排序","value":[{"n":"播放数量","v":"2"},{"n":"更新时间","v":"0"},{"n":"最高评分","v":"4"},{"n":"弹幕数量","v":"1"},{"n":"追看人数","v":"3"},{"n":"开播时间","v":"5"},{"n":"上映时间","v":"6"}]},{"key":"season_status","name":"付费","value":[{"n":"全部","v":"-1"},{"n":"免费","v":"1"},{"n":"付费","v":"2%2C6"},{"n":"大会员","v":"4%2C6"}]}],"时间表":[{"key":"tid","name":"分类","value":[{"n":"番剧","v":"1"},{"n":"国创","v":"4"}]}]},
|
||||
play_parse:true,
|
||||
// play_json:[{re:'*', json:{jx:1, parse:0,header:JSON.stringify({"user-agent":"PC_UA"})}}],
|
||||
pagecount:{"1":1,"2":1,"3":1,"4":1,"5":1,"7":1,"时间表":1},
|
||||
lazy:'',
|
||||
limit:5,
|
||||
推荐:'',
|
||||
推荐:'js:let d=[];function get_result(url){let videos=[];let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let vodList=jo.result?jo.result.list:jo.data.list;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod.new_ep?vod["new_ep"]["index_show"]:vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})})}return videos}function get_rank(tid,pg){return get_result("https://api.bilibili.com/pgc/web/rank/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_rank2(tid,pg){return get_result("https://api.bilibili.com/pgc/season/rank/web/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function home_video(){let videos=get_rank(1).slice(0,5);[4,2,5,3,7].forEach(function(i){videos=videos.concat(get_rank2(i).slice(0,5))});return videos}VODS=home_video();',
|
||||
一级:'',
|
||||
一级:'js:let d=[];let vmid=input.split("vmid=")[1].split("&")[0];function get_result(url){let videos=[];let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let vodList=jo.result?jo.result.list:jo.data.list;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod.new_ep?vod["new_ep"]["index_show"]:vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})})}return videos}function get_rank(tid,pg){return get_result("https://api.bilibili.com/pgc/web/rank/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_rank2(tid,pg){return get_result("https://api.bilibili.com/pgc/season/rank/web/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_zhui(pg,mode){let url="https://api.bilibili.com/x/space/bangumi/follow/list?type="+mode+"&follow_status=0&pn="+pg+"&ps=10&vmid="+vmid;return get_result(url)}function get_all(tid,pg,order,season_status){let url="https://api.bilibili.com/pgc/season/index/result?order="+order+"&pagesize=20&type=1&season_type="+tid+"&page="+pg+"&season_status="+season_status;return get_result(url)}function get_timeline(tid,pg){let videos=[];let url="https://api.bilibili.com/pgc/web/timeline/v2?season_type="+tid+"&day_before=2&day_after=4";let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let videos1=[];let vodList=jo.result.latest;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod["pub_index"]+" "+vod["follows"].replace("系列","");videos1.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});let videos2=[];for(let i=0;i<7;i++){let vodList=jo["result"]["timeline"][i]["episodes"];vodList.forEach(function(vod){if(vod["published"]+""==="0"){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let date=vod["pub_ts"];let remark=date+" "+vod["pub_index"];videos2.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})}})}videos=videos2.concat(videos1)}return videos}function cate_filter(d,cookie){if(MY_CATE==="1"){return get_rank(MY_CATE,MY_PAGE)}else if(["2","3","4","5","7"].includes(MY_CATE)){return get_rank2(MY_CATE,MY_PAGE)}else if(MY_CATE==="全部"){let tid=MY_FL.tid||"1";let order=MY_FL.order||"2";let season_status=MY_FL.season_status||"-1";return get_all(tid,MY_PAGE,order,season_status)}else if(MY_CATE==="追番"){return get_zhui(MY_PAGE,1)}else if(MY_CATE==="追剧"){return get_zhui(MY_PAGE,2)}else if(MY_CATE==="时间表"){let tid=MY_FL.tid||"1";return get_timeline(tid,MY_PAGE)}else{return[]}}VODS=cate_filter();',
|
||||
二级:{
|
||||
is_json:true,
|
||||
title:".result.title;.result.share_sub_title",
|
||||
img:".result.cover",
|
||||
desc:".result.new_ep.desc;.result.publish.pub_time;.result.subtitle",
|
||||
content:".result.evaluate",
|
||||
tabs:"js:pdfa=jsp.pdfa;TABS=['B站']",
|
||||
lists:".result.episodes",
|
||||
list_text:'title',
|
||||
list_url:'cid',
|
||||
},
|
||||
二级:'',
|
||||
二级:'js:function zh(num){let p="";if(Number(num)>1e8){p=(num/1e8).toFixed(2)+"亿"}else if(Number(num)>1e4){p=(num/1e4).toFixed(2)+"万"}else{p=num}return p}let html=request(input);let jo=JSON.parse(html).result;let id=jo["season_id"];let title=jo["title"];let pic=jo["cover"];let areas=jo["areas"][0]["name"];let typeName=jo["share_sub_title"];let date=jo["publish"]["pub_time"].substr(0,4);let dec=jo["evaluate"];let remark=jo["new_ep"]["desc"];let stat=jo["stat"];let status="弹幕: "+zh(stat["danmakus"])+" 点赞: "+zh(stat["likes"])+" 投币: "+zh(stat["coins"])+" 追番追剧: "+zh(stat["favorites"]);let score=jo.hasOwnProperty("rating")?"评分: "+jo["rating"]["score"]+" "+jo["subtitle"]:"暂无评分"+" "+jo["subtitle"];let vod={vod_id:id,vod_name:title,vod_pic:pic,type_name:typeName,vod_year:date,vod_area:areas,vod_remarks:remark,vod_actor:status,vod_director:score,vod_content:dec};let ja=jo["episodes"];let playurls1=[];let playurls2=[];ja.forEach(function(tmpJo){let eid=tmpJo["id"];let cid=tmpJo["cid"];let link=tmpJo["link"];let part=tmpJo["title"].replace("#","-")+" "+tmpJo["long_title"];playurls1.push(part+"$"+eid+"_"+cid);playurls2.push(part+"$"+link)});let playUrl=playurls1.join("#")+"$$$"+playurls2.join("#");vod["vod_play_from"]="B站$$$bilibili";vod["vod_play_url"]=playUrl;VOD=vod;',
|
||||
搜索:'',
|
||||
搜索:'js:let url1=input+"media_bangumi";let url2=input+"media_ft";let html=request(url1);let msg=JSON.parse(html).message;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 jo1=JSON.parse(html).data;html=request(url2);let jo2=JSON.parse(html).data;let videos=[];let vodList=[];if(jo1["numResults"]===0){vodList=jo2["result"]}else if(jo2["numResults"]===0){vodList=jo1["result"]}else{vodList=jo1["result"].concat(jo2["result"])}vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=KEY+"➢"+vod["title"].trim().replace(\'<em class="keyword">\',"").replace("</em>","");let img=vod["cover"].trim();let remark=vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
|
||||
lazy:'',
|
||||
lazy:`js:
|
||||
if (/^http/.test(input)) {
|
||||
input = {
|
||||
jx: 1,
|
||||
url: input,
|
||||
parse: 0,
|
||||
header: JSON.stringify({
|
||||
"user-agent": "Mozilla/5.0"
|
||||
})
|
||||
}
|
||||
} else {
|
||||
let ids = input.split("_");
|
||||
let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + ids[1];
|
||||
let result = {};
|
||||
let url = "https://api.bilibili.com/pgc/player/web/playurl?qn=116&ep_id=" + ids[0] + "&cid=" + ids[1];
|
||||
let html = request(url);
|
||||
let jRoot = JSON.parse(html);
|
||||
if (jRoot["message"] !== "success") {
|
||||
print("需要大会员权限才能观看");
|
||||
input = ""
|
||||
} else {
|
||||
let jo = jRoot["result"];
|
||||
let ja = jo["durl"];
|
||||
let maxSize = -1;
|
||||
let position = -1;
|
||||
ja.forEach(function(tmpJo, i) {
|
||||
if (maxSize < Number(tmpJo["size"])) {
|
||||
maxSize = Number(tmpJo["size"]);
|
||||
position = i
|
||||
}
|
||||
});
|
||||
let url = "";
|
||||
if (ja.length > 0) {
|
||||
if (position === -1) {
|
||||
position = 0
|
||||
}
|
||||
url = ja[position]["url"]
|
||||
}
|
||||
result["parse"] = 0;
|
||||
result["playUrl"] = "";
|
||||
result["url"] = url;
|
||||
result["header"] = {
|
||||
Referer: "https://www.bilibili.com",
|
||||
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
|
||||
};
|
||||
result["contentType"] = "video/x-flv";
|
||||
result["danmaku"] = dan;
|
||||
input = result
|
||||
}
|
||||
}
|
||||
`,
|
||||
}
|
112
lib/blzb.js
Normal file
112
lib/blzb.js
Normal file
@ -0,0 +1,112 @@
|
||||
/**
|
||||
* 影视TV 弹幕支持
|
||||
* https://t.me/fongmi_offical/
|
||||
* https://github.com/FongMi/Release/tree/main/apk
|
||||
* 皮皮虾DMBox 弹幕支持
|
||||
* 设置 > 窗口预览 > 开启
|
||||
* https://t.me/pipixiawerun
|
||||
* vod_area:'bililivedanmu'
|
||||
* Cookie设置
|
||||
* Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md
|
||||
* Cookie设置方法1: DR-PY 后台管理界面
|
||||
* CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存
|
||||
* Cookie设置方法2: 手动替换Cookie
|
||||
* 底下代码 headers的
|
||||
* "Cookie":"$bili_cookie"
|
||||
* 手动替换为
|
||||
* "Cookie":"将获取的Cookie黏贴在这"
|
||||
*/
|
||||
|
||||
var rule = {
|
||||
title:'哔哩直播',
|
||||
host:'https://api.live.bilibili.com',
|
||||
homeUrl:'/xlive/web-interface/v1/second/getUserRecommend?page=1&page_size=30&platform=web',//用于"分类获取"和"推荐获取"
|
||||
url:'/xlive/web-interface/v1/second/getList?platform=web&parent_area_id=fyclass&area_id=fyfilter&sort_type=online&page=fypage',
|
||||
class_name:'生活&网游&手游&单机游戏&娱乐&电台&虚拟主播&聊天室&知识&赛事&帮我玩&互动玩法',
|
||||
class_url:'10&2&3&6&1&5&9&14&11&13&301&15',
|
||||
filterable: 1,
|
||||
filter_url: '{{fl.area}}',
|
||||
filter_def:{
|
||||
10:{area:'624'},
|
||||
2:{area:'86'},
|
||||
3:{area:'35'},
|
||||
6:{area:'236'},
|
||||
1:{area:'21'},
|
||||
5:{area:'190'},
|
||||
9:{area:'744'},
|
||||
14:{area:'818'},
|
||||
11:{area:'376'},
|
||||
13:{area:'562'},
|
||||
301:{area:'301000'},
|
||||
15:{area:'814'}
|
||||
},
|
||||
filter: {
|
||||
"10":[{"key":"area","name":"分区","value":[{"n":"生活分享","v":"646"},{"n":"聊天交友","v":"825"},{"n":"手工绘画","v":"627"},{"n":"情感","v":"623"},{"n":"户外","v":"368"},{"n":"萌宠","v":"369"},{"n":"运动","v":"628"},{"n":"美食","v":"367"},{"n":"时尚","v":"378"},{"n":"电子榨菜","v":"624"},{"n":"沉浸体验","v":"827"}]}],
|
||||
"2":[{"key":"area","name":"分区","value":[{"n":"英雄联盟","v":"86"},{"n":"无畏契约","v":"329"},{"n":"CS:GO","v":"89"},{"n":"APEX英雄","v":"240"},{"n":"永劫无间","v":"666"},{"n":"穿越火线","v":"88"},{"n":"命运方舟","v":"590"},{"n":"DOTA2","v":"92"},{"n":"吃鸡行动","v":"80"},{"n":"逃离塔科夫","v":"252"},{"n":"传奇","v":"695"},{"n":"DNF","v":"78"},{"n":"卡拉彼丘","v":"782"},{"n":"幕后高手","v":"774"},{"n":"生死狙击2","v":"575"},{"n":"洛奇英雄传","v":"599"},{"n":"最终幻想14","v":"102"},{"n":"重生边缘","v":"809"},{"n":"星际战甲","v":"249"},{"n":"梦三国","v":"710"},{"n":"英魂之刃","v":"690"},{"n":"剑网3","v":"82"},{"n":"从军","v":"829"},{"n":"铁甲雄兵","v":"691"},{"n":"封印者","v":"300"},{"n":"新天龙八部","v":"653"},{"n":"赛尔号","v":"667"},{"n":"造梦西游","v":"668"},{"n":"洛克王国","v":"669"},{"n":"问道","v":"670"},{"n":"诛仙世界","v":"654"},{"n":"大话西游","v":"652"},{"n":"奇迹MU","v":"683"},{"n":"永恒之塔","v":"684"},{"n":"QQ三国","v":"685"},{"n":"人间地狱","v":"677"},{"n":"彩虹岛","v":"686"},{"n":"洛奇","v":"663"},{"n":"跑跑卡丁车","v":"664"},{"n":"星际公民","v":"658"},{"n":"Squad战术小队","v":"659"},{"n":"反恐精英Online","v":"629"},{"n":"风暴奇侠","v":"648"},{"n":"创世战车","v":"705"},{"n":"装甲战争","v":"642"},{"n":"守望先锋","v":"87"},{"n":"阿尔比恩","v":"639"},{"n":"猎杀对决","v":"600"},{"n":"CFHD","v":"472"},{"n":"骑士精神2","v":"650"},{"n":"超击突破","v":"680"},{"n":"武装突袭","v":"634"},{"n":"Wayfinder寻路者","v":"773"},{"n":"300英雄","v":"84"},{"n":"炉石传说","v":"91"},{"n":"剑网3缘起","v":"499"},{"n":"街头篮球","v":"649"},{"n":"综合射击","v":"601"},{"n":"剑灵","v":"505"},{"n":"艾尔之光","v":"651"},{"n":"黑色沙漠","v":"632"},{"n":"天涯明月刀","v":"596"},{"n":"超激斗梦境","v":"519"},{"n":"冒险岛","v":"574"},{"n":"逆战","v":"487"},{"n":"魔兽争霸3","v":"181"},{"n":"QQ飞车","v":"610"},{"n":"魔兽世界","v":"83"},{"n":"FIFAONLINE4","v":"388"},{"n":"NBA2KOL2","v":"581"},{"n":"使命召唤:战区","v":"318"},{"n":"VRChat","v":"656"},{"n":"坦克世界","v":"115"},{"n":"战舰世界","v":"248"},{"n":"战争与抉择","v":"729"},{"n":"战争雷霆","v":"316"},{"n":"战意","v":"383"},{"n":"风暴英雄","v":"114"},{"n":"星际争霸2","v":"93"},{"n":"刀塔自走棋","v":"239"},{"n":"堡垒之夜","v":"164"},{"n":"枪神纪","v":"251"},{"n":"三国杀","v":"81"},{"n":"龙之谷","v":"112"},{"n":"古剑奇谭OL","v":"173"},{"n":"幻想全明星","v":"176"},{"n":"怀旧网游","v":"288"},{"n":"新游前瞻","v":"298"},{"n":"星战前夜:晨曦","v":"331"},{"n":"流放之路","v":"551"},{"n":"FPS沙盒","v":"633"},{"n":"永恒轮回","v":"459"},{"n":"激战2","v":"607"},{"n":"其他网游","v":"107"},{"n":"蓝色协议","v":"760"}]}],
|
||||
"3":[{"key":"area","name":"分区","value":[{"n":"王者荣耀","v":"35"},{"n":"和平精英","v":"256"},{"n":"原神","v":"321"},{"n":"崩坏:星穹铁道","v":"549"},{"n":"第五人格","v":"163"},{"n":"LOL手游","v":"395"},{"n":"明日方舟","v":"255"},{"n":"黎明觉醒:生机","v":"479"},{"n":"蛋仔派对","v":"571"},{"n":"冒险岛手游","v":"796"},{"n":"元梦之星","v":"822"},{"n":"闪耀!优俊少女","v":"805"},{"n":"斯露德","v":"797"},{"n":"千年之旅","v":"806"},{"n":"白夜极光","v":"781"},{"n":"逆水寒手游","v":"771"},{"n":"率土之滨","v":"807"},{"n":"月圆之夜","v":"215"},{"n":"哈利波特:魔法觉醒","v":"474"},{"n":"七人传奇","v":"823"},{"n":"幻塔","v":"550"},{"n":"星之破晓","v":"799"},{"n":"金铲铲之战","v":"514"},{"n":"少女前线2:追放","v":"832"},{"n":"深空之眼","v":"598"},{"n":"无期迷途","v":"675"},{"n":"晶核","v":"777"},{"n":"星球重启","v":"828"},{"n":"宿命回响:弦上的叹息","v":"826"},{"n":"光遇","v":"687"},{"n":"桃源深处有人家","v":"792"},{"n":"三国志战棋版","v":"756"},{"n":"战火勋章","v":"765"},{"n":"以闪亮之名","v":"755"},{"n":"尘白禁区","v":"778"},{"n":"古魂","v":"759"},{"n":"鬼泣-巅峰之战","v":"470"},{"n":"奇点时代","v":"762"},{"n":"香肠派对","v":"689"},{"n":"猫之城","v":"645"},{"n":"高能英雄","v":"783"},{"n":"使命召唤手游","v":"386"},{"n":"崩坏3","v":"40"},{"n":"银河境界线","v":"793"},{"n":"蔚蓝档案","v":"787"},{"n":"第七史诗","v":"784"},{"n":"游戏王:决斗链接","v":"407"},{"n":"游戏王","v":"303"},{"n":"JJ斗地主","v":"724"},{"n":"阴阳师","v":"36"},{"n":"欢乐斗地主","v":"719"},{"n":"太空行动","v":"791"},{"n":"空之要塞:启航","v":"718"},{"n":"长安幻想","v":"738"},{"n":"火影忍者手游","v":"292"},{"n":"Fate/GO","v":"37"},{"n":"综合棋牌","v":"354"},{"n":"QQ飞车手游","v":"154"},{"n":"决战!平安京","v":"140"},{"n":"狼人杀","v":"41"},{"n":"三国杀移动版","v":"352"},{"n":"碧蓝航线","v":"113"},{"n":"影之诗","v":"156"},{"n":"明日之后","v":"189"},{"n":"重返未来:1999","v":"761"},{"n":"环行旅舍","v":"786"},{"n":"幻世与冒险","v":"813"},{"n":"部落冲突:皇室战争","v":"50"},{"n":"奥比岛手游","v":"661"},{"n":"弹弹堂","v":"734"},{"n":"雀姬","v":"214"},{"n":"公主连结Re:Dive","v":"330"},{"n":"DNF手游","v":"343"},{"n":"FIFA足球世界","v":"641"},{"n":"BanGDream","v":"258"},{"n":"荒野乱斗","v":"469"},{"n":"CF手游","v":"333"},{"n":"战双帕弥什","v":"293"},{"n":"天涯明月刀手游","v":"389"},{"n":"一拳超人:世界","v":"779"},{"n":"解密游戏","v":"42"},{"n":"恋爱养成游戏","v":"576"},{"n":"暗黑破坏神:不朽","v":"492"},{"n":"暗区突围","v":"502"},{"n":"跑跑卡丁车手游","v":"265"},{"n":"非人学园","v":"212"},{"n":"百闻牌","v":"286"},{"n":"猫和老鼠手游","v":"269"},{"n":"坎公骑冠剑","v":"442"},{"n":"忍者必须死3","v":"203"},{"n":"梦幻西游手游","v":"342"},{"n":"航海王热血航线","v":"504"},{"n":"少女前线","v":"39"},{"n":"300大作战","v":"688"},{"n":"少女前线:云图计划","v":"525"},{"n":"漫威超级战争","v":"478"},{"n":"摩尔庄园手游","v":"464"},{"n":"宝可梦大集结","v":"493"},{"n":"小动物之星","v":"473"},{"n":"天地劫:幽城再临","v":"448"},{"n":"漫威对决","v":"511"},{"n":"东方归言录","v":"538"},{"n":"梦幻模拟战","v":"178"},{"n":"时空猎人3","v":"643"},{"n":"重返帝国","v":"613"},{"n":"休闲小游戏","v":"679"},{"n":"其他手游","v":"98"},{"n":"新游评测","v":"274"},{"n":"山海镜花","v":"821"},{"n":"小冰冰传奇","v":"824"}]}],
|
||||
"6":[{"key":"area","name":"分区","value":[{"n":"主机游戏","v":"236"},{"n":"我的世界","v":"216"},{"n":"独立游戏","v":"283"},{"n":"怀旧游戏","v":"237"},{"n":"猛兽派对","v":"384"},{"n":"赛博朋克2077","v":"402"},{"n":"星空","v":"808"},{"n":"塞尔达传说","v":"308"},{"n":"苍翼:混沌效应","v":"798"},{"n":"命运2","v":"277"},{"n":"收获日3","v":"811"},{"n":"FC24","v":"830"},{"n":"机战佣兵VI境界天火","v":"800"},{"n":"暗黑破坏神Ⅳ","v":"780"},{"n":"匹诺曹的谎言","v":"812"},{"n":"博德之门3","v":"385"},{"n":"绝世好武功","v":"801"},{"n":"恐怖游戏","v":"276"},{"n":"DarkandDarker","v":"795"},{"n":"Warlander","v":"785"},{"n":"FORZA极限竞速","v":"302"},{"n":"边境","v":"763"},{"n":"生化危机","v":"721"},{"n":"最终幻想","v":"328"},{"n":"暗黑破坏神","v":"535"},{"n":"森林之子","v":"751"},{"n":"卧龙:苍天陨落","v":"700"},{"n":"红色警戒2","v":"693"},{"n":"策略游戏","v":"570"},{"n":"禁闭求生","v":"707"},{"n":"战神","v":"579"},{"n":"斯普拉遁3","v":"694"},{"n":"使命召唤19","v":"282"},{"n":"艾尔登法环","v":"555"},{"n":"聚会游戏","v":"636"},{"n":"DreadHunger","v":"591"},{"n":"战地风云","v":"597"},{"n":"糖豆人","v":"357"},{"n":"消逝的光芒2","v":"586"},{"n":"只狼","v":"245"},{"n":"怪物猎人","v":"578"},{"n":"宝可梦集换式卡牌游戏","v":"720"},{"n":"饥荒","v":"218"},{"n":"精灵宝可梦","v":"228"},{"n":"FIFA23","v":"708"},{"n":"全面战争:战锤3","v":"594"},{"n":"NBA2K","v":"362"},{"n":"帝国时代4","v":"548"},{"n":"植物大战僵尸","v":"309"},{"n":"格斗游戏","v":"433"},{"n":"荒野大镖客2","v":"226"},{"n":"重生细胞","v":"426"},{"n":"刺客信条","v":"227"},{"n":"恐鬼症","v":"387"},{"n":"以撒","v":"219"},{"n":"双人成行","v":"446"},{"n":"方舟","v":"295"},{"n":"仁王2","v":"313"},{"n":"鬼泣5","v":"244"},{"n":"枪火重生","v":"364"},{"n":"盗贼之海","v":"341"},{"n":"胡闹厨房","v":"507"},{"n":"体育游戏","v":"500"},{"n":"全境封锁2","v":"243"},{"n":"骑马与砍杀","v":"326"},{"n":"人类一败涂地","v":"270"},{"n":"无主之地3","v":"273"},{"n":"辐射76","v":"220"},{"n":"全面战争","v":"257"},{"n":"文字游戏","v":"583"},{"n":"恋爱模拟游戏","v":"592"},{"n":"泰拉瑞亚","v":"593"},{"n":"游戏速通","v":"678"},{"n":"Roblox","v":"753"},{"n":"雀魂麻将","v":"803"},{"n":"德州电锯","v":"834"},{"n":"其他单机","v":"235"}]}],
|
||||
"1":[{"key":"area","name":"分区","value":[{"n":"聊天室","v":"740"},{"n":"视频唱见","v":"21"},{"n":"萌宅领域","v":"530"},{"n":"视频聊天","v":"145"},{"n":"舞见","v":"207"}]}],
|
||||
"5":[{"key":"area","name":"分区","value":[{"n":"唱见电台","v":"190"},{"n":"聊天电台","v":"192"},{"n":"甜宠电台","v":"817"}]}],
|
||||
"9":[{"key":"area","name":"分区","value":[{"n":"TopStar","v":"743"},{"n":"虚拟Singer","v":"744"},{"n":"虚拟Gamer","v":"745"},{"n":"虚拟声优","v":"746"},{"n":"虚拟日常","v":"371"},{"n":"虚拟APEX","v":"789"},{"n":"虚拟PK","v":"775"}]}],
|
||||
"14":[{"key":"area","name":"分区","value":[{"n":"交友","v":"818"},{"n":"点唱","v":"819"},{"n":"兴趣","v":"820"}]}],
|
||||
"11":[{"key":"area","name":"分区","value":[{"n":"社科法律心理","v":"376"},{"n":"人文历史","v":"702"},{"n":"校园学习","v":"372"},{"n":"职场·技能","v":"377"},{"n":"科技","v":"375"},{"n":"科学科普","v":"701"}]}],
|
||||
"13":[{"key":"area","name":"分区","value":[{"n":"游戏赛事","v":"561"},{"n":"体育赛事","v":"562"},{"n":"赛事综合","v":"563"}]}],
|
||||
"301":[{"key":"area","name":"分区","value":[{"n":"热门帮玩","v":"301000"},{"n":"手游帮玩","v":"301002"},{"n":"网游帮玩","v":"301003"},{"n":"单机帮玩","v":"301004"}]}],
|
||||
"15":[{"key":"area","name":"分区","value":[{"n":"兵临城下","v":"814"},{"n":"功夫狂飙","v":"833"},{"n":"竞技玩法","v":"815"},{"n":"休闲玩法","v":"816"}]}]
|
||||
},
|
||||
detailUrl:'https://live.bilibili.com/fyid',//二级详情拼接链接(json格式用)
|
||||
// detailUrl:'https://api.live.bilibili.com/xlive/web-room/v1/playUrl/playUrl?cid=fyid&platform=h5&otype=json&quality=0',//二级详情拼接链接(json格式用)
|
||||
// searchUrl:'/x/web-interface/search/type?__refresh__=true&page=fypage&page_size=42&order=online&platform=pc&highlight=1&single_column=0&keyword=**&search_type=live&dynamic_offset=0&preload=true',
|
||||
searchUrl:'https://api.bilibili.com/x/web-interface/search/type?search_type=live&keyword=**&page=fypage',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{
|
||||
"User-Agent":"PC_UA",
|
||||
"Referer": "https://www.bilibili.com",
|
||||
// "Cookie":"$bili_cookie"
|
||||
"Cookie":"https://ghproxy.net/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/txt/cookie.txt"
|
||||
},
|
||||
timeout:5000,
|
||||
limit:8,
|
||||
play_parse:true,
|
||||
// play_json:[{re:'*', json:{jx:0, parse:1,header:JSON.stringify({"user-agent":"Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36"})}}],
|
||||
// play_json:[{re:'*', json:{jx:0, parse:1,header:JSON.stringify({"user-agent":"uc_ua"})}}],
|
||||
// play_json:0,
|
||||
lazy:`js:
|
||||
let ids = input.split('_');
|
||||
let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + ids[1];
|
||||
let result = {};
|
||||
let iurl = 'https://api.live.bilibili.com/room/v1/Room/playUrl?cid=' + ids[1] + '&' + ids[0];
|
||||
let html = request(iurl);
|
||||
let jRoot = JSON.parse(html);
|
||||
let jo = jRoot['data'];
|
||||
let ja = jo['durl'];
|
||||
let purl = '';
|
||||
if (ja.length > 0) {
|
||||
purl = ja[0]['url']
|
||||
}
|
||||
result['parse'] = 0;
|
||||
result['playUrl'] = '';
|
||||
result['url'] = unescape(purl);
|
||||
result['header'] = {
|
||||
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['danmaku'] = dan;
|
||||
if (/h5/.test(ids[0])) {
|
||||
result['contentType'] = '';
|
||||
input = result
|
||||
} else {
|
||||
result['contentType'] = 'video/x-flv';
|
||||
input = result
|
||||
}
|
||||
`,
|
||||
double:false,
|
||||
推荐:'*',
|
||||
一级:'json:data.list;title;system_cover;uname;roomid',
|
||||
// 二级:'*',
|
||||
二级:"js:let aid=input.match(/\\/(\\d+)/)[1];log(aid);let html=request('https://api.live.bilibili.com/room/v1/Room/get_info?room_id='+aid);let jo=JSON.parse(html).data;let title=jo['title'];let pic=jo['keyframe'];let desc=jo['description'];let dire=jo['uid'];let typeName=jo['area_name'];let remark='在线人数:'+jo['online'];let vod={vod_id:aid,vod_name:title,vod_pic:pic,type_name:typeName,vod_area:'bililivedanmu',vod_remarks:remark,vod_actor:'直播间id-'+aid,vod_director:dire,vod_content:desc};vod['vod_play_from']='B站';vod['vod_play_url']='flv线路原画$platform=web&quality=4_'+aid+'#flv线路高清$platform=web&quality=3_'+aid+'#h5线路原画$platform=h5&quality=4_'+aid+'#h5线路高清$platform=h5&quality=3_'+aid;VOD=vod;",
|
||||
// 搜索:'json:data.result.live_room;title;cover;uname;roomid',
|
||||
搜索:'js:let html=request(input);let msg=JSON.parse(html).message;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.live_room;vodList.forEach(function(vod){let aid=vod["roomid"];let title="直播间:"+vod["title"].replace(\'<em class="keyword">\',"").replace("</em>","");let img="https:"+vod["user_cover"];let remark=vod["watched_show"]["text_small"]+" "+vod["uname"];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)',
|
||||
}
|
1
lib/cheerio.min.js
vendored
Normal file
1
lib/cheerio.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
6191
lib/crypto-js.js
Normal file
6191
lib/crypto-js.js
Normal file
File diff suppressed because it is too large
Load Diff
37
lib/douban.js
Normal file
37
lib/douban.js
Normal file
File diff suppressed because one or more lines are too long
73
lib/drpy2.min.js
vendored
Normal file
73
lib/drpy2.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
39
lib/fgys.json
Normal file
39
lib/fgys.json
Normal file
@ -0,0 +1,39 @@
|
||||
{
|
||||
|
||||
"作者":"荷城茶秀",
|
||||
|
||||
"站名":"疯狗影视",
|
||||
|
||||
"主页url":"https://m.fenggoudy3.com/",
|
||||
|
||||
"简介":"+该站点无剧情介绍,暂时无法提供简介…",
|
||||
|
||||
"导演":"导演:&&</p>",
|
||||
|
||||
"主演":"主演:&&</p>",
|
||||
|
||||
"数组":"<li class=\"col-xs-4\">&&/span>",
|
||||
|
||||
"标题":"alt=\"&&\"",
|
||||
|
||||
"副标题":"continu\">&&<",
|
||||
|
||||
"图片":"data-original=\"&&\"",
|
||||
|
||||
"链接":"href=\"&&\"",
|
||||
|
||||
"搜索url":"/index.php?s=vod-search-name;post;wd={wd}",
|
||||
|
||||
"线路数组":"glyphicon glyphicon-facetime-video ff-text\">&&</div>",
|
||||
|
||||
"线路标题":"</span>&&</h2>",
|
||||
|
||||
"播放数组":"<ul class=\"list-unstyled row&&</ul>",
|
||||
|
||||
"播放标题":">&&<",
|
||||
|
||||
"播放列表":"<a&&/a>",
|
||||
|
||||
"分类url":"https://m.fenggoudy3.com/list-select-id-{cateId}-type-{class}-area-{area}-year-{year}-star--state--order-{by}-p-{catePg}.html;;akd0",
|
||||
|
||||
"分类":"电影$1#电视剧$2#综艺$3#动漫$4"}
|
372
lib/guangun.json
Normal file
372
lib/guangun.json
Normal file
@ -0,0 +1,372 @@
|
||||
{
|
||||
|
||||
"作者":"荷城茶秀",
|
||||
|
||||
"站名":"光棍影视",
|
||||
|
||||
"主页url":"https://www.ggdy.net/",
|
||||
|
||||
"简介":"该站点无完整的剧情介绍,暂时无法提供简介…",
|
||||
|
||||
"导演":"导演:&&</p>",
|
||||
|
||||
"主演":"主演:&&</p>",
|
||||
|
||||
"影片状态":"状态:&&</p>",
|
||||
|
||||
"影片类型":"类型:&&</p>",
|
||||
|
||||
"影片地区":"地区:&&</p>",
|
||||
|
||||
"影片年代":"#a29999\">(&&)</font>",
|
||||
|
||||
"数组":"stui-vodlist__thumb&&</a>",
|
||||
|
||||
"标题":"title=\"&&\"",
|
||||
|
||||
"副标题":"text-right\">&&</span>",
|
||||
|
||||
"图片":"data-original=\"&&\"",
|
||||
|
||||
"链接":"href=\"&&\"",
|
||||
|
||||
"搜索url":"/so/-------------.html;post;wd={wd}",
|
||||
|
||||
"搜索数组":"stui-vodlist__thumb&&</a>",
|
||||
|
||||
"搜索标题":"title=\"&&\"",
|
||||
|
||||
"搜索副标题":"text-right\">&&</span>",
|
||||
|
||||
"搜索图片":"data-original=\"&&\"",
|
||||
|
||||
"搜索链接":"href=\"&&\"",
|
||||
|
||||
"线路数组":"<h3 class=\"title\"&&/h3>[不包含:ikun资源#卧龙资源#闪电资源#红牛资源]",
|
||||
|
||||
"线路标题":">&&<",
|
||||
|
||||
"播放数组":"stui-content__playlist clearfix&&</ul>",
|
||||
|
||||
"播放标题":">&&<",
|
||||
|
||||
"播放列表":"<a&&/a>",
|
||||
|
||||
"分类url":"https://www.ggdy.net/show/{cateId}-{area}-{by}-{class}-{lang}----{catePg}---{year}.html;;ak",
|
||||
|
||||
"分类":"电影$1#电视剧$2#综艺$3#动漫$4",
|
||||
|
||||
"筛选":{
|
||||
"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":"21"},
|
||||
{"n":"纪录片","v":"20"}
|
||||
]
|
||||
},
|
||||
{"key":"class","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":"传记"}
|
||||
]
|
||||
},
|
||||
{"key":"area","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":"澳大利亚"},
|
||||
{"n":"巴西","v":"巴西"},
|
||||
{"n":"丹麦","v":"丹麦"}
|
||||
]
|
||||
},
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部年份","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"更早","v":"更早"}
|
||||
]
|
||||
},
|
||||
{"key":"lang","name":"语言","value":[
|
||||
{"n":"全部语言","v":""},
|
||||
{"n":"国语","v":"国语"},
|
||||
{"n":"英语","v":"英语"},
|
||||
{"n":"粤语","v":"粤语"},
|
||||
{"n":"闽南语","v":"闽南语"},
|
||||
{"n":"韩语","v":"韩语"},
|
||||
{"n":"日语","v":"日语"},
|
||||
{"n":"法语","v":"法语"},
|
||||
{"n":"德语","v":"德语"},
|
||||
{"n":"其它","v":"其它"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2":[
|
||||
{"key":"cateId","name":"类型","value":[
|
||||
{"n":"全部类型","v":"2"},
|
||||
{"n":"国产剧","v":"13"},
|
||||
{"n":"港台剧","v":"14"},
|
||||
{"n":"日韩剧","v":"15"},
|
||||
{"n":"欧美剧","v":"16"},
|
||||
{"n":"海外剧","v":"22"}
|
||||
]
|
||||
},
|
||||
{"key":"class","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":"情景"}
|
||||
]
|
||||
},
|
||||
{"key":"area","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":"澳大利亚"},
|
||||
{"n":"巴西","v":"巴西"},
|
||||
{"n":"丹麦","v":"丹麦"}
|
||||
]
|
||||
},
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部年份","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"更早","v":"更早"}
|
||||
]
|
||||
},
|
||||
{"key":"lang","name":"语言","value":[
|
||||
{"n":"全部语言","v":""},
|
||||
{"n":"国语","v":"国语"},
|
||||
{"n":"英语","v":"英语"},
|
||||
{"n":"粤语","v":"粤语"},
|
||||
{"n":"闽南语","v":"闽南语"},
|
||||
{"n":"韩语","v":"韩语"},
|
||||
{"n":"日语","v":"日语"},
|
||||
{"n":"其它","v":"其它"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序排序","value":[
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3":[
|
||||
{"key":"class","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":"求职"}
|
||||
]
|
||||
},
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部地区","v":""},
|
||||
{"n":"内地","v":"内地"},
|
||||
{"n":"韩国","v":"韩国"},
|
||||
{"n":"香港","v":"香港"},
|
||||
{"n":"台湾","v":"台湾"},
|
||||
{"n":"日本","v":"日本"},
|
||||
{"n":"美国","v":"美国"},
|
||||
{"n":"泰国","v":"泰国"},
|
||||
{"n":"英国","v":"英国"}
|
||||
]
|
||||
},
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部年份","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"更早","v":"更早"}
|
||||
]
|
||||
},
|
||||
{"key":"lang","name":"语言","value":[
|
||||
{"n":"全部语言","v":""},
|
||||
{"n":"国语","v":"国语"},
|
||||
{"n":"英语","v":"英语"},
|
||||
{"n":"粤语","v":"粤语"},
|
||||
{"n":"闽南语","v":"闽南语"},
|
||||
{"n":"韩语","v":"韩语"},
|
||||
{"n":"日语","v":"日语"},
|
||||
{"n":"其它","v":"其它"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4":[
|
||||
{"key":"class","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":"少年"}
|
||||
]
|
||||
},
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部地区","v":""},
|
||||
{"n":"内地","v":"内地"},
|
||||
{"n":"韩国","v":"韩国"},
|
||||
{"n":"香港","v":"香港"},
|
||||
{"n":"台湾","v":"台湾"},
|
||||
{"n":"日本","v":"日本"},
|
||||
{"n":"美国","v":"美国"},
|
||||
{"n":"泰国","v":"泰国"},
|
||||
{"n":"英国","v":"英国"}
|
||||
]
|
||||
},
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部年份","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"更早","v":"更早"}
|
||||
]
|
||||
},
|
||||
{"key":"lang","name":"语言","value":[
|
||||
{"n":"全部语言","v":""},
|
||||
{"n":"国语","v":"国语"},
|
||||
{"n":"英语","v":"英语"},
|
||||
{"n":"粤语","v":"粤语"},
|
||||
{"n":"闽南语","v":"闽南语"},
|
||||
{"n":"韩语","v":"韩语"},
|
||||
{"n":"日语","v":"日语"},
|
||||
{"n":"其它","v":"其它"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
1
lib/guoguo.js
Normal file
1
lib/guoguo.js
Normal file
File diff suppressed because one or more lines are too long
1
lib/gz.js
Normal file
1
lib/gz.js
Normal file
File diff suppressed because one or more lines are too long
48
lib/huyazhibo.js
Normal file
48
lib/huyazhibo.js
Normal file
File diff suppressed because one or more lines are too long
150
lib/jp.js
Normal file
150
lib/jp.js
Normal file
@ -0,0 +1,150 @@
|
||||
/**
|
||||
* 影视TV 超連結跳轉支持
|
||||
* https://t.me/fongmi_offical/
|
||||
* https://github.com/FongMi/Release/tree/main/apk
|
||||
*/
|
||||
|
||||
var rule = {
|
||||
title: '荐片',
|
||||
host: 'http://api2.rinhome.com',
|
||||
homeUrl: '/api/tag/hand?code=unknown601193cf375db73d&channel=wandoujia',//网站的首页链接,用于分类获取和推荐获取
|
||||
// url:'/api/crumb/list?area=0&category_id=fyclass&page=fypage&type=0&limit=24&fyfilter',
|
||||
url: '/api/crumb/list?page=fypage&type=0&limit=24&fyfilter',
|
||||
class_name: '全部&电影&电视剧&动漫&综艺', // 筛选 /api/term/ad_fenlei?limit=10&page=1
|
||||
class_url: '0&1&2&3&4',
|
||||
detailUrl: '/api/node/detail?channel=wandoujia&token=&id=fyid',//二级详情拼接链接(json格式用)
|
||||
searchUrl: '/api/video/search?key=**&page=fypage',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
filter: {
|
||||
"0":[{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}],
|
||||
"1":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"1"},{"n":"首推","v":"5"},{"n":"动作","v":"6"},{"n":"喜剧","v":"7"},{"n":"战争","v":"8"},{"n":"恐怖","v":"9"},{"n":"剧情","v":"10"},{"n":"爱情","v":"11"},{"n":"科幻","v":"12"},{"n":"动画","v":"13"}]},{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}],
|
||||
"2":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"2"},{"n":"首推","v":"14"},{"n":"国产","v":"15"},{"n":"港台","v":"16"},{"n":"日韩","v":"17"},{"n":"海外","v":"18"}]},{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}],
|
||||
"3":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"3"},{"n":"首推","v":"19"},{"n":"海外","v":"20"},{"n":"日本","v":"21"},{"n":"国产","v":"22"}]},{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}],
|
||||
"4":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"4"},{"n":"首推","v":"23"},{"n":"国产","v":"24"},{"n":"海外","v":"25"},{"n":"港台","v":"26"}]},{"key":"area","name":"地區","value":[{"n":"全部","v":"0"},{"n":"国产","v":"1"},{"n":"中国香港","v":"3"},{"n":"中国台湾","v":"6"},{"n":"美国","v":"5"},{"n":"韩国","v":"18"},{"n":"日本","v":"2"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":"0"},{"n":"2023","v":"153"},{"n":"2022","v":"101"},{"n":"2021","v":"118"},{"n":"2020","v":"16"},{"n":"2019","v":"7"},{"n":"2018","v":"2"},{"n":"2017","v":"3"},{"n":"2016","v":"22"}]},{"key":"sort","name":"排序","value":[{"n":"热门","v":"hot"},{"n":"评分","v":"rating"},{"n":"更新","v":"update"}]}]
|
||||
},
|
||||
filter_url: 'area={{fl.area or "0"}}&sort={{fl.sort or "update"}}&year={{fl.year or "0"}}&category_id={{fl.cateId}}',
|
||||
filter_def: {
|
||||
0:{cateId:'0'},
|
||||
1:{cateId:'1'},
|
||||
2:{cateId:'2'},
|
||||
3:{cateId:'3'},
|
||||
4:{cateId:'4'}
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'jianpian-android/350',
|
||||
'JPAUTH': 'y261ow7kF2dtzlxh1GS9EB8nbTxNmaK/QQIAjctlKiEv'
|
||||
},
|
||||
timeout: 5000,
|
||||
limit: 8,
|
||||
play_parse: true,
|
||||
play_json: [{
|
||||
re: '*',
|
||||
json: {
|
||||
parse: 0,
|
||||
jx: 0
|
||||
}
|
||||
}],
|
||||
lazy: '',
|
||||
图片来源: '@Referer=www.jianpianapp.com@User-Agent=jianpian-version353',
|
||||
// 推荐:'json:.video;*;*;*;*',
|
||||
推荐: `js:
|
||||
var d = [];
|
||||
let html = request(input);
|
||||
html = JSON.parse(html).data[0].video;
|
||||
html.forEach(it => {
|
||||
d.push({
|
||||
title: it.title,
|
||||
img: it.path,
|
||||
desc: it.playlist.title + ' ⭐' + it.score,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
// 一级:'json:data;title;path;playlist.title;id',
|
||||
一级: `js:
|
||||
cateObj.tid = cateObj.tid+'';
|
||||
if (cateObj.tid.endsWith('_clicklink')) {
|
||||
cateObj.tid = cateObj.tid.split('_')[0];
|
||||
input = HOST + '/api/video/search?key=' + cateObj.tid + '&page=' + + MY_PAGE;
|
||||
}
|
||||
var d = [];
|
||||
let html = request(input);
|
||||
html = JSON.parse(html).data;
|
||||
html.forEach(it => {
|
||||
d.push({
|
||||
title: it.title,
|
||||
img: it.thumbnail||it.path,
|
||||
desc: (it.mask || it.playlist.title) + ' ⭐' + it.score,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
二级: `js:
|
||||
function getLink(data) {
|
||||
let link = data.map(it => {
|
||||
return '[a=cr:' + JSON.stringify({'id':it.name+'_clicklink','name':it.name}) + '/]' + it.name + '[/a]'
|
||||
}).join(', ');
|
||||
return link
|
||||
}
|
||||
try {
|
||||
let html = request(input);
|
||||
html = JSON.parse(html);
|
||||
let node = html.data;
|
||||
VOD = {
|
||||
vod_id: node.id,
|
||||
vod_name: node.title,
|
||||
vod_pic: node.thumbnail,
|
||||
type_name: node.types[0].name,
|
||||
vod_year: node.year.title,
|
||||
vod_area: node.area.title,
|
||||
vod_remarks: node.score,
|
||||
vod_actor: getLink(node.actors),
|
||||
vod_director: getLink(node.directors),
|
||||
vod_content: node.description.strip()
|
||||
};
|
||||
if (typeof play_url === 'undefined') {
|
||||
var play_url = ''
|
||||
}
|
||||
let playMap = {};
|
||||
if (node.have_ftp_ur == 1) {
|
||||
playMap["边下边播,勤去清缓存"] = node.new_ftp_list.map(it => {
|
||||
return it.title + "$" + (/m3u8/.test(it.url) ? play_url + it.url : "tvbox-xg:" + it.url)
|
||||
}).join('#');
|
||||
}
|
||||
if (node.have_m3u8_ur == 1) {
|
||||
playMap["在线点播普清版"] = node.new_m3u8_list.map(it => {
|
||||
return it.title + "$" + (/m3u8/.test(it.url) ? play_url + it.url : "tvbox-xg:" + it.url)
|
||||
}).join('#');
|
||||
}
|
||||
let playFrom = [];
|
||||
let playList = [];
|
||||
Object.keys(playMap).forEach(key => {
|
||||
playFrom.append(key);
|
||||
playList.append(playMap[key])
|
||||
});
|
||||
VOD.vod_play_from = playFrom.join('$$$');
|
||||
VOD.vod_play_url = playList.join('$$$');
|
||||
} catch (e) {
|
||||
log("获取二级详情页发生错误:" + e.message);
|
||||
}
|
||||
`,
|
||||
// 搜索:'json:data;*;thumbnail;mask;*',
|
||||
搜索: `js:
|
||||
var d = [];
|
||||
let html = request(input);
|
||||
html = JSON.parse(html).data;
|
||||
html.forEach(it => {
|
||||
d.push({
|
||||
title: it.title,
|
||||
img: it.thumbnail,
|
||||
desc: it.mask + ' ⭐' + it.score,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
33
lib/jrk.js
Normal file
33
lib/jrk.js
Normal file
@ -0,0 +1,33 @@
|
||||
var rule = {
|
||||
title:'JRKAN直播',
|
||||
host:'http://www.jrkan2022.com/?lan=1',
|
||||
// JRKAN备用域名:www.jrkankan.com / www.jrkan365.com / jrsyyds.com / www.jryyds.com / jrskan.com / jrsbxj.com /Jrkan备用域名1: www.jrkan2022.com 备用域名2: www.jrs23.com 备用域名2: www.jrskk.com 最新网址发布:www.qiumi1314.co
|
||||
|
||||
url:'/fyclass',
|
||||
searchUrl:'/x/search/?q=**',
|
||||
searchable:1,
|
||||
quickSearch:1,
|
||||
class_name:'全部',
|
||||
class_url:'/',
|
||||
//class_url:'?live',
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
play_parse:true,
|
||||
lazy:"",
|
||||
limit:6,
|
||||
double:false,
|
||||
推荐:'*',
|
||||
// 一级:'.loc_match:eq(2) ul;li:gt(1):lt(4)&&Text;img&&src;li:lt(2)&&Text;a:eq(1)&&href',//play.sportsteam333.com
|
||||
一级:"js:var items=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;var html=request(input);var tabs=pdfa(html,'body&&.d-touch');tabs.forEach(function(it){var pz=pdfh(it,'.name:eq(1)&&Text');var ps=pdfh(it,'.name:eq(0)&&Text');var pk=pdfh(it,'.name:eq(2)&&Text');var img=pd(it,'img&&src');var url=pd(it,'a.me&&href');var timer=pdfh(it,'.lab_time&&Text');var parts = timer.split(' ');var dateParts = parts[0].split('-');var timeParts = parts[1].split(':');var year = new Date().getFullYear();var date = new Date(year, dateParts[0] - 1, dateParts[1], timeParts[0], timeParts[1]);var now = new Date();var hundredMinutesAgo = new Date(now.getTime() - 100 * 60 * 1000);if (date > hundredMinutesAgo) {timer = timer.split(' ')[1];items.push({desc:timer+ ' '+'🏆'+ps,title:pz+' 🆚 '+pk,pic_url:img,url:url})}});setResult(items);",
|
||||
二级:{
|
||||
"title":".sub_list li:lt(2)&&Text;.sub_list li:eq(0)&&Text",
|
||||
"img":"img&&src",
|
||||
"desc":";;;.lab_team_home&&Text;.lab_team_away&&Text",
|
||||
"content":".sub_list ul&&Text",
|
||||
"tabs":"js:TABS=['实时直播']",
|
||||
"lists":"js:LISTS=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;let html=request(input);let data=pdfa(html,'.sub_playlist&&a');TABS.forEach(function(tab){let d=data.map(function(it){let name=pdfh(it,'strong&&Text');let url=pd(it,'a&&data-play');return name+'$'+url});LISTS.push(d)});",
|
||||
},
|
||||
搜索:'js:let d=[];setResult(d);',
|
||||
}
|
1
lib/lf_search3_min.js
Normal file
1
lib/lf_search3_min.js
Normal file
File diff suppressed because one or more lines are too long
1043
lib/live.txt
Normal file
1043
lib/live.txt
Normal file
File diff suppressed because it is too large
Load Diff
1274
lib/live2.txt
Normal file
1274
lib/live2.txt
Normal file
File diff suppressed because it is too large
Load Diff
421
lib/miaiys.json
Normal file
421
lib/miaiys.json
Normal file
@ -0,0 +1,421 @@
|
||||
{
|
||||
|
||||
"作者":"荷城茶秀",
|
||||
|
||||
"站名":"米爱影视",
|
||||
|
||||
"主页url":"https://www.miai9.cc/",
|
||||
|
||||
"简介":"+剧情:&&(米爱影视频+。",
|
||||
|
||||
"导演":"导演:&&</div>",
|
||||
|
||||
"主演":"主演:&&</div>",
|
||||
|
||||
"影片状态":"集数:&&</div>",
|
||||
|
||||
"影片类型":"video-info-aux scroll-content\">&&立即播放",
|
||||
|
||||
"数组":"module-item-pic\">&&module-item\">",
|
||||
|
||||
"标题":"title=\"&&\"",
|
||||
|
||||
"副标题":"module-item-text\"&&</div>",
|
||||
|
||||
"图片":"data-src=\"&&\"",
|
||||
|
||||
"链接":"href=\"&&\"",
|
||||
|
||||
"搜索url":"/vodsearch/-------------.html?wd={wd}",
|
||||
|
||||
"搜索数组":"lazy lazyload\"&&<h3>",
|
||||
|
||||
"搜索标题":"alt=\"&&\"",
|
||||
|
||||
"搜索副标题":"<a class=\"video-serial\" href=*>&&</a>",
|
||||
|
||||
"搜索图片":"data-src=\"&&\"",
|
||||
|
||||
"搜索链接":"href=\"&&\"",
|
||||
|
||||
"线路数组":"data-dropdown-value=&&</div>",
|
||||
|
||||
"线路标题":"<span>&&</small>[替换:HD高清->>高清#</span><small>>>共]+集",
|
||||
|
||||
"播放数组":"sort-item\"&&</div>",
|
||||
|
||||
"播放标题":"<span>&&</span>",
|
||||
|
||||
"播放列表":"<a&&</a>",
|
||||
|
||||
"分类url":"https://www.miai9.cc/vodshow/{cateId}-{area}-{by}-{class}-{lang}----{catePg}---{year}.html;;ak",
|
||||
|
||||
"分类":"电影$1#电视剧$2#综艺$3#动漫$4#纪录片$32",
|
||||
|
||||
"筛选":{
|
||||
"1":[
|
||||
{"key":"cateId","name":"类型","value":[
|
||||
{"n":"全部类型","v":""},
|
||||
{"n":"剧情片","v":"11"},
|
||||
{"n":"喜剧片","v":"7"},
|
||||
{"n":"动作片","v":"6"},
|
||||
{"n":"科幻片","v":"9"},
|
||||
{"n":"犯罪片","v":"35"},
|
||||
{"n":"悬疑片","v":"36"},
|
||||
{"n":"爱情片","v":"8"},
|
||||
{"n":"恐怖片","v":"10"},
|
||||
{"n":"战争片","v":"12"},
|
||||
{"n":"动漫片","v":"28"},
|
||||
{"n":"其他电影","v":"53"}
|
||||
]
|
||||
},
|
||||
{"key":"class","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":"恐怖"},
|
||||
{"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":"area","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":"其他"}
|
||||
]
|
||||
},
|
||||
{"key":"lang","name":"语言","value":[
|
||||
{"n":"全部语言","v":""},
|
||||
{"n":"国语","v":"国语"},
|
||||
{"n":"英语","v":"英语"},
|
||||
{"n":"粤语","v":"粤语"},
|
||||
{"n":"闽南语","v":"闽南语"},
|
||||
{"n":"韩语","v":"韩语"},
|
||||
{"n":"日语","v":"日语"},
|
||||
{"n":"法语","v":"法语"},
|
||||
{"n":"德语","v":"德语"},
|
||||
{"n":"其它","v":"其它"}
|
||||
]
|
||||
},
|
||||
{"key":"year","name":"时间","value":[
|
||||
{"n":"全部时间","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"2009","v":"2009"},
|
||||
{"n":"2008","v":"2008"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2":[
|
||||
{"key":"cateId","name":"类型","value":[
|
||||
{"n":"全部类型","v":""},
|
||||
{"n":"国产剧","v":"13"},
|
||||
{"n":"韩国剧","v":"15"},
|
||||
{"n":"日本剧","v":"29"},
|
||||
{"n":"欧美剧","v":"16"},
|
||||
{"n":"港澳剧","v":"44"},
|
||||
{"n":"台湾剧","v":"14"},
|
||||
{"n":"泰国剧","v":"27"}
|
||||
]
|
||||
},
|
||||
{"key":"class","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":"area","name":"地区","value":[
|
||||
{"n":"全部地区","v":""},
|
||||
{"n":"内地","v":"内地"},
|
||||
{"n":"韩国","v":"韩国"},
|
||||
{"n":"香港","v":"香港"},
|
||||
{"n":"台湾","v":"台湾"},
|
||||
{"n":"日本","v":"日本"},
|
||||
{"n":"美国","v":"美国"},
|
||||
{"n":"泰国","v":"泰国"},
|
||||
{"n":"英国","v":"英国"},
|
||||
{"n":"新加坡","v":"新加坡"},
|
||||
{"n":"其他","v":"其他"}
|
||||
]
|
||||
},
|
||||
{"key":"lang","name":"语言","value":[
|
||||
{"n":"全部语言","v":""},
|
||||
{"n":"国语","v":"国语"},
|
||||
{"n":"英语","v":"英语"},
|
||||
{"n":"粤语","v":"粤语"},
|
||||
{"n":"闽南语","v":"闽南语"},
|
||||
{"n":"韩语","v":"韩语"},
|
||||
{"n":"日语","v":"日语"},
|
||||
{"n":"法语","v":"法语"},
|
||||
{"n":"其它","v":"其它"}
|
||||
]
|
||||
},
|
||||
{"key":"year","name":"时间","value":[
|
||||
{"n":"全部时间","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"2009","v":"2009"},
|
||||
{"n":"2008","v":"2008"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3":[
|
||||
{"key":"cateId","name":"类型","value":[
|
||||
{"n":"全部类型","v":""},
|
||||
{"n":"内地","v":"23"},
|
||||
{"n":"港台","v":"24"},
|
||||
{"n":"日韩","v":"25"},
|
||||
{"n":"欧美","v":"26"}
|
||||
]
|
||||
},
|
||||
{"key":"class","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":"求职"}
|
||||
]
|
||||
},
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部地区","v":""},
|
||||
{"n":"内地","v":"内地"},
|
||||
{"n":"港台","v":"港台"},
|
||||
{"n":"日韩","v":"日韩"},
|
||||
{"n":"欧美","v":"欧美"}
|
||||
]
|
||||
},
|
||||
{"key":"lang","name":"语言","value":[
|
||||
{"n":"全部语言","v":""},
|
||||
{"n":"国语","v":"国语"},
|
||||
{"n":"英语","v":"英语"},
|
||||
{"n":"粤语","v":"粤语"},
|
||||
{"n":"闽南语","v":"闽南语"},
|
||||
{"n":"韩语","v":"韩语"},
|
||||
{"n":"日语","v":"日语"},
|
||||
{"n":"法语","v":"法语"},
|
||||
{"n":"其它","v":"其它"}
|
||||
]
|
||||
},
|
||||
{"key":"year","name":"时间","value":[
|
||||
{"n":"全部时间","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"2009","v":"2009"},
|
||||
{"n":"2008","v":"2008"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4":[
|
||||
{"key":"cateId","name":"类型","value":[
|
||||
{"n":"全部类型","v":""},
|
||||
{"n":"国产","v":"20"},
|
||||
{"n":"日韩","v":"21"},
|
||||
{"n":"欧美","v":"22"},
|
||||
{"n":"港台","v":"59"}
|
||||
]
|
||||
},
|
||||
{"key":"class","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":"原创"},
|
||||
{"n":"亲子","v":"亲子"},
|
||||
{"n":"益智","v":"益智"},
|
||||
{"n":"励志","v":"励志"},
|
||||
{"n":"其他","v":"其他"}
|
||||
]
|
||||
},
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部地区","v":""},
|
||||
{"n":"国产","v":"国产"},
|
||||
{"n":"日本","v":"日本"},
|
||||
{"n":"欧美","v":"欧美"},
|
||||
{"n":"其他","v":"其他"}
|
||||
]
|
||||
},
|
||||
{"key":"lang","name":"语言","value":[
|
||||
{"n":"全部语言","v":""},
|
||||
{"n":"国语","v":"国语"},
|
||||
{"n":"英语","v":"英语"},
|
||||
{"n":"粤语","v":"粤语"},
|
||||
{"n":"闽南语","v":"闽南语"},
|
||||
{"n":"韩语","v":"韩语"},
|
||||
{"n":"日语","v":"日语"},
|
||||
{"n":"法语","v":"法语"},
|
||||
{"n":"其它","v":"其它"}
|
||||
]
|
||||
},
|
||||
{"key":"year","name":"时间","value":[
|
||||
{"n":"全部时间","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"2009","v":"2009"},
|
||||
{"n":"2008","v":"2008"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"32":[
|
||||
{"key":"cateId","name":"类型","value":[
|
||||
{"n":"全部类型","v":""},
|
||||
{"n":"国语记录片","v":"42"},
|
||||
{"n":"外语记录片","v":"43"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
81
lib/nfzw.json
Normal file
81
lib/nfzw.json
Normal file
@ -0,0 +1,81 @@
|
||||
{
|
||||
"规则名": "UM影院",
|
||||
"规则作者": "香雅情",
|
||||
"请求头参数": "User-Agent$MOBILE_UA#Referer$WebView",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "0",
|
||||
"是否开启获取首页数据": "0",
|
||||
"首页推荐链接": "https://www.netfly.tv",
|
||||
"首页列表数组规则": "body&&.module-main.tab-list.active",
|
||||
"首页片单列表数组规则": ".module-item",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "https://www.netfly.tv/vod/show/{cateId}--------{catePg}---.html",
|
||||
"分类名称": "电影&电视剧&综艺&动漫",
|
||||
"分类名称替换词": "1&2&3&4",
|
||||
"筛选数据": {},
|
||||
//"筛选数据": "ext",
|
||||
//{cateId}
|
||||
"筛选子分类名称": "",
|
||||
"筛选子分类替换词": "",
|
||||
//{class}
|
||||
"筛选类型名称": "",
|
||||
"筛选类型替换词": "*",
|
||||
//{area}
|
||||
"筛选地区名称": "",
|
||||
"筛选地区替换词": "*",
|
||||
//{year}
|
||||
"筛选年份名称": "",
|
||||
"筛选年份替换词": "*",
|
||||
//{lang}
|
||||
"筛选语言名称": "",
|
||||
"筛选语言替换词": "*",
|
||||
//{by}
|
||||
"筛选排序名称": "时间&人气&评分",
|
||||
"筛选排序替换词": "time&hits&score",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": "body&&.module-item",
|
||||
"分类片单是否Jsoup写法": "1",
|
||||
"分类片单标题": "a&&title",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": ".lazyload&&data-original",
|
||||
"分类片单副标题": ".module-item-note&&Text",
|
||||
"分类片单链接加前缀": "https://www.netfly.tv",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$MOBILE_UA",
|
||||
"搜索链接": "https://www.netfly.tv/vod/search/{wd}----------1---.html",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": "body&&.module-item",
|
||||
"搜索片单是否Jsoup写法": "1",
|
||||
"搜索片单图片": ".lazyload&&data-original",
|
||||
"搜索片单标题": ".module-card-item-title&&Text",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": ".module-item-note&&Text",
|
||||
"搜索片单链接加前缀": "https://www.netfly.tv",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "0",
|
||||
"直接播放链接加前缀": "",
|
||||
"直接播放链接加后缀": "#isVideo=true#",
|
||||
"直接播放直链视频请求头": "",
|
||||
"详情是否Jsoup写法": "0",
|
||||
"类型详情": "",
|
||||
"年代详情": "",
|
||||
"地区详情": "",
|
||||
"演员详情": "主演:</span>&&</div>",
|
||||
"简介详情": "introduction\">&&</p>",
|
||||
"线路列表数组规则": "#y-playList&&.module-tab-item",
|
||||
"线路标题": "Text",
|
||||
"播放列表数组规则": "body&&.module-play-list-content",
|
||||
"选集列表数组规则": "a",
|
||||
"选集标题链接是否Jsoup写法": "1",
|
||||
"选集标题": "a&&Text",
|
||||
"选集链接": "a&&href",
|
||||
"是否反转选集序列": "0",
|
||||
"选集链接加前缀": "https://www.netfly.tv",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "2",
|
||||
"是否开启手动嗅探": "1",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
|
||||
"手动嗅探视频链接过滤词": ".html"
|
||||
}
|
2
lib/qyg0.js
Normal file
2
lib/qyg0.js
Normal file
File diff suppressed because one or more lines are too long
2
lib/qyg1.js
Normal file
2
lib/qyg1.js
Normal file
File diff suppressed because one or more lines are too long
304
lib/qyg2.js
Normal file
304
lib/qyg2.js
Normal file
@ -0,0 +1,304 @@
|
||||
if (typeof Object.assign != 'function') {
|
||||
Object.assign = function () {
|
||||
var target = arguments[0];
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = arguments[i];
|
||||
for (var key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return target;
|
||||
};
|
||||
}
|
||||
function getMubans() {
|
||||
var mubanDict = { // 模板字典
|
||||
mxpro: {
|
||||
title: '',
|
||||
host: '',
|
||||
// homeUrl:'/',
|
||||
url: '/vodshow/fyclass--------fypage---.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
// "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.module-info-tag&&Text",
|
||||
"img": ".lazyload&&data-original",
|
||||
"desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text",
|
||||
"content": ".module-info-introduction&&Text",
|
||||
"tabs": ".module-tab-item",
|
||||
"lists": ".module-play-list:eq(#id) a"
|
||||
},
|
||||
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
|
||||
},
|
||||
mxone5: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/show/fyclass--------fypage---.html',
|
||||
searchUrl: '/search/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.tag-link&&Text",
|
||||
"img": ".module-item-pic&&img&&data-src",
|
||||
"desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text",
|
||||
"content": ".vod_content&&Text",
|
||||
"tabs": ".module-tab-item",
|
||||
"lists": ".module-player-list:eq(#id)&&.scroll-content&&a"
|
||||
},
|
||||
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
|
||||
},
|
||||
首图: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---/',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
// "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
"title": ".myui-content__detail .title&&Text;.myui-content__detail p:eq(-2)&&Text",
|
||||
"img": ".myui-content__thumb .lazyload&&data-original",
|
||||
"desc": ".myui-content__detail p:eq(0)&&Text;.myui-content__detail p:eq(1)&&Text;.myui-content__detail p:eq(2)&&Text",
|
||||
"content": ".content&&Text",
|
||||
"tabs": ".nav-tabs:eq(0) li",
|
||||
"lists": ".myui-content__list:eq(#id) li"
|
||||
},
|
||||
搜索: '#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
},
|
||||
首图2: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/list/fyclass-fypage.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA',
|
||||
// "Cookie": ""
|
||||
},
|
||||
// class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
|
||||
class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
"title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text",
|
||||
"img": ".stui-content__thumb .lazyload&&data-original",
|
||||
"desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text",
|
||||
"content": ".detail&&Text",
|
||||
"tabs": ".stui-vodlist__head h3",
|
||||
"lists": ".stui-content__playlist:eq(#id) li"
|
||||
},
|
||||
搜索: 'ul.stui-vodlist__media:eq(0) li,ul.stui-vodlist:eq(0) li,#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
搜索1: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
搜索2: 'ul.stui-vodlist__media&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
},
|
||||
默认: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---.html',
|
||||
searchUrl: '/vodsearch/-------------.html?wd=**',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
},
|
||||
vfed: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA',
|
||||
},
|
||||
// class_parse:'.fed-pops-navbar&&ul.fed-part-rows&&a.fed-part-eone:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
|
||||
class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text",
|
||||
"img": ".fed-list-info&&a&&data-original",
|
||||
"desc": ".fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text",
|
||||
"content": ".fed-part-esan&&Text",
|
||||
"tabs": ".fed-drop-boxs&&.fed-part-rows&&li",
|
||||
"lists": ".fed-play-item:eq(#id)&&ul:eq(1)&&li"
|
||||
},
|
||||
搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
|
||||
},
|
||||
海螺3: {
|
||||
title: '',
|
||||
host: '',
|
||||
searchUrl: '/v_search/**----------fypage---.html',
|
||||
url: '/vod_____show/fyclass--------fypage---.html',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
|
||||
cate_exclude: '明星|专题|最新|排行',
|
||||
limit: 40,
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
double: true,
|
||||
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
二级: {
|
||||
"title": ".hl-infos-title&&Text;.hl-text-conch&&Text",
|
||||
"img": ".hl-lazy&&data-original",
|
||||
"desc": ".hl-infos-content&&.hl-text-conch&&Text",
|
||||
"content": ".hl-content-text&&Text",
|
||||
"tabs": ".hl-tabs&&a",
|
||||
"lists": ".hl-plays-list:eq(#id)&&li"
|
||||
},
|
||||
搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
},
|
||||
海螺2: {
|
||||
title: '',
|
||||
host: '',
|
||||
searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage/',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
|
||||
limit: 40,
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
|
||||
double: true,
|
||||
一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h2&&Text;.deployment&&Text",
|
||||
"img": ".lazy&&data-original",
|
||||
"desc": ".deployment&&Text",
|
||||
"content": ".ec-show&&Text",
|
||||
"tabs": "#tag&&a",
|
||||
"lists": ".play_list_box:eq(#id)&&li"
|
||||
},
|
||||
搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
},
|
||||
短视: {
|
||||
title: '',
|
||||
host: '',
|
||||
// homeUrl:'/',
|
||||
url: '/channel/fyclass-fypage.html',
|
||||
searchUrl: '/search.html?wd=**',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
// "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
|
||||
cate_exclude: '解析|动态',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.content-rt&&p:eq(0)&&Text",
|
||||
"img": ".img&&img&&data-src",
|
||||
"desc": ".content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text",
|
||||
"content": ".zkjj_a&&Text",
|
||||
"tabs": ".py-tabs&&option",
|
||||
"lists": ".player:eq(#id) li"
|
||||
},
|
||||
搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
|
||||
},
|
||||
短视2:{
|
||||
title: '',
|
||||
host: '',
|
||||
class_name:'电影&电视剧&综艺&动漫',
|
||||
class_url:'1&2&3&4',
|
||||
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
headers:{'User-Agent':'MOBILE_UA'},
|
||||
url: '/index.php/api/vod#type=fyclass&page=fypage',
|
||||
filterable:0,//是否启用分类筛选,
|
||||
filter_url:'',
|
||||
filter: {},
|
||||
filter_def:{},
|
||||
detailUrl:'/index.php/vod/detail/id/fyid.html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐:'.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
|
||||
一级:'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
|
||||
二级:{
|
||||
"title":".slide-info-title&&Text;.slide-info:eq(3)--strong&&Text",
|
||||
"img":".detail-pic&&data-original",
|
||||
"desc":".fraction&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(2)--strong&&Text;.slide-info:eq(1)--strong&&Text",
|
||||
"content":"#height_limit&&Text",
|
||||
"tabs":".anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a",
|
||||
"tab_text":".swiper-slide&&Text",
|
||||
"lists":".anthology-list-box:eq(#id) li"
|
||||
},
|
||||
搜索:'json:list;name;pic;;id',
|
||||
}
|
||||
};
|
||||
return JSON.parse(JSON.stringify(mubanDict));
|
||||
}
|
||||
var mubanDict = getMubans();
|
||||
var muban = getMubans();
|
||||
export default {muban,getMubans};
|
68
lib/qyg3.js
Normal file
68
lib/qyg3.js
Normal file
File diff suppressed because one or more lines are too long
1737
lib/qyg4.js
Normal file
1737
lib/qyg4.js
Normal file
File diff suppressed because one or more lines are too long
577
lib/qyg5.js
Normal file
577
lib/qyg5.js
Normal file
@ -0,0 +1,577 @@
|
||||
/*!
|
||||
* Jinja Templating for JavaScript v0.1.8
|
||||
* https://github.com/sstur/jinja-js
|
||||
*
|
||||
* This is a slimmed-down Jinja2 implementation [http://jinja.pocoo.org/]
|
||||
*
|
||||
* In the interest of simplicity, it deviates from Jinja2 as follows:
|
||||
* - Line statements, cycle, super, macro tags and block nesting are not implemented
|
||||
* - auto escapes html by default (the filter is "html" not "e")
|
||||
* - Only "html" and "safe" filters are built in
|
||||
* - Filters are not valid in expressions; `foo|length > 1` is not valid
|
||||
* - Expression Tests (`if num is odd`) not implemented (`is` translates to `==` and `isnot` to `!=`)
|
||||
*
|
||||
* Notes:
|
||||
* - if property is not found, but method '_get' exists, it will be called with the property name (and cached)
|
||||
* - `{% for n in obj %}` iterates the object's keys; get the value with `{% for n in obj %}{{ obj[n] }}{% endfor %}`
|
||||
* - subscript notation `a[0]` takes literals or simple variables but not `a[item.key]`
|
||||
* - `.2` is not a valid number literal; use `0.2`
|
||||
*
|
||||
*/
|
||||
/*global require, exports, module, define */
|
||||
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jinja = {}));
|
||||
})(this, (function (jinja) {
|
||||
"use strict";
|
||||
var STRINGS = /'(\\.|[^'])*'|"(\\.|[^"'"])*"/g;
|
||||
var IDENTS_AND_NUMS = /([$_a-z][$\w]*)|([+-]?\d+(\.\d+)?)/g;
|
||||
var NUMBER = /^[+-]?\d+(\.\d+)?$/;
|
||||
//non-primitive literals (array and object literals)
|
||||
var NON_PRIMITIVES = /\[[@#~](,[@#~])*\]|\[\]|\{([@i]:[@#~])(,[@i]:[@#~])*\}|\{\}/g;
|
||||
//bare identifiers such as variables and in object literals: {foo: 'value'}
|
||||
var IDENTIFIERS = /[$_a-z][$\w]*/ig;
|
||||
var VARIABLES = /i(\.i|\[[@#i]\])*/g;
|
||||
var ACCESSOR = /(\.i|\[[@#i]\])/g;
|
||||
var OPERATORS = /(===?|!==?|>=?|<=?|&&|\|\||[+\-\*\/%])/g;
|
||||
//extended (english) operators
|
||||
var EOPS = /(^|[^$\w])(and|or|not|is|isnot)([^$\w]|$)/g;
|
||||
var LEADING_SPACE = /^\s+/;
|
||||
var TRAILING_SPACE = /\s+$/;
|
||||
|
||||
var START_TOKEN = /\{\{\{|\{\{|\{%|\{#/;
|
||||
var TAGS = {
|
||||
'{{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}\}/,
|
||||
'{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}/,
|
||||
'{%': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?%\}/,
|
||||
'{#': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?#\}/
|
||||
};
|
||||
|
||||
var delimeters = {
|
||||
'{%': 'directive',
|
||||
'{{': 'output',
|
||||
'{#': 'comment'
|
||||
};
|
||||
|
||||
var operators = {
|
||||
and: '&&',
|
||||
or: '||',
|
||||
not: '!',
|
||||
is: '==',
|
||||
isnot: '!='
|
||||
};
|
||||
|
||||
var constants = {
|
||||
'true': true,
|
||||
'false': false,
|
||||
'null': null
|
||||
};
|
||||
|
||||
function Parser() {
|
||||
this.nest = [];
|
||||
this.compiled = [];
|
||||
this.childBlocks = 0;
|
||||
this.parentBlocks = 0;
|
||||
this.isSilent = false;
|
||||
}
|
||||
|
||||
Parser.prototype.push = function (line) {
|
||||
if (!this.isSilent) {
|
||||
this.compiled.push(line);
|
||||
}
|
||||
};
|
||||
|
||||
Parser.prototype.parse = function (src) {
|
||||
this.tokenize(src);
|
||||
return this.compiled;
|
||||
};
|
||||
|
||||
Parser.prototype.tokenize = function (src) {
|
||||
var lastEnd = 0, parser = this, trimLeading = false;
|
||||
matchAll(src, START_TOKEN, function (open, index, src) {
|
||||
//here we match the rest of the src against a regex for this tag
|
||||
var match = src.slice(index + open.length).match(TAGS[open]);
|
||||
match = (match ? match[0] : '');
|
||||
//here we sub out strings so we don't get false matches
|
||||
var simplified = match.replace(STRINGS, '@');
|
||||
//if we don't have a close tag or there is a nested open tag
|
||||
if (!match || ~simplified.indexOf(open)) {
|
||||
return index + 1;
|
||||
}
|
||||
var inner = match.slice(0, 0 - open.length);
|
||||
//check for white-space collapse syntax
|
||||
if (inner.charAt(0) === '-') var wsCollapseLeft = true;
|
||||
if (inner.slice(-1) === '-') var wsCollapseRight = true;
|
||||
inner = inner.replace(/^-|-$/g, '').trim();
|
||||
//if we're in raw mode and we are not looking at an "endraw" tag, move along
|
||||
if (parser.rawMode && (open + inner) !== '{%endraw') {
|
||||
return index + 1;
|
||||
}
|
||||
var text = src.slice(lastEnd, index);
|
||||
lastEnd = index + open.length + match.length;
|
||||
if (trimLeading) text = trimLeft(text);
|
||||
if (wsCollapseLeft) text = trimRight(text);
|
||||
if (wsCollapseRight) trimLeading = true;
|
||||
if (open === '{{{') {
|
||||
//liquid-style: make {{{x}}} => {{x|safe}}
|
||||
open = '{{';
|
||||
inner += '|safe';
|
||||
}
|
||||
parser.textHandler(text);
|
||||
parser.tokenHandler(open, inner);
|
||||
});
|
||||
var text = src.slice(lastEnd);
|
||||
if (trimLeading) text = trimLeft(text);
|
||||
this.textHandler(text);
|
||||
};
|
||||
|
||||
Parser.prototype.textHandler = function (text) {
|
||||
this.push('write(' + JSON.stringify(text) + ');');
|
||||
};
|
||||
|
||||
Parser.prototype.tokenHandler = function (open, inner) {
|
||||
var type = delimeters[open];
|
||||
if (type === 'directive') {
|
||||
this.compileTag(inner);
|
||||
} else if (type === 'output') {
|
||||
var extracted = this.extractEnt(inner, STRINGS, '@');
|
||||
//replace || operators with ~
|
||||
extracted.src = extracted.src.replace(/\|\|/g, '~').split('|');
|
||||
//put back || operators
|
||||
extracted.src = extracted.src.map(function (part) {
|
||||
return part.split('~').join('||');
|
||||
});
|
||||
var parts = this.injectEnt(extracted, '@');
|
||||
if (parts.length > 1) {
|
||||
var filters = parts.slice(1).map(this.parseFilter.bind(this));
|
||||
this.push('filter(' + this.parseExpr(parts[0]) + ',' + filters.join(',') + ');');
|
||||
} else {
|
||||
this.push('filter(' + this.parseExpr(parts[0]) + ');');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Parser.prototype.compileTag = function (str) {
|
||||
var directive = str.split(' ')[0];
|
||||
var handler = tagHandlers[directive];
|
||||
if (!handler) {
|
||||
throw new Error('Invalid tag: ' + str);
|
||||
}
|
||||
handler.call(this, str.slice(directive.length).trim());
|
||||
};
|
||||
|
||||
Parser.prototype.parseFilter = function (src) {
|
||||
src = src.trim();
|
||||
var match = src.match(/[:(]/);
|
||||
var i = match ? match.index : -1;
|
||||
if (i < 0) return JSON.stringify([src]);
|
||||
var name = src.slice(0, i);
|
||||
var args = src.charAt(i) === ':' ? src.slice(i + 1) : src.slice(i + 1, -1);
|
||||
args = this.parseExpr(args, {terms: true});
|
||||
return '[' + JSON.stringify(name) + ',' + args + ']';
|
||||
};
|
||||
|
||||
Parser.prototype.extractEnt = function (src, regex, placeholder) {
|
||||
var subs = [], isFunc = typeof placeholder == 'function';
|
||||
src = src.replace(regex, function (str) {
|
||||
var replacement = isFunc ? placeholder(str) : placeholder;
|
||||
if (replacement) {
|
||||
subs.push(str);
|
||||
return replacement;
|
||||
}
|
||||
return str;
|
||||
});
|
||||
return {src: src, subs: subs};
|
||||
};
|
||||
|
||||
Parser.prototype.injectEnt = function (extracted, placeholder) {
|
||||
var src = extracted.src, subs = extracted.subs, isArr = Array.isArray(src);
|
||||
var arr = (isArr) ? src : [src];
|
||||
var re = new RegExp('[' + placeholder + ']', 'g'), i = 0;
|
||||
arr.forEach(function (src, index) {
|
||||
arr[index] = src.replace(re, function () {
|
||||
return subs[i++];
|
||||
});
|
||||
});
|
||||
return isArr ? arr : arr[0];
|
||||
};
|
||||
|
||||
//replace complex literals without mistaking subscript notation with array literals
|
||||
Parser.prototype.replaceComplex = function (s) {
|
||||
var parsed = this.extractEnt(s, /i(\.i|\[[@#i]\])+/g, 'v');
|
||||
parsed.src = parsed.src.replace(NON_PRIMITIVES, '~');
|
||||
return this.injectEnt(parsed, 'v');
|
||||
};
|
||||
|
||||
//parse expression containing literals (including objects/arrays) and variables (including dot and subscript notation)
|
||||
//valid expressions: `a + 1 > b.c or c == null`, `a and b[1] != c`, `(a < b) or (c < d and e)`, 'a || [1]`
|
||||
Parser.prototype.parseExpr = function (src, opts) {
|
||||
opts = opts || {};
|
||||
//extract string literals -> @
|
||||
var parsed1 = this.extractEnt(src, STRINGS, '@');
|
||||
//note: this will catch {not: 1} and a.is; could we replace temporarily and then check adjacent chars?
|
||||
parsed1.src = parsed1.src.replace(EOPS, function (s, before, op, after) {
|
||||
return (op in operators) ? before + operators[op] + after : s;
|
||||
});
|
||||
//sub out non-string literals (numbers/true/false/null) -> #
|
||||
// the distinction is necessary because @ can be object identifiers, # cannot
|
||||
var parsed2 = this.extractEnt(parsed1.src, IDENTS_AND_NUMS, function (s) {
|
||||
return (s in constants || NUMBER.test(s)) ? '#' : null;
|
||||
});
|
||||
//sub out object/variable identifiers -> i
|
||||
var parsed3 = this.extractEnt(parsed2.src, IDENTIFIERS, 'i');
|
||||
//remove white-space
|
||||
parsed3.src = parsed3.src.replace(/\s+/g, '');
|
||||
|
||||
//the rest of this is simply to boil the expression down and check validity
|
||||
var simplified = parsed3.src;
|
||||
//sub out complex literals (objects/arrays) -> ~
|
||||
// the distinction is necessary because @ and # can be subscripts but ~ cannot
|
||||
while (simplified !== (simplified = this.replaceComplex(simplified))) ;
|
||||
//now @ represents strings, # represents other primitives and ~ represents non-primitives
|
||||
//replace complex variables (those with dot/subscript accessors) -> v
|
||||
while (simplified !== (simplified = simplified.replace(/i(\.i|\[[@#i]\])+/, 'v'))) ;
|
||||
//empty subscript or complex variables in subscript, are not permitted
|
||||
simplified = simplified.replace(/[iv]\[v?\]/g, 'x');
|
||||
//sub in "i" for @ and # and ~ and v (now "i" represents all literals, variables and identifiers)
|
||||
simplified = simplified.replace(/[@#~v]/g, 'i');
|
||||
//sub out operators
|
||||
simplified = simplified.replace(OPERATORS, '%');
|
||||
//allow 'not' unary operator
|
||||
simplified = simplified.replace(/!+[i]/g, 'i');
|
||||
var terms = opts.terms ? simplified.split(',') : [simplified];
|
||||
terms.forEach(function (term) {
|
||||
//simplify logical grouping
|
||||
while (term !== (term = term.replace(/\(i(%i)*\)/g, 'i'))) ;
|
||||
if (!term.match(/^i(%i)*/)) {
|
||||
throw new Error('Invalid expression: ' + src + " " + term);
|
||||
}
|
||||
});
|
||||
parsed3.src = parsed3.src.replace(VARIABLES, this.parseVar.bind(this));
|
||||
parsed2.src = this.injectEnt(parsed3, 'i');
|
||||
parsed1.src = this.injectEnt(parsed2, '#');
|
||||
return this.injectEnt(parsed1, '@');
|
||||
};
|
||||
|
||||
Parser.prototype.parseVar = function (src) {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
var str = args.pop(), index = args.pop();
|
||||
//quote bare object identifiers (might be a reserved word like {while: 1})
|
||||
if (src === 'i' && str.charAt(index + 1) === ':') {
|
||||
return '"i"';
|
||||
}
|
||||
var parts = ['"i"'];
|
||||
src.replace(ACCESSOR, function (part) {
|
||||
if (part === '.i') {
|
||||
parts.push('"i"');
|
||||
} else if (part === '[i]') {
|
||||
parts.push('get("i")');
|
||||
} else {
|
||||
parts.push(part.slice(1, -1));
|
||||
}
|
||||
});
|
||||
return 'get(' + parts.join(',') + ')';
|
||||
};
|
||||
|
||||
//escapes a name to be used as a javascript identifier
|
||||
Parser.prototype.escName = function (str) {
|
||||
return str.replace(/\W/g, function (s) {
|
||||
return '$' + s.charCodeAt(0).toString(16);
|
||||
});
|
||||
};
|
||||
|
||||
Parser.prototype.parseQuoted = function (str) {
|
||||
if (str.charAt(0) === "'") {
|
||||
str = str.slice(1, -1).replace(/\\.|"/, function (s) {
|
||||
if (s === "\\'") return "'";
|
||||
return s.charAt(0) === '\\' ? s : ('\\' + s);
|
||||
});
|
||||
str = '"' + str + '"';
|
||||
}
|
||||
//todo: try/catch or deal with invalid characters (linebreaks, control characters)
|
||||
return JSON.parse(str);
|
||||
};
|
||||
|
||||
|
||||
//the context 'this' inside tagHandlers is the parser instance
|
||||
var tagHandlers = {
|
||||
'if': function (expr) {
|
||||
this.push('if (' + this.parseExpr(expr) + ') {');
|
||||
this.nest.unshift('if');
|
||||
},
|
||||
'else': function () {
|
||||
if (this.nest[0] === 'for') {
|
||||
this.push('}, function() {');
|
||||
} else {
|
||||
this.push('} else {');
|
||||
}
|
||||
},
|
||||
'elseif': function (expr) {
|
||||
this.push('} else if (' + this.parseExpr(expr) + ') {');
|
||||
},
|
||||
'endif': function () {
|
||||
this.nest.shift();
|
||||
this.push('}');
|
||||
},
|
||||
'for': function (str) {
|
||||
var i = str.indexOf(' in ');
|
||||
var name = str.slice(0, i).trim();
|
||||
var expr = str.slice(i + 4).trim();
|
||||
this.push('each(' + this.parseExpr(expr) + ',' + JSON.stringify(name) + ',function() {');
|
||||
this.nest.unshift('for');
|
||||
},
|
||||
'endfor': function () {
|
||||
this.nest.shift();
|
||||
this.push('});');
|
||||
},
|
||||
'raw': function () {
|
||||
this.rawMode = true;
|
||||
},
|
||||
'endraw': function () {
|
||||
this.rawMode = false;
|
||||
},
|
||||
'set': function (stmt) {
|
||||
var i = stmt.indexOf('=');
|
||||
var name = stmt.slice(0, i).trim();
|
||||
var expr = stmt.slice(i + 1).trim();
|
||||
this.push('set(' + JSON.stringify(name) + ',' + this.parseExpr(expr) + ');');
|
||||
},
|
||||
'block': function (name) {
|
||||
if (this.isParent) {
|
||||
++this.parentBlocks;
|
||||
var blockName = 'block_' + (this.escName(name) || this.parentBlocks);
|
||||
this.push('block(typeof ' + blockName + ' == "function" ? ' + blockName + ' : function() {');
|
||||
} else if (this.hasParent) {
|
||||
this.isSilent = false;
|
||||
++this.childBlocks;
|
||||
blockName = 'block_' + (this.escName(name) || this.childBlocks);
|
||||
this.push('function ' + blockName + '() {');
|
||||
}
|
||||
this.nest.unshift('block');
|
||||
},
|
||||
'endblock': function () {
|
||||
this.nest.shift();
|
||||
if (this.isParent) {
|
||||
this.push('});');
|
||||
} else if (this.hasParent) {
|
||||
this.push('}');
|
||||
this.isSilent = true;
|
||||
}
|
||||
},
|
||||
'extends': function (name) {
|
||||
name = this.parseQuoted(name);
|
||||
var parentSrc = this.readTemplateFile(name);
|
||||
this.isParent = true;
|
||||
this.tokenize(parentSrc);
|
||||
this.isParent = false;
|
||||
this.hasParent = true;
|
||||
//silence output until we enter a child block
|
||||
this.isSilent = true;
|
||||
},
|
||||
'include': function (name) {
|
||||
name = this.parseQuoted(name);
|
||||
var incSrc = this.readTemplateFile(name);
|
||||
this.isInclude = true;
|
||||
this.tokenize(incSrc);
|
||||
this.isInclude = false;
|
||||
}
|
||||
};
|
||||
|
||||
//liquid style
|
||||
tagHandlers.assign = tagHandlers.set;
|
||||
//python/django style
|
||||
tagHandlers.elif = tagHandlers.elseif;
|
||||
|
||||
var getRuntime = function runtime(data, opts) {
|
||||
var defaults = {autoEscape: 'toJson'};
|
||||
var _toString = Object.prototype.toString;
|
||||
var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
||||
var getKeys = Object.keys || function (obj) {
|
||||
var keys = [];
|
||||
for (var n in obj) if (_hasOwnProperty.call(obj, n)) keys.push(n);
|
||||
return keys;
|
||||
};
|
||||
var isArray = Array.isArray || function (obj) {
|
||||
return _toString.call(obj) === '[object Array]';
|
||||
};
|
||||
var create = Object.create || function (obj) {
|
||||
function F() {
|
||||
}
|
||||
|
||||
F.prototype = obj;
|
||||
return new F();
|
||||
};
|
||||
var toString = function (val) {
|
||||
if (val == null) return '';
|
||||
return (typeof val.toString == 'function') ? val.toString() : _toString.call(val);
|
||||
};
|
||||
var extend = function (dest, src) {
|
||||
var keys = getKeys(src);
|
||||
for (var i = 0, len = keys.length; i < len; i++) {
|
||||
var key = keys[i];
|
||||
dest[key] = src[key];
|
||||
}
|
||||
return dest;
|
||||
};
|
||||
//get a value, lexically, starting in current context; a.b -> get("a","b")
|
||||
var get = function () {
|
||||
var val, n = arguments[0], c = stack.length;
|
||||
while (c--) {
|
||||
val = stack[c][n];
|
||||
if (typeof val != 'undefined') break;
|
||||
}
|
||||
for (var i = 1, len = arguments.length; i < len; i++) {
|
||||
if (val == null) continue;
|
||||
n = arguments[i];
|
||||
val = (_hasOwnProperty.call(val, n)) ? val[n] : (typeof val._get == 'function' ? (val[n] = val._get(n)) : null);
|
||||
}
|
||||
return (val == null) ? '' : val;
|
||||
};
|
||||
var set = function (n, val) {
|
||||
stack[stack.length - 1][n] = val;
|
||||
};
|
||||
var push = function (ctx) {
|
||||
stack.push(ctx || {});
|
||||
};
|
||||
var pop = function () {
|
||||
stack.pop();
|
||||
};
|
||||
var write = function (str) {
|
||||
output.push(str);
|
||||
};
|
||||
var filter = function (val) {
|
||||
for (var i = 1, len = arguments.length; i < len; i++) {
|
||||
var arr = arguments[i], name = arr[0], filter = filters[name];
|
||||
if (filter) {
|
||||
arr[0] = val;
|
||||
//now arr looks like [val, arg1, arg2]
|
||||
val = filter.apply(data, arr);
|
||||
} else {
|
||||
throw new Error('Invalid filter: ' + name);
|
||||
}
|
||||
}
|
||||
if (opts.autoEscape && name !== opts.autoEscape && name !== 'safe') {
|
||||
//auto escape if not explicitly safe or already escaped
|
||||
val = filters[opts.autoEscape].call(data, val);
|
||||
}
|
||||
output.push(val);
|
||||
};
|
||||
var each = function (obj, loopvar, fn1, fn2) {
|
||||
if (obj == null) return;
|
||||
var arr = isArray(obj) ? obj : getKeys(obj), len = arr.length;
|
||||
var ctx = {loop: {length: len, first: arr[0], last: arr[len - 1]}};
|
||||
push(ctx);
|
||||
for (var i = 0; i < len; i++) {
|
||||
extend(ctx.loop, {index: i + 1, index0: i});
|
||||
fn1(ctx[loopvar] = arr[i]);
|
||||
}
|
||||
if (len === 0 && fn2) fn2();
|
||||
pop();
|
||||
};
|
||||
var block = function (fn) {
|
||||
push();
|
||||
fn();
|
||||
pop();
|
||||
};
|
||||
var render = function () {
|
||||
return output.join('');
|
||||
};
|
||||
data = data || {};
|
||||
opts = extend(defaults, opts || {});
|
||||
var filters = extend({
|
||||
html: function (val) {
|
||||
return toString(val)
|
||||
.split('&').join('&')
|
||||
.split('<').join('<')
|
||||
.split('>').join('>')
|
||||
.split('"').join('"');
|
||||
},
|
||||
safe: function (val) {
|
||||
return val;
|
||||
},
|
||||
toJson: function (val) {
|
||||
if (typeof val === 'object') {
|
||||
return JSON.stringify(val);
|
||||
}
|
||||
return toString(val);
|
||||
}
|
||||
}, opts.filters || {});
|
||||
var stack = [create(data || {})], output = [];
|
||||
return {
|
||||
get: get,
|
||||
set: set,
|
||||
push: push,
|
||||
pop: pop,
|
||||
write: write,
|
||||
filter: filter,
|
||||
each: each,
|
||||
block: block,
|
||||
render: render
|
||||
};
|
||||
};
|
||||
|
||||
var runtime;
|
||||
|
||||
jinja.compile = function (markup, opts) {
|
||||
opts = opts || {};
|
||||
var parser = new Parser();
|
||||
parser.readTemplateFile = this.readTemplateFile;
|
||||
var code = [];
|
||||
code.push('function render($) {');
|
||||
code.push('var get = $.get, set = $.set, push = $.push, pop = $.pop, write = $.write, filter = $.filter, each = $.each, block = $.block;');
|
||||
code.push.apply(code, parser.parse(markup));
|
||||
code.push('return $.render();');
|
||||
code.push('}');
|
||||
code = code.join('\n');
|
||||
if (opts.runtime === false) {
|
||||
var fn = new Function('data', 'options', 'return (' + code + ')(runtime(data, options))');
|
||||
} else {
|
||||
runtime = runtime || (runtime = getRuntime.toString());
|
||||
fn = new Function('data', 'options', 'return (' + code + ')((' + runtime + ')(data, options))');
|
||||
}
|
||||
return {render: fn};
|
||||
};
|
||||
|
||||
jinja.render = function (markup, data, opts) {
|
||||
var tmpl = jinja.compile(markup);
|
||||
return tmpl.render(data, opts);
|
||||
};
|
||||
|
||||
jinja.templateFiles = [];
|
||||
|
||||
jinja.readTemplateFile = function (name) {
|
||||
var templateFiles = this.templateFiles || [];
|
||||
var templateFile = templateFiles[name];
|
||||
if (templateFile == null) {
|
||||
throw new Error('Template file not found: ' + name);
|
||||
}
|
||||
return templateFile;
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
* Helpers
|
||||
*/
|
||||
|
||||
function trimLeft(str) {
|
||||
return str.replace(LEADING_SPACE, '');
|
||||
}
|
||||
|
||||
function trimRight(str) {
|
||||
return str.replace(TRAILING_SPACE, '');
|
||||
}
|
||||
|
||||
function matchAll(str, reg, fn) {
|
||||
//copy as global
|
||||
reg = new RegExp(reg.source, 'g' + (reg.ignoreCase ? 'i' : '') + (reg.multiline ? 'm' : ''));
|
||||
var match;
|
||||
while ((match = reg.exec(str))) {
|
||||
var result = fn(match[0], match.index, str);
|
||||
if (typeof result == 'number') {
|
||||
reg.lastIndex = result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}));
|
81
lib/rebozj.json
Normal file
81
lib/rebozj.json
Normal file
@ -0,0 +1,81 @@
|
||||
{
|
||||
"规则名": "热播之家",
|
||||
"规则作者": "天天开心",
|
||||
"请求头参数": "手机",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "0",
|
||||
"是否开启获取首页数据": "1",
|
||||
"首页推荐链接": "https://rebozj.pro/",
|
||||
"首页列表数组规则": "body&&.stui-vodlist",
|
||||
"首页片单列表数组规则": "li",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "https://rebozj.pro/show/{cateId}-{area}-{by}-{class}-{lang}----{catePg}---{year}.html",
|
||||
"分类名称": "电视剧&电影&动漫&纪录&综艺",
|
||||
"分类名称替换词": "2&1&4&3&5",
|
||||
//"筛选数据": {},
|
||||
"筛选数据": "ext",
|
||||
//{cateId}
|
||||
"筛选子分类名称": "国产&港台&日韩&海外||动作&喜剧&爱情&科幻&恐怖&剧情&战争||空||空||大陆&港台",
|
||||
"筛选子分类替换词": "13&14&15&16||6&7&8&9&10&11&12||空||空||17&18",
|
||||
//{class}
|
||||
"筛选类型名称": "古装&战争&青春偶像&喜剧&家庭&犯罪&动作&奇幻&剧情&历史&经典&乡村&情景&商战&网剧&其他||喜剧&爱情&恐怖&动作&科幻&剧情&战争&警匪&犯罪&动画&奇幻&武侠&冒险&枪战&恐怖&悬疑&惊悚&经典&青春&文艺&微电影&古装&历史&运动&农村&儿童&网络电影||情感&科幻&热血&推理&搞笑&冒险&萝莉&校园&动作&机战&运动&战争&少年&少女&社会&原创&亲子&益智&励志&其他||选秀&情感&访谈&播报&旅游&音乐&美食&纪实&曲艺&生活&游戏互动&财经&求职||空",
|
||||
"筛选类型替换词": "*",
|
||||
//{area}
|
||||
"筛选地区名称": "大陆&韩国&香港&台湾&日本&美国&泰国&英国&新加坡&其他||大陆&香港&台湾&美国&法国&英国&日本&韩国&德国&泰国&印度&意大利&西班牙&加拿大&其他||大陆&日本&欧美&其他||内地&港台&日韩&欧美||空",
|
||||
"筛选地区替换词": "*",
|
||||
//{year}
|
||||
"筛选年份名称": "",
|
||||
"筛选年份替换词": "*",
|
||||
//{lang}
|
||||
"筛选语言名称": "国语&英语&粤语&闽南语&韩语&日语&其它||国语&英语&粤语&闽南语&韩语&日语&法语&德语&其它||国语&英语&粤语&闽南语&韩语&日语&其它||国语&英语&粤语&闽南语&韩语&日语&其它||空",
|
||||
"筛选语言替换词": "*",
|
||||
//{by}
|
||||
"筛选排序名称": "时间&人气&评分",
|
||||
"筛选排序替换词": "time&hits&score",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": ".stui-vodlist&&li",
|
||||
"分类片单是否Jsoup写法": "1",
|
||||
"分类片单标题": "a&&title",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": ".lazyload&&data-original",
|
||||
"分类片单副标题": ".pic-text&&Text",
|
||||
"分类片单链接加前缀": "https://rebozj.pro",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$手机",
|
||||
"搜索链接": "https://rebozj.pro/search/-------------.html?wd={wd}&submit=",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": ".stui-vodlist&&li",
|
||||
"搜索片单是否Jsoup写法": "1",
|
||||
"搜索片单图片": ".lazyload&&data-original",
|
||||
"搜索片单标题": "a&&title",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": ".pic-text&&Text",
|
||||
"搜索片单链接加前缀": "https://rebozj.pro",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "0",
|
||||
"直接播放链接加前缀": "",
|
||||
"直接播放链接加后缀": "",
|
||||
"直接播放直链视频请求头": "",
|
||||
"详情是否Jsoup写法": "1",
|
||||
"类型详情": "",
|
||||
"年代详情": ".data,4&&Text!年份:",
|
||||
"地区详情": ".data,2&&Text!地区:",
|
||||
"演员详情": ".data,6&&Text!主演:",
|
||||
"简介详情": ".detail-content&&Text",
|
||||
"线路列表数组规则": "body&&h4:not(:matches(猜你喜欢))",
|
||||
"线路标题": "Text",
|
||||
"播放列表数组规则": "body&&.stui-content__playlist",
|
||||
"选集列表数组规则": "a",
|
||||
"选集标题链接是否Jsoup写法": "1",
|
||||
"选集标题": "a&&Text",
|
||||
"选集链接": "a&&href",
|
||||
"是否反转选集序列": "0",
|
||||
"选集链接加前缀": "https://rebozj.pro",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "0",
|
||||
"是否开启手动嗅探": "1",
|
||||
"手动嗅探视频链接关键词": "tos-#.mp4#cdn.123pan.cn#huoshanvod.com#.m3u8#video_mp4",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
193
lib/sc1080.json
Normal file
193
lib/sc1080.json
Normal file
@ -0,0 +1,193 @@
|
||||
{
|
||||
|
||||
"作者":"荷城茶秀",
|
||||
|
||||
"站名":"圣城影视",
|
||||
|
||||
"主页url":"https://sc1080.top/",
|
||||
|
||||
"简介":"video-info-item video-info-content vod_content\"&&</div>",
|
||||
|
||||
"导演":"导演:&&</div>",
|
||||
|
||||
"主演":"主演:&&</div>",
|
||||
|
||||
"影片状态":"集数:&&</div>",
|
||||
|
||||
"影片类型":"icon-cate-ds\">&&</a>",
|
||||
|
||||
"数组":"module-item-pic\">&&module-item\">",
|
||||
|
||||
"标题":"title=\"&&\"",
|
||||
|
||||
"副标题":"module-item-text\"&&</div>",
|
||||
|
||||
"图片":"data-src=\"&&\"",
|
||||
|
||||
"链接":"href=\"&&\"",
|
||||
|
||||
"搜索url":"/index.php/vod/search.html?wd={wd}",
|
||||
|
||||
"搜索数组":"lazy lazyload\"&&<h3>[不包含:肥猫不肥#神秘的哥哥]",
|
||||
|
||||
"搜索标题":"alt=\"&&\"",
|
||||
|
||||
"搜索副标题":"title=*>&&</a>",
|
||||
|
||||
"搜索图片":"data-src=\"&&\"",
|
||||
|
||||
"搜索链接":"href=\"&&\"",
|
||||
|
||||
"线路数组":"data-dropdown-value=&&</div>[不包含:备用#鸡儿云#飞速云#新浪云#金鹰云][排序:爱坤>蓝光>快看]",
|
||||
|
||||
"线路标题":"<span>&&</small>[替换:腾讯视频>>腾讯#优酷视频>>优酷#爱奇艺>>奇艺#芒果视频>>芒果#暴风云>>暴风#快看云>>快看#资源库>>资源#蓝光FY>>飞云#阿里云>>阿里#爱坤蓝光>>爱坤#量子云>>量子#非凡云>>非凡#</span><small>>>共]+集",
|
||||
|
||||
"播放数组":"sort-item\"&&</div>",
|
||||
|
||||
"播放标题":"<span>&&</span>",
|
||||
|
||||
"播放列表":"<a&&</a>",
|
||||
|
||||
"分类url":"https://sc1080.top/index.php/vod/show/area/{area}/by/{by}/class/{class}/id/{cateId}/page/{catePg}/year/{year}.html",
|
||||
|
||||
"分类":"电影$1#电视剧$2#综艺$3#动漫$4#记录片$5",
|
||||
|
||||
"筛选":{
|
||||
"1":[
|
||||
{"key":"class","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":"area","name":"地区","value":[
|
||||
{"n":"全部地区","v":""},
|
||||
{"n":"国产","v":"国产"},
|
||||
{"n":"欧美","v":"欧美"},
|
||||
{"n":"港台","v":"港台"},
|
||||
{"n":"日韩","v":"日韩"}
|
||||
]
|
||||
},
|
||||
{"key":"year","name":"时间","value":[
|
||||
{"n":"全部时间","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"1999","v":"1999"},
|
||||
{"n":"1998","v":"1998"},
|
||||
{"n":"1997","v":"1997"},
|
||||
{"n":"1996","v":"1996"},
|
||||
{"n":"1995","v":"1995"},
|
||||
{"n":"1994","v":"1994"},
|
||||
{"n":"1993","v":"1993"},
|
||||
{"n":"1992","v":"1992"},
|
||||
{"n":"1991","v":"1991"},
|
||||
{"n":"1990","v":"1990"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2":[
|
||||
{"key":"class","name":"剧情","value":[
|
||||
{"n":"全部剧情","v":""},
|
||||
{"n":"国产剧","v":"国产剧"},
|
||||
{"n":"港台剧","v":"港台剧"},
|
||||
{"n":"欧美剧","v":"欧美剧"},
|
||||
{"n":"日韩剧","v":"日韩剧"}
|
||||
]
|
||||
},
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3":[
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4":[
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"5":[
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"6":[
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"7":[
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"8":[
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
],
|
||||
"9":[
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"全部排序","v":""},
|
||||
{"n":"时间排序","v":"time"},
|
||||
{"n":"人气排序","v":"hits"},
|
||||
{"n":"评分排序","v":"score"}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
BIN
lib/sdtv.jar
Normal file
BIN
lib/sdtv.jar
Normal file
Binary file not shown.
3
lib/sdtv.js
Normal file
3
lib/sdtv.js
Normal file
File diff suppressed because one or more lines are too long
452
lib/voflix.json
Normal file
452
lib/voflix.json
Normal file
@ -0,0 +1,452 @@
|
||||
{
|
||||
"作者": "菜妮丝https://cainisi.cf",
|
||||
"站名": "VOFLIX",
|
||||
"主页url": "https://www.voflix.me",
|
||||
|
||||
"分类": "电影$1#剧集$2#动漫$4#综艺$3#国产剧$13#日韩剧$15#欧美剧$16",
|
||||
|
||||
"分类url": "https://www.voflix.me/show/{cateId}-{area}-{by}-{class}-----{catePg}---{year}.html",
|
||||
|
||||
"副标题": "module-item-note\">&&</div>",
|
||||
|
||||
"搜索模式": "1",
|
||||
//"搜索后缀": "/detail/",
|
||||
"搜索url": "/search/-------------.html?wd={wd}",
|
||||
"搜索数组": "module-item\">&&</a>",
|
||||
"搜索图片": "data-original=\"&&\"",
|
||||
"搜索标题": "alt=\"&&\"",
|
||||
"搜索链接": "href=\"&&\"",
|
||||
"搜索副标题": "module-item-note\">&&</div>",
|
||||
|
||||
"导演": "导演:&&</div>",
|
||||
"主演": "主演:&&</div>",
|
||||
"简介": "<p>&&</p>",
|
||||
|
||||
"线路数组": "data-dropdown-value=&&</div>[不包含:夸克网盘]",
|
||||
"线路标题": "<span>&&</small>[替换:</span><small>>>]+集",
|
||||
|
||||
"播放数组": "<div class=\"module-play-list\">&&</div>",
|
||||
|
||||
"筛选":{
|
||||
"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":"23"}]},
|
||||
|
||||
{"key":"class","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":"悬疑"},
|
||||
{"n":"惊悚","v":"惊悚"},
|
||||
{"n":"经典","v":"经典"},
|
||||
{"n":"青春","v":"青春"},
|
||||
{"n":"文艺","v":"文艺"},
|
||||
{"n":"微电影","v":"微电影"},
|
||||
{"n":"古装","v":"古装"},
|
||||
{"n":"历史","v":"历史"},
|
||||
{"n":"运动","v":"运动"},
|
||||
{"n":"农村","v":"农村"},
|
||||
{"n":"儿童","v":"儿童"},
|
||||
{"n":"网络电影","v":"网络电影"}]},
|
||||
|
||||
{"key":"area","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":"其他"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}]}],
|
||||
|
||||
"2":[
|
||||
{"key":"cateId","name":"类型","value":[
|
||||
{"n":"全部","v":"2"},
|
||||
{"n":"国产剧","v":"13"},
|
||||
{"n":"港台剧","v":"14"},
|
||||
{"n":"日韩剧","v":"15"},
|
||||
{"n":"欧美剧","v":"16"},
|
||||
{"n":"纪录片","v":"21"},
|
||||
{"n":"泰国剧","v":"24"}]},
|
||||
|
||||
{"key":"class","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":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"中国大陆","v":"中国大陆"},
|
||||
{"n":"中国台湾","v":"中国台湾"},
|
||||
{"n":"中国香港","v":"中国香港"},
|
||||
{"n":"韩国","v":"韩国"},
|
||||
{"n":"日本","v":"日本"},
|
||||
{"n":"美国","v":"美国"},
|
||||
{"n":"泰国","v":"泰国"},
|
||||
{"n":"英国","v":"英国"},
|
||||
{"n":"新加坡","v":"新加坡"},
|
||||
{"n":"其他","v":"其他"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"2009","v":"2009"},
|
||||
{"n":"2008","v":"2008"},
|
||||
{"n":"2006","v":"2006"},
|
||||
{"n":"2005","v":"2005"},
|
||||
{"n":"2004","v":"2004"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}]}],
|
||||
|
||||
"4":[
|
||||
{"key":"class","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":"原创"},
|
||||
{"n":"亲子","v":"亲子"},
|
||||
{"n":"益智","v":"益智"},
|
||||
{"n":"励志","v":"励志"},
|
||||
{"n":"其他","v":"其他"}]},
|
||||
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"中国","v":"中国"},
|
||||
{"n":"日本","v":"日本"},
|
||||
{"n":"欧美","v":"欧美"},
|
||||
{"n":"其他","v":"其他"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"2009","v":"2009"},
|
||||
{"n":"2008","v":"2008"},
|
||||
{"n":"2007","v":"2007"},
|
||||
{"n":"2006","v":"2006"},
|
||||
{"n":"2005","v":"2005"},
|
||||
{"n":"2004","v":"2004"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}]}],
|
||||
|
||||
"3":[
|
||||
{"key":"class","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":"求职"}]},
|
||||
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"内地","v":"内地"},
|
||||
{"n":"港台","v":"港台"},
|
||||
{"n":"日韩","v":"日韩"},
|
||||
{"n":"欧美","v":"欧美"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"2009","v":"2009"},
|
||||
{"n":"2008","v":"2008"},
|
||||
{"n":"2007","v":"2007"},
|
||||
{"n":"2006","v":"2006"},
|
||||
{"n":"2005","v":"2005"},
|
||||
{"n":"2004","v":"2004"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}]}],
|
||||
|
||||
"13":[
|
||||
{"key":"class","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":"惊悚"},
|
||||
{"n":"其他","v":"其他"}]},
|
||||
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"中国大陆","v":"中国大陆"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"2009","v":"2009"},
|
||||
{"n":"2008","v":"2008"},
|
||||
{"n":"2006","v":"2006"},
|
||||
{"n":"2005","v":"2005"},
|
||||
{"n":"2004","v":"2004"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}]}],
|
||||
|
||||
"15":[
|
||||
{"key":"class","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":"惊悚"},
|
||||
{"n":"其他","v":"其他"}]},
|
||||
|
||||
{"key":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"日本","v":"日本"},
|
||||
{"n":"韩国","v":"韩国"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"2009","v":"2009"},
|
||||
{"n":"2008","v":"2008"},
|
||||
{"n":"2006","v":"2006"},
|
||||
{"n":"2005","v":"2005"},
|
||||
{"n":"2004","v":"2004"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}]}],
|
||||
|
||||
"16":[
|
||||
{"key":"class","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":"area","name":"地区","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"美国","v":"美国"},
|
||||
{"n":"英国","v":"英国"},
|
||||
{"n":"德国","v":"德国"},
|
||||
{"n":"加拿大","v":"加拿大"},
|
||||
{"n":"其他","v":"其他"}]},
|
||||
|
||||
{"key":"year","name":"年份","value":[
|
||||
{"n":"全部","v":""},
|
||||
{"n":"2023","v":"2023"},
|
||||
{"n":"2022","v":"2022"},
|
||||
{"n":"2021","v":"2021"},
|
||||
{"n":"2020","v":"2020"},
|
||||
{"n":"2019","v":"2019"},
|
||||
{"n":"2018","v":"2018"},
|
||||
{"n":"2017","v":"2017"},
|
||||
{"n":"2016","v":"2016"},
|
||||
{"n":"2015","v":"2015"},
|
||||
{"n":"2014","v":"2014"},
|
||||
{"n":"2013","v":"2013"},
|
||||
{"n":"2012","v":"2012"},
|
||||
{"n":"2011","v":"2011"},
|
||||
{"n":"2010","v":"2010"},
|
||||
{"n":"2009","v":"2009"},
|
||||
{"n":"2008","v":"2008"},
|
||||
{"n":"2006","v":"2006"},
|
||||
{"n":"2005","v":"2005"},
|
||||
{"n":"2004","v":"2004"}]},
|
||||
|
||||
{"key":"by","name":"排序","value":[
|
||||
{"n":"时间","v":"time"},
|
||||
{"n":"人气","v":"hits"},
|
||||
{"n":"评分","v":"score"}]}]}
|
||||
}
|
49
lib/xcys.json
Normal file
49
lib/xcys.json
Normal file
@ -0,0 +1,49 @@
|
||||
{
|
||||
|
||||
"作者":"拾光",
|
||||
|
||||
"站名":"星辰影视",
|
||||
|
||||
"主页url":"http://www.xingchenwu.com/",
|
||||
|
||||
"简介":"请勿相信广告,以免上当受骗!+<span class=\"detail-sketch\">&&</span>",
|
||||
|
||||
"导演":"导演:&&</p>",
|
||||
|
||||
"主演":"主演:&&</p>",
|
||||
|
||||
"影片状态":"状态:&&</p>",
|
||||
|
||||
"影片类型":"类型:&&</p>",
|
||||
|
||||
"数组":"stui-vodlist__thumb lazyload\"&&</a>",
|
||||
|
||||
"标题":"title=\"&&\"",
|
||||
|
||||
"副标题":"text-right\">&&</span>",
|
||||
|
||||
"图片":"data-original=\"&&\"",
|
||||
|
||||
"链接":"href=\"&&\"",
|
||||
|
||||
"搜索url":"http://www.xingchenwu.com/search.php;post;searchword={wd}",
|
||||
|
||||
"搜索数组":"stui-vodlist__thumb lazyload\"&&</a>",
|
||||
|
||||
"搜索标题":"title=\"&&\"",
|
||||
|
||||
"搜索副标题":"text-right\">&&</span>",
|
||||
|
||||
"搜索图片":"data-original=\"&&\"",
|
||||
|
||||
"搜索链接":"href=\"&&\"",
|
||||
|
||||
"线路数组":"<h3&&/h3>",
|
||||
|
||||
"线路标题":"冬天接口+>&&<",
|
||||
|
||||
"播放链接":"href='&&'",
|
||||
|
||||
"分类url":"http://www.xingchenwu.com/{cateId}/index{catePg}.html[http://www.xingchenwu.com/{cateId}/index.html];;ak",
|
||||
|
||||
"分类":"电影$dianying#电视剧$dianshiju#综艺$zongyi#动漫$dongman"}
|
BIN
lib/xm.jar
Normal file
BIN
lib/xm.jar
Normal file
Binary file not shown.
62
lib/ynfys.json
Normal file
62
lib/ynfys.json
Normal file
@ -0,0 +1,62 @@
|
||||
{
|
||||
"规则名": "耐看点播",
|
||||
"规则作者": "香雅情",
|
||||
"请求头参数": "MOBILE_UA",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "否",
|
||||
"是否开启获取首页数据": "1",
|
||||
"首页推荐链接": "https://yanaifei.tv",
|
||||
"首页列表数组规则": "body&&.module-main.tab-list.active",
|
||||
"首页片单列表数组规则": ".module-item",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "https://yanaifei.tv/vod/show/{cateId}--------{catePg}---.html",
|
||||
"分类名称": "电影&电视剧&动漫&综艺",
|
||||
"分类名称替换词": "1&2&4&3",
|
||||
"筛选数据": {},
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": "body&&.module-item",
|
||||
"分类片单是否Jsoup写法": "是",
|
||||
"分类片单标题": ".module-poster-item-title&&Text",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": ".lazyload&&data-original",
|
||||
"分类片单副标题": ".module-item-note&&Text",
|
||||
"分类片单链接加前缀": "https://yanaifei.tv",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$MOBILE_UA",
|
||||
"搜索链接": "https://yanaifei.tv/index.php/ajax/suggest?mid=1&wd={wd}",
|
||||
"POST请求数据": "wd={wd}&search=",
|
||||
"搜索截取模式": "0",
|
||||
"搜索列表数组规则": "list",
|
||||
"搜索片单是否Jsoup写法": "1",
|
||||
"搜索片单图片": "pic",
|
||||
"搜索片单标题": "name",
|
||||
"搜索片单链接": "id",
|
||||
"搜索片单副标题": "",
|
||||
"搜索片单链接加前缀": "https://yanaifei.tv/vod/detail/",
|
||||
"搜索片单链接加后缀": ".html",
|
||||
"链接是否直接播放": "否",
|
||||
"直接播放链接加前缀": "https://live.52sf.ga/huya/",
|
||||
"直接播放链接加后缀": "#isVideo=true#",
|
||||
"直接播放直链视频请求头": "authority$ku.peizq.online#Referer$https://play.peizq.online",
|
||||
"详情是否Jsoup写法": "是",
|
||||
"类型详情": "",
|
||||
"年代详情": ".module-info-content&&.module-info-item,3&&Text",
|
||||
"地区详情": "",
|
||||
"演员详情": ".module-info-content&&.module-info-item,2&&Text",
|
||||
"简介详情": ".module-info-content&&.module-info-item&&Text",
|
||||
"线路列表数组规则": ".module-tab-items-box&&.module-tab-item",
|
||||
"线路标题": "Text",
|
||||
"播放列表数组规则": "body&&.module-play-list-content",
|
||||
"选集列表数组规则": "a",
|
||||
"选集标题链接是否Jsoup写法": "是",
|
||||
"选集标题": "a&&Text",
|
||||
"选集链接": "a&&href",
|
||||
"是否反转选集序列": "否",
|
||||
"选集链接加前缀": "https://yanaifei.tv",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "2",
|
||||
"是否开启手动嗅探": "否",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
55
lib/ysdq.json
Normal file
55
lib/ysdq.json
Normal file
@ -0,0 +1,55 @@
|
||||
[{
|
||||
"type_id": "EPGC1386744804340101",
|
||||
"type_name": "CCTV-1综合"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340102",
|
||||
"type_name": "CCTV-2财经"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340103",
|
||||
"type_name": "CCTV3-综艺"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340104",
|
||||
"type_name": "CCTV4-中文国际"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340107",
|
||||
"type_name": "CCTV5-体育"
|
||||
},{
|
||||
"type_id": "EPGC1468294755566101",
|
||||
"type_name": "CCTV5+体育赛事"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340108",
|
||||
"type_name": "CCTV6-电影"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340109",
|
||||
"type_name": "CCTV-7国防军事"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340110",
|
||||
"type_name": "CCTV-8电视剧"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340112",
|
||||
"type_name": "CCTV-9纪录"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340113",
|
||||
"type_name": "CCTV-10科教"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340114",
|
||||
"type_name": "CCTV-11戏曲"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340115",
|
||||
"type_name": "CCTV-12社会与法"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340116",
|
||||
"type_name": "CCTV-13新闻"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340117",
|
||||
"type_name": "CCTV-14少儿"
|
||||
},{
|
||||
"type_id": "EPGC1386744804340118",
|
||||
"type_name": "CCTV-15音乐"
|
||||
},{
|
||||
"type_id": "EPGC1634630207058998",
|
||||
"type_name": "CCTV-16奥林匹克"
|
||||
},{
|
||||
"type_id": "EPGC1563932742616872",
|
||||
"type_name": "CCTV-17农业农村"
|
||||
}]
|
22
lib/zb.txt
Normal file
22
lib/zb.txt
Normal file
@ -0,0 +1,22 @@
|
||||
[
|
||||
{
|
||||
"name":"猫TV直播",
|
||||
"url":"http://rihou.cc:567/gggg.nzk&&&https://tuapi.eees.cc/api.php?category=meinv&type=302"
|
||||
},
|
||||
{
|
||||
"name":"开心直播",
|
||||
"url":"http://ttkx.live:55/lib/kx2024.txt&&&https://tuapi.eees.cc/api.php?category=meinv&type=302"
|
||||
},
|
||||
{
|
||||
"name":"V6明线路",
|
||||
"url":"https://live.fanmingming.com/tv/m3u/ipv6.m3u&&&https://tuapi.eees.cc/api.php?category=meinv&type=302"
|
||||
},
|
||||
{
|
||||
"name":"斗鱼线路",
|
||||
"url":"https://github.moeyy.xyz/https://raw.githubusercontent.com/Ftindy/IPTV-URL/main/douyuyqk.m3u&&&https://tuapi.eees.cc/api.php?category=meinv&type=302"
|
||||
},
|
||||
{
|
||||
"name":"MV专线",
|
||||
"url":"https://github.moeyy.xyz/https://raw.githubusercontent.com/lystv/short/main/影视/tvb/MTV.txt&&&https://tuapi.eees.cc/api.php?category=meinv&type=302"
|
||||
}
|
||||
]
|
21
lib/七新影视.json
Normal file
21
lib/七新影视.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
|
||||
"作者":"拾光",
|
||||
|
||||
"站名":"七新",
|
||||
|
||||
"主页url":"http://www.7xdy.com/",
|
||||
|
||||
"简介":"❄冬天❄提醒您请勿相信广告,以免上当受骗!+<span class=\"detail-content\" style=*>&&</span>",
|
||||
|
||||
"影片状态":"状态:&&</p>",
|
||||
|
||||
"搜索url":"/search.php;post;searchword={wd}",
|
||||
|
||||
"线路数组":"<h3&&/h3>",
|
||||
|
||||
"线路标题":"+src=*>&&<",
|
||||
|
||||
"分类url":"http://www.7xdy.com/{cateId}/index{catePg}.html[http://www.7xdy.com/{cateId}/index.html];;k",
|
||||
|
||||
"分类":"电影$dianyingpian#电视剧$dianshiju#综艺$zongyi#动漫$dongman"}
|
72
lib/企鹅直播.json
Normal file
72
lib/企鹅直播.json
Normal file
@ -0,0 +1,72 @@
|
||||
{
|
||||
"author": "率性而活",
|
||||
"ua":"Mozilla/5.0 (Linux; Android 8.1.0; OPPO R11t Build/OPM1.171019.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/11.19 SP-engine/2.15.0 baiduboxapp/11.19.5.10 (Baidu; P1 8.1.0)",
|
||||
//125.88.199.34 m.live.qq.com
|
||||
|
||||
//"dcVipFlag": "true",
|
||||
//"dcPlayUrl": "true",
|
||||
"homeUrl": "https://m.live.qq.com/directory/game/Basketball",
|
||||
"cateManual": {
|
||||
"篮球": "@directory/game/Basketball",
|
||||
"足球":"@directory/game/Football",
|
||||
"搏击":"@directory/game/Fight",
|
||||
"网球排球":"@directory/game/Tennis",
|
||||
"英文原声":"@directory/game/English",
|
||||
"台球":"@directory/game/Billiards",
|
||||
"棒球/橄榄球/冰球":"@directory/game/MLB",
|
||||
"NBA":"@directory/game/NBA",
|
||||
"CBA":"@directory/game/CBA",
|
||||
"颜值":"@directory/game/YZ",
|
||||
"棋牌/游戏":"@directory/game/Game"
|
||||
|
||||
},
|
||||
"homeVodNode": "//a[contains(@href,'/10')]","homeVodName": "/div/following-sibling::p[1]/text()","homeVodId": "/@href","homeVodIdR": "/(\\S+)","homeVodImg": "//div[contains(@style,'http')]/@style","homeVodImgR": "(http.*?jpg)","homeVodMark": "",
|
||||
|
||||
"cateUrl2": "https://m.live.qq.com/{cateId}",
|
||||
|
||||
"cateVodNode": "//a[contains(@href,'/10')]",
|
||||
|
||||
"cateVodName": "/div/following-sibling::p[1]/text()",
|
||||
|
||||
"cateVodId": "/@href",
|
||||
|
||||
"cateVodIdR": "/(\\S+)",
|
||||
|
||||
"cateVodImg": "//div[contains(@style,'http')]/@style",
|
||||
|
||||
"cateVodImgR": "(http.*?jpg)",
|
||||
|
||||
"cateVodMark": "",
|
||||
|
||||
|
||||
//
|
||||
"dtUrl": "https://m.live.qq.com/{vid}",
|
||||
"dtNode": "//body",
|
||||
"dtName": "//p[contains(@class,'p-title')]/text()",
|
||||
"dtNameR": "(“.*?”)",
|
||||
"dtImg": "//div[contains(@class,'share-bar')]/@data-pic",
|
||||
"dtImgR": "",
|
||||
"dtCate": "",
|
||||
"dtCateR": "",
|
||||
"dtYear": "",
|
||||
"dtYearR": "",
|
||||
"dtArea": "",
|
||||
"dtAreaR": "",
|
||||
"dtDirector": "",
|
||||
"dtDirectorR": "",
|
||||
"dtActor": "",
|
||||
"dtActorR": "",
|
||||
"dtDesc": "",
|
||||
"dtDescR": "",
|
||||
"dtFromNode": "//p[contains(@class,'p-title')]",
|
||||
"dtFromName": "/text()",
|
||||
"dtFromNameR": "(\\企鹅体育)",
|
||||
"dtUrlNode": "//div[contains(@class,'wenzi')]",
|
||||
"dtUrlSubNode": "/a",
|
||||
"dtUrlId": "/text()",
|
||||
"dtUrlIdR": "m.live.qq.com/(\\S+)",
|
||||
"dtUrlName": "/text()",
|
||||
"dtUrlNameR": "(\\d+)",
|
||||
"playUrl": "https://m.live.qq.com/{playUrl}",
|
||||
"playUa":"{\"User-Agent\":\"okhttp/3.12.11\"}"
|
||||
}
|
175
lib/优酷视频.js
Normal file
175
lib/优酷视频.js
Normal file
File diff suppressed because one or more lines are too long
53
lib/兔小贝.json
Normal file
53
lib/兔小贝.json
Normal file
@ -0,0 +1,53 @@
|
||||
{
|
||||
"规则名": "兔小贝",
|
||||
"规则作者": "香雅情",
|
||||
"请求头参数": "手机",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "0",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "https://www.tuxiaobei.com/list/mip-data?typeId={cateId}&page={catePg}&callback=jsonp",
|
||||
"分类名称": "儿歌&故事&国学&启蒙",
|
||||
"分类名称替换词": "2&3&4&25",
|
||||
"筛选数据": {},
|
||||
"筛选子分类名称": "",
|
||||
"筛选子分类替换词": "",
|
||||
"分类截取模式": "0",
|
||||
"分类Json数据二次截取": "jsonp(&&);",
|
||||
"分类列表数组规则": "data.items",
|
||||
"分类片单是否Jsoup写法": "0",
|
||||
"分类片单标题": "name",
|
||||
"分类片单链接": "video_id",
|
||||
"分类片单图片": "image",
|
||||
"分类片单副标题": "duration_string",
|
||||
"分类片单链接加前缀": "https://www.tuxiaobei.com/play/",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$手机",
|
||||
"搜索链接": "https://www.tuxiaobei.com/search/index?key={wd}",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": ".list-con&&.items",
|
||||
"搜索片单是否Jsoup写法": "1",
|
||||
"搜索片单图片": "mip-img&&src",
|
||||
"搜索片单标题": ".title&&Text",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": ".time&&Text",
|
||||
"搜索片单链接加前缀": "https://www.tuxiaobei.com",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "2",
|
||||
"直接播放链接加前缀": "",
|
||||
"直接播放链接加后缀": "#isVideo=true#",
|
||||
"直接播放直链视频请求头": "",
|
||||
"线路列表数组规则": "",
|
||||
"线路标题": "",
|
||||
"播放列表数组规则": "body",
|
||||
"选集列表数组规则": ".video",
|
||||
"选集标题链接是否Jsoup写法": "1",
|
||||
"选集标题": "'立即播放'",
|
||||
"选集链接": "mip-search-video&&video-src",
|
||||
"是否反转选集序列": "0",
|
||||
"选集链接加前缀": "",
|
||||
"选集链接加后缀": "",
|
||||
"是否开启手动嗅探": "0",
|
||||
"手动嗅探视频链接关键词": ".mp4",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
52
lib/兔小贝2.json
Normal file
52
lib/兔小贝2.json
Normal file
@ -0,0 +1,52 @@
|
||||
{
|
||||
"规则名": "兔小贝",
|
||||
"规则作者": "香雅情",
|
||||
"请求头参数": "手机",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "0",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "https://www.tuxiaobei.com/subject/{cateId}",
|
||||
"分类名称": "兔小贝原创儿歌&睡前儿歌&Everybody动起来&爸爸妈妈小时候的儿歌&宝宝吃饭香&乖宝宝不哭闹&好宝宝爱上学&欢快儿歌&经典儿歌&快乐的节日&快乐的童年&流行儿歌&美丽四季&男孩最爱&女孩最爱&我爱爸爸妈妈&我的动物朋友&我的祖国和我&舞蹈音乐&英文儿歌&粤语儿歌&早教好习惯&放暑假啦&我能照顾好自己&画一个梦&哆啦A梦的神奇口袋&你是我的小天使&最动听的笑声&许个愿吧&阳光下的我们&智慧成语故事&名人成语故事&励志成语故事&神话成语故事&古诗启蒙&三字经&弟子规&千字文&十万个为什么&神奇的大自然&英语宝典&数学课堂&动物奇缘&安全教育",
|
||||
"分类名称替换词": "17&16&1&2&3&4&5&6&9&10&11&12&13&14&15&19&20&21&22&23&24&25&56&57&58&59&60&61&62&63&89&90&88&87&39&43&46&48&54&55&50&51&53&84",
|
||||
"筛选数据": {},
|
||||
"筛选子分类名称": "",
|
||||
"筛选子分类替换词": "",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": ".list-con&&.items",
|
||||
"分类片单是否Jsoup写法": "1",
|
||||
"分类片单标题": ".title&&Text",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": "mip-img&&src",
|
||||
"分类片单副标题": ".time&&Text",
|
||||
"分类片单链接加前缀": "https://www.tuxiaobei.com",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$手机",
|
||||
"搜索链接": "https://www.tuxiaobei.com/search/index?key={wd}",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": ".list-con&&.items",
|
||||
"搜索片单是否Jsoup写法": "1",
|
||||
"搜索片单图片": "mip-img&&src",
|
||||
"搜索片单标题": ".title&&Text",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": ".time&&Text",
|
||||
"搜索片单链接加前缀": "https://www.tuxiaobei.com",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "2",
|
||||
"直接播放链接加前缀": "",
|
||||
"直接播放链接加后缀": "#isVideo=true#",
|
||||
"直接播放直链视频请求头": "",
|
||||
"线路列表数组规则": "",
|
||||
"线路标题": "",
|
||||
"播放列表数组规则": "body",
|
||||
"选集列表数组规则": ".video",
|
||||
"选集标题链接是否Jsoup写法": "1",
|
||||
"选集标题": "'立即播放'",
|
||||
"选集链接": "mip-search-video&&video-src",
|
||||
"是否反转选集序列": "0",
|
||||
"选集链接加前缀": "",
|
||||
"选集链接加后缀": "",
|
||||
"是否开启手动嗅探": "0",
|
||||
"手动嗅探视频链接关键词": ".mp4",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
27
lib/六月听书.js
Normal file
27
lib/六月听书.js
Normal file
@ -0,0 +1,27 @@
|
||||
var rule = {
|
||||
title: '六月听书',
|
||||
host: 'http://m.6yueting.com',
|
||||
url: '/ys/fyclass/o2/pfypage',
|
||||
searchUrl: '/search/index/search?content=**&type=1&pageNum=fypage&pageSize=40',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable:0,//是否启用分类筛选,
|
||||
headers:{'User-Agent':'MOBILE_UA'},
|
||||
class_name:'全部分类&玄幻奇幻&修真武侠&恐怖灵异&古今言情&都市言情&穿越重生&粤语古仔&网游小说&通俗文学&历史纪实&军事&悬疑推理&ebc5系列&官场商战&儿童读物&广播剧&外文原版&评书大全&相声小品&百家讲坛&健康养生&教材&期刊头条&戏曲&脱口秀',
|
||||
class_url:'t0&t1&t2&t3&t4&t28&t5&t6&t7&t11&t12&t13&t14&t18&t15&t16&t17&t22&t8&t9&t10&t20&t21&t23&t24&t27',
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
图片来源:'@Referer=http://m.6yueting.com/@User-Agent=MOBILE_UA',
|
||||
推荐:'*',
|
||||
一级: '.list-wrapper&&.item-link;h2--span&&Text;img&&src;.status&&Text;a&&href',
|
||||
二级:{
|
||||
"title":".book-title&&Text;.text:eq(0)&&Text",
|
||||
"img":".img&&src",
|
||||
"desc":".text:eq(3)&&Text;;;.text:eq(1)&&Text;.text:eq(2)&&Text",
|
||||
"content":".book-intro&&Text",
|
||||
"tabs":".operate-bar&&.total-num",
|
||||
"lists":".book-list:eq(#id)&&.list-item"
|
||||
},
|
||||
搜索:'js:let d=[];let MY_HOME="http://m.6yueting.com";let html=request(input);html=JSON.parse(html);let list=html.data.content;list.forEach(function(it){d.push({title:it.name.replace(/<.*?>/g,""),img:"http://img.6yueting.com:20001/"+it.coverUrlLocal,url:MY_HOME+"/list/"+it.code,desc:it.cdate,content:it.descXx.replace(/ /g,"")})});setResult(d);',
|
||||
}
|
72
lib/农民影视.json
Normal file
72
lib/农民影视.json
Normal file
@ -0,0 +1,72 @@
|
||||
{
|
||||
"规则名": "农民影视",
|
||||
"规则作者": "香雅情",
|
||||
"请求头参数": "User-Agent$手机#Referer$https://www.wwgz.cn",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "0",
|
||||
"是否开启获取首页数据": "1",
|
||||
"首页推荐链接": "https://www.wwgz.cn",
|
||||
"首页列表数组规则": "body&&.globalPicList",
|
||||
"首页片单列表数组规则": "li:has(img)",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"首页片单标题": ".sTit&&Text",
|
||||
"首页片单链接": "a&&href",
|
||||
"首页片单图片": "img&&data-echo||data-src||src",
|
||||
"首页片单副标题": ".sBottom&&Text",
|
||||
"首页片单链接加前缀": "https://www.wwgz.cn",
|
||||
"首页片单链接加后缀": "",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "https://www.wwgz.cn/vod-list-id-{cateId}-pg-{catePg}-order--by-{by}-class--year-{year}-letter--area-{area}-lang-.html",
|
||||
"分类名称": "电影&电视剧&综艺&动漫&短剧",
|
||||
"分类名称替换词": "1&2&3&4&26",
|
||||
"筛选数据": "ext",
|
||||
"筛选子分类名称": "动作片&喜剧片&爱情片&科幻片&恐怖片&剧情片&战争片&惊悚片&奇幻片||国产剧&港台泰&日韩剧&欧美剧||空||动漫剧&动漫片",
|
||||
"筛选子分类替换词": "5&6&7&8&9&10&11&16&17||12&13&14&15||空||18&19",
|
||||
"筛选地区名称": "大陆&香港&台湾&美国&韩国&日本&泰国&新加坡&马来西亚&印度&英国&法国&加拿大&西班牙&俄罗斯&其它",
|
||||
"筛选地区替换词": "*",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": ".globalPicList&&li",
|
||||
"分类片单是否Jsoup写法": "1",
|
||||
"分类片单标题": ".sTit&&Text",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": "img&&data-echo||data-src||src",
|
||||
"分类片单副标题": ".sBottom&&Text",
|
||||
"分类片单链接加前缀": "https://www.wwgz.cn",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$手机#Referer$https://www.wwgz.cn",
|
||||
"search_url": "https://v.nmvod.cn/index.php?m=vod-search;post",
|
||||
"sea_PtBody": "wd={wd}",
|
||||
"search_mode": "1",
|
||||
"sea_arr_rule": "#data_list&&li",
|
||||
"sea_is_jsoup": "1",
|
||||
"sea_pic": ".lazyload&&data-src",
|
||||
"sea_title": ".sTit&&Text",
|
||||
"sea_url": "a&&href",
|
||||
"搜索片单副标题": ".sDes,-1&&Text",
|
||||
"搜索片单链接加前缀": "https://www.wwgz.cn",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "0",
|
||||
"直接播放链接加前缀": "https://live.52sf.ga/huya/",
|
||||
"直接播放链接加后缀": "#isVideo=true#",
|
||||
"直接播放直链视频请求头": "authority$ku.peizq.online#Referer$https://play.peizq.online",
|
||||
"详情是否Jsoup写法": "1",
|
||||
"类型详情": ".type-title&&Text",
|
||||
"年代详情": "body&&span:contains(年代:)&&Text!年代:",
|
||||
"地区详情": "",
|
||||
"演员详情": "body&&.sDes:contains(主演:)&&Text!主演:",
|
||||
"简介详情": ".detail-con&&p&&Text!简介:",
|
||||
"线路列表数组规则": "#leftTabBox&&ul&&li",
|
||||
"线路标题": "Text[替换:默认=>农民专线]",
|
||||
"播放列表数组规则": "#leftTabBox&&.numList",
|
||||
"选集列表数组规则": "li",
|
||||
"选集标题链接是否Jsoup写法": "1",
|
||||
"选集标题": "a&&Text",
|
||||
"选集链接": "a&&href",
|
||||
"是否反转选集序列": "1",
|
||||
"选集链接加前缀": "https://www.wwgz.cn",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "0",
|
||||
"是否开启手动嗅探": "1",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#item/video#video_mp4#video/tos",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
2631
lib/初中课堂.json
Normal file
2631
lib/初中课堂.json
Normal file
File diff suppressed because it is too large
Load Diff
11
lib/剧圈圈.json
Normal file
11
lib/剧圈圈.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"站名": "剧圈圈",
|
||||
"作者": "天天开心",
|
||||
"分类url": "https://www.jqqzx.cc/vodshow/{area}/by/{by}/id/{cateId}/lang/{lang}/page/{catePg}.html[https://www.jqqzx.cc/vodshow/id/{cateId}.html]",
|
||||
"分类": "电影&剧集&动漫&综艺&纪录片",
|
||||
"分类值": "1&juji&dongman&zongyi&jilupian",
|
||||
|
||||
"简介":"<p>&&</p>",
|
||||
"排序": "时间$time#人气$hits#评分$score",
|
||||
"主页url": "https://www.jqqzx.cc/"
|
||||
}
|
190
lib/南瓜.js
Normal file
190
lib/南瓜.js
Normal file
@ -0,0 +1,190 @@
|
||||
// 注入全局方法 (仅支持tvbox的js1以及c#版drpy的js0,暂不支持drpy官方py版的js0)
|
||||
// 注入全局方法 (仅支持tvbox的js1以及c#版drpy的js0,暂不支持drpy官方py版的js0)
|
||||
// 注入全局方法 (仅支持tvbox的js1以及c#版drpy的js0,暂不支持drpy官方py版的js0)
|
||||
globalThis.getHeaders= function(input){
|
||||
let t = new Date().getTime().toString();
|
||||
let headers = {
|
||||
'version_name': '1.0.6',
|
||||
'version_code': '6',
|
||||
'package_name': 'com.app.nanguatv',
|
||||
'sign': md5('c431ea542cee9679#uBFszdEM0oL0JRn@' + t).toUpperCase(),
|
||||
'imei': 'c431ea542cee9679',
|
||||
'timeMillis': t,
|
||||
'User-Agent': 'okhttp/4.6.0'
|
||||
};
|
||||
return headers
|
||||
}
|
||||
|
||||
var rule = {
|
||||
title:'南瓜影视',
|
||||
host:'http://ys.changmengyun.com',
|
||||
homeUrl:'/api.php/provide/vod_rank?app=ylys&sort_type=month&imei=c431ea542cee9679&id=2&page=1',
|
||||
url:'/api.php/provide/vod_list?app=ylys&id=fyclassfyfilter&page=fypage&imei=c431ea542cee9679',
|
||||
detailUrl:'/api.php/provide/vod_detail?app=ylys&imei=c431ea542cee9679&id=fyid',
|
||||
searchUrl:'/api.php/provide/search_result_more?app=ylys&video_name=**&pageSize=20&tid=0&imei=c431ea542cee9679&page=fypage',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
filterable:1,
|
||||
filter_url:'&area={{fl.area}}&year={{fl.year}}&type={{fl.class}}&total={{fl.total or "状态"}}&order={{fl.by or "新上线"}}',
|
||||
filter:{
|
||||
"2":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"国产剧","v":"国产剧"},{"n":"港台剧","v":"港台剧"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"内地","v":"内地"},{"n":"香港地区","v":"香港地区"},{"n":"台湾地区","v":"台湾地区"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"好评榜","v":"好评榜"},{"n":"新上线","v":"新上线"}]}],
|
||||
"1":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"动作片","v":"动作片"},{"n":"喜剧片","v":"喜剧片"},{"n":"爱情片","v":"爱情片"},{"n":"科幻片","v":"科幻片"},{"n":"恐怖片","v":"恐怖片"},{"n":"剧情片","v":"剧情片"},{"n":"战争片","v":"战争片"},{"n":"惊悚片","v":"惊悚片"}]},{"key":"area","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":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2024","v":"2024"},
|
||||
{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"好评榜","v":"好评榜"},{"n":"新上线","v":"新上线"}]}],
|
||||
"4":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"国产漫","v":"国产漫"},{"n":"欧美漫","v":"欧美漫"},{"n":"日韩漫","v":"日韩漫"},{"n":"港台漫","v":"港台漫"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"中国大陆","v":"中国大陆"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"欧美","v":"欧美"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"新上线","v":"新上线"}]},{"key":"total","name":"状态","value":[{"n":"全部","v":"状态"},{"n":"连载","v":"连载"},{"n":"完结","v":"完结"}]}],
|
||||
"3":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"大陆","v":"大陆"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"内地","v":"内地"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"新上线","v":"新上线"}]}],
|
||||
"46":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"日韩剧","v":"日韩剧"},{"n":"欧美剧","v":"欧美剧"},{"n":"海外剧","v":"海外剧"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"韩国","v":"韩国"},{"n":"美剧","v":"美剧"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"好评榜","v":"好评榜"},{"n":"新上线","v":"新上线"}]}]
|
||||
},
|
||||
headers:{
|
||||
"User-Agent":"okhttp/4.6.0"
|
||||
},
|
||||
timeout:5000,
|
||||
class_name:'电视剧&电影&动漫&综艺&海外精选', // /api.php/provide/home_nav
|
||||
class_url:'2&1&4&3&46',
|
||||
limit:20,
|
||||
play_parse:true,
|
||||
lazy:`js:
|
||||
try {
|
||||
function getvideo(url) {
|
||||
let jData = JSON.parse(request(url, {
|
||||
headers: getHeaders(url)
|
||||
}));
|
||||
if (jData.code == 1) {
|
||||
return jData.data.url
|
||||
} else {
|
||||
return 'http://43.154.104.152:1234/jhapi/cs.php?url=' + url.split('=')[1]
|
||||
}
|
||||
}
|
||||
if (/,/.test(input)) {
|
||||
let mjurl = input.split(',')[1]
|
||||
let videoUrl = getvideo(mjurl);
|
||||
input = {
|
||||
jx: 0,
|
||||
url: videoUrl,
|
||||
parse: 0,
|
||||
header: JSON.stringify({
|
||||
'user-agent': 'Lavf/58.12.100'
|
||||
})
|
||||
}
|
||||
} else {
|
||||
let videoUrl = getvideo(input);
|
||||
if (/jhapi/.test(videoUrl)) {
|
||||
videoUrl = getvideo(videoUrl);
|
||||
input = {
|
||||
jx: 0,
|
||||
url: videoUrl,
|
||||
parse: 0,
|
||||
header: JSON.stringify({
|
||||
'user-agent': 'Lavf/58.12.100'
|
||||
})
|
||||
}
|
||||
} else {
|
||||
input = {
|
||||
jx: 0,
|
||||
url: videoUrl,
|
||||
parse: 0
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
log(e.toString())
|
||||
}
|
||||
`,
|
||||
推荐:`js:
|
||||
var d = [];
|
||||
let html = request(input, {
|
||||
headers: getHeaders(input)
|
||||
});
|
||||
html = JSON.parse(html);
|
||||
html.forEach(function(it) {
|
||||
d.push({
|
||||
title: it.name,
|
||||
img: it.img,
|
||||
desc: it.remarks,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
一级:`js:
|
||||
var d = [];
|
||||
let html = request(input, {
|
||||
headers: getHeaders(input)
|
||||
});
|
||||
html = JSON.parse(html);
|
||||
html.list.forEach(function(it) {
|
||||
d.push({
|
||||
title: it.name,
|
||||
img: it.img,
|
||||
desc: it.msg,
|
||||
url: it.id
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
二级:`js:
|
||||
var d = [];
|
||||
VOD = {
|
||||
vod_id: input.split('id=')[1]
|
||||
};
|
||||
try {
|
||||
let html = request(input, {
|
||||
headers: getHeaders(input)
|
||||
});
|
||||
html = JSON.parse(html);
|
||||
let node = html.data;
|
||||
VOD = {
|
||||
vod_name: node['name'],
|
||||
vod_pic: node['img'],
|
||||
type_name: node['type'],
|
||||
vod_year: node['year'],
|
||||
vod_remarks: '更新至: ' + node['msg'] + ' / 评分: ' + node['score'],
|
||||
vod_content: node['info'].strip()
|
||||
};
|
||||
let episodes = node.player_info;
|
||||
let playMap = {};
|
||||
if (typeof play_url === 'undefined') {
|
||||
var play_url = ''
|
||||
}
|
||||
episodes.forEach(function(ep) {
|
||||
let playurls = ep['video_info'];
|
||||
playurls.forEach(function(playurl) {
|
||||
let source = ep['show'];
|
||||
if (!playMap.hasOwnProperty(source)) {
|
||||
playMap[source] = []
|
||||
}
|
||||
playMap[source].append(playurl['name'].strip() + '$' + play_url + urlencode(playurl['url']))
|
||||
})
|
||||
});
|
||||
let playFrom = [];
|
||||
let playList = [];
|
||||
Object.keys(playMap)
|
||||
.forEach(function(key) {
|
||||
playFrom.append(key);
|
||||
playList.append(playMap[key].join('#'))
|
||||
});
|
||||
let vod_play_from = playFrom.join('$$$');
|
||||
let vod_play_url = playList.join('$$$');
|
||||
VOD['vod_play_from'] = vod_play_from;
|
||||
VOD['vod_play_url'] = vod_play_url
|
||||
} catch (e) {
|
||||
log('获取二级详情页发生错误:' + e.message)
|
||||
}
|
||||
`,
|
||||
搜索:`js:
|
||||
var d = [];
|
||||
let html = request(input, {
|
||||
headers: getHeaders(input)
|
||||
});
|
||||
html = JSON.parse(html);
|
||||
html.data.forEach(function(it) {
|
||||
d.push({
|
||||
title: it.video_name,
|
||||
img: it.img,
|
||||
desc: it.qingxidu + '/' + it.category,
|
||||
url: it.id,
|
||||
content: it.blurb
|
||||
})
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user