mirror of
https://github.com/ls125781003/tvboxtg.git
synced 2026-11-02 17:53:22 +00:00
3.12
up
This commit is contained in:
1 parent
9006706d30
commit
1bdc375a8d
56 files changed
+22348
-21340
No files matched your search
+1
-1
@@ -419,7 +419,7 @@
|
||||
"changeable": 0,
|
||||
"ext": {
|
||||
"commonConfig": "http://127.0.0.1:9978/file/TVBox/peizhi.json",
|
||||
"siteUrl": "http://wogg.xxooo.cf/",
|
||||
"siteUrl": "https://www.wogg.one/",
|
||||
"filter": "./json/wogg.json"
|
||||
}
|
||||
},
|
||||
|
||||
+8
-1
@@ -5,10 +5,17 @@
|
||||
"ucToken": "",
|
||||
"115Cookie": "",
|
||||
"pwdRb115": "",
|
||||
//115 删除码
|
||||
"goServerUrl": "http://127.0.0.1:9966",
|
||||
"ydAuth": "",
|
||||
"ydAuth": "cGM6MTg3NzQ5NzMzNjM6YWdkYlRhWGR8MXxSQ1N8MTc0NDM3NDUxNjIxOHxkRnRScENBOFpZdm9EemFmVFNWZVdndlBWa0tSZjdkU3pBdnlkR0s4anZ2VFBlenl6OWVJX1VfNl94V2o1ZUZOSzdtOUtENXIuRHVPOG43RWdmV2lWc1J5YnZiSmF3NjhSMnhuMHlrSzVMd19Vcm0zZTQyOExUblFfTW1lMVRNNjIxdWRIa2U1NUJTdC5yMk1NbTc5RkxQZDAubHluMjFvVkNwa1FDTWNtYVkt",
|
||||
//请求头中authorization 取basic 后面的值
|
||||
"tyAuth": "18774973363@189.cn|Abc147369+",
|
||||
//账号|密码
|
||||
"p123Auth":"",
|
||||
//账号|密码
|
||||
"proxy": "http://127.0.0.1:1072",
|
||||
//默认代理端口 留空则使用外置代理
|
||||
"tgPic": "false",
|
||||
//tgsou 图片显示与否
|
||||
"danmu": "true"
|
||||
}
|
||||
@@ -9,18 +9,15 @@ CCTV2,http://121.232.178.75:60001/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&
|
||||
CCTV2,http://116.117.105.236:8096/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路183』
|
||||
CCTV2,http://116.117.105.71:8096/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路184』
|
||||
CCTV2,http://116.117.105.96:8096/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路185』
|
||||
CCTV2,http://220.202.110.48:9003/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路186』
|
||||
CCTV3,http://110.7.131.129:8096/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路160』
|
||||
CCTV3,http://121.232.178.75:60001/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路163』
|
||||
CCTV3,http://116.117.105.236:8096/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路165』
|
||||
CCTV3,http://116.117.105.71:8096/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路166』
|
||||
CCTV3,http://116.117.105.96:8096/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路167』
|
||||
CCTV3,http://220.202.110.48:9003/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路168』
|
||||
CCTV4,http://110.7.131.129:8096/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路186』
|
||||
CCTV4,http://116.117.105.236:8096/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路190』
|
||||
CCTV4,http://116.117.105.71:8096/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路191』
|
||||
CCTV4,http://116.117.105.96:8096/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路192』
|
||||
CCTV4,http://220.202.110.48:9003/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路193』
|
||||
CCTV5,http://110.7.131.129:8096/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路201』
|
||||
CCTV5,http://116.117.105.236:8096/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路205』
|
||||
CCTV5,http://116.117.105.71:8096/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路206』
|
||||
@@ -72,13 +69,9 @@ CCTV14,http://116.117.105.71:8096/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&
|
||||
CCTV14,http://116.117.105.96:8096/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路184』
|
||||
CCTV15,http://113.57.93.165:9900/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路30』
|
||||
CCTV15,http://123.130.84.106:8154/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路32』
|
||||
CCTV15,http://101.66.199.239:9901/tsfile/live/0015_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路34』
|
||||
CCTV15,http://180.213.174.225:9901/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路35』
|
||||
CCTV15,http://113.57.20.158:9901/tsfile/live/1034_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路36』
|
||||
CCTV16,http://219.159.194.194:8181/tsfile/live/faacts/1111_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路87』
|
||||
CCTV16,http://58.221.214.82:9901/tsfile/live/0002_2.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路88』
|
||||
CCTV16,http://59.173.243.210:9901/tsfile/live/1036_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路89』
|
||||
CCTV17,http://219.159.194.194:8181/tsfile/live/1115_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路129』
|
||||
CCTV17,http://58.221.214.82:9901/tsfile/live/0003_2.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路130』
|
||||
CCTV17,http://183.223.157.33:9901/tsfile/live/0016_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路132』
|
||||
CCTV1,http://60.7.56.33:4000/rtp/239.253.92.83:8012$1920x1080
|
||||
@@ -102,20 +95,14 @@ CCTV15,http://61.156.228.12:8154/tsfile/live/0015_1.m3u8
|
||||
北京卫视,http://61.156.228.12:8154/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路83』
|
||||
北京卫视,http://123.129.70.178:9901/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路88』
|
||||
江苏卫视,http://124.128.73.58:9901/tsfile/live/0127_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路95』
|
||||
江苏卫视,http://202.100.46.58:9901/tsfile/live/1020_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路96』
|
||||
安徽卫视,http://123.129.70.178:9901/tsfile/live/0130_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路73』
|
||||
安徽卫视,http://61.136.172.236:9901/tsfile/live/0130_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路75』
|
||||
安徽卫视,http://61.156.228.12:8154/tsfile/live/0130_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路76』
|
||||
安徽卫视,http://202.100.46.58:9901/tsfile/live/1028_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路80』
|
||||
重庆卫视,http://61.156.228.12:8154/tsfile/live/0142_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路71』
|
||||
四川卫视,http://61.156.228.12:8154/tsfile/live/0123_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路57』
|
||||
四川卫视,http://202.100.46.58:9901/tsfile/live/1027_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路62』
|
||||
东南卫视,http://202.100.46.58:9901/tsfile/live/1031_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路74』
|
||||
深圳卫视,http://202.100.46.58:9901/tsfile/live/1024_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路67』
|
||||
深圳卫视,http://123.129.70.178:9901/tsfile/live/0126_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路68』
|
||||
广东卫视,http://123.129.70.178:9901/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路88』
|
||||
广西卫视,http://61.136.172.236:9901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路54』
|
||||
厦门卫视,http://202.100.46.58:9901/tsfile/live/1040_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路26』
|
||||
厦门卫视,http://31182.hlsplay.aodianyun.com/lms_31182/tv_channel_175.m3u8?zfud$LR•IPV4『线路30』
|
||||
南方卫视,http://114.252.238.87:8000/udp/239.3.1.161:8001$LR•IPV4『线路3』
|
||||
湖南卫视,http://110.7.131.129:8096/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路113』
|
||||
@@ -172,8 +159,6 @@ CCTV15,http://61.156.228.12:8154/tsfile/live/0015_1.m3u8
|
||||
三沙卫视,https://pullsstv90080111.ssws.tv/live/SSTV20220729.m3u8
|
||||
青海卫视,http://stream.qhbtv.com/qhws/sd/live.m3u8?_upt=f35a89681647856030
|
||||
青海卫视,http://stream.qhbtv.com/qhws/sd/live.m3u8?_upt=63cf437e1591689484
|
||||
康巴卫视,http://111.202.12.159:8080/kYGHWzA/1000/live.m3u8
|
||||
康巴卫视,http://111.202.12.159:8080/3zvkK28/1000/live.m3u8
|
||||
延边卫视,http://live.ybtvyun.com/video/s10016-7e5f23de35df/index.m3u8
|
||||
深圳卫视,http://api3.52tb.xyz/info?id=28&token=20230227aesvnb
|
||||
东南卫视,http://api3.52tb.xyz/info?id=29&token=20230227aesvnb
|
||||
|
||||
Binary file not shown.
+88
-100
@@ -121,106 +121,94 @@ https://tv.iill.top/migu/dds
|
||||
https://tv.iill.top/migu/mgty
|
||||
|
||||
#INSERT_HERE
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「德甲」03:20 联赛 门兴格拉德巴赫 vs 美因茨 吴子越
|
||||
https://tv.iill.top/FB/lTFD1I
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「意甲」03:35 联赛 卡利亚里 vs 热那亚 吴奕博
|
||||
https://tv.iill.top/FB/b0SzvG
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「法甲」03:35 联赛 图卢兹 vs 摩纳哥 邵煊
|
||||
https://tv.iill.top/FB/w7aUUP
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「英超」20:15 联赛 诺丁汉森林 vs 曼城 詹俊 张路 李子琪
|
||||
https://tv.iill.top/FB/kR9P45
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「西甲」20:50 联赛 塞尔塔 vs 莱加内斯 周楚雄
|
||||
https://tv.iill.top/FB/DLCcdc
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「意甲」21:50 联赛 科莫 vs 威尼斯 乔迁
|
||||
https://tv.iill.top/FB/6JWzKe
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「意甲」21:50 联赛 帕尔马 vs 都灵 张昊泽
|
||||
https://tv.iill.top/FB/BUgD8S
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「德甲」22:15 联赛 多特蒙德 vs 奥格斯堡 沈云怡 秦游夏
|
||||
https://tv.iill.top/FB/840zGD
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「德甲」22:20 联赛 沃尔夫斯堡 vs 圣保利 刘洋
|
||||
https://tv.iill.top/FB/KLIbv9
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「德甲」22:20 联赛 勒沃库森 vs 不来梅 涂远 马延峰
|
||||
https://tv.iill.top/FB/8kDrlo
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「德甲」22:20 联赛 勒沃库森 vs 不来梅 涂远 马延峰
|
||||
https://tv.iill.top/FB/Z8WT25
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「德甲」22:15 联赛 拜仁慕尼黑 vs 波鸿 胡小凡 张力
|
||||
https://tv.iill.top/FB/Dqaf7Q
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「德甲」22:20 联赛 荷尔斯泰因基尔 vs 斯图加特 谭逸雄
|
||||
https://tv.iill.top/FB/W5RMAh
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「英超」22:50 联赛 水晶宫 vs 伊普斯维奇 郭灿亮
|
||||
https://tv.iill.top/FB/IR8afF
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「英超」22:50 联赛 布莱顿 vs 富勒姆 苗锟
|
||||
https://tv.iill.top/FB/gqXB0B
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「英超」22:45 联赛 利物浦 vs 南安普敦 刘畅 颜强
|
||||
https://tv.iill.top/FB/5L2rm9
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「西甲」23:05 联赛 阿拉维斯 vs 比利亚雷亚尔 孙雨轩
|
||||
https://tv.iill.top/FB/3mFvRn
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「法甲」23:45 联赛 雷恩 vs 巴黎圣日耳曼 鹿中原 王宇
|
||||
https://tv.iill.top/FB/KuG1lI
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」07:55 常规赛 骑士VS黄蜂 金哲豪
|
||||
https://tv.iill.top/NBA/yHVEX5
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」08:25 常规赛 灰熊VS独行侠 连睿 刘铁
|
||||
https://tv.iill.top/NBA/iiyHEI
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」08:25 常规赛 爵士VS猛龙 刘沛元
|
||||
https://tv.iill.top/NBA/WIjXTi
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」08:55 常规赛 开拓者VS雷霆 罗森
|
||||
https://tv.iill.top/NBA/WuIL36
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」08:55 常规赛 森林狼VS热火 张浩岳 郭维盛
|
||||
https://tv.iill.top/NBA/8Y5jeZ
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」10:45 常规赛 太阳VS掘金 杨健 孙悦 裴优
|
||||
https://tv.iill.top/NBA/1K1pBz
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」10:55 常规赛 马刺VS国王 王晓晨 孔德昕
|
||||
https://tv.iill.top/NBA/lQMkx2
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」11:15 常规赛 尼克斯VS快船 李天宇 陈正昊 魏欣怡
|
||||
https://tv.iill.top/NBA/AO0YVZ
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTA」03:00 郑钦文开门红 米拉、斯瓦泰克携手晋级 郑钦文开门红 米拉、斯瓦泰克携手晋级 赛场原声
|
||||
https://tv.iill.top/Migu/0jA6lE
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「UFC前瞻与回顾」10:00 UFC激战前夜:盖奇VS斐济耶夫特辑 UFC激战前夜:盖奇VS斐济耶夫特辑 陈瑞阳
|
||||
https://tv.iill.top/Migu/FzpEhe
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「KPL」13:40 北京JDG vs 上海RNG.M 北京JDG vs 上海RNG.M 官方解说
|
||||
https://tv.iill.top/Migu/qCGIOZ
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「中女超」14:20 中女超联赛 山东体彩女足VS江苏无锡女足 清流
|
||||
https://tv.iill.top/Migu/Prl2co
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「KPL」17:00 北京WB vs 西安WE 北京WB vs 西安WE 官方解说
|
||||
https://tv.iill.top/Migu/8TKfxu
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「UFC前瞻与回顾」18:30 UFC激战前夜:佩雷拉VS安卡拉耶夫特辑 UFC激战前夜:佩雷拉VS安卡拉耶夫特辑 王琰博
|
||||
https://tv.iill.top/Migu/ztw4SD
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「斯诺克」13:00 特鲁姆普PK宾汉姆 罗伯逊6-5逆转墨菲 特鲁姆普PK宾汉姆 罗伯逊6-5逆转墨菲 1号桌
|
||||
https://tv.iill.top/Migu/IjhydR
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WCBA」19:20 1/4决赛 江苏南钢 VS 四川蜀道远达 解说
|
||||
https://tv.iill.top/Migu/FBklCu
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WCBA」19:20 1/4决赛 山东赤水河酒 VS 东莞新彤盛 解说
|
||||
https://tv.iill.top/Migu/JhD4CL
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WCBA」19:20 1/4决赛 上海浦发银行 VS 山西竹叶青酒 解说
|
||||
https://tv.iill.top/Migu/x9IoK7
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:20 常规赛第37轮 北京控股vs山东高速 连睿 丁伟
|
||||
https://tv.iill.top/Migu/bc17dp
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:00 常规赛第37轮 北京控股vs山东高速 江苏vs新疆
|
||||
https://tv.iill.top/Migu/DCX0HZ
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第37轮 北京控股vs山东高速 周赫
|
||||
https://tv.iill.top/Migu/5nz56W
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第37轮 北京控股vs山东高速 罗森
|
||||
https://tv.iill.top/Migu/tWLPR7
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第37轮 北京控股vs山东高速 现场原声
|
||||
https://tv.iill.top/Migu/hgUySo
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:20 常规赛第37轮 北京控股vs山东高速 星际广场
|
||||
https://tv.iill.top/Migu/AfTjZ9
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:00 常规赛第37轮 广州朗肽海本vs深圳马可波罗 刘圳展
|
||||
https://tv.iill.top/Migu/uFKvKa
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:00 常规赛第37轮 广州朗肽海本vs深圳马可波罗 浙江vs天津
|
||||
https://tv.iill.top/Migu/fxMTba
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第37轮 广州朗肽海本vs深圳马可波罗 现场原声
|
||||
https://tv.iill.top/Migu/nZo4hM
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:50 常规赛第37轮 江苏肯帝亚vs新疆伊力特 新疆vs内蒙古
|
||||
https://tv.iill.top/Migu/IwULEW
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第37轮 江苏肯帝亚vs新疆伊力特 盛哲
|
||||
https://tv.iill.top/Migu/WNN4VZ
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第37轮 江苏肯帝亚vs新疆伊力特 现场原声
|
||||
https://tv.iill.top/Migu/2qWRhQ
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第37轮 浙江稠州金租vs天津先行者 现场原声
|
||||
https://tv.iill.top/Migu/crRSvz
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「KPL」20:00 成都AG超玩会 vs 上海EDG.M 成都AG超玩会 vs 上海EDG.M 官方解说
|
||||
https://tv.iill.top/Migu/TNJilw
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「亚冠二级」03:50 1/4决赛 布赖代合作 vs 大不里士拖拉机 王子睿
|
||||
https://tv.iill.top/FB/v3aHzQ
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「亚冠精英」03:50 八分之一决赛 吉达国民 vs 赖扬 鲁靖明
|
||||
https://tv.iill.top/FB/rLWhmX
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「亚冠精英」03:50 八分之一决赛 利雅得新月 vs 塔什干棉农 张昊泽
|
||||
https://tv.iill.top/FB/WbJMGp
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「亚冠精英」17:50 八分之一决赛 光州 vs 神户胜利船 周楚雄
|
||||
https://tv.iill.top/FB/1Tg3G3
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「亚冠精英」17:45 八分之一决赛 川崎前锋 vs 上海申花 涂远 马延峰 孙蕊
|
||||
https://tv.iill.top/FB/kpUyUM
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/足球.png" group-title="•咪咕「足球」", 「亚冠二级」19:50 1/4决赛 本国联队 vs 广岛三箭 盛斌
|
||||
https://tv.iill.top/FB/jeQNDY
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」06:55 常规赛 篮网VS骑士 孔德昕
|
||||
https://tv.iill.top/NBA/NVI12E
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」06:55 常规赛 奇才VS活塞 王凯
|
||||
https://tv.iill.top/NBA/SrC7FA
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」07:25 常规赛 雄鹿VS步行者 季孟年
|
||||
https://tv.iill.top/NBA/E0nHEy
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」07:45 常规赛 快船VS鹈鹕 王冠证 徐咏 王羽希
|
||||
https://tv.iill.top/NBA/CYEKc6
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTA」02:00 郑钦文2-0科斯秋克 斯瓦泰克轻松晋级 郑钦文2-0科斯秋克 斯瓦泰克轻松晋级 赛场原声
|
||||
https://tv.iill.top/Migu/cuQP6X
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」09:30 【训练馆视角】直击国乒赛前训练 【训练馆视角】直击国乒赛前训练 训练馆
|
||||
https://tv.iill.top/Migu/wc86sJ
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「中女超」14:50 中女超 武汉车谷江大女足VS北京东方雨虹女足 清流播出
|
||||
https://tv.iill.top/Migu/8HErNT
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「英雄联盟全球先锋赛」15:30 CFO vs HLE CFO vs HLE 官方解说
|
||||
https://tv.iill.top/Migu/uh3Wov
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「KPL」16:40 上海RNG.M vs 情久 上海RNG.M vs 情久 官方解说
|
||||
https://tv.iill.top/Migu/wpeaX7
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「英雄联盟全球先锋赛」17:45 KC vs TES KC vs TES 官方解说
|
||||
https://tv.iill.top/Migu/q0GDo4
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」17:30 王曼昱迎战迪亚兹 莫雷加德VS格罗特 王曼昱迎战迪亚兹 莫雷加德VS格罗特 小马哥 周冠达
|
||||
https://tv.iill.top/Migu/b6cMDK
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」18:30 王曼昱迎战迪亚兹 莫雷加德VS格罗特 王曼昱迎战迪亚兹 莫雷加德VS格罗特 周雨
|
||||
https://tv.iill.top/Migu/4qYtIQ
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」11:00 王曼昱迎战迪亚兹 莫雷加德VS格罗特 王曼昱迎战迪亚兹 莫雷加德VS格罗特 赛场原声
|
||||
https://tv.iill.top/Migu/J1OaKJ
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」11:00 王曼昱迎战迪亚兹 莫雷加德VS格罗特 王曼昱迎战迪亚兹 莫雷加德VS格罗特 混采区
|
||||
https://tv.iill.top/Migu/QNhjPM
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」11:00 王曼昱迎战迪亚兹 莫雷加德VS格罗特 王曼昱迎战迪亚兹 莫雷加德VS格罗特 英文解说
|
||||
https://tv.iill.top/Migu/ERQniU
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」17:30 王曼昱迎战迪亚兹 莫雷加德VS格罗特 王曼昱迎战迪亚兹 莫雷加德VS格罗特 狂欢Yeah
|
||||
https://tv.iill.top/Migu/oG1Jwu
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WCBA」19:20 排位赛 北京首钢园 VS 黑龙江上东 解说
|
||||
https://tv.iill.top/Migu/xPHQMz
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WCBA」19:20 排位赛 石家庄英励 VS 河南豫光金铅 解说
|
||||
https://tv.iill.top/Migu/mWKK8C
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WCBA」19:20 排位赛 福建晋江众腾 VS 武汉盛帆黄鹤 解说
|
||||
https://tv.iill.top/Migu/yI8pXy
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WCBA」19:20 排位赛 浙江稠州银行 VS 陕西天泽 解说
|
||||
https://tv.iill.top/Migu/M26Tib
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:15 常规赛第39轮 上海久事vs浙江稠州金租 李天宇 张兆旭
|
||||
https://tv.iill.top/Migu/qP4kmR
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第39轮 上海久事vs浙江稠州金租 张俊卿
|
||||
https://tv.iill.top/Migu/BOPnf3
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第39轮 上海久事vs浙江稠州金租 金哲豪
|
||||
https://tv.iill.top/Migu/Tr0SJW
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第39轮 上海久事vs浙江稠州金租 现场原声
|
||||
https://tv.iill.top/Migu/lzcoUz
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:00 常规赛第39轮 天津先行者vs广州朗肽海本 张浩岳
|
||||
https://tv.iill.top/Migu/vWffR7
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第39轮 天津先行者vs广州朗肽海本 现场原声
|
||||
https://tv.iill.top/Migu/DMIoit
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:00 常规赛第39轮 广东东阳光vs四川丰谷酒业 蔡凯臣
|
||||
https://tv.iill.top/Migu/qtGb9n
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第39轮 广东东阳光vs四川丰谷酒业 翻译小余
|
||||
https://tv.iill.top/Migu/DRjKhu
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第39轮 广东东阳光vs四川丰谷酒业 字诚
|
||||
https://tv.iill.top/Migu/nRgkvZ
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第39轮 广东东阳光vs四川丰谷酒业 3D全真视频
|
||||
https://tv.iill.top/Migu/bO5WOg
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第39轮 广东东阳光vs四川丰谷酒业 现场原声
|
||||
https://tv.iill.top/Migu/IJfVRL
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:00 常规赛第39轮 福建晋江文旅vs宁波町渥 吴博文
|
||||
https://tv.iill.top/Migu/EpLuTF
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第39轮 福建晋江文旅vs宁波町渥 现场原声
|
||||
https://tv.iill.top/Migu/vyD0a3
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:15 常规赛第39轮 北京北汽vs青岛国信制药 连睿 李根
|
||||
https://tv.iill.top/Migu/nz0BbA
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第39轮 北京北汽vs青岛国信制药 现场原声
|
||||
https://tv.iill.top/Migu/btjkRQ
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:30 常规赛第39轮 新疆伊力特vs深圳马可波罗 刘圳展
|
||||
https://tv.iill.top/Migu/WSotuL
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:50 常规赛第39轮 新疆伊力特vs深圳马可波罗 现场原声
|
||||
https://tv.iill.top/Migu/OCe9FP
|
||||
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「KPL」20:00 济南RW侠 vs 佛山DRG 济南RW侠 vs 佛山DRG 官方解说
|
||||
https://tv.iill.top/Migu/PLNMZL
|
||||
|
||||
#EXTINF:-1 tvg-id="凤凰中文" tvg-name="凤凰中文" tvg-logo="https://epg.iill.top/logo/凤凰中文.png" http-user-agent="FengWatch/5.4.14" group-title="•港澳「限制」",鳳凰衛視·中文「限UA」
|
||||
http://dns.yiandrive.com:15907/phenix/fhzw
|
||||
|
||||
+1744
-1610
File diff suppressed because it is too large.
Load diff
+3054
-3024
File diff suppressed because it is too large.
Load diff
+3054
-3024
File diff suppressed because it is too large.
Load diff
+1744
-1610
File diff suppressed because it is too large.
Load diff
+118
-109
@@ -35,17 +35,12 @@
|
||||
"jar": "http://127.0.0.1:9978/file/TVBoxOSC/本地仓/wex.jar"
|
||||
},
|
||||
{
|
||||
"key": "配置中心",
|
||||
"name": "配置|中心",
|
||||
"key": "config",
|
||||
"name": "《配置┃中心》",
|
||||
"type": 3,
|
||||
"api": "csp_Config",
|
||||
"searchable": 0,
|
||||
"changeable": 0,
|
||||
"indexs": 0,
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.597
|
||||
}
|
||||
"jar": "./jars/config.jar",
|
||||
"playerType": 2
|
||||
},
|
||||
{
|
||||
"key": "网络直播",
|
||||
@@ -133,6 +128,18 @@
|
||||
"jar": "./jars/csp_Jpys.jar",
|
||||
"api": "csp_JpysGuard"
|
||||
},
|
||||
{
|
||||
"key": "机器人弹幕",
|
||||
"name": "《人机🔹弹幕》",
|
||||
"type": 3,
|
||||
"api": "csp_Ikanbot",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "量子",
|
||||
"name": "《量子🔹秒播》",
|
||||
@@ -243,6 +250,14 @@
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "小米电影",
|
||||
"name": "《小米🔹蓝光》",
|
||||
"type": 3,
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"api": "csp_MovieApp"
|
||||
},
|
||||
{
|
||||
"key": "剧圈圈",
|
||||
"name": "《剧圈🔹影院》",
|
||||
@@ -250,6 +265,34 @@
|
||||
"api": "./api/drpy2.min.js",
|
||||
"ext": "./js/剧圈圈.js"
|
||||
},
|
||||
{
|
||||
"key": "腾讯弹幕",
|
||||
"name": "《腾翼🔹天翔》",
|
||||
"type": 3,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"ext": "./js/腾翼弹幕.js"
|
||||
},
|
||||
{
|
||||
"key": "优酷弹幕",
|
||||
"name": "《悠悠🔹岁月》",
|
||||
"type": 3,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"ext": "./js/悠悠弹幕.js"
|
||||
},
|
||||
{
|
||||
"key": "芒果弹幕",
|
||||
"name": "《茫茫🔹人海》",
|
||||
"type": 3,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"ext": "./js/茫茫弹幕.js"
|
||||
},
|
||||
{
|
||||
"key": "爱奇艺弹幕",
|
||||
"name": "《爱在🔹心意》",
|
||||
"type": 3,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"ext": "./js/爱在弹幕.js"
|
||||
},
|
||||
{
|
||||
"key": "UC",
|
||||
"name": "《优汐💿盘搜4K》",
|
||||
@@ -283,10 +326,10 @@
|
||||
},
|
||||
{
|
||||
"key": "csp_FeiMaoUC",
|
||||
"name": "《闪电💿优汐4K》",
|
||||
"name": "《闪电💿UC盘4K》",
|
||||
"type": 3,
|
||||
"api": "csp_Duopan",
|
||||
"jar": "./jars/csp_FeiMaoUC.jar",
|
||||
"jar": "./jars/config.jar",
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"site_urls": [
|
||||
@@ -295,6 +338,63 @@
|
||||
"url_key": "FeiMaoUC"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "csp_XMUC",
|
||||
"name": "《小米💿UC盘4K》",
|
||||
"type": 3,
|
||||
"api": "csp_Duopan",
|
||||
"jar": "./jars/config.jar",
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"site_urls": [
|
||||
"http://www.mucpan.cc",
|
||||
"https://milvdou.fun",
|
||||
"https://54271.fun"
|
||||
],
|
||||
"url_key": "XMUC"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "csp_Duopan",
|
||||
"name": "《蜡笔💿网盘4K》",
|
||||
"type": 3,
|
||||
"api": "csp_Duopan",
|
||||
"jar": "./jars/config.jar",
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"site_urls": [
|
||||
"https://feimao666.fun",
|
||||
"http://feimao888.fun",
|
||||
"http://feimaoai.site",
|
||||
"http://www.labi88.sbs"
|
||||
],
|
||||
"url_key": "Duopan2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "csp_Netfixtv",
|
||||
"name": "《至臻💿网盘4K》",
|
||||
"type": 3,
|
||||
"api": "csp_Duopan",
|
||||
"jar": "./jars/config.jar",
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"site_urls": [
|
||||
"http://xiaomi666.fun",
|
||||
"https://xiaomiai.site",
|
||||
"http://www.miqk.cc",
|
||||
"https://mihdr.top"
|
||||
],
|
||||
"url_key": "Netfixtv2",
|
||||
"token": "",
|
||||
"ucCookie": "",
|
||||
"quarkCookie": "",
|
||||
"threadinfo": {
|
||||
"chunksize": 450,
|
||||
"threads": 10
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "雷鲸",
|
||||
"name": "《天翼💿网盘4K》",
|
||||
@@ -305,20 +405,13 @@
|
||||
"jar": "http://127.0.0.1:9978/file/TVBoxOSC/本地仓/wex.jar"
|
||||
},
|
||||
{
|
||||
"key": "夸克多多弹幕",
|
||||
"name": "《多多💿网盘4K》",
|
||||
"key": "盘他",
|
||||
"name": "《移动💿网盘4K》",
|
||||
"type": 3,
|
||||
"api": "csp_Wobg",
|
||||
"quickSearch": 1,
|
||||
"api": "csp_WexYDpanta",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"site": "https://tv.yydsys.top",
|
||||
"danmu": true
|
||||
}
|
||||
"jar": "http://127.0.0.1:9978/file/TVBoxOSC/本地仓/wex.jar"
|
||||
},
|
||||
{
|
||||
"key": "小米尘落",
|
||||
@@ -1135,33 +1228,8 @@
|
||||
},
|
||||
{
|
||||
"name": "解析1",
|
||||
"type": "1",
|
||||
"url": "https://zy.qiaoji8.com/gouzi.php?url=",
|
||||
"ext": {
|
||||
"flag": [
|
||||
"qq",
|
||||
"腾讯",
|
||||
"qiyi",
|
||||
"爱奇艺",
|
||||
"奇艺",
|
||||
"youku",
|
||||
"优酷",
|
||||
"sohu",
|
||||
"搜狐",
|
||||
"letv",
|
||||
"乐视",
|
||||
"mgtv",
|
||||
"芒果",
|
||||
"芒果TV",
|
||||
"tnmb",
|
||||
"seven",
|
||||
"bilibili",
|
||||
"1905"
|
||||
],
|
||||
"header": {
|
||||
"User-Agent": "okhttp/4.9.1"
|
||||
}
|
||||
}
|
||||
"type": 0,
|
||||
"url": "https://www.8090g.cn/?url="
|
||||
},
|
||||
{
|
||||
"name": "解析2",
|
||||
@@ -1198,65 +1266,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "解析4",
|
||||
"type": 0,
|
||||
"url": "https://jx.m3u8.tv/jiexi/?url=",
|
||||
"ext": {
|
||||
"flag": [
|
||||
"qq",
|
||||
"腾讯",
|
||||
"qiyi",
|
||||
"爱奇艺",
|
||||
"奇艺",
|
||||
"youku",
|
||||
"优酷",
|
||||
"sohu",
|
||||
"搜狐",
|
||||
"letv",
|
||||
"乐视",
|
||||
"mgtv",
|
||||
"芒果",
|
||||
"芒果TV",
|
||||
"tnmb",
|
||||
"seven",
|
||||
"bilibili",
|
||||
"1905"
|
||||
],
|
||||
"header": {
|
||||
"User-Agent": "okhttp/4.9.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "解析0",
|
||||
"type": 1,
|
||||
"url": "http://1.94.221.189:88/algorithm.php?url=",
|
||||
"ext": {
|
||||
"flag": [
|
||||
"公众号:天微科技",
|
||||
"qq",
|
||||
"腾讯",
|
||||
"qiyi",
|
||||
"爱奇艺",
|
||||
"奇艺",
|
||||
"youku",
|
||||
"优酷",
|
||||
"sohu",
|
||||
"搜狐",
|
||||
"letv",
|
||||
"乐视",
|
||||
"芒果",
|
||||
"tnmb",
|
||||
"seven",
|
||||
"bilibili",
|
||||
"1905"
|
||||
],
|
||||
"header": {
|
||||
"User-Agent": "okhttp/4.9.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "解析5",
|
||||
"type": 0,
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Whitespace-only changes.
Binary file not shown.
@@ -0,0 +1,12 @@
|
||||
Object.assign(muban.mxpro.二级, {
|
||||
tab_text: 'div--small&&Text',
|
||||
});
|
||||
var rule = {
|
||||
模板: 'mxpro',
|
||||
title: '剧圈圈',
|
||||
host: 'https://www.jqqzx.cc/',
|
||||
url: '/vodshow/id/fyclass/page/fypage.html',
|
||||
searchUrl: '/vodsearch**/page/fypage.html',
|
||||
class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;.*/(.*?)\.html',
|
||||
cate_exclude: '今日更新|热榜',
|
||||
}
|
||||
+2299
File diff suppressed because it is too large.
Load diff
+1392
File diff suppressed because it is too large.
Load diff
+842
@@ -0,0 +1,842 @@
|
||||
var rule = {
|
||||
title: '腾云驾雾[官]',
|
||||
host: 'https://v.%71%71.com',
|
||||
// homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
|
||||
homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=cartoon&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
|
||||
detailUrl: 'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
|
||||
searchUrl: '/x/search/?q=**&stag=fypage',
|
||||
searchUrl: 'https://pbaccess.video.%71%71.com/trpc.videosearch.smartboxServer.HttpRountRecall/Smartbox?query=**&appID=3172&appKey=lGhFIPeD3HsO9xEp&pageNum=(fypage-1)&pageSize=10',
|
||||
searchable: 2,
|
||||
filterable: 1,
|
||||
multi: 1,
|
||||
// url:'/channel/fyclass?listpage=fypage&channel=fyclass&sort=18&_all=1',
|
||||
url: '/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1',
|
||||
// filter_url: 'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}',
|
||||
// filter_url: 'sort={{fl.sort or 75}}&year={{fl.year}}&pay={{fl.pay}}',
|
||||
filter_url: 'sort={{fl.sort or 75}}&iyear={{fl.iyear}}&year={{fl.year}}&itype={{fl.type}}&ifeature={{fl.feature}}&iarea={{fl.area}}&itrailer={{fl.itrailer}}&gender={{fl.sex}}',
|
||||
// filter: 'H4sIAAAAAAAAA+2UzUrDQBCA32XOEZLUJrGvIj0saaDBNisxBkIJCG3Fi4oepIg3EQoieqiH+vM23Zq+hRuaZLZ4ce9z2/lmd2d2+NgR+H0e+gF0DkdwFGTQgRMeJ2BAxIaSwvrqVnxcyzhlg9PttqjED2c/45cSy8DyIDcavr57q/lBw8XTd/E6qbnT8M3zTFyc72RtC/Jumd+2c8wy7KZ4nxSL5Z9uxHS+Gc+r83sWVp1eVttl4Dluk1h93YubWZVwduplAYuxoFguVp+P/y5om/Z+/YxyqfAW8pbKbeS2yi3kO/ebyE2Fy1nXXBm7DDzknspd5K7KHeSOytvI2+XAugYkKWlD2mhrM+RpSB8OmaNvTsriMEgycofc0XbHZ3HCeUTukDv67vTDQY/MIXO0zelxn5M4JI6mOPkvgswSEpgPAAA=',
|
||||
filter: {
|
||||
"choice": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "83"
|
||||
}, {
|
||||
"n": "好评",
|
||||
"v": "81"
|
||||
}]
|
||||
}, {
|
||||
"key": "iyear",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"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"
|
||||
}]
|
||||
}],
|
||||
"tv": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "79"
|
||||
}, {
|
||||
"n": "好评",
|
||||
"v": "16"
|
||||
}]
|
||||
}, {
|
||||
"key": "feature",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "古装",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "都市",
|
||||
"v": "4"
|
||||
}, {
|
||||
"n": "家庭",
|
||||
"v": "5"
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "6"
|
||||
}, {
|
||||
"n": "传奇",
|
||||
"v": "7"
|
||||
}, {
|
||||
"n": "武侠",
|
||||
"v": "8"
|
||||
}, {
|
||||
"n": "军旅",
|
||||
"v": "9"
|
||||
}, {
|
||||
"n": "权谋",
|
||||
"v": "10"
|
||||
}, {
|
||||
"n": "革命",
|
||||
"v": "11"
|
||||
}, {
|
||||
"n": "现实",
|
||||
"v": "13"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "14"
|
||||
}, {
|
||||
"n": "猎奇",
|
||||
"v": "15"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "16"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "17"
|
||||
}, {
|
||||
"n": "玄幻",
|
||||
"v": "18"
|
||||
}]
|
||||
}, {
|
||||
"key": "iyear",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"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"
|
||||
}]
|
||||
}],
|
||||
"movie": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "83"
|
||||
}, {
|
||||
"n": "好评",
|
||||
"v": "81"
|
||||
}]
|
||||
}, {
|
||||
"key": "type",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "犯罪",
|
||||
"v": "4"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "100004"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "100061"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "100009"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "100005"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "100012"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "100010"
|
||||
}, {
|
||||
"n": "动画",
|
||||
"v": "100015"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "100006"
|
||||
}, {
|
||||
"n": "家庭",
|
||||
"v": "100017"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "100022"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "100016"
|
||||
}, {
|
||||
"n": "武侠",
|
||||
"v": "100011"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "100021"
|
||||
}, {
|
||||
"n": "老片",
|
||||
"v": "100013"
|
||||
}, {
|
||||
"n": "西部",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "记录片",
|
||||
"v": "100020"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"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"
|
||||
}]
|
||||
}],
|
||||
"variety": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "23"
|
||||
}]
|
||||
}, {
|
||||
"key": "iyear",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"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"
|
||||
}]
|
||||
}],
|
||||
"cartoon": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "83"
|
||||
}, {
|
||||
"n": "好评",
|
||||
"v": "81"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "内地",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "4"
|
||||
}]
|
||||
}, {
|
||||
"key": "type",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "玄幻",
|
||||
"v": "9"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "4"
|
||||
}, {
|
||||
"n": "武侠",
|
||||
"v": "13"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "5"
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "7"
|
||||
}, {
|
||||
"n": "魔幻",
|
||||
"v": "6"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "20"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "17"
|
||||
}, {
|
||||
"n": "日常",
|
||||
"v": "15"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "16"
|
||||
}, {
|
||||
"n": "真人",
|
||||
"v": "18"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "14"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "19"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "12"
|
||||
}]
|
||||
}, {
|
||||
"key": "iyear",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"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"
|
||||
}]
|
||||
}],
|
||||
"child": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "76"
|
||||
}, {
|
||||
"n": "好评",
|
||||
"v": "20"
|
||||
}]
|
||||
}, {
|
||||
"key": "sex",
|
||||
"name": "性别",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "女孩",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "男孩",
|
||||
"v": "2"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "内地",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "1"
|
||||
}]
|
||||
}, {
|
||||
"key": "iyear",
|
||||
"name": "年龄段",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "0-3岁",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "4-6岁",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "7-9岁",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "10岁以上",
|
||||
"v": "4"
|
||||
}, {
|
||||
"n": "全年龄段",
|
||||
"v": "7"
|
||||
}]
|
||||
}],
|
||||
"doco": [{
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最热",
|
||||
"v": "75"
|
||||
}, {
|
||||
"n": "最新",
|
||||
"v": "74"
|
||||
}]
|
||||
}, {
|
||||
"key": "itrailer",
|
||||
"name": "出品方",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "BBC",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "国家地理",
|
||||
"v": "4"
|
||||
}, {
|
||||
"n": "HBO",
|
||||
"v": "3175"
|
||||
}, {
|
||||
"n": "NHK",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "历史频道",
|
||||
"v": "7"
|
||||
}, {
|
||||
"n": "ITV",
|
||||
"v": "3530"
|
||||
}, {
|
||||
"n": "探索频道",
|
||||
"v": "3174"
|
||||
}, {
|
||||
"n": "ZDF",
|
||||
"v": "3176"
|
||||
}, {
|
||||
"n": "腾讯自制",
|
||||
"v": "15"
|
||||
}, {
|
||||
"n": "合作机构",
|
||||
"v": "6"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "5"
|
||||
}]
|
||||
}, {
|
||||
"key": "type",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "-1"
|
||||
}, {
|
||||
"n": "自然",
|
||||
"v": "4"
|
||||
}, {
|
||||
"n": "美食",
|
||||
"v": "10"
|
||||
}, {
|
||||
"n": "社会",
|
||||
"v": "3"
|
||||
}, {
|
||||
"n": "人文",
|
||||
"v": "6"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "军事",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "科技",
|
||||
"v": "8"
|
||||
}, {
|
||||
"n": "财经",
|
||||
"v": "14"
|
||||
}, {
|
||||
"n": "探险",
|
||||
"v": "15"
|
||||
}, {
|
||||
"n": "罪案",
|
||||
"v": "7"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "12"
|
||||
}, {
|
||||
"n": "旅游",
|
||||
"v": "11"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'PC_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
// class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)',
|
||||
cate_exclude: '会员|游戏|全部',
|
||||
// class_name: '精选&电视剧&电影&综艺&动漫&少儿&纪录片',
|
||||
// class_url: 'choice&tv&movie&variety&cartoon&child&doco',
|
||||
class_name: '精选&电影&电视剧&综艺&动漫&少儿&纪录片',
|
||||
class_url: 'choice&movie&tv&variety&cartoon&child&doco',
|
||||
limit: 20,
|
||||
// play_parse:true,
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
try {
|
||||
let api = "" + input.split("?")[0];
|
||||
console.log(api);
|
||||
let response = fetch(api, {
|
||||
method: 'get',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
});
|
||||
let bata = JSON.parse(response);
|
||||
if (bata.url.includes("qq")) {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: bata.url,
|
||||
jx: 0,
|
||||
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
|
||||
};
|
||||
} else {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: input.split("?")[0],
|
||||
jx: 1,
|
||||
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
|
||||
};
|
||||
}
|
||||
} catch {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: input.split("?")[0],
|
||||
jx: 1,
|
||||
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
|
||||
};
|
||||
}
|
||||
}),
|
||||
推荐: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
一级: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
二级: $js.toString(() => {
|
||||
VOD = {};
|
||||
let d = [];
|
||||
let video_list = [];
|
||||
let video_lists = [];
|
||||
let list = [];
|
||||
let QZOutputJson;
|
||||
let html = fetch(input, fetch_params);
|
||||
let sourceId = /get_playsource/.test(input) ? input.match(/id=(\d*?)&/)[1] : input.split("cid=")[1];
|
||||
let cid = sourceId;
|
||||
let detailUrl = "https://v.%71%71.com/detail/m/" + cid + ".html";
|
||||
log("详情页:" + detailUrl);
|
||||
pdfh = jsp.pdfh;
|
||||
pd = jsp.pd;
|
||||
try {
|
||||
let json = JSON.parse(html);
|
||||
VOD = {
|
||||
vod_url: input,
|
||||
vod_name: json.c.title,
|
||||
type_name: json.typ.join(","),
|
||||
vod_actor: json.nam.join(","),
|
||||
vod_year: json.c.year,
|
||||
vod_content: json.c.description,
|
||||
vod_remarks: json.rec,
|
||||
vod_pic: urljoin2(input, json.c.pic)
|
||||
}
|
||||
} catch (e) {
|
||||
log("解析片名海报等基础信息发生错误:" + e.message)
|
||||
}
|
||||
if (/get_playsource/.test(input)) {
|
||||
eval(html);
|
||||
let indexList = QZOutputJson.PlaylistItem.indexList;
|
||||
indexList.forEach(function(it) {
|
||||
let dataUrl = "https://s.video.qq.com/get_playsource?id=" + sourceId + "&plat=2&type=4&data_type=3&range=" + it + "&video_type=10&plname=qq&otype=json";
|
||||
eval(fetch(dataUrl, fetch_params));
|
||||
let vdata = QZOutputJson.PlaylistItem.videoPlayList;
|
||||
vdata.forEach(function(item) {
|
||||
d.push({
|
||||
title: item.title,
|
||||
pic_url: item.pic,
|
||||
desc: item.episode_number + "\t\t\t播放量:" + item.thirdLine,
|
||||
url: item.playUrl
|
||||
})
|
||||
});
|
||||
video_lists = video_lists.concat(vdata)
|
||||
})
|
||||
} else {
|
||||
let json = JSON.parse(html);
|
||||
video_lists = json.c.video_ids;
|
||||
let url = "https://v.qq.com/x/cover/" + sourceId + ".html";
|
||||
if (video_lists.length === 1) {
|
||||
let vid = video_lists[0];
|
||||
url = "https://v.qq.com/x/cover/" + cid + "/" + vid + ".html";
|
||||
d.push({
|
||||
title: "在线播放",
|
||||
url: url
|
||||
})
|
||||
} else if (video_lists.length > 1) {
|
||||
for (let i = 0; i < video_lists.length; i += 30) {
|
||||
video_list.push(video_lists.slice(i, i + 30))
|
||||
}
|
||||
video_list.forEach(function(it, idex) {
|
||||
let o_url = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + it.join(",");
|
||||
let o_html = fetch(o_url, fetch_params);
|
||||
eval(o_html);
|
||||
QZOutputJson.results.forEach(function(it1) {
|
||||
it1 = it1.fields;
|
||||
let url = "https://v.qq.com/x/cover/" + cid + "/" + it1.vid + ".html";
|
||||
d.push({
|
||||
title: it1.title,
|
||||
pic_url: it1.pic160x90.replace("/160", ""),
|
||||
desc: it1.video_checkup_time,
|
||||
url: url,
|
||||
type: it1.category_map && it1.category_map.length > 1 ? it1.category_map[1] : ""
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
let yg = d.filter(function(it) {
|
||||
return it.type && it.type !== "正片"
|
||||
});
|
||||
let zp = d.filter(function(it) {
|
||||
return !(it.type && it.type !== "正片")
|
||||
});
|
||||
VOD.vod_play_from = yg.length < 1 ? "qq" : "qq$$$qq 预告及花絮";
|
||||
VOD.vod_play_url = yg.length < 1 ? d.map(function(it) {
|
||||
return it.title + "$" + it.url
|
||||
}).join("#") : [zp, yg].map(function(it) {
|
||||
return it.map(function(its) {
|
||||
return its.title + "$" + its.url
|
||||
}).join("#")
|
||||
}).join("$$$");
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let d = [];
|
||||
pdfa = jsp.pdfa;
|
||||
pdfh = jsp.pdfh;
|
||||
pd = jsp.pd;
|
||||
let html = request(input);
|
||||
let baseList = pdfa(html, "body&&.result_item_v");
|
||||
log(baseList.length);
|
||||
baseList.forEach(function(it) {
|
||||
let longText = pdfh(it, ".result_title&&a&&Text");
|
||||
let shortText = pdfh(it, ".type&&Text");
|
||||
let fromTag = pdfh(it, ".result_source&&Text");
|
||||
let score = pdfh(it, ".figure_info&&Text");
|
||||
let content = pdfh(it, ".desc_text&&Text");
|
||||
// let url = pdfh(it, ".result_title&&a&&href");
|
||||
let url = pdfh(it, "div&&r-data");
|
||||
// log(longText);
|
||||
// log(shortText);
|
||||
// log('url:'+url);
|
||||
let img = pd(it, ".figure_pic&&src");
|
||||
url = "https://node.video.qq.com/x/api/float_vinfo2?cid=" + url.match(/.*\/(.*?)\.html/)[1];
|
||||
log(shortText + "|" + url);
|
||||
if (fromTag.match(/腾讯/)) {
|
||||
d.push({
|
||||
title: longText.split(shortText)[0],
|
||||
img: img,
|
||||
url: url,
|
||||
content: content,
|
||||
desc: shortText + " " + score
|
||||
})
|
||||
}
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let d = [];
|
||||
let html = request(input);
|
||||
let json = JSON.parse(html);
|
||||
if (json.data.smartboxItemList.length > 0) {
|
||||
let cid = json.data.smartboxItemList[0].basicDoc.id;
|
||||
let url = 'https://node.video.qq.com/x/api/float_vinfo2?cid=' + cid;
|
||||
let html1 = request(url);
|
||||
let data = JSON.parse(html1);
|
||||
|
||||
d.push({
|
||||
title: data.c.title,
|
||||
img: data.c.pic,
|
||||
url: url,
|
||||
content: data.c.description,
|
||||
desc: data.rec
|
||||
});
|
||||
}
|
||||
setResult(d);
|
||||
})
|
||||
}
|
||||
+843
@@ -0,0 +1,843 @@
|
||||
var rule = {
|
||||
title: '百忙无果[官]',
|
||||
host: 'https://pianku.api.%6d%67%74%76.com',
|
||||
homeUrl: '',
|
||||
// searchUrl: 'https://mobileso.bz.%6d%67%74%76.com/pc/search/v1?q=**&pn=fypage&pc=10',
|
||||
// 新版接口搜索变成v2并且加了验证,蛋疼
|
||||
// searchUrl: 'https://mobileso.bz.mgtv.com/pc/search/v2?allowedRC=1&src=mgtv&did=cf03b959-6945-4cb6-bcb3-88762459354d×tamp=2024-06-21T15%3A52%3A55Z&signVersion=1&signNonce=8dae67a1fafc4bda984ec8deb47666ad&q=**&pn=fypage&pc=10&corr=1&_support=10000000&signature=4e27fddcd2a1a66d6c1764ed6b74bab7',
|
||||
// 用手机的吧,搞不定这个
|
||||
searchUrl: 'https://mobileso.bz.%6d%67%74%76.com/msite/search/v2?q=**&pn=fypage&pc=10',
|
||||
detailUrl: 'https://pcweb.api.mgtv.com/episode/list?page=1&size=50&video_id=fyid',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
multi: 1,
|
||||
// 分类链接fypage参数支持1个()表达式
|
||||
// https://www.mgtv.com/lib/3?lastp=list_index&kind=a1&year=all&chargeInfo=a1&sort=c2
|
||||
url: '/rider/list/pcweb/v3?platform=pcweb&channelId=fyclass&pn=fypage&pc=80&hudong=1&_support=10000000&kind=a1&area=a1',
|
||||
filter_url: 'year={{fl.year or "all"}}&sort={{fl.sort or "all"}}&chargeInfo={{fl.chargeInfo or "all"}}',
|
||||
headers: {
|
||||
'User-Agent': 'PC_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: '电视剧&电影&综艺&动漫&纪录片&教育&少儿',
|
||||
class_url: '2&3&1&50&51&115&10',
|
||||
filter: {
|
||||
"1": [{
|
||||
"key": "chargeInfo",
|
||||
"name": "付费类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "all"
|
||||
}, {
|
||||
"n": "免费",
|
||||
"v": "b1"
|
||||
}, {
|
||||
"n": "vip",
|
||||
"v": "b2"
|
||||
}, {
|
||||
"n": "VIP用券",
|
||||
"v": "b3"
|
||||
}, {
|
||||
"n": "付费点播",
|
||||
"v": "b4"
|
||||
}]
|
||||
}, {
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最新",
|
||||
"v": "c1"
|
||||
}, {
|
||||
"n": "最热",
|
||||
"v": "c2"
|
||||
}, {
|
||||
"n": "知乎高分",
|
||||
"v": "c4"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "all"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"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": "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"
|
||||
}]
|
||||
}],
|
||||
"2": [{
|
||||
"key": "chargeInfo",
|
||||
"name": "付费类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "all"
|
||||
}, {
|
||||
"n": "免费",
|
||||
"v": "b1"
|
||||
}, {
|
||||
"n": "vip",
|
||||
"v": "b2"
|
||||
}, {
|
||||
"n": "VIP用券",
|
||||
"v": "b3"
|
||||
}, {
|
||||
"n": "付费点播",
|
||||
"v": "b4"
|
||||
}]
|
||||
}, {
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最新",
|
||||
"v": "c1"
|
||||
}, {
|
||||
"n": "最热",
|
||||
"v": "c2"
|
||||
}, {
|
||||
"n": "知乎高分",
|
||||
"v": "c4"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "all"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"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": "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"
|
||||
}]
|
||||
}],
|
||||
"3": [{
|
||||
"key": "chargeInfo",
|
||||
"name": "付费类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "all"
|
||||
}, {
|
||||
"n": "免费",
|
||||
"v": "b1"
|
||||
}, {
|
||||
"n": "vip",
|
||||
"v": "b2"
|
||||
}, {
|
||||
"n": "VIP用券",
|
||||
"v": "b3"
|
||||
}, {
|
||||
"n": "付费点播",
|
||||
"v": "b4"
|
||||
}]
|
||||
}, {
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最新",
|
||||
"v": "c1"
|
||||
}, {
|
||||
"n": "最热",
|
||||
"v": "c2"
|
||||
}, {
|
||||
"n": "知乎高分",
|
||||
"v": "c4"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "all"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"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": "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"
|
||||
}]
|
||||
}],
|
||||
"50": [{
|
||||
"key": "chargeInfo",
|
||||
"name": "付费类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "all"
|
||||
}, {
|
||||
"n": "免费",
|
||||
"v": "b1"
|
||||
}, {
|
||||
"n": "vip",
|
||||
"v": "b2"
|
||||
}, {
|
||||
"n": "VIP用券",
|
||||
"v": "b3"
|
||||
}, {
|
||||
"n": "付费点播",
|
||||
"v": "b4"
|
||||
}]
|
||||
}, {
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最新",
|
||||
"v": "c1"
|
||||
}, {
|
||||
"n": "最热",
|
||||
"v": "c2"
|
||||
}, {
|
||||
"n": "知乎高分",
|
||||
"v": "c4"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "all"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"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": "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"
|
||||
}]
|
||||
}],
|
||||
"51": [{
|
||||
"key": "chargeInfo",
|
||||
"name": "付费类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "all"
|
||||
}, {
|
||||
"n": "免费",
|
||||
"v": "b1"
|
||||
}, {
|
||||
"n": "vip",
|
||||
"v": "b2"
|
||||
}, {
|
||||
"n": "VIP用券",
|
||||
"v": "b3"
|
||||
}, {
|
||||
"n": "付费点播",
|
||||
"v": "b4"
|
||||
}]
|
||||
}, {
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最新",
|
||||
"v": "c1"
|
||||
}, {
|
||||
"n": "最热",
|
||||
"v": "c2"
|
||||
}, {
|
||||
"n": "知乎高分",
|
||||
"v": "c4"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "all"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"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": "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"
|
||||
}]
|
||||
}],
|
||||
"115": [{
|
||||
"key": "chargeInfo",
|
||||
"name": "付费类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "all"
|
||||
}, {
|
||||
"n": "免费",
|
||||
"v": "b1"
|
||||
}, {
|
||||
"n": "vip",
|
||||
"v": "b2"
|
||||
}, {
|
||||
"n": "VIP用券",
|
||||
"v": "b3"
|
||||
}, {
|
||||
"n": "付费点播",
|
||||
"v": "b4"
|
||||
}]
|
||||
}, {
|
||||
"key": "sort",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最新",
|
||||
"v": "c1"
|
||||
}, {
|
||||
"n": "最热",
|
||||
"v": "c2"
|
||||
}, {
|
||||
"n": "知乎高分",
|
||||
"v": "c4"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "all"
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"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": "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"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
limit: 20,
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
try {
|
||||
let api = "" + input.split("?")[0];
|
||||
console.log(api);
|
||||
let response = fetch(api, {
|
||||
method: 'get',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
});
|
||||
let bata = JSON.parse(response);
|
||||
if (bata.url.includes("mgtv")) {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: bata.url,
|
||||
jx: 0,
|
||||
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
|
||||
};
|
||||
} else {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: input.split("?")[0],
|
||||
jx: 1,
|
||||
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
|
||||
};
|
||||
}
|
||||
} catch {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: input.split("?")[0],
|
||||
jx: 1,
|
||||
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
|
||||
};
|
||||
}
|
||||
}),
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
// lazy:'js:print(input);fetch_params.headers["user-agent"]=MOBILE_UA;let html=request(input);let rurl=html.match(/window\\.open\\(\'(.*?)\',/)[1];rurl=urlDeal(rurl);input={parse:1,url:rurl};',
|
||||
// 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
|
||||
一级: 'json:data.hitDocs;title;img;updateInfo||rightCorner.text;playPartId',
|
||||
// 一级:'json:data.hitDocs;title;img;updateInfo;playPartId',
|
||||
二级: $js.toString(() => {
|
||||
fetch_params.headers.Referer = "https://www.mgtv.com";
|
||||
fetch_params.headers["User-Agent"] = MOBILE_UA;
|
||||
pdfh = jsp.pdfh;
|
||||
pdfa = jsp.pdfa;
|
||||
pd = jsp.pd;
|
||||
VOD = {};
|
||||
let d = [];
|
||||
let html = request(input);
|
||||
let json = JSON.parse(html);
|
||||
let host = "https://www.mgtv.com";
|
||||
let ourl = json.data.list.length > 0 ? json.data.list[0].url : json.data.series[0].url;
|
||||
if (!/^http/.test(ourl)) {
|
||||
ourl = host + ourl
|
||||
}
|
||||
fetch_params.headers["User-Agent"] = MOBILE_UA;
|
||||
html = request(ourl);
|
||||
if (html.includes("window.location =")) {
|
||||
print("开始获取ourl");
|
||||
ourl = pdfh(html, "meta[http-equiv=refresh]&&content").split("url=")[1];
|
||||
print("获取到ourl:" + ourl);
|
||||
html = request(ourl)
|
||||
}
|
||||
try {
|
||||
let details = pdfh(html, ".m-details&&Html").replace(/h1>/, "h6>").replace(/div/g, "br");
|
||||
print(details);
|
||||
let actor = "",
|
||||
director = "",
|
||||
time = "";
|
||||
if (/播出时间/.test(details)) {
|
||||
actor = pdfh(html, "p:eq(5)&&Text").substr(0, 25);
|
||||
director = pdfh(html, "p:eq(4)&&Text");
|
||||
time = pdfh(html, "p:eq(3)&&Text")
|
||||
} else {
|
||||
actor = pdfh(html, "p:eq(4)&&Text").substr(0, 25);
|
||||
director = pdfh(html, "p:eq(3)&&Text");
|
||||
time = "已完结"
|
||||
}
|
||||
let _img = pd(html, ".video-img&&img&&src");
|
||||
let JJ = pdfh(html, ".desc&&Text").split("简介:")[1];
|
||||
let _desc = time;
|
||||
VOD.vod_name = pdfh(html, ".vt-txt&&Text");
|
||||
VOD.type_name = pdfh(html, "p:eq(0)&&Text").substr(0, 6);
|
||||
VOD.vod_area = pdfh(html, "p:eq(1)&&Text");
|
||||
VOD.vod_actor = actor;
|
||||
VOD.vod_director = director;
|
||||
VOD.vod_remarks = _desc;
|
||||
VOD.vod_pic = _img;
|
||||
VOD.vod_content = JJ;
|
||||
if (!VOD.vod_name) {
|
||||
VOD.vod_name = VOD.type_name;
|
||||
}
|
||||
} catch (e) {
|
||||
log("获取影片信息发生错误:" + e.message)
|
||||
}
|
||||
|
||||
function getRjpg(imgUrl, xs) {
|
||||
xs = xs || 3;
|
||||
let picSize = /jpg_/.test(imgUrl) ? imgUrl.split("jpg_")[1].split(".")[0] : false;
|
||||
let rjpg = false;
|
||||
if (picSize) {
|
||||
let a = parseInt(picSize.split("x")[0]) * xs;
|
||||
let b = parseInt(picSize.split("x")[1]) * xs;
|
||||
rjpg = a + "x" + b + ".jpg"
|
||||
}
|
||||
let img = /jpg_/.test(imgUrl) && rjpg ? imgUrl.replace(imgUrl.split("jpg_")[1], rjpg) : imgUrl;
|
||||
return img
|
||||
}
|
||||
|
||||
if (json.data.total === 1 && json.data.list.length === 1) {
|
||||
let data = json.data.list[0];
|
||||
let url = "https://www.mgtv.com" + data.url;
|
||||
d.push({
|
||||
title: data.t4,
|
||||
desc: data.t2,
|
||||
pic_url: getRjpg(data.img),
|
||||
url: url
|
||||
})
|
||||
} else if (json.data.list.length > 1) {
|
||||
for (let i = 1; i <= json.data.total_page; i++) {
|
||||
if (i > 1) {
|
||||
json = JSON.parse(fetch(input.replace("page=1", "page=" + i), {}))
|
||||
}
|
||||
json.data.list.forEach(function(data) {
|
||||
let url = "https://www.mgtv.com" + data.url;
|
||||
if (data.isIntact == "1") {
|
||||
d.push({
|
||||
title: data.t4,
|
||||
desc: data.t2,
|
||||
pic_url: getRjpg(data.img),
|
||||
url: url
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
} else {
|
||||
print(input + "暂无片源")
|
||||
}
|
||||
VOD.vod_play_from = "mgtv";
|
||||
VOD.vod_play_url = d.map(function(it) {
|
||||
return it.title + "$" + it.url
|
||||
}).join("#");
|
||||
setResult(d);
|
||||
}),
|
||||
|
||||
搜索: $js.toString(() => {
|
||||
fetch_params.headers.Referer = "https://www.mgtv.com";
|
||||
fetch_params.headers["User-Agent"] = MOBILE_UA;
|
||||
let d = [];
|
||||
let html = request(input);
|
||||
let json = JSON.parse(html);
|
||||
json.data.contents.forEach(function(data) {
|
||||
if (data.type && data.type == 'media') {
|
||||
let item = data.data[0];
|
||||
let desc = item.desc.join(',');
|
||||
let fyclass = '';
|
||||
if (item.source === "imgo") {
|
||||
let img = item.img ? item.img : '';
|
||||
try {
|
||||
fyclass = item.rpt.match(/idx=(.*?)&/)[1] + '$';
|
||||
} catch (e) {
|
||||
log(e.message);
|
||||
fyclass = '';
|
||||
}
|
||||
log(fyclass);
|
||||
d.push({
|
||||
title: item.title.replace(/<B>|<\/B>/g, ''),
|
||||
img: img,
|
||||
content: '',
|
||||
desc: desc,
|
||||
url: fyclass + item.url.match(/.*\/(.*?)\.html/)[1]
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
}
|
||||
+183
@@ -0,0 +1,183 @@
|
||||
globalThis.h_ost = 'http://v.lkuys.cn/';
|
||||
|
||||
globalThis.vodlist = function($t, $pg) {
|
||||
const currentTimestamp = parseInt(Date.now() / 1000, 10);
|
||||
const url = h_ost + '/v2/home/type_search';
|
||||
const hx = CryptoJS.MD5('kj5649ertj84ks89r4jh8s45hf84hjfds04k' + currentTimestamp).toString();
|
||||
let html = request(url, {
|
||||
body: {
|
||||
sign: hx,
|
||||
type_id: $t,
|
||||
page: $pg,
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp-okgo/jeasonlzy',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
return JSON.parse(html).data.list;
|
||||
}
|
||||
|
||||
globalThis.seach = function(wd) {
|
||||
const currentTimestamp = parseInt(Date.now() / 1000, 10);
|
||||
const url = h_ost + '/v2/home/search';
|
||||
const hx = CryptoJS.MD5('kj5649ertj84ks89r4jh8s45hf84hjfds04k' + currentTimestamp).toString();
|
||||
let html = request(url, {
|
||||
body: {
|
||||
sign: hx,
|
||||
keyword: wd,
|
||||
timestamp: currentTimestamp,
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp-okgo/jeasonlzy',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
return JSON.parse(html).data.list;
|
||||
}
|
||||
globalThis.vodids = function(ids) {
|
||||
const currentTimestamp = parseInt(Date.now() / 1000, 10);
|
||||
const url = h_ost + '/v2/home/vod_details';
|
||||
const hx = CryptoJS.MD5('kj5649ertj84ks89r4jh8s45hf84hjfds04k' + currentTimestamp).toString();
|
||||
let html = request(url, {
|
||||
body: {
|
||||
sign: hx,
|
||||
vod_id: ids,
|
||||
timestamp: currentTimestamp,
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp-okgo/jeasonlzy',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
const redata = JSON.parse(html);
|
||||
let vodPlayFrom = '';
|
||||
let vodPlayUrl = '';
|
||||
redata.data.vod_play_list.forEach((value, key) => {
|
||||
if (value.flag.includes("nby") || value.flag.includes("mgtv") || value.flag.includes("qq") || value.flag.includes("qiyi") || value.flag.includes("mgtv")) {
|
||||
vodPlayFrom += `${value.flag}$$$`;
|
||||
value.urls.forEach(url => {
|
||||
vodPlayUrl += `${url.name}$${value.parse_urls[0]}${url.url}~${url.name}#`;
|
||||
});
|
||||
vodPlayUrl += '$$$';
|
||||
}
|
||||
});
|
||||
const regeshi = {
|
||||
vod_id: redata.data.vod_id,
|
||||
vod_name: redata.data.vod_name,
|
||||
vod_remarks: `${redata.data.vod_remarks}`,
|
||||
type_name: redata.data.vod_class,
|
||||
vod_pic: redata.data.vod_pic,
|
||||
vod_year: redata.data.vod_year,
|
||||
vod_area: redata.data.vod_area,
|
||||
vod_actor: `${redata.data.vod_actor}`,
|
||||
vod_director: redata.data.vod_director,
|
||||
vod_content: `${redata.data.vod_content}`,
|
||||
vod_play_from: vodPlayFrom,
|
||||
vod_play_url: vodPlayUrl
|
||||
};
|
||||
return regeshi;
|
||||
}
|
||||
globalThis.jxx = function(input) {
|
||||
if ("741852963" !== '741852963') {
|
||||
return 'https://s0.mall.tcl.com/group1/M00/00/89/CvoGBGdcOPaAAUxvADwZniVV2bc476.mp4';
|
||||
}
|
||||
const parts = input.split('~');
|
||||
try {
|
||||
let response = fetch(parts[0], {
|
||||
method: 'get',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
});
|
||||
|
||||
if (response.includes("成功") || response.includes("success") || response.includes("nby")) {
|
||||
let bata = JSON.parse(response);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: bata.url,
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + VOD.vod_name + '&js=' + parts[1] + '&key=741852963'
|
||||
}
|
||||
} else {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: parts[0].includes('url=') ? parts[0].slice(parts[0].indexOf('url=') + 4) : null,
|
||||
jx: 1,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + VOD.vod_name + '&js=' + parts[1] + '&key=741852963'
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: '解析失败',
|
||||
jx: 0,
|
||||
}
|
||||
}
|
||||
return input;
|
||||
}
|
||||
|
||||
var rule = {
|
||||
title: '追剧',
|
||||
host: '',
|
||||
detailUrl: 'fyid',
|
||||
searchUrl: '**',
|
||||
url: 'fyclass',
|
||||
searchable: 2,
|
||||
quickSearch: 1,
|
||||
filterable: 0,
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&4&3',
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
input = jxx(input);
|
||||
}),
|
||||
推荐: $js.toString(() => {
|
||||
let bdata = vodlist(0, 1);
|
||||
console.log(bdata);
|
||||
bdata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
一级: $js.toString(() => {
|
||||
let bdata = vodlist(input, MY_PAGE);
|
||||
console.log(bdata);
|
||||
bdata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
二级: $js.toString(() => {
|
||||
console.log("调试信息2" + input);
|
||||
let data = vodids(input);
|
||||
//console.log(data);
|
||||
VOD = (data);
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let ddata = seach(input);
|
||||
ddata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
}
|
||||
@@ -171,14 +171,6 @@
|
||||
"api": "csp_AppGetGuard",
|
||||
"ext": "sHR2rlsfjI4L3t4RXQMkn97hxHYaEbu5lFfPUXOxEzpAZL11z+ayZEbLSb3vs/v8ZS0i6U3Oh/aCVpUdIeZzRgc5TQyB2k7aC0UwqxoW281lBnRyLoSPb+ejqJ92E4RYuH9BABywIr8NA9Bn0Ndnl5c+AJCGNVdUwDUcd6fmGzQoQ+VuzRpX5xfgCbnpjcTp56dL50nhDb7IIe7CtKv7pA=="
|
||||
},
|
||||
{
|
||||
"key": "csp_麻花",
|
||||
"name": "🍡麻花┃1080P",
|
||||
"type": 3,
|
||||
"quickSearch": 1,
|
||||
"api": "csp_AppGetGuard",
|
||||
"ext": "sHR2rlsfjI4L3t4RXQMkn8jwpFWwOFJQRZ9Fr6yGwRRCqiD1bGrSeoW6IrGUO30grfyJhbSLZgg2ZZgyF0VZ9+alOjmQh9fPtb/2RApEF90vSYLydgyDWtY6Dpcq4YPqd6L7gKNwcuZFUIdIug9TIgNtvkN0ZERsbizNEqCxbu2CFG37JY1JxRPFAFvr0U1azv1dn1ptVbioRuKFd+MCZgrKWR9SBcwgEuA+liBq4gsrxi0GIW3EJiTYKcqbj0vX"
|
||||
},
|
||||
{
|
||||
"key": "csp_良人",
|
||||
"name": "⚽️良人┃1080P",
|
||||
|
||||
+1744
-1610
File diff suppressed because it is too large.
Load diff
+180
-192
@@ -2,12 +2,12 @@
|
||||
"wallpaper": "https://xn--dkw0c.v.nxog.top/m//t/",
|
||||
"logo": "https://alicliimg.clewm.net/342/790/68790342/17369906896774bd3d1d8ba1877dea5d967a137aa23d91736990672.gif",
|
||||
"spider": "./spider.jar",
|
||||
"warningText": "公众号【光歌软件分享】测试完请删除,请勿演示贩卖,接口即将关闭。提示:\n📢接口软件永远免费 \n📢长期维护切勿贩卖",
|
||||
"warningText": "公众号【杰歌软件app】接口即将关闭,请勿演示贩卖提示:\n📢接口软件永远免费 \n📢长期维护切勿贩卖",
|
||||
"lives": [
|
||||
{
|
||||
"name": "公众号【光歌软件分享】测试完请删除,请勿演示贩卖,接口即将关闭。",
|
||||
"name": "公众号【杰歌软件app】接口即将关闭,请勿演示贩卖",
|
||||
"type": 0,
|
||||
"url": "./lives/公众号【光歌软件分享】测试完请删除,请勿演示贩卖,接口即将关闭。.txt",
|
||||
"url": "./lives/公众号【杰歌软件app】接口即将关闭,请勿演示贩卖.txt",
|
||||
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}"
|
||||
},
|
||||
{
|
||||
@@ -32,20 +32,20 @@
|
||||
"sites": [
|
||||
{
|
||||
"key": "豆瓣2",
|
||||
"name": "📢公众号【光歌软件分享】测试完请删除,请勿演示贩卖,接口即将关闭。",
|
||||
"name": "📢公众号【杰歌软件app】接口即将关闭,请勿演示贩卖",
|
||||
"type": 3,
|
||||
"api": "csp_Douban",
|
||||
"searchable": 0
|
||||
},
|
||||
{
|
||||
"key": "豆瓣1",
|
||||
"name": "📢公众号【光歌软件分享】测试完请删除,请勿演示贩卖,接口即将关闭。公告❤更新:3/7❤",
|
||||
"name": "📢公众号【杰歌软件app】接口即将关闭,请勿演示贩卖公告❤更新:3/11❤",
|
||||
"type": 3,
|
||||
"api": "csp_Notice",
|
||||
"searchable": 0,
|
||||
"changeable": 0,
|
||||
"jar": "./jars/豆瓣1.jar",
|
||||
"ext": "https://nxog.top/%E5%85%AC%E4%BC%97%E5%8F%B7%E6%AC%A7%E6%AD%8CAPP/ts/?b=公众号【光歌软件分享】测试完请删除,请勿演示贩卖,接口即将关闭。"
|
||||
"ext": "https://nxog.top/%E5%85%AC%E4%BC%97%E5%8F%B7%E6%AC%A7%E6%AD%8CAPP/ts/?b=公众号【杰歌软件app】接口即将关闭,请勿演示贩卖"
|
||||
},
|
||||
{
|
||||
"key": "欧歌弹幕",
|
||||
@@ -78,25 +78,36 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "欧歌夸快",
|
||||
"name": "🐲玩欧|夸快弹幕",
|
||||
"key": "csp_woog2",
|
||||
"name": "🐲玩歌┃夸快4K",
|
||||
"type": 3,
|
||||
"api": "csp_ogkk",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"api": "csp_woog",
|
||||
"changeable": 0,
|
||||
"searchable": 1,
|
||||
"filterable": 1,
|
||||
"jar": "./jars/csp_woog2.jar",
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"danmu": true
|
||||
"site_urls": [
|
||||
"https://ogkk.nxog.eu.org",
|
||||
"https://ogkk.xn--dkw.xn--6qq986b3xl"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "csp_欧歌123",
|
||||
"name": "🐲夸快┃配置",
|
||||
"type": 3,
|
||||
"api": "csp_Config",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"filterable": 1,
|
||||
"jar": "./jars/csp_欧歌123.jar"
|
||||
},
|
||||
{
|
||||
"key": "配置中心",
|
||||
"name": "❤配置|中心",
|
||||
"type": 3,
|
||||
"api": "csp_Configog",
|
||||
"api": "csp_Config",
|
||||
"searchable": 0,
|
||||
"changeable": 0,
|
||||
"indexs": 0,
|
||||
@@ -115,13 +126,6 @@
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "预告",
|
||||
"name": "💡新片|预告",
|
||||
"type": 3,
|
||||
"api": "csp_YGP",
|
||||
"searchable": 0
|
||||
},
|
||||
{
|
||||
"key": "韩小圈",
|
||||
"name": "💡韩小|影视",
|
||||
@@ -155,34 +159,6 @@
|
||||
"playerType": 2,
|
||||
"ext": "eaHR0cHM6Ly9kLmRjbW92aWUudG9w"
|
||||
},
|
||||
{
|
||||
"key": "耐看",
|
||||
"name": "💡耐看|影视",
|
||||
"type": 3,
|
||||
"api": "csp_WebNK",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "w7TClcONw6LDrsKYwoXCosKcwpvCrcKcw6HDrsKnwqDCo2rCqMKiw7HDsMOxYcKewpvClMOvw5fCqMOmw59VXFLCpMOiw6PCnMKzwpzCjuWGtemEmOaPleWRnMKf5Yem5L6Q5ZGxbeW+oeintui1tOa8ieetjMOXwpvDtw=="
|
||||
},
|
||||
{
|
||||
"key": "真心",
|
||||
"name": "💡真心|影视",
|
||||
"type": 3,
|
||||
"api": "csp_WebGZ",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "1905",
|
||||
"name": "💡1905|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Web1905",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0
|
||||
},
|
||||
{
|
||||
"key": "全网",
|
||||
"name": "💡全网|影视",
|
||||
@@ -220,16 +196,6 @@
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "奇优",
|
||||
"name": "💡奇优|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Qiyou",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "http://www.dyxz2.com/"
|
||||
},
|
||||
{
|
||||
"key": "米兔",
|
||||
"name": "💡米兔|影视",
|
||||
@@ -238,30 +204,6 @@
|
||||
"quickSearch": 1,
|
||||
"api": "csp_MiTuApp"
|
||||
},
|
||||
{
|
||||
"key": "永夜",
|
||||
"name": "💡永夜|影视",
|
||||
"type": 3,
|
||||
"api": "csp_QJMuou",
|
||||
"playerType": 2,
|
||||
"ext": "caHR0cDovL211b3UuNTZ1eGkuY29tfENvZmZlZTRLfDQuMS44"
|
||||
},
|
||||
{
|
||||
"key": "优质",
|
||||
"name": "💡优质|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Xdai",
|
||||
"playerType": 1,
|
||||
"ext": "jaHR0cDovL2R5eXp0dmFwcGFwaWdvb2RneC42OC5neS9jaXdrMjh2dTM4aW84L2FwaXVybC50eHR8ZHl5enR2YXBpYXBweXlkc3xkeXl6dHZhcGlhcHB5eWRzfDEwMA=="
|
||||
},
|
||||
{
|
||||
"key": "木叶",
|
||||
"name": "💡木叶|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Xdai",
|
||||
"playerType": 2,
|
||||
"ext": "saHR0cDovL2hvc3QueXl5cy5uZXdzLzI1MDEyMy50eHR8UnVOOUxSdndUUmdwUW5wS3xSdU45TFJ2d1RSZ3BRbnBLfDU0Ng=="
|
||||
},
|
||||
{
|
||||
"key": "洽洽影视",
|
||||
"name": "💡洽洽|影视",
|
||||
@@ -298,6 +240,46 @@
|
||||
"filterable": 1,
|
||||
"ext": "KhY021WelCEl+6MsvwnzaPusskysEhxc/i3d/FHwReBTtZTeDEVZJbQKKez3K+OxlrjAIMdUpAUxP8fGystYn0Hss098UFVR69Qm2ARgmeZN86q8Ww=="
|
||||
},
|
||||
{
|
||||
"key": "二三",
|
||||
"name": "💡二三|影视",
|
||||
"type": 3,
|
||||
"api": "csp_QJMuou",
|
||||
"playerType": 2,
|
||||
"ext": "caHR0cHM6Ly8xMjN5c3cuY29tfDIz5b2x6KeGfDQuMS44"
|
||||
},
|
||||
{
|
||||
"key": "时常",
|
||||
"name": "💡时常|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Xdai",
|
||||
"playerType": 1,
|
||||
"ext": "jaHR0cHM6Ly9zYzEwODAudG9wfGU1OWQ0NGIyZWVmMDNiYTJ8ZTU5ZDQ0YjJlZWYwM2JhMnwxMzQ="
|
||||
},
|
||||
{
|
||||
"key": "现代",
|
||||
"name": "💡现代|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Xdai",
|
||||
"playerType": 1,
|
||||
"ext": "caHR0cHM6Ly94ZHlzLnZpcC9nZXRhcHAudHh0fHN6ZGp3ZGFwcHdjbm1kaGJ8c3pkandkYXBwd2NubWRoYnwxMTQ="
|
||||
},
|
||||
{
|
||||
"key": "来看影视",
|
||||
"name": "💡来看|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Lkdy",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "预告",
|
||||
"name": "💡新片|预告",
|
||||
"type": 3,
|
||||
"api": "csp_YGP",
|
||||
"searchable": 0
|
||||
},
|
||||
{
|
||||
"key": "厂长弹幕",
|
||||
"name": "💘厂长|弹幕",
|
||||
@@ -1152,6 +1134,119 @@
|
||||
"filterable": 0,
|
||||
"ext": "KhY021WelCEl+6MsvwnzaPussky/EAoc9z7C4keyHaEQ+sKbXhMKd83VjTL7Ls6+m7XDIcGdziOxPv79y/h4QCvmOEJmZ1VD6dopzAVxkFzEFw=="
|
||||
},
|
||||
{
|
||||
"key": "夸克多多弹幕",
|
||||
"name": "❤多多|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_Wobg",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"site": "https://duoduo.banye.tech:7086",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克蜡笔弹幕",
|
||||
"name": "❤蜡笔|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_Wobg",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"site": "https://labi.banye.tech:7086",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克至臻弹幕",
|
||||
"name": "❤至臻|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_Wobg",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"site": "https://zhizhen.banye.tech:7086",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克木偶弹幕",
|
||||
"name": "❤木偶|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_Wobg",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"site": "https://mogg.banye.tech:7086",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克六趣弹幕",
|
||||
"name": "❤六趣|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_Wobg",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"site": "https://liuqu.banye.tech:7086",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克下饭弹幕",
|
||||
"name": "❤下饭|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_Wobg",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"site": "https://xiafan.banye.tech:7086",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克二小弹幕",
|
||||
"name": "❤二小|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_Wobg",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"site": "https://enxiao.banye.tech:7086",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "玩偶弹幕",
|
||||
"name": "❤玩偶|4K弹幕",
|
||||
@@ -1168,113 +1263,6 @@
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克闪电弹幕",
|
||||
"name": "❤闪电|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_ShanDian",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克多多弹幕",
|
||||
"name": "❤多多|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_DuoDuo",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克蜡笔弹幕",
|
||||
"name": "❤蜡笔|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_Labi",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克至臻弹幕",
|
||||
"name": "❤至臻|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_ZhiZhen",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克六趣弹幕",
|
||||
"name": "❤六趣|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_LiuQu",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克下饭弹幕",
|
||||
"name": "❤下饭|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_XiaFan",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "校长弹幕",
|
||||
"name": "❤校长|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_XiaoZhang",
|
||||
"searchable": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "push_agent",
|
||||
"name": "📢手机|推送",
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
/***
|
||||
* gbk编码解码函数
|
||||
* strTool = gbkTool() strTool.encode(key)
|
||||
* @returns {{encode: (function(*): *), decode: (function(*): *)}}
|
||||
*/
|
||||
export function gbkTool(){
|
||||
var data=function(zipData){
|
||||
var re=zipData
|
||||
.replace(/#(\d+)\$/g,function(a,b){
|
||||
return Array(+b+3).join('#');
|
||||
})
|
||||
.replace(/#/g,'####')
|
||||
.replace(/(\w\w):([\w#]+)(?:,|$)/g,function(a,hd,dt){
|
||||
return dt.replace(/../g,function(a){
|
||||
if(a!='##'){
|
||||
return hd+a;
|
||||
}else{
|
||||
return a;
|
||||
}
|
||||
});
|
||||
});
|
||||
return re;
|
||||
}('4e:020405060f12171f20212326292e2f313335373c40414244464a5155575a5b6263646567686a6b6c6d6e6f727475767778797a7b7c7d7f808182838485878a#909697999c9d9ea3aaafb0b1b4b6b7b8b9bcbdbec8cccfd0d2dadbdce0e2e6e7e9edeeeff1f4f8f9fafcfe,4f:00020304050607080b0c12131415161c1d212328292c2d2e31333537393b3e3f40414244454748494a4b4c525456616266686a6b6d6e7172757778797a7d8081828586878a8c8e909293959698999a9c9e9fa1a2a4abadb0b1b2b3b4b6b7b8b9babbbcbdbec0c1c2c6c7c8c9cbcccdd2d3d4d5d6d9dbe0e2e4e5e7ebecf0f2f4f5f6f7f9fbfcfdff,50:000102030405060708090a#0b0e1011131516171b1d1e20222324272b2f303132333435363738393b3d3f404142444546494a4b4d5051525354565758595b5d5e5f6061626364666768696a6b6d6e6f70717273747578797a7c7d818283848687898a8b8c8e8f909192939495969798999a9b9c9d9e9fa0a1a2a4a6aaabadaeafb0b1b3b4b5b6b7b8b9bcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdced0d1d2d3d4d5d7d8d9dbdcdddedfe0e1e2e3e4e5e8e9eaebeff0f1f2f4f6f7f8f9fafcfdfeff,51:00010203040508#090a0c0d0e0f1011131415161718191a1b1c1d1e1f2022232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e42474a4c4e4f5052535758595b5d5e5f606163646667696a6f727a7e7f838486878a8b8e8f90919394989a9d9e9fa1a3a6a7a8a9aaadaeb4b8b9babebfc1c2c3c5c8cacdced0d2d3d4d5d6d7d8d9dadcdedfe2e3e5e6e7e8e9eaeceef1f2f4f7fe,52:0405090b0c0f101314151c1e1f2122232526272a2c2f313234353c3e4445464748494b4e4f5253555758#595a5b5d5f6062636466686b6c6d6e7071737475767778797a7b7c7e808384858687898a8b8c8d8e8f91929495969798999a9ca4a5a6a7aeafb0b4b5b6b7b8b9babbbcbdc0c1c2c4c5c6c8cacccdcecfd1d3d4d5d7d9dadbdcdddee0e1e2e3e5e6e7e8e9eaebecedeeeff1f2f3f4f5f6f7f8fbfcfd,53:0102030407090a0b0c0e11121314181b1c1e1f2224252728292b2c2d2f3031323334353637383c3d404244464b4c4d505458595b5d65686a6c6d7276797b7c7d7e80818387888a8e8f#90919293949697999b9c9ea0a1a4a7aaabacadafb0b1b2b3b4b5b7b8b9babcbdbec0c3c4c5c6c7cecfd0d2d3d5dadcdddee1e2e7f4fafeff,54:000205070b1418191a1c2224252a303336373a3d3f4142444547494c4d4e4f515a5d5e5f6061636567696a6b6c6d6e6f7074797a7e7f8183858788898a8d919397989c9e9fa0a1a2a5aeb0b2b5b6b7b9babcbec3c5cacbd6d8dbe0e1e2e3e4ebeceff0f1f4f5f6f7f8f9fbfe,55:0002030405080a0b0c0d0e121315161718191a1c1d1e1f212526#28292b2d3234353638393a3b3d40424547484b4c4d4e4f515253545758595a5b5d5e5f60626368696b6f7071727374797a7d7f85868c8d8e9092939596979a9b9ea0a1a2a3a4a5a6a8a9aaabacadaeafb0b2b4b6b8babcbfc0c1c2c3c6c7c8cacbcecfd0d5d7d8d9dadbdee0e2e7e9edeef0f1f4f6f8f9fafbfcff,56:0203040506070a0b0d1011121314151617191a1c1d202122252628292a2b2e2f30333537383a3c3d3e404142434445464748494a4b4f5051525355565a5b5d5e5f6061#636566676d6e6f70727374757778797a7d7e7f80818283848788898a8b8c8d9091929495969798999a9b9c9d9e9fa0a1a2a4a5a6a7a8a9aaabacadaeb0b1b2b3b4b5b6b8b9babbbdbebfc0c1c2c3c4c5c6c7c8c9cbcccdcecfd0d1d2d3d5d6d8d9dce3e5e6e7e8e9eaeceeeff2f3f6f7f8fbfc,57:00010205070b0c0d0e0f101112131415161718191a1b1d1e202122242526272b313234353637383c3d3f414344454648494b52535455565859626365676c6e707172747578797a7d7e7f80#818788898a8d8e8f90919495969798999a9c9d9e9fa5a8aaacafb0b1b3b5b6b7b9babbbcbdbebfc0c1c4c5c6c7c8c9cacccdd0d1d3d6d7dbdcdee1e2e3e5e6e7e8e9eaebeceef0f1f2f3f5f6f7fbfcfeff,58:0103040508090a0c0e0f101213141617181a1b1c1d1f222325262728292b2c2d2e2f31323334363738393a3b3c3d3e3f4041424345464748494a4b4e4f505253555657595a5b5c5d5f6061626364666768696a6d6e6f707172737475767778797a7b7c7d7f82848687888a8b8c#8d8e8f909194959697989b9c9da0a1a2a3a4a5a6a7aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbdbebfc0c2c3c4c6c7c8c9cacbcccdcecfd0d2d3d4d6d7d8d9dadbdcdddedfe0e1e2e3e5e6e7e8e9eaedeff1f2f4f5f7f8fafbfcfdfeff,59:000103050608090a0b0c0e1011121317181b1d1e2021222326282c30323335363b3d3e3f404345464a4c4d505253595b5c5d5e5f616364666768696a6b6c6d6e6f70717275777a7b7c7e7f8085898b8c8e8f90919495989a9b9c9d9fa0a1a2a6#a7acadb0b1b3b4b5b6b7b8babcbdbfc0c1c2c3c4c5c7c8c9cccdcecfd5d6d9dbdedfe0e1e2e4e6e7e9eaebedeeeff0f1f2f3f4f5f6f7f8fafcfdfe,5a:00020a0b0d0e0f101214151617191a1b1d1e2122242627282a2b2c2d2e2f3033353738393a3b3d3e3f414243444547484b4c4d4e4f5051525354565758595b5c5d5e5f60616364656668696b6c6d6e6f7071727378797b7c7d7e808182838485868788898a8b8c8d8e8f9091939495969798999c9d9e9fa0a1a2a3a4a5a6a7a8a9abac#adaeafb0b1b4b6b7b9babbbcbdbfc0c3c4c5c6c7c8cacbcdcecfd0d1d3d5d7d9dadbdddedfe2e4e5e7e8eaecedeeeff0f2f3f4f5f6f7f8f9fafbfcfdfeff,5b:0001020304050607080a0b0c0d0e0f10111213141518191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303133353638393a3b3c3d3e3f4142434445464748494a4b4c4d4e4f52565e606167686b6d6e6f7274767778797b7c7e7f82868a8d8e90919294969fa7a8a9acadaeafb1b2b7babbbcc0c1c3c8c9cacbcdcecf#d1d4d5d6d7d8d9dadbdce0e2e3e6e7e9eaebecedeff1f2f3f4f5f6f7fdfe,5c:0002030507080b0c0d0e10121317191b1e1f2021232628292a2b2d2e2f303233353637434446474c4d5253545657585a5b5c5d5f62646768696a6b6c6d70727374757677787b7c7d7e808384858687898a8b8e8f9293959d9e9fa0a1a4a5a6a7a8aaaeafb0b2b4b6b9babbbcbec0c2c3c5c6c7c8c9cacccdcecfd0d1d3d4d5d6d7d8dadbdcdddedfe0e2e3e7e9ebeceeeff1f2f3f4f5f6f7f8f9fafcfdfeff,5d:00#01040508090a0b0c0d0f10111213151718191a1c1d1f2021222325282a2b2c2f3031323335363738393a3b3c3f4041424344454648494d4e4f5051525354555657595a5c5e5f6061626364656667686a6d6e7071727375767778797a7b7c7d7e7f8081838485868788898a8b8c8d8e8f90Line truncated
|
||||
U2Ghash={},
|
||||
G2Uhash={};
|
||||
!function(data){
|
||||
var k=0;
|
||||
data=data.match(/..../g);
|
||||
for(var i=0x81;i<=0xfe;i++){
|
||||
for(var j=0x40;j<=0xFE;j++){
|
||||
U2Ghash[data[k++]]=('%'+i.toString(16)+'%'+j.toString(16))
|
||||
.toUpperCase();
|
||||
}
|
||||
}
|
||||
for(var key in U2Ghash){
|
||||
G2Uhash[U2Ghash[key]]=key;
|
||||
}
|
||||
}(data);
|
||||
function isAscii(unicode) {
|
||||
return ((unicode == 0x20AC) || (unicode <= 0x007F && unicode >= 0x0000));
|
||||
}
|
||||
return{
|
||||
encode:function(str){
|
||||
return str.replace(/./g,function(a){
|
||||
var code=a.charCodeAt(0);
|
||||
if(isAscii(code)){
|
||||
return encodeURIComponent(a);
|
||||
}else{
|
||||
var key=code.toString(16);
|
||||
if(key.length!=4)key=('000'+key).match(/....$/)[0];
|
||||
return U2Ghash[key]||a;
|
||||
}
|
||||
});
|
||||
},
|
||||
decode:function(str){
|
||||
return str.replace(/%[0-9A-F]{2}%[0-9A-F]{2}/g,function(a){
|
||||
if(a in G2Uhash){
|
||||
return String.fromCharCode('0x'+G2Uhash[a]);
|
||||
}else{
|
||||
return a;
|
||||
}
|
||||
}).replace(/%[\w]{2}/g,function(a){
|
||||
return decodeURIComponent(a);
|
||||
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
-577
@@ -1,577 +0,0 @@
|
||||
/*!
|
||||
* 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}));
|
||||
@@ -1,265 +0,0 @@
|
||||
/*
|
||||
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
|
||||
* This devtool is neither made for production nor for readable output files.
|
||||
* It uses "eval()" calls to create a separate source file in the browser devtools.
|
||||
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
||||
* or disable the default devtool with "devtool: false".
|
||||
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
||||
*/
|
||||
(function webpackUniversalModuleDefinition(root, factory) {
|
||||
if (typeof exports === 'object' && typeof module === 'object') {
|
||||
// CommonJS
|
||||
module.exports = exports = factory();
|
||||
} else if (typeof define === 'function' && define.amd) {
|
||||
// AMD
|
||||
define([], factory);
|
||||
} else {
|
||||
// Global (browser)
|
||||
globalThis.JSEncrypt = factory();
|
||||
}
|
||||
})(this, () => {
|
||||
return /******/ (() => { // webpackBootstrap
|
||||
/******/ var __webpack_modules__ = ({
|
||||
|
||||
/***/ "./lib/JSEncrypt.js":
|
||||
/*!**************************!*\
|
||||
!*** ./lib/JSEncrypt.js ***!
|
||||
\**************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncrypt\": () => (/* binding */ JSEncrypt)\n/* harmony export */ });\n/* harmony import */ var _lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/jsbn/base64 */ \"./lib/lib/jsbn/base64.js\");\n/* harmony import */ var _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./JSEncryptRSAKey */ \"./lib/JSEncryptRSAKey.js\");\n/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \"./node_modules/process/browser.js\");\nvar _a;\n\n\nvar version = typeof process !== 'undefined'\n ? (_a = process.env) === null || _a === void 0 ? void 0 : \"3.3.2\"\n : undefined;\n/**\n *\n * @param {Object} [options = {}] - An object to customize JSEncrypt behaviour\n * possible parameters are:\n * - default_key_size {number} default: 1024 the key size in bit\n * - default_public_exponent {string} default: '010001' the hexadecimal representation of the public exponent\n * - log {boolean} default: false whether log warn/error or not\n * @constructor\n */\nvar JSEncrypt = /** @class */ (function () {\n function JSEncrypt(options) {\n if (options === void 0) { options = {}; }\n options = options || {};\n this.default_key_size = options.default_key_size\n ? parseInt(options.default_key_size, 10)\n : 1024;\n this.default_public_exponent = options.default_public_exponent || \"010001\"; // 65537 default openssl public exponent for rsa key type\n this.log = options.log || false;\n // The private and public key.\n this.key = null;\n }\n /**\n * Method to set the rsa key parameter (one method is enough to set both the public\n * and the private key, since the private key contains the public key paramenters)\n * Log a warning if logs are enabled\n * @param {Object|string} key the pem encoded string or an object (with or without header/footer)\n * @public\n */\n JSEncrypt.prototype.setKey = function (key) {\n if (this.log && this.key) {\n console.warn(\"A key was already set, overriding existing.\");\n }\n this.key = new _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__.JSEncryptRSAKey(key);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPrivateKey = function (privkey) {\n // Create the key.\n this.setKey(privkey);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPublicKey = function (pubkey) {\n // Sets the public key.\n this.setKey(pubkey);\n };\n /**\n * Proxy method for RSAKey object's decrypt, decrypt the string using the private\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str base64 encoded crypted string to decrypt\n * @return {string} the decrypted string\n * @public\n */\n JSEncrypt.prototype.decrypt = function (str) {\n // Return the decrypted string.\n try {\n return this.getKey().decrypt((0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.b64tohex)(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's encrypt, encrypt the string using the public\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str the string to encrypt\n * @return {string} the encrypted string encoded in base64\n * @public\n */\n JSEncrypt.prototype.encrypt = function (str) {\n // Return the encrypted string.\n try {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getKey().encrypt(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's sign.\n * @param {string} str the string to sign\n * @param {function} digestMethod hash method\n * @param {string} digestName the name of the hash algorithm\n * @return {string} the signature encoded in base64\n * @public\n */\n JSEncrypt.prototype.sign = function (str, digestMethod, digestName) {\n // return the RSA signature of 'str' in 'hex' format.\n try {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getKey().sign(str, digestMethod, digestName));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy
Line truncated
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/JSEncryptRSAKey.js":
|
||||
/*!********************************!*\
|
||||
!*** ./lib/JSEncryptRSAKey.js ***!
|
||||
\********************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncryptRSAKey\": () => (/* binding */ JSEncryptRSAKey)\n/* harmony export */ });\n/* harmony import */ var _lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/jsbn/base64 */ \"./lib/lib/jsbn/base64.js\");\n/* harmony import */ var _lib_asn1js_hex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/asn1js/hex */ \"./lib/lib/asn1js/hex.js\");\n/* harmony import */ var _lib_asn1js_base64__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/asn1js/base64 */ \"./lib/lib/asn1js/base64.js\");\n/* harmony import */ var _lib_asn1js_asn1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/asn1js/asn1 */ \"./lib/lib/asn1js/asn1.js\");\n/* harmony import */ var _lib_jsbn_rsa__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/jsbn/rsa */ \"./lib/lib/jsbn/rsa.js\");\n/* harmony import */ var _lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/jsbn/jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/jsrsasign/asn1-1.0 */ \"./lib/lib/jsrsasign/asn1-1.0.js\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\n\n\n/**\n * Create a new JSEncryptRSAKey that extends Tom Wu's RSA key object.\n * This object is just a decorator for parsing the key parameter\n * @param {string|Object} key - The key in string format, or an object containing\n * the parameters needed to build a RSAKey object.\n * @constructor\n */\nvar JSEncryptRSAKey = /** @class */ (function (_super) {\n __extends(JSEncryptRSAKey, _super);\n function JSEncryptRSAKey(key) {\n var _this = _super.call(this) || this;\n // Call the super constructor.\n // RSAKey.call(this);\n // If a key key was provided.\n if (key) {\n // If this is a string...\n if (typeof key === \"string\") {\n _this.parseKey(key);\n }\n else if (JSEncryptRSAKey.hasPrivateKeyProperty(key) ||\n JSEncryptRSAKey.hasPublicKeyProperty(key)) {\n // Set the values for the key.\n _this.parsePropertiesFrom(key);\n }\n }\n return _this;\n }\n /**\n * Method to parse a pem encoded string containing both a public or private key.\n * The method will translate the pem encoded string in a der encoded string and\n * will parse private key and public key parameters. This method accepts public key\n * in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1).\n *\n * @todo Check how many rsa formats use the same format of pkcs #1.\n *\n * The format is defined as:\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * it's possible to examine the structure of the keys obtained from openssl using\n * an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/\n * @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer\n * @private\n */\n JSEncryptRSAKey.prototype.parseKey = function (pem) {\n try {\n var modulus = 0;\n var public_exponent = 0;\n var reHex = /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/;\n var der = reHex.test(pem) ? _lib_asn1js_hex__WEBPACK_IMPORTED_MODULE_1__.Hex.decode(pem) : _lib_asn1js_base64__WEBPACK_IMPORTED_MODULE_2__.Base64.unarmor(pem);\n var asn1 = _lib_asn1js_asn1__WEBPACK_IMPORTED_MODULE_3__.ASN1.decode(der);\n // Fixes a bug with OpenSSL 1.0+ private keys\n
Line truncated
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/index.js":
|
||||
/*!**********************!*\
|
||||
!*** ./lib/index.js ***!
|
||||
\**********************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncrypt\": () => (/* reexport safe */ _JSEncrypt__WEBPACK_IMPORTED_MODULE_0__.JSEncrypt),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _JSEncrypt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./JSEncrypt */ \"./lib/JSEncrypt.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_JSEncrypt__WEBPACK_IMPORTED_MODULE_0__.JSEncrypt);\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/index.js?");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/lib/asn1js/asn1.js":
|
||||
/*!********************************!*\
|
||||
!*** ./lib/lib/asn1js/asn1.js ***!
|
||||
\********************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ASN1\": () => (/* binding */ ASN1),\n/* harmony export */ \"ASN1Tag\": () => (/* binding */ ASN1Tag),\n/* harmony export */ \"Stream\": () => (/* binding */ Stream)\n/* harmony export */ });\n/* harmony import */ var _int10__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./int10 */ \"./lib/lib/asn1js/int10.js\");\n// ASN.1 JavaScript decoder\n// Copyright (c) 2008-2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\n/*global oids */\n\nvar ellipsis = \"\\u2026\";\nvar reTimeS = /^(\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nvar reTimeL = /^(\\d\\d\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nfunction stringCut(str, len) {\n if (str.length > len) {\n str = str.substring(0, len) + ellipsis;\n }\n return str;\n}\nvar Stream = /** @class */ (function () {\n function Stream(enc, pos) {\n this.hexDigits = \"0123456789ABCDEF\";\n if (enc instanceof Stream) {\n this.enc = enc.enc;\n this.pos = enc.pos;\n }\n else {\n // enc should be an array or a binary string\n this.enc = enc;\n this.pos = pos;\n }\n }\n Stream.prototype.get = function (pos) {\n if (pos === undefined) {\n pos = this.pos++;\n }\n if (pos >= this.enc.length) {\n throw new Error(\"Requesting byte offset \".concat(pos, \" on a stream of length \").concat(this.enc.length));\n }\n return (\"string\" === typeof this.enc) ? this.enc.charCodeAt(pos) : this.enc[pos];\n };\n Stream.prototype.hexByte = function (b) {\n return this.hexDigits.charAt((b >> 4) & 0xF) + this.hexDigits.charAt(b & 0xF);\n };\n Stream.prototype.hexDump = function (start, end, raw) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n if (raw !== true) {\n switch (i & 0xF) {\n case 0x7:\n s += \" \";\n break;\n case 0xF:\n s += \"\\n\";\n break;\n default:\n s += \" \";\n }\n }\n }\n return s;\n };\n Stream.prototype.isASCII = function (start, end) {\n for (var i = start; i < end; ++i) {\n var c = this.get(i);\n if (c < 32 || c > 176) {\n return false;\n }\n }\n return true;\n };\n Stream.prototype.parseStringISO = function (start, end) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += String.fromCharCode(this.get(i));\n }\n return s;\n };\n Stream.prototype.parseStringUTF = function (start, end) {\n var s = \"\";\n for (var i = start; i < end;) {\n var c = this.get(i++);\n if (c < 128) {\n s += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n s += String.fromCharCode(((c & 0x1F) << 6) | (this.get(i++) & 0x3F));\n }\n else {\n s += String.fromCharCode(((c & 0x0F) << 12) | ((this.get(i++) & 0x3F) << 6) | (this.get(i++) & 0x3F));\n }\n }\n return s;\n };\n Stream.prototype.parseStringBMP = function (start, end) {\n var str = \"\";\n var hi;\n var lo;\n for (var i = start; i < end;) {\n hi = this.get(i++);\n lo = this.get(i++);\n str += String.fromCharCode((hi << 8) | lo);\n }\n return str;\n };\n Stream.prototype.parseTime = function (start, end, shortYear) {\n var s = this.parseStringISO(start, end);\n var m = (shortYear ? reTimeS : rLine truncated
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/lib/asn1js/base64.js":
|
||||
/*!**********************************!*\
|
||||
!*** ./lib/lib/asn1js/base64.js ***!
|
||||
\**********************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Base64\": () => (/* binding */ Base64)\n/* harmony export */ });\n// Base64 JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Base64 = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var ignore = \"= \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = Object.create(null);\n for (i = 0; i < 64; ++i) {\n decoder[b64.charAt(i)] = i;\n }\n decoder['-'] = 62; //+\n decoder['_'] = 63; //-\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 4) {\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n out[out.length] = bits & 0xFF;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 6;\n }\n }\n switch (char_count) {\n case 1:\n throw new Error(\"Base64 encoding incomplete: at least 2 bits missing\");\n case 2:\n out[out.length] = (bits >> 10);\n break;\n case 3:\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n break;\n }\n return out;\n },\n re: /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/,\n unarmor: function (a) {\n var m = Base64.re.exec(a);\n if (m) {\n if (m[1]) {\n a = m[1];\n }\n else if (m[2]) {\n a = m[2];\n }\n else {\n throw new Error(\"RegExp out of sync\");\n }\n }\n return Base64.decode(a);\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/base64.js?");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/lib/asn1js/hex.js":
|
||||
/*!*******************************!*\
|
||||
!*** ./lib/lib/asn1js/hex.js ***!
|
||||
\*******************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Hex\": () => (/* binding */ Hex)\n/* harmony export */ });\n// Hex JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Hex = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var hex = \"0123456789ABCDEF\";\n var ignore = \" \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = {};\n for (i = 0; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n hex = hex.toLowerCase();\n for (i = 10; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 2) {\n out[out.length] = bits;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 4;\n }\n }\n if (char_count) {\n throw new Error(\"Hex encoding incomplete: 4 bits missing\");\n }\n return out;\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/hex.js?");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/lib/asn1js/int10.js":
|
||||
/*!*********************************!*\
|
||||
!*** ./lib/lib/asn1js/int10.js ***!
|
||||
\*********************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Int10\": () => (/* binding */ Int10)\n/* harmony export */ });\n// Big integer base-10 printing library\n// Copyright (c) 2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar max = 10000000000000; // biggest integer that can still fit 2^53 when multiplied by 256\nvar Int10 = /** @class */ (function () {\n function Int10(value) {\n this.buf = [+value || 0];\n }\n Int10.prototype.mulAdd = function (m, c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] * m + c;\n if (t < max) {\n c = 0;\n }\n else {\n c = 0 | (t / max);\n t -= c * max;\n }\n b[i] = t;\n }\n if (c > 0) {\n b[i] = c;\n }\n };\n Int10.prototype.sub = function (c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] - c;\n if (t < 0) {\n t += max;\n c = 1;\n }\n else {\n c = 0;\n }\n b[i] = t;\n }\n while (b[b.length - 1] === 0) {\n b.pop();\n }\n };\n Int10.prototype.toString = function (base) {\n if ((base || 10) != 10) {\n throw new Error(\"only base 10 is supported\");\n }\n var b = this.buf;\n var s = b[b.length - 1].toString();\n for (var i = b.length - 2; i >= 0; --i) {\n s += (max + b[i]).toString().substring(1);\n }\n return s;\n };\n Int10.prototype.valueOf = function () {\n var b = this.buf;\n var v = 0;\n for (var i = b.length - 1; i >= 0; --i) {\n v = v * max + b[i];\n }\n return v;\n };\n Int10.prototype.simplify = function () {\n var b = this.buf;\n return (b.length == 1) ? b[0] : this;\n };\n return Int10;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/int10.js?");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/lib/jsbn/base64.js":
|
||||
/*!********************************!*\
|
||||
!*** ./lib/lib/jsbn/base64.js ***!
|
||||
\********************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"b64toBA\": () => (/* binding */ b64toBA),\n/* harmony export */ \"b64tohex\": () => (/* binding */ b64tohex),\n/* harmony export */ \"hex2b64\": () => (/* binding */ hex2b64)\n/* harmony export */ });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./lib/lib/jsbn/util.js\");\n\nvar b64map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar b64pad = \"=\";\nfunction hex2b64(h) {\n var i;\n var c;\n var ret = \"\";\n for (i = 0; i + 3 <= h.length; i += 3) {\n c = parseInt(h.substring(i, i + 3), 16);\n ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);\n }\n if (i + 1 == h.length) {\n c = parseInt(h.substring(i, i + 1), 16);\n ret += b64map.charAt(c << 2);\n }\n else if (i + 2 == h.length) {\n c = parseInt(h.substring(i, i + 2), 16);\n ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);\n }\n while ((ret.length & 3) > 0) {\n ret += b64pad;\n }\n return ret;\n}\n// convert a base64 string to hex\nfunction b64tohex(s) {\n var ret = \"\";\n var i;\n var k = 0; // b64 state, 0-3\n var slop = 0;\n for (i = 0; i < s.length; ++i) {\n if (s.charAt(i) == b64pad) {\n break;\n }\n var v = b64map.indexOf(s.charAt(i));\n if (v < 0) {\n continue;\n }\n if (k == 0) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v >> 2);\n slop = v & 3;\n k = 1;\n }\n else if (k == 1) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)((slop << 2) | (v >> 4));\n slop = v & 0xf;\n k = 2;\n }\n else if (k == 2) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(slop);\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v >> 2);\n slop = v & 3;\n k = 3;\n }\n else {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)((slop << 2) | (v >> 4));\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v & 0xf);\n k = 0;\n }\n }\n if (k == 1) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(slop << 2);\n }\n return ret;\n}\n// convert a base64 string to a byte/number array\nfunction b64toBA(s) {\n // piggyback on b64tohex for now, optimize later\n var h = b64tohex(s);\n var i;\n var a = [];\n for (i = 0; 2 * i < h.length; ++i) {\n a[i] = parseInt(h.substring(2 * i, 2 * i + 2), 16);\n }\n return a;\n}\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/base64.js?");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/lib/jsbn/jsbn.js":
|
||||
/*!******************************!*\
|
||||
!*** ./lib/lib/jsbn/jsbn.js ***!
|
||||
\******************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BigInteger\": () => (/* binding */ BigInteger),\n/* harmony export */ \"intAt\": () => (/* binding */ intAt),\n/* harmony export */ \"nbi\": () => (/* binding */ nbi),\n/* harmony export */ \"nbits\": () => (/* binding */ nbits),\n/* harmony export */ \"nbv\": () => (/* binding */ nbv),\n/* harmony export */ \"parseBigInt\": () => (/* binding */ parseBigInt)\n/* harmony export */ });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./lib/lib/jsbn/util.js\");\n// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n// Basic JavaScript BN library - subset useful for RSA encryption.\n\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary & 0xffffff) == 0xefcafe);\n//#region\nvar lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1];\n//#endregion\n// (public) Constructor\nvar BigInteger = /** @class */ (function () {\n function BigInteger(a, b, c) {\n if (a != null) {\n if (\"number\" == typeof a) {\n this.fromNumber(a, b, c);\n }\n else if (b == null && \"string\" != typeof a) {\n this.fromString(a, 256);\n }\n else {\n this.fromString(a, b);\n }\n }\n }\n //#region PUBLIC\n // BigInteger.prototype.toString = bnToString;\n // (public) return string representation in given radix\n BigInteger.prototype.toString = function (b) {\n if (this.s < 0) {\n return \"-\" + this.negate().toString(b);\n }\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n return this.toRadix(b);\n }\n var km = (1 << k) - 1;\n var d;\n var m = false;\n var r = \"\";\n var i = this.t;\n var p = this.DB - (i * this.DB) % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) {\n m = true;\n }\n if (m) {\n r += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(d);\n }\n }\n }\n return m ? r : \"0\";\n };\n // BigInteger.prototype.negate = bnNegate;\n // (public) -this\n BigInteger.prototype.negate = function () {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n };\n // BigInteger.prototype.abs = bnAbs;\n // (public) |this|\n BigInteger.prototype.abs = function () {\n return (this.s < 0) ? this.negate() : this;\n };\n // BigInteger.prototype.compareTo = bnCompareTo;\n // (public) return + if this > a, - if this < a, 0 if equal\n BigInteger.prototype.compareTo = function (a) {\n var r = this.s - a.s;\n if (r != 0) {\n return r;\n }\n var i = this.t;\n r = i - a.t;\n if (r != 0) {\n return (this.s < 0) ? -r : r;\n }\n while (--i >= 0) {\n if ((r = this[i] - a[i]) != 0) {\n return r;\n }\n }\n return 0;\n };\n // BigInteger.prototype.bitLength = bnBi
Line truncated
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/lib/jsbn/prng4.js":
|
||||
/*!*******************************!*\
|
||||
!*** ./lib/lib/jsbn/prng4.js ***!
|
||||
\*******************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Arcfour\": () => (/* binding */ Arcfour),\n/* harmony export */ \"prng_newstate\": () => (/* binding */ prng_newstate),\n/* harmony export */ \"rng_psize\": () => (/* binding */ rng_psize)\n/* harmony export */ });\n// prng4.js - uses Arcfour as a PRNG\nvar Arcfour = /** @class */ (function () {\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = [];\n }\n // Arcfour.prototype.init = ARC4init;\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n Arcfour.prototype.init = function (key) {\n var i;\n var j;\n var t;\n for (i = 0; i < 256; ++i) {\n this.S[i] = i;\n }\n j = 0;\n for (i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n };\n // Arcfour.prototype.next = ARC4next;\n Arcfour.prototype.next = function () {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n };\n return Arcfour;\n}());\n\n// Plug in your RNG constructor here\nfunction prng_newstate() {\n return new Arcfour();\n}\n// Pool size must be a multiple of 4 and greater than 32.\n// An array of bytes the size of the pool will be passed to init()\nvar rng_psize = 256;\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/prng4.js?");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/lib/jsbn/rng.js":
|
||||
/*!*****************************!*\
|
||||
!*** ./lib/lib/jsbn/rng.js ***!
|
||||
\*****************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SecureRandom\": () => (/* binding */ SecureRandom)\n/* harmony export */ });\n/* harmony import */ var _prng4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./prng4 */ \"./lib/lib/jsbn/prng4.js\");\n// Random number generator - requires a PRNG backend, e.g. prng4.js\n\nvar rng_state;\nvar rng_pool = null;\nvar rng_pptr;\n// Initialize the pool with junk if needed.\nif (rng_pool == null) {\n rng_pool = [];\n rng_pptr = 0;\n var t = void 0;\n if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {\n // Extract entropy (2048 bits) from RNG if available\n var z = new Uint32Array(256);\n window.crypto.getRandomValues(z);\n for (t = 0; t < z.length; ++t) {\n rng_pool[rng_pptr++] = z[t] & 255;\n }\n }\n // Use mouse events for entropy, if we do not have enough entropy by the time\n // we need it, entropy will be generated by Math.random.\n var count = 0;\n var onMouseMoveListener_1 = function (ev) {\n count = count || 0;\n if (count >= 256 || rng_pptr >= _prng4__WEBPACK_IMPORTED_MODULE_0__.rng_psize) {\n if (window.removeEventListener) {\n window.removeEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.detachEvent) {\n window.detachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n return;\n }\n try {\n var mouseCoordinates = ev.x + ev.y;\n rng_pool[rng_pptr++] = mouseCoordinates & 255;\n count += 1;\n }\n catch (e) {\n // Sometimes Firefox will deny permission to access event properties for some reason. Ignore.\n }\n };\n if (typeof window !== 'undefined') {\n if (window.addEventListener) {\n window.addEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.attachEvent) {\n window.attachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n }\n}\nfunction rng_get_byte() {\n if (rng_state == null) {\n rng_state = (0,_prng4__WEBPACK_IMPORTED_MODULE_0__.prng_newstate)();\n // At this point, we may not have collected enough entropy. If not, fall back to Math.random\n while (rng_pptr < _prng4__WEBPACK_IMPORTED_MODULE_0__.rng_psize) {\n var random = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = random & 255;\n }\n rng_state.init(rng_pool);\n for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n rng_pool[rng_pptr] = 0;\n }\n rng_pptr = 0;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n}\nvar SecureRandom = /** @class */ (function () {\n function SecureRandom() {\n }\n SecureRandom.prototype.nextBytes = function (ba) {\n for (var i = 0; i < ba.length; ++i) {\n ba[i] = rng_get_byte();\n }\n };\n return SecureRandom;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/rng.js?");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/lib/jsbn/rsa.js":
|
||||
/*!*****************************!*\
|
||||
!*** ./lib/lib/jsbn/rsa.js ***!
|
||||
\*****************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"RSAKey\": () => (/* binding */ RSAKey)\n/* harmony export */ });\n/* harmony import */ var _jsbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _rng__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng */ \"./lib/lib/jsbn/rng.js\");\n// Depends on jsbn.js and rng.js\n// Version 1.1: support utf-8 encoding in pkcs1pad2\n// convert a (hex) string to a bignum object\n\n\n// function linebrk(s,n) {\n// var ret = \"\";\n// var i = 0;\n// while(i + n < s.length) {\n// ret += s.substring(i,i+n) + \"\\n\";\n// i += n;\n// }\n// return ret + s.substring(i,s.length);\n// }\n// function byte2Hex(b) {\n// if(b < 0x10)\n// return \"0\" + b.toString(16);\n// else\n// return b.toString(16);\n// }\nfunction pkcs1pad1(s, n) {\n if (n < s.length + 22) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var len = n - s.length - 6;\n var filler = \"\";\n for (var f = 0; f < len; f += 2) {\n filler += \"ff\";\n }\n var m = \"0001\" + filler + \"00\" + s;\n return (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(m, 16);\n}\n// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint\nfunction pkcs1pad2(s, n) {\n if (n < s.length + 11) { // TODO: fix for utf-8\n console.error(\"Message too long for RSA\");\n return null;\n }\n var ba = [];\n var i = s.length - 1;\n while (i >= 0 && n > 0) {\n var c = s.charCodeAt(i--);\n if (c < 128) { // encode using utf-8\n ba[--n] = c;\n }\n else if ((c > 127) && (c < 2048)) {\n ba[--n] = (c & 63) | 128;\n ba[--n] = (c >> 6) | 192;\n }\n else {\n ba[--n] = (c & 63) | 128;\n ba[--n] = ((c >> 6) & 63) | 128;\n ba[--n] = (c >> 12) | 224;\n }\n }\n ba[--n] = 0;\n var rng = new _rng__WEBPACK_IMPORTED_MODULE_1__.SecureRandom();\n var x = [];\n while (n > 2) { // random non-zero pad\n x[0] = 0;\n while (x[0] == 0) {\n rng.nextBytes(x);\n }\n ba[--n] = x[0];\n }\n ba[--n] = 2;\n ba[--n] = 0;\n return new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(ba);\n}\n// \"empty\" RSA key constructor\nvar RSAKey = /** @class */ (function () {\n function RSAKey() {\n this.n = null;\n this.e = 0;\n this.d = null;\n this.p = null;\n this.q = null;\n this.dmp1 = null;\n this.dmq1 = null;\n this.coeff = null;\n }\n //#region PROTECTED\n // protected\n // RSAKey.prototype.doPublic = RSADoPublic;\n // Perform raw public operation on \"x\": return x^e (mod n)\n RSAKey.prototype.doPublic = function (x) {\n return x.modPowInt(this.e, this.n);\n };\n // RSAKey.prototype.doPrivate = RSADoPrivate;\n // Perform raw private operation on \"x\": return x^d (mod n)\n RSAKey.prototype.doPrivate = function (x) {\n if (this.p == null || this.q == null) {\n return x.modPow(this.d, this.n);\n }\n // TODO: re-calculate any missing CRT params\n var xp = x.mod(this.p).modPow(this.dmp1, this.p);\n var xq = x.mod(this.q).modPow(this.dmq1, this.q);\n while (xp.compareTo(xq) < 0) {\n xp = xp.add(this.p);\n }\n return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);\n };\n //#endregion PROTECTED\n //#region PUBLIC\n // RSAKey.prototype.setPublic = RSASetPublic;\n // Set the public key fields N and e from hex strings\n RSAKey.prototype.setPublic = function (N, E) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(N, 16);\n this.e = parseInt(E, 16);\n }\n else {\n console.error(\"Invalid RSA public key\");\n }\n };\n // RSAKey.prototype.encrypt = RSAEncrypt;\n // Return the PKCS#1 RSA encryption of \"text\" as an even-length hex string\n RSAKey.prototype.encrypt = function (text) {\n var maxLength = (this.n.bitLength() + 7) >> 3;\n var m = pkcs1pad2(text, maxLength);\n if (m == null) {\n return null;\n }\n var c = this.doPublic(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n var length = h.length;\n // fix zero before result\n for (var i = 0; i < maxLength * 2 - length; i++) {\n h = \"0\" + h;\n }\n return h;\n };\n // RSAKey.prototype.setPrivate = RSASetPrivate;\n // Set the private key fields N, e, and d from hex strings\n RSAKey.prototype.setPrivate = function (N, E, D) {\n if (N
Line truncated
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/lib/jsbn/util.js":
|
||||
/*!******************************!*\
|
||||
!*** ./lib/lib/jsbn/util.js ***!
|
||||
\******************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"cbit\": () => (/* binding */ cbit),\n/* harmony export */ \"int2char\": () => (/* binding */ int2char),\n/* harmony export */ \"lbit\": () => (/* binding */ lbit),\n/* harmony export */ \"op_and\": () => (/* binding */ op_and),\n/* harmony export */ \"op_andnot\": () => (/* binding */ op_andnot),\n/* harmony export */ \"op_or\": () => (/* binding */ op_or),\n/* harmony export */ \"op_xor\": () => (/* binding */ op_xor)\n/* harmony export */ });\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\n//#region BIT_OPERATIONS\n// (public) this & a\nfunction op_and(x, y) {\n return x & y;\n}\n// (public) this | a\nfunction op_or(x, y) {\n return x | y;\n}\n// (public) this ^ a\nfunction op_xor(x, y) {\n return x ^ y;\n}\n// (public) this & ~a\nfunction op_andnot(x, y) {\n return x & ~y;\n}\n// return index of lowest 1-bit in x, x < 2^31\nfunction lbit(x) {\n if (x == 0) {\n return -1;\n }\n var r = 0;\n if ((x & 0xffff) == 0) {\n x >>= 16;\n r += 16;\n }\n if ((x & 0xff) == 0) {\n x >>= 8;\n r += 8;\n }\n if ((x & 0xf) == 0) {\n x >>= 4;\n r += 4;\n }\n if ((x & 3) == 0) {\n x >>= 2;\n r += 2;\n }\n if ((x & 1) == 0) {\n ++r;\n }\n return r;\n}\n// return number of 1 bits in x\nfunction cbit(x) {\n var r = 0;\n while (x != 0) {\n x &= x - 1;\n ++r;\n }\n return r;\n}\n//#endregion BIT_OPERATIONS\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/util.js?");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/lib/jsrsasign/asn1-1.0.js":
|
||||
/*!***************************************!*\
|
||||
!*** ./lib/lib/jsrsasign/asn1-1.0.js ***!
|
||||
\***************************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KJUR\": () => (/* binding */ KJUR)\n/* harmony export */ });\n/* harmony import */ var _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../jsbn/jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _yahoo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./yahoo */ \"./lib/lib/jsrsasign/yahoo.js\");\n/* asn1-1.0.13.js (c) 2013-2017 Kenji Urushima | kjur.github.com/jsrsasign/license\n */\n/*\n * asn1.js - ASN.1 DER encoder classes\n *\n * Copyright (c) 2013-2017 Kenji Urushima (kenji.urushima@gmail.com)\n *\n * This software is licensed under the terms of the MIT License.\n * https://kjur.github.io/jsrsasign/license\n *\n * The above copyright and license notice shall be\n * included in all copies or substantial portions of the Software.\n */\n\n\n/**\n * @fileOverview\n * @name asn1-1.0.js\n * @author Kenji Urushima kenji.urushima@gmail.com\n * @version asn1 1.0.13 (2017-Jun-02)\n * @since jsrsasign 2.1\n * @license <a href=\"https://kjur.github.io/jsrsasign/license/\">MIT License</a>\n */\n/**\n * kjur's class library name space\n * <p>\n * This name space provides following name spaces:\n * <ul>\n * <li>{@link KJUR.asn1} - ASN.1 primitive hexadecimal encoder</li>\n * <li>{@link KJUR.asn1.x509} - ASN.1 structure for X.509 certificate and CRL</li>\n * <li>{@link KJUR.crypto} - Java Cryptographic Extension(JCE) style MessageDigest/Signature\n * class and utilities</li>\n * </ul>\n * </p>\n * NOTE: Please ignore method summary and document of this namespace. This caused by a bug of jsdoc2.\n * @name KJUR\n * @namespace kjur's class library name space\n */\nvar KJUR = {};\n/**\n * kjur's ASN.1 class library name space\n * <p>\n * This is ITU-T X.690 ASN.1 DER encoder class library and\n * class structure and methods is very similar to\n * org.bouncycastle.asn1 package of\n * well known BouncyCaslte Cryptography Library.\n * <h4>PROVIDING ASN.1 PRIMITIVES</h4>\n * Here are ASN.1 DER primitive classes.\n * <ul>\n * <li>0x01 {@link KJUR.asn1.DERBoolean}</li>\n * <li>0x02 {@link KJUR.asn1.DERInteger}</li>\n * <li>0x03 {@link KJUR.asn1.DERBitString}</li>\n * <li>0x04 {@link KJUR.asn1.DEROctetString}</li>\n * <li>0x05 {@link KJUR.asn1.DERNull}</li>\n * <li>0x06 {@link KJUR.asn1.DERObjectIdentifier}</li>\n * <li>0x0a {@link KJUR.asn1.DEREnumerated}</li>\n * <li>0x0c {@link KJUR.asn1.DERUTF8String}</li>\n * <li>0x12 {@link KJUR.asn1.DERNumericString}</li>\n * <li>0x13 {@link KJUR.asn1.DERPrintableString}</li>\n * <li>0x14 {@link KJUR.asn1.DERTeletexString}</li>\n * <li>0x16 {@link KJUR.asn1.DERIA5String}</li>\n * <li>0x17 {@link KJUR.asn1.DERUTCTime}</li>\n * <li>0x18 {@link KJUR.asn1.DERGeneralizedTime}</li>\n * <li>0x30 {@link KJUR.asn1.DERSequence}</li>\n * <li>0x31 {@link KJUR.asn1.DERSet}</li>\n * </ul>\n * <h4>OTHER ASN.1 CLASSES</h4>\n * <ul>\n * <li>{@link KJUR.asn1.ASN1Object}</li>\n * <li>{@link KJUR.asn1.DERAbstractString}</li>\n * <li>{@link KJUR.asn1.DERAbstractTime}</li>\n * <li>{@link KJUR.asn1.DERAbstractStructured}</li>\n * <li>{@link KJUR.asn1.DERTaggedObject}</li>\n * </ul>\n * <h4>SUB NAME SPACES</h4>\n * <ul>\n * <li>{@link KJUR.asn1.cades} - CAdES long term signature format</li>\n * <li>{@link KJUR.asn1.cms} - Cryptographic Message Syntax</li>\n * <li>{@link KJUR.asn1.csr} - Certificate Signing Request (CSR/PKCS#10)</li>\n * <li>{@link KJUR.asn1.tsp} - RFC 3161 Timestamping Protocol Format</li>\n * <li>{@link KJUR.asn1.x509} - RFC 5280 X.509 certificate and CRL</li>\n * </ul>\n * </p>\n * NOTE: Please ignore method summary and document of this namespace.\n * This caused by a bug of jsdoc2.\n * @name KJUR.asn1\n * @namespace\n */\nif (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1)\n KJUR.asn1 = {};\n/**\n * ASN1 utilities class\n * @name KJUR.asn1.ASN1Util\n * @class ASN1 utilities class\n * @since asn1 1.0.2\n */\nKJUR.asn1.ASN1Util = new function () {\n this.integerToByteHex = function (i) {\n var h = i.toString(16);\n if ((h.length % 2) == 1)\n h = '0' + h;\n return h;\n };\n this.bigIntToMinTwosComplementsHex = function (bigIntegerValue) {\n var h = bigIntegerValue.toString(16);\n if (h.substr(0, 1) != '-') {\n if (h.length % 2 == 1) {\n h = '0' + h;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n h = '00' + h;\n }\n }\n }\n else {\n var hPos = h.substr(1);\n var xorLen = hPos.length;\n if (xorLen % 2 == 1) {\n xorLen += 1;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n xorLen += 2;\n }\n }\n var hMask = '';\n for (var i = 0; i < xorLen; i++) {\n hMask += 'f';\n }\n
Line truncated
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./lib/lib/jsrsasign/yahoo.js":
|
||||
/*!************************************!*\
|
||||
!*** ./lib/lib/jsrsasign/yahoo.js ***!
|
||||
\************************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"YAHOO\": () => (/* binding */ YAHOO)\n/* harmony export */ });\n/*!\nCopyright (c) 2011, Yahoo! Inc. All rights reserved.\nCode licensed under the BSD License:\nhttp://developer.yahoo.com/yui/license.html\nversion: 2.9.0\n*/\nvar YAHOO = {};\nYAHOO.lang = {\n /**\n * Utility to set up the prototype, constructor and superclass properties to\n * support an inheritance strategy that can chain constructors and methods.\n * Static members will not be inherited.\n *\n * @method extend\n * @static\n * @param {Function} subc the object to modify\n * @param {Function} superc the object to inherit\n * @param {Object} overrides additional properties/methods to add to the\n * subclass prototype. These will override the\n * matching items obtained from the superclass\n * if present.\n */\n extend: function (subc, superc, overrides) {\n if (!superc || !subc) {\n throw new Error(\"YAHOO.lang.extend failed, please check that \" +\n \"all dependencies are included.\");\n }\n var F = function () { };\n F.prototype = superc.prototype;\n subc.prototype = new F();\n subc.prototype.constructor = subc;\n subc.superclass = superc.prototype;\n if (superc.prototype.constructor == Object.prototype.constructor) {\n superc.prototype.constructor = superc;\n }\n if (overrides) {\n var i;\n for (i in overrides) {\n subc.prototype[i] = overrides[i];\n }\n /*\n * IE will not enumerate native functions in a derived object even if the\n * function was overridden. This is a workaround for specific functions\n * we care about on the Object prototype.\n * @property _IEEnumFix\n * @param {Function} r the object to receive the augmentation\n * @param {Function} s the object that supplies the properties to augment\n * @static\n * @private\n */\n var _IEEnumFix = function () { }, ADD = [\"toString\", \"valueOf\"];\n try {\n if (/MSIE/.test(navigator.userAgent)) {\n _IEEnumFix = function (r, s) {\n for (i = 0; i < ADD.length; i = i + 1) {\n var fname = ADD[i], f = s[fname];\n if (typeof f === 'function' && f != Object.prototype[fname]) {\n r[fname] = f;\n }\n }\n };\n }\n }\n catch (ex) { }\n ;\n _IEEnumFix(subc.prototype, overrides);\n }\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsrsasign/yahoo.js?");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/process/browser.js":
|
||||
/*!*****************************************!*\
|
||||
!*** ./node_modules/process/browser.js ***!
|
||||
\*****************************************/
|
||||
/***/ ((module) => {
|
||||
|
||||
eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nf
Line truncated
|
||||
|
||||
/***/ })
|
||||
|
||||
/******/ });
|
||||
/************************************************************************/
|
||||
/******/ // The module cache
|
||||
/******/ var __webpack_module_cache__ = {};
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/ // Check if module is in cache
|
||||
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
||||
/******/ if (cachedModule !== undefined) {
|
||||
/******/ return cachedModule.exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = __webpack_module_cache__[moduleId] = {
|
||||
/******/ // no module.id needed
|
||||
/******/ // no module.loaded needed
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/************************************************************************/
|
||||
/******/ /* webpack/runtime/define property getters */
|
||||
/******/ (() => {
|
||||
/******/ // define getter functions for harmony exports
|
||||
/******/ __webpack_require__.d = (exports, definition) => {
|
||||
/******/ for(var key in definition) {
|
||||
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
||||
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
||||
/******/ (() => {
|
||||
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
||||
/******/ })();
|
||||
/******/
|
||||
/******/ /* webpack/runtime/make namespace object */
|
||||
/******/ (() => {
|
||||
/******/ // define __esModule on exports
|
||||
/******/ __webpack_require__.r = (exports) => {
|
||||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
/******/ }
|
||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/************************************************************************/
|
||||
/******/
|
||||
/******/ // startup
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ // This entry module can't be inlined because the eval devtool is used.
|
||||
/******/ var __webpack_exports__ = __webpack_require__("./lib/index.js");
|
||||
/******/ __webpack_exports__ = __webpack_exports__["default"];
|
||||
/******/
|
||||
/******/ return __webpack_exports__;
|
||||
/******/ })()
|
||||
;
|
||||
});
|
||||
-1737
File diff suppressed because it is too large.
Load diff
@@ -1,2 +0,0 @@
|
||||
/*! For license information please see node-rsa.bundle.js.LICENSE.txt */
|
||||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.NODERSA=e():t.NODERSA=e()}(globalThis,(()=>(()=>{var t={6395:t=>{t.exports={newInvalidAsn1Error:function(t){var e=new Error;return e.name="InvalidAsn1Error",e.message=t||"",e}}},5670:(t,e,r)=>{var n=r(6395),i=r(6299),o=r(3319),s=r(1431);for(var a in t.exports={Reader:o,Writer:s},i)i.hasOwnProperty(a)&&(t.exports[a]=i[a]);for(var f in n)n.hasOwnProperty(f)&&(t.exports[f]=n[f])},3319:(t,e,r)=>{var n=r(4529),i=r(4774).Buffer,o=r(6299),s=r(6395).newInvalidAsn1Error;function a(t){if(!t||!i.isBuffer(t))throw new TypeError("data must be a node Buffer");this._buf=t,this._size=t.length,this._len=0,this._offset=0}Object.defineProperty(a.prototype,"length",{enumerable:!0,get:function(){return this._len}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){return this._offset}}),Object.defineProperty(a.prototype,"remain",{get:function(){return this._size-this._offset}}),Object.defineProperty(a.prototype,"buffer",{get:function(){return this._buf.slice(this._offset)}}),a.prototype.readByte=function(t){if(this._size-this._offset<1)return null;var e=255&this._buf[this._offset];return t||(this._offset+=1),e},a.prototype.peek=function(){return this.readByte(!0)},a.prototype.readLength=function(t){if(void 0===t&&(t=this._offset),t>=this._size)return null;var e=255&this._buf[t++];if(null===e)return null;if(128&~e)this._len=e;else{if(0==(e&=127))throw s("Indefinite length not supported");if(e>4)throw s("encoding too long");if(this._size-t<e)return null;this._len=0;for(var r=0;r<e;r++)this._len=(this._len<<8)+(255&this._buf[t++])}return t},a.prototype.readSequence=function(t){var e=this.peek();if(null===e)return null;if(void 0!==t&&t!==e)throw s("Expected 0x"+t.toString(16)+": got 0x"+e.toString(16));var r=this.readLength(this._offset+1);return null===r?null:(this._offset=r,e)},a.prototype.readInt=function(){return this._readTag(o.Integer)},a.prototype.readBoolean=function(){return 0!==this._readTag(o.Boolean)},a.prototype.readEnumeration=function(){return this._readTag(o.Enumeration)},a.prototype.readString=function(t,e){t||(t=o.OctetString);var r=this.peek();if(null===r)return null;if(r!==t)throw s("Expected 0x"+t.toString(16)+": got 0x"+r.toString(16));var n=this.readLength(this._offset+1);if(null===n)return null;if(this.length>this._size-n)return null;if(this._offset=n,0===this.length)return e?i.alloc(0):"";var a=this._buf.slice(this._offset,this._offset+this.length);return this._offset+=this.length,e?a:a.toString("utf8")},a.prototype.readOID=function(t){t||(t=o.OID);var e=this.readString(t,!0);if(null===e)return null;for(var r=[],n=0,i=0;i<e.length;i++){var s=255&e[i];n<<=7,n+=127&s,128&s||(r.push(n),n=0)}return n=r.shift(),r.unshift(n%40),r.unshift(n/40|0),r.join(".")},a.prototype._readTag=function(t){n.ok(void 0!==t);var e=this.peek();if(null===e)return null;if(e!==t)throw s("Expected 0x"+t.toString(16)+": got 0x"+e.toString(16));var r=this.readLength(this._offset+1);if(null===r)return null;if(this.length>4)throw s("Integer too long: "+this.length);if(this.length>this._size-r)return null;this._offset=r;for(var i=this._buf[this._offset],o=0,a=0;a<this.length;a++)o<<=8,o|=255&this._buf[this._offset++];return 128&~i||4===a||(o-=1<<8*a),0|o},t.exports=a},6299:t=>{t.exports={EOC:0,Boolean:1,Integer:2,BitString:3,OctetString:4,Null:5,OID:6,ObjectDescriptor:7,External:8,Real:9,Enumeration:10,PDV:11,Utf8String:12,RelativeOID:13,Sequence:16,Set:17,NumericString:18,PrintableString:19,T61String:20,VideotexString:21,IA5String:22,UTCTime:23,GeneralizedTime:24,GraphicString:25,VisibleString:26,GeneralString:28,UniversalString:29,CharacterString:30,BMPString:31,Constructor:32,Context:128}},1431:(t,e,r)=>{var n=r(4529),i=r(4774).Buffer,o=r(6299),s=r(6395).newInvalidAsn1Error,a={size:1024,growthFactor:8};function f(t){var e,r;e=a,r=t||{},n.ok(e),n.equal(typeof e,"object"),n.ok(r),n.equal(typeof r,"object"),Object.getOwnPropertyNames(e).forEach((function(t){if(!r[t]){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n)}})),t=r,this._buf=i.alloc(t.size||1024),this._size=this._buf.length,this._offset=0,this._options=t,this._seq=[]}Object.defineProperty(f.prototype,"buffer",{get:function(){if(this._seq.length)throw s(this._seq.length+" unended sequence(s)");return this._buf.slice(0,this._offset)}}),f.prototype.writeByte=function(t){if("number"!=typeof t)throw new TypeError("argument must be a Number");this._ensure(1),this._buf[this._offset++]=t},f.prototype.writeInt=function(t,e){if("number"!=typeof t)throw new TypeError("argument must be a Number");"number"!=typeof e&&(e=o.Integer);for(var r=4;(!(4286578688&t)||-8388608==(4286578688&t))&&r>1;)r--,t<<=8;if(r>4)throw s("BER ints cannot be > 0xffffffff");for(this._ensure(2+r),this._buf[this._offset++]=e,this._buf[this._offset++]=r;r-- >0;)this._buf[this._offset++]=(4278190080&t)>>>24,t<<=Line truncated
|
||||
Vendored
-2
@@ -1,2 +0,0 @@
|
||||
/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */
|
||||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).pako={})}(this,(function(t){"use strict";function e(t){let e=t.length;for(;--e>=0;)t[e]=0}const a=256,i=286,n=30,s=15,r=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),o=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),l=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),h=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Array(576);e(d);const _=new Array(60);e(_);const f=new Array(512);e(f);const c=new Array(256);e(c);const u=new Array(29);e(u);const w=new Array(n);function m(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}let b,g,p;function k(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}e(w);const v=t=>t<256?f[t]:f[256+(t>>>7)],y=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},x=(t,e,a)=>{t.bi_valid>16-a?(t.bi_buf|=e<<t.bi_valid&65535,y(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=a)},z=(t,e,a)=>{x(t,a[2*e],a[2*e+1])},A=(t,e)=>{let a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},E=(t,e,a)=>{const i=new Array(16);let n,r,o=0;for(n=1;n<=s;n++)o=o+a[n-1]<<1,i[n]=o;for(r=0;r<=e;r++){let e=t[2*r+1];0!==e&&(t[2*r]=A(i[e]++,e))}},R=t=>{let e;for(e=0;e<i;e++)t.dyn_ltree[2*e]=0;for(e=0;e<n;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},Z=t=>{t.bi_valid>8?y(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},U=(t,e,a,i)=>{const n=2*e,s=2*a;return t[n]<t[s]||t[n]===t[s]&&i[e]<=i[a]},S=(t,e,a)=>{const i=t.heap[a];let n=a<<1;for(;n<=t.heap_len&&(n<t.heap_len&&U(e,t.heap[n+1],t.heap[n],t.depth)&&n++,!U(e,i,t.heap[n],t.depth));)t.heap[a]=t.heap[n],a=n,n<<=1;t.heap[a]=i},D=(t,e,i)=>{let n,s,l,h,d=0;if(0!==t.sym_next)do{n=255&t.pending_buf[t.sym_buf+d++],n+=(255&t.pending_buf[t.sym_buf+d++])<<8,s=t.pending_buf[t.sym_buf+d++],0===n?z(t,s,e):(l=c[s],z(t,l+a+1,e),h=r[l],0!==h&&(s-=u[l],x(t,s,h)),n--,l=v(n),z(t,l,i),h=o[l],0!==h&&(n-=w[l],x(t,n,h)))}while(d<t.sym_next);z(t,256,e)},T=(t,e)=>{const a=e.dyn_tree,i=e.stat_desc.static_tree,n=e.stat_desc.has_stree,r=e.stat_desc.elems;let o,l,h,d=-1;for(t.heap_len=0,t.heap_max=573,o=0;o<r;o++)0!==a[2*o]?(t.heap[++t.heap_len]=d=o,t.depth[o]=0):a[2*o+1]=0;for(;t.heap_len<2;)h=t.heap[++t.heap_len]=d<2?++d:0,a[2*h]=1,t.depth[h]=0,t.opt_len--,n&&(t.static_len-=i[2*h+1]);for(e.max_code=d,o=t.heap_len>>1;o>=1;o--)S(t,a,o);h=r;do{o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],S(t,a,1),l=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=l,a[2*h]=a[2*o]+a[2*l],t.depth[h]=(t.depth[o]>=t.depth[l]?t.depth[o]:t.depth[l])+1,a[2*o+1]=a[2*l+1]=h,t.heap[1]=h++,S(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const a=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,l=e.stat_desc.extra_base,h=e.stat_desc.max_length;let d,_,f,c,u,w,m=0;for(c=0;c<=s;c++)t.bl_count[c]=0;for(a[2*t.heap[t.heap_max]+1]=0,d=t.heap_max+1;d<573;d++)_=t.heap[d],c=a[2*a[2*_+1]+1]+1,c>h&&(c=h,m++),a[2*_+1]=c,_>i||(t.bl_count[c]++,u=0,_>=l&&(u=o[_-l]),w=a[2*_],t.opt_len+=w*(c+u),r&&(t.static_len+=w*(n[2*_+1]+u)));if(0!==m){do{for(c=h-1;0===t.bl_count[c];)c--;t.bl_count[c]--,t.bl_count[c+1]+=2,t.bl_count[h]--,m-=2}while(m>0);for(c=h;0!==c;c--)for(_=t.bl_count[c];0!==_;)f=t.heap[--d],f>i||(a[2*f+1]!==c&&(t.opt_len+=(c-a[2*f+1])*a[2*f],a[2*f+1]=c),_--)}})(t,e),E(a,d,t.bl_count)},O=(t,e,a)=>{let i,n,s=-1,r=e[1],o=0,l=7,h=4;for(0===r&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=r,r=e[2*(i+1)+1],++o<l&&n===r||(o<h?t.bl_tree[2*n]+=o:0!==n?(n!==s&&t.bl_tree[2*n]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,s=n,0===r?(l=138,h=3):n===r?(l=6,h=3):(l=7,h=4))},I=(t,e,a)=>{let i,n,s=-1,r=e[1],o=0,l=7,h=4;for(0===r&&(l=138,h=3),i=0;i<=a;i++)if(n=r,r=e[2*(i+1)+1],!(++o<l&&n===r)){if(o<h)do{z(t,n,t.bl_tree)}while(0!=--o);else 0!==n?(n!==s&&(z(t,n,t.bl_tree),o--),z(t,16,t.bl_tree),x(t,o-3,2)):o<=10?(z(t,17,t.bl_tree),x(t,o-3,3)):(z(t,18,t.bl_tree),x(t,o-11,7));o=0,s=n,0===r?(l=138,h=3):n===r?(l=6,h=3):(l=7,h=4)}};let F=!1;const L=(t,e,a,i)=>{x(t,0+(i?1:0),3),Z(t),y(t,a),y(t,~a),a&&t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a};var N=(t,e,i,n)=>{let s,r,o=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<a;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),T(t,t.l_desc),T(t,t.d_desc),o=(t=>{let e;for(O(t,t.dyn_ltree,t.l_desc.max_code),O(t,t.dyn_dtree,t.d_desc.max_code),T(t,t.bl_desc),e=18;e>=3&&0===t.blLine truncated
|
||||
-412
@@ -1,412 +0,0 @@
|
||||
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};
|
||||
Binary file not shown.
Binary file not shown.
-452
@@ -1,452 +0,0 @@
|
||||
/**
|
||||
* 已知问题:
|
||||
* [推荐]页面:'雷电模拟器'播放部份影片会出错,'播放器'改成'ijk' & '解码方式'改成'软解',即可正常播放
|
||||
* 影视TV 超連結跳轉支持
|
||||
* 影视TV 弹幕支持
|
||||
* https://t.me/fongmi_offical/
|
||||
* https://github.com/FongMi/Release/tree/main/apk
|
||||
* 皮皮虾DMBox 弹幕支持
|
||||
* 设置 > 窗口预览 > 开启
|
||||
* https://t.me/pipixiawerun
|
||||
* vod_area:'bilidanmu'
|
||||
* 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这个解析可用于此源的解析线路用
|
||||
* 传参 ?render=1&type=url¶ms=../json/哔哩教育.json@哔哩教育[官]
|
||||
* 传参 ?render=1&type=url¶ms=../json/哔哩大全.json@哔哩大全[官]
|
||||
*/
|
||||
var rule = {
|
||||
title: '我的哔哩[官]',
|
||||
host: 'https://api.bilibili.com',
|
||||
homeUrl: '/x/web-interface/ranking/v2?rid=0&type=origin',
|
||||
// url:'/x/web-interface/search/type?search_type=video&keyword=fyclass&page=fypage',
|
||||
url: '/x/web-interface/search/type?search_type=video&fyfilter',
|
||||
filter_url: 'keyword=fyclass{{fl.tid}}&page=fypage&duration={{fl.duration}}&order={{fl.order}}',
|
||||
class_parse: $js.toString(() => {
|
||||
// let html = request('{{host}}/files/json/哔哩教育.json');
|
||||
log('rule.params:' + rule.params);
|
||||
let html = request(rule.params);
|
||||
let json = dealJson(html);
|
||||
input = json.classes;
|
||||
homeObj.filter = json.filter;
|
||||
// log(input);
|
||||
}),
|
||||
filterable: 1,
|
||||
detailUrl: '/x/web-interface/view/detail?aid=fyid',
|
||||
searchUrl: '/x/web-interface/search/type?search_type=video&keyword=**&page=fypage',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
params: 'http://127.0.0.1:9978/file/jars/哔哩大全.json',
|
||||
// params: '?render=1&type=url¶ms=../json/哔哩教育.json@哔哩教育[官]',
|
||||
// params: '?render=1&type=url¶ms=../json/哔哩大全.json@哔哩大全[官]',
|
||||
headers: {
|
||||
"User-Agent": "PC_UA",
|
||||
"Referer": "https://www.bilibili.com",
|
||||
"Cookie": "SESSDATA=01c79709%2C1711618905%2C244c3%2A91CjA9UUnRb_kJg03J5FqUbin76yMY90o1-ckJsM1ItQH21ns4hgcS6Le6oMR3SKtC18QSVmxSbGRhN3cyS3NReERsOHRfYVlhTWJKZjZyTF9wUWJXbjNfaF9qWklFMFpoeVg1ZUhFb0Q0MGFiN3FYd1N3UEFEY1oxX29IdmFSRVVLamcybGhhSkJnIIEC; bili_jct=e9d6e9df733afde2a03693d63a4e77dc; DedeUserID=186957646;"
|
||||
},
|
||||
timeout: 5000,
|
||||
limit: 8,
|
||||
play_parse: true,
|
||||
double: false,
|
||||
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.bilibili.com:443/x/player/playurl?avid=' + ids[0] + '&cid=' + ids[1] + '&qn=116';
|
||||
let html = request(iurl);
|
||||
let jRoot = JSON.parse(html);
|
||||
let jo = jRoot.data;
|
||||
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 purl = '';
|
||||
if (ja.length > 0) {
|
||||
if (position === -1) {
|
||||
position = 0
|
||||
}
|
||||
purl = ja[position].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'
|
||||
};
|
||||
if (/\\.flv/.test(purl)) {
|
||||
result.contentType = 'video/x-flv';
|
||||
} else {
|
||||
result.contentType = '';
|
||||
}
|
||||
result.danmaku = dan;
|
||||
input = result
|
||||
`,
|
||||
推荐: `js:
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
function turnDHM(duration) {
|
||||
let min = '';
|
||||
let sec = '';
|
||||
try {
|
||||
min = duration.split(':')[0];
|
||||
sec = duration.split(':')[1];
|
||||
} catch (e) {
|
||||
min = Math.floor(duration / 60);
|
||||
sec = duration % 60;
|
||||
}
|
||||
if (isNaN(parseInt(duration))) {
|
||||
return '无效输入';
|
||||
}
|
||||
if (min == 0) {
|
||||
return sec + '秒'
|
||||
} else if (0 < min && min < 60) {
|
||||
return min + '分'
|
||||
} else if (60 <= min && min < 1440) {
|
||||
if (min % 60 == 0) {
|
||||
let h = min / 60;
|
||||
return h + '小时'
|
||||
} else {
|
||||
let h = min / 60;
|
||||
h = (h + '').split('.')[0];
|
||||
let m = min % 60;
|
||||
return h + '小时' + m + '分';
|
||||
}
|
||||
} else if (min >= 1440) {
|
||||
let d = min / 60 / 24;
|
||||
d = (d + '').split('.')[0];
|
||||
let h = min / 60 % 24;
|
||||
h = (h + '').split('.')[0];
|
||||
let m = min % 60;
|
||||
let dhm = '';
|
||||
if (d > 0) {
|
||||
dhm = d + '天'
|
||||
}
|
||||
if (h >= 1) {
|
||||
dhm = dhm + h + '小时'
|
||||
}
|
||||
if (m > 0) {
|
||||
dhm = dhm + m + '分'
|
||||
}
|
||||
return dhm
|
||||
}
|
||||
return null
|
||||
}
|
||||
function ConvertNum(num) {
|
||||
let _ws = Math.pow(10, 1);
|
||||
let _b = 1e4;
|
||||
if (num < _b) {
|
||||
return num.toString();
|
||||
}
|
||||
let _r = '';
|
||||
let _strArg = ['', '万', '亿', '万亿'];
|
||||
let _i = Math.floor(Math.log(num) / Math.log(_b));
|
||||
if (_i > 3) {
|
||||
_i = 3;
|
||||
}
|
||||
_r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i];
|
||||
return _r;
|
||||
}
|
||||
let html = request(input);
|
||||
let vodList = JSON.parse(html).data.list;
|
||||
let videos = [];
|
||||
vodList.forEach(function(vod) {
|
||||
let aid = vod.aid;
|
||||
let title = stripHtmlTag(vod.title);
|
||||
let img = vod.pic;
|
||||
if (img.startsWith('//')) {
|
||||
img = 'https:' + img;
|
||||
}
|
||||
let remark = turnDHM(vod.duration) + ' ▶' + ConvertNum(vod.stat.view) + ' 🆙' + vod.owner.name;
|
||||
videos.push({
|
||||
vod_id: aid,
|
||||
vod_name: title,
|
||||
vod_pic: img,
|
||||
vod_remarks: remark
|
||||
})
|
||||
});
|
||||
VODS = videos
|
||||
`,
|
||||
一级: `js:
|
||||
if (cateObj.tid.endsWith('_clicklink')) {
|
||||
cateObj.tid = cateObj.tid.split('_')[0];
|
||||
input = HOST + '/x/web-interface/search/type?search_type=video&keyword=' + cateObj.tid + '&page=' + MY_PAGE;
|
||||
}
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
function turnDHM(duration) {
|
||||
let min = '';
|
||||
let sec = '';
|
||||
try {
|
||||
min = duration.split(':')[0];
|
||||
sec = duration.split(':')[1];
|
||||
} catch (e) {
|
||||
min = Math.floor(duration / 60);
|
||||
sec = duration % 60;
|
||||
}
|
||||
if (isNaN(parseInt(duration))) {
|
||||
return '无效输入';
|
||||
}
|
||||
if (min == 0) {
|
||||
return sec + '秒'
|
||||
} else if (0 < min && min < 60) {
|
||||
return min + '分'
|
||||
} else if (60 <= min && min < 1440) {
|
||||
if (min % 60 == 0) {
|
||||
let h = min / 60;
|
||||
return h + '小时'
|
||||
} else {
|
||||
let h = min / 60;
|
||||
h = (h + '').split('.')[0];
|
||||
let m = min % 60;
|
||||
return h + '小时' + m + '分';
|
||||
}
|
||||
} else if (min >= 1440) {
|
||||
let d = min / 60 / 24;
|
||||
d = (d + '').split('.')[0];
|
||||
let h = min / 60 % 24;
|
||||
h = (h + '').split('.')[0];
|
||||
let m = min % 60;
|
||||
let dhm = '';
|
||||
if (d > 0) {
|
||||
dhm = d + '天'
|
||||
}
|
||||
if (h >= 1) {
|
||||
dhm = dhm + h + '小时'
|
||||
}
|
||||
if (m > 0) {
|
||||
dhm = dhm + m + '分'
|
||||
}
|
||||
return dhm
|
||||
}
|
||||
return null
|
||||
}
|
||||
function ConvertNum(num) {
|
||||
let _ws = Math.pow(10, 1);
|
||||
let _b = 1e4;
|
||||
if (num < _b) {
|
||||
return num.toString();
|
||||
}
|
||||
let _r = '';
|
||||
let _strArg = ['', '万', '亿', '万亿'];
|
||||
let _i = Math.floor(Math.log(num) / Math.log(_b));
|
||||
if (_i > 3) {
|
||||
_i = 3;
|
||||
}
|
||||
_r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i];
|
||||
return _r;
|
||||
}
|
||||
let data = [];
|
||||
let vodList = [];
|
||||
if (MY_CATE === '推荐') {
|
||||
input = HOST + '/x/web-interface/index/top/rcmd?ps=14&fresh_idx=' + MY_PAGE + '&fresh_idx_1h=' + MY_PAGE;
|
||||
data = JSON.parse(request(input)).data;
|
||||
vodList = data.item;
|
||||
} else if (MY_CATE === '历史记录') {
|
||||
input = HOST + '/x/v2/history?pn=' + MY_PAGE;
|
||||
data = JSON.parse(request(input)).data;
|
||||
vodList = data;
|
||||
} else {
|
||||
data = JSON.parse(request(input)).data;
|
||||
vodList = data.result;
|
||||
}
|
||||
let videos = [];
|
||||
vodList.forEach(function(vod) {
|
||||
let aid = vod.aid?vod.aid:vod.id;
|
||||
let title = stripHtmlTag(vod.title);
|
||||
let img = vod.pic;
|
||||
if (img.startsWith('//')) {
|
||||
img = 'https:' + img;
|
||||
}
|
||||
let play = '';
|
||||
let danmaku = '';
|
||||
if (MY_CATE === '推荐') {
|
||||
play = ConvertNum(vod.stat.view);
|
||||
danmaku = vod.stat.danmaku;
|
||||
} else if (MY_CATE === '历史记录') {
|
||||
play = ConvertNum(vod.stat.view);
|
||||
danmaku = vod.stat.danmaku;
|
||||
} else {
|
||||
play = ConvertNum(vod.play);
|
||||
danmaku = vod.video_review;
|
||||
}
|
||||
let remark = turnDHM(vod.duration) + ' ▶' + play + ' 💬' + danmaku;
|
||||
videos.push({
|
||||
vod_id: aid,
|
||||
vod_name: title,
|
||||
vod_pic: img,
|
||||
vod_remarks: remark
|
||||
})
|
||||
});
|
||||
VODS = videos
|
||||
`,
|
||||
二级: `js:
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
let html = request(input);
|
||||
let jo = JSON.parse(html).data.View;
|
||||
// 历史记录
|
||||
let cookies = rule_fetch_params.headers.Cookie.split(';');
|
||||
let bili_jct = '';
|
||||
cookies.forEach(cookie => {
|
||||
if (cookie.includes('bili_jct')) {
|
||||
bili_jct = cookie.split('=')[1];
|
||||
}
|
||||
});
|
||||
if (bili_jct !== '') {
|
||||
let historyReport = 'https://api.bilibili.com/x/v2/history/report';
|
||||
let dataPost = {
|
||||
aid: jo.aid,
|
||||
cid: jo.cid,
|
||||
csrf: bili_jct,
|
||||
};
|
||||
post(historyReport, dataPost, 'form');
|
||||
}
|
||||
|
||||
let stat = jo.stat;
|
||||
let up_info = JSON.parse(html).data.Card;
|
||||
let relation = up_info.following ? '已关注' : '未关注';
|
||||
let aid = jo.aid;
|
||||
let title = stripHtmlTag(jo.title);
|
||||
let pic = jo.pic;
|
||||
let desc = jo.desc;
|
||||
|
||||
let date = new Date(jo.pubdate * 1000);
|
||||
let yy = date.getFullYear().toString();
|
||||
let mm = date.getMonth()+1;
|
||||
mm = mm < 10 ? ('0' + mm) : mm;
|
||||
let dd = date.getDate();
|
||||
dd = dd < 10 ? ('0' + dd) : dd;
|
||||
|
||||
let up_name = jo.owner.name;
|
||||
let typeName = jo.tname;
|
||||
// let remark = jo.duration;
|
||||
let vod = {
|
||||
vod_id: aid,
|
||||
vod_name: title,
|
||||
vod_pic: pic,
|
||||
type_name: typeName,
|
||||
vod_year: yy+mm+dd,
|
||||
vod_area: 'bilidanmu',
|
||||
// vod_remarks: remark,
|
||||
vod_tags: 'mv',
|
||||
// vod_director: '🆙 ' + up_name + ' 👥 ' + up_info.follower + ' ' + relation,
|
||||
vod_director: '🆙 ' + '[a=cr:' + JSON.stringify({'id':up_name + '_clicklink','name':up_name}) + '/]' + up_name + '[/a]' + ' 👥 ' + up_info.follower + ' ' + relation,
|
||||
vod_actor: '▶' + stat.view + ' ' + '💬' + stat.danmaku + ' ' + '👍' + stat.like + ' ' + '💰' + stat.coin + ' ' + '⭐' + stat.favorite,
|
||||
vod_content: desc
|
||||
};
|
||||
let ja = jo.pages;
|
||||
let treeMap = {};
|
||||
let playurls = [];
|
||||
ja.forEach(function(tmpJo) {
|
||||
let cid = tmpJo.cid;
|
||||
let part = tmpJo.part.replaceAll('#', '﹟').replaceAll('$', '﹩');
|
||||
playurls.push(
|
||||
part + '$' + aid + '_' + cid
|
||||
)
|
||||
});
|
||||
treeMap['B站'] = playurls.join('#');
|
||||
let relatedData = JSON.parse(html).data.Related;
|
||||
playurls = [];
|
||||
relatedData.forEach(function(rd) {
|
||||
let ccid = rd.cid;
|
||||
let title = rd.title.replaceAll('#', '﹟').replaceAll('$', '﹩');
|
||||
let aaid = rd.aid;
|
||||
playurls.push(
|
||||
title + '$' + aaid + '_' + ccid
|
||||
)
|
||||
});
|
||||
treeMap['欧歌推荐'] = playurls.join('#');
|
||||
vod.vod_play_from = Object.keys(treeMap).join("$$$");
|
||||
vod.vod_play_url = Object.values(treeMap).join("$$$");
|
||||
VOD = vod;
|
||||
`,
|
||||
搜索: `js:
|
||||
let html = request(input);
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
function turnDHM(duration) {
|
||||
let min = '';
|
||||
let sec = '';
|
||||
try {
|
||||
min = duration.split(':')[0];
|
||||
sec = duration.split(':')[1];
|
||||
} catch (e) {
|
||||
min = Math.floor(duration / 60);
|
||||
sec = duration % 60;
|
||||
}
|
||||
if (isNaN(parseInt(duration))) {
|
||||
return '无效输入';
|
||||
}
|
||||
if (min == 0) {
|
||||
return sec + '秒'
|
||||
} else if (0 < min && min < 60) {
|
||||
return min + '分'
|
||||
} else if (60 <= min && min < 1440) {
|
||||
if (min % 60 == 0) {
|
||||
let h = min / 60;
|
||||
return h + '小时'
|
||||
} else {
|
||||
let h = min / 60;
|
||||
h = (h + '').split('.')[0];
|
||||
let m = min % 60;
|
||||
return h + '小时' + m + '分';
|
||||
}
|
||||
} else if (min >= 1440) {
|
||||
let d = min / 60 / 24;
|
||||
d = (d + '').split('.')[0];
|
||||
let h = min / 60 % 24;
|
||||
h = (h + '').split('.')[0];
|
||||
let m = min % 60;
|
||||
let dhm = '';
|
||||
if (d > 0) {
|
||||
dhm = d + '天'
|
||||
}
|
||||
if (h >= 1) {
|
||||
dhm = dhm + h + '小时'
|
||||
}
|
||||
if (m > 0) {
|
||||
dhm = dhm + m + '分'
|
||||
}
|
||||
return dhm
|
||||
}
|
||||
return null
|
||||
}
|
||||
let videos = [];
|
||||
let vodList = JSON.parse(html).data.result;
|
||||
vodList.forEach(function(vod) {
|
||||
let aid = vod.aid;
|
||||
let title = stripHtmlTag(vod.title);
|
||||
let img = vod.pic;
|
||||
if (img.startsWith('//')) {
|
||||
img = 'https:' + img;
|
||||
}
|
||||
let remark = turnDHM(vod.duration);
|
||||
videos.push({
|
||||
vod_id: aid,
|
||||
vod_name: title,
|
||||
vod_pic: img,
|
||||
vod_remarks: remark
|
||||
})
|
||||
});
|
||||
VODS = videos
|
||||
`,
|
||||
}
|
||||
-811
@@ -1,811 +0,0 @@
|
||||
{ "cookie": " buvid3=8B57D3BA-607A-1E85-018A-E8C430023CED42659infoc; b_lsid=BEB8EE7F_18742FF8C2E; bsource=search_baidu; _uuid=DE810E367-B52C-AF6E-A612-EDF4C31567F358591infoc; b_nut=100; buvid_fp=711a632b5c876fa8bbcf668c1efba551; SESSDATA=7624af93%2C1696008331%2C862c8%2A42; bili_jct=141a474ef3ce8cf2fedf384e68f6625d; DedeUserID=3493271303096985; DedeUserID__ckMd5=212a836c164605b7; sid=5h4ruv6o; buvid4=978E9208-13DA-F87A-3DC0-0B8EDF46E80434329-123040301-dWliG5BMrUb70r3g583u7w%3D%3D",
|
||||
"filter": {
|
||||
"dianshiju": [
|
||||
{
|
||||
"name": "类型",
|
||||
"value": [
|
||||
{
|
||||
"v": "",
|
||||
"n": "全部"
|
||||
},
|
||||
{
|
||||
"v": "yanqing",
|
||||
"n": "言情"
|
||||
},
|
||||
{
|
||||
"v": "ouxiang",
|
||||
"n": "偶像"
|
||||
},
|
||||
{
|
||||
"v": "dushi",
|
||||
"n": "都市"
|
||||
},
|
||||
{
|
||||
"v": "zhanzheng",
|
||||
"n": "战争"
|
||||
},
|
||||
{
|
||||
"v": "xuanyi",
|
||||
"n": "悬疑"
|
||||
},
|
||||
{
|
||||
"v": "lunli",
|
||||
"n": "伦理"
|
||||
},
|
||||
{
|
||||
"v": "jingsong",
|
||||
"n": "惊悚"
|
||||
},
|
||||
{
|
||||
"v": "wangluoju",
|
||||
"n": "网络剧"
|
||||
},
|
||||
{
|
||||
"v": "jingfei",
|
||||
"n": "警匪"
|
||||
},
|
||||
{
|
||||
"v": "guzhuang",
|
||||
"n": "古装"
|
||||
},
|
||||
{
|
||||
"v": "wuxia",
|
||||
"n": "武侠"
|
||||
},
|
||||
{
|
||||
"v": "shenhua",
|
||||
"n": "神话"
|
||||
},
|
||||
{
|
||||
"v": "lishi",
|
||||
"n": "历史"
|
||||
},
|
||||
{
|
||||
"v": "dongzuo",
|
||||
"n": "动作"
|
||||
},
|
||||
{
|
||||
"v": "diezhan",
|
||||
"n": "谍战"
|
||||
},
|
||||
{
|
||||
"v": "xiju",
|
||||
"n": "喜剧"
|
||||
},
|
||||
{
|
||||
"v": "kangri",
|
||||
"n": "抗日"
|
||||
},
|
||||
{
|
||||
"v": "jiating",
|
||||
"n": "家庭"
|
||||
},
|
||||
{
|
||||
"v": "juqing",
|
||||
"n": "剧情"
|
||||
},
|
||||
{
|
||||
"v": "lizhi",
|
||||
"n": "励志"
|
||||
},
|
||||
{
|
||||
"v": "nongcun",
|
||||
"n": "农村"
|
||||
},
|
||||
{
|
||||
"v": "kehuan",
|
||||
"n": "科幻"
|
||||
},
|
||||
{
|
||||
"v": "junlv",
|
||||
"n": "军旅"
|
||||
},
|
||||
{
|
||||
"v": "qihuan",
|
||||
"n": "奇幻"
|
||||
},
|
||||
{
|
||||
"v": "qita",
|
||||
"n": "其它"
|
||||
}
|
||||
],
|
||||
"key": "type"
|
||||
},
|
||||
{
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{
|
||||
"v": "",
|
||||
"n": "全部"
|
||||
},
|
||||
{
|
||||
"v": "neidi",
|
||||
"n": "内地"
|
||||
},
|
||||
{
|
||||
"v": "taiwan",
|
||||
"n": "台湾"
|
||||
},
|
||||
{
|
||||
"v": "xianggang",
|
||||
"n": "香港"
|
||||
},
|
||||
{
|
||||
"v": "hanguo",
|
||||
"n": "韩国"
|
||||
},
|
||||
{
|
||||
"v": "meiguo",
|
||||
"n": "美国"
|
||||
},
|
||||
{
|
||||
"v": "taiguo",
|
||||
"n": "泰国"
|
||||
},
|
||||
{
|
||||
"v": "riben",
|
||||
"n": "日本"
|
||||
},
|
||||
{
|
||||
"v": "yingguo",
|
||||
"n": "英国"
|
||||
},
|
||||
{
|
||||
"v": "xinjiapo",
|
||||
"n": "新加坡"
|
||||
},
|
||||
{
|
||||
"v": "qita",
|
||||
"n": "其它"
|
||||
}
|
||||
],
|
||||
"key": "area"
|
||||
},
|
||||
{
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{
|
||||
"v": "",
|
||||
"n": "全部"
|
||||
},
|
||||
{
|
||||
"v": "2024",
|
||||
"n": "2024"
|
||||
},
|
||||
{
|
||||
"v": "2023",
|
||||
"n": "2023"
|
||||
},
|
||||
{
|
||||
"v": "2022",
|
||||
"n": "2022"
|
||||
},
|
||||
{
|
||||
"v": "2021",
|
||||
"n": "2021"
|
||||
},
|
||||
{
|
||||
"v": "2020",
|
||||
"n": "2020"
|
||||
},
|
||||
{
|
||||
"v": "2019",
|
||||
"n": "2019"
|
||||
},
|
||||
{
|
||||
"v": "2018",
|
||||
"n": "2018"
|
||||
},
|
||||
{
|
||||
"v": "2017",
|
||||
"n": "2017"
|
||||
},
|
||||
{
|
||||
"v": "2016",
|
||||
"n": "2016"
|
||||
},
|
||||
{
|
||||
"v": "2015",
|
||||
"n": "2015"
|
||||
},
|
||||
{
|
||||
"v": "2014",
|
||||
"n": "2014"
|
||||
},
|
||||
{
|
||||
"v": "2013",
|
||||
"n": "2013"
|
||||
},
|
||||
{
|
||||
"v": "2012",
|
||||
"n": "2012"
|
||||
},
|
||||
{
|
||||
"v": "2011",
|
||||
"n": "2011"
|
||||
},
|
||||
{
|
||||
"v": "20102000",
|
||||
"n": "2010-2000"
|
||||
},
|
||||
{
|
||||
"v": "19991990",
|
||||
"n": "90年代"
|
||||
},
|
||||
{
|
||||
"v": "19891800",
|
||||
"n": "更早"
|
||||
}
|
||||
],
|
||||
"key": "year"
|
||||
}
|
||||
],
|
||||
"zongyi": [
|
||||
{
|
||||
"name": "类型",
|
||||
"value": [
|
||||
{
|
||||
"v": "",
|
||||
"n": "全部"
|
||||
},
|
||||
{
|
||||
"v": "lxxuanxiu/",
|
||||
"n": "选秀"
|
||||
},
|
||||
{
|
||||
"v": "lxqinggan/",
|
||||
"n": "情感"
|
||||
},
|
||||
{
|
||||
"v": "lxfangtan/",
|
||||
"n": "访谈"
|
||||
},
|
||||
{
|
||||
"v": "lxgaoxiao/",
|
||||
"n": "搞笑"
|
||||
},
|
||||
{
|
||||
"v": "lxyouxi/",
|
||||
"n": "游戏"
|
||||
},
|
||||
{
|
||||
"v": "lxzhichang/",
|
||||
"n": "职场"
|
||||
},
|
||||
{
|
||||
"v": "lxyule/",
|
||||
"n": "娱乐"
|
||||
},
|
||||
{
|
||||
"v": "lxzhenrenxiu/",
|
||||
"n": "真人秀"
|
||||
},
|
||||
{
|
||||
"v": "lxshenghuo/",
|
||||
"n": "生活"
|
||||
},
|
||||
{
|
||||
"v": "lxtiyu/",
|
||||
"n": "体育"
|
||||
},
|
||||
{
|
||||
"v": "lxshenghui/",
|
||||
"n": "盛会"
|
||||
},
|
||||
{
|
||||
"v": "lxcaijing/",
|
||||
"n": "财经"
|
||||
},
|
||||
{
|
||||
"v": "lxqinzi/",
|
||||
"n": "亲子"
|
||||
},
|
||||
{
|
||||
"v": "lxjishi/",
|
||||
"n": "纪实"
|
||||
},
|
||||
{
|
||||
"v": "lxtuokouxiu/",
|
||||
"n": "脱口秀"
|
||||
},
|
||||
{
|
||||
"v": "lxwangluojiemu/",
|
||||
"n": "网络节目"
|
||||
},
|
||||
{
|
||||
"v": "lxmeishi/",
|
||||
"n": "美食"
|
||||
}
|
||||
],
|
||||
"key": "type"
|
||||
},
|
||||
{
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{
|
||||
"v": "",
|
||||
"n": "全部"
|
||||
},
|
||||
{
|
||||
"v": "dqdalu/",
|
||||
"n": "大陆"
|
||||
},
|
||||
{
|
||||
"v": "dqgangtai/",
|
||||
"n": "港台"
|
||||
},
|
||||
{
|
||||
"v": "dqrihan/",
|
||||
"n": "日韩"
|
||||
},
|
||||
{
|
||||
"v": "dqoumei/",
|
||||
"n": "欧美"
|
||||
},
|
||||
{
|
||||
"v": "dqqita/",
|
||||
"n": "其他"
|
||||
}
|
||||
],
|
||||
"key": "area"
|
||||
}
|
||||
],
|
||||
"dongman": [
|
||||
{
|
||||
"name": "类型",
|
||||
"value": [
|
||||
{
|
||||
"v": "",
|
||||
"n": "全部"
|
||||
},
|
||||
{
|
||||
"v": "lxrexue/",
|
||||
"n": "热血"
|
||||
},
|
||||
{
|
||||
"v": "lxaiqing/",
|
||||
"n": "爱情"
|
||||
},
|
||||
{
|
||||
"v": "lxgaoxiao/",
|
||||
"n": "搞笑"
|
||||
},
|
||||
{
|
||||
"v": "lxmeinv/",
|
||||
"n": "美女"
|
||||
},
|
||||
{
|
||||
"v": "lxshaoer/",
|
||||
"n": "少儿"
|
||||
},
|
||||
{
|
||||
"v": "lxqinzi/",
|
||||
"n": "亲子"
|
||||
},
|
||||
{
|
||||
"v": "lxmofa/",
|
||||
"n": "魔法"
|
||||
},
|
||||
{
|
||||
"v": "lxyundong/",
|
||||
"n": "运动"
|
||||
},
|
||||
{
|
||||
"v": "lxjizhan/",
|
||||
"n": "机战"
|
||||
},
|
||||
{
|
||||
"v": "lxkehuan/",
|
||||
"n": "科幻"
|
||||
},
|
||||
{
|
||||
"v": "lxxiaoyuan/",
|
||||
"n": "校园"
|
||||
},
|
||||
{
|
||||
"v": "lxdongwu/",
|
||||
"n": "动物"
|
||||
},
|
||||
{
|
||||
"v": "lxmaoxian/",
|
||||
"n": "冒险"
|
||||
},
|
||||
{
|
||||
"v": "lxshenhua/",
|
||||
"n": "神话"
|
||||
},
|
||||
{
|
||||
"v": "lxtuili/",
|
||||
"n": "推理"
|
||||
},
|
||||
{
|
||||
"v": "lxjuqing/",
|
||||
"n": "剧情"
|
||||
},
|
||||
{
|
||||
"v": "lxlishi/",
|
||||
"n": "历史"
|
||||
},
|
||||
{
|
||||
"v": "lxzhanzheng/",
|
||||
"n": "战争"
|
||||
},
|
||||
{
|
||||
"v": "lxjingdian/",
|
||||
"n": "经典"
|
||||
},
|
||||
{
|
||||
"v": "lxnanxingxiang/",
|
||||
"n": "男性向"
|
||||
},
|
||||
{
|
||||
"v": "lxnvxingxiang/",
|
||||
"n": "女性向"
|
||||
}
|
||||
],
|
||||
"key": "type"
|
||||
},
|
||||
{
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{
|
||||
"v": "",
|
||||
"n": "全部"
|
||||
},
|
||||
{
|
||||
"v": "dqdalu/",
|
||||
"n": "大陆"
|
||||
},
|
||||
{
|
||||
"v": "dqriben/",
|
||||
"n": "日本"
|
||||
},
|
||||
{
|
||||
"v": "dqmeiguo/",
|
||||
"n": "美国"
|
||||
},
|
||||
{
|
||||
"v": "dqhanguo/",
|
||||
"n": "韩国"
|
||||
},
|
||||
{
|
||||
"v": "dqqita/",
|
||||
"n": "其他"
|
||||
}
|
||||
],
|
||||
"key": "area"
|
||||
},
|
||||
{
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{
|
||||
"v": "",
|
||||
"n": "全部"
|
||||
},
|
||||
{
|
||||
"v": "nd2022/",
|
||||
"n": "2022"
|
||||
},
|
||||
{
|
||||
"v": "nd2021/",
|
||||
"n": "2021"
|
||||
},
|
||||
{
|
||||
"v": "nd2020/",
|
||||
"n": "2020"
|
||||
},
|
||||
{
|
||||
"v": "nd2019/",
|
||||
"n": "2019"
|
||||
},
|
||||
{
|
||||
"v": "nd2018/",
|
||||
"n": "2018"
|
||||
},
|
||||
{
|
||||
"v": "nd2017/",
|
||||
"n": "2017"
|
||||
},
|
||||
{
|
||||
"v": "nd2016/",
|
||||
"n": "2016"
|
||||
},
|
||||
{
|
||||
"v": "nd2015/",
|
||||
"n": "2015"
|
||||
},
|
||||
{
|
||||
"v": "nd2014/",
|
||||
"n": "2014"
|
||||
},
|
||||
{
|
||||
"v": "nd2013/",
|
||||
"n": "2013"
|
||||
},
|
||||
{
|
||||
"v": "nd2012/",
|
||||
"n": "2012"
|
||||
},
|
||||
{
|
||||
"v": "nd2011/",
|
||||
"n": "2011"
|
||||
},
|
||||
{
|
||||
"v": "nd20102000/",
|
||||
"n": "2010-2000"
|
||||
},
|
||||
{
|
||||
"v": "nd19991800/",
|
||||
"n": "更早"
|
||||
}
|
||||
],
|
||||
"key": "year"
|
||||
}
|
||||
],
|
||||
"dianying": [
|
||||
{
|
||||
"name": "类型",
|
||||
"value": [
|
||||
{
|
||||
"v": "",
|
||||
"n": "全部"
|
||||
},
|
||||
{
|
||||
"v": "aiqing",
|
||||
"n": "爱情"
|
||||
},
|
||||
{
|
||||
"v": "dongzuo",
|
||||
"n": "动作"
|
||||
},
|
||||
{
|
||||
"v": "xiju",
|
||||
"n": "喜剧"
|
||||
},
|
||||
{
|
||||
"v": "zhanzheng",
|
||||
"n": "战争"
|
||||
},
|
||||
{
|
||||
"v": "kehuan",
|
||||
"n": "科幻"
|
||||
},
|
||||
{
|
||||
"v": "juqing",
|
||||
"n": "剧情"
|
||||
},
|
||||
{
|
||||
"v": "wuxia",
|
||||
"n": "武侠"
|
||||
},
|
||||
{
|
||||
"v": "maoxian",
|
||||
"n": "冒险"
|
||||
},
|
||||
{
|
||||
"v": "qiangzhan",
|
||||
"n": "枪战"
|
||||
},
|
||||
{
|
||||
"v": "kongbu",
|
||||
"n": "恐怖"
|
||||
},
|
||||
{
|
||||
"v": "xuanyi",
|
||||
"n": "悬疑"
|
||||
},
|
||||
{
|
||||
"v": "fanzui",
|
||||
"n": "犯罪"
|
||||
},
|
||||
{
|
||||
"v": "qihuan",
|
||||
"n": "奇幻"
|
||||
},
|
||||
{
|
||||
"v": "donghua",
|
||||
"n": "动画"
|
||||
},
|
||||
{
|
||||
"v": "jingsong",
|
||||
"n": "惊悚"
|
||||
},
|
||||
{
|
||||
"v": "jingdian",
|
||||
"n": "经典"
|
||||
},
|
||||
{
|
||||
"v": "qingchun",
|
||||
"n": "青春"
|
||||
},
|
||||
{
|
||||
"v": "wenyi",
|
||||
"n": "文艺"
|
||||
},
|
||||
{
|
||||
"v": "weidianying",
|
||||
"n": "微电影"
|
||||
},
|
||||
{
|
||||
"v": "guzhuang",
|
||||
"n": "古装"
|
||||
},
|
||||
{
|
||||
"v": "lishi",
|
||||
"n": "历史"
|
||||
},
|
||||
{
|
||||
"v": "yundong",
|
||||
"n": "运动"
|
||||
},
|
||||
{
|
||||
"v": "nongcun",
|
||||
"n": "农村"
|
||||
},
|
||||
{
|
||||
"v": "ertong",
|
||||
"n": "儿童"
|
||||
},
|
||||
{
|
||||
"v": "wangluodianying",
|
||||
"n": "网络电影"
|
||||
},
|
||||
{
|
||||
"v": "qita",
|
||||
"n": "其它"
|
||||
}
|
||||
],
|
||||
"key": "type"
|
||||
},
|
||||
{
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{
|
||||
"v": "",
|
||||
"n": "全部"
|
||||
},
|
||||
{
|
||||
"v": "neidi",
|
||||
"n": "内地"
|
||||
},
|
||||
{
|
||||
"v": "meiguo",
|
||||
"n": "美国"
|
||||
},
|
||||
{
|
||||
"v": "xianggang",
|
||||
"n": "香港"
|
||||
},
|
||||
{
|
||||
"v": "taiwan",
|
||||
"n": "台湾"
|
||||
},
|
||||
{
|
||||
"v": "riben",
|
||||
"n": "日本"
|
||||
},
|
||||
{
|
||||
"v": "taiguo",
|
||||
"n": "泰国"
|
||||
},
|
||||
{
|
||||
"v": "yindu",
|
||||
"n": "印度"
|
||||
},
|
||||
{
|
||||
"v": "dongnanyadiqu",
|
||||
"n": "东南亚地区"
|
||||
},
|
||||
{
|
||||
"v": "oumeidiqu",
|
||||
"n": "欧美地区"
|
||||
},
|
||||
{
|
||||
"v": "qita",
|
||||
"n": "其它"
|
||||
}
|
||||
],
|
||||
"key": "area"
|
||||
},
|
||||
{
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{
|
||||
"v": "",
|
||||
"n": "全部"
|
||||
},
|
||||
{
|
||||
"v": "2022",
|
||||
"n": "2022"
|
||||
},
|
||||
{
|
||||
"v": "2021",
|
||||
"n": "2021"
|
||||
},
|
||||
{
|
||||
"v": "2020",
|
||||
"n": "2020"
|
||||
},
|
||||
{
|
||||
"v": "2019",
|
||||
"n": "2019"
|
||||
},
|
||||
{
|
||||
"v": "2018",
|
||||
"n": "2018"
|
||||
},
|
||||
{
|
||||
"v": "2017",
|
||||
"n": "2017"
|
||||
},
|
||||
{
|
||||
"v": "2016",
|
||||
"n": "2016"
|
||||
},
|
||||
{
|
||||
"v": "2015",
|
||||
"n": "2015"
|
||||
},
|
||||
{
|
||||
"v": "2014",
|
||||
"n": "2014"
|
||||
},
|
||||
{
|
||||
"v": "2013",
|
||||
"n": "2013"
|
||||
},
|
||||
{
|
||||
"v": "2012",
|
||||
"n": "2012"
|
||||
},
|
||||
{
|
||||
"v": "2011",
|
||||
"n": "2011"
|
||||
},
|
||||
{
|
||||
"v": "20102000",
|
||||
"n": "2010-2000"
|
||||
},
|
||||
{
|
||||
"v": "19691800",
|
||||
"n": "更早"
|
||||
}
|
||||
],
|
||||
"key": "year"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"classes": [
|
||||
{
|
||||
"type_name": "电影",
|
||||
"type_id": "dianying"
|
||||
},
|
||||
|
||||
{
|
||||
"type_name": "电视剧",
|
||||
"type_id": "dianshiju"
|
||||
},
|
||||
{
|
||||
"type_name": "综艺",
|
||||
"type_id": "zongyi"
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"type_name": "热播电影",
|
||||
"type_id": "jingdian"
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{
|
||||
"type_name": "动漫",
|
||||
"type_id": "dongman"
|
||||
}
|
||||
]
|
||||
}
|
||||
+247
-246
File diff suppressed because it is too large.
Load diff
+778
-718
File diff suppressed because it is too large.
Load diff
Binary file not shown.
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.5 KiB |
-209
@@ -1,209 +0,0 @@
|
||||
globalThis.h_ost = 'http://xxsp.xxmh.top/';
|
||||
var key = CryptoJS.enc.Base64.parse("MGY3OTFiZmMwZGM2MWU4Zg==");
|
||||
var iv = CryptoJS.enc.Base64.parse("MGY3OTFiZmMwZGM2MWU4Zg==");
|
||||
globalThis.AES_Decrypt = function(word) {
|
||||
try {
|
||||
var decrypt = CryptoJS.AES.decrypt(word, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7,
|
||||
});
|
||||
const decryptedText = decrypt.toString(CryptoJS.enc.Utf8);
|
||||
if (!decryptedText) {
|
||||
throw new Error("解密后的内容为空");
|
||||
}
|
||||
return decryptedText;
|
||||
} catch (e) {
|
||||
console.error("解密失败:", e);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
globalThis.AES_Encrypt = function(word) {
|
||||
var encrypted = CryptoJS.AES.encrypt(word, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
});
|
||||
return encrypted.toString();
|
||||
};
|
||||
|
||||
globalThis.vod1 = function(t, pg) {
|
||||
let html1 = request(h_ost + 'api.php/getappapi.index/typeFilterVodList', {
|
||||
body: {
|
||||
area: '全部',
|
||||
year: '全部',
|
||||
type_id: t,
|
||||
page: pg,
|
||||
sort: '最新',
|
||||
lang: '全部',
|
||||
class: '全部'
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
let html = JSON.parse(html1);
|
||||
return (AES_Decrypt(html.data));
|
||||
}
|
||||
globalThis.vodids = function(ids) {
|
||||
let html1 = fetch(h_ost + 'api.php/getappapi.index/vodDetail', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
vod_id: ids,
|
||||
}
|
||||
});
|
||||
let html = JSON.parse(html1);
|
||||
const rdata = JSON.parse(AES_Decrypt(html.data));
|
||||
const data = {
|
||||
vod_id: ids,
|
||||
vod_name: rdata.vod.vod_name,
|
||||
vod_remarks: rdata.vod.vod_remarks,
|
||||
vod_actor: rdata.vod.vod_actor,
|
||||
vod_director: rdata.vod.vod_director,
|
||||
vod_content: rdata.vod.vod_content,
|
||||
vod_play_from: '',
|
||||
vod_play_url: ''
|
||||
};
|
||||
|
||||
rdata.vod_play_list.forEach((value) => {
|
||||
data.vod_play_from += value.player_info.show + '$$$';
|
||||
value.urls.forEach((v) => {
|
||||
data.vod_play_url += v.name + '$' + value.player_info.parse + '~' + v.url + '~' + rdata.vod.vod_name + '~' + v.name + '#';
|
||||
});
|
||||
data.vod_play_url += '$$$';
|
||||
});
|
||||
return data;
|
||||
}
|
||||
//搜索
|
||||
globalThis.ssvod = function(wd) {
|
||||
var html1 = fetch(h_ost + 'api.php/getappapi.index/searchList', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
keywords: wd,
|
||||
typepage_id: 1,
|
||||
}
|
||||
});
|
||||
let html = JSON.parse(html1);
|
||||
return AES_Decrypt(html.data);
|
||||
}
|
||||
//解析
|
||||
globalThis.jxx = function(id, url, name, juji) {
|
||||
/* if("741852963"!=='741852963'){
|
||||
return 'https://s0.mall.tcl.com/group1/M00/00/89/CvoGBGdcOPaAAUxvADwZniVV2bc476.mp4';
|
||||
}*/
|
||||
if (id.startsWith('http')) {
|
||||
return {
|
||||
parse: 1,
|
||||
url: id + url,
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
if (id == 0) {
|
||||
return {
|
||||
parse: 0,
|
||||
url: id + url,
|
||||
jx: 1,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
|
||||
let html1 = request(h_ost + 'api.php/getappapi.index/vodParse', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
parse_api: id,
|
||||
url: AES_Encrypt(url),
|
||||
}
|
||||
});
|
||||
let html = AES_Decrypt(JSON.parse(html1).data);
|
||||
console.log(html);
|
||||
let decry = html.replace(/\n/g, '').replace(/\\/g, '');
|
||||
let matches = decry.match(/"url":"([^"]+)"/);
|
||||
if (!matches || matches[1] === null) {
|
||||
matches = decry.match(/"url": "([^"]+)"/);
|
||||
}
|
||||
return {
|
||||
parse: 0,
|
||||
url: matches[1],
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
|
||||
var rule = {
|
||||
title: '小熊',
|
||||
host: '',
|
||||
detailUrl: 'fyid',
|
||||
searchUrl: '**',
|
||||
url: 'fyclass',
|
||||
searchable: 2,
|
||||
quickSearch: 1,
|
||||
filterable: 0,
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&3&4',
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
const parts = input.split('~');
|
||||
input = jxx(parts[0], parts[1], parts[2], parts[3]);
|
||||
}),
|
||||
推荐: $js.toString(() => {
|
||||
let data = vod1(0, 0);
|
||||
let bata = JSON.parse(data).recommend_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
一级: $js.toString(() => {
|
||||
let data = vod1(input, MY_PAGE);
|
||||
let bata = JSON.parse(data).recommend_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
二级: $js.toString(() => {
|
||||
console.log("调试信息2" + input);
|
||||
let data = vodids(input);
|
||||
//console.log(data);
|
||||
VOD = data;
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let data = ssvod(input);
|
||||
let bata = JSON.parse(data).search_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
// console.log(data);
|
||||
setResult(d);
|
||||
}),
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
var rule = {
|
||||
title: '弹幕[资]',
|
||||
host: 'http://gy.xn--yet24tmq1a.xyz/',
|
||||
homeTid: '',
|
||||
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
|
||||
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
|
||||
searchUrl: '/api.php/provide/vod/?ac=detail&wd=**&pg=fypage',
|
||||
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
class_parse: 'json:class;',
|
||||
timeout: 5000,
|
||||
filterable: 1,
|
||||
limit: 20,
|
||||
multi: 1,
|
||||
searchable: 2,
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
lazy: $js.toString(() => {
|
||||
let json = request("http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input);
|
||||
let bata = JSON.parse(json);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: bata.url,
|
||||
jx: 0,
|
||||
danmaku: bata.danmaku
|
||||
};
|
||||
}),
|
||||
推荐: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
|
||||
一级: $js.toString(() => {
|
||||
let bata = JSON.parse(request(input)).list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
})
|
||||
});
|
||||
setResult(d)
|
||||
}),
|
||||
二级: 'js:\n let html=request(input);\n html=JSON.parse(html);\n let data=html.list;\n VOD=data[0];',
|
||||
搜索: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
|
||||
}
|
||||
-210
@@ -1,210 +0,0 @@
|
||||
globalThis.h_ost = 'http://118.107.41.134:35555/';
|
||||
var key = CryptoJS.enc.Base64.parse("ZGMzMjUwNmQ5YjVjYmY4ZQ==");
|
||||
var iv = CryptoJS.enc.Base64.parse("ZGMzMjUwNmQ5YjVjYmY4ZQ==");
|
||||
globalThis.AES_Decrypt = function(word) {
|
||||
try {
|
||||
var decrypt = CryptoJS.AES.decrypt(word, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7,
|
||||
});
|
||||
const decryptedText = decrypt.toString(CryptoJS.enc.Utf8);
|
||||
if (!decryptedText) {
|
||||
throw new Error("解密后的内容为空");
|
||||
}
|
||||
return decryptedText;
|
||||
} catch (e) {
|
||||
console.error("解密失败:", e);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
globalThis.AES_Encrypt = function(word) {
|
||||
var encrypted = CryptoJS.AES.encrypt(word, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
});
|
||||
return encrypted.toString();
|
||||
};
|
||||
|
||||
globalThis.vod1 = function(t, pg) {
|
||||
let html1 = request(h_ost + 'api.php/getappapi.index/typeFilterVodList', {
|
||||
body: {
|
||||
area: '全部',
|
||||
year: '全部',
|
||||
type_id: t,
|
||||
page: pg,
|
||||
sort: '最新',
|
||||
lang: '全部',
|
||||
class: '全部'
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
let html = JSON.parse(html1);
|
||||
return (AES_Decrypt(html.data));
|
||||
}
|
||||
globalThis.vodids = function(ids) {
|
||||
let html1 = fetch(h_ost + 'api.php/getappapi.index/vodDetail', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
vod_id: ids,
|
||||
}
|
||||
});
|
||||
let html = JSON.parse(html1);
|
||||
const rdata = JSON.parse(AES_Decrypt(html.data));
|
||||
const data = {
|
||||
vod_id: ids,
|
||||
vod_name: rdata.vod.vod_name,
|
||||
vod_remarks: rdata.vod.vod_remarks,
|
||||
vod_actor: rdata.vod.vod_actor,
|
||||
vod_director: rdata.vod.vod_director,
|
||||
vod_content: rdata.vod.vod_content,
|
||||
vod_play_from: '',
|
||||
vod_play_url: ''
|
||||
};
|
||||
|
||||
rdata.vod_play_list.forEach((value) => {
|
||||
data.vod_play_from += value.player_info.show + '$$$';
|
||||
value.urls.forEach((v) => {
|
||||
data.vod_play_url += v.name + '$' + value.player_info.parse + '~' + v.url + '~' + rdata.vod.vod_name + '~' + v.name + '#';
|
||||
});
|
||||
data.vod_play_url += '$$$';
|
||||
});
|
||||
return data;
|
||||
}
|
||||
//搜索
|
||||
globalThis.ssvod = function(wd) {
|
||||
var html1 = fetch(h_ost + 'api.php/getappapi.index/searchList', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
keywords: wd,
|
||||
typepage_id: 1,
|
||||
}
|
||||
});
|
||||
let html = JSON.parse(html1);
|
||||
return AES_Decrypt(html.data);
|
||||
}
|
||||
//解析
|
||||
globalThis.jxx = function(id, url, name, juji) {
|
||||
/* if("741852963"!=='741852963'){
|
||||
return 'https://s0.mall.tcl.com/group1/M00/00/89/CvoGBGdcOPaAAUxvADwZniVV2bc476.mp4';
|
||||
}*/
|
||||
//console.log(id);
|
||||
if (id.startsWith('http')) {
|
||||
return {
|
||||
parse: 1,
|
||||
url: id + url,
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
if (id == 0) {
|
||||
return {
|
||||
parse: 0,
|
||||
url: url,
|
||||
jx: 1,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
|
||||
let html1 = request(h_ost + 'api.php/getappapi.index/vodParse', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
parse_api: id,
|
||||
url: AES_Encrypt(url),
|
||||
}
|
||||
});
|
||||
let html = AES_Decrypt(JSON.parse(html1).data);
|
||||
console.log(html);
|
||||
let decry = html.replace(/\n/g, '').replace(/\\/g, '');
|
||||
let matches = decry.match(/"url":"([^"]+)"/);
|
||||
if (!matches || matches[1] === null) {
|
||||
matches = decry.match(/"url": "([^"]+)"/);
|
||||
}
|
||||
return {
|
||||
parse: 0,
|
||||
url: matches[1],
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
|
||||
var rule = {
|
||||
title: '巨人',
|
||||
host: '',
|
||||
detailUrl: 'fyid',
|
||||
searchUrl: '**',
|
||||
url: 'fyclass',
|
||||
searchable: 2,
|
||||
quickSearch: 1,
|
||||
filterable: 0,
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&3&4',
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
const parts = input.split('~');
|
||||
input = jxx(parts[0], parts[1], parts[2], parts[3]);
|
||||
}),
|
||||
推荐: $js.toString(() => {
|
||||
let data = vod1(0, 0);
|
||||
let bata = JSON.parse(data).recommend_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
一级: $js.toString(() => {
|
||||
let data = vod1(input, MY_PAGE);
|
||||
let bata = JSON.parse(data).recommend_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
二级: $js.toString(() => {
|
||||
console.log("调试信息2" + input);
|
||||
let data = vodids(input);
|
||||
//console.log(data);
|
||||
VOD = data;
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let data = ssvod(input);
|
||||
let bata = JSON.parse(data).search_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
// console.log(data);
|
||||
setResult(d);
|
||||
}),
|
||||
}
|
||||
-183
@@ -1,183 +0,0 @@
|
||||
globalThis.h_ost = 'http://op.ysdqjs.cn/';
|
||||
|
||||
globalThis.vodlist = function($t, $pg) {
|
||||
const currentTimestamp = parseInt(Date.now() / 1000, 10);
|
||||
const url = h_ost + '/v2/home/type_search';
|
||||
const hx = CryptoJS.MD5('kj5649ertj84ks89r4jh8s45hf84hjfds04k' + currentTimestamp).toString();
|
||||
let html = request(url, {
|
||||
body: {
|
||||
sign: hx,
|
||||
type_id: $t,
|
||||
page: $pg,
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp-okgo/jeasonlzy',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
return JSON.parse(html).data.list;
|
||||
}
|
||||
|
||||
globalThis.seach = function(wd) {
|
||||
const currentTimestamp = parseInt(Date.now() / 1000, 10);
|
||||
const url = h_ost + '/v2/home/search';
|
||||
const hx = CryptoJS.MD5('kj5649ertj84ks89r4jh8s45hf84hjfds04k' + currentTimestamp).toString();
|
||||
let html = request(url, {
|
||||
body: {
|
||||
sign: hx,
|
||||
keyword: wd,
|
||||
timestamp: currentTimestamp,
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp-okgo/jeasonlzy',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
return JSON.parse(html).data.list;
|
||||
}
|
||||
globalThis.vodids = function(ids) {
|
||||
const currentTimestamp = parseInt(Date.now() / 1000, 10);
|
||||
const url = h_ost + '/v2/home/vod_details';
|
||||
const hx = CryptoJS.MD5('kj5649ertj84ks89r4jh8s45hf84hjfds04k' + currentTimestamp).toString();
|
||||
let html = request(url, {
|
||||
body: {
|
||||
sign: hx,
|
||||
vod_id: ids,
|
||||
timestamp: currentTimestamp,
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp-okgo/jeasonlzy',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
const redata = JSON.parse(html);
|
||||
let vodPlayFrom = '';
|
||||
let vodPlayUrl = '';
|
||||
redata.data.vod_play_list.forEach((value, key) => {
|
||||
if (value.flag.includes("nby") || value.flag.includes("mgtv") || value.flag.includes("qq") || value.flag.includes("qiyi") || value.flag.includes("mgtv") || 1) {
|
||||
vodPlayFrom += `${value.flag}$$$`;
|
||||
value.urls.forEach(url => {
|
||||
vodPlayUrl += `${url.name}$${value.parse_urls[0]}${url.url}~${url.name}#`;
|
||||
});
|
||||
vodPlayUrl += '$$$';
|
||||
}
|
||||
});
|
||||
const regeshi = {
|
||||
vod_id: redata.data.vod_id,
|
||||
vod_name: redata.data.vod_name,
|
||||
vod_remarks: `${redata.data.vod_remarks}`,
|
||||
type_name: redata.data.vod_class,
|
||||
vod_pic: redata.data.vod_pic,
|
||||
vod_year: redata.data.vod_year,
|
||||
vod_area: redata.data.vod_area,
|
||||
vod_actor: `${redata.data.vod_actor}`,
|
||||
vod_director: redata.data.vod_director,
|
||||
vod_content: `${redata.data.vod_content}`,
|
||||
vod_play_from: vodPlayFrom,
|
||||
vod_play_url: vodPlayUrl
|
||||
};
|
||||
return regeshi;
|
||||
}
|
||||
globalThis.jxx = function(input) {
|
||||
if ("741852963" !== '741852963') {
|
||||
return 'https://s0.mall.tcl.com/group1/M00/00/89/CvoGBGdcOPaAAUxvADwZniVV2bc476.mp4';
|
||||
}
|
||||
const parts = input.split('~');
|
||||
try {
|
||||
let response = fetch(parts[0], {
|
||||
method: 'get',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
});
|
||||
|
||||
if (response.includes("成功") || response.includes("success") || response.includes("nby")) {
|
||||
let bata = JSON.parse(response);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: bata.url,
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + VOD.vod_name + '&js=' + parts[1] + '&key=741852963'
|
||||
}
|
||||
} else {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: parts[0].includes('url=') ? parts[0].slice(parts[0].indexOf('url=') + 4) : null,
|
||||
jx: 1,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + VOD.vod_name + '&js=' + parts[1] + '&key=741852963'
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: '解析失败',
|
||||
jx: 0,
|
||||
}
|
||||
}
|
||||
return input;
|
||||
}
|
||||
|
||||
var rule = {
|
||||
title: '天天',
|
||||
host: '',
|
||||
detailUrl: 'fyid',
|
||||
searchUrl: '**',
|
||||
url: 'fyclass',
|
||||
searchable: 2,
|
||||
quickSearch: 1,
|
||||
filterable: 0,
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&4&3',
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
input = jxx(input);
|
||||
}),
|
||||
推荐: $js.toString(() => {
|
||||
let bdata = vodlist(1, 1);
|
||||
console.log(bdata);
|
||||
bdata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
一级: $js.toString(() => {
|
||||
let bdata = vodlist(input, MY_PAGE);
|
||||
console.log(bdata);
|
||||
bdata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
二级: $js.toString(() => {
|
||||
console.log("调试信息2" + input);
|
||||
let data = vodids(input);
|
||||
//console.log(data);
|
||||
VOD = (data);
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let ddata = seach(input);
|
||||
ddata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"请求头": "手机",
|
||||
"编码": "UTF-8",
|
||||
"简介": "简 介:&&</p>",
|
||||
"线路数组": "javascript:;\">&&</a>",
|
||||
"数组": "<li>&&</li>",
|
||||
"图片": "data-echo=\"&&\"",
|
||||
"分类url": "https://www.wwgz.cn/vod-list-id-{cateId}-pg-{catePg}-order--by-time-class-0-year-{year}-letter--area-{area}-lang-.html",
|
||||
"分类": "短剧$26#电视剧$2#电影$1#动漫$4#综艺$3"
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"分类": "短剧$1#电视剧$2",
|
||||
"分类url": "https://www.jjduanju.com/sort/{cateId}/page/{catePg}.html"
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"搜索模式": "1",
|
||||
"搜索url": "https://www.foxjun.com/s/?q={wd}",
|
||||
"搜索数组": "class=\"media\">&&/div>",
|
||||
"搜索图片": "src=\"&&\"",
|
||||
"搜索标题": "《&&》",
|
||||
"搜索副标题": "》&&\"",
|
||||
"搜索链接": "href=\"&&\"",
|
||||
"标题": "《&&》",
|
||||
"副标题": "》&&\"",
|
||||
"影片年代": "上映日期:&&</p>",
|
||||
"影片类型": "类型:&&</p>",
|
||||
"主演": "主演:&&</p>",
|
||||
"简介": "简介:&&</p>",
|
||||
"播放数组": "<tbody>&&</tbody>",
|
||||
"播放列表": "<a&&/a>[包含:magnet]",
|
||||
"播放标题": ">&&<",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"分类url": "https://www.foxjun.com/channel/{cateId}.html?apage1={catepg}",
|
||||
"分类": "国产剧$guochanju#电影$dianying#动画$donghua#美欧剧$meiouju#日韩剧$rihanju"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"首页": "0",
|
||||
"线路标题": "module-tab-value\">&&</span>",
|
||||
"分类url": "http://www.ppxys.vip/s/{cateId}/area/{area}/by/{by}/class/{class}/lang/{lang}/letter/{letter}/page/{catePg}/year/{year}.html",
|
||||
"分类": "剧集$1#电影$2#动漫番剧$3"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"简介": "tt\" style=*>&&</div>",
|
||||
"数组": "<a&&module-item-pic",
|
||||
"副标题": "module-item-text\">&&</div>",
|
||||
"搜索url": "https://xiuer.pro/vod/search/?wd={wd}",
|
||||
"分类url": "https://xiuer.pro/show/{cateId}/area/{area}/class/{class}/page/{catePg}/year/{year}/",
|
||||
"分类": "短剧$duanju#电视剧$dianshiju#电影$dianying#动漫$dongman#综艺$zongyi"
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"规则名": "百思派电影网",
|
||||
"请求头参数": "手机",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "0",
|
||||
"是否开启获取首页数据": "1",
|
||||
"首页推荐链接": "https://www.bestpipe.cn",
|
||||
"首页列表数组规则": "body&&.stui-vodlist",
|
||||
"首页片单列表数组规则": "li",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "https://www.bestpipe.cn/vodshow/{cateId}-{area}-{by}-{class}-{lang}----{catePg}---{year}.html",
|
||||
"分类名称": "电影&剧集&短剧&动漫&综艺",
|
||||
"分类名称替换词": "20&21&24&22&23",
|
||||
"筛选数据": "ext",
|
||||
"筛选类型名称": "Netflix&剧情&科幻&动作&喜剧&爱情&冒险&儿童&歌舞&音乐&奇幻&动画&恐怖&惊悚&战争&传记&纪录&犯罪&悬疑&西部&灾难&古装&武侠&家庭&短片&校园&文艺&运动&青春&同性&励志&历史||Netflix&欧美&短剧&古装&武侠&励志&家庭&剧情&喜剧&战争&科幻&惊悚&恐怖&悬疑&犯罪&动作&冒险&历史&同性||古代&现代&穿越&玄幻&霸总&英雄救美&未婚妻&师姐&绝美&逆袭&美女&爱情&甜宠&虐恋&爽剧&搞笑&情感&动漫&萌宝&都市&言情&重生&乡村&神医&幻想&反转&复仇&修仙&古装&男频||Netflix&热血&科幻&美少女&魔幻&经典&励志&少儿&冒险&搞笑&推理&恋爱&治愈&幻想&校园&动物&机战&亲子&儿歌&运动&悬疑&怪物&战争&益智&青春&童话&竞技&动作&社会&友情&真人版&电影版&OVA版&TV版&新番动画&完结动画||Netflix&脱口秀&真人秀&选秀&八卦&访谈&情感&生活&晚会&搞笑&音乐&时尚&游戏&少儿&体育&纪实&科教&曲艺&歌舞&财经&汽车&播报&其他",
|
||||
"筛选类型替换词": "*",
|
||||
"筛选地区名称": "大陆&香港&台湾&美国&日本&韩国&英国&法国&德国&印度&泰国&丹麦&瑞典&巴西&加拿大&俄罗斯&意大利&比利时&爱尔兰&西班牙&澳大利亚&其它||大陆&香港&韩国&美国&日本&法国&英国&德国&台湾&泰国&印度&其他||大陆&香港&韩国&美国&日本&法国&英国&德国&台湾&泰国&印度&其他||大陆&日本&欧美&其他||大陆&韩国&香港&台湾&美国&其它",
|
||||
"筛选地区替换词": "*",
|
||||
"筛选语言名称": "英语&法语&国语&粤语&日语&韩语&泰语&德语&俄语&闽南语&丹麦语&波兰语&瑞典语&印地语&挪威语&意大利语&西班牙语||空||空||国语&英语&粤语&闽南语&韩语&日语&其它||国语&英语&粤语&闽南语&韩语&日语&其它",
|
||||
"筛选语言替换词": "*",
|
||||
"详情是否Jsoup写法": "是",
|
||||
"类型详情": ".stui-content__detail&&.data,1&&Text!状态:",
|
||||
"年代详情": ".stui-content__detail&&.data,4&&Text!年份:",
|
||||
"地区详情": ".stui-content__detail&&.data,2&&Text!地区:",
|
||||
"演员详情": ".stui-content__detail&&.data,6&&Text!主演:",
|
||||
"简介详情": ".stui-content__detail&&.detail-content&&Text",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": "body&&.stui-vodlist__box",
|
||||
"分类片单是否Jsoup写法": "1",
|
||||
"分类片单标题": "a&&title",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": ".stui-vodlist__thumb&&data-original",
|
||||
"分类片单副标题": ".pic-text&&Text",
|
||||
"分类片单链接加前缀": "https://www.bestpipe.cn",
|
||||
"搜索请求头参数": "User-Agent$手机",
|
||||
"搜索链接": "https://www.bestpipe.cn/vodsearch/{wd}----------1---.html",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": "body&&.stui-vodlist__box",
|
||||
"搜索片单是否Jsoup写法": "1",
|
||||
"搜索片单标题": "a&&title",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单图片": ".stui-vodlist__thumb&&data-original",
|
||||
"搜索片单副标题": ".pic-text&&Text",
|
||||
"搜索片单链接加前缀": "https://www.bestpipe.cn",
|
||||
"线路列表数组规则": "body&&.nav-tabs&&a",
|
||||
"线路标题": "Text",
|
||||
"播放列表数组规则": "body&&.stui-content__playlist",
|
||||
"选集列表数组规则": "a",
|
||||
"选集标题链接是否Jsoup写法": "1",
|
||||
"选集标题": "a&&Text",
|
||||
"选集链接": "a&&href",
|
||||
"是否反转选集序列": "0",
|
||||
"选集链接加前缀": "https://www.bestpipe.cn",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "2",
|
||||
"是否开启手动嗅探": "0",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
||||
+74
-78
@@ -72,7 +72,7 @@
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"danmu": true,
|
||||
"site": "aHR0cDovL29wLnlzZHFqcy5jbg=="
|
||||
"site": "aHR0cDovL3R0LnlzZHFqcy5jbg=="
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -199,20 +199,6 @@
|
||||
"api": "./JS/drpy2.min.js",
|
||||
"ext": "./JS/米兔弹幕.js"
|
||||
},
|
||||
{
|
||||
"key": "小熊弹幕",
|
||||
"name": "小熊|弹幕",
|
||||
"type": 3,
|
||||
"api": "./JS/drpy2.min.js",
|
||||
"ext": "./JS/小熊弹幕.js"
|
||||
},
|
||||
{
|
||||
"key": "巨人弹幕",
|
||||
"name": "巨人|弹幕",
|
||||
"type": 3,
|
||||
"api": "./JS/drpy2.min.js",
|
||||
"ext": "./JS/巨人弹幕.js"
|
||||
},
|
||||
{
|
||||
"key": "追剧弹幕",
|
||||
"name": "追剧|弹幕",
|
||||
@@ -220,20 +206,6 @@
|
||||
"api": "./JS/drpy2.min.js",
|
||||
"ext": "./JS/追剧弹幕.js"
|
||||
},
|
||||
{
|
||||
"key": "梦米弹幕",
|
||||
"name": "梦米|弹幕",
|
||||
"type": 3,
|
||||
"api": "./JS/drpy2.min.js",
|
||||
"ext": "./JS/梦米弹幕.js"
|
||||
},
|
||||
{
|
||||
"key": "小虎斑弹幕",
|
||||
"name": "小虎斑|弹幕",
|
||||
"type": 3,
|
||||
"api": "./JS/drpy2.min.js",
|
||||
"ext": "./JS/小虎斑弹幕.js"
|
||||
},
|
||||
{
|
||||
"key": "三六零弹幕",
|
||||
"name": "三六零|弹幕",
|
||||
@@ -396,7 +368,7 @@
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"site": "http://muou.6qu.top",
|
||||
"site": "https://mogg.banye.tech:7086",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
@@ -417,22 +389,6 @@
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克虎斑弹幕",
|
||||
"name": "虎斑|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_Wobg",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"site": "https://huban.banye.tech:7086",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克下饭弹幕",
|
||||
"name": "下饭|4K弹幕",
|
||||
@@ -449,6 +405,38 @@
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克二小弹幕",
|
||||
"name": "二小|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_Wobg",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"site": "https://enxiao.banye.tech:7086",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "夸克百家弹幕",
|
||||
"name": "百家|4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_Wobg",
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"token": "http://127.0.0.1:9978/file/TVBox/token.txt",
|
||||
"cookie": "http://127.0.0.1:9978/file/TVBox/quark.txt",
|
||||
"uc_cookie": "http://127.0.0.1:9978/file/TVBox/uc.txt",
|
||||
"site": "http://cj.jiexi.news",
|
||||
"danmu": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "雷鲸",
|
||||
"name": "雷鲸|4K",
|
||||
@@ -504,13 +492,6 @@
|
||||
"filterable": 0,
|
||||
"ext": "KhY021WelCEl+6MsvwnzaPussky/EAoc9z7C4keyHaEQ+sKbXhMKd83VjTL7Ls6+m7XDIcGdziOxPv79y/h4QCvmOEJmZ1VD6dopzAVxkFzEFw=="
|
||||
},
|
||||
{
|
||||
"key": "吉吉短剧",
|
||||
"name": "吉吉|短剧",
|
||||
"type": 3,
|
||||
"api": "csp_XBPQ",
|
||||
"ext": "./XBPQ/吉吉短剧.json"
|
||||
},
|
||||
{
|
||||
"key": "爱我短剧",
|
||||
"name": "爱我|短剧",
|
||||
@@ -547,16 +528,6 @@
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "酷影视",
|
||||
"name": "酷影视|APP",
|
||||
"type": 3,
|
||||
"api": "csp_AppYsV2",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "https://www.tvkuys.xyz/api.php/app/"
|
||||
},
|
||||
{
|
||||
"key": "HG影视",
|
||||
"name": "HG影视|APP",
|
||||
@@ -596,7 +567,7 @@
|
||||
},
|
||||
{
|
||||
"key": "永夜",
|
||||
"name": "永夜|App",
|
||||
"name": "永夜|APP",
|
||||
"type": 3,
|
||||
"api": "csp_Muou",
|
||||
"playerType": 2,
|
||||
@@ -612,12 +583,20 @@
|
||||
},
|
||||
{
|
||||
"key": "二三",
|
||||
"name": "二三|App",
|
||||
"name": "二三|APP",
|
||||
"type": 3,
|
||||
"api": "csp_Muou",
|
||||
"playerType": 2,
|
||||
"ext": "caHR0cHM6Ly8xMjN5c3cuY29tfDIz5b2x6KeGfDQuMS44"
|
||||
},
|
||||
{
|
||||
"key": "油条",
|
||||
"name": "油条|APP",
|
||||
"type": 3,
|
||||
"api": "csp_Muou",
|
||||
"playerType": 2,
|
||||
"ext": "caHR0cDovL3UzYS50dHhnenMuY2585LyY5LyY5YWUfDQuMS45"
|
||||
},
|
||||
{
|
||||
"key": "时常",
|
||||
"name": "时常|APP",
|
||||
@@ -868,23 +847,19 @@
|
||||
"quickSearch": 1,
|
||||
"filterable": 1
|
||||
},
|
||||
{
|
||||
"key": "南瓜影视",
|
||||
"name": "南瓜|影视",
|
||||
"type": 3,
|
||||
"api": "csp_NanGua",
|
||||
"playerType": 1,
|
||||
"ext": "maHR0cDovL25nLmNoYW5nbWVuZ3l1bi5jb20="
|
||||
},
|
||||
{
|
||||
"key": "农民影视",
|
||||
"name": "农民|影视",
|
||||
"type": 3,
|
||||
"api": "csp_Wwys",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "https://m.wwgz.cn"
|
||||
"api": "csp_XBPQ",
|
||||
"ext": "./XBPQ/农民影视.json"
|
||||
},
|
||||
{
|
||||
"key": "秀儿影视",
|
||||
"name": "秀儿|影视",
|
||||
"type": 3,
|
||||
"api": "csp_XBPQ",
|
||||
"ext": "./XBPQ/秀儿影视.json"
|
||||
},
|
||||
{
|
||||
"key": "低端影视",
|
||||
@@ -1070,6 +1045,16 @@
|
||||
"api": "./JS/drpy2.min.js",
|
||||
"ext": "./JS/碟调影视.js"
|
||||
},
|
||||
{
|
||||
"key": "百思派",
|
||||
"name": "百思派|影视",
|
||||
"type": 3,
|
||||
"api": "csp_XYQHiker",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "./XYQHiker/百思派.json"
|
||||
},
|
||||
{
|
||||
"key": "电影牛",
|
||||
"name": "电影牛|影视",
|
||||
@@ -1679,6 +1664,17 @@
|
||||
"filterable": 1,
|
||||
"ext": "./XYQHiker/电影港.json"
|
||||
},
|
||||
{
|
||||
"key": "狐狸君",
|
||||
"name": "狐狸君|磁力",
|
||||
"type": 3,
|
||||
"api": "csp_XBPQ",
|
||||
"changeable": 1,
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "./XBPQ/狐狸君.json"
|
||||
},
|
||||
{
|
||||
"key": "布谷TV",
|
||||
"name": "布谷TV|磁力",
|
||||
|
||||
Binary file not shown.
@@ -1,37 +1,23 @@
|
||||
#EXTM3U
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226895/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EI0Rkc6neBYgfpoJ1yud8Fw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPpqgHe3PQ5GNQoO-yUgA8C%2CEND
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://kkk.jjjj.jiduo.me/api.php?n=tttt&id=8953&tk=a0c4f6cfaba3
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226895/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EI0Rkc6neBYgfpoJ1yud8Fw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPpqgHe3PQ5GNQoO-yUgA8C%2CEND$LR•IPV6『线路26』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://221.226.4.10:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路195』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://39.164.180.36:19901/tsfile/live/0001_2.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路200』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://112.6.165.112:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路278』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://218.93.208.172:35455/migu/608807420.m3u8?migutoken=c1e47192e21ebd32f0cc762a6749923a27468f3c407786209ce921f54a3faab96bf61281f3baee22f2ea266b1ec7e46d7bdfab0916f461bf38474fe38d0bdb2dcc56ee56853b8d6c509d866d80
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://tv.20191209.xyz:37377/migu/608807420.m3u8?migutoken=004b385f879c68b1898b3b528c53ce2cc69a05fc6ccef397d5ff725950f98cc37983a6c0565ab535a964de0b80663b3a394fd8a43c51d0547d2e232162525de45bdb07292d1fc1944aea97f0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://148.135.93.213:81/live.php?id=CCTV1
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://112.6.165.112:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://183.215.134.239:19901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://123.149.3.11:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://1.180.2.93:9901/tsfile/live/1020_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://113.140.12.230:8888/newlive/live/hls/15/live.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://221.226.4.10:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://220.202.110.48:9003/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://z.b.bkpcp.top/m.php?id=cctv1
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://202.168.187.208:9089/tsfile/live/1003_1.m3u8
|
||||
@@ -42,179 +28,43 @@ http://xiaoya.crccxw.top:35455/gaoma/cctv1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://221.226.4.10:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路280』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://220.202.110.48:9003/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路286』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://58.220.211.90:352/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路291』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://175.31.21.146:4480/hls/1/index.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://lt.hxtre.com:35455/itv/1000000001000018602.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://lt.hxtre.com:35455/itv/1000000001000021973.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://39.164.180.36:19901/tsfile/live/0001_2.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV1
|
||||
http://goo.bkpcp.top/mg/cctv1
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://148.135.93.213:81/live.php?id=CCTV2
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://218.93.208.172:35455/migu/631780532.m3u8?migutoken=f37996961dda807c76bd64f9a2747f07f7fd95917e411e96a40281fd628bc4000eb7f71344d3bca848bfba138c3988d53652cdbc6fc8225515f1c0e1ea6c8920e7d1e957628a334e765280cc07
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://xiaoya.crccxw.top:35455/gaoma/cctv2.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://39.164.180.36:19901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路181』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://112.6.165.112:9901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路184』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://123.254.110.101:5000/1000000001000023315/ystenlive/index.m3u8$LR•IPV4『线路257』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://120.76.248.139/live/bfgd/4200000061.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://tv.20191209.xyz:37377/migu/631780532.m3u8?migutoken=862217ff2cffee0a741039e700509cb8f9a8b1920fe6cee55afb89ef1551eba3ecc744e93cf8e52cd8b4bf1a27c7a074745b640058072bfa4ad145917cdeb959261218d7b78174684a74ae78
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://183.215.134.239:19901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://123.149.3.11:9901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://1752e145z8.vicp.fun:35455/gaoma/cctv2.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://39.164.180.36:19901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路168』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://221.226.4.10:9901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路273』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://39.164.180.36:19901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://221.226.4.10:9901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://202.168.187.208:9089/tsfile/live/0002_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://jf.jxx2023.work:40446/tsfile/live/0002_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://39.164.180.36:19901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路264』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://221.226.4.10:9901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路269』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV2
|
||||
http://lt.hxtre.com:35455/itv/1000000001000012442.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://202.168.187.208:9089/tsfile/live/0003_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://148.135.93.213:81/live.php?id=CCTV3
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://218.93.208.172:35455/migu/624878271.m3u8?migutoken=fc4d3188808753792a59fb9fb632ad0e1d099d6828db8758f8c977a28dc480e969bef66e8cd942d53ce07a039791c90b959a0f75df560f5966e3f5ed7c8cf5bbb0fac0f4394f21d52636ca79cb
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://222.169.85.8:9901/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://39.164.180.36:19901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路166』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://123.254.110.101:5000/1000000005000265003/ystenlive/index.m3u8$LR•IPV4『线路246』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://z.b.bkpcp.top/m.php?id=cctv3
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://goo.bkpcp.top/mg/cctv3
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://183.215.134.239:19901/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://123.149.3.11:9901/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://ak6668768.zicp.io:8802/live1003.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://39.164.180.36:19901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV3
|
||||
http://lt.hxtre.com:35455/itv/1000000005000265003.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://goo.bkpcp.top/mg/cctv4
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226470/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0wP1dRMt9qCzHdvA65wh1w%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMcuN2HH7RLPyPHWOUWhSMk%2CEND
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226335/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EBFJ5gRpm8ntK8JEFPZOhLQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://z.b.bkpcp.top/m.php?id=cctv4
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://148.135.93.213:81/live.php?id=CCTV4
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://218.93.208.172:35455/migu/631780421.m3u8?migutoken=c7f507bbd9cce24c2acdc93defad48a900f168c4ca906d6038ab0f6139f63ebe0ddaadfce8581b4e0014595c5d9de27f08f2398874e7990b2f98bca8c5e37775005a38dfdd40f4ea9bbfa10d23
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://kkk.jjjj.jiduo.me/api.php?n=tttt&id=2634&tk=a0c4f6cfaba3
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://kkk.jjjj.jiduo.me/api.php?n=tttt&id=9394&tk=a0c4f6cfaba3
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226335/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EBFJ5gRpm8ntK8JEFPZOhLQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND$LR•IPV6『线路24』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://221.226.4.10:9901/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路267』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226335/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EBFJ5gRpm8ntK8JEFPZOhLQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND$LR•IPV6『线路22』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://221.226.4.10:9901/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路179』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://39.164.180.36:19901/tsfile/live/0004_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路191』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226470/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0wP1dRMt9qCzHdvA65wh1w%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMcuN2HH7RLPyPHWOUWhSMk%2CEND$LR•IPV6『线路23』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://tv.20191209.xyz:37377/migu/631780421.m3u8?migutoken=40b6a739d50c9611ac1bd3d6237cc8012f7bd8bd06945da894d03e393a3af480e950d8dc5e1a28cc2b74626afd48a747c2298114358e3f95be67743f3627ea5c2b12422eb6f434b52d57ce8c
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://z.b.bkpcp.top/m.php?id=cctv4o
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://1752e145z8.vicp.fun:35455/gaoma/cctv4.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://123.149.3.11:9901/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://113.140.12.230:8888/newlive/live/hls/5/live.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://221.226.4.10:9901/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路312』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://60.214.104.110:352/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路267』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://221.226.4.10:9901/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路270』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://221.226.4.10:9901/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://39.164.180.36:19901/tsfile/live/0004_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV4
|
||||
http://60.214.104.110:352/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://148.135.93.213:81/live.php?id=CCTV5
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://218.93.208.172:35455/migu/641886683.m3u8?migutoken=87d52e3d24e7d2e911e3dfd7ea18495fc128afee9e8b63e2945bdf50bb2105992d65245e2b914f41bb1b7218c76012d8e20573dfc0ca6ff336e3ba39c0a26c95030a5f99b9264b0583d92caea8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://221.2.148.205:8154/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路42』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://39.164.180.36:19901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路192』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://182.91.124.224:9901/tsfile/live/faacts/0005_2.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路219』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://221.226.4.10:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路268』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://tv.20191209.xyz:37377/migu/641886683.m3u8?migutoken=81d12cec2983a402e950068a320720875c9b84d86ead50b7ee5cc3d407f55f3d85a8e298762710bc211027e047162ea27025e20dda4ac4921a6c1d8b950dbe297e15174889d5122c0e3462d0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://3501776.xyz:35455/gaoma/cctv5.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://123.149.3.11:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://1.180.2.93:9901/tsfile/live/1027_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://113.140.12.230:8888/newlive/live/hls/6/live.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://221.226.4.10:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路300』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://221.226.4.10:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://182.91.124.224:9901/tsfile/live/faacts/0005_2.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路212』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://221.226.4.10:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路296』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://202.168.187.208:9089/tsfile/live/0005_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://39.164.180.36:19901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5
|
||||
http://lt.hxtre.com:35455/gaoma/cctv5.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226458/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Em70vyfVI_MkrcLYjHWnqOA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNlS0O1LA8iGydXPYujpRue%2CEND
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226894/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EevWZ0zmguDsOY_Mf3SM5TA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://148.135.93.213:81/live.php?id=CCTV5p
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://kkk.jjjj.jiduo.me/api.php?n=tttt&id=7404&tk=a0c4f6cfaba3
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226458/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Em70vyfVI_MkrcLYjHWnqOA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNlS0O1LA8iGydXPYujpRue%2CEND$LR•IPV6『线路20』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
@@ -222,135 +72,51 @@ http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/322122
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://1752e145z8.vicp.fun:35455/gaoma/cctv5p.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://39.164.180.36:19901/tsfile/live/0016_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路152』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://z.b.bkpcp.top/m.php?id=cctv5p
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://120.76.248.139/live/bfgd/4200000246.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://183.215.134.239:19901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://221.226.4.10:9901/tsfile/live/0005_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://60.214.104.110:352/tsfile/live/0016_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://xiaoya.crccxw.top:35455/gaoma/cctv5p.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://lt.hxtre.com:35455/gaoma/cctv5p.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://lt.hxtre.com:35455/itv/1000000005000265016.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="央视频道",CCTV5+
|
||||
http://39.164.180.36:19901/tsfile/live/0016_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV6
|
||||
http://goo.bkpcp.top/mg/cctv6
|
||||
#EXTINF:-1 group-title="央视频道",CCTV6
|
||||
http://148.135.93.213:81/live.php?id=CCTV6
|
||||
#EXTINF:-1 group-title="央视频道",CCTV6
|
||||
http://42.48.105.224:9002/tsfile/live/0006_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV6
|
||||
http://123.149.3.11:9901/tsfile/live/0006_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV6
|
||||
http://113.140.12.230:8888/newlive/live/hls/7/live.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV6
|
||||
http://ak6668768.zicp.io:8805/live1006.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV6
|
||||
http://tv.20191209.xyz:37377/migu/624878396.m3u8?migutoken=14b6f481c50ac947cd74bf4b212c490bc99f4bebefd4ce18011c9eb269208a0ce9740af370135e855763df734bac8f57f36721ae54b6afc81829420e84f46c65a2de80938b057c6ec23459eb
|
||||
#EXTINF:-1 group-title="央视频道",CCTV6
|
||||
http://z.b.bkpcp.top/m.php?id=cctv6
|
||||
#EXTINF:-1 group-title="央视频道",CCTV6
|
||||
http://lt.hxtre.com:35455/itv/1000000001000016466.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="央视频道",CCTV6
|
||||
http://39.164.180.36:19901/tsfile/live/0006_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226234/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EutDC7HLJc_gC0YdIDr7oig%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPOHuulzlCcw92vP3vgYa4n%2CEND
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://z.b.bkpcp.top/m.php?id=cctv7
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://148.135.93.213:81/live.php?id=CCTV7
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://8.138.7.223/tv/cctv7.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226234/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EutDC7HLJc_gC0YdIDr7oig%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPOHuulzlCcw92vP3vgYa4n%2CEND$LR•IPV6『线路23』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://182.37.169.94:352/tsfile/live/0007_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路183』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226234/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EutDC7HLJc_gC0YdIDr7oig%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPOHuulzlCcw92vP3vgYa4n%2CEND$LR•IPV6『线路24』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://1752e145z8.vicp.fun:35455/gaoma/cctv7.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://39.164.180.36:19901/tsfile/live/0007_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路189』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://123.149.3.11:9901/tsfile/live/0007_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://lt.hxtre.com:35455/itv/1000000005000265007.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://lt.hxtre.com:35455/gaoma/cctv7.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://lt.hxtre.com:35455/itv/1000000001000024341.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://39.164.180.36:19901/tsfile/live/0007_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV7
|
||||
http://183.66.15.146:60901/tsfile/live/0007_1.m3u8?key=txiptv
|
||||
#EXTINF:-1 group-title="央视频道",CCTV8
|
||||
http://148.135.93.213:81/live.php?id=CCTV8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV8
|
||||
http://1752e145z8.vicp.fun:35455/gaoma/cctv8.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV8
|
||||
http://z.b.bkpcp.top/m.php?id=cctv8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV8
|
||||
http://183.215.134.239:19901/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV8
|
||||
http://123.149.3.11:9901/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV8
|
||||
http://113.140.12.230:8888/newlive/live/hls/9/live.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV8
|
||||
http://zzssw01.55555.io:9901/tsfile/live/0008_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV8
|
||||
http://222.169.85.8:9901/tsfile/live/0008_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV8
|
||||
http://39.164.180.36:19901/tsfile/live/0008_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV8
|
||||
http://xiaoya.crccxw.top:35455/gaoma/cctv8.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV9
|
||||
http://z.b.bkpcp.top/m.php?id=cctv9
|
||||
#EXTINF:-1 group-title="央视频道",CCTV9
|
||||
http://148.135.93.213:81/live.php?id=CCTV9
|
||||
#EXTINF:-1 group-title="央视频道",CCTV9
|
||||
http://39.164.180.36:19901/tsfile/live/0009_1.m3u8?key=txiptv&playlive=0&au
|
||||
#EXTINF:-1 group-title="央视频道",CCTV9
|
||||
http://123.149.3.11:9901/tsfile/live/0009_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV9
|
||||
http://tv.20191209.xyz:37377/migu/673168140.m3u8?migutoken=f031388105c748c586faaad9c60beb6810562043675d6edc5e20d12b433d4ca6cb365c3f3ae060a000a9d0dfcfe0e27fef16bfe073d28cb40758aaa79ab380a9015815cfe9bfc4e6413e284a
|
||||
#EXTINF:-1 group-title="央视频道",CCTV9
|
||||
http://221.226.4.10:9901/tsfile/live/0009_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV9
|
||||
http://221.226.4.10:9901/tsfile/live/0009_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV9
|
||||
http://39.164.180.36:19901/tsfile/live/0009_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV10
|
||||
http://goo.bkpcp.top/mg/cctv10
|
||||
#EXTINF:-1 group-title="央视频道",CCTV10
|
||||
http://148.135.93.213:81/live.php?id=CCTV10
|
||||
#EXTINF:-1 group-title="央视频道",CCTV10
|
||||
http://xiaoya.crccxw.top:35455/gaoma/cctv10.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV10
|
||||
http://z.b.bkpcp.top/m.php?id=cctv10
|
||||
#EXTINF:-1 group-title="央视频道",CCTV10
|
||||
http://120.76.248.139/live/bfgd/4200000129.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV10
|
||||
http://123.149.3.11:9901/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV10
|
||||
http://39.164.180.36:19901/tsfile/live/0010_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV10
|
||||
http://182.37.169.94:352/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV10
|
||||
http://60.214.104.110:352/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV10
|
||||
http://221.226.4.10:9901/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV10
|
||||
http://221.226.4.10:9901/tsfile/live/0010_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV10
|
||||
http://lt.hxtre.com:35455/gaoma/cctv10.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV11
|
||||
http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226334/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0RcQQbNseiHvFO8XWf466A%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
#EXTINF:-1 group-title="央视频道",CCTV11
|
||||
@@ -358,17 +124,7 @@ http://kkk.jjjj.jiduo.me/api.php?n=tttt&id=8830&tk=a0c4f6cfaba3
|
||||
#EXTINF:-1 group-title="央视频道",CCTV11
|
||||
http://xiaoya.crccxw.top:35455/gaoma/cctv11.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV11
|
||||
http://148.135.93.213:81/live.php?id=CCTV11
|
||||
#EXTINF:-1 group-title="央视频道",CCTV11
|
||||
http://123.149.3.11:9901/tsfile/live/0011_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV11
|
||||
http://tv.20191209.xyz:37377/migu/667987558.m3u8?migutoken=d3962834d5d359e6f7f25a8880b73dac381a999ef87ba6b7f0f985bb5308a73061bbf5a9abdf873debb3b83b31eb7eff72f410c853c86f404b3f3ef269aeb631982e338f1400adcaf902fff7
|
||||
#EXTINF:-1 group-title="央视频道",CCTV11
|
||||
http://39.164.180.36:19901/tsfile/live/0011_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV11
|
||||
http://39.164.160.249:9901/tsfile/live/0011_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV11
|
||||
http://lt.hxtre.com:35455/itv/1000000005000265011.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="央视频道",CCTV12
|
||||
http://goo.bkpcp.top/mg/cctv12
|
||||
#EXTINF:-1 group-title="央视频道",CCTV12
|
||||
@@ -378,23 +134,9 @@ http://148.135.93.213:81/live.php?id=CCTV12
|
||||
#EXTINF:-1 group-title="央视频道",CCTV12
|
||||
http://xiaoya.crccxw.top:35455/gaoma/cctv12.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV12
|
||||
http://123.149.3.11:9901/tsfile/live/0012_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV12
|
||||
http://j.x.bkpcp.top/jx/CCTV12HD
|
||||
#EXTINF:-1 group-title="央视频道",CCTV12
|
||||
http://39.164.180.36:19901/tsfile/live/0012_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV12
|
||||
http://221.226.4.10:9901/tsfile/live/0012_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV12
|
||||
http://221.226.4.10:9901/tsfile/live/0012_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV12
|
||||
http://183.66.15.146:60901/tsfile/live/0012_1.m3u8?key=txiptv
|
||||
#EXTINF:-1 group-title="央视频道",CCTV12
|
||||
http://183.66.15.146:60901/tsfile/live/0012_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
http://goo.bkpcp.top/mg/cctv13
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
http://xiaoya.crccxw.top:35455/gaoma/cctv13.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226316/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EqHPe9pEEWJ00hz1ArnRZVA%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
@@ -402,46 +144,26 @@ http://148.135.93.213:81/live.php?id=CCTV13
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
http://183.215.134.239:19901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
http://123.149.3.11:9901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
http://j.x.bkpcp.top/jx/CCTV13HD
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
https://event.pull.hebtv.com/jishi/cp1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
http://tv.20191209.xyz:37377/migu/608807423.m3u8?migutoken=948b8b51df7e776bcf238bb9088879a2b71a25a424b0d80d5e71375315cda109c5aab5c79693c4324d45ad012e70208234f659abbe606a595a03d29e06ce931ed56f129fbc95a505ab84f72c
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
http://z.b.bkpcp.top/m.php?id=cctv13
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
http://39.164.180.36:19901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
http://lt.hxtre.com:35455/gaoma/cctv13.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
http://61.163.181.78:9901/tsfile/live/0013_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV13
|
||||
http://116.128.243.121:85/tsfile/live/0013_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV14
|
||||
http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226229/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ey_UgKg-_uoDiTW1MNHptPg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNLabf3bHEXv4444iiOs_Px%2CEND
|
||||
#EXTINF:-1 group-title="央视频道",CCTV14
|
||||
http://148.135.93.213:81/live.php?id=CCTV14
|
||||
#EXTINF:-1 group-title="央视频道",CCTV14
|
||||
http://goo.bkpcp.top/mg/cctv14
|
||||
#EXTINF:-1 group-title="央视频道",CCTV14
|
||||
http://tv.20191209.xyz:37377/migu/624878440.m3u8?migutoken=d84c14c00275d7fa951be2b0a959b0c1af15c62e7f86732fa2306e3a92f447f5b841e0cc26645dc89e70e970812e2c07c2fe24ae5c02b854544ed8c99d6c6d668a402d58cf351e77b5311afd
|
||||
#EXTINF:-1 group-title="央视频道",CCTV14
|
||||
http://123.149.3.11:9901/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV14
|
||||
https://event.pull.hebtv.com/jishi/cp2.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV14
|
||||
http://222.169.85.8:9901/tsfile/live/0014_1.m3u8?key=txiptv
|
||||
#EXTINF:-1 group-title="央视频道",CCTV14
|
||||
http://221.226.4.10:9901/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV14
|
||||
http://221.226.4.10:9901/tsfile/live/0014_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV14
|
||||
http://39.164.160.249:9901/tsfile/live/0014_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV14
|
||||
http://39.164.180.36:19901/tsfile/live/0014_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV14
|
||||
http://222.169.85.8:9901/tsfile/live/0014_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV15
|
||||
http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226333/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EWyklhmFh7oMx-lG1tNUcSQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
@@ -451,61 +173,23 @@ http://148.135.93.213:81/live.php?id=CCTV15
|
||||
http://xiaoya.crccxw.top:35455/gaoma/cctv15.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV15
|
||||
http://120.76.248.139/live/bfgd/4200000133.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV15
|
||||
http://123.149.3.11:9901/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV15
|
||||
http://39.164.160.249:9901/tsfile/live/0015_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV15
|
||||
http://lt.hxtre.com:35455/gaoma/cctv15.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV15
|
||||
https://stream1.freetv.fun/9350a599d0593a4eb692e9a5c26a4b0777dc9758db460b4e02a9ffa970765999.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV15
|
||||
http://z.b.bkpcp.top/m.php?id=cctv15
|
||||
#EXTINF:-1 group-title="央视频道",CCTV16
|
||||
http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227002/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EX9goLRw26BM_r54des2PAw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPt5W7-RovMDpE-7B-0PhHw%2CEND
|
||||
#EXTINF:-1 group-title="央视频道",CCTV16
|
||||
http://lt.hxtre.com:35455/itv/1000000006000233001.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="央视频道",CCTV16
|
||||
http://lt.hxtre.com:35455/gaoma/cctv16.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV16
|
||||
http://lt.hxtre.com:35455/itv/1000000006000233002.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="央视频道",CCTV17
|
||||
http://148.135.93.213:81/live.php?id=CCTV17
|
||||
#EXTINF:-1 group-title="央视频道",CCTV17
|
||||
http://lt.hxtre.com:35455/gaoma/cctv17.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV17
|
||||
http://182.37.169.94:352/tsfile/live/0019_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV17
|
||||
http://222.169.85.8:9901/tsfile/live/0007_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV17
|
||||
http://z.b.bkpcp.top/m.php?id=cctv17
|
||||
#EXTINF:-1 group-title="央视频道",CCTV17
|
||||
http://220.164.192.48:50085/tsfile/live/0018_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路33』
|
||||
#EXTINF:-1 group-title="央视频道",CCTV17
|
||||
http://120.76.248.139/live/bfgd/4200000204.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV电影轮播
|
||||
http://zby.xjqxz.top/lljdy/live.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV女性时尚
|
||||
http://180.213.174.225:9901/tsfile/live/1054_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV怀旧剧场
|
||||
http://jf.jxx2023.work:40446/tsfile/live/1149_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV怀旧剧场
|
||||
http://180.213.174.225:9901/tsfile/live/1049_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="央视频道",CCTV第一剧场
|
||||
http://jf.jxx2023.work:40446/tsfile/live/1049_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV风云剧场
|
||||
http://jf.jxx2023.work:40446/tsfile/live/1150_1.m3u8
|
||||
#EXTINF:-1 group-title="央视频道",CCTV20241
|
||||
https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream_bduid_6488563992_8982723413/merged_1707497046297_88536_25144_41936.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",安徽卫视
|
||||
http://iptv.huuc.edu.cn/hls/ahhd.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",安徽卫视
|
||||
http://j.x.bkpcp.top/jx/ANHUIHD
|
||||
#EXTINF:-1 group-title="卫视频道",安徽卫视
|
||||
http://112.123.243.37:50085/tsfile/live/0130_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",安徽卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0130_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",安徽卫视
|
||||
http://222.169.85.8:9901/tsfile/live/0130_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",安徽卫视
|
||||
http://t8622699o8.vicp.fun:60024/itv/1000000001000030159.m3u8?cdn=ystenlive
|
||||
@@ -518,38 +202,14 @@ http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/322122
|
||||
#EXTINF:-1 group-title="卫视频道",北京卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1012_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",北京卫视
|
||||
http://183.215.134.239:19901/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",北京卫视
|
||||
http://123.149.3.11:9901/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",北京卫视
|
||||
http://j.x.bkpcp.top/jx/BEIJHD
|
||||
#EXTINF:-1 group-title="卫视频道",北京卫视
|
||||
http://220.164.192.48:50085/tsfile/live/0135_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",北京卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0122_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",北京卫视
|
||||
http://58.220.211.90:352/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",北京卫视HD
|
||||
http://120.76.248.139/live/bfgd/4200000083.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",兵团卫视
|
||||
http://liveout.btzx.com.cn/62ds9e/yil08g.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",藏语卫视
|
||||
http://php.jdshipin.com:8880/xztv.php?id=zy
|
||||
#EXTINF:-1 group-title="卫视频道",重庆卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1015_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",重庆卫视
|
||||
http://123.149.3.11:9901/tsfile/live/0142_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",重庆卫视
|
||||
http://iptv.huuc.edu.cn/hls/cqhd.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",重庆卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0142_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",东方卫视
|
||||
http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226237/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EuOKqNaOUqqiJjXIfPoRPMQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNeqgYr1eA9ESriCOsl_DTz%2CEND
|
||||
#EXTINF:-1 group-title="卫视频道",东方卫视
|
||||
http://www.xzbn.site:35455/itv/1000000005000265018.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="卫视频道",东方卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1013_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",东方卫视
|
||||
http://148.135.93.213:81/live.php?id=东方卫视
|
||||
#EXTINF:-1 group-title="卫视频道",东方卫视
|
||||
http://tv.20191209.xyz:37377/migu/651632648.m3u8?migutoken=a9a2b71c87ef01a1f546b80d3776d4e2ab5a03525b06b379f6d3ebca3a7a40f732115ab805783c8a8a73e5580900755cdfb3b6d3c2b9308a46141d56b6b629038613c381a9027a60e527e1c8
|
||||
@@ -558,140 +218,58 @@ http://183.215.134.239:19901/tsfile/live/0107_1.m3u8?key=txiptv&playlive=1&authi
|
||||
#EXTINF:-1 group-title="卫视频道",东方卫视
|
||||
http://113.15.109.216:59901/tsfile/live/1009_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",东方卫视
|
||||
http://z.b.bkpcp.top/m.php?id=dfws
|
||||
#EXTINF:-1 group-title="卫视频道",东方卫视
|
||||
http://222.169.85.8:9901/tsfile/live/0018_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",东方卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0107_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",东方卫视HD
|
||||
http://120.76.248.139/live/bfgd/4200000093.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",东南卫视
|
||||
http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226496/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EkZUfG47p98m2PZiCsgkhyQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNM5EcQIH6BiwZavlhPLb4oJ%2CEND
|
||||
#EXTINF:-1 group-title="卫视频道",东南卫视
|
||||
http://j.x.bkpcp.top/jx/DONGNHD
|
||||
#EXTINF:-1 group-title="卫视频道",东南卫视
|
||||
http://api3.52tb.xyz/info?id=29&token=20230402fxrjwi
|
||||
#EXTINF:-1 group-title="卫视频道",东南卫视
|
||||
http://z.b.bkpcp.top/m.php?id=dnws
|
||||
#EXTINF:-1 group-title="卫视频道",东南卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0137_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",东南卫视
|
||||
rtsp://180.95.143.19/PLTV/88888910/224/3221225853/376430608.smil
|
||||
#EXTINF:-1 group-title="卫视频道",东南卫视
|
||||
http://110.81.206.138:49231/tsfile/live/23021_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",甘肃卫视
|
||||
rtmp://livein.gstv.com.cn/49048r/y3nga4.flv
|
||||
#EXTINF:-1 group-title="卫视频道",甘肃卫视
|
||||
http://39.150.96.141:65535/tsfile/live/0141_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",甘肃卫视
|
||||
http://j.x.bkpcp.top/jx/GSWS
|
||||
#EXTINF:-1 group-title="卫视频道",甘肃卫视
|
||||
http://live.zohi.tv/video/s10001-fztv-3/index.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",甘肃卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0141_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",甘肃卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0141_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路31』
|
||||
#EXTINF:-1 group-title="卫视频道",甘肃卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0141_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路25』
|
||||
#EXTINF:-1 group-title="卫视频道",广东卫视
|
||||
http://123.149.3.11:9901/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",广东卫视
|
||||
http://222.169.85.8:9901/tsfile/live/0125_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",广东卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0125_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",广东卫视
|
||||
http://183.215.134.239:19901/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",广东卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1022_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",广东卫视
|
||||
http://3501776.xyz:35455/itv/1000000005000265034.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="卫视频道",广东卫视
|
||||
http://j.x.bkpcp.top/jx/GUANGDHD
|
||||
#EXTINF:-1 group-title="卫视频道",广东卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0125_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路23』
|
||||
#EXTINF:-1 group-title="卫视频道",广东卫视
|
||||
http://ttkx.cc:1380/653哈哈/mg9.php?id=gdws
|
||||
#EXTINF:-1 group-title="卫视频道",广东卫视
|
||||
http://218.15.183.23:9901/tsfile/live/23008_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",广西卫视
|
||||
http://123.149.3.11:9901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",广西卫视
|
||||
http://113.15.109.216:59901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",广西卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",广西卫视
|
||||
http://220.164.192.48:50085/tsfile/live/0112_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",广西卫视
|
||||
http://222.169.85.8:9901/tsfile/live/0113_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",广西卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1024_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",广西卫视
|
||||
http://110.81.206.138:49231/tsfile/live/23055_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",广西卫视
|
||||
http://221.2.148.205:8154/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路1』
|
||||
#EXTINF:-1 group-title="卫视频道",贵州卫视
|
||||
http://j.x.bkpcp.top/jx/GUIZHD
|
||||
#EXTINF:-1 group-title="卫视频道",贵州卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0120_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",贵州卫视
|
||||
http://182.37.169.94:352/tsfile/live/0120_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",贵州卫视
|
||||
http://222.169.85.8:9901/tsfile/live/0120_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",贵州卫视
|
||||
rtsp://180.95.143.19/PLTV/88888910/224/3221225854/376430616.smil
|
||||
#EXTINF:-1 group-title="卫视频道",贵州卫视
|
||||
http://zzssw01.55555.io:9901/tsfile/live/0120_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",海南卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1025_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",海南卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1025_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路31』
|
||||
#EXTINF:-1 group-title="卫视频道",河北卫视
|
||||
http://218.13.14.6:60050/tsfile/live/1040_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",河北卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0117_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",河北卫视
|
||||
http://116.131.190.210:352/tsfile/live/0117_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",河北卫视
|
||||
http://39.164.160.249:9901/tsfile/live/0117_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",河北卫视
|
||||
http://183.66.15.146:60901/tsfile/live/0117_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",河南卫视
|
||||
http://220.164.192.48:50085/tsfile/live/0116_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",河南卫视
|
||||
http://123.149.3.11:9901/tsfile/live/0139_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",河南卫视
|
||||
http://110.81.206.138:49231/tsfile/live/23047_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",河南卫视HD
|
||||
http://120.76.248.139/live/bfgd/4200000339.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",黑龙江卫视
|
||||
http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226239/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EEHwpSHKc5p-bHJfhpIWFig%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNM5Y8rTELLykZJHp-bmY2YW%2CEND
|
||||
#EXTINF:-1 group-title="卫视频道",黑龙江卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0143_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",黑龙江卫视
|
||||
http://182.37.169.94:352/tsfile/live/0143_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",湖北卫视
|
||||
http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226240/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ExfU_RR0RQok0w_xd7h22CQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPVnDV2fEBphgm3TP7hAHBx%2CEND
|
||||
#EXTINF:-1 group-title="卫视频道",湖北卫视
|
||||
http://148.135.93.213:81/live.php?id=湖北卫视
|
||||
#EXTINF:-1 group-title="卫视频道",湖北卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1017_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",湖北卫视
|
||||
http://goo.bkpcp.top/mg/hubws
|
||||
#EXTINF:-1 group-title="卫视频道",湖北卫视
|
||||
http://www.xzbn.site:35455/itv/1000000005000265023.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="卫视频道",湖北卫视
|
||||
http://220.164.192.48:50085/tsfile/live/0123_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",湖北卫视
|
||||
http://iptv.huuc.edu.cn/hls/hbhd.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",湖北卫视
|
||||
http://222.169.85.8:9901/tsfile/live/0132_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",湖北卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0132_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",湖北卫视
|
||||
http://182.37.169.94:352/tsfile/live/0132_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",湖南卫视
|
||||
http://j.x.bkpcp.top/jx/HUNANHD
|
||||
#EXTINF:-1 group-title="卫视频道",湖南卫视
|
||||
http://42.48.105.224:9002/tsfile/live/1000_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",湖南卫视
|
||||
http://183.215.134.239:19901/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
@@ -702,17 +280,7 @@ http://113.218.229.47:8081/tsfile/live/0017_1.m3u8?key=txiptv&playlive=1&authid=
|
||||
#EXTINF:-1 group-title="卫视频道",湖南卫视
|
||||
http://113.218.229.47:8081/tsfile/live/0017_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",湖南卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0128_2.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",湖南卫视
|
||||
http://182.37.169.94:352/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",湖南卫视
|
||||
http://58.220.211.90:352/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",湖南卫视
|
||||
http://175.31.21.146:4480/hls/36/index.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",吉林卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0116_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",吉林卫视
|
||||
http://220.164.192.48:50085/tsfile/live/0118_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",吉林卫视HD
|
||||
http://120.76.248.139/live/bfgd/4200000097.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",江苏卫视
|
||||
@@ -720,45 +288,15 @@ http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/322122
|
||||
#EXTINF:-1 group-title="卫视频道",江苏卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1006_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",江苏卫视
|
||||
http://z.b.bkpcp.top/m.php?id=jsws
|
||||
#EXTINF:-1 group-title="卫视频道",江苏卫视
|
||||
http://222.169.85.8:9901/tsfile/live/0127_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",江苏卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0127_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",江苏卫视
|
||||
http://182.37.169.94:352/tsfile/live/0127_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",江苏卫视
|
||||
http://goo.bkpcp.top/mg/jsws
|
||||
#EXTINF:-1 group-title="卫视频道",江苏卫视
|
||||
http://58.220.219.14:9901/tsfile/live/0127_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",江苏卫视
|
||||
http://180.213.174.225:9901/tsfile/live/1013_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路3』
|
||||
#EXTINF:-1 group-title="卫视频道",江苏卫视HD
|
||||
http://120.76.248.139/live/bfgd/4200000085.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",江西卫视
|
||||
http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226243/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EfPpe3gkzCutYMoqOQQZNzA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMVuW7agCgULnvgy9rhLyCH%2CEND
|
||||
#EXTINF:-1 group-title="卫视频道",江西卫视
|
||||
http://123.149.3.11:9901/tsfile/live/0138_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",江西卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0138_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",江西卫视
|
||||
http://183.215.134.239:19901/tsfile/live/0138_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",江西卫视
|
||||
http://148.135.93.213:81/live.php?id=江西卫视
|
||||
#EXTINF:-1 group-title="卫视频道",辽宁卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1020_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",辽宁卫视
|
||||
http://115.149.139.141:10001/tsfile/live/1028_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",辽宁卫视
|
||||
http://123.149.3.11:9901/tsfile/live/0121_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",辽宁卫视
|
||||
http://iptv.huuc.edu.cn/hls/lnhd.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",辽宁卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0121_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",辽宁卫视
|
||||
http://180.213.174.225:9901/tsfile/live/1015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路30』
|
||||
#EXTINF:-1 group-title="卫视频道",辽宁卫视
|
||||
http://lt.hxtre.com:35455/itv/1000000005000265022.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="卫视频道",辽宁卫视HD
|
||||
http://120.76.248.139/live/bfgd/4200000058.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",内蒙古蒙语卫视
|
||||
@@ -766,100 +304,44 @@ https://livestream-bt.nmtv.cn/nmtv/2315general.m3u8?txSecret=4971666599ef9411629
|
||||
#EXTINF:-1 group-title="卫视频道",内蒙古卫视
|
||||
https://ali-m-l.cztv.com/channels/lantian/channel007/1080p.m3u8$LR•IPV4『线路19』
|
||||
#EXTINF:-1 group-title="卫视频道",内蒙古卫视
|
||||
http://148.135.93.213:81/live.php?id=内蒙古卫视
|
||||
#EXTINF:-1 group-title="卫视频道",内蒙古卫视
|
||||
http://1.180.2.93:9901/tsfile/live/1068_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",青海卫视
|
||||
http://39.150.96.141:65535/tsfile/live/0140_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",青海卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0140_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",青海卫视
|
||||
http://110.81.206.138:49231/tsfile/live/23062_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",山东卫视
|
||||
http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226244/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EycMz-PML_dQW8iLcNBkw7g%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMYCYLC04QAM6EBli1wTuET%2CEND
|
||||
#EXTINF:-1 group-title="卫视频道",山东卫视
|
||||
http://120.76.248.139/live/bfgd/4200000099.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",山东卫视
|
||||
http://39.150.96.141:65535/tsfile/live/0131_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",山东卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1021_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",山东卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0131_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",山东卫视
|
||||
http://3501776.xyz:35455/itv/1000000005000265019.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="卫视频道",山东卫视
|
||||
http://112.123.243.37:50085/tsfile/live/0122_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",山西卫视
|
||||
http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel7/playlist.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",山西卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0118_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",陕西卫视
|
||||
http://148.135.93.213:81/live.php?id=陕西卫视
|
||||
#EXTINF:-1 group-title="卫视频道",陕西卫视
|
||||
http://goo.bkpcp.top/mg/sxws
|
||||
#EXTINF:-1 group-title="卫视频道",陕西卫视
|
||||
http://39.150.96.141:65535/tsfile/live/0136_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",陕西卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0136_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",陕西卫视HD
|
||||
http://120.76.248.139/live/bfgd/4200000512.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",上海东方卫视
|
||||
http://lt.hxtre.com:35455/itv/1000000001000030202.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="卫视频道",深圳卫视
|
||||
http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226245/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EFvxuZ6Kfg6J67sArVd0LuA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO9YxM-C8gPFvQRk47-h2ok%2CEND
|
||||
#EXTINF:-1 group-title="卫视频道",深圳卫视
|
||||
http://183.215.134.239:19901/tsfile/live/0126_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",深圳卫视
|
||||
http://123.149.3.11:9901/tsfile/live/0126_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",深圳卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0125_2.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",深圳卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1023_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",深圳卫视
|
||||
http://182.37.169.94:352/tsfile/live/0126_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",深圳卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0125_2.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路13』
|
||||
#EXTINF:-1 group-title="卫视频道",深圳卫视
|
||||
http://115.149.139.141:10001/tsfile/live/1032_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",深圳卫视
|
||||
http://yncbn.ks-cdn.gitv.tv/gitv_live/G_SHENZHEN-HQ/G_SHENZHEN-HQ.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",深圳卫视
|
||||
http://112.123.243.37:50085/tsfile/live/1000_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",深圳卫视
|
||||
http://504099760.qicp.vip:9901/tsfile/live/0126_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",四川卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0123_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",四川卫视
|
||||
http://222.169.85.8:9901/tsfile/live/0123_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",四川卫视
|
||||
http://110.81.206.138:49231/tsfile/live/23049_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",天津卫视
|
||||
http://221.226.4.10:9901/tsfile/live/1014_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",天津卫视
|
||||
http://123.149.3.11:9901/tsfile/live/0135_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",天津卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0135_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",天津卫视
|
||||
http://115.149.139.141:10001/tsfile/live/1036_1.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",西藏卫视
|
||||
http://php.jdshipin.com/xztv.php?id=ws
|
||||
#EXTINF:-1 group-title="卫视频道",西藏卫视
|
||||
http://php.jdshipin.com:8880/xztv.php?id=ws
|
||||
#EXTINF:-1 group-title="卫视频道",西藏卫视
|
||||
http://goo.bkpcp.top/mg/xzws
|
||||
#EXTINF:-1 group-title="卫视频道",延边卫视
|
||||
http://l.cztvcloud.com/channels/lantian/SXxinchang2/720p.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",云南卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0119_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",云南卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0119_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路38』
|
||||
#EXTINF:-1 group-title="卫视频道",云南卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0119_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路33』
|
||||
#EXTINF:-1 group-title="卫视频道",云南卫视
|
||||
http://110.81.206.138:49231/tsfile/live/23054_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",浙江卫视
|
||||
http://ali-m-l.cztv.com:80/channels/lantian/channel001/1080p.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",浙江卫视
|
||||
https://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8
|
||||
#EXTINF:-1 group-title="卫视频道",浙江卫视
|
||||
http://zhfivel02.cztv.com/channel01/1080p.m3u8?auth_key=2524708799-0-0-adde67b1b344fdd5e512f30a4ae31915
|
||||
@@ -886,16 +368,8 @@ http://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8$LR•IPV4『线
|
||||
#EXTINF:-1 group-title="卫视频道",浙江卫视
|
||||
http://183.215.134.239:19901/tsfile/live/0124_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",浙江卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0124_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",浙江卫视
|
||||
http://58.220.211.90:352/tsfile/live/0124_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",浙江卫视
|
||||
http://182.37.169.94:352/tsfile/live/0124_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
#EXTINF:-1 group-title="卫视频道",浙江卫视
|
||||
http://39.164.180.36:19901/tsfile/live/0124_1.m3u8?key=txiptv&playlive=0&authid=0$LR•IPV4『线路21』
|
||||
#EXTINF:-1 group-title="卫视频道",浙江卫视
|
||||
http://lt.hxtre.com:35455/itv/1000000005000265031.m3u8?cdn=ystenlive
|
||||
#EXTINF:-1 group-title="卫视频道",浙江卫视
|
||||
http://goo.bkpcp.top/mg/zjws
|
||||
#EXTINF:-1 group-title="卫视频道",浙江卫视
|
||||
http://zwebl02.cztv.com/live/channel011080P.m3u8?auth_key=2524708799-0-0-9a1229d8b9d311024ebea08c3fb1d63f
|
||||
+1744
-1610
File diff suppressed because it is too large.
Load diff
@@ -650,6 +650,46 @@
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "-qm解析-",
|
||||
"type": 0,
|
||||
"url": "http://jiexi44.qmbo.cn/jiexi/?url=",
|
||||
"ext": {
|
||||
"header": {
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "-zui-",
|
||||
"type": 0,
|
||||
"url": "https://jx.zui.cm/?url=",
|
||||
"ext": {
|
||||
"header": {
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "-盘古-",
|
||||
"type": 0,
|
||||
"url": "https://py.987654321.icu/.%60/playm3u8.php?url=",
|
||||
"ext": {
|
||||
"header": {
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "-夜幕-",
|
||||
"type": 0,
|
||||
"url": "https://yemu.xyz/?url=",
|
||||
"ext": {
|
||||
"header": {
|
||||
"user-agent": "Mozilla/5.0 (Linux; Android 13; V2049A Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"flags": [
|
||||
|
||||
+1814
-1566
File diff suppressed because it is too large.
Load diff
+246
-309
File diff suppressed because it is too large.
Load diff
Binary file not shown.
Reference in new issue
Block a user