Compare commits
29 Commits
fbc3ef7f5b
...
ab4de7031e
Author | SHA1 | Date |
---|---|---|
![]() |
ab4de7031e | |
![]() |
aceb25259b | |
![]() |
b825e51155 | |
![]() |
71bafc954e | |
![]() |
9287931771 | |
![]() |
9acadafe54 | |
![]() |
a4213d41c7 | |
![]() |
377782613b | |
![]() |
8c6d659109 | |
![]() |
1e05997fd4 | |
![]() |
b45b99c26f | |
![]() |
f64bc3bc53 | |
![]() |
10907d1a26 | |
![]() |
adb49dd6db | |
![]() |
f7fa278fea | |
![]() |
6174839066 | |
![]() |
62b86c32cf | |
![]() |
f254dfaab5 | |
![]() |
6abe5a5d5d | |
![]() |
7c521fe288 | |
![]() |
0c27641580 | |
![]() |
5b1f020060 | |
![]() |
9b3ca01c43 | |
![]() |
946e979635 | |
![]() |
4686d1a9dc | |
![]() |
06f5178167 | |
![]() |
a00c65f8ef | |
![]() |
13ad3da091 | |
![]() |
065c6308d1 |
125
PG/api.json
125
PG/api.json
|
@ -551,6 +551,14 @@
|
|||
"source": "?livemode=4&starttime=${(b)yyyyMMdd'T'HHmm}00.00Z&endtime=${(e)yyyyMMdd'T'HHmm}00.00Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "PandaGo投屏直播接收记录",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/dlnam3u/tv.m3u",
|
||||
"ua": "okhttp/3.15.",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "BIPTV(IPV6)",
|
||||
"type": 0,
|
||||
|
@ -568,6 +576,15 @@
|
|||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "FMM.m3u.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/proxy/https://raw.githubusercontent.com/fanmingming/live/refs/heads/main/tv/m3u/ipv6.m3u",
|
||||
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "FMM.m3u(-1天回看)",
|
||||
"type": 0,
|
||||
|
@ -646,6 +663,14 @@
|
|||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "肥羊B站直播.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://127.0.0.1:35456/bililive.m3u",
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "肥羊虎牙一起看",
|
||||
"type": 0,
|
||||
|
@ -654,6 +679,14 @@
|
|||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "肥羊虎牙一起看.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://127.0.0.1:35456/huyayqk.m3u",
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "肥羊斗鱼一起看",
|
||||
"type": 0,
|
||||
|
@ -662,6 +695,14 @@
|
|||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "肥羊斗鱼一起看.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://127.0.0.1:35456/douyuyqk.m3u",
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "肥羊YY轮播",
|
||||
"type": 0,
|
||||
|
@ -670,6 +711,90 @@
|
|||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.TV",
|
||||
"type": 0,
|
||||
"url": "http://lisha521.dynv6.net.fh4u.org/tv.txt",
|
||||
"playerType": 1
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.TV.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://lisha521.dynv6.net.fh4u.org/tv.txt",
|
||||
"playerType": 1
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.IPTV",
|
||||
"type": 0,
|
||||
"url": "http://lisha521.dynv6.net.fh4u.org/iptv.txt",
|
||||
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}",
|
||||
"logo": "https://epg.iill.top/logo/{name}.png",
|
||||
"ua": "okhttp/3.15,AptvPlayer/1.4.0",
|
||||
"timeout": 10,
|
||||
"playerType": 2
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.IPTV.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://lisha521.dynv6.net.fh4u.org/iptv.txt",
|
||||
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}",
|
||||
"logo": "https://epg.iill.top/logo/{name}.png",
|
||||
"ua": "okhttp/3.15,AptvPlayer/1.4.0",
|
||||
"timeout": 10,
|
||||
"playerType": 2
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.HLJ",
|
||||
"type": 0,
|
||||
"url": "http://lisha521.dynv6.net.fh4u.org/hlj.txt",
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.HLJ.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://lisha521.dynv6.net.fh4u.org/hlj.txt",
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.LIVE",
|
||||
"type": 0,
|
||||
"url": "http://lisha521.dynv6.net.fh4u.org/live.txt",
|
||||
"playerType": 1,
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.LIVE.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://lisha521.dynv6.net.fh4u.org/live.txt",
|
||||
"playerType": 1,
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.LIVE1",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/c/3600/null/http://lisha521.dynv6.net.fh4u.org/live1.txt",
|
||||
"playerType": 2,
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "GGGG",
|
||||
"type": 0,
|
||||
"url": "http://rihou.cc:555/gggg.nzk",
|
||||
"playerType": 1,
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "https://epg.112114.eu.org/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "YTB直播",
|
||||
"type": 0,
|
||||
|
|
125
PG/jsm.json
125
PG/jsm.json
|
@ -551,6 +551,14 @@
|
|||
"source": "?livemode=4&starttime=${(b)yyyyMMdd'T'HHmm}00.00Z&endtime=${(e)yyyyMMdd'T'HHmm}00.00Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "PandaGo投屏直播接收记录",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/dlnam3u/tv.m3u",
|
||||
"ua": "okhttp/3.15.",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "BIPTV(IPV6)",
|
||||
"type": 0,
|
||||
|
@ -568,6 +576,15 @@
|
|||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "FMM.m3u.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/proxy/https://raw.githubusercontent.com/fanmingming/live/refs/heads/main/tv/m3u/ipv6.m3u",
|
||||
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "FMM.m3u(-1天回看)",
|
||||
"type": 0,
|
||||
|
@ -646,6 +663,14 @@
|
|||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "肥羊B站直播.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://127.0.0.1:35456/bililive.m3u",
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "肥羊虎牙一起看",
|
||||
"type": 0,
|
||||
|
@ -654,6 +679,14 @@
|
|||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "肥羊虎牙一起看.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://127.0.0.1:35456/huyayqk.m3u",
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "肥羊斗鱼一起看",
|
||||
"type": 0,
|
||||
|
@ -662,6 +695,14 @@
|
|||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "肥羊斗鱼一起看.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://127.0.0.1:35456/douyuyqk.m3u",
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "肥羊YY轮播",
|
||||
"type": 0,
|
||||
|
@ -670,6 +711,90 @@
|
|||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.TV",
|
||||
"type": 0,
|
||||
"url": "http://lisha521.dynv6.net.fh4u.org/tv.txt",
|
||||
"playerType": 1
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.TV.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://lisha521.dynv6.net.fh4u.org/tv.txt",
|
||||
"playerType": 1
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.IPTV",
|
||||
"type": 0,
|
||||
"url": "http://lisha521.dynv6.net.fh4u.org/iptv.txt",
|
||||
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}",
|
||||
"logo": "https://epg.iill.top/logo/{name}.png",
|
||||
"ua": "okhttp/3.15,AptvPlayer/1.4.0",
|
||||
"timeout": 10,
|
||||
"playerType": 2
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.IPTV.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://lisha521.dynv6.net.fh4u.org/iptv.txt",
|
||||
"epg": "http://epg.51zmt.top:8000/api/diyp/?ch={name}&date={date}",
|
||||
"logo": "https://epg.iill.top/logo/{name}.png",
|
||||
"ua": "okhttp/3.15,AptvPlayer/1.4.0",
|
||||
"timeout": 10,
|
||||
"playerType": 2
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.HLJ",
|
||||
"type": 0,
|
||||
"url": "http://lisha521.dynv6.net.fh4u.org/hlj.txt",
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.HLJ.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://lisha521.dynv6.net.fh4u.org/hlj.txt",
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://127.0.0.1:10079/p/0/proxy/http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "http://127.0.0.1:10079/p/0/proxy/https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.LIVE",
|
||||
"type": 0,
|
||||
"url": "http://lisha521.dynv6.net.fh4u.org/live.txt",
|
||||
"playerType": 1,
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.LIVE.音质增强",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/mp4/3600/null/http://lisha521.dynv6.net.fh4u.org/live.txt",
|
||||
"playerType": 1,
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "LiSha521.LIVE1",
|
||||
"type": 0,
|
||||
"url": "http://127.0.0.1:10079/c/3600/null/http://lisha521.dynv6.net.fh4u.org/live1.txt",
|
||||
"playerType": 2,
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "https://epg.112114.xyz/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "GGGG",
|
||||
"type": 0,
|
||||
"url": "http://rihou.cc:555/gggg.nzk",
|
||||
"playerType": 1,
|
||||
"ua": "okhttp/3.15",
|
||||
"epg": "http://epg.112114.xyz/?ch={name}&date={date}",
|
||||
"logo": "https://epg.112114.eu.org/logo/{name}.png"
|
||||
},
|
||||
{
|
||||
"name": "YTB直播",
|
||||
"type": 0,
|
||||
|
|
Binary file not shown.
|
@ -1 +1 @@
|
|||
ef69bccca6f1b89f487b45e2771cb2f5
|
||||
a1c5e28c63b371f071823224f6b0578d
|
||||
|
|
Binary file not shown.
|
@ -1 +1 @@
|
|||
709b0173f2e04d8b38df10838a16c32f
|
||||
9386d2af183f6e9ba2ce4b5246220c67
|
||||
|
|
Binary file not shown.
|
@ -1 +1 @@
|
|||
0fcb7012659e992b9dbba447bdfb21b2
|
||||
05be016ae6119c38a60f62717af8c883
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
{"name":"范明明IPV6","url":"http://127.0.0.1:10079/c/3600/proxy/https://raw.githubusercontent.com/fanmingming/live/refs/heads/main/tv/m3u/ipv6.m3u"},
|
||||
{"name":"最强国内直播","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/tv.m3u"},
|
||||
{"name":"PandaGo投屏直播接收记录","url":"http://127.0.0.1:10079/dlnam3u/tv.m3u"},
|
||||
{"name":"肥羊咪咕直播","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/migu.m3u"},
|
||||
{"name":"肥羊B站直播","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/bililive.m3u"},
|
||||
{"name":"肥羊虎牙一起看","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/huyayqk.m3u"},
|
||||
|
|
|
@ -1 +1 @@
|
|||
afda4f34509f1b5fe74c07241a5c4f58
|
||||
031ffbc6bdfac8e19eee585c0c059ac8
|
4
dx.json
4
dx.json
|
@ -44,10 +44,6 @@
|
|||
"url": "https://gh-proxy.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/戏曲音乐/api.json",
|
||||
"name": "戏曲音乐"
|
||||
},
|
||||
{
|
||||
"url": "https://gh-proxy.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/天天开心/api.json",
|
||||
"name": "天天开心"
|
||||
},
|
||||
{
|
||||
"url": "https://gh-proxy.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/少儿频道/api.json",
|
||||
"name": "少儿频道"
|
||||
|
|
4
dx1.json
4
dx1.json
|
@ -44,10 +44,6 @@
|
|||
"url": "https://gh-proxy.net/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/戏曲音乐/api.json",
|
||||
"name": "戏曲音乐"
|
||||
},
|
||||
{
|
||||
"url": "https://gh-proxy.net/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/天天开心/api.json",
|
||||
"name": "天天开心"
|
||||
},
|
||||
{
|
||||
"url": "https://gh-proxy.net/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/少儿频道/api.json",
|
||||
"name": "少儿频道"
|
||||
|
|
48
dx2.json
48
dx2.json
|
@ -1,95 +1,91 @@
|
|||
{
|
||||
"urls": [
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/饭太硬/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/饭太硬/api.json",
|
||||
"name": "饭太硬"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/小米/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/小米/api.json",
|
||||
"name": "小米"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/肥猫/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/肥猫/api.json",
|
||||
"name": "肥猫"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/xyqonlinerule/main/XYQTVBox.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/xyqonlinerule/main/XYQTVBox.json",
|
||||
"name": "香雅情[原]"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/南风/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/南风/api.json",
|
||||
"name": "南风"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/PG/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/PG/api.json",
|
||||
"name": "PG"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/摸鱼儿/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/摸鱼儿/api.json",
|
||||
"name": "摸鱼儿"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/欧歌/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/欧歌/api.json",
|
||||
"name": "欧歌"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/王二小/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/王二小/api.json",
|
||||
"name": "王二小"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/潇洒/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/潇洒/api.json",
|
||||
"name": "潇洒"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/戏曲音乐/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/戏曲音乐/api.json",
|
||||
"name": "戏曲音乐"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/天天开心/api.json",
|
||||
"name": "天天开心"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/少儿频道/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/少儿频道/api.json",
|
||||
"name": "少儿频道"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/testboxapi/main/tvbox/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/testboxapi/main/tvbox/api.json",
|
||||
"name": "精简多线-聚"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/testboxapi/main/test1/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/testboxapi/main/test1/api.json",
|
||||
"name": "精简多线-选"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/影视/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/影视/api.json",
|
||||
"name": "精简多线-影视"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/动漫/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/动漫/api.json",
|
||||
"name": "精简多线-动漫"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/文艺/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/文艺/api.json",
|
||||
"name": "精简多线-文艺"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/体育/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/体育/api.json",
|
||||
"name": "精简多线-体育"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/教育/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/教育/api.json",
|
||||
"name": "精简多线-教育"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/直播/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/直播/api.json",
|
||||
"name": "精简多线-直播"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/磁力/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/磁力/api.json",
|
||||
"name": "精简多线-磁力"
|
||||
},
|
||||
{
|
||||
"url": "https://ghproxy.cn/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/云盘/api.json",
|
||||
"url": "https://ghproxy.cxkpro.top/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/云盘/api.json",
|
||||
"name": "精简多线-云盘"
|
||||
}
|
||||
]
|
||||
|
|
4
dx3.json
4
dx3.json
|
@ -44,10 +44,6 @@
|
|||
"url": "https://github.moeyy.xyz/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/戏曲音乐/api.json",
|
||||
"name": "戏曲音乐"
|
||||
},
|
||||
{
|
||||
"url": "https://github.moeyy.xyz/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/天天开心/api.json",
|
||||
"name": "天天开心"
|
||||
},
|
||||
{
|
||||
"url": "https://github.moeyy.xyz/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/少儿频道/api.json",
|
||||
"name": "少儿频道"
|
||||
|
|
48
dx4.json
48
dx4.json
|
@ -1,95 +1,91 @@
|
|||
{
|
||||
"urls": [
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/饭太硬/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/饭太硬/api.json",
|
||||
"name": "饭太硬"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/小米/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/小米/api.json",
|
||||
"name": "小米"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/肥猫/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/肥猫/api.json",
|
||||
"name": "肥猫"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/xyqonlinerule/main/XYQTVBox.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/xyqonlinerule/main/XYQTVBox.json",
|
||||
"name": "香雅情[原]"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/南风/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/南风/api.json",
|
||||
"name": "南风"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/PG/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/PG/api.json",
|
||||
"name": "PG"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/摸鱼儿/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/摸鱼儿/api.json",
|
||||
"name": "摸鱼儿"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/欧歌/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/欧歌/api.json",
|
||||
"name": "欧歌"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/王二小/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/王二小/api.json",
|
||||
"name": "王二小"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/潇洒/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/潇洒/api.json",
|
||||
"name": "潇洒"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/戏曲音乐/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/戏曲音乐/api.json",
|
||||
"name": "戏曲音乐"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/天天开心/api.json",
|
||||
"name": "天天开心"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/少儿频道/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/tvboxtg/main/少儿频道/api.json",
|
||||
"name": "少儿频道"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/testboxapi/main/tvbox/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/testboxapi/main/tvbox/api.json",
|
||||
"name": "精简多线-聚"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/testboxapi/main/test1/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/testboxapi/main/test1/api.json",
|
||||
"name": "精简多线-选"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/影视/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/影视/api.json",
|
||||
"name": "精简多线-影视"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/动漫/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/动漫/api.json",
|
||||
"name": "精简多线-动漫"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/文艺/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/文艺/api.json",
|
||||
"name": "精简多线-文艺"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/体育/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/体育/api.json",
|
||||
"name": "精简多线-体育"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/教育/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/教育/api.json",
|
||||
"name": "精简多线-教育"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/直播/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/直播/api.json",
|
||||
"name": "精简多线-直播"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/磁力/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/磁力/api.json",
|
||||
"name": "精简多线-磁力"
|
||||
},
|
||||
{
|
||||
"url": "https://github.3x25.com/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/云盘/api.json",
|
||||
"url": "https://github.boki.moe/https://raw.githubusercontent.com/ls125781003/testboxapi/main/cang/云盘/api.json",
|
||||
"name": "精简多线-云盘"
|
||||
}
|
||||
]
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
{"key":"csp_Wwys","name":"👩🌾农民","type":3,"api":"csp_Wwys","searchable":1,"quickSearch":1,"filterable":1,"ext":"https://wwgz.cn"},
|
||||
{"key":"csp_Lkdy","name":"🏔️来看","type":3,"api":"csp_Lkdy","searchable":1,"quickSearch":1,"filterable":1},
|
||||
{"key":"csp_SaoHuo","name":"🔥骚火","type":3,"api":"csp_SaoHuo","playerType":2,"searchable":1,"quickSearch":1,"filterable":1,"ext":"https://shdy5.us"},
|
||||
{"key":"csp_Tvyb","name":"☁️TVB云播","type":3,"api":"csp_Tvyb","playerType":2,"searchable":1,"quickSearch":1,"filterable":1,"ext":"http://www.tvyun01.com/"},
|
||||
{"key":"csp_Qiyou","name":"🦌奇优","type":3,"api":"csp_Qiyou","searchable":1,"quickSearch":1,"filterable":1},
|
||||
{"key":"csp_Wetv","name":"🚗尘落","type":3,"api":"csp_Wetv","searchable":1,"quickSearch":1,"filterable":1},
|
||||
{"key":"csp_Jiaozi","name":"🥣饺子","type":3,"api":"csp_Jiaozi","searchable":1,"quickSearch":1,"filterable":1},
|
||||
{"key":"csp_Fantuan","name":"🍙饭团","type":3,"api":"csp_Fantuan","searchable":1,"quickSearch":1,"filterable":1,"click":"document.querySelector(\"#playleft iframe\").contentWindow.document.querySelector(\"#start\").click();","ext":"https://www.fantuan.vip"},
|
||||
{"key":"可可","name":"☕️可可","type":3,"api":"csp_XYQHiker","searchable":1,"quickSearch":1,"filterable":1,"ext":"./json/可可影视.json"},
|
||||
{"key":"剧圈圈","name":"⭕剧圈圈","type":3,"api":"csp_XYQHiker","searchable":1,"quickSearch":1,"filterable":1,"ext":"./json/剧圈圈.json","click":"document.getElementById('playleft').children[0].contentWindow.document.getElementById('start').click()"},
|
||||
{"key":"csp_Ddys","name":"📺低端","type":3,"api":"csp_Ddys","searchable":1,"quickSearch":1,"filterable":1},
|
||||
{"key":"csp_Kuaikan","name":"👀快看","type":3,"api":"csp_Kuaikan","searchable":1,"quickSearch":1,"filterable":1},
|
||||
{"key":"csp_Ikanbot","name":"👾Ikanbot","type":3,"api":"csp_Ikanbot","searchable":1,"quickSearch":1,"filterable":1},
|
||||
|
@ -36,7 +36,6 @@
|
|||
{"key":"csp_Ysj","name":"📮异世界","type":3,"api":"csp_Ysj","searchable":1,"quickSearch":1,"filterable":1},
|
||||
{"key":"csp_Dm84","name":"🚌动漫巴士","type":3,"playerType":"2","api":"csp_Dm84","searchable":1,"quickSearch":1,"filterable":1},
|
||||
{"key":"樱花","name":"💮樱花","type":3,"api":"csp_XYQHiker","searchable":1,"quickSearch":1,"filterable":1,"ext":"./json/樱花动漫.json"},
|
||||
{"key":"短剧屋","name":"🎬短剧屋","type":3,"api":"csp_XYQHiker","searchable":1,"quickSearch":1,"filterable":1,"ext":"./json/短剧屋.json"},
|
||||
{"key":"豆瓣","name":"🚀豆瓣预告","type":3,"api":"csp_YGP","playerType":2,"searchable":1,"quickSearch":1,"filterable":1},
|
||||
{"key":"csp_AppXY","name":"🎀️星牙短剧","type":3,"api":"csp_AppXY","searchable":1,"quickSearch":1,"filterable":1},
|
||||
{"key":"csp_Kanqiu","name":"⚾看球","type":3,"api":"csp_Kanqiu","searchable":1,"quickSearch":1,"changeable":0,"gridview":3,"style":{"type":"list"}},
|
||||
|
@ -44,7 +43,7 @@
|
|||
{"key":"csp_BookTing","name":"📚听书","type":3,"playerType":2,"api":"csp_BookTing","searchable":0,"ext":"https://m.ting275.com","style":{"type":"rect","ratio":1.333}},
|
||||
{"key":"csp_FirstAid","name":"🚑急救教学","type":3,"api":"csp_FirstAid","searchable":0,"quickSearch":0,"style":{"type":"rect","ratio":3.8}},
|
||||
|
||||
{"key":"玩偶gg","name":"👽玩偶","type":3,"api":"csp_Wogg","searchable":1,"changeable":0,"ext":{"commonConfig":"./json/peizhi.json","siteUrl":"https://www.wogg.one/","filter":"./json/wogg.json"}},
|
||||
{"key":"玩偶gg","name":"👽玩偶","type":3,"api":"csp_Wogg","searchable":1,"changeable":0,"ext":{"commonConfig":"./json/peizhi.json","siteUrl":"https://wogg.xxooo.cf","filter":"./json/wogg.json"}},
|
||||
{"key":"片库","name":"🅿片库","type":3,"api":"csp_Qiwei","searchable":1,"filterable":0,"switchable":0,"ext":{"siteUrl":"https://www.qwnull.com","commonConfig":"./json/peizhi.json"}},
|
||||
{"key":"二小","name":"😈二小","type":3,"api":"csp_kongbai","searchable":1,"changeable":0,"ext":{"commonConfig":"./json/peizhi.json","siteUrl":"https://erxiaofn.click/","filter":"./json/wogg.json"}},
|
||||
{"key":"至臻","name":"💯至臻","type":3,"api":"csp_kongbai","searchable":1,"changeable":0,"ext":{"commonConfig":"./json/peizhi.json","siteUrl":"https://mihdr.top","filter":"./json/wogg.json"}},
|
||||
|
|
|
@ -0,0 +1,82 @@
|
|||
{
|
||||
"规则名": "剧圈圈",
|
||||
"规则作者": "香雅情",
|
||||
"OCR_API":"https://api.nn.ci/ocr/b64/text",
|
||||
"请求头参数": "MOBILE_UA",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "否",
|
||||
"是否开启获取首页数据": "1",
|
||||
"首页推荐链接": "https://www.jqqzx.me",
|
||||
"首页列表数组规则": "body&&.module-main.tab-list.active",
|
||||
"首页片单列表数组规则": ".module-item",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "https://www.jqqzx.me/vodshow/id/{cateId}/page/{catePg}.html",
|
||||
"分类名称": "电影&电视剧&综艺&动漫&纪录片&爽剧",
|
||||
"分类名称替换词": "dianying&juji&zongyi&dongman&jilupian&shuangju",
|
||||
"筛选数据": {},
|
||||
//"筛选数据": "ext",
|
||||
//{cateId}
|
||||
"筛选子分类名称": "",
|
||||
"筛选子分类替换词": "",
|
||||
//{class}
|
||||
"筛选类型名称": "",
|
||||
"筛选类型替换词": "*",
|
||||
//{area}
|
||||
"筛选地区名称": "",
|
||||
"筛选地区替换词": "*",
|
||||
//{year}
|
||||
"筛选年份名称": "",
|
||||
"筛选年份替换词": "*",
|
||||
//{lang}
|
||||
"筛选语言名称": "",
|
||||
"筛选语言替换词": "*",
|
||||
//{by}
|
||||
"筛选排序名称": "时间&人气&评分",
|
||||
"筛选排序替换词": "time&hits&score",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": ".module-items&&.module-item",
|
||||
"分类片单是否Jsoup写法": "是",
|
||||
"分类片单标题": ".module-poster-item-title&&Text",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": ".lazyload&&data-original",
|
||||
"分类片单副标题": ".module-item-note&&Text",
|
||||
"分类片单链接加前缀": "https://www.jqqzx.me",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$MOBILE_UA",
|
||||
"搜索链接": "https://www.jqqzx.me/vodsearch{wd}/page/{SearchPg}.html",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": ".module-items&&.module-item",
|
||||
"搜索片单是否Jsoup写法": "是",
|
||||
"搜索片单图片": ".lazyload&&data-original",
|
||||
"搜索片单标题": ".module-card-item-title&&Text",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": ".module-item-note&&Text",
|
||||
"搜索片单链接加前缀": "https://www.jqqzx.me",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "否",
|
||||
"直接播放链接加前缀": "",
|
||||
"直接播放链接加后缀": "",
|
||||
"直接播放直链视频请求头": "",
|
||||
"详情是否Jsoup写法": "是",
|
||||
"类型详情": "",
|
||||
"年代详情": ".module-info-content&&.module-info-item,3&&Text",
|
||||
"地区详情": "",
|
||||
"演员详情": ".module-info-content&&.module-info-item,2&&Text",
|
||||
"简介详情": ".module-info-content&&.module-info-item&&Text",
|
||||
"线路列表数组规则": ".module-tab-items-box&&.module-tab-item",
|
||||
"线路标题": "Text",
|
||||
"播放列表数组规则": "body&&.module-play-list-content",
|
||||
"选集列表数组规则": "a",
|
||||
"选集标题链接是否Jsoup写法": "是",
|
||||
"选集标题": "a&&Text",
|
||||
"选集链接": "a&&href",
|
||||
"是否反转选集序列": "否",
|
||||
"选集链接加前缀": "https://www.jqqzx.me",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "否",
|
||||
"是否开启手动嗅探": "否",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
|
@ -39,7 +39,7 @@
|
|||
"分类片单是否Jsoup写法": "是",
|
||||
"分类片单标题": ".v-item-title,1&&Text",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": "'https://vres.wbadl.cn'+.lazyload,-1&&data-original",
|
||||
"分类片单图片": "'https://vres.xenlz.com'+.lazyload,-1&&data-original",
|
||||
"分类片单副标题": ".v-item-bottom&&Text",
|
||||
"分类片单链接加前缀": "https://www.keke1.app",
|
||||
"分类片单链接加后缀": "",
|
||||
|
@ -49,7 +49,7 @@
|
|||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": ".search-result-list&&.search-result-item",
|
||||
"搜索片单是否Jsoup写法": "是",
|
||||
"搜索片单图片": "'https://vres.wbadl.cn'+.lazyload&&data-original",
|
||||
"搜索片单图片": "'https://vres.xenlz.com'+.lazyload&&data-original",
|
||||
"搜索片单标题": ".title&&Text",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": "",
|
||||
|
|
44
南风/live.txt
44
南风/live.txt
|
@ -1,5 +1,4 @@
|
|||
央视,#genre#
|
||||
CCTV1,http://xiaoya.crccxw.top:35455/gaoma/cctv1.m3u8
|
||||
CCTV1,http://58.220.219.14:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV1,http://175.31.21.146:4480/hls/1/index.m3u8
|
||||
CCTV1,http://58.220.211.90:352/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid$LR•IPV4『线路274』
|
||||
|
@ -8,7 +7,6 @@ CCTV1,http://113.140.12.230:8888/newlive/live/hls/2/live.m3u8
|
|||
CCTV1,http://222.219.183.103:8089/hls/1/index.m3u8
|
||||
CCTV1,http://58.210.168.86:10800/newlive/live/hls/1/live.m3u8
|
||||
CCTV2,http://222.169.85.8:9901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路251』
|
||||
CCTV2,http://39.164.160.249:9901/tsfile/live/0002_1.m3u8
|
||||
CCTV2,http://175.31.21.146:4480/hls/2/index.m3u8
|
||||
CCTV2,http://116.128.243.121:85/tsfile/live/0002_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
CCTV2,http://113.140.12.230:8888/newlive/live/hls/3/live.m3u8
|
||||
|
@ -17,8 +15,6 @@ CCTV3,http://222.134.19.31:352/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&aut
|
|||
CCTV3,http://222.134.19.31:352/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV3,http://60.223.224.176:8888/newlive/live/hls/4/live.m3u8
|
||||
CCTV3,http://113.140.12.230:8888/newlive/live/hls/4/live.m3u8
|
||||
CCTV3,http://222.169.85.8:9901/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV3,http://222.169.85.8:9901/tsfile/live/0003_1.m3u8
|
||||
CCTV3,http://112.46.85.60:8009/hls/3/index.m3u8
|
||||
CCTV3,http://218.29.168.146:352/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV3,http://58.220.219.14:9901/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
|
@ -27,69 +23,49 @@ CCTV4,http://60.223.224.176:8888/newlive/live/hls/5/live.m3u8?
|
|||
CCTV4,http://222.219.183.103:8089/hls/4/index.m3u8
|
||||
CCTV5,http://222.134.19.31:352/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV5,http://60.223.224.176:8888/newlive/live/hls/6/live.m3u8
|
||||
CCTV5,http://113.140.12.230:8888/newlive/live/hls/6/live.m3u8
|
||||
CCTV5,http://116.9.204.242:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路177』
|
||||
CCTV5,http://61.133.10.250:352/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路269』
|
||||
CCTV5,http://116.9.204.242:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV5,http://116.9.204.242:9901/tsfile/live/0005_1.m3u8
|
||||
CCTV5,http://xiaoya.crccxw.top:35455/gaoma/cctv5.m3u8
|
||||
CCTV5+,http://xiaoya.crccxw.top:35455/gaoma/cctv5p.m3u8
|
||||
CCTV5+,http://222.219.183.103:8089/hls/19/index.m3u8
|
||||
CCTV6,http://222.134.19.31:352/tsfile/live/0006_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV6,http://39.170.52.236:808/hls/6/index.m3u8
|
||||
CCTV6,http://113.140.12.230:8888/newlive/live/hls/7/live.m3u8
|
||||
CCTV6,http://222.169.85.8:9901/tsfile/live/0006_1.m3u8?key=txiptv
|
||||
CCTV6,http://zzssw01.55555.io:9901/tsfile/live/0006_1.m3u8
|
||||
CCTV6,http://101.19.84.8:9901/tsfile/live/0006_1.m3u8
|
||||
CCTV7,http://8.138.7.223/tv/cctv7.m3u8
|
||||
CCTV7,http://60.223.224.176:8888/newlive/live/hls/9/live.m3u8
|
||||
CCTV7,https://live.junhao.mil.cn/rmt9502/3e6e7c5477314ec38f5e58e2a5c70024.m3u8?txSecret=57978fafb9c19880afa5c8687e8241d8&txTime=7A42BAFF
|
||||
CCTV7,http://live.junhao.mil.cn/rmt9502/3e6e7c5477314ec38f5e58e2a5c70024.m3u8?txSecret=57978fafb9c19880afa5c8687e8241d8&txTime=7A42BAFF
|
||||
CCTV7,http://xiaoya.crccxw.top:35455/gaoma/cctv7.m3u8
|
||||
CCTV7,http://101.19.84.8:9901/tsfile/live/0007_1.m3u8
|
||||
CCTV7,http://222.219.183.103:8089/hls/7/index.m3u8
|
||||
CCTV8,http://222.134.19.31:352/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV8,http://112.46.85.60:8009/hls/8/index.m3u8
|
||||
CCTV8,http://101.19.84.8:9901/tsfile/live/0008_1.m3u8
|
||||
CCTV8,http://113.140.12.230:8888/newlive/live/hls/9/live.m3u8
|
||||
CCTV8,http://xiaoya.crccxw.top:35455/gaoma/cctv8.m3u8
|
||||
CCTV8,http://60.223.224.176:8888/newlive/live/hls/10/live.m3u8?
|
||||
CCTV8,http://61.133.10.250:352/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV9,http://180.213.174.225:9901/tsfile/live/0009_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV9,http://xiaoya.crccxw.top:35455/gaoma/cctv9.m3u8
|
||||
CCTV9,http://60.223.224.176:8888/newlive/live/hls/11/live.m3u8?
|
||||
CCTV9,http://222.219.183.103:8089/hls/9/index.m3u8
|
||||
CCTV10,http://39.164.160.249:9901/tsfile/live/0010_1.m3u8
|
||||
CCTV10,http://xiaoya.crccxw.top:35455/gaoma/cctv10.m3u8
|
||||
CCTV10,http://113.140.12.230:8888/newlive/live/hls/11/live.m3u8
|
||||
CCTV10,http://222.219.183.103:8089/hls/10/index.m3u8
|
||||
CCTV10,http://60.223.224.176:8888/newlive/live/hls/12/live.m3u8
|
||||
CCTV10,http://182.37.169.94:352/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV11,http://39.164.160.249:9901/tsfile/live/0011_1.m3u8
|
||||
CCTV12,http://xiaoya.crccxw.top:35455/gaoma/cctv12.m3u8
|
||||
CCTV11,http://223.145.224.103:8000/udp/239.76.245.251:1234
|
||||
CCTV12,http://223.145.224.103:8000/udp/239.76.246.162:1234
|
||||
CCTV13,http://61.163.181.78:9901/tsfile/live/0013_1.m3u8
|
||||
CCTV13,https://event.pull.hebtv.com/jishi/cp1.m3u8
|
||||
CCTV13,http://ali-m-l.cztv.com/channels/lantian/channel21/1080p.m3u8
|
||||
CCTV13,http://183.215.134.239:19901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV13,http://39.164.160.249:9901/tsfile/live/0013_1.m3u8
|
||||
CCTV14,https://event.pull.hebtv.com/jishi/cp2.m3u8
|
||||
CCTV14,http://58.17.48.228:808/hls/14/index.m3u8
|
||||
CCTV14,http://222.173.108.238:352/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
CCTV15,http://39.164.160.249:9901/tsfile/live/0015_1.m3u8
|
||||
CCTV16,http://xiaoya.crccxw.top:35455/gaoma/cctv16.m3u8
|
||||
CCTV17,http://xiaoya.crccxw.top:35455/gaoma/cctv17.m3u8
|
||||
CCTV风云剧场,http://dassby.qqff.top:99/live/风云剧场/index.m3u8
|
||||
CCTV20241,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream_bduid_6488563992_8982723413/merged_1707497046297_88536_25144_41936.m3u8
|
||||
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://113.57.20.158:9901/tsfile/live/1034_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路36』
|
||||
CCTV16,http://58.221.214.82:9901/tsfile/live/0002_2.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路88』
|
||||
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』
|
||||
CCTV7,http://111.160.17.2:59901/tsfile/live/0001_8.m3u8
|
||||
CCTV11,http://61.136.172.236:9901/tsfile/live/0011_1.m3u8
|
||||
CCTV13,http://61.136.172.236:9901/tsfile/live/0013_1.m3u8
|
||||
CCTV13,http://123.129.70.178:9901/tsfile/live/0013_1.m3u8
|
||||
CCTV15,http://61.136.172.236:9901/tsfile/live/0015_1.m3u8
|
||||
CCTV15,http://61.156.228.12:8154/tsfile/live/0015_1.m3u8
|
||||
|
||||
|
@ -109,7 +85,6 @@ CCTV15,http://61.156.228.12:8154/tsfile/live/0015_1.m3u8
|
|||
重庆卫视,http://61.136.67.238:50085/tsfile/live/0142_1.m3u8
|
||||
重庆卫视,http://222.173.108.238:352/tsfile/live/1016_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
大湾区卫视,http://222.128.55.152:9080/live/dwq.m3u8
|
||||
东方卫视,http://183.215.134.239:19901/tsfile/live/0107_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
东南卫视,http://120.76.248.139/live/bfgd/4200000483.m3u8
|
||||
东南卫视,http://115.149.139.141:10001/tsfile/live/1035_1.m3u8?blog.ntnas.top
|
||||
甘肃卫视,http://live.zohi.tv/video/s10001-fztv-3/index.m3u8
|
||||
|
@ -126,7 +101,6 @@ CCTV15,http://61.156.228.12:8154/tsfile/live/0015_1.m3u8
|
|||
河北卫视,http://60.8.49.38:352/tsfile/live/0117_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
黑龙江卫视,http://115.149.139.141:10000/tsfile/live/1030_1.m3u8?key=txiptv&playlive=0&authid=0
|
||||
湖北卫视,http://115.149.139.141:10001/tsfile/live/1027_1.m3u8
|
||||
湖南卫视,http://183.215.134.239:19901/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0
|
||||
湖南卫视,http://60.223.224.176:8888/newlive/live/hls/22/live.m3u8
|
||||
吉林卫视,http://220.164.192.48:50085/tsfile/live/0118_1.m3u8
|
||||
江西卫视,http://120.76.248.139/live/bfgd/4200000098.m3u8
|
||||
|
@ -157,34 +131,20 @@ CCTV15,http://61.156.228.12:8154/tsfile/live/0015_1.m3u8
|
|||
浙江卫视,http://ali-m-l.cztv.com:80/channels/lantian/channel001/1080p.m3u8
|
||||
浙江卫视,https://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8
|
||||
浙江卫视,http://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8
|
||||
浙江卫视,http://zwebl02.cztv.com/live/channel011080P.m3u8?auth_key=2524708799-0-0-9a1229d8b9d311024ebea08c3fb1d63f
|
||||
浙江卫视,http://ali-m-l.cztv.com/channels/lantian/channel01/1080p.m3u8
|
||||
浙江卫视,https://stream1.freetv.fun/2e3a01b886780ceca10b44bb6cdb57413757275a6fdcb083800db996bc2f81e3.m3u8
|
||||
湖南卫视,http://61.136.172.236:9901/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路77』
|
||||
浙江卫视,http://wouu.net:9977/udp/239.93.0.124:5140$LR•IPV4『线路157』
|
||||
北京卫视,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://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://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://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://stream.qhbtv.com/qhws/sd/live.m3u8
|
||||
三沙卫视,https://pullsstv90080111.ssws.tv/live/SSTV20220729.m3u8
|
||||
安多卫视,http://stream.qhbtv.com/adws/sd/live.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://api3.52tb.xyz/info?id=28&token=20230227aesvnb
|
||||
东南卫视,http://api3.52tb.xyz/info?id=29&token=20230227aesvnb
|
||||
河南卫视,http://api3.52tb.xyz/info?id=31&token=20230227aesvnb
|
||||
海南卫视,http://api3.52tb.xyz/info?id=38&token=20230227aesvnb
|
||||
吉林卫视,http://api3.52tb.xyz/info?id=40&token=20230227aesvnb
|
||||
青海卫视,http://stream.qhbtv.com/qhws/sd/live.m3u8?_upt=1da074361609506578
|
||||
青海卫视,http://stream.qhbtv.com/qhws/sd/live.m3u8
|
||||
三沙卫视,https://pullsstv90080111.ssws.tv/live/SSTV20220729.m3u8
|
||||
|
||||
|
||||
|
|
1568
天天开心/api.json
1568
天天开心/api.json
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}));
|
1737
天天开心/api/json5.js
1737
天天开心/api/json5.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
138
天天开心/api/mod.js
138
天天开心/api/mod.js
|
@ -1,138 +0,0 @@
|
|||
const peq = new Uint32Array(0x10000);
|
||||
const myers_32 = (a, b) => {
|
||||
const n = a.length;
|
||||
const m = b.length;
|
||||
const lst = 1 << (n - 1);
|
||||
let pv = -1;
|
||||
let mv = 0;
|
||||
let sc = n;
|
||||
let i = n;
|
||||
while (i--) {
|
||||
peq[a.charCodeAt(i)] |= 1 << i;
|
||||
}
|
||||
for (i = 0; i < m; i++) {
|
||||
let eq = peq[b.charCodeAt(i)];
|
||||
const xv = eq | mv;
|
||||
eq |= ((eq & pv) + pv) ^ pv;
|
||||
mv |= ~(eq | pv);
|
||||
pv &= eq;
|
||||
if (mv & lst) {
|
||||
sc++;
|
||||
}
|
||||
if (pv & lst) {
|
||||
sc--;
|
||||
}
|
||||
mv = (mv << 1) | 1;
|
||||
pv = (pv << 1) | ~(xv | mv);
|
||||
mv &= xv;
|
||||
}
|
||||
i = n;
|
||||
while (i--) {
|
||||
peq[a.charCodeAt(i)] = 0;
|
||||
}
|
||||
return sc;
|
||||
};
|
||||
const myers_x = (b, a) => {
|
||||
const n = a.length;
|
||||
const m = b.length;
|
||||
const mhc = [];
|
||||
const phc = [];
|
||||
const hsize = Math.ceil(n / 32);
|
||||
const vsize = Math.ceil(m / 32);
|
||||
for (let i = 0; i < hsize; i++) {
|
||||
phc[i] = -1;
|
||||
mhc[i] = 0;
|
||||
}
|
||||
let j = 0;
|
||||
for (; j < vsize - 1; j++) {
|
||||
let mv = 0;
|
||||
let pv = -1;
|
||||
const start = j * 32;
|
||||
const vlen = Math.min(32, m) + start;
|
||||
for (let k = start; k < vlen; k++) {
|
||||
peq[b.charCodeAt(k)] |= 1 << k;
|
||||
}
|
||||
for (let i = 0; i < n; i++) {
|
||||
const eq = peq[a.charCodeAt(i)];
|
||||
const pb = (phc[(i / 32) | 0] >>> i) & 1;
|
||||
const mb = (mhc[(i / 32) | 0] >>> i) & 1;
|
||||
const xv = eq | mv;
|
||||
const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;
|
||||
let ph = mv | ~(xh | pv);
|
||||
let mh = pv & xh;
|
||||
if ((ph >>> 31) ^ pb) {
|
||||
phc[(i / 32) | 0] ^= 1 << i;
|
||||
}
|
||||
if ((mh >>> 31) ^ mb) {
|
||||
mhc[(i / 32) | 0] ^= 1 << i;
|
||||
}
|
||||
ph = (ph << 1) | pb;
|
||||
mh = (mh << 1) | mb;
|
||||
pv = mh | ~(xv | ph);
|
||||
mv = ph & xv;
|
||||
}
|
||||
for (let k = start; k < vlen; k++) {
|
||||
peq[b.charCodeAt(k)] = 0;
|
||||
}
|
||||
}
|
||||
let mv = 0;
|
||||
let pv = -1;
|
||||
const start = j * 32;
|
||||
const vlen = Math.min(32, m - start) + start;
|
||||
for (let k = start; k < vlen; k++) {
|
||||
peq[b.charCodeAt(k)] |= 1 << k;
|
||||
}
|
||||
let score = m;
|
||||
for (let i = 0; i < n; i++) {
|
||||
const eq = peq[a.charCodeAt(i)];
|
||||
const pb = (phc[(i / 32) | 0] >>> i) & 1;
|
||||
const mb = (mhc[(i / 32) | 0] >>> i) & 1;
|
||||
const xv = eq | mv;
|
||||
const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;
|
||||
let ph = mv | ~(xh | pv);
|
||||
let mh = pv & xh;
|
||||
score += (ph >>> (m - 1)) & 1;
|
||||
score -= (mh >>> (m - 1)) & 1;
|
||||
if ((ph >>> 31) ^ pb) {
|
||||
phc[(i / 32) | 0] ^= 1 << i;
|
||||
}
|
||||
if ((mh >>> 31) ^ mb) {
|
||||
mhc[(i / 32) | 0] ^= 1 << i;
|
||||
}
|
||||
ph = (ph << 1) | pb;
|
||||
mh = (mh << 1) | mb;
|
||||
pv = mh | ~(xv | ph);
|
||||
mv = ph & xv;
|
||||
}
|
||||
for (let k = start; k < vlen; k++) {
|
||||
peq[b.charCodeAt(k)] = 0;
|
||||
}
|
||||
return score;
|
||||
};
|
||||
const distance = (a, b) => {
|
||||
if (a.length < b.length) {
|
||||
const tmp = b;
|
||||
b = a;
|
||||
a = tmp;
|
||||
}
|
||||
if (b.length === 0) {
|
||||
return a.length;
|
||||
}
|
||||
if (a.length <= 32) {
|
||||
return myers_32(a, b);
|
||||
}
|
||||
return myers_x(a, b);
|
||||
};
|
||||
const closest = (str, arr) => {
|
||||
let min_distance = Infinity;
|
||||
let min_index = 0;
|
||||
for (let i = 0; i < arr.length; i++) {
|
||||
const dist = distance(str, arr[i]);
|
||||
if (dist < min_distance) {
|
||||
min_distance = dist;
|
||||
min_index = i;
|
||||
}
|
||||
}
|
||||
return arr[min_index];
|
||||
};
|
||||
export { closest, distance };
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,61 +0,0 @@
|
|||
var rule = {
|
||||
title:'88看球',
|
||||
// host:'http://www.88kanqiu.cc',
|
||||
host:'http://www.88kanqiu.bar/',
|
||||
url: "/match/fyclass/live",
|
||||
searchUrl: "",
|
||||
searchable: 0,
|
||||
quickSearch: 0,
|
||||
class_parse: ".nav-pills li;a&&Text;a&&href;/match/(\\d+)/live",
|
||||
headers: {
|
||||
"User-Agent": "PC_UA",
|
||||
},
|
||||
timeout: 5000,
|
||||
play_parse: true,
|
||||
pagecount:{"1":1,"2":1,"4":1,"22":1,"8":1,"9":1,"10":1,"14":1,"15":1,"12":1,"13":1,"16":1,"28":1,"7":1,"11":1,"33":1,"27":1,"23":1,"26":1,"3":1,"21":1,"18":1},
|
||||
lazy: `js:
|
||||
if(/embed=/.test(input)) {
|
||||
let url = input.match(/embed=(.*?)&/)[1];
|
||||
url = base64Decode(url);
|
||||
input = {
|
||||
jx:0,
|
||||
url: url.split('#')[0],
|
||||
parse: 0
|
||||
}
|
||||
} else if (/\?url=/.test(input)){
|
||||
input = {
|
||||
jx:0,
|
||||
url: input.split('?url=')[1].split('#')[0],
|
||||
parse: 0
|
||||
}
|
||||
} else {
|
||||
input
|
||||
}
|
||||
`,
|
||||
limit: 6,
|
||||
double: false,
|
||||
推荐: "*",
|
||||
一级: ".list-group .group-game-item;.d-none&&Text;img&&src;.btn&&Text;a&&href",
|
||||
二级: {
|
||||
title: ".game-info-container&&Text;.customer-navbar-nav li&&Text",
|
||||
img: "img&&src",
|
||||
desc: ";;;div.team-name:eq(0)&&Text;div.team-name:eq(1)&&Text",
|
||||
content: "div.game-time&&Text",
|
||||
tabs: "js:TABS=['实时直播']",
|
||||
lists: `js:
|
||||
LISTS = [];
|
||||
let html = request(input.replace('play', 'play-url'));
|
||||
let pdata = JSON.parse(html).data;
|
||||
pdata = pdata.slice(6);
|
||||
pdata = pdata.slice(0, -2);
|
||||
pdata = base64Decode(pdata);
|
||||
// log(pdata);
|
||||
let jo = JSON.parse(pdata).links;
|
||||
let d = jo.map(function (it) {
|
||||
return it.name + '$' + urlencode(it.url)
|
||||
});
|
||||
LISTS.push(d)
|
||||
`,
|
||||
},
|
||||
搜索: "",
|
||||
};
|
|
@ -1,126 +0,0 @@
|
|||
var rule = {
|
||||
title:'爱盘搜[夸]',
|
||||
host:'https://aipanso.com',
|
||||
homeUrl:'/',
|
||||
url: '/forum-fyclass-fypage.html?',
|
||||
filter_url:'{{fl.class}}',
|
||||
filter:{
|
||||
},
|
||||
searchUrl: '/search?page=fypage&s=1&t=-1&k=**',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
filterable:0,
|
||||
headers:{
|
||||
'User-Agent': PC_UA,
|
||||
'Accept': '*/*',
|
||||
'Referer': 'https://aipanso.com/'
|
||||
},
|
||||
timeout:5000,
|
||||
class_name:'',
|
||||
class_url:'',
|
||||
play_parse:true,
|
||||
play_json:[{
|
||||
re:'*',
|
||||
json:{
|
||||
parse:0,
|
||||
jx:0
|
||||
}
|
||||
}],
|
||||
lazy:'',
|
||||
limit:6,
|
||||
推荐:'',
|
||||
一级:'',
|
||||
二级:{
|
||||
title:"van-row h3&&Text",
|
||||
img:"",
|
||||
desc:"van-row h3&&Text",
|
||||
content:"van-row h3&&Text",
|
||||
tabs:`js:
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
TABS=[]
|
||||
TABS.push("夸克網盤");
|
||||
log('meijumi TABS >>>>>>>>>>>>>>>>>>' + TABS);
|
||||
`,
|
||||
lists:`js:
|
||||
log(TABS);
|
||||
LISTS=[];
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
let requestHeaders = {
|
||||
withHeaders: true,
|
||||
redirect: 0,
|
||||
headers:{
|
||||
Referer: MY_URL
|
||||
}
|
||||
};
|
||||
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
Object.assign(_fetch_params, requestHeaders);
|
||||
let new_html = request ( MY_URL.replace("/s/","/cv/"), _fetch_params);
|
||||
let json=JSON.parse(new_html);
|
||||
let redirectUrl = "";
|
||||
if (json.hasOwnProperty("Location")){
|
||||
redirectUrl = json["Location"];
|
||||
}else if (json.hasOwnProperty("location")){
|
||||
redirectUrl = json["location"];
|
||||
}
|
||||
let title = pdfh(html, 'van-row h3&&Text');
|
||||
LISTS.push([title + '$' + 'push://' + redirectUrl]);
|
||||
`,
|
||||
},
|
||||
搜索:`js:
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
|
||||
log("aipanso enter search >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + KEY);
|
||||
let withHeaders = {
|
||||
withHeaders: true
|
||||
};
|
||||
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
Object.assign(_fetch_params, withHeaders);
|
||||
|
||||
log('aipanso search params >>>>>>>>>>>>>>>>>>>>>' + JSON.stringify(_fetch_params));
|
||||
let new_html=request(rule.homeUrl + 'search?page=' + MY_PAGE + '&s=1&t=-1&k=' + encodeURIComponent(KEY) , _fetch_params);
|
||||
//log('aipanso search new_html >>>>>>>>>>>>>>>>>>>>>' + new_html);
|
||||
let json=JSON.parse(new_html);
|
||||
let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie");
|
||||
let cookie="";
|
||||
if (typeof setCk !== "undefined"){
|
||||
let d=[];
|
||||
for(const key in json[setCk]){
|
||||
if (typeof json[setCk][key] === "string"){
|
||||
log("aipanso header setCk key>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + json[setCk][key] + " " + (typeof json[setCk][key]));
|
||||
d.push(json[setCk][key].split(";")[0]);
|
||||
}
|
||||
}
|
||||
cookie=d.join(";");
|
||||
setItem(RULE_CK, cookie);
|
||||
fetch_params.headers.Cookie=cookie;
|
||||
rule_fetch_params.headers.Cookie=cookie;
|
||||
}
|
||||
log('aipanso search cookie >>>>>>>>>>>>>>>>>>>>>' + cookie);
|
||||
//log('aipanso search body >>>>>>>>>>>>>>>>>>>>>' + json['body'].substring(4096));
|
||||
|
||||
new_html = json['body'];
|
||||
|
||||
let d=[];
|
||||
let dlist = pdfa(new_html, 'van-row:has(>a[href^="/s/"])');
|
||||
dlist.forEach(function(it){
|
||||
let title = pdfh(it, 'van-card template&&Text');
|
||||
if (title.includes(KEY)){
|
||||
if (searchObj.quick === true){
|
||||
title = KEY;
|
||||
}
|
||||
let img = pd(it, 'van-card&&thumb', HOST);
|
||||
let content = pdfh(it, 'van-card template:eq(1)&&Text');
|
||||
let desc = pdfh(it, 'van-card template:eq(1)&&Text');
|
||||
let url = pd(it, 'a&&href', HOST);
|
||||
d.push({
|
||||
title:title,
|
||||
img:img,
|
||||
content:content,
|
||||
desc:desc,
|
||||
url:url
|
||||
})
|
||||
}
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
188
天天开心/js/kuba.js
188
天天开心/js/kuba.js
|
@ -1,188 +0,0 @@
|
|||
var rule = {
|
||||
title:'酷吧[磁]',
|
||||
host:'https://www.kuba222.com',
|
||||
homeUrl: '/',
|
||||
url: '/vodtypehtml/fyclass.html?',
|
||||
filter_url:'{{fl.class}}',
|
||||
filter:{
|
||||
},
|
||||
searchUrl: '/search/**-1.html',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
filterable:0,
|
||||
headers:{
|
||||
'User-Agent': 'PC_UA',
|
||||
'Referer': 'https://www.kuba222.com/'
|
||||
},
|
||||
timeout:5000,
|
||||
class_name: '最新&4K&电影&动作片&喜剧片&爱情片&科幻片&恐怖片&剧情片&战争片&微电影&电视剧&动漫&纪录片',
|
||||
class_url: 'new&4K&1&5&6&7&8&9&10&11&21&31&4&16',
|
||||
play_parse:true,
|
||||
play_json:[{
|
||||
re:'*',
|
||||
json:{
|
||||
parse:0,
|
||||
jx:0
|
||||
}
|
||||
}],
|
||||
lazy:'',
|
||||
limit:6,
|
||||
推荐:`js:
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
let d = [];
|
||||
let html = request(input);
|
||||
let list = pdfa(html, 'ul.stui-vodlist li');
|
||||
list.forEach(function (it){
|
||||
d.push({
|
||||
title: pdfh(it, 'a&&title'),
|
||||
desc: pdfh(it, 'li&&div&&a&&span&&Text'),
|
||||
pic_url: pd(it, 'a&&data-original', HOST),
|
||||
url: pdfh(it, 'a&&href')
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
一级:`js:
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
let d = [];
|
||||
if (MY_CATE === '4K'){
|
||||
let turl = (MY_PAGE === 1)? '' : '-' + MY_PAGE;
|
||||
input = rule.homeUrl + 'vodtopichtml/' + '11' + turl + '.html';
|
||||
}else if (MY_CATE === 'new'){
|
||||
input = rule.homeUrl + MY_CATE + '.html';
|
||||
}else{
|
||||
let turl = (MY_PAGE === 1)? '' : '-' + MY_PAGE;
|
||||
input = rule.homeUrl + 'vodtypehtml/' + MY_CATE + turl + '.html';
|
||||
}
|
||||
let html = request(input);
|
||||
let list = pdfa(html, 'ul.stui-vodlist li');
|
||||
list.forEach(function (it){
|
||||
d.push({
|
||||
title: pdfh(it, 'a&&title'),
|
||||
desc: pdfh(it, 'li&&div&&a&&span&&Text'),
|
||||
pic_url: pd(it, 'a&&data-original', HOST),
|
||||
url: pdfh(it, 'a&&href')
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
二级:{
|
||||
title:"div.stui-content h3&&Text",
|
||||
img:"div.stui-content a.lazyload img&&src",
|
||||
desc:'div.stui-content a span&&Text',
|
||||
content:'div.stui-content p.data&&Text',
|
||||
tabs:`js:
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
TABS=[]
|
||||
let vodUrls=[];
|
||||
try{
|
||||
vodUrls.push(html.match(/var GvodUrls1 *= *"([^"]*)"/)[1]);
|
||||
vodUrls.push(html.match(/var GvodUrls2 *= *"([^"]*)"/)[1]);
|
||||
vodUrls.push(html.match(/var GvodUrls3 *= *"([^"]*)"/)[1]);
|
||||
vodUrls.push(html.match(/var GvodUrls4 *= *"([^"]*)"/)[1]);
|
||||
vodUrls.push(html.match(/var GvodUrls5 *= *"([^"]*)"/)[1]);
|
||||
}catch(e){
|
||||
}
|
||||
let index=1;
|
||||
vodUrls.forEach(function (it) {
|
||||
TABS.push("磁力"+index);
|
||||
index = index + 1;
|
||||
});
|
||||
log('kuba TABS >>>>>>>>>>>>>>>>>>' + TABS);
|
||||
`,
|
||||
lists:`js:
|
||||
log(TABS);
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
LISTS = [];
|
||||
let vodUrls=[];
|
||||
//log("kuba html>>>>>>>>>>>>>>>>>>>>>>" + html);
|
||||
try{
|
||||
vodUrls.push(html.match(/var GvodUrls1 *= *"([^"]*)"/)[1]);
|
||||
vodUrls.push(html.match(/var GvodUrls2 *= *"([^"]*)"/)[1]);
|
||||
vodUrls.push(html.match(/var GvodUrls3 *= *"([^"]*)"/)[1]);
|
||||
vodUrls.push(html.match(/var GvodUrls4 *= *"([^"]*)"/)[1]);
|
||||
vodUrls.push(html.match(/var GvodUrls5 *= *"([^"]*)"/)[1]);
|
||||
}catch(e){
|
||||
log('kuba tabs e>>>>>>>>>>>>>>>>>>..' + e);
|
||||
}
|
||||
vodUrls.forEach(function (it) {
|
||||
let epos = it.split("###");
|
||||
let d=[];
|
||||
epos.forEach(function (it1){
|
||||
if (it1.length>0){
|
||||
d.push(it1);
|
||||
}
|
||||
});
|
||||
LISTS.push(d.reverse());
|
||||
});
|
||||
`,
|
||||
|
||||
},
|
||||
搜索:`js:
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
let cookie="";
|
||||
if (false){
|
||||
let new_html=request(HOST, {withHeaders:true});
|
||||
let json=JSON.parse(new_html);
|
||||
let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie");
|
||||
if (typeof setCk !== "undefined"){
|
||||
let d=[];
|
||||
for(const key in json[setCk]){
|
||||
if (typeof json[setCk][key] === "string"){
|
||||
log("kuba header setCk key>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + json[setCk][key] + " " + (typeof json[setCk][key]));
|
||||
d.push(json[setCk][key].split(";")[0]);
|
||||
}
|
||||
}
|
||||
cookie=d.join(";");
|
||||
}
|
||||
fetch_params.headers.Cookie=cookie;
|
||||
rule_fetch_params.headers.Cookie=cookie;
|
||||
}
|
||||
log('kuba search cookie >>>>>>>>>>>>>>>>>>>>>' + cookie);
|
||||
|
||||
let params = 'wd='+ encodeURIComponent(KEY) + '&submit=';
|
||||
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
let postData = {
|
||||
body: params
|
||||
};
|
||||
Object.assign(_fetch_params, postData);
|
||||
log("kuba search postData>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params));
|
||||
let search_html = post( HOST + '/index.php?m=vod-search', _fetch_params)
|
||||
search_html = search_html.replace(/<script>.*?<\\/script>/g,"");
|
||||
//log("kuba search result>>>>>>>>>>>>>>>" + search_html.substring(4096));
|
||||
let d=[];
|
||||
let dlist = pdfa(search_html, 'li.activeclearfix');
|
||||
log("kuba search dlist.length>>>>>>>>>>>>>" + dlist.length);
|
||||
dlist.forEach(function(it){
|
||||
let title = pdfh(it, 'a&&title');
|
||||
let img = pd(it, 'a&&data-original', HOST);
|
||||
let content = pdfh(it, 'a&&Text');
|
||||
let desc = pdfh(it, 'div.detail&&Text');
|
||||
let url = pd(it, 'a&&href', HOST);
|
||||
d.push({
|
||||
title:title,
|
||||
img:img,
|
||||
content:content,
|
||||
desc:desc,
|
||||
url:url
|
||||
});
|
||||
});
|
||||
dlist = pdfa(search_html, 'li.active.clearfix');
|
||||
log("kuba search dlist.length>>>>>>>>>>>>>" + dlist.length);
|
||||
dlist.forEach(function(it){
|
||||
let title = pdfh(it, 'a&&title');
|
||||
let img = pd(it, 'a&&data-original', HOST);
|
||||
let content = pdfh(it, 'a&&Text');
|
||||
let desc = pdfh(it, 'div.detail&&Text');
|
||||
let url = pd(it, 'a&&href', HOST);
|
||||
d.push({
|
||||
title:title,
|
||||
img:img,
|
||||
content:content,
|
||||
desc:desc,
|
||||
url:url
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
178
天天开心/js/mp4us.js
178
天天开心/js/mp4us.js
|
@ -1,178 +0,0 @@
|
|||
var rule = {
|
||||
title:'MP4电影[磁]',
|
||||
host:'https://www.mp4us.com',
|
||||
homeUrl: '/',
|
||||
url: '/list/fyclass-fypage.html?',
|
||||
filter_url:'{{fl.class}}',
|
||||
filter:{
|
||||
},
|
||||
searchUrl: '/search/**-1.html',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
filterable:0,
|
||||
headers:{
|
||||
'User-Agent': 'PC_UA',
|
||||
'Cookie':''
|
||||
},
|
||||
timeout:5000,
|
||||
class_name: '动作片&科幻片&爱情片&喜剧片&恐怖片&战争片&剧情片&纪录片&动画片&电视剧',
|
||||
class_url: '1&2&3&4&5&6&7&8&9&10',
|
||||
play_parse:true,
|
||||
play_json:[{
|
||||
re:'*',
|
||||
json:{
|
||||
parse:0,
|
||||
jx:0
|
||||
}
|
||||
}],
|
||||
lazy:'',
|
||||
limit:6,
|
||||
推荐:'div.index_update ul li;a&&Text;;b&&Text;a&&href',
|
||||
一级:'div#list_all ul li;img.lazy&&alt;img.lazy&&data-original;span.update_time&&Text;a&&href',
|
||||
二级:{
|
||||
title:"div.article-header h1&&Text",
|
||||
img:"div.article-header div.pic img&&src",
|
||||
desc:'div.article-header div.text&&Text',
|
||||
content:'div.article-related.info p&&Text',
|
||||
tabs:`js:
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
TABS=[]
|
||||
let d = pdfa(html, 'ul.down-list&&li a');
|
||||
let tabsa = [];
|
||||
let tabsq = [];
|
||||
let tabsm = false;
|
||||
let tabse = false;
|
||||
d.forEach(function(it) {
|
||||
let burl = pdfh(it, 'a&&href');
|
||||
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
|
||||
tabsa.push("阿里雲盤");
|
||||
}else if (burl.startsWith("https://pan.quark.cn/s/")){
|
||||
tabsq.push("夸克網盤");
|
||||
}else if (burl.startsWith("magnet")){
|
||||
tabsm = true;
|
||||
}else if (burl.startsWith("ed2k")){
|
||||
tabse = true;
|
||||
}
|
||||
});
|
||||
if (tabsm === true){
|
||||
TABS.push("磁力");
|
||||
}
|
||||
if (tabse === true){
|
||||
TABS.push("電驢");
|
||||
}
|
||||
if (false && tabsa.length + tabsq.length > 1){
|
||||
TABS.push("選擇右側綫路");
|
||||
}
|
||||
let tmpIndex;
|
||||
tmpIndex=1;
|
||||
tabsa.forEach(function(it){
|
||||
TABS.push(it + tmpIndex);
|
||||
tmpIndex = tmpIndex + 1;
|
||||
});
|
||||
tmpIndex=1;
|
||||
tabsq.forEach(function(it){
|
||||
TABS.push(it + tmpIndex);
|
||||
tmpIndex = tmpIndex + 1;
|
||||
});
|
||||
log('mp4us TABS >>>>>>>>>>>>>>>>>>' + TABS);
|
||||
`,
|
||||
lists:`js:
|
||||
log(TABS);
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
LISTS = [];
|
||||
let d = pdfa(html, 'ul.down-list&&li a');
|
||||
let lista = [];
|
||||
let listq = [];
|
||||
let listm = [];
|
||||
let liste = [];
|
||||
d.forEach(function(it){
|
||||
let burl = pdfh(it, 'a&&href');
|
||||
let title = pdfh(it, 'a&&Text');
|
||||
log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
|
||||
log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
|
||||
let loopresult = title + '$' + burl;
|
||||
if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){
|
||||
if (true){
|
||||
if (TABS.length==1){
|
||||
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl);
|
||||
}else{
|
||||
burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl);
|
||||
}
|
||||
}else{
|
||||
burl = "push://" + burl;
|
||||
}
|
||||
loopresult = title + '$' + burl;
|
||||
lista.push(loopresult);
|
||||
}else if (burl.startsWith("https://pan.quark.cn/s/")){
|
||||
if (true){
|
||||
if (TABS.length==1){
|
||||
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl);
|
||||
}else{
|
||||
burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl);
|
||||
}
|
||||
}else{
|
||||
burl = "push://" + burl;
|
||||
}
|
||||
loopresult = title + '$' + burl;
|
||||
listq.push(loopresult);
|
||||
}else if (burl.startsWith("magnet")){
|
||||
listm.push(loopresult);
|
||||
}else if (burl.startsWith("ed2k")){
|
||||
liste.push(loopresult);
|
||||
}
|
||||
});
|
||||
if (listm.length>0){
|
||||
LISTS.push(listm.reverse());
|
||||
}
|
||||
if (liste.length>0){
|
||||
LISTS.push(liste.reverse());
|
||||
}
|
||||
if (false && lista.length + listq.length > 1){
|
||||
LISTS.push(["選擇右側綫路,或3秒後自動跳過$http://127.0.0.1:10079/delay/"]);
|
||||
}
|
||||
lista.forEach(function(it){
|
||||
LISTS.push([it]);
|
||||
});
|
||||
listq.forEach(function(it){
|
||||
LISTS.push([it]);
|
||||
});
|
||||
`,
|
||||
|
||||
},
|
||||
搜索:`js:
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
if (rule_fetch_params.headers.Cookie.startsWith("http")){
|
||||
rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie);
|
||||
let cookie = rule_fetch_params.headers.Cookie;
|
||||
setItem(RULE_CK, cookie);
|
||||
};
|
||||
log('mp4us seach cookie>>>>>>>>>>>>>' + rule_fetch_params.headers.Cookie);
|
||||
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
//log("mp4us search params>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params));
|
||||
let search_html = request( HOST + '/search/' + encodeURIComponent(KEY) + '-1.html', _fetch_params)
|
||||
//log("mp4us search result>>>>>>>>>>>>>>>" + search_html);
|
||||
let d=[];
|
||||
//'div#list_all li;img.lazy&&alt;img.lazy&&src;div.text_info h2&&Text;a&&href;p.info&&Text',
|
||||
let dlist = pdfa(search_html, 'div#list_all li');
|
||||
dlist.forEach(function(it){
|
||||
let title = pdfh(it, 'img.lazy&&alt');
|
||||
if (title.includes(KEY)){
|
||||
if (searchObj.quick === true){
|
||||
title = KEY;
|
||||
}
|
||||
let img = pd(it, 'img.lazy&&src', HOST);
|
||||
let content = pdfh(it, 'div.text_info h2&&Text');
|
||||
let desc = pdfh(it, 'p.info&&Text');
|
||||
let url = pd(it, 'a&&href', HOST);
|
||||
d.push({
|
||||
title:title,
|
||||
img:img,
|
||||
content:content,
|
||||
desc:desc,
|
||||
url:url
|
||||
})
|
||||
}
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
102
天天开心/js/yyets.js
102
天天开心/js/yyets.js
|
@ -1,102 +0,0 @@
|
|||
var rule = {
|
||||
title:'人人影视[搜]',
|
||||
host:'https://yyets.click',
|
||||
homeUrl:'/',
|
||||
url:'*',
|
||||
filter_url:'{{fl.class}}',
|
||||
filter:{
|
||||
},
|
||||
searchUrl: '*',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
filterable:0,
|
||||
headers:{
|
||||
'User-Agent': PC_UA,
|
||||
'Accept': '*/*',
|
||||
'Referer': 'https://yyets.click/',
|
||||
'Cookie':'http://127.0.0.1:9978/file:///tvbox/JS/lib/yyets.txt',
|
||||
},
|
||||
timeout:5000,
|
||||
class_name:'',
|
||||
class_url:'',
|
||||
play_parse:true,
|
||||
play_json:[{
|
||||
re:'*',
|
||||
json:{
|
||||
parse:0,
|
||||
jx:0
|
||||
}
|
||||
}],
|
||||
lazy:'',
|
||||
limit:6,
|
||||
推荐:'',
|
||||
一级:'',
|
||||
二级:`js:
|
||||
VOD.vod_play_from = "雲盤";
|
||||
VOD.vod_remarks = detailUrl;
|
||||
VOD.vod_actor = "沒有二級,只有一級鏈接直接推送播放";
|
||||
VOD.vod_content = MY_URL;
|
||||
VOD.vod_play_url = "雲盤$" + detailUrl;
|
||||
`,
|
||||
搜索:`js:
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
if (rule_fetch_params.headers.Cookie.startsWith("http")){
|
||||
rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie);
|
||||
let cookie = rule_fetch_params.headers.Cookie;
|
||||
setItem(RULE_CK, cookie);
|
||||
};
|
||||
log('yyets search cookie>>>>>>>>>>>>>>>' + rule_fetch_params.headers.Cookie);
|
||||
let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
|
||||
_fetch_params.headers.Referer = 'http://yyets.click/search?keyword=' + encodeURIComponent(KEY) + '&type=default';
|
||||
log('yyets search params>>>>>>>>>>>>>>>' + JSON.stringify(_fetch_params));
|
||||
let new_html=request(rule.homeUrl + 'api/resource?keyword=' + encodeURIComponent(KEY) + '&type=default', _fetch_params);
|
||||
//log("yyets search result>>>>>>>>>>>>>>>" + new_html);
|
||||
let json=JSON.parse(new_html);
|
||||
let d=[];
|
||||
for(const it in json.comment){
|
||||
if (json.comment.hasOwnProperty(it)){
|
||||
log("yyets search it>>>>>>>>>>>>>>>" + JSON.stringify(json.comment[it]));
|
||||
if (/(www.aliyundrive.com|pan.quark.cn|www.alipan.com)/.test(json.comment[it].comment)){
|
||||
let its = json.comment[it].comment.split("\\n");
|
||||
let i=0;
|
||||
while(i<its.length){
|
||||
let title=its[i].trim().replaceAll(/\\s+/g," ");
|
||||
if (title.length==0){
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
let urls=[];
|
||||
log("yyets search title>>>>>>>>>>>>>>>" + title);
|
||||
while(++i<its.length){
|
||||
log("yyets search url>>>>>>>>>>>>>>>" + its[i]);
|
||||
let burl = its[i].trim().split(" ")[0];
|
||||
if (burl.length==0){
|
||||
continue;
|
||||
}
|
||||
if (burl.includes("https://")){
|
||||
urls.push("https:"+burl.split("https:")[1]);
|
||||
}else{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (urls.length>0){
|
||||
log("yyets search title,urls>>>>>>>>>>>>>>>" + title + ",[" + JSON.stringify(urls) + "]");
|
||||
if (title.includes(KEY)){
|
||||
urls.forEach(function (url) {
|
||||
d.push({
|
||||
title:title,
|
||||
img:'',
|
||||
content:json.comment[it].comment,
|
||||
desc:json.comment[it].date,
|
||||
url:'push://'+url
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -1,773 +0,0 @@
|
|||
{
|
||||
"author": "takagen99",
|
||||
"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
|
||||
"homeUrl": "https://www.duboku.tv/",
|
||||
"dcVipFlag": "true",
|
||||
"dcPlayUrl": "true",
|
||||
"cateNode": "//ul[contains(@class,'nav-menu')]/li/a[contains(@href, 'vodtype')]",
|
||||
"cateName": "/text()",
|
||||
"cateId": "/@href",
|
||||
"cateIdR": "/vodtype/(\\w+).html",
|
||||
"cateManual": {
|
||||
"陆剧": "13",
|
||||
"日韩剧": "15",
|
||||
"短剧": "21",
|
||||
"英美剧": "16",
|
||||
"台泰剧": "14",
|
||||
"港剧": "20",
|
||||
"综艺": "3",
|
||||
"动漫": "4"
|
||||
},
|
||||
"homeVodNode": "//ul[contains(@class,'myui-vodlist')]/li/div/a",
|
||||
"homeVodName": "/@title",
|
||||
"homeVodId": "/@href",
|
||||
"homeVodIdR": "/voddetail/(\\w+).html",
|
||||
"homeVodImg": "/@data-original",
|
||||
"homeVodImgR": "\\S+(http\\S+)",
|
||||
"homeVodMark": "//span[contains(@class,'pic-text')]/text()",
|
||||
"cateUrl": "https://www.duboku.tv/vodshow/{cateId}-{area}-{by}------{catePg}---{year}.html",
|
||||
"cateVodNode": "//ul[contains(@class,'myui-vodlist')]/li/div/a",
|
||||
"cateVodName": "/@title",
|
||||
"cateVodId": "/@href",
|
||||
"cateVodIdR": "/voddetail/(\\w+).html",
|
||||
"cateVodImg": "/@data-original",
|
||||
"cateVodImgR": "\\S+(http\\S+)",
|
||||
"cateVodMark": "//span[contains(@class,'pic-text')]/text()",
|
||||
"dtUrl": "https://w.duboku.io/voddetail/{vid}.html",
|
||||
"dtNode": "//body",
|
||||
"dtName": "//div[contains(@class,'myui-content__thumb')]/a/@title",
|
||||
"dtNameR": "",
|
||||
"dtImg": "//div[contains(@class,'myui-content__thumb')]/a/img/@data-original",
|
||||
"dtImgR": "",
|
||||
"dtCate": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '分类')]/following-sibling::a/text()",
|
||||
"dtYear": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '年份')]/following-sibling::a/text()",
|
||||
"dtArea": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '地区')]/following-sibling::a/text()",
|
||||
"dtMark": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '更新')]/following-sibling::a/text()",
|
||||
"dtDirector": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '导演')]/following-sibling::a/text()",
|
||||
"dtActor": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '主演')]/following-sibling::a/text()",
|
||||
"dtDesc": "//div[contains(@class,'myui-content__detail')]/p/span[contains(text(), '简介')]/following-sibling::a/text()",
|
||||
"dtFromNode": "//ul[contains(@class,'nav-tabs')]/li/a",
|
||||
"dtFromName": "/text()",
|
||||
"dtFromNameR": "",
|
||||
"dtUrlNode": "//ul[contains(@class,'myui-content__list')]",
|
||||
"dtUrlSubNode": "/li/a",
|
||||
"dtUrlId": "/@href",
|
||||
"dtUrlIdR": "/vodplay/(\\S+).html",
|
||||
"dtUrlName": "/text()",
|
||||
"dtUrlNameR": "",
|
||||
|
||||
"playUrl": "https://w.duboku.io/vodplay/{playUrl}.html",
|
||||
"playUa": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
|
||||
"playReferer": "https://w.duboku.io/",
|
||||
"searchUrl": "https://w.duboku.io/index.php/ajax/suggest?mid=1&wd={wd}&limit=10",
|
||||
"scVodNode": "json:list",
|
||||
"scVodName": "name",
|
||||
"scVodId": "id",
|
||||
"scVodIdR": "",
|
||||
"scVodImg": "pic",
|
||||
"scVodMark": "",
|
||||
"filter": {
|
||||
"13": [
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
},
|
||||
{
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
},
|
||||
{
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
},
|
||||
{
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
},
|
||||
{
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
},
|
||||
{
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
},
|
||||
{
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "排序",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
},
|
||||
{
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
},
|
||||
{
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"14": [
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
},
|
||||
{
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
},
|
||||
{
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
},
|
||||
{
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
},
|
||||
{
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
},
|
||||
{
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
},
|
||||
{
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "排序",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
},
|
||||
{
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
},
|
||||
{
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"16": [
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
},
|
||||
{
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
},
|
||||
{
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
},
|
||||
{
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
},
|
||||
{
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
},
|
||||
{
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
},
|
||||
{
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "排序",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
},
|
||||
{
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
},
|
||||
{
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"15": [
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
},
|
||||
{
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
},
|
||||
{
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
},
|
||||
{
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
},
|
||||
{
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
},
|
||||
{
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
},
|
||||
{
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "排序",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
},
|
||||
{
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
},
|
||||
{
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"2": [
|
||||
{
|
||||
"key": "cateId",
|
||||
"name": "类型",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "陆剧",
|
||||
"v": "13"
|
||||
},
|
||||
{
|
||||
"n": "日韩剧",
|
||||
"v": "15"
|
||||
},
|
||||
{
|
||||
"n": "英美剧",
|
||||
"v": "16"
|
||||
},
|
||||
{
|
||||
"n": "台泰剧",
|
||||
"v": "14"
|
||||
},
|
||||
{
|
||||
"n": "港剧",
|
||||
"v": "20"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "内地",
|
||||
"v": "内地"
|
||||
},
|
||||
{
|
||||
"n": "韩国",
|
||||
"v": "韩国"
|
||||
},
|
||||
{
|
||||
"n": "香港",
|
||||
"v": "香港"
|
||||
},
|
||||
{
|
||||
"n": "台湾",
|
||||
"v": "台湾"
|
||||
},
|
||||
{
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
},
|
||||
{
|
||||
"n": "英国",
|
||||
"v": "英国"
|
||||
},
|
||||
{
|
||||
"n": "巴西",
|
||||
"v": "巴西"
|
||||
},
|
||||
{
|
||||
"n": "西班牙",
|
||||
"v": "西班牙"
|
||||
},
|
||||
{
|
||||
"n": "泰国",
|
||||
"v": "泰国"
|
||||
},
|
||||
{
|
||||
"n": "德国",
|
||||
"v": "德国"
|
||||
},
|
||||
{
|
||||
"n": "法国",
|
||||
"v": "法国"
|
||||
},
|
||||
{
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
},
|
||||
{
|
||||
"n": "荷兰",
|
||||
"v": "荷兰"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
},
|
||||
{
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
},
|
||||
{
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
},
|
||||
{
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
},
|
||||
{
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
},
|
||||
{
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
},
|
||||
{
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "排序",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
},
|
||||
{
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
},
|
||||
{
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"3": [
|
||||
{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "内地",
|
||||
"v": "内地"
|
||||
},
|
||||
{
|
||||
"n": "香港",
|
||||
"v": "香港"
|
||||
},
|
||||
{
|
||||
"n": "台湾",
|
||||
"v": "台湾"
|
||||
},
|
||||
{
|
||||
"n": "韩国",
|
||||
"v": "韩国"
|
||||
},
|
||||
{
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
},
|
||||
{
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
},
|
||||
{
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
},
|
||||
{
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
},
|
||||
{
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "排序",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
},
|
||||
{
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
},
|
||||
{
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"4": [
|
||||
{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "国产",
|
||||
"v": "国产"
|
||||
},
|
||||
{
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
},
|
||||
{
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
},
|
||||
{
|
||||
"n": "法国",
|
||||
"v": "法国"
|
||||
},
|
||||
{
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
},
|
||||
{
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
},
|
||||
{
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
},
|
||||
{
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
},
|
||||
{
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
},
|
||||
{
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
},
|
||||
{
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "排序",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
},
|
||||
{
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
},
|
||||
{
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"20": [
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
},
|
||||
{
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
},
|
||||
{
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
},
|
||||
{
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
},
|
||||
{
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
},
|
||||
{
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
},
|
||||
{
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "排序",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
},
|
||||
{
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
},
|
||||
{
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"21": [
|
||||
{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
},
|
||||
{
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
},
|
||||
{
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
},
|
||||
{
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
},
|
||||
{
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
},
|
||||
{
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
},
|
||||
{
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [
|
||||
{
|
||||
"n": "排序",
|
||||
"v": ""
|
||||
},
|
||||
{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
},
|
||||
{
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
},
|
||||
{
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
[
|
||||
|
||||
{"name":"范明明IPV6","url":"http://127.0.0.1:10079/c/3600/proxy/https://raw.githubusercontent.com/fanmingming/live/refs/heads/main/tv/m3u/ipv6.m3u"},
|
||||
{"name":"最强国内直播","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/tv.m3u"},
|
||||
{"name":"肥羊咪咕直播","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/migu.m3u"},
|
||||
{"name":"肥羊B站直播","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/bililive.m3u"},
|
||||
{"name":"肥羊虎牙一起看","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/huyayqk.m3u"},
|
||||
{"name":"肥羊斗鱼一起看","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/douyuyqk.m3u"},
|
||||
{"name":"肥羊YY轮播","url":"http://127.0.0.1:10079/c/3600/null/http://127.0.0.1:35456/yylunbo.m3u"},
|
||||
{"name":"Gather.电视直播","url":"https://tv.iill.top/m3u/Gather"},
|
||||
{"name":"Gather.网络直播","url":"https://tv.iill.top/m3u/Live"},
|
||||
{"name":"Gather.MyTV","url":"http://127.0.0.1:10079/c/60/proxy/https://tv.iill.top/m3u/MyTV"},
|
||||
{"name":"范明明OfficalSite","url":"http://127.0.0.1:10079/p/0/proxy/https://live.fanmingming.com/tv/m3u/global.m3u"},
|
||||
{"name":"范明明GitHub","url":"http://127.0.0.1:10079/c/3600/proxy/https://mirror.ghproxy.com/raw.githubusercontent.com/fanmingming/live/main/tv/m3u/global.m3u"},
|
||||
{"name":"范明明IPV6","url":"http://127.0.0.1:10079/c/3600/proxy/https://raw.githubusercontent.com/fanmingming/live/refs/heads/main/tv/m3u/ipv6.m3u"}
|
||||
]
|
|
@ -1,80 +0,0 @@
|
|||
[
|
||||
{"type_id":"https://mypikpak.com/s/self", "type_name":"我的PikPak網盤", "version":"20240301"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRT8Wr8BGyw1kt1HkijKR4Qo1","type_name":"高清劇集合集一二"},
|
||||
{"type_id":"https://mypikpak.com/s/VNThL9vJ7kj57e2Kr_dlOzc0o1","type_name":"每日更新" },
|
||||
{"type_id":"https://mypikpak.com/s/VNBG3CPruacfHy3KVrVR1Qbko1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧1"},
|
||||
{"type_id":"https://mypikpak.com/s/VNBXQHEBywwEP48SYNoLGhg-o1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧10"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCKGMKeL4KQWxNSeNl-aNK8o1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧11"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCKIgIdXbeMUnS27Hc7ifoho1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧12"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCKK_lIL4KQWxNSeNl-b-Avo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧13"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCPyF1ibAmUFsTwcgPpV2RPo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧14"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCPyIV4bsikE1REQUzU3HAKo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧15"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCPyLg-XbeMUnS27Hc8e-evo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧16"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCPyOHZfY9FgjheL_s6tE0Eo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧17"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCdGBWsTsU_1xrcd7arNGkyo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧18"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCdGaN8bsik85HcYchTzGwpo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧19"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCdGlQdbAmU3kIGsTh-INYQo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧20"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCdGvg1QqH-jGYGfgcDoqWho1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧21"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCdHOhJTsU_1xrcd7arNWAuo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧22"},
|
||||
{"type_id":"https://mypikpak.com/s/VNCdHU8Xbsik85HcYchTzRlwo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧23"},
|
||||
{"type_id":"https://mypikpak.com/s/VNDJ--9QP3sxqczyGV8n35pUo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧24"},
|
||||
{"type_id":"https://mypikpak.com/s/VNDJ-2f3xeTB-N74vaHopsB8o1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧25"},
|
||||
{"type_id":"https://mypikpak.com/s/VNDJ-6m_P3sxqczyGV8n37Lso1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧26"},
|
||||
{"type_id":"https://mypikpak.com/s/VNDJ-AxdxeTB-N74vaHoptVeo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧27"},
|
||||
{"type_id":"https://mypikpak.com/s/VNDJ-F3_OLXqy_gd7t0qYPsTo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧28"},
|
||||
{"type_id":"https://mypikpak.com/s/VNJ-KE7EDnDGgthutL8stFDco1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧29"},
|
||||
{"type_id":"https://mypikpak.com/s/VNBGhK25s795X1GmZKtAzarxo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧3"},
|
||||
{"type_id":"https://mypikpak.com/s/VNJ-KU-PpnUdNyThzczFHNY0o1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧30"},
|
||||
{"type_id":"https://mypikpak.com/s/VNKX8Tmvg-_M2ALfxiCXcfbOo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧31"},
|
||||
{"type_id":"https://mypikpak.com/s/VNKX8k1cDAay6DoGUEtaSmGjo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧32"},
|
||||
{"type_id":"https://mypikpak.com/s/VNLt5PTTTImas0d3tF0BaJ7Zo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧33"},
|
||||
{"type_id":"https://mypikpak.com/s/VNLt5dq-vYqkqbIuRJRjLoiso1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧34"},
|
||||
{"type_id":"https://mypikpak.com/s/VNLuwIBrvYqkY2pqZt625qhyo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧35"},
|
||||
{"type_id":"https://mypikpak.com/s/VNLuwKtrvYqkY2pqZt625r-eo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧36"},
|
||||
{"type_id":"https://mypikpak.com/s/VNLyAGr0Qwh14Yz40bSwR67do1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧37"},
|
||||
{"type_id":"https://mypikpak.com/s/VNLyAJDMZAcORH2HWUMhsvGWo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧38"},
|
||||
{"type_id":"https://mypikpak.com/s/VNLySlyJpr1J-y7W15G4N6xXo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧39"},
|
||||
{"type_id":"https://mypikpak.com/s/VNBGjxzm-8JG74imIZI6qg8Do1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧4"},
|
||||
{"type_id":"https://mypikpak.com/s/VNLySocLsRCm72XnqKv7pueto1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧40"},
|
||||
{"type_id":"https://mypikpak.com/s/VNLyXhUKwRiUO2berP7_qFoao1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧41"},
|
||||
{"type_id":"https://mypikpak.com/s/VNBH3M6lJXuc4t0v-pqB0dFQo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧5"},
|
||||
{"type_id":"https://mypikpak.com/s/VNBHRToB_DHT_nmBnwoud8QJo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧6"},
|
||||
{"type_id":"https://mypikpak.com/s/VNBHSrWiCjrm4NxyIs_56cHpo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧7"},
|
||||
{"type_id":"https://mypikpak.com/s/VNBXPhSLJktjoBJJe8ptXNbco1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧8"},
|
||||
{"type_id":"https://mypikpak.com/s/VNBXPwl3bA6kG0eqiyJI3ulOo1","type_name":"/🕸️我的PikPak分享/电视剧140T/电视剧9"},
|
||||
{"type_id":"https://mypikpak.com/s/VNDb64cFhcn-yqNU5EWDgRZno1","type_name":"/🕸️我的PikPak分享/电影75T/电影1"},
|
||||
{"type_id":"https://mypikpak.com/s/VNM8-8Xlpr1JhKCjzr3hvs2Vo1","type_name":"/🕸️我的PikPak分享/电影75T/电影10"},
|
||||
{"type_id":"https://mypikpak.com/s/VNDb67b3hcn-yqNU5EWDgUDWo1","type_name":"/🕸️我的PikPak分享/电影75T/电影2"},
|
||||
{"type_id":"https://mypikpak.com/s/VNDca2W6hcn-yqNU5EWE-PLOo1","type_name":"/🕸️我的PikPak分享/电影75T/电影3"},
|
||||
{"type_id":"https://mypikpak.com/s/VNE5x-MGTKDwgZ2rSxM1xhrNo1","type_name":"/🕸️我的PikPak分享/电影75T/电影4"},
|
||||
{"type_id":"https://mypikpak.com/s/VNEdL2CecnVliWDE0AMdROMzo1","type_name":"/🕸️我的PikPak分享/电影75T/电影5"},
|
||||
{"type_id":"https://mypikpak.com/s/VNF8bBfoU5Warn8hY_LZYs3Xo1","type_name":"/🕸️我的PikPak分享/电影75T/电影6"},
|
||||
{"type_id":"https://mypikpak.com/s/VNGGxkU4AYqxeOi-Ts-R_4koo1","type_name":"/🕸️我的PikPak分享/电影75T/电影7"},
|
||||
{"type_id":"https://mypikpak.com/s/VNGHC0J31cRSfFQDubOJoLCAo1","type_name":"/🕸️我的PikPak分享/电影75T/电影8"},
|
||||
{"type_id":"https://mypikpak.com/s/VNM7V9gdpr1JgySnCF-P07aJo1","type_name":"/🕸️我的PikPak分享/电影75T/电影9"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRnagBUCfOipBFoWCX8EGSdo1","type_name":"/🕸️我的PikPak分享/高清电影/合集10"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRR1cc0LmyyGDe21AoK6Ulho1","type_name":"/🕸️我的PikPak分享/高清电影/合集11"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRlVwQYQgqv395kxGBhPmDoo1","type_name":"/🕸️我的PikPak分享/高清电影/合集2"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRm3yZtBGywKa118vzvgAg6o1","type_name":"/🕸️我的PikPak分享/高清电影/合集3"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRmWOmQBGywKa118vzvlRiZo1","type_name":"/🕸️我的PikPak分享/高清电影/合集4"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRmoFmoroRROhEkho_8kY_1o1","type_name":"/🕸️我的PikPak分享/高清电影/合集5"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRn6HqiBGywKa118vzvuqFqo1","type_name":"/🕸️我的PikPak分享/高清电影/合集6"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRnJASUroRROhEkho_8tpGfo1","type_name":"/🕸️我的PikPak分享/高清电影/合集7"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRlg0pS7aWN3HWJGVGp2pZTo1","type_name":"/🕸️我的PikPak分享/高清电影/合集8"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRnQbMN7aWN3HWJGVGpSkxFo1","type_name":"/🕸️我的PikPak分享/高清电影/合集9"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRTAMNvBGyw1kt1HkijL-n0o1","type_name":"/🕸️我的PikPak分享/高清剧集A/合集11"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRTAhOZLmyyX7yiCb6t1jTuo1","type_name":"/🕸️我的PikPak分享/高清剧集A/合集14"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRTBCKPLmyyX7yiCb6t1qEKo1","type_name":"/🕸️我的PikPak分享/高清剧集A/合集18"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRT8zZXg3b_VYsn0bCwlVh5o1","type_name":"/🕸️我的PikPak分享/高清剧集A/合集3"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRT9eYeBGyw1kt1HkijKmL_o1","type_name":"/🕸️我的PikPak分享/高清剧集A/合集5"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRTA2HOg3b_VYsn0bCwlhKyo1","type_name":"/🕸️我的PikPak分享/高清剧集A/合集8"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRTCK4Lg3b_VYsn0bCwmeWXo1","type_name":"/🕸️我的PikPak分享/高清剧集B/合集24"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRTCmbnCfOi1Zl2Ft25Sjw8o1","type_name":"/🕸️我的PikPak分享/高清剧集B/合集30"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRTD2ceyM2NQYlKo78MEzY0o1","type_name":"/🕸️我的PikPak分享/高清剧集B/合集32"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRTDH_KBGyw1kt1HkijMHG5o1","type_name":"/🕸️我的PikPak分享/高清剧集B/合集34"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRTDh9fQgqv_6lSY5Z75Z5Yo1","type_name":"/🕸️我的PikPak分享/高清剧集B/合集35"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRTDyshQgqv_6lSY5Z75a42o1","type_name":"/🕸️我的PikPak分享/高清剧集B/合集37"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRTEG11roRROhEkho_4qFPYo1","type_name":"/🕸️我的PikPak分享/高清剧集B/合集39"},
|
||||
{"type_id":"https://mypikpak.com/s/VNRTFVbPBGyw1kt1HkijMoBko1","type_name":"/🕸️我的PikPak分享/高清剧集B/合集41"}
|
||||
|
||||
]
|
|
@ -1,59 +0,0 @@
|
|||
{
|
||||
"recommend":"名称",
|
||||
"class":[
|
||||
{
|
||||
"type_id":"名称",
|
||||
"type_name":"名称"
|
||||
},
|
||||
{
|
||||
"type_id":"片名",
|
||||
"type_name":"片名"
|
||||
},
|
||||
{
|
||||
"type_id":"LIST:iso,原盘",
|
||||
"type_name":"ISO,原盘"
|
||||
},
|
||||
{
|
||||
"type_id":"ali",
|
||||
"type_name":"阿里"
|
||||
},
|
||||
{
|
||||
"type_id":"quark",
|
||||
"type_name":"夸克"
|
||||
},
|
||||
{
|
||||
"type_id":"uc.cn",
|
||||
"type_name":"UC"
|
||||
},
|
||||
{
|
||||
"type_id":"123",
|
||||
"type_name":"123"
|
||||
},
|
||||
{
|
||||
"type_id":"189",
|
||||
"type_name":"189"
|
||||
},
|
||||
{
|
||||
"type_id":"LIST:115,anxia",
|
||||
"type_name":"115"
|
||||
},
|
||||
{
|
||||
"type_id":"pikpak",
|
||||
"type_name":"PikPak"
|
||||
},
|
||||
{
|
||||
"type_id":"xunlei",
|
||||
"type_name":"迅雷"
|
||||
},
|
||||
{
|
||||
"type_id":"mp4",
|
||||
"type_name":"MP4"
|
||||
},
|
||||
{
|
||||
"type_id":"LIST:测试1,测试2",
|
||||
"type_name":"测试"
|
||||
}
|
||||
],
|
||||
"jx":0,
|
||||
"parse":0
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -1,167 +0,0 @@
|
|||
#EXTM3U
|
||||
#EXTINF:-1,28 AI 智慧賽馬
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/28ai/AKTV.m3u8
|
||||
#EXTINF:-1,Channel 5 HD
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/channel5hd/AKTV.m3u8
|
||||
#EXTINF:-1,Channel 8 HD
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/channel8hd/AKTV.m3u8
|
||||
#EXTINF:-1,Channel U HD
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/channeluhd/AKTV.m3u8
|
||||
#EXTINF:-1,myTV SUPER 18台
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/mytvsuper18/AKTV.m3u8
|
||||
#EXTINF:-1,PopC
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/popc/AKTV.m3u8
|
||||
#EXTINF:-1,ROCK Action
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/rockaction/AKTV.m3u8
|
||||
#EXTINF:-1,TVB Plus
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/tvbplus/AKTV.m3u8
|
||||
#EXTINF:-1,tvN
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/tvn/AKTV.m3u8
|
||||
#EXTINF:-1,中天新聞台
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null-6/AKTV.m3u8
|
||||
#EXTINF:-1,千禧經典台(HK)
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null-15/AKTV.m3u8
|
||||
#EXTINF:-1,娛樂新聞台(HK)
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/hk/AKTV.m3u8
|
||||
#EXTINF:-1,寰宇新聞台
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null-7/AKTV.m3u8
|
||||
#EXTINF:-1,明珠剧集台(北美)
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null-19/AKTV.m3u8
|
||||
#EXTINF:-1,明珠台
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null-2/AKTV.m3u8
|
||||
#EXTINF:-1,無線新聞台
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null-1/AKTV.m3u8
|
||||
#EXTINF:-1,美亞電影台(HK)
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/hk-1/AKTV.m3u8
|
||||
#EXTINF:-1,翡翠剧集台(北美)
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null-18/AKTV.m3u8
|
||||
#EXTINF:-1,翡翠台
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null/AKTV.m3u8
|
||||
#EXTINF:-1,翡翠台 4K
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/4k/AKTV.m3u8
|
||||
#EXTINF:-1,翡翠综合台(北美)
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null-17/AKTV.m3u8
|
||||
#EXTINF:-1,鳳凰中文
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null-3/AKTV.m3u8
|
||||
#EXTINF:-1,鳳凰資訊
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null-4/AKTV.m3u8
|
||||
#EXTINF:-1,鳳凰香港
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null-5/AKTV.m3u8
|
||||
#EXTINF:-1,黃金翡翠台
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv/null-21/AKTV.m3u8
|
||||
#EXTINF:-1,AXN
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv2/axn/AKTV.m3u8
|
||||
#EXTINF:-1,Love Nature HD
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv2/lovenaturehd/AKTV.m3u8
|
||||
#EXTINF:-1,无线新闻台(北美)
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv2/null-1/AKTV.m3u8
|
||||
#EXTINF:-1,東森新聞
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv2/null/AKTV.m3u8
|
||||
#EXTINF:-1,Animax(HK)
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/animaxhk/AKTV.m3u8
|
||||
#EXTINF:-1,DW
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/dw/AKTV.m3u8
|
||||
#EXTINF:-1,France 24
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/france24/AKTV.m3u8
|
||||
#EXTINF:-1,KIX
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/kix/AKTV.m3u8
|
||||
#EXTINF:-1,NHK World-Japan
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/nhkworldjapan/AKTV.m3u8
|
||||
#EXTINF:-1,Nick Jr
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/nickjr/AKTV.m3u8
|
||||
#EXTINF:-1,Nickelodeon
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/nickelodeon/AKTV.m3u8
|
||||
#EXTINF:-1,Thrill
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/thrill/AKTV.m3u8
|
||||
#EXTINF:-1,Xite Hits
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/xitehits/AKTV.m3u8
|
||||
#EXTINF:-1,Xite Rock
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/xiterock/AKTV.m3u8
|
||||
#EXTINF:-1,ZooMoo
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/zoomoo/AKTV.m3u8
|
||||
#EXTINF:-1,亞洲新聞台
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/null-3/AKTV.m3u8
|
||||
#EXTINF:-1,東方衛視國際頻道
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/null/AKTV.m3u8
|
||||
#EXTINF:-1,無線衛星新聞台
|
||||
http://aktv-stream.m16tv.cfd/stream/aktv3/null-2/AKTV.m3u8
|
||||
#EXTINF:-1,Celestial Movies
|
||||
http://aktv-stream.m16tv.cfd/stream/astro_a1/celestialmovies/AKTV.m3u8
|
||||
#EXTINF:-1,CINEMAWORLD
|
||||
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch31/AKTV.m3u8
|
||||
#EXTINF:-1,FIGHT SPORTS
|
||||
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch85/AKTV.m3u8
|
||||
#EXTINF:-1,Mediacorp Entertainment Chinese
|
||||
http://aktv-stream.m16tv.cfd/stream/astro_a1/mediacorpentertainmentchinese/AKTV.m3u8
|
||||
#EXTINF:-1,NBA TV
|
||||
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch84/AKTV.m3u8
|
||||
#EXTINF:-1,Sukan
|
||||
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch89/AKTV.m3u8
|
||||
#EXTINF:-1,TV9
|
||||
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch18/AKTV.m3u8
|
||||
#EXTINF:-1,TVB Jade
|
||||
http://aktv-stream.m16tv.cfd/stream/astro_a1/tvbjade/AKTV.m3u8
|
||||
#EXTINF:-1,TVB Xing He
|
||||
http://aktv-stream.m16tv.cfd/stream/astro_a1/tvbxinghe/AKTV.m3u8
|
||||
#EXTINF:-1,Unifi Sport
|
||||
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch88/AKTV.m3u8
|
||||
#EXTINF:-1,曼聯電視頻道
|
||||
http://aktv-stream.m16tv.cfd/stream/astro_a1/ch87/AKTV.m3u8
|
||||
#EXTINF:-1,朝鮮恩情台
|
||||
http://aktv-stream.m16tv.cfd/stream/nknews/null/AKTV.m3u8
|
||||
#EXTINF:-1,ELTV生活英語台
|
||||
http://aktv-stream.m16tv.cfd/stream/taiwan/eltv/AKTV.m3u8
|
||||
#EXTINF:-1,三立新聞iNEWS
|
||||
http://aktv-stream.m16tv.cfd/stream/taiwan/inews/AKTV.m3u8
|
||||
#EXTINF:-1,中視
|
||||
http://aktv-stream.m16tv.cfd/stream/taiwan/null-4/AKTV.m3u8
|
||||
#EXTINF:-1,中視新聞
|
||||
http://aktv-stream.m16tv.cfd/stream/taiwan/null-13/AKTV.m3u8
|
||||
#EXTINF:-1,台視
|
||||
http://aktv-stream.m16tv.cfd/stream/taiwan/null-3/AKTV.m3u8
|
||||
#EXTINF:-1,台視新聞
|
||||
http://aktv-stream.m16tv.cfd/stream/taiwan/null-15/AKTV.m3u8
|
||||
#EXTINF:-1,華視
|
||||
http://aktv-stream.m16tv.cfd/stream/taiwan/null-5/AKTV.m3u8
|
||||
#EXTINF:-1,龍華偶像台
|
||||
http://aktv-stream.m16tv.cfd/stream/taiwan/null-9/AKTV.m3u8
|
||||
#EXTINF:-1,龍華日韓台
|
||||
http://aktv-stream.m16tv.cfd/stream/taiwan/null-7/AKTV.m3u8
|
||||
#EXTINF:-1,龍華經典台
|
||||
http://aktv-stream.m16tv.cfd/stream/taiwan/null/AKTV.m3u8
|
||||
#EXTINF:-1,龍華電影台
|
||||
http://aktv-stream.m16tv.cfd/stream/taiwan/null-8/AKTV.m3u8
|
||||
#EXTINF:-1,beIN SPORTS XTRA
|
||||
http://aktv-stream.m16tv.cfd/stream/test/beinsportsxtra/AKTV.m3u8
|
||||
#EXTINF:-1,PAC12
|
||||
http://aktv-stream.m16tv.cfd/stream/test/pac12/AKTV.m3u8
|
||||
#EXTINF:-1,Tennis Channel DE
|
||||
http://aktv-stream.m16tv.cfd/stream/test/tennischannel/AKTV.m3u8
|
||||
#EXTINF:-1,緯來體育
|
||||
http://aktv-stream.m16tv.cfd/stream/test/null/AKTV.m3u8
|
||||
#EXTINF:-1,Astro Football
|
||||
http://aktv-stream.m16tv.cfd/stream/tuntun/astrofootball/AKTV.m3u8
|
||||
#EXTINF:-1,Astro IQIYI
|
||||
http://aktv-stream.m16tv.cfd/stream/tuntun/fashiontv4k/AKTV.m3u8
|
||||
#EXTINF:-1,Astro QJ
|
||||
http://aktv-stream.m16tv.cfd/stream/tuntun/astroqj/AKTV.m3u8
|
||||
#EXTINF:-1,Astro 欢喜台
|
||||
http://aktv-stream.m16tv.cfd/stream/tuntun/astro/AKTV.m3u8
|
||||
#EXTINF:-1,Red Bull Sports
|
||||
http://aktv-stream.m16tv.cfd/stream/tuntun/redbullsports/AKTV.m3u8
|
||||
#EXTINF:-1,YES network
|
||||
http://aktv-stream.m16tv.cfd/stream/tuntun/foxsports1us/AKTV.m3u8
|
||||
#EXTINF:-1,CBS SPORTS NETWORK
|
||||
http://aktv-stream.m16tv.cfd/stream/useradd1/cbssportsnetwork/AKTV.m3u8
|
||||
#EXTINF:-1,ESPN
|
||||
http://aktv-stream.m16tv.cfd/stream/useradd1/espn/AKTV.m3u8
|
||||
#EXTINF:-1,ESPN NEWS
|
||||
http://aktv-stream.m16tv.cfd/stream/useradd1/espnnews/AKTV.m3u8
|
||||
#EXTINF:-1,Tennis Channel 2 US
|
||||
http://aktv-stream.m16tv.cfd/stream/useradd1/tennischannel2us/AKTV.m3u8
|
||||
#EXTINF:-1,Tennis Channel US
|
||||
http://aktv-stream.m16tv.cfd/stream/useradd1/tennischannelus/AKTV.m3u8
|
||||
#EXTINF:-1,US MTV LIVE
|
||||
http://aktv-stream.m16tv.cfd/stream/useradd1/usmtvlive/AKTV.m3u8
|
||||
#EXTINF:-1,viuTV
|
||||
http://aktv-stream.m16tv.cfd/stream/useradd1/viutv/AKTV.m3u8
|
|
@ -1,87 +0,0 @@
|
|||
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
|
||||
CCTV1,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226895/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EI0Rkc6neBYgfpoJ1yud8Fw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
CCTV2,http://otttv.bj.chinamobile.com/PLTV/88888888/224/3221226893/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EcnoJZd_sZxCC6bZYZh4R6g%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
CCTV3,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226456/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E_6GNVcVOz9Xub8CclyMRUg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOIR_8g_qYRqpV5wTQqRILi%2CEND
|
||||
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
|
||||
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
|
||||
CCTV5,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226454/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ErKwB8Qqtvssoy-K7GEgesQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOIR_8g_qYRqpV5wTQqRILi%2CEND
|
||||
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
|
||||
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
|
||||
CCTV6,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226453/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ex56LEwufYqPdJkUNYhbNCw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOH2PzEhAK60LI_FWtVxfVS%2CEND
|
||||
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
|
||||
CCTV7,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226946/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E2bEV_zkW1hRnWmsZq6rlbw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
CCTV8,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226451/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EO_1NY-UghfdG_S28Bf_FPw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO1anuaDcpMt0_BMig72trX%2CEND
|
||||
CCTV9,http://otttv.bj.chinamobile.com/PLTV/88888888/224/3221226944/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EgdZMBjOTdDWVEgovFkZoew%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
CCTV10,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226449/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EzhRgoBfyoaW0eC2lnTJYAQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOxqyo6ss4VuHKCaIhF4e3B%2CEND
|
||||
CCTV10,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226937/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Egbbk6OxyTS2utbJWm7Qw1w%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
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
|
||||
CCTV11,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226448/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eqfhzy1ZrFZrYrATDOB991A%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOu522yjh6D1Z_dApuOt9eE%2CEND
|
||||
CCTV12,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226228/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E2knJCFLHz_HqfBZXNGeA1A%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMIlZ5z7o_ym15iMooogSvj%2CEND
|
||||
CCTV12,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226942/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E9nVa4WyKpuJgFy6Zh4TplQ%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
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
|
||||
CCTV13,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226446/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EU-IJJyzlYeEElWsacI4JKw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMT7DWkynQtRPzNDJCOY_C_%2CEND
|
||||
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
|
||||
CCTV14,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226947/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EgtTqPYLE5COifF-qvYi2Ig%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
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
|
||||
CCTV15,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226444/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EFQ8BWVFffGkwLTLNv7CwFQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNM7I2coCeiP5K0pSIMZqcUB%2CEND
|
||||
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
|
||||
CCTV16,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227002/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EX9goLRw26BM_r54des2PAw%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
CCTV17,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226442/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EtihRNVe_x2y1Lgi_XWYeNw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOl8OnsD1vPD0mhNmo98J3J%2CEND
|
||||
CCTV17,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226318/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EEkwQnoHNXRDb-IayWakK1A%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
CGTN,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226443/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ebu8iDniP_aAtg-APxKXKAA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOeLGc8fhipDF_paLm6VUd-%2CEND
|
||||
北京卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226900/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EcYPi33WFyhvd6SjmqUKhJg%7EtP4-l0lmSfjwLWEfK_el1vH_mv-s1zo4AQJwdedaVwG9xkuFTDg8J26cwOrNJzn20BErrHdLhuZ9EzLUCD3PMW-OMx4MGteHV2vLeW6BqoY%2CEND
|
||||
北京卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226436/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ElMQ3ov45VmhzipweN5VstQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPg_yZ8DZHTaSU92MIl_o3b%2CEND
|
||||
深圳卫视,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
|
||||
湖北卫视,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
|
||||
东方卫视,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
|
||||
浙江卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226247/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eo6BokfP3WkB3SIXSrgvRBA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNP3w4GkbU9L7iRQ8H2vgzhF%2CEND
|
||||
吉林卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226533/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EicY_6znuOTlmMeE15TFEig%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNNUZpDp9cPVsM_M_ftJRVM%2CEND
|
||||
江苏卫视,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226242/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EJT6eqtJpcKnNhyUS90EOgw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNN1SxXwCt0S69Lq27ZMJpfR%2CEND
|
||||
山东卫视,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
|
||||
黑龙江卫视,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
|
||||
东南卫视,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
|
||||
江西卫视,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
|
||||
云南卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226543/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EzQy9f4DIExLCs810r0Q6Kw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO_hnHaWpTsMQwR98VJGduo%2CEND
|
||||
辽宁卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226488/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0dsu8dOBmGQQO7fSrvySew%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNN4l9PIxeExdzsncIMJiPZb%2CEND
|
||||
重庆卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226518/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ey-ITbF7am-eD_R60rK2QcQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMWkDi37K3eowQvLymiiLyV%2CEND
|
||||
山西卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226531/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EokFa56wMKUpB1vaIjEe92A%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPoj5DNJHruOghC7vAQxinJ%2CEND
|
||||
海南卫视,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226574/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EZOP0PLu1-XG8_Ae0lTe9HQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNODcjESMU4f6yMuMuOuQbie%2CEND
|
||||
安徽卫视,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226490/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EcN5s_AlHugvAv9Pda6f9fA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOtRTFrO5eKiKNV40gMGHaS%2CEND
|
||||
甘肃卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226545/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EPxObabIs3mLyPmSf2HHtqQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNBE3K16ZfzYGIqbP6z6cGJ%2CEND
|
||||
青海卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226529/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ege4qzvU2ax15UdL3NFQ7AQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNdiWnhjH1amCOGECUhABr9%2CEND
|
||||
山东教育卫视[785*576],http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226526/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EEtk94qghXphElKOQlUC-Yw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOpyxkKQ6N6FjQz-LrJwo0o%2CEND
|
||||
宁夏卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226528/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E9-jWxE6tfiz7aO7MvbCY7Q%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMi3qn27U9rBeXpVrJ8eLy7%2CEND
|
||||
内蒙古卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226530/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EHHMwHAFmEx4xxtZRlWhCrg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMZe-zTYLW-Yz0RcFLVr37n%2CEND
|
||||
陕西卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226532/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E6sNSqmLCqLFl_AJPBXp1qA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO6b4uKEI14SNy0LDiw52LH%2CEND
|
||||
广西卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226534/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EpjsBggKPaCw3f-xlBWZWaQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMJYhPE64lykNkIsypBRZqO%2CEND
|
||||
厦门卫视[785*576],http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226542/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E0HuqirkTe1cAUljwazjNGw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMvSOYesmmWPPy5i3xS4Rsb%2CEND
|
||||
三沙卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226544/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eb2dn60YQRxhB5rAyOnrv0g%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO_hnHaWpTsMQwR98VJGduo%2CEND
|
||||
新疆卫视,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226546/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ETtoZKRqwsL9SQjr1A0iH5g%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMREPnBLSH3b8pR7cnmo9am%2CEND
|
||||
西藏卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226527/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EmHuqUIe0F51C4h6xZanhig%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMi3qn27U9rBeXpVrJ8eLy7%2CEND
|
||||
兵团卫视,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226541/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7ESv-rH0nF41q6pxKZKeRnNA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNN-56c_rnHTXQA4R-D0Dlau%2CEND
|
||||
延边卫视[1024*576],http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227045/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eq0D3NdTUN7FuRzr8eJsbQA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNONS2RAhxb5u6NYaMGGM23S%2CEND
|
||||
康巴卫视[1024*576],http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227027/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EkHMvBpWz4rccMxNvSRekpQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPtFfVFX0AVycM8b4Xmbcl4%2CEND
|
||||
嘉佳卡通,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226539/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EQDRyt1jaDU7f52NwPN526A%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOLcRNi6C1PMX5tGrYl_SiR%2CEND
|
||||
茶频道,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226548/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ec1XXmbKOEhI6pFYCxtVG9A%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOD3hCDGl7mDB_HDsnRfhB2%2CEND
|
||||
快乐垂钓,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226549/1.m3u8?GuardEncType=2&accountinfo=~~V2.0~RHz0NOpqUZZN1Iz6lVLkkg~_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNSiF8rKF1Pn2LepKMJ2cEG%2CEND
|
||||
超级电影,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226233/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EfPRR4mbRWhkCFuUCVm9THg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNM4kysjLk_woYMRnu35KtBV%2CEND
|
||||
超级综艺,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226231/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ejm-KqHfTZezbm9C-325YiA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNnfpAUC20DSCXUyGpDggnK%2CEND
|
||||
超级体育,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226232/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eg-EQHTrpbCOxNSgnFRbr4w%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMNhcQPODGVtsSVKlB7CbAh%2CEND
|
||||
金牌综艺,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221227004/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EkcfszuSJNo6WZ8h7xrIswA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMWi_zfgUXV5YnB6haFF-C2%2CEND
|
||||
北京IPTV 4K,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226550/1.m3u8?GuardEncType=2&accountinfo=~~V2.0~e2qS8h6u-xp3gd50vNr1sw~_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPPFD3HVWEytEVyliOxehfe%2CEND
|
||||
北京国际,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226510/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EIfgL7tTUNqHAIdgvKuwj8A%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPr9j5nfyiWS_jEXD6m401A%2CEND
|
||||
北京新闻,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226437/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EncK5uEAdYwWMsf8WJWI1mQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO_LSIQh_h2P54Cz-MqgJqC%2CEND
|
||||
北京文艺,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226440/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EWrJcgMpdGPvZavpf4dmmrQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNhmwDsUZnvQgU5E5wiGA2g%2CEND
|
||||
北京体育休闲,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226438/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EeVAybrHg955d_IRT9e_uHQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMLCKqkSfuGOusJwBMwlCbz%2CEND
|
||||
北京影视,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226433/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EygquRbh9L0wUPRY53fsZWw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO62IynDcU1yYDL1b4Xte8T%2CEND
|
||||
北京生活,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226514/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Es-PVNcPJsjr_oBdcXGT40g%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNMWvZ0r6eMXcXJOGrCpJiq1%2CEND
|
||||
北京财经,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226516/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Eh9_SEkmWeMdS1TMnIILZgg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPIiicEW7OIvk1s-X-PXHqO%2CEND
|
||||
北京纪实科教,http://[2409:8087:1:20:20::29]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226434/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ejj3PtVjzl6ZzFdM-Vi1dmQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNPJa61jREJv4ZfZigyrxX0U%2CEND
|
||||
北京IPTV 淘电影,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226552/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EXOsrWMA-UCdUl1hQSR9EKw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNg3bzRax0E9tLmO9xgXVx8%2CEND
|
||||
北京IPTV 淘剧场,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226553/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EQaJ92NID2SpQlY6_VJVogg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOuQYJeiYEeFWTkFfE86Vq-%2CEND
|
||||
北京IPTV 淘娱乐,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226551/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7Ex0efg9fpenP8E8lWJUb5Lg%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNg3bzRax0E9tLmO9xgXVx8%2CEND
|
||||
北京IPTV 淘BABY,http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226554/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EN0sbBMpQv4sLsW5foy3YfA%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNg3bzRax0E9tLmO9xgXVx8%2CEND
|
||||
北京IPTV 萌宠TV,http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226555/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E_PpxWPtvSZRFtu_Ged_-vQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNO0istnBuoA2R9ODSCqyIyS%2CEND
|
||||
中国教育1台,http://[2409:8087:1:20:20::2a]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226494/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EB8MrpAzJ_Bw12HHVBcZO6g%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNONWWecbSKZXNjh_5hExtTC%2CEND
|
||||
中国教育2台[785*576],http://[2409:8087:1:20:20::2c]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226537/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7E7AxXs4eTU2oiWrhopr9sHw%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNNxsM0Bor098BJglrhfEQTl%2CEND
|
||||
中国教育4台[785*576],http://[2409:8087:1:20:20::26]/otttv.bj.chinamobile.com/PLTV/88888888/224/3221226557/1.m3u8?GuardEncType=2&accountinfo=%7E%7EV2.0%7EBzZToIaOOoaa_jAUfhUQHQ%7E_eNUbgU9sJGUcVVduOMKhafLvQUgE_zlz_7pvDimJNOD9BEmVSNbqSQpqXZxnxbk%2CEND
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,42 +0,0 @@
|
|||
鳳凰資訊,http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=http://www.youtube.com/watch?v=if6yQq_JJyY
|
||||
凤凰卫视,http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=http://www.youtube.com/watch?v=dmDg7NfUoSw
|
||||
寰宇新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=B7Zp3d6xXWw
|
||||
鏡新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=5n0y6b0Q25o
|
||||
東森Live, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=R2iMq5LKXco
|
||||
中天新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=oIgbl7t0S_w
|
||||
中天新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/live/oIgbl7t0S_w?feature=share
|
||||
中天新聞2, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=WPfPjbOLNfE
|
||||
三立live, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=FoBfXvlOR6I
|
||||
三立inews, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=CKjSm5ZeehE
|
||||
三立NEWS+, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=oZdzzvxTfUY
|
||||
|
||||
TVBS新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=2mCSYvcfhtc
|
||||
TVBS NEWS LIVE, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=m_dhMSvUCIc
|
||||
民視新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=ylYJSBUgaMA
|
||||
華視新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=wM0g8EoUZ_E
|
||||
中視新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=TCnaIE_SAtM
|
||||
台視新聞, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=xL0ch83RAK8
|
||||
|
||||
EBC東森財經, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=WHEPzbFA3hw
|
||||
三立財經, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=CKjSm5ZeehE
|
||||
NHK WORLD, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=f0lYkdA-Gtw
|
||||
NHK WORLD,https://nhkwlive-xjp.akamaized.net/hls/live/2003458/nhkwlive-xjp-en/index_1M.m3u8?zshijd
|
||||
|
||||
Sky News, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=9Auq9mYxFEE
|
||||
FRANCE 24, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=h3MuIUNCCzI
|
||||
ABC News, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=w_Ma8oQLmSM
|
||||
Euronews English, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=pykpO5kQJ98
|
||||
DW, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=pqabxBKzZ6M
|
||||
ANN News, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=coYw-eVU0Ks
|
||||
KBS KOREA, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=HnfpTMtfFk8
|
||||
|
||||
NBC NEW, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=0IUbD_4ytuo
|
||||
鳳凰資訊, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=sUISafvOieY
|
||||
凤凰卫视, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=dmDg7NfUoSw
|
||||
CCTV中文国际, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=9sE12tg3CmA
|
||||
东森财经股市, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=LbS-xQ67fos
|
||||
公視直播, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=4Uc00FPs27M
|
||||
KOMPASTV, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=4rmf-lk3ito
|
||||
东京新宿, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=DjdUEyjx8GM
|
||||
台灣地震監視, http://127.0.0.1:9978/proxy?do=yt&proxy=proxy&url=https://www.youtube.com/watch?v=Owke6Quk7T0
|
||||
|
BIN
天天开心/spider.jar
BIN
天天开心/spider.jar
Binary file not shown.
|
@ -1,673 +0,0 @@
|
|||
self 我的115网盘 1
|
||||
sw6pw793wfp?password=w816 小雅|4KRemux
|
||||
sw68fuu3nnw?password=pb57 小雅|电影1080P
|
||||
swzew4m3nc6?password=i0d7 小雅|电影|原盘
|
||||
swhid5x3wfa?password=xdf9 小雅|电影|韩国原盘
|
||||
swh3rih3wfa?password=g512 小雅|电影|台湾原盘
|
||||
swhbfy33wfa?password=a372 小雅|电影|香港原盘
|
||||
swhbs4r3zh9?password=ec38 小雅|电影|UHD原盘
|
||||
sw68wz93ncb?password=6666 小雅|欧美电影
|
||||
sw6plt23ncb?password=6666 小雅|美剧
|
||||
swznm373w1p?password=pe35 小雅|欧美剧
|
||||
swzg8dd3wye?password=m5b3 小雅|日韩电影
|
||||
swzjxcp3wfa?password=of89 小雅|日韩剧
|
||||
sw68e813nnw?password=n9e0 小雅|电视剧
|
||||
swzyiww3wn9?password=w1e0 小雅|合集1
|
||||
swzyiwq3wn9?password=x716 小雅|合集2
|
||||
swzyiwb3wn9?password=qfe8 小雅|合集3
|
||||
swz6gml3fwo?password=8888 小雅|动画电影
|
||||
swzqh673h4y?password=5296 小雅|千部抖音短剧合集
|
||||
swzx76f3wfa?password=n724 小雅|抖音短剧合集1.77T
|
||||
swzmqcr3fs6?password=xd67 小雅|音乐22万首
|
||||
sw658uq36x2?password=md98 小雅|音乐22万首|DDS+HiRes
|
||||
sw658uq36x2?password=md98 小雅|音乐22万首|母带系列
|
||||
sw658uq36x2?password=md98 小雅|音乐22万首|索尼精选
|
||||
sw658uq36x2?password=md98 小雅|音乐22万首|各类风格
|
||||
sw658ub36x2?password=q7e0 小雅|音乐22万首|华语27000首无损
|
||||
swz93883nhj?password=sa53 豆瓣|TOP250电影_1.67TB 1
|
||||
swz8h1h33xj?password=0000 豆瓣|TOP250电影_12.65Tb 1
|
||||
swz18wn3zh9?password=yf61 演唱会|演唱会原盘_820T 1
|
||||
sw6udf93wcx?password=na63 演唱会|演唱会_蓝光原盘22TB
|
||||
swzg9pt3wye?password=c899 演唱会|演唱会_重编码6TB
|
||||
swz6sow3fwo?password=8888 演唱会|1080P港台演唱会【2.55T】
|
||||
swz6si63fwo?password=8888 演唱会|演唱会【13T】
|
||||
swz9yva3hi8?password=m332 REMUX|2267部2160p_remux_FGT_101.32TB 1
|
||||
sw6e6ij3flt?password=t055 REMUX|4K_REMUX_774部_41.16T
|
||||
swz6gd93fwo?password=8888 REMUX|4K_REMUX电影2257部 1
|
||||
swzn5913wzq?password=nbc5 REMUX|969部部欧美4K原盘电影_45.03T
|
||||
swzzmu33hi8?password=i5e0 REMUX|无损REMUX电影_101.32TB 1
|
||||
swh9ej13zmi?password=50io 原盘|BD-ISO_3.29PB 1
|
||||
swzc37p3zh9?password=f534 原盘|1080P蓝光电影_220T 1
|
||||
sw68b0u3hhq?password=gd41 原盘|蓝光原盘_666.3T 1
|
||||
swz6gp53fwo?password=8888 原盘|蓝光原盘_646T_合集 1
|
||||
sw620dv3wzn?password=e536 原盘|sGNB特效字幕原盘_313部_21.18T
|
||||
sw6u87633jp?password=u527 原盘|sGNB特效字幕原盘_315部_21.52T 1
|
||||
swhbs4r3zh9?password=ec38 原盘|UHD原盘iso_145.3TB 1
|
||||
sw6e6i13flt?password=f794 原盘|4K原盘_16.94T
|
||||
sw3uax136w4?password=eea6 原盘|CMCT迷你蓝光原盘_2.81T
|
||||
sw69nao3h3b?password=a548 原盘|港片蓝光原盘669部_16.3T
|
||||
swnmisp3wxf?password=i1c6 原盘|剧集原盘_23.3T
|
||||
swznmd03nc7?password=p897 原盘|动漫原盘_40.49T
|
||||
sw313rp3zx1?password=w146 原盘|SGNB特效字幕蓝光原盘563部_26.52TB
|
||||
swzg3ja33xj?password=f3h5 原盘|FRDS站396部_8.87TB
|
||||
sw6ug2k3nom?password=t7d0 原盘|香港电影_香港蓝光高清粤语电影合集1242部_(16T)
|
||||
sw62cfo3z23?password=ze90 原盘|3D电影_68.26T
|
||||
swzm4z63697?password=6688 大包|FRDS电视剧大包 1
|
||||
swzew4m3nc6?password=i0d7 大包|2.24pb大包 1
|
||||
swzawra3zx1?password=scf1 大包|1.6pb大合集 1
|
||||
swz3ys93wzv?password=rc12 电影|电影频道3300部_16.33T
|
||||
swnrb3b3nat?password=pd76 电影|亚洲1080P_9.33T
|
||||
swz8hp033xj?password=0000 电影|多部曲电影系列_21TB
|
||||
swzj12t3znw?password=tff8 电影|未分类电影_4.65TB
|
||||
sw6uh9x3z2b?password=6666 电影|未分类电影_1620TB
|
||||
swzgep23wye?password=c106 电影|大陆电影_6TB
|
||||
swzg8dd3wye?password=m5b3 电影|日韩电影_6TB
|
||||
sw60fyp33eb?password=lcd6 排行|豆瓣2022影视排行榜_1.51T
|
||||
sw6tco83hbe?password=v517 排行|2021豆瓣年度影视榜单_832.64G
|
||||
sw6tcot3hbe?password=e9d7 排行|2022必看最热门影视剧十部_620.84G
|
||||
swzplko3wye?password=k596 欧美电影|合集_22TB
|
||||
swzj2cx3h4y?password=g180 欧美电影|漫威宇宙系列_1.87TB
|
||||
swz936a3znw?password=a0d3 欧美电影|指环王系列_300GB
|
||||
swz93n63z57?password=dda3 欧美电影|变形金刚_500GB
|
||||
sw629ie3nli?password=d5c7 NetFlix_6.17T
|
||||
sw6tco93hbe?password=ka54 剧集|TVB电视剧合集650部_74.3T
|
||||
swznm373w1p?password=pe35 剧集|欧美剧_60.9T 1
|
||||
swnsdrk3h2m?password=p783 剧集|海贼王_553.61G
|
||||
swntmxc3wp6?password=a3f5 剧集|皇家师姐系列
|
||||
swnsdrm3h2m?password=fea2 剧集|火影忍者全集_455.42G
|
||||
swzn9y13zwh?password=crow 剧集|老友记全十季_594.26G
|
||||
sw6q9w833o2?password=a956 剧集|柯南_766.64G
|
||||
sw6p2t63h2m?password=oea1 剧集|迷失1-6季_203.3G
|
||||
swz826g3nc0?password=ff47 剧集|甜蜜家园_Season_3
|
||||
swztlnh33xj?password=f3h5 剧集|行尸走肉全季杜比
|
||||
swz6fb3369v?password=9999 香港|GOTV_10.46TB
|
||||
swzsehq3ncb?password=5566 香港|合集8.23TB
|
||||
swz9lr83w8f?password=oc53 香港|杜琪峰(银河映像系列)
|
||||
swzdtjc3nb4?password=ef97 香港|成龙
|
||||
sw30v4b3zu2?password=a429 香港|林正英电影合集46部_209.13G
|
||||
swz8cd233xj?password=0000 香港|满清十大酷刑第一部
|
||||
sw6gqo43flt?password=qc62 香港|周星驰系列_854.96G
|
||||
swzdtj93nb4?password=d6c3 香港|周星驰
|
||||
swzv6533697?password=2618 日韩剧|合集18.12TB
|
||||
swzah0d3wvk?password=c142 国产剧|合集_51.41TB
|
||||
swz8t9x3h5k?password=n3f4 国产剧|【繁花_翡翠台源_100GB】
|
||||
swz93y53zp0?password=ef25 国产剧|【唐朝诡事录_全2季】
|
||||
sw6u7zc3fwo?password=8888 国产剧|【陈情令】_(2019)_50集全_4K中字【86G】
|
||||
sw6u7ep3fwo?password=8888 国产剧|【隐秘的角落】(2020)_12集全_4K中字【69G】
|
||||
sw6u78w3fwo?password=8888 国产剧|【庆余年】(2019)_46集全_4K中字【62G】
|
||||
sw6u79l3fwo?password=8888 国产剧|【沉默的真相】(2020)_12集全_4K中字【17G】
|
||||
sw6u79p3fwo?password=8888 国产剧|【斗罗大陆】(2021)_40集全_1080P中字【46G】
|
||||
sw6u72q3fwo?password=8888 国产剧|【开端】(2022)_15集全_4K中字【58G】
|
||||
sw6u72m3fwo?password=8888 国产剧|【狂飙】(2023)_39集全_4K中字【77G】
|
||||
sw6u7u33fwo?password=8888 国产剧|【漫长的季节】(2023)_12集全_4K中字【36G】
|
||||
sw6ukxa3fwo?password=8888 国产剧|【梦华录】(2022)_40集全_4K中字【148G】
|
||||
sw6uil53fwo?password=8888 国产剧|【琅琊榜】(2015)_54集全_4K中字【80G】
|
||||
sw6u42s3fwo?password=8888 国产剧|【苍兰诀】(2022)_36集全_4K中字【42G】
|
||||
sw6u42b3fwo?password=8888 国产剧|【后宫·甄嬛传】(2011)_76集全_4K中字【490G】
|
||||
sw6ugfa3fwo?password=8888 国产剧|【山河令】36集全_4K中字【87G】
|
||||
sw6ugfj3fwo?password=8888 国产剧|【沉香如屑·沉香重华】_(2022)_59集全_4K中字【125G】
|
||||
sw6ugl73fwo?password=8888 国产剧|【星汉灿烂·月升沧海】56集全_4K画质【71G】
|
||||
sw6ugoj3fwo?password=8888 国产剧|【武林外传】(2006)_81集全_4K中字【104GB】
|
||||
sw6ugkc3fwo?password=8888 国产剧|【白夜追凶】(2017)_32集全_4K中字【257G】
|
||||
sw6utz93fwo?password=8888 国产剧|【知否知否应是绿肥红瘦】(2018)_73集全_4K中字【119G】
|
||||
sw6utfi3fwo?password=8888 国产剧|【莲花楼】(2023)_40集全_4K中字【52G】
|
||||
sw6utft3fwo?password=8888 国产剧|【香蜜沉沉烬如霜】(2018)_60集全_4K中字【119G】
|
||||
sw6utts3fwo?password=8888 国产剧|【觉醒年代】(2021)_43集全_4K中字【86G】
|
||||
sw6ut8p3fwo?password=8888 国产剧|【长安十二时辰】(2019)_48集全_4K中字【46G】
|
||||
sw6ut8j3fwo?password=8888 国产剧|【你是我的荣耀】(2021)_32集全_4K中字【41G】
|
||||
sw6ujon3fwo?password=8888 国产剧|【亲爱的,热爱的】(2019)_41集全_4K中字【59G】
|
||||
sw6u0rm3fwo?password=8888 国产剧|【人民的名义】(2017)_55集全_4K中字【118G】
|
||||
sw6u0px3fwo?password=8888 国产剧|【三体】(2023)_4K中字【21G】
|
||||
sw6u0tb3fwo?password=8888 国产剧|【我的人间烟火】(2023)_40集全_1080P中字【45G】
|
||||
sw6u01o3fwo?password=8888 国产剧|【山海情】(2021)_4K中字【33G】
|
||||
sw6u01x3fwo?password=8888 国产剧|【你微笑时很美】(2021)_31集全_4K中字【54G】
|
||||
sw6uupp3fwo?password=8888 国产剧|【延禧攻略】(2018)_70集全_4K中字【123G】
|
||||
sw6uujx3fwo?password=8888 国产剧|【有翡】_(2020)_51集全_1080P中字【72G】
|
||||
sw6uu063fwo?password=8888 国产剧|【最好的我们】(2016)_24集全_4K中字【24G】
|
||||
swz36yf3fwo?password=8888 国产剧|【风吹半夏】(2022)_36集全_4K中字【77G】
|
||||
swz36ye3fwo?password=8888 国产剧|【余生,请多指教】(2022)_29集全_1080P种子【15G】
|
||||
swz36yt3fwo?password=8888 国产剧|【传闻中的陈芊芊】(2020)_24集全_4K中字【29G】
|
||||
swz36ka3fwo?password=8888 国产剧|【扫黑风暴】(2021)_28集全_1080P中字【31G】
|
||||
swz36dx3fwo?password=8888 国产剧|【狼殿下】(2020)_49集全_4K中字【88G】
|
||||
swz36m63fwo?password=8888 国产剧|【仙剑奇侠传三】(2009)_37集全_4K中字【137G】
|
||||
swz36me3fwo?password=8888 国产剧|【长相思】(2023)_39集全_4K中字【38G】
|
||||
swz36m03fwo?password=8888 国产剧|【锦衣之下】(2019)_55集全_4K中字【80G】
|
||||
swz365l3fwo?password=8888 国产剧|【琉璃】(2020)_59集全_4K中字【194G】
|
||||
swz36543fwo?password=8888 国产剧|【长月烬明】(2023)_40集全_4K中字【95G】
|
||||
swz365x3fwo?password=8888 国产剧|【都挺好】(2019)_46集全_4K中字【84G】
|
||||
swz36v63fwo?password=8888 国产剧|【龙岭迷窟】(2020)_18集全_4K中字【21G】
|
||||
swz3hop3fwo?password=8888 国产剧|【父母爱情】(2014)_44集全_4K中字【61G】
|
||||
swz3hks3fwo?password=8888 国产剧|【御赐小仵作】(2021)_20集36集双版本_1080P【101G】
|
||||
swz3hk73fwo?password=8888 国产剧|【仙剑奇侠传】34集全_1080P中字【24G】
|
||||
swz3hkj3fwo?password=8888 国产剧|【三生三世枕上书】(2020)_56集全_4K中字【82G】
|
||||
swz3h5j3fwo?password=8888 国产剧|【三生三世十里桃花】(2017)_58集全_4K中字【146G】
|
||||
swz3sf73fwo?password=8888 国产剧|【伪装者】(2015)_41集全_4K中字【43G】
|
||||
swz3sf43fwo?password=8888 国产剧|【4K修复】【西游记+续集】【218G】
|
||||
swz3sfv3fwo?password=8888 国产剧|【猎罪图鉴】(2022)全20集_4K中字
|
||||
swz3slh3fwo?password=8888 国产剧|【长歌行】(2021)_49集全_1080P中字【66G】
|
||||
swz3s4x3fwo?password=8888 国产剧|【爱情公寓】1-5季_全集+番外篇+大电影_4K中字【203G】
|
||||
swz3s403fwo?password=8888 国产剧|【小欢喜】(2019)_49集全_4K中字【75G】
|
||||
swz3skd3fwo?password=8888 国产剧|【重启之极海听雷】第一季_(2020)_4K中字【172G】
|
||||
swz3skm3fwo?password=8888 国产剧|【重启之极海听雷】第二季_(2020)_4K中字【42G】
|
||||
swz3sdn3fwo?password=8888 国产剧|【摩天大楼】(2020)_16集全_4K中字【62G】
|
||||
swz3sde3fwo?password=8888 国产剧|【无证之罪】(2017)_12集全_4K中字【17G】
|
||||
swz3smy3fwo?password=8888 国产剧|【如懿传】(2018)_87集全_1080P中字【194G】
|
||||
swz3sai3fwo?password=8888 国产剧|【步步惊心】(2011)_35集全_4K中字【101G】
|
||||
swz3sag3fwo?password=8888 国产剧|【我是余欢水】(2020)_12集全_4K中字【77G】
|
||||
swz3spn3fwo?password=8888 国产剧|【去有风的地方】(2023)_40集全_4K中字【101G】
|
||||
swz3lbp3fwo?password=8888 国产剧|【梦中的那片海】(2023)_38集全_4K中字【24G】
|
||||
swz3lob3fwo?password=8888 国产剧|【欢乐颂】1-4季_1080P中字【156G】
|
||||
swz3lok3fwo?password=8888 国产剧|【棋魂】(2020)_36集全_4K中字【210G】
|
||||
swz3qos3fwo?password=8888 国产剧|【叛逆者】(2021)_43集全_4K中字【49G】
|
||||
swz3qas3fwo?password=8888 国产剧|【以家人之名】(2020)_40集全_1080P中字【47G】
|
||||
swz3bge3fwo?password=8888 国产剧|【唐人街探案】(2020)_12集全_4K中字【18G】
|
||||
swz6syq3fwo?password=8888 国产剧|【警察荣誉】38集全_4K中字【57G】
|
||||
swz6sk93fwo?password=8888 国产剧|【三十而已】(2020)_43集全_1080P中字【41G】
|
||||
swz6sdq3fwo?password=8888 国产剧|【玉骨遥】40集全_4K中字【60G】
|
||||
swz6sd73fwo?password=8888 国产剧|【爱很美味】(2021)_20集全_4K中字【8.6G】
|
||||
swz6smb3fwo?password=8888 国产剧|【司藤】30集全_4K中字【74G】
|
||||
swz6smv3fwo?password=8888 国产剧|【赘婿】36集全_4K中字【54G】
|
||||
swz6s5n3fwo?password=8888 国产剧|【终极笔记】(2020)_36集全_4K中字【178G】
|
||||
swz6s5l3fwo?password=8888 国产剧|【人世间】(2022)_58集全_4K中字【63G】
|
||||
swz6s5e3fwo?password=8888 国产剧|【周生如故】(2021)_24集全_1080P中字【15G】
|
||||
swz6s2r3fwo?password=8888 国产剧|【战长沙】(2014)_32集全_1080P中字【111G】
|
||||
swz6lz23fwo?password=8888 国产剧|【你好,旧时光】(2017)_30集全_4K中字【80G】
|
||||
swz6lhb3fwo?password=8888 国产剧|【风起洛阳】(2021)_39集全_4K中字【43G】
|
||||
swz6lfp3fwo?password=8888 国产剧|【潜伏】(2008)_30集全_4K中字【41G】
|
||||
swz6ls73fwo?password=8888 国产剧|【东宫】(2019)_52集全_4K中字【119G】
|
||||
swz6lsc3fwo?password=8888 国产剧|【幸福到万家】(2022)_40集全_4K中字【64G】
|
||||
swz6lql3fwo?password=8888 国产剧|【红楼梦】(1987)_36集全_4K中字【42G】
|
||||
swz6lqe3fwo?password=8888 国产剧|【还珠格格】1-3季全_1080P中字【141G】
|
||||
swz6l753fwo?password=8888 国产剧|【鬼吹灯之精绝古城】(2016)_21集全_1080P中字【16G】
|
||||
swz6liq3fwo?password=8888 国产剧|【亮剑】(2005)_30集全_4K中字【35G】
|
||||
swz6lic3fwo?password=8888 国产剧|【大宋少年志】1-2季全_4K中字【139G】
|
||||
swz6l453fwo?password=8888 国产剧|【唐朝诡事录】(2022)_36集全_4K中字【51G】
|
||||
swz6l483fwo?password=8888 国产剧|【卿卿日常】(2022)_40集全_4K中字【79G】
|
||||
swz6lkf3fwo?password=8888 国产剧|【微微一笑很倾城】(2016)_30集全_1080P中字【22G】
|
||||
swz6lmu3fwo?password=8888 国产剧|【爱情公寓】1-5季+番外1-3季_4K中字【200G】
|
||||
swz6l5a3fwo?password=8888 国产剧|【宸汐缘】(2019)_60集全_4K中字【96G】
|
||||
swz6lve3fwo?password=8888 国产剧|【大明王朝1566】(2007)_46集全_1080P中字【30G】
|
||||
swz6lew3fwo?password=8888 国产剧|【河神】1-2季全_4K中字【51G】
|
||||
swz6lar3fwo?password=8888 国产剧|【大江大河】(2018)_47集全_4K中字【52G】
|
||||
swz6lpo3fwo?password=8888 国产剧|【女心理师】(2021)_40集全_4K中字【68G】
|
||||
swz6lus3fwo?password=8888 国产剧|【大明王朝1566】(2007)_46集全_4K中字【250G】
|
||||
swz6b2y3fwo?password=8888 国产剧|【我在他乡挺好的】(2021)_12集全_1080P中字【30G】
|
||||
swz6o6q3fwo?password=8888 国产剧|【余罪】1-2季全_1080P中字【19.5G】
|
||||
swz6ooq3fwo?password=8888 国产剧|【士兵突击】(2006)_30集全_4K中字【45G】
|
||||
swz6oyp3fwo?password=8888 国产剧|【天盛长歌】(2018)_70集全_4K中字【132G】
|
||||
swz6k9q3fwo?password=8888 国产剧|【与君初相识·恰似故人归】(2022)_42集全_4K中字【101G】
|
||||
swz6doo3fwo?password=8888 国产剧|【谁是凶手】(2021)_16集全_4K中字【18G】
|
||||
swz3qvq3fwo?password=8888 美剧|_冰与火之歌:权力的游戏【1-8季全1.31TB】
|
||||
sw6uoem3fwo?password=8888 美剧|【冰与火之歌:权力的游戏】1-8季全_4K中字杜比视界【1.85T】
|
||||
sw6u7iy3fwo?password=8888 美剧|【神探夏洛克】1-4季全_1080P中字【78G】
|
||||
sw6uotq3fwo?password=8888 美剧|【绝命毒师】1-5季全_4K中字【209G】
|
||||
sw6u7n93fwo?password=8888 美剧|【怪奇物语】1-4季_4K中字【255G】
|
||||
sw6u7y83fwo?password=8888 美剧|【老友记】1-10季全_1080P中字【209G】
|
||||
sw6u75u3fwo?password=8888 美剧|【生活大爆炸】1-12季全_1080P中字【258G】
|
||||
sw6u7es3fwo?password=8888 美剧|【行尸走肉】1-11季全_1080P中字【585G】
|
||||
swztlnh33xj?password=f3h5 美剧|【行尸走肉】1-11季全_REMUX【1.27TB】
|
||||
sw6u7tp3fwo?password=8888 美剧|【切尔诺贝利】5集全_1080P中字【13G】
|
||||
sw6u78c3fwo?password=8888 美剧|【黑镜】1-6季全_4K中字【144G】
|
||||
sw6u79h3fwo?password=8888 美剧|【后翼弃兵】(2020)_7集全_4K中字【57G】
|
||||
sw6uify3fwo?password=8888 美剧|【越狱】1-5季全+特别篇_1080P中字【182G】
|
||||
sw6u4vy3fwo?password=8888 美剧|【真探】1-3季全_1080P中字【29G】
|
||||
sw6u4j73fwo?password=8888 美剧|【嗜血法医】1-9季全_1080P中字【246G】
|
||||
sw6u4963fwo?password=8888 美剧|【黑袍纠察队】1-3季_4K中字【182G】
|
||||
sw6u41k3fwo?password=8888 美剧|【风骚律师】1-6季全_4K中字【275G】
|
||||
sw6u4c93fwo?password=8888 美剧|【纸牌屋】1-6季全_4K中字【284G】
|
||||
sw6u42n3fwo?password=8888 美剧|【浴血黑帮】1-6季全_4K中字【162G】
|
||||
sw6u42v3fwo?password=8888 美剧|【曼达洛人】1-3集全_4K中字【136G】
|
||||
swzjpfq3wrb?password=s8f0 美剧|【迷失】1-6季全_1080P中字【108G】
|
||||
sw6uakw3fwo?password=8888 美剧|【猎魔人】1-3季_4K中字【139G】
|
||||
sw6uakm3fwo?password=8888 美剧|【性爱自修室】1-4季_4K中字【193G】
|
||||
sw6uadf3fwo?password=8888 美剧|【最后生还者】第一季_4K中字【67G】
|
||||
sw6uadk3fwo?password=8888 美剧|_【致命女人】1-2季_1080P中字【29G】
|
||||
sw6uaji3fwo?password=8888 美剧|【西部世界】1-4季_4K中字【445G】
|
||||
sw6ua2t3fwo?password=8888 美剧|【办公室】1-9季全_1080P中字【200G】
|
||||
sw6ug3k3fwo?password=8888 美剧|【老爸老妈的浪漫史】1-9季全_1080P中字【273G】
|
||||
swzj8g33wrb?password=z6d8 美剧|【兄弟连】10集全_1080P中字【177.6G】
|
||||
swzj8au3wrb?password=i050 美剧|【太平洋战争】10集全_1080P中字【122G】
|
||||
sw6ugsb3fwo?password=8888 美剧|【维京传奇】1-6季全_1080P中字【137G】
|
||||
sw6ugln3fwo?password=8888 美剧|【旺达幻视】9集全_4K中字【46G】
|
||||
sw6ug5r3fwo?password=8888 美剧|【摩登家庭】1-11季_1080P中字【298G】
|
||||
sw6up8u3fwo?password=8888 美剧|【纸钞屋】1-5季全_1080P中字【46G】
|
||||
sw6upun3fwo?password=8888 美剧|【毒枭】1-3季全_4K中字【180G】
|
||||
sw6utzo3fwo?password=8888 美剧|【去他的世界】1-2季_4K中字【35G】
|
||||
sw6uty43fwo?password=8888 美剧|【暗黑】1-3季全_4K中字【69G】
|
||||
sw6uttz3fwo?password=8888 美剧|【夜魔侠】1-3季全_4K中字【204G】
|
||||
sw6ujls3fwo?password=8888 美剧|【洛基】第一季_4K中字【22G】
|
||||
sw6ujoa3fwo?password=8888 美剧|【星期三】第一季_4K中字【33G】
|
||||
sw6uxg53fwo?password=8888 美剧|【豪斯医生】1-8季全_1080P中字【222G】
|
||||
sw6u0df3fwo?password=8888 美剧|【迷离时空(原版)】1-5季全_1080P中字【308G】
|
||||
sw6u0m73fwo?password=8888 美剧|【邪恶力量】1-15季全_1080P中字【1006G】
|
||||
sw6u0mu3fwo?password=8888 美剧|【冰血暴】1-4季全_1080P中字【65G】
|
||||
sw6u0v73fwo?password=8888 美剧|【龙之家族】第一季_4K中字【25G】
|
||||
sw6u0gx3fwo?password=8888 美剧|【美国恐怖故事】1-11季_1080P中字【306G】
|
||||
sw6u0tv3fwo?password=8888 美剧|【黑客军团】1-4季全_1080P中字【32G】
|
||||
sw6u0xb3fwo?password=8888 美剧|【国土安全】1-8季全_1080P中字【132G】
|
||||
sw6uup63fwo?password=8888 美剧|【唐顿庄园】1-6季全_1080P中字【82G】
|
||||
sw6uup03fwo?password=8888 美剧|【指环王:力量之戒】第一季[全8集]4K中字【74G】
|
||||
sw6uu1g3fwo?password=8888 美剧|【心灵猎人】1-2季_4K中字【119G】
|
||||
sw6uuc23fwo?password=8888 美剧|【伦敦生活】1-2季全_4K中字【28G】
|
||||
swz36ki3fwo?password=8888 美剧|【破产姐妹】1-6季全_1080P中字【87G】
|
||||
swz36mo3fwo?password=8888 美剧|【月光骑士】6集全_4K中字【32G】
|
||||
swz36vd3fwo?password=8888 美剧|【路西法】1-6季全_1080P中字【112G】
|
||||
swz36e73fwo?password=8888 美剧|【使女的故事】1-5季全_1080P中字【62G】
|
||||
swz36ah3fwo?password=8888 美剧|【黑钱胜地】1-4季_4K中字【200G】
|
||||
swz3h4i3fwo?password=8888 美剧|【十三个原因】1-4季全_4K中字【523G】
|
||||
swz3hyk3fwo?password=8888 美剧|【大小谎言】1-2季全_1080P中字【21G】
|
||||
swz3hmf3fwo?password=8888 美剧|【汉尼拔】1-3季全_1080P中字【59G】
|
||||
swz3h543fwo?password=8888 美剧|【宋飞正传】1-9季全_4K中字【488G】
|
||||
swz3hed3fwo?password=8888 美剧|【亢奋】1-2季_4K中字【205G】
|
||||
swz3hak3fwo?password=8888 美剧|【无耻之徒】1-11季全_1080P中字【201G】
|
||||
swz3hg43fwo?password=8888 美剧|【东城梦魇】(2021)_7集全_1080P中字【11G】
|
||||
swz3swd3fwo?password=8888 美剧|【鬼庄园】(2020)_9集全_4K中字【23G】
|
||||
swz3sw73fwo?password=8888 美剧|【鬼入侵】(2018)_10集全_4K中字【20G】
|
||||
swz3sfn3fwo?password=8888 美剧|【足球教练】1-3季_1080P中字【34G】
|
||||
swz3sbi3fwo?password=8888 美剧|【你】1-4季_1080P中字【118G】
|
||||
swz3s4m3fwo?password=8888 美剧|【我们这一天】1-6季_1080P中字【101G】
|
||||
swz3sv73fwo?password=8888 美剧|【混乱之子】1-7季_1080P中字【172G】
|
||||
swz3svt3fwo?password=8888 美剧|【猎鹰与冬兵】(2021)_6集全_4K中字【21G】
|
||||
swz3se13fwo?password=8888 美剧|【废柴联盟】1-6季_4K中字【260G】
|
||||
swz3lbz3fwo?password=8888 美剧|【绯闻女孩】1-6季_1080P中字【109G】
|
||||
swz3lo83fwo?password=8888 美剧|【疑犯追踪】1-5季_1080P中字【145G】
|
||||
swz3lia3fwo?password=8888 美剧|【超能英雄】1-4季_1080P中字【115G】
|
||||
swz3qb83fwo?password=8888 美剧|【犯罪心理】1-16季全_1080P中字【395G】
|
||||
swz3q5s3fwo?password=8888 美剧|【广告狂人】1-7季全_1080P中字【373G】
|
||||
swz3qek3fwo?password=8888 美剧|【伞学院】1-3季_4K中字【201G】
|
||||
swz3qe03fwo?password=8888 美剧|【人生切割术】第一季_(2022)_4K中字【75G】
|
||||
swz3qgz3fwo?password=8888 美剧|【危机边缘】1-5季_1080P中字【90G】
|
||||
swz3qgq3fwo?password=8888 美剧|【萤火虫】(2002)_14集全_1080P中字【37G】
|
||||
swz3ba63fwo?password=8888 美剧|【斯巴达克斯】1-4季_1080P中字【491G】
|
||||
swz3bxo3fwo?password=8888 美剧|【哥谭】1-5季_1080P蓝光原盘中字【720G】
|
||||
swz6zsv3fwo?password=8888 美剧|【黑道家族】1-6季全_1080P中字【169G】
|
||||
swz6zlm3fwo?password=8888 美剧|【闪电侠】1-9季全_1080P中字【180G】
|
||||
swz6wjj3fwo?password=8888 美剧|【实习医生格蕾】1-19季全_1080P中字【1.03T】
|
||||
swz6fff3fwo?password=8888 美剧|【女子监狱】1-7季全_1080P中字【188G】
|
||||
swz6ff83fwo?password=8888 美剧|【杀死伊芙】1-4季_1080P中字【23G】
|
||||
swz6fs73fwo?password=8888 美剧|【神盾局特工】1-7季_1080P中字【124G】
|
||||
swz6fld3fwo?password=8888 美剧|【火线】1-5季全_1080P中字【61G】
|
||||
swz6s4a3fwo?password=8888 美剧|【继承之战】1-4季_4K外挂中字【368G】
|
||||
swz6sy63fwo?password=8888 美剧|【公园与游憩】1-7季全_1080P中字【255G】
|
||||
swz6skk3fwo?password=8888 美剧|【真爱如血】1-7季全_1080P中字【142G】
|
||||
swz6sd63fwo?password=8888 美剧|【超感猎杀】1-2季_4K中字【126G】
|
||||
swz6sdr3fwo?password=8888 美剧|【白莲花度假村】1-2季_1080P中字【48G】
|
||||
swz6s553fwo?password=8888 美剧|【千谎百计】1-3季全_1080P中字【125G】
|
||||
swz6lny3fwo?password=8888 美剧|【神秘博士】1-13季全_1080P中字【324G】
|
||||
swz6lww3fwo?password=8888 美剧|【X档案】1-11季+电影版两部_1080P中字【143G】
|
||||
swz6lff3fwo?password=8888 美剧|【鹰眼】(2021)_6集全_4K中字【43G】
|
||||
swz6lbk3fwo?password=8888 美剧|【IT狂人】1-4季全_标清中字【20G】
|
||||
swz6lb03fwo?password=8888 美剧|【无人生还】(2015)_3集全_1080P中字【14G】
|
||||
swz6l7f3fwo?password=8888 美剧|【童话镇】1-7季_720P中字【72G】
|
||||
swz6lyi3fwo?password=8888 美剧|【欧比旺】(2022)_6集全_4K中字【36G】
|
||||
swz6lmm3fwo?password=8888 美剧|【黄石】1-5季_4K中字【更新中】
|
||||
swz6lee3fwo?password=8888 美剧|【双峰】1-3季_1080P中字【106G】
|
||||
swz6lgx3fwo?password=8888 美剧|【杰西卡·琼斯】1-3季_1080P中字【139G】
|
||||
swz6lpz3fwo?password=8888 美剧|【怒呛人生】(2023)_10集全_4K中字【30G】
|
||||
swz6lp23fwo?password=8888 美剧|【绝望主妇】1-8季_720P中字【71G】
|
||||
swz6ltu3fwo?password=8888 美剧|【绝望主妇】1-8季_1080P中字【300G】
|
||||
swz6l033fwo?password=8888 美剧|【地球百子】1-7季全_1080P中字【206G】
|
||||
swz6b1z3fwo?password=8888 美剧|【杰茜驾到】1-7季全_1080P中字【194G】
|
||||
swz6b1r3fwo?password=8888 美剧|【正常人】(2020)_12集全_1080P中字【9.23G】
|
||||
swz6bcn3fwo?password=8888 美剧|【大西洋帝国】1-5季_1080P中字【122G】
|
||||
swz6onx3fwo?password=8888 美剧|【小谢尔顿】1-6季_1080P中字【85G】
|
||||
swz6o643fwo?password=8888 美剧|【女浩克】(2022)_9集全_4K中字【40G】
|
||||
swz6oo83fwo?password=8888 美剧|【傲慢与偏见】(1995)_6集全_1080P外挂字幕【78G】
|
||||
swz6o7w3fwo?password=8888 美剧|【贴身保镖】第一季_1080P中字【7G】
|
||||
swz6o453fwo?password=8888 美剧|【反恐24小时】1-9季全_1080P中字【399G】
|
||||
swz6oyi3fwo?password=8888 美剧|【良医】1-6季_1080P中字【64G】
|
||||
swz6k1k3fwo?password=8888 美剧|【硅谷】1-6季_1080P中字【39G】
|
||||
swz6kcq3fwo?password=8888 美剧|【副本】1-2季_4K中字【127G】
|
||||
swz6k0s3fwo?password=8888 美剧|【罪夜之奔】(2016)_8集全_1080P中字【5G】
|
||||
swz6kuu3fwo?password=8888 美剧|【艾米丽在巴黎】1-3季_1080P中字【105G】
|
||||
swz6dl23fwo?password=8888 美剧|【罗马】1-2季_1080P中字【60G】
|
||||
swz6d773fwo?password=8888 美剧|【好兆头】1-2季_4K中字【67G】
|
||||
swz6ew93fwo?password=8888 美剧|【黑色孤儿】1-5季_1080P中字【95G】
|
||||
swz6ebs3fwo?password=8888 美剧|【叶卡捷琳娜大帝】1-3季_1080P中字
|
||||
sw6u7mw3fwo?password=8888 韩剧|【阿拉姆恩之剑:阿斯达年代记】(2023)_1080P韩语中字_李准基_|_张东健_/_申世景
|
||||
sw62qsa3fwo?password=8888 韩剧|【鱿鱼游戏】第一季(2021)_4K韩语中字_李政宰_/_朴海秀_/_魏嘏隽
|
||||
sw62qq83fwo?password=8888 韩剧|【请回答1988】(2015)_20集全_4K韩语中字_成东日_/_李一花_/_罗美兰
|
||||
sw62qbl3fwo?password=8888 韩剧|【黑暗荣耀】第一季_(2022)_4K韩语中字_宋慧乔_/_李到晛_/_林智妍
|
||||
sw62q7z3fwo?password=8888 韩剧|【黑暗荣耀】第二季_(2023)_1080P韩语中字_宋慧乔_/_李到晛_/_林智妍
|
||||
sw62q773fwo?password=8888 韩剧|【孤单又灿烂的神:鬼怪】(2016)_16集全_4K韩语中字_孔刘_/_金高银_/_李栋旭
|
||||
sw62q723fwo?password=8888 韩剧|【来自星星的你】(2013)_21集全_1080P韩语中字_金秀贤_/_全智贤_/_朴海镇
|
||||
sw62qiy3fwo?password=8888 韩剧|【信号】(2016)_16集全_1080P韩语中字_李帝勋_/_赵震雄_/_金惠秀
|
||||
sw62qie3fwo?password=8888 韩剧|【太阳的后裔】(2016)_16集全_1080P韩语中字_宋慧乔_/_宋仲基_/_金智媛
|
||||
sw62qi23fwo?password=8888 韩剧|【爱的迫降】(2019)_16集全_4K韩语中字_玄彬_/_孙艺珍_/_徐智慧
|
||||
sw62q4j3fwo?password=8888 韩剧|【机智医生生活】第一季_(2020)_1080P韩语中字_曹政奭_/_柳演锡_/_郑敬淏
|
||||
sw62q4c3fwo?password=8888 韩剧|【机智医生生活】第二季_(2021)_1080P韩语中字_曹政奭_/_柳演锡_/_郑敬淏
|
||||
sw62qyq3fwo?password=8888 韩剧|【W-两个世界】(2016)_16集全_1080P韩语中字_李钟硕_/_韩孝周_/_郑幼贞
|
||||
sw62qyg3fwo?password=8888 韩剧|【机智牢房生活】(2017)_16集全_1080P韩剧|中字_朴海秀_/_郑敬淏_/_郑秀晶
|
||||
sw62qkz3fwo?password=8888 韩剧|【继承者们】(2013)_20集全_1080P韩语中字_李敏镐_/_朴信惠_/_金宇彬
|
||||
sw62qkg3fwo?password=8888 韩剧|【当你沉睡时】(2017)_32集全_1080P韩语中字_李钟硕_/_裴秀智_/_李相烨
|
||||
sw62qk93fwo?password=8888 韩剧|【窥探】(2021)_20集全_1080P韩语中字_李昇基_/_李熙俊_/_朴柱炫
|
||||
sw62qk13fwo?password=8888 韩剧|【举重妖精金福珠】(2016)_16集全_1080P韩语中字_李圣经_/_南柱赫_/_景收真
|
||||
sw62qdh3fwo?password=8888 韩剧|【甜蜜家园】(2020)_10集全_4K韩语中字_宋江_/_李施吟_/_李到晛
|
||||
sw62qdv3fwo?password=8888 韩剧|【非常律师禹英禑】(2022)_16集全_1080P韩语中字_朴恩斌_/_姜泰伍_/_姜其永
|
||||
sw62qmf3fwo?password=8888 韩剧|【那年,我们的夏天】(2021)_16集全_1080P韩语中字_崔宇植_/_金多美_/_金圣喆
|
||||
sw62qma3fwo?password=8888 韩剧|【欢迎来到王之国】(2023)_16集全_1080P韩语中字_李俊昊_/_林允儿_/_高媛熙
|
||||
sw62q5z3fwo?password=8888 韩剧|【治愈者】(2014)_20集全_1080P韩语中字_池昌旭_/_朴敏英_/_刘智泰
|
||||
sw62q5g3fwo?password=8888 韩剧|【今生是第一次】(2017)_16集全_1080P韩语中字_李民基_/_郑素敏_/_朴炳垠
|
||||
sw62qvl3fwo?password=8888 韩剧|【没关系,是爱情啊】(2014)_16集全_1080P韩语中字_赵寅成_/_孔晓振_/_成东日
|
||||
sw62qvg3fwo?password=8888 韩剧|【请回答1997】(2012)_16集全_1080P韩语中字_郑恩地_/_徐仁国_/_申素率
|
||||
sw62qan3fwo?password=8888 韩剧|【蓝色大海的传说】(2016)_20集全_720P韩语中字_全智贤_/_李敏镐_/_文素丽
|
||||
sw62qa43fwo?password=8888 韩剧|【僵尸校园】(2022)_12集全_4K韩语中字_尹灿荣_/_朴持厚_/_曹怡贤
|
||||
sw62qax3fwo?password=8888 韩剧|【社内相亲】(2022)_12集全_1080P韩语中字_安孝燮_/_金世正_/_金旻奎
|
||||
sw62qg93fwo?password=8888 韩剧|【我的解放日志】(2022)_16集全_4K韩语中字_李民基_/_金智媛_/_孙锡久
|
||||
sw62qpn3fwo?password=8888 韩剧|【365:逆转命运的1年】(2020)_24集全_1080P韩语中字_李浚赫_/_南志铉_/_金智秀
|
||||
sw62qpd3fwo?password=8888 韩剧|【财阀家的小儿子】(2022)_16集全_1080P韩语中字_宋仲基_/_李星民_/_申铉彬
|
||||
sw62q8x3fwo?password=8888 韩剧|【大力女子都奉顺】(2017)_16集全_1080P韩语中字_朴宝英_/_朴炯植_/_金志洙
|
||||
sw62bog3fwo?password=8888 韩剧|【城市猎人】(2011)_20集全_720P韩语中字_李敏镐_/_朴敏英_/_李浚赫
|
||||
sw62big3fwo?password=8888 韩剧|【哦我的鬼神大人】(2015)_16集全_1080P韩语中字_朴宝英_/_曹政奭_/_金瑟祺
|
||||
sw62bi23fwo?password=8888 韩剧|【二十五,二十一】(2022)_16集全_1080P韩语中字_金泰梨_/_南柱赫_/_金知妍
|
||||
sw62b4d3fwo?password=8888 韩剧|【超异能族】(2023)_20集全_4K韩语中字_柳承龙_/_韩孝周_/_赵寅成
|
||||
sw62b4j3fwo?password=8888 韩剧|【海岸村恰恰恰】(2021)_16集全_1080P韩语中字_申敏儿_/_金宣虎_/_李相二
|
||||
sw62byh3fwo?password=8888 韩剧|【D.P:逃兵追缉令】_第一季_(2021)_4K韩语中字_丁海寅_/_具教焕_/_金成畇_
|
||||
sw62bmt3fwo?password=8888 韩剧|【D.P:逃兵追缉令】_第二季_(2023)_4K韩语中字_丁海寅_/_具教焕_/_金成畇
|
||||
sw62b533fwo?password=8888 韩剧|【仁显王后的男人】(2012)_16集全_1080P韩语中字_刘寅娜_/_池贤宇_/_金镇宇
|
||||
sw62b5h3fwo?password=8888 韩剧|【少年法庭】(2022)_10集全_4K韩语中字_金惠秀_/_金武烈_/_李星民
|
||||
sw62bvt3fwo?password=8888 韩剧|【杀了我治愈我】(2015)_20集全_1080P韩语中字_池晟_/_黄正音_/_朴叙俊
|
||||
sw62beq3fwo?password=8888 韩剧|【未生】(2014)_20集全_1080P韩语中字_任时完_/_李星民_/_姜素拉
|
||||
sw62bep3fwo?password=8888 韩剧|【内在美】(2018)_16集全_1080P韩语中字_徐玄振_/_李民基_/_李多熙
|
||||
sw62bai3fwo?password=8888 韩剧|【语义错误】(2022)_8集全_1080P韩语中字_朴栖含_/_朴宰灿_/_宋智午
|
||||
sw62bgh3fwo?password=8888 韩剧|【我的ID是江南美人】(2018)_16集全_1080P韩语中字_林秀香_/_车银优_/_赵宇丽
|
||||
sw62bgf3fwo?password=8888 韩剧|【偶然发现的一天】(2019)_32集全_1080P韩语中字_金惠奫_/_金路云_/_李宰旭
|
||||
sw62bga3fwo?password=8888 韩剧|【国王:永远的君主】(2020)_16集全_1080P韩语中字_李敏镐_/_金高银_/_禹棹焕
|
||||
sw62bg03fwo?password=8888 韩剧|【请回答1994】(2013)_21集全_1080P韩语中字_高雅拉_/_柳演锡_/_正宇
|
||||
sw62bpy3fwo?password=8888 韩剧|【Move_to_Heaven:我是遗物整理师】(2021)_10集全_4K韩语中字_李帝勋_/_汤峻相_/_洪承熙
|
||||
sw62owv3fwo?password=8888 韩剧|【夫妻的世界】(2020)_16集全_1080P韩语中字_金喜爱_/_朴解浚_/_韩韶禧
|
||||
sw62ofn3fwo?password=8888 韩剧|【安娜】(2022)_6集全_1080P韩语中字_裴秀智_/_郑恩彩_/_金俊翰
|
||||
sw62ofi3fwo?password=8888 韩剧|【火星生活】(2018)_16集全_1080P韩语中字_郑敬淏_/_朴成雄_/_高我星
|
||||
sw62ofe3fwo?password=8888 韩剧|【春夜】(2019)_16集全_4K韩语中字_韩志旼_/_丁海寅_/_金俊翰
|
||||
sw62osq3fwo?password=8888 韩剧|【酒鬼都市女人们】(2021)_12集全_1080P韩语中字_李先彬_/_韩善花_/_郑恩地
|
||||
sw62osg3fwo?password=8888 韩剧|【棒球大联盟】(2019)_16集全_1080P韩语中字_南宫珉_/_朴恩斌_/_吴正世
|
||||
sw62oq13fwo?password=8888 韩剧|【囚犯医生】(2019)_16集全_1080P韩语中字_南宫珉_/_权娜拉_/_金炳哲
|
||||
sw62ob33fwo?password=8888 韩剧|【迷雾】(2018)_16集全_1080P韩语中字_金南珠_/_池珍熙_/_高俊
|
||||
sw62obv3fwo?password=8888 韩剧|【我的名字】(2021)_8集全_4K韩语中字_韩韶禧_/_朴熹洵_/_安普贤
|
||||
sw62oo33fwo?password=8888 韩剧|【咖啡王子1号店】(2007)_17集全_1080P韩语中字_尹恩惠_/_孔刘_/_李善均
|
||||
sw62ook3fwo?password=8888 韩剧|【黑话律师】(2022)_16集全_1080P韩语中字_李钟硕_/_林允儿_/_金周宪
|
||||
sw62oor3fwo?password=8888 韩剧|【耀眼】(2019)_12集全_1080P韩语中字_金惠子_/_韩志旼_/_南柱赫
|
||||
sw62o7s3fwo?password=8888 韩剧|【地狱公使】(2021)_6集全_4K韩语中字_刘亚仁_/_金贤珠_/_朴正民
|
||||
sw62o7r3fwo?password=8888 韩剧|【请输入搜索词:WWW】(2019)_16集全_1080P韩语中字_林秀晶_/_张基龙_/_李多熙
|
||||
sw62oid3fwo?password=8888 韩剧|【阿尔罕布拉宫的回忆】(2018)_16集全_1080P韩语中字_玄彬_/_朴信惠_/_朴勋_
|
||||
sw62oyx3fwo?password=8888 韩剧|【她很漂亮】(2015)_16集全_1080P韩语中字_黄正音_/_朴叙俊_/_高俊熙
|
||||
sw62oks3fwo?password=8888 韩剧|【我亲爱的朋友们】(2016)_16集全_1080P韩语中字_高贤贞_/_赵寅成_/_金惠子
|
||||
sw62okn3fwo?password=8888 韩剧|【Live】(2018)_18集全_720P韩语中字_郑有美_/_李光洙_/_裴晟祐
|
||||
sw62ok43fwo?password=8888 韩剧|【制作人】(2015)_12集全_1080P韩语中字_金秀贤_/_车太贤_/_孔晓振
|
||||
sw62odw3fwo?password=8888 韩剧|【她的私生活】(2019)_16集全_1080P韩语中字_朴敏英_/_金材昱_/_安普贤
|
||||
sw62odl3fwo?password=8888 韩剧|【大长今】(2003)_54集全_1080P国语韩语多音轨中字_李英爱_/_池珍熙_/_任豪
|
||||
sw62odr3fwo?password=8888 韩剧|【无法抗拒的他】(2021)_10集全_1080P韩语中字_宋江_/_韩韶禧_/_蔡钟协
|
||||
sw62omq3fwo?password=8888 韩剧|【加油吧威基基】(2018)_20集全_1080P韩语中字_金正贤_/_李伊庚_/_孙承源
|
||||
sw62omv3fwo?password=8888 韩剧|【绅士的品格】(2012)_20集全_1080P韩语中字_张东健_/_金荷娜_/_金民钟
|
||||
sw62om93fwo?password=8888 韩剧|【九回时间旅行】(2013)_20集全_1080P韩语中字_李阵郁_/_赵胤熙_/_全卢民
|
||||
sw6uayo3fwo?password=8888 日剧|【非自然死亡】全10集_1080P中字【13G】
|
||||
swz3hvx3fwo?password=8888 日剧|【胜者即是正义】(2012)_11集全_1080P中字【13G】
|
||||
swz3hv03fwo?password=8888 日剧|【胜者即是正义2】(2013)_10集全_1080P中字【13G】
|
||||
swz3l4f3fwo?password=8888 日剧|【弥留之国的爱丽丝】1-2季_4K中字【100G】
|
||||
swz6syr3fwo?password=8888 日剧|【半泽直树】1-2季全_1080P中字【38G】
|
||||
swz6sdf3fwo?password=8888 日剧|【我是大哥大】10集全_1080P中字【38G】
|
||||
swz6s5p3fwo?password=8888 日剧|【重启人生】10集全_1080P中字【11G】
|
||||
swz6s513fwo?password=8888 日剧|【轮到你了】20集全_1080P中字【20G】
|
||||
swz6o4e3fwo?password=8888 日剧|【四重奏】(2017)_10集全_1080P中字【16G】
|
||||
swz6kjm3fwo?password=8888 日剧|【我的恐怖妻子】(2016)_9集全_1080P中字【13G】
|
||||
swz6dk13fwo?password=8888 日剧|【凪的新生活】(2019)_10集全_1080P中字【9G】
|
||||
sw6uis63fwo?password=8888 台剧|【想见你】(2019)_13集全_4K中字【36G】
|
||||
sw6uj4h3fwo?password=8888 台剧|【我们与恶的距离】(2019)_10集全_4K中字【88G】
|
||||
swz6lk43fwo?password=8888 台剧|【我可能不会爱你】(2011)_23集全_1080P中字【17G】
|
||||
swz6kcg3fwo?password=8888 台剧|【俗女养成记】1-2季_4K中字【74G】
|
||||
swnvgvv3z29?password=h6b2 纪录片|中国通史全100集_64.07G
|
||||
sw682pw3nyo?password=s8c8 纪录片|国外纪录片_1.86T
|
||||
sw6xm3j3w7v?password=1111 纪录片|百家讲坛全集_2.21T
|
||||
swz6smc3fwo?password=8888 纪录片|【地球脉动】1-3季_1080P中字【436G】
|
||||
sw68md23w8m?password=q353 纪录片|盗火纪录片_9.32T
|
||||
swz6fb03fwo?password=8888 纪录片|一级方程式:疾速争胜_(2019)
|
||||
swz6fbu3fwo?password=8888 纪录片|七个世界,一个星球_(2019)
|
||||
swz6fo33fwo?password=8888 纪录片|72种危险动物:拉丁美洲_(2017)
|
||||
swz6fo43fwo?password=8888 纪录片|72种危险动物:亚洲篇_(2018)
|
||||
swz6foy3fwo?password=8888 纪录片|2022_(2022)
|
||||
swz6fok3fwo?password=8888 纪录片|阿波罗11号_(2019)
|
||||
swz6fod3fwo?password=8888 纪录片|阿莱克斯·施瓦泽:为真相而跑_(2023)
|
||||
swz6fov3fwo?password=8888 纪录片|埃及艳后_(2023)
|
||||
swz6foe3fwo?password=8888 纪录片|艾德·希兰:成名之路_(2023)
|
||||
swz6foa3fwo?password=8888 纪录片|爱犬情深_(2018)
|
||||
swz6fog3fwo?password=8888 纪录片|摆脱贫困_(2021)
|
||||
swz6fo83fwo?password=8888 纪录片|北回归线_(2010)
|
||||
swz6foj3fwo?password=8888 纪录片|北极奇观_(2014)
|
||||
swz6fo93fwo?password=8888 纪录片|北极熊_(2022)
|
||||
swz6fo13fwo?password=8888 纪录片|贝尔蒂·格雷戈里:与动物零距离_(2023)
|
||||
swz6fo03fwo?password=8888 纪录片|奔向月球_(2015)
|
||||
swz6f733fwo?password=8888 纪录片|变态者意识形态指南_(2012)
|
||||
swz6f7n3fwo?password=8888 纪录片|冰冻星球2_(2022)
|
||||
swz6f7z3fwo?password=8888 纪录片|冰河时代的巨人_(2013)
|
||||
swz6f7w3fwo?password=8888 纪录片|冰雪之巅_(2018)
|
||||
swz6f7s3fwo?password=8888 纪录片|博茨瓦纳惊人的野生动物_(2020)
|
||||
swz6f7q3fwo?password=8888 纪录片|不破不立_(2021)
|
||||
swz6f7o3fwo?password=8888 纪录片|不止考古·我与三星堆_(2022)
|
||||
swz6f7i3fwo?password=8888 纪录片|坂本龙一:终曲_(2017)
|
||||
swz6f743fwo?password=8888 纪录片|BBC_野性都市_(2018)
|
||||
swz6f7k3fwo?password=8888 纪录片|彩排_(2022)
|
||||
swz6f7d3fwo?password=8888 纪录片|茶,一片树叶的故事_(2013)
|
||||
swz6f753fwo?password=8888 纪录片|超凡动物奇观_(2022)
|
||||
swz6f7v3fwo?password=8888 纪录片|超级工程_(2012)
|
||||
swz6f7r3fwo?password=8888 纪录片|沉船搜索者澳大利亚_(2022)
|
||||
swz6f7t3fwo?password=8888 纪录片|穿越落基山脉_(2011)
|
||||
swz6f783fwo?password=8888 纪录片|从太空看地球_(2019)
|
||||
swz6f7j3fwo?password=8888 纪录片|大白鲨_(2013)
|
||||
swz6f7x3fwo?password=8888 纪录片|大堡礁探险_(2018)
|
||||
swz6f7c3fwo?password=8888 纪录片|大陆的崛起_(2013)
|
||||
swz6f703fwo?password=8888 纪录片|大秦岭_(2010)
|
||||
swz6f7u3fwo?password=8888 纪录片|大太平洋_(2017)
|
||||
swz6fi33fwo?password=8888 纪录片|大峡谷探险之河流告急_(2008)
|
||||
swz6fi63fwo?password=8888 纪录片|大象的秘密_(2023)
|
||||
swz6fih3fwo?password=8888 纪录片|大象女王_(2019)
|
||||
swz6fiw3fwo?password=8888 纪录片|大熊猫_(2018)
|
||||
swz6fif3fwo?password=8888 纪录片|登陆日:诺曼底1944_(2014)
|
||||
swz6fis3fwo?password=8888 纪录片|地球的夜晚_(2020)
|
||||
swz6fil3fwo?password=8888 纪录片|地球风暴_(2022)
|
||||
swz6fiq3fwo?password=8888 纪录片|地球脉动_(2006)
|
||||
swz6fib3fwo?password=8888 纪录片|地球脉动2_(2016)
|
||||
swz6fi73fwo?password=8888 纪录片|地球:神奇的一天_(2017)
|
||||
swz6fii3fwo?password=8888 纪录片|第四阶段_(2016)
|
||||
swz6fiy3fwo?password=8888 纪录片|帝国的崛起:奥斯曼_(2020)
|
||||
swz6fik3fwo?password=8888 纪录片|帝企鹅日记2:召唤_(2017)
|
||||
swz6fim3fwo?password=8888 纪录片|帝王蝶的迁徙_(2012)
|
||||
swz6fiv3fwo?password=8888 纪录片|东瀛大宝荐
|
||||
swz6fie3fwo?password=8888 纪录片|动物本色_(2021)
|
||||
swz6fig3fwo?password=8888 纪录片|敦煌:生而传奇_(2021)
|
||||
swz6fi83fwo?password=8888 纪录片|恶海捕蟹记:血脉篇_(2020)
|
||||
swz6fij3fwo?password=8888 纪录片|非洲_(2013)
|
||||
swz6fic3fwo?password=8888 纪录片|非洲:动物乐园_(2017)
|
||||
swz6fi23fwo?password=8888 纪录片|风味原产地_(2019)
|
||||
swz6f433fwo?password=8888 纪录片|佛罗伦萨和乌菲兹美术馆_(2015)
|
||||
swz6f4n3fwo?password=8888 纪录片|功勋_(2021)
|
||||
swz6f4s3fwo?password=8888 纪录片|孤注一掷:阿森纳_(2022)
|
||||
swz6f4q3fwo?password=8888 纪录片|孤注一掷:巴西国家队_(2020)
|
||||
swz6f4o3fwo?password=8888 纪录片|孤注一掷:曼彻斯特城_(2018)
|
||||
swz6f473fwo?password=8888 纪录片|孤注一掷:托特纳姆热刺_(2020)
|
||||
swz6f4i3fwo?password=8888 纪录片|龟女士的奥德赛_(2018)
|
||||
swz6f4y3fwo?password=8888 纪录片|国际空间站_(2002)
|
||||
swz6f4k3fwo?password=8888 纪录片|国家地理:大迁徙_(2010)
|
||||
swz6f4m3fwo?password=8888 纪录片|国家地理:远征南极_(2009)
|
||||
swz6f4r3fwo?password=8888 纪录片|海狼之岛_(2022)
|
||||
swz6f4a3fwo?password=8888 纪录片|海洋_(2010)
|
||||
swz6f4p3fwo?password=8888 纪录片|海洋:我们的蓝色星球_(2018)
|
||||
swz6f4t3fwo?password=8888 纪录片|航空母舰:七海卫士_(2016)
|
||||
swz6fyz3fwo?password=8888 纪录片|航拍中国_(2017)
|
||||
swz6fyw3fwo?password=8888 纪录片|河西走廊_(2015)
|
||||
swz6fyf3fwo?password=8888 纪录片|黑猩猩帝国_(2023)
|
||||
swz6fyb3fwo?password=8888 纪录片|黑夜跟踪狂:追捕连环杀手_(2021)
|
||||
swz6fy73fwo?password=8888 纪录片|欢迎来地球_(2021)
|
||||
swz6fyi3fwo?password=8888 纪录片|环法自行车赛:逆风飞驰_(2023)
|
||||
swz6fyy3fwo?password=8888 纪录片|回到太空_(2022)
|
||||
swz6fyk3fwo?password=8888 纪录片|急诊先锋:纽约_(2023)
|
||||
swz6fym3fwo?password=8888 纪录片|记忆的力量·抗美援朝_(2020)
|
||||
swz6fyv3fwo?password=8888 纪录片|家园_(2020)
|
||||
swz6fye3fwo?password=8888 纪录片|揭秘海军陆战队_(2017)
|
||||
swz6fyg3fwo?password=8888 纪录片|巨兽_(2023)
|
||||
swz6fyt3fwo?password=8888 纪录片|觉醒_(2018)
|
||||
swz6fyj3fwo?password=8888 纪录片|康纳·麦格雷戈:拳王万岁_(2023)
|
||||
swz6fy13fwo?password=8888 纪录片|克里斯·海姆斯沃斯:挑战极限_(2022)
|
||||
swz6fy23fwo?password=8888 纪录片|狂野日本_(2015)
|
||||
swz6fk33fwo?password=8888 纪录片|狂野之美:国家公园探险_(2016)
|
||||
swz6fkn3fwo?password=8888 纪录片|蓝色星球_(2001)
|
||||
swz6fks3fwo?password=8888 纪录片|蓝色星球2_(2017)
|
||||
swz6fkb3fwo?password=8888 纪录片|雷吉_(2023)
|
||||
swz6fki3fwo?password=8888 纪录片|李小龙传奇_(2008)
|
||||
swz6fky3fwo?password=8888 纪录片|了解宇宙如何运行_(2010)
|
||||
swz6fkk3fwo?password=8888 纪录片|绿色星球_(2022)
|
||||
swz6fkm3fwo?password=8888 纪录片|罗马四大圣殿_(2016)
|
||||
swz6fk53fwo?password=8888 纪录片|麦道夫:华尔街吸金恶霸_(2023)
|
||||
swz6fkr3fwo?password=8888 纪录片|没有极限_(2015)
|
||||
swz6fka3fwo?password=8888 纪录片|美国内战_(1990)
|
||||
swz6fkp3fwo?password=8888 纪录片|美国西海岸之旅_(2014)
|
||||
swz6fk83fwo?password=8888 纪录片|美丽星球_(2016)
|
||||
swz6fk93fwo?password=8888 纪录片|美丽中国_(2008)
|
||||
swz6fk13fwo?password=8888 纪录片|梦想之大:构建我们的世界_(2017)
|
||||
swz6fkc3fwo?password=8888 纪录片|木偶奇遇记_(2022)
|
||||
swz6fdn3fwo?password=8888 纪录片|喵星人的奇思妙想_(2022)
|
||||
swz6fdz3fwo?password=8888 纪录片|MH370:消失的马航客机_(2023)
|
||||
swz6fdh3fwo?password=8888 纪录片|纳米比亚-旷野的精神_(2016)
|
||||
swz6fdw3fwo?password=8888 纪录片|南极3D:在边缘_(2014)
|
||||
swz6fdq3fwo?password=8888 纪录片|南太平洋之旅_(2013)
|
||||
swz6fd73fwo?password=8888 纪录片|欧洲_(2016)
|
||||
swz6fdy3fwo?password=8888 纪录片|披头士乐队:回归_(2021)
|
||||
swz6fdm3fwo?password=8888 纪录片|僻壤凶案_(2022)
|
||||
swz6fd53fwo?password=8888 纪录片|婆罗洲:亚洲的魅力_(2017)
|
||||
swz6fdv3fwo?password=8888 纪录片|破发点:大满贯之路_(2023)
|
||||
swz6fda3fwo?password=8888 纪录片|破浪_(2016)
|
||||
swz6fdg3fwo?password=8888 纪录片|奇妙酒店:大堂之外的生活_(2017)
|
||||
swz6fdp3fwo?password=8888 纪录片|企鹅群里有特务_(2013)
|
||||
swz6fd83fwo?password=8888 纪录片|企鹅小镇_(2021)
|
||||
swz6fdj3fwo?password=8888 纪录片|切尔诺贝利_(2019)
|
||||
swz6fdx3fwo?password=8888 纪录片|情系斯波克_(2016)
|
||||
swz6fm33fwo?password=8888 纪录片|求偶游戏_(2021)
|
||||
swz6fmh3fwo?password=8888 纪录片|全力挥杆:高尔夫大满贯之路_(2023)
|
||||
swz6fmf3fwo?password=8888 纪录片|全美缉凶:波士顿马拉松爆炸案_(2023)
|
||||
swz6fml3fwo?password=8888 纪录片|全球绝美国家公园_(2022)
|
||||
swz6fmb3fwo?password=8888 纪录片|人间游乐场_(2022)
|
||||
swz6fmi3fwo?password=8888 纪录片|人生七年1_(1964)
|
||||
swz6fmy3fwo?password=8888 纪录片|人生七年2_(1970)
|
||||
swz6fmd3fwo?password=8888 纪录片|人生七年3_(1977)
|
||||
swz6fm53fwo?password=8888 纪录片|人生七年4_(1984)
|
||||
swz6fme3fwo?password=8888 纪录片|人生七年5_(1991)
|
||||
swz6fma3fwo?password=8888 纪录片|人生七年6_(1999)
|
||||
swz6fmp3fwo?password=8888 纪录片|人生七年7_(2006)
|
||||
swz6fmt3fwo?password=8888 纪录片|人生七年8_(2012)
|
||||
swz6fm93fwo?password=8888 纪录片|人生七年9_(2019)
|
||||
swz6fm13fwo?password=8888 纪录片|人生第一次_(2020)
|
||||
swz6fmc3fwo?password=8888 纪录片|塞伦盖蒂_(2019)
|
||||
swz6fm23fwo?password=8888 纪录片|塞伦盖蒂国家公园_(2011)
|
||||
swz6fmu3fwo?password=8888 纪录片|舌尖上的中国_(2012)
|
||||
swz6f5n3fwo?password=8888 纪录片|生门_(2017)
|
||||
swz6f563fwo?password=8888 纪录片|生命_(2009)
|
||||
swz6f5h3fwo?password=8888 纪录片|盛会_(2022)
|
||||
swz6f5w3fwo?password=8888 纪录片|时间的风景_(2012)
|
||||
swz6f5f3fwo?password=8888 纪录片|史前星球_(2022)
|
||||
swz6f5s3fwo?password=8888 纪录片|水下中国_(2019)
|
||||
swz6f5q3fwo?password=8888 纪录片|他乡的童年_(2019)
|
||||
swz6f5b3fwo?password=8888 纪录片|泰勒·斯威夫特:美利坚女士_(2020)
|
||||
swz6f5i3fwo?password=8888 纪录片|太空之旅_(2015)
|
||||
swz6f543fwo?password=8888 纪录片|徒手攀岩_(2018)
|
||||
swz6f5k3fwo?password=8888 纪录片|外星世界_(2020)
|
||||
swz6f5v3fwo?password=8888 纪录片|完美星球_(2021)
|
||||
swz6f5e3fwo?password=8888 纪录片|万物之生_(2022)
|
||||
swz6f5g3fwo?password=8888 纪录片|王朝_(2018)
|
||||
swz6f5p3fwo?password=8888 纪录片|王阳明_(2021)
|
||||
swz6f5t3fwo?password=8888 纪录片|韦科惨案:末日烈火_(2023)
|
||||
swz6f5j3fwo?password=8888 纪录片|为了全人类_(1989)
|
||||
swz6f593fwo?password=8888 纪录片|维多利亚的秘密:天使与恶魔_(2022)
|
||||
swz6f5u3fwo?password=8888 纪录片|未来漫游指南_(2022)
|
||||
swz6fvs3fwo?password=8888 纪录片|我工作故我在_(2023)
|
||||
swz6fvi3fwo?password=8888 纪录片|我们的父亲_(2022)
|
||||
swz6fvm3fwo?password=8888 纪录片|我们的浩瀚宇宙_(2022)
|
||||
swz6fv53fwo?password=8888 纪录片|我们的星球_(2019)
|
||||
swz6fvr3fwo?password=8888 纪录片|我们的自然_(2018)
|
||||
swz6fve3fwo?password=8888 纪录片|我们星球上的生命_(2023)
|
||||
swz6fva3fwo?password=8888 纪录片|我是一名杀手_(2018)
|
||||
swz6fvp3fwo?password=8888 纪录片|无穷之路_(2021)
|
||||
swz6fvj3fwo?password=8888 纪录片|武林外传_(2018)
|
||||
swz6fvx3fwo?password=8888 纪录片|小小世界_(2020)
|
||||
swz6fv03fwo?password=8888 纪录片|行星_(2019)
|
||||
swz6fvu3fwo?password=8888 纪录片|血与性:400年王室风云_(2022)
|
||||
swz6fr63fwo?password=8888 纪录片|药剂师_(2020)
|
||||
swz6frh3fwo?password=8888 纪录片|野性太平洋_(2016)
|
||||
swz6frf3fwo?password=8888 纪录片|野性英伦_(2023)
|
||||
swz6frq3fwo?password=8888 纪录片|夜色中的地球_(2020)
|
||||
swz6fr73fwo?password=8888 纪录片|移民国度_(2020)
|
||||
swz6frm3fwo?password=8888 纪录片|影响世界的中国植物_(2019)
|
||||
swz6frp3fwo?password=8888 纪录片|与浪争锋_(2022)
|
||||
swz6frx3fwo?password=8888 纪录片|宇宙时空之旅_(2014)
|
||||
swz6fe33fwo?password=8888 纪录片|遇见最极致的中国_(2022)
|
||||
swz6few3fwo?password=8888 纪录片|原味澳洲_(2013)
|
||||
swz6fel3fwo?password=8888 纪录片|约翰·威尔逊的十万个怎么做_(2020)
|
||||
swz6feb3fwo?password=8888 纪录片|找寻_(2021)
|
||||
swz6fe73fwo?password=8888 纪录片|这货哪来的_(2023)
|
||||
swz6fek3fwo?password=8888 纪录片|致富攻略_(2023)
|
||||
swz6fem3fwo?password=8888 纪录片|中国_(2020)
|
||||
swz6fev3fwo?password=8888 纪录片|中国救护_(2023)
|
||||
swz6fee3fwo?password=8888 纪录片|中国通史_(2013)
|
||||
swz6feg3fwo?password=8888 纪录片|中国之谜_(2016)
|
||||
swz6fep3fwo?password=8888 纪录片|中国最美公路_(2022)
|
||||
swz6fet3fwo?password=8888 纪录片|众神之地_(2022)
|
||||
swz6fej3fwo?password=8888 纪录片|追缉汽车大亨:卡洛斯·戈恩_(2023)
|
||||
swz6fe93fwo?password=8888 纪录片|追逐珊瑚_(2017)
|
||||
swz6fec3fwo?password=8888 纪录片|最后的珊瑚礁:海底世界_(2012)
|
||||
swz6fe23fwo?password=8888 纪录片|最后的舞动_(2020)
|
||||
swz6feu3fwo?password=8888 纪录片|最美公路_(2018)
|
||||
swz6fan3fwo?password=8888 纪录片|座头鲸_(2015)
|
||||
sw6vuxp366e?password=kd83 音乐MV|港台MV_1.14T
|
||||
sw658uq36x2?password=md98 音乐MV|音乐22万首_8.76T
|
||||
swzmqcr3fs6?password=xd67 音乐MV|音乐22万首_3.83TB
|
||||
swzmqca3fs6?password=j9d3 音乐MV|音乐22万首_8.76TB
|
||||
swzva8w3fs6?password=l381 音乐MV|音乐22万首_1.80TB
|
||||
swz6ft53fwo?password=8888 精选|各类无损音乐合集9万首(8.8T)
|
||||
swz6soa3fwo?password=8888 精选|成龙电影合集【447G】
|
||||
swz6sot3fwo?password=8888 精选|《_成龙65部作品合集@Ourdisc_蓝光原盘_》【1.48T】
|
||||
swz6so13fwo?password=8888 精选|林正英电影合集46部【209G】
|
||||
swz6so23fwo?password=8888 精选|李连杰电影合集【210G】
|
||||
swz6s763fwo?password=8888 精选|邵氏4K【777G】
|
||||
swz6s7w3fwo?password=8888 精选|周星馳电影合集【183G】
|
||||
swz6s743fwo?password=8888 精选|动漫_已经刮削整理_394部【13.97T】
|
||||
swz6s7y3fwo?password=8888 精选|freembook全站15.72万书(kindle格式为主)_1.6t
|
||||
swz6s7d3fwo?password=8888 精选|港片蓝光原盘1--669部【16T】
|
||||
swz6s783fwo?password=8888 精选|纪录片合集_蓝光原盘
|
||||
swz6sin3fwo?password=8888 精选|泰剧【3.15T】
|
||||
swz6sih3fwo?password=8888 精选|音乐22万首14.39T音乐包2
|
||||
swz6siw3fwo?password=8888 精选|印度電子圖書館部分書籍(29萬12T左右)
|
||||
swz6sil3fwo?password=8888 精选|中美百万66万书籍的超大zip压缩版.ca66萬zip【8.7T】
|
||||
swz6sib3fwo?password=8888 精选|最强爽文短剧合集373部
|
||||
swz6gd93fwo?password=8888 精选|2267部2160p_remux_FGT【120T】
|
||||
swz6gml3fwo?password=8888 精选|动画电影1000部【9.7T】
|
||||
swz6gmc3fwo?password=8888 精选|综艺【4.75T】
|
||||
swz6ges3fwo?password=8888 精选|动漫原盘【40T】
|
||||
swz6gp53fwo?password=8888 精选|蓝光原盘_646T_合集
|
||||
swz692e3fwo?password=8888 精选|高清翡翠台_合集_(18.7tb)
|
||||
swz692x3fwo?password=8888 精选|TVB【7T】
|
||||
swz69un3fwo?password=8888 精选|TVB_ATV最强电视剧合集【650部73T】
|
||||
swzfv793fwo?password=8888 精选|【_BD-ISO_】】【2224TB】
|
||||
swzt3w43hc6?password=s922 精选|希腊神话改编影视
|
||||
swzt3w23hc6?password=z631 精选|尼古拉斯凯奇
|
||||
swzt3wi3hc6?password=gf96 精选|恐怖片
|
||||
swzt3fh3hc6?password=ia38 精选|全球丧尸电影百佳合集
|
||||
swnnsis3zx1?password=g0d1 精选|600t合集
|
||||
swzlcya3wsp?password=bab4 精选|1600t合集
|
||||
swz82uz33a3?password=x1e1 精选|踢馆秘籍
|
||||
swzkpip3ncb?password=5566 精选|【电影系列合集】4K
|
||||
swzkpij3ncb?password=5566 精选|【电影系列合集】AE制作全特效字幕
|
||||
swzkpix3ncb?password=5566 精选|【电影系列合集】最佳影片合集
|
||||
swzkpi23ncb?password=5566 精选|漫威电影合集
|
||||
swzkpiu3ncb?password=5566 精选|电影系列合集2
|
||||
swz939j3hz7?password=bcd5 日本动漫|奥特曼系列
|
||||
swzjuqj33dn?password=7777 日本动漫|火影忍者
|
||||
sw62c3o3z9p?password=s137 动漫|动画片_3.99T
|
||||
sw6upku3hqj?password=hc61 动漫|动漫394部_13.97T
|
||||
swznmd03nc7?password=p897 动漫|动漫原盘_40.49T
|
||||
sw6x8sj3zzo?password=v321 动漫|皮克斯动画合集4K_REMUX_975.83G
|
||||
sw3x2pd33zy?password=xzpq 动漫|小猪佩奇_21.95G
|
||||
swnd82q3zx1?password=ua89 动漫|奥特曼_1.1T
|
||||
sw3c8o83hgl?password=b5e6 魔戒六部曲_1.18T
|
||||
swzdt0w3nb4?password=f0a7 诺兰系列原盘访问码:d843
|
||||
swzdt933nb4?password=la51 姜文
|
||||
swny8y43z12?password=o932 NBA总决赛1991-2020_698.21G
|
||||
swzg31833xj?password=f3h5 2024欧洲杯
|
||||
sw6rt783hgh?password=ifd6 PPT素材模板_84.82G
|
|
@ -1,19 +0,0 @@
|
|||
self 我的123网盘 0
|
||||
Gme4Td-BW0Bd?pwd=evCv iso原盘|豆瓣top25
|
||||
Kliajv-TAWpd iso原盘|合集
|
||||
KASbTd-Yjjrv iso原盘|爱在三部曲
|
||||
IpPUVv-4cCj?pwd=dNQN iso原盘|浪客剑心合集
|
||||
IpPUVv-2INj?pwd=JMYP REMUX电影|诺兰合集
|
||||
TcMcTd-7YWJ?pwd=JMYP REMUX剧集|东京爱情故事
|
||||
IpPUVv-zFNj?pwd=JMYP REMUX剧集|纸牌屋
|
||||
TcMcTd-bYWJ?pwd=JMYP REMUX剧集|请回答1988
|
||||
IpPUVv-rJNj?pwd=JMYP REMUX剧集|黑道家族
|
||||
IpPUVv-5FNj?pwd=JMYP REMUX剧集|国土安全
|
||||
IpPUVv-jFNj?pwd=JMYP REMUX剧集|兄弟连
|
||||
IpPUVv-UgNj?pwd=JMYP REMUX剧集|行尸走肉系列官方版
|
||||
TcMcTd-aPWJ?pwd=JZMM REMUX剧集|重启人生
|
||||
Xrvgjv-ApMWA REMUX剧集|曼洛达人
|
||||
x2rdTd-1oSP3 成龙系列电影合集
|
||||
6Lv8Vv-i6kD3 REMUX电影|中南海保镖
|
||||
0pQSVv-OgQKd 动画电影合集
|
||||
0pQSVv-OXEKd 动画剧场版合集
|
|
@ -1,135 +0,0 @@
|
|||
self 我的189网盘 0
|
||||
uURbMvvmaQJ3 蓝光影剧合集[beAst]兽组十年站庆_3.52TB
|
||||
YRBrquFFnQr2 海绵电影iso|周星驰蓝光原盘46部
|
||||
fQBzQrz2m2am 海绵电影iso|成龙65部
|
||||
mMzuMnMJ3yUr 海绵电影iso|星际旅行1-10
|
||||
ZziMbij67jui 海绵电影iso|死亡笔记.真人版1-4
|
||||
MzQzE32Irqei 海绵电影iso|死亡笔记.真人版1-4
|
||||
MJjimuZzemqi 海绵电影iso|致命弯道1-7
|
||||
FV7J3a7JvyM3 海绵电影iso|十一罗汉+十二罗汉+十三罗汉
|
||||
BzieyyuIR7ne 海绵电影iso|白蛇1-3
|
||||
RZjuYjRZFzAj 海绵电影iso|冰川时代1-5
|
||||
euaqAreaUb2u 海绵电影iso|虎胆龙威1-5
|
||||
VFfYryfQzABb 海绵电影iso|电锯惊魂1-9
|
||||
IRRJRfaAj6be 海绵电影iso|指环王1-3||
|
||||
INZBFzRVBRzy 海绵电影iso|指环王1-3|2
|
||||
ZJnmAjNj2ymu 海绵电影iso|指环王1-3|3
|
||||
AZ3If2MZbiui 海绵电影iso|致命武器1-4|1
|
||||
jQzuaeqyUjm2 海绵电影iso|致命武器1-4|2
|
||||
VJVBF3qUria2 海绵电影iso|致命武器1-4|3
|
||||
eA7NzamQFzEn 海绵电影iso|致命武器1-4|4
|
||||
J3Qra2qyMF7z 海绵电影iso|机器战警1-3|1
|
||||
2URjUn2quqY3 海绵电影iso|机器战警1-3|2
|
||||
VVrAfurUjIZj 海绵电影iso|机器战警1-3|3
|
||||
MRVnuaqyQFv2 海绵电影iso|死亡飞车1-4
|
||||
UFF3euEzQNfe 海绵电影iso|王家卫|东邪西毒
|
||||
eMJv6vim6N32 海绵电影iso|王家卫|2046
|
||||
fyiMBrm2QfM3 海绵电影iso|王家卫|阿飞正传
|
||||
Vj63UvjQbYbu 海绵电影iso|王家卫|堕落天使
|
||||
2qA3IbRR7vmq 海绵电影iso|王家卫|重亲森林
|
||||
mAJria7Nv2qi 海绵电影iso|王家卫|春光乍泄
|
||||
ANb6Jb3IJJ7r 海绵电影iso|王家卫|旺角卡门
|
||||
6jErE3IVjMjm 海绵电影iso|王家卫|花样年华
|
||||
3INZJreQnMre 海绵电影iso|王家卫|一代宗师
|
||||
2yQ3qiFZFzAb?pwd=bzp0 4KHDR电影总合集1
|
||||
RvmY7ruMRNfm?pwd=8y5e 4KHDR电影总合集2
|
||||
VNFbEfmee26v?pwd=83ir 4KHDR电影总合集3
|
||||
A3yu2avyyyua?pwd=7c7f 4KHDR电影总合集5
|
||||
UjqeEziEjqMn?pwd=u26b 4KHDR电影总合集9
|
||||
Uj6fia2iqq6v?pwd=7ty7 4KHDR电影总合集11
|
||||
AjuYbiqi2AJr 吉卜力工作室25部动漫合集
|
||||
uUr2qeqieQ3e 国内各大制片厂电影合集
|
||||
fuiaAfVfmuUz 四大名著合集
|
||||
ZJZVz2fu2uEj?pwd=in91 漫威宇宙合集
|
||||
ZvqQryJ73QJf 加勒比海盗合集
|
||||
eeUnuuaYb22e 生化危机合集
|
||||
RJZr6b2e6BV3 海绵演唱会iso|滨崎步|2014巡回演唱会
|
||||
vei6zaiQjQFf 海绵演唱会iso|滨崎步|出道21周年
|
||||
VvyYNjRbIJju 海绵演唱会iso|滨崎步|午夜马戏团2015
|
||||
fuqY3uZZZJJz 海绵演唱会iso|滨崎步|2016
|
||||
6j2INfQbAfQr 海绵演唱会iso|滨崎步|2012巡回演唱会
|
||||
qyiYRrjqeAja 海绵演唱会iso|滨崎步|2009巡回演唱会
|
||||
m6bMb2niMfqu 海绵演唱会iso|滨崎步|2016日本巡回演唱会1
|
||||
q6NJzejYNBBv 海绵演唱会iso|滨崎步|2016日本巡回演唱会2
|
||||
RBRn6rvAriMr 海绵演唱会iso|滨崎步|2016日本巡回演唱会3
|
||||
yuYbai7fuMbe 海绵演唱会iso|滨崎步|AOne2015
|
||||
3muYfm2u6nye 海绵演唱会iso|滨崎步|CoLOURS2014
|
||||
EJFnYzmmimyu 海绵演唱会iso|滨崎步|出道15周年
|
||||
ZrmIvqZ36jEj 海绵演唱会iso|滨崎步|2008-2009信念倒计时演唱会
|
||||
QVnea2FfaEfm 海绵演唱会iso|滨崎步|2009-2010跨年演唱会
|
||||
yE7ZZrVB3MZv 海绵演唱会iso|滨崎步|2011迷你专辑
|
||||
77vEzm7bqUBb 海绵演唱会iso|滨崎步|摇滚马戏团2010
|
||||
FFj2Uf7za6nu 海绵演唱会iso|许巍|2015此时此刻演唱会LIVE纪录辑
|
||||
Yveya2UBrE3y 海绵演唱会iso|王菲|2016幻梦一场
|
||||
YruMnybUFjai 海绵演唱会iso|张震岳|2014破浪演唱会
|
||||
6JVviyJrYNru 海绵演唱会iso|周杰伦|2010超时代世界巡回演唱会
|
||||
eUjEF3MRbeum 海绵演唱会iso|周杰伦|2013-3015魔天伦世界巡回演唱会
|
||||
RNJn6fA7zEje 海绵演唱会iso|周杰伦|2016地表最强巡回演唱会
|
||||
3AVbIn2UJJR3 海绵演唱会iso|蔡依林|2015play世界巡回演唱会
|
||||
vMNBJjiYRFrq 海绵演唱会iso|刘德华|2007完美世界香港红馆
|
||||
fUZNnimA7vmi 海绵演唱会iso|刘德华|2010震撼红馆跨年演唱会
|
||||
euyuI3AvIZZj 海绵演唱会iso|张学友|2010私人角落迷你音乐会
|
||||
yM3UvqnQfeqq 海绵演唱会iso|张学友|二分之一
|
||||
6nyE73zuEvue 海绵演唱会iso|张学友|2018醒着做梦
|
||||
EVjyIf7byy6v 海绵演唱会iso|张学友|光年世界巡回演唱会07香港站
|
||||
ZnQFnanuUZBv 海绵演唱会iso|郭富城|2008舞林正传
|
||||
a6nmaajeaENn 海绵演唱会iso|郭富城|2013世界巡回香港站
|
||||
2aAnQznm63Iz 海绵演唱会iso|容祖儿|2010演唱会
|
||||
QjyMvqeEZfIn 海绵演唱会iso|容祖儿|2013演唱会
|
||||
N7NFJ3EJzIJj 海绵演唱会iso|容祖儿|2017演唱会1
|
||||
jUZr6rYBrmeq 海绵演唱会iso|容祖儿|2017演唱会2
|
||||
JJBvU3bEJRjy 海绵演唱会iso|容祖儿|2015演唱会
|
||||
rYnyIjr2mu2m 海绵演唱会iso|容祖儿|2015演唱会
|
||||
riUz6jV3E32y 海绵演唱会iso|容祖儿|2009黄金十年
|
||||
auiEn22Mfa6r 海绵演唱会iso|周慧敏|2018出道30周年演唱会
|
||||
77r6jmEbEf2u 海绵演唱会iso|周慧敏|2018出道30周年演唱会
|
||||
IFzMBvAFvEbu 海绵演唱会iso|周慧敏|2011出道25周年演唱会
|
||||
bMbMRb73qui2 海绵演唱会iso|郑秀文|Gig演唱会
|
||||
N7J77jNZ7nEv 海绵演唱会iso|郑秀文|2015演唱会
|
||||
QruEjmvqAzie 海绵演唱会iso|郑秀文|2016演唱会
|
||||
JvuMRzZRFr6n 海绵演唱会iso|郑秀文|2007演唱会
|
||||
B7rQfmimuERf 海绵演唱会iso|郑秀文|2009世界巡回香港站
|
||||
UbI7Znr2MJNj 海绵演唱会iso|郑秀文|2019世界巡回演唱会4k
|
||||
aQf6raIFNfye 海绵演唱会iso|叶倩文|2012完全是你演唱会
|
||||
UVnQvq3InMb2 海绵演唱会iso|许志安|2015演唱会
|
||||
iEJNzaIf6Rfe 海绵演唱会iso|许志安|2011红磡25周年
|
||||
bYB7BfzAJFz2 海绵演唱会iso|林峯|2016演唱会1
|
||||
3Qj2uyveEvq2 海绵演唱会iso|林峯|2016演唱会2
|
||||
6JNVBvFVfmIn 海绵演唱会iso|李克勤||2005-2006演奏厅1
|
||||
73AZFbZRvARb 海绵演唱会iso|李克勤|2005-2006演奏厅2
|
||||
uuM7raZfA732 海绵演唱会iso|久石让|武道馆
|
||||
Azmei2vmyaea 海绵演唱会iso|陈洁仪X赵增熹
|
||||
6NzqaqbEvqam 海绵演唱会iso|陈洁丽
|
||||
VZBbEvAFnm22 海绵演唱会iso|罗志祥|2014极限拼图
|
||||
bq6732JjqQF3 海绵演唱会iso|苏打绿|2015故事未了
|
||||
BriA73jIzmM3 海绵演唱会iso|苏打绿|2013当我们一起走过演唱会
|
||||
MryIRnURjuQn 海绵演唱会iso|林子祥|40周年演唱会2016
|
||||
FbeaeeuqmuMn 海绵演唱会iso|林子祥|2013林子祥&赵增熹演唱会
|
||||
uYnqIneI7Z7z 海绵演唱会iso|林子祥|2010音乐会
|
||||
VNjyMnzA3uQj 海绵演唱会iso|张敬轩|2011交响音乐会
|
||||
auEBzaeeyEji 海绵演唱会iso|张敬轩|2009音乐会
|
||||
f2AjEjZVnqYv 海绵演唱会iso|张敬轩|2008演唱会
|
||||
niu63iAjEzya 海绵演唱会iso|田馥甄|2017演唱会
|
||||
YfI3MzvYBJ3u 海绵演唱会iso|2013宝丽金群星永恒金曲
|
||||
BfUBNnRJN7fa 海绵演唱会iso|2012浮想联翩群星追忆张国荣演唱会
|
||||
36BV7ruauiUf 海绵演唱会iso|周华健|2015世界巡回台北站
|
||||
qE32yy2UJFja 海绵演唱会iso|温拿乐队|2016演唱会1
|
||||
yMJvmuNVVFFf 海绵演唱会iso|温拿乐队|2016演唱会2
|
||||
3IBjInVNz6ji 海绵演唱会iso|张信哲|2016还爱光年演唱会
|
||||
naEn2qq6NzYz 海绵演唱会iso|谭咏麟&杜丽莎
|
||||
ZJ3ue2Z3QbYr 海绵演唱会iso|邓紫棋|2013世界巡回演唱会
|
||||
iu2uem2A3IFj 海绵演唱会iso|邓紫棋|红馆演唱会2011
|
||||
IFBNVv7biU7z 海绵演唱会iso|李知恩|2019巡回演唱会1
|
||||
U3YBzmInUfyy 海绵演唱会iso|李知恩|2019巡回演唱会2
|
||||
zmMvmiMZj2Az 海绵演唱会iso|林俊杰|实验专辑-和自己对话录音纪实
|
||||
mQzqIvbeUV7n 海绵演唱会iso|卫兰
|
||||
UjUzmemM3aay 海绵演唱会iso|巫启贤
|
||||
aEvMzeJVBBBr 海绵演唱会iso|林宥嘉|神游世界巡回演唱会
|
||||
mamE7bZBFjuy 海绵演唱会iso|宝儿|2022出道20周年
|
||||
e2Ajae6JriIz 海绵演唱会iso|宋祖英|台北小巨蛋
|
||||
n63INvQbmqua 海绵演唱会iso|宋祖英|肯尼迪演唱会
|
||||
IFjQJzBJNB7f 海绵演唱会iso|宋祖英|北京鸟巢演唱会
|
||||
rMB3Y3jiUzyi 海绵演唱会iso|侧田|2011演唱会
|
||||
QJziQnZRFzAf 海绵演唱会iso|侧田|2015世界巡回
|
||||
mE3EFnIB3Iza 海绵演唱会iso|泳儿|2015音乐会
|
||||
NZVraevMnABb 音乐MV合集
|
|
@ -1 +0,0 @@
|
|||
app\controllers\$$$noproxy$$$1$$$http:Controller控制器不存在
|
|
@ -1,77 +0,0 @@
|
|||
zAajGfX1cxE 中信出版图书 1
|
||||
kgCYrLpLgiZ 机械工业出版社6000册 1
|
||||
EmhjMiwBrNj 清华大学出版社2237册 1
|
||||
3XEmnpcKYwd 新知文库 1
|
||||
XpsFL9BcCbN 北京国家图书馆 1
|
||||
BPkNEszAXjr 一万本图书馆PDF 1
|
||||
STfm58hKPBu 湖湘文库 1
|
||||
LZvTLPW8fbF 亲子教育
|
||||
gfsRY67BRcb 历史传记
|
||||
vbULbViB6jg 婚恋两性
|
||||
nk24tt7C2nt 婚恋家庭
|
||||
nk24tt7C2nt 婚恋家庭
|
||||
LYHR2C7oGrN 官场商战
|
||||
h3qDZvSNJaH 影视时尚
|
||||
1Wq86hBek8P 心理励志
|
||||
erF8fL1E9SR 思想文化
|
||||
qzBiRPyuKCU 恐怖悬疑
|
||||
5b6xedKYxDB 推理侦探
|
||||
5Do3YzWGsdT 文学名著
|
||||
h8nj4ZxEhTV 旅游休闲
|
||||
W8uEmn2UEm4 武侠仙侠
|
||||
C6FdSeriQAg 武侠小说
|
||||
Q2Uyg5yXCTp 漫画绘本
|
||||
4CP6kP21RE1 玄幻奇幻
|
||||
AbmTF4S9R2u 玄幻小说
|
||||
S2r9Q7dofdw 社科经典
|
||||
Tkz17pPJ54n 科幻小说
|
||||
ZCma3m8tkqu 综合书籍
|
||||
PJc6BcfuRwn 美容养生
|
||||
1vp4gtVqHVV 职场理财
|
||||
TMXRKiUGzMe 青春校园
|
||||
vEdkxEJocnb 科教类
|
||||
AM8mtK1botT 平台类
|
||||
NkKQg1a7qM9 小说类
|
||||
1th3c74q1cu 漫画类
|
||||
auNq9mXGJ8N 新书类
|
||||
xPX311pWQP8 杂志类
|
||||
43sAoXEduDZ 我的小书屋01
|
||||
Rj2xnX7GLUW 我的小书屋02
|
||||
XMbjpWzN4Jj 我的小书屋03
|
||||
V69EqCbMHST 我的小书屋04
|
||||
zpRyQG5Sykg 我的小书屋05
|
||||
6TZTQve3haL 我的小书屋06
|
||||
FsWBsXLDyMn 全球推理小说大集合 1
|
||||
D9fe45j1eHa ePUBee整站电子书库01
|
||||
ct8cPiYpscj ePUBee整站电子书库02
|
||||
a9rZPQKHfDu ePUBee整站电子书库03
|
||||
h45mCPUZc3E ePUBee整站电子书库04
|
||||
bhDAK42pnSU ePUBee整站电子书库05
|
||||
jdPrqXLaXBU ePUBee整站电子书库06
|
||||
3exRgUFUPrv ePUBee整站电子书库07
|
||||
AMY3umXHQrH ePUBee整站电子书库08
|
||||
16ryTfdGrAP ePUBee整站电子书库09
|
||||
5W8EsnTsCRN ePUBee整站电子书库10
|
||||
D72AZeTnTVL ePUBee整站电子书库11
|
||||
Z4SyuRZZj8Z ePUBee整站电子书库12
|
||||
xMCNaJvx7tk ePUBee整站电子书库13
|
||||
MK7LwGqokKF ePUBee整站电子书库14
|
||||
p9Lnskk2e2L ePUBee整站电子书库15
|
||||
pKEdszFRn2v ePUBee整站电子书库16
|
||||
7fKJ3VC7yWg ePUBee整站电子书库17
|
||||
QXMJVQzPJzG ePUBee整站电子书库18
|
||||
eTbXLxV5HZ3 ePUBee整站电子书库19
|
||||
wvdQyRer63P ePUBee整站电子书库20
|
||||
LrLMDHopskR ePUBee整站电子书库21
|
||||
jr4xL8NvHW9 ePUBee整站电子书库22
|
||||
5tPVRsXdBk4 ePUBee整站电子书库23
|
||||
iMBCRc32UNM ePUBee整站电子书库24
|
||||
S8NodisNHcU ePUBee整站电子书库25
|
||||
4TRTbyZrKki ePUBee整站电子书库26
|
||||
iYZMj7CFPks 广东省立中山图书馆「A-G」
|
||||
unEV8t3QfTc 广东省立中山图书馆「H-K」
|
||||
uT7hzi7CnvP 广东省立中山图书馆「L-N」
|
||||
U2fcieUVKuY 广东省立中山图书馆「O-Q」
|
||||
h3s9tXNJxQK 广东省立中山图书馆「R-T」
|
||||
SXZ17uS7oju 广东省立中山图书馆「U-X」
|
||||
GwnQxogFss3 广东省立中山图书馆「Y-Z」
|
|
@ -1,21 +0,0 @@
|
|||
self 我的阿里云盘
|
||||
cdqCsAWD9wC?pwd=6666 Tacit0924-总合集 1 updated_at DESC
|
||||
ZHNChQfiPfk 杜比视界电影
|
||||
e27BPgDwxeA 4KREMUX电影
|
||||
XUH7r6BZuML 老K分享|电影1剧集1
|
||||
qZ4f1i2EFW2 老K分享|电影2剧集2
|
||||
ohJ68NV7iFw 老K分享|高清美剧10G一集
|
||||
4ydLxf7VgH7 平凡中的 1
|
||||
gf2GebXnZHh 诺兰全集 1
|
||||
dieULBdYP3D YYDSVIP|YYDSVIP 1
|
||||
UuHi9PeYSVz YYDSVIP|YYDSVip-综艺
|
||||
v9To3HC6vhs YYDSVIP|YYDSVip-综合
|
||||
uWa9gbM3RJ7 优源阁-资源总合集 1
|
||||
ftMhRaKUfYp 掌灯者|港剧
|
||||
MLWPRHRt9W3 掌灯者|台剧
|
||||
8Fg4TNsd2A2 掌灯者|大陆剧1
|
||||
ar8Kg9azw1S 掌灯者|大陆剧2
|
||||
GMYSz3AHFaA 掌灯者|大陆剧3
|
||||
cmy3KCTRpFA 合集|李连杰电影合集
|
||||
hMsDJ6dsGxQ 合集|成龙电影合集
|
||||
fSNHaYST47s 合集|纪录片合集2
|
|
@ -1,15 +0,0 @@
|
|||
https://www.alipan.com/s/self 我的阿里云盘
|
||||
https://pan.quark.cn/s/self 我的夸克云盘
|
||||
https://drive.uc.cn/s/self 我的UC云盘
|
||||
https://115.com/s/self 我的115云盘
|
||||
https://www.123pan.com/s/self 我的123云盘
|
||||
https://cloud.189.cn/s/self 我的189云盘
|
||||
https://pan.xunlei.com/s/self 我的迅雷云盘
|
||||
https://mypikpak.com/s/self 我的PikPak云盘
|
||||
https://docs.qq.com/sheet/DVXp5Q2dRTVRXb2VS?tab=ith4wt 阿里云资源每天更新
|
||||
https://docs.qq.com/sheet/DVHpJVmRhT3ViV09Q?tab=ppx5bp 资源大全3
|
||||
https://docs.qq.com/sheet/DVHpJVmRhT3ViV09Q?tab=qvnx1e 星火阿里云盘
|
||||
https://docs.qq.com/sheet/DVXFYSURJRG9qbWJi?tab=BB08J2 短剧更新1
|
||||
https://docs.qq.com/sheet/DVXFYSURJRG9qbWJi?tab=x5a2cy 短剧更新2
|
||||
magnet:?xt=urn:btih:448aa6f77f1c1a14eb233b1f06b614a8d3193c51 绝命毒师1-5季 pushset1
|
||||
magnet:?xt=urn:btih:6EF000064DC6402E00E65F3B2029226196CD55C1 权力的游戏第八季 pushset2
|
|
@ -1,8 +0,0 @@
|
|||
self 我的夸克网盘
|
||||
885fd4ba2d92 每日短剧更新
|
||||
432b5cd3a225 短剧162g
|
||||
c54a8e47f82f 短剧114g
|
||||
047991d5955e 经典剧集
|
||||
ecdf7d6ffaaa 经典港剧合集1
|
||||
187062318ebc 经典港剧合集2
|
||||
9ebb62b93194 2023-2024跨年晚会合集
|
|
@ -1,15 +0,0 @@
|
|||
self 我的迅雷雲盤
|
||||
VNg6eg34ncoRGHp98SBeYRUmA1?pwd=ywp2 刘德华高清电影电视剧全集
|
||||
VNg6YRPKiFWtWRrEfTcmpo4nA1?pwd=3dk6 李连杰电影合集
|
||||
VNg6af5Yu4IVpCplLZEXpTCHA1?pwd=e3tk 周星驰电影合集
|
||||
VNg6ZDjEu4IVpCplLZEXovZMA1?pwd=i83r 成龙电影合集
|
||||
VNg6aYN6S67q560x6uBmiTxGA1?pwd=vcff 金庸武侠作品电视剧版合集
|
||||
VNgOl6jLwFWEAL3PSyCmyc9vA1?pwd=z3jn 邵氏电影合集中文字幕
|
||||
VNfYsaHU3GXpR3Wc6X2vLDRXA1?pwd=k327 1962-2015[欧美][动作][007系列4K][24部][409GB]
|
||||
VNgOliKdkJeHX8To1KuRhkabA1?pwd=8dfq 中国大陆老电影合集
|
||||
VNgOnbo2VGbPDhR48Bgvh0GMA1?pwd=n59u TVB香港电视剧
|
||||
VNgOkmDE9KxEdCnfuqBq-nh6A1?pwd=nr2b 豆瓣top电影合集
|
||||
VNfGhoL9ptGD3gtENXxflDZ6A1?pwd=4a3t 5TB精选迅雷云盘资源
|
||||
VNgOlIg5E5iq61_VnPABvO3BA1?pwd=bxix 港台大陆三级影片
|
||||
VNg9Y19oPimZP2d2xRhFUkQ6A1?pwd=nr2c 中国电视剧合集
|
||||
VNjwyIJVrUPzmOwSA07z6EP1A1?pwd=a84q 抖音短剧合集
|
|
@ -1,13 +0,0 @@
|
|||
self 我的UC网盘
|
||||
10b31a7c5f844 资源分享
|
||||
42e08284433b4?pwd=NZQb 影视ziyuan每日更新
|
||||
c0503fdee6644 2024最新精整豆瓣TOP250部
|
||||
391b86c09cd24 2023日剧
|
||||
21f04a22052f4 2023韩剧
|
||||
369e30038dae4 音乐
|
||||
5e0c900955654 完美世界
|
||||
d695231313ba4 沧元图-东宁府番外篇(2024)
|
||||
db80b739256e4 诛仙2
|
||||
cdbc974cf3c14 斗罗大陆2-绝世唐门4K
|
||||
714a0d7f921b4 七夕之国-2024
|
||||
9cca54e72e7e4 遮天4K
|
88
小米/api.json
88
小米/api.json
|
@ -1,18 +1,17 @@
|
|||
{
|
||||
|
||||
"spider": "./spider.jar",
|
||||
"wallpaper": "https://t.alcy.cc/fj",
|
||||
"sites": [
|
||||
{
|
||||
"key": "豆豆",
|
||||
"name": "🌈豆瓣┃请测试完删除处理 由于公益资金压力米UC已经合并至至臻",
|
||||
"name": "🌈豆瓣┃请测试完删除处理",
|
||||
"type": 3,
|
||||
"api": "csp_DoubanGuard",
|
||||
"searchable": 0
|
||||
},
|
||||
{
|
||||
"key": "config",
|
||||
"name": "⚙云盘┃配置中心 0414修复UC 存在起播慢的问题 ",
|
||||
"name": "⚙云盘┃配置中心 0426大幅度优化 弹幕 夸克飞VIP5G以下可直飞",
|
||||
"type": 3,
|
||||
"api": "csp_ConfigGuard",
|
||||
"searchable": 0
|
||||
|
@ -30,15 +29,40 @@
|
|||
"https://mihdr.top",
|
||||
"https://www.mihdr.top",
|
||||
"http://www.miqk.cc",
|
||||
"https://www.zhizhenpan.fun/"
|
||||
"https://www.zhizhenpan.fun"
|
||||
],
|
||||
"url_key": "Netfixtv",
|
||||
"token": "",
|
||||
"ucCookie": "",
|
||||
"quarkCookie": "",
|
||||
"threadinfo": {
|
||||
"chunksize": 400,
|
||||
"threads": 12
|
||||
"chunksize": 512,
|
||||
"threads": 16
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "csp_Netfixtv2",
|
||||
"name": "🐂二小┃4K弹幕",
|
||||
"type": 3,
|
||||
"changeable": "0",
|
||||
"quickSearch": 1,
|
||||
"api": "csp_DuopanGuard",
|
||||
"filterable": 1,
|
||||
"ext": {
|
||||
"site_urls": [
|
||||
"https://www.erixaopan.fun",
|
||||
"http://erixaopan.fun/",
|
||||
"https://erxiaofn.click/",
|
||||
"https://www.xhww.net/"
|
||||
],
|
||||
"url_key": "",
|
||||
"token": "",
|
||||
"ucCookie": "",
|
||||
"quarkCookie": "",
|
||||
"threadinfo": {
|
||||
"chunksize": 512,
|
||||
"threads": 16
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -50,7 +74,7 @@
|
|||
"changeable": "0",
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"ext": "Yu2Y3Q8tqDTqZ+GCqfQZz8i/vsP/tl9O+/0ZjpgnBg9L+drzR5a6bo7DML9hTEHvIuMN0JxvcbUflFgvOz4etZ9cUsZ0b7NskUhkBZr0Id8jSF6uh2VLWSCg2CtmH5o1TtTNh7M3/ltwQq//Spr2kX7vyJVyHNYbVu/LbyQCphXA69Yz8WjqVrK0GsjL+Ik3h6CQSeUSxVsmsygbTWfjFq5Wq6CYigSEVi1MJIiKNCS5cp8Ghq15UINDOnFKRERcz89eu5dSsR9aQX6BVNMdZLwSzxdX+4hT32MaBORYsrm3FFWArSTQdgO0XpnwCxoXyrlOZZA6ewEqkwuIgoDjFOeQEB0B1XkA9COGXhBBN/U253mGVMtzwHTCzpHTSk5MFVpkfjoyaDWZG1SEKMnp7afikfGkM3rn+Vw7Rp3VaPow/4r9kBYdtOiANxRr3/xPWxJdwx8M3BYw8xIlENODkJxzIlYel5FzLMKsR7ZrsZA="
|
||||
"ext": "Yu2Y3Q8tqDTqZ+GCqfQZz8i/vsP/tl9O+/0ZjpgnBg9L+drzR5a6bo7DML9hTEHvIuMN0JxvcbUflFgvOz4etZ9cUsZ0b7NskUhkBZr0Id9PbDIgsZ9ekl9fNeS9q4Xipo9oU6Q5Q6atElwpmoHUGKPqBr5XvHEJiNqliypf3Ch+p8IfjaEUxnG3XYlNxjw3ciN36BLBmKbludBzyfsiGmglc5Hdmw/3KJo9M6OCUspScOAuOhnQIPCiP6a6PFuOOxS+7z5Z/FV0k3Ee9fQIVuwE7nNgRUFWRinsDSuhPjKBd/SrLfu0rxSNOfsukdYXkcvGadhMos8qXcpGJVZVLXOfgqfJkyrlbFa8XJWQ9m9bDjfSOZbHqtC5kNkxfArWP9v2MC2jUcC4cEXk8ANYyYBMcAfo/zIpXdTsEBNC3nyXfAz+PVcPD00bRb2eSgBaNi7EShnmcFJ07jecOaWoCcXiVUOJ6GEJa9G11HhGW4g="
|
||||
},
|
||||
{
|
||||
"key": "csp_Bili",
|
||||
|
@ -82,7 +106,8 @@
|
|||
"key": "csp_LivingGuard",
|
||||
"name": "⛹️♀️平台┃娱乐",
|
||||
"type": 3,
|
||||
"api": "csp_LivingGuard"
|
||||
"api": "csp_LivingGuard",
|
||||
"ext": "https://lemonlive25.pages.dev/"
|
||||
},
|
||||
{
|
||||
"key": "天天",
|
||||
|
@ -115,6 +140,20 @@
|
|||
"api": "csp_AppGetGuard",
|
||||
"ext": "sHR2rlsfjI4L3t4RXQMkn/SuTAP3sPRQGBWuLvcmqKyisRVD3dX3O6Gp6eI50QK/b1ljvOYBDl+JqRwVQfcUQSM8vrh+mlBcTrvwF+gVaAWsvNW8jQQZf0K3/I/qJXQPUWmGE4fM0JKlDhFBVtEDYzfWMzOu40lTr/+guo8bJ6smivOCC7uQ2MArjDOj/vOScvoWqmIM2eesFSyClC/Qp9bCMZd4OOyCoe9MTI3RaBZE/IObZ0dMZZ6JgS5S5yal"
|
||||
},
|
||||
{
|
||||
"key": "彼岸",
|
||||
"name": "🏖比岸┃1080P",
|
||||
"type": 3,
|
||||
"api": "csp_AppGetGuard",
|
||||
"ext": "sHR2rlsfjI4L3t4RXQMkn0ZmfVTKTXBPRcz0emJNw7ofdKrXcYSsYxd+Wx33O1guTCJnhWT9y6xEgCyBMIw94CLlNGtq6BJEkOVCq9ttOaO9qtIDqVoKWaP64OiREdtupLxA0J7QhaW/aVzqLTYtiBkkFECFOVZMtS4js16Zy5VuzNx7tiA9XJkfVM7fTrZdcY2aXPM6zXmgejmIvi3mUw=="
|
||||
},
|
||||
{
|
||||
"key": "再看",
|
||||
"name": "🔭再看┃1080P",
|
||||
"type": 3,
|
||||
"api": "csp_AppGetGuard",
|
||||
"ext": "sHR2rlsfjI4L3t4RXQMknz+i4ffRorIRZjjcJiBr38z7bvJQDA/gj8tVTCLdlHvgssqNDyUkkSbMM+DLFI84xCpUE24hJxHHQxh/6e5bg7jQ0uWTdELk4IH4xxKtfyyKWbccPYruj7hX+lPSpaWNjk1ibLuC4+KKQSKp68VHdSOka6yGYqgO2DLVooXxfsgtQ79Hg5Uc8KtD5/Oa6cAfcQ=="
|
||||
},
|
||||
{
|
||||
"key": "csp_Lgyy",
|
||||
"name": "⏳️️流光┃1080P",
|
||||
|
@ -123,11 +162,11 @@
|
|||
"api": "csp_FreeOkGuard"
|
||||
},
|
||||
{
|
||||
"key": "二三",
|
||||
"name": "🐕二三┃1080P",
|
||||
"key": "牛牛",
|
||||
"name": "🐂牛牛┃1080P",
|
||||
"type": 3,
|
||||
"api": "csp_AppMuouGuard",
|
||||
"ext": "sHR2rlsfjI4L3t4RXQMkn0a7cyj8hTgLGQDyWjFZkT61hGmE5R18ZhLMJJlIIHRp5ExOKgi452hnp8FuUY7LSxZQx7OJfbrcekZ9lorJy3crZXSce0hF8VSymV7+1QsLatyYXT/qCdOJ+V/ONvC8Qp4D3mMHMGs8t9j29y+1Zu2WCQDG7MkiImMiWgydsFhy"
|
||||
"api": "./api/mioaying.py",
|
||||
"ext": ""
|
||||
},
|
||||
{
|
||||
"key": "光速",
|
||||
|
@ -160,14 +199,6 @@
|
|||
"api": "csp_AppGetGuard",
|
||||
"ext": "sHR2rlsfjI4L3t4RXQMkn0xaBCNcSQUCvczzn7zWpJd7PJ5uE10QNLrWWS17wAYgUMrJ+kztENaDom6MWpmmvbZdw38U+pT14qEwywuRW7eny/HInm+UXxpCyI8e5D7Y4kc2n0QBkeQ2Tk5Y0atLMuupC2ZGF68+oMVeX0Px9e9ODSiSspzQH/Rg1Sz5CHp0GKozVTjPIZHhO159i7A1HwZ+kk77Eh0E7AnBTt6qVBX5G+murD+CKjMLYo6MMmsE"
|
||||
},
|
||||
{
|
||||
"key": "奇妙",
|
||||
"name": "♟奇妙┃1080P",
|
||||
"type": 3,
|
||||
"quickSearch": 1,
|
||||
"api": "csp_AppGetGuard",
|
||||
"ext": "sHR2rlsfjI4L3t4RXQMknxpI3MBzuaDrH2PsBQxC38op5hYp0OZbDn4iJ615slmjVd+iI7Tl5Ue0Vm2GojmSTYMGSFh2aRBmEOKQ0locA9dvNXmz6vCgBlpFeFm/CQ3n1ep2SM+/awX6EoPD8V5c70mEnJDaI5kqnSlhF/wZJ/r0iCysTPux83KtOhToHnBg/VshjW3X7hDXcrKCadFsFw=="
|
||||
},
|
||||
{
|
||||
"key": "享趣",
|
||||
"name": "🔎享趣┃1080P",
|
||||
|
@ -233,14 +264,12 @@
|
|||
"api": "csp_LkdyGuard"
|
||||
},
|
||||
{
|
||||
"key": "巧技",
|
||||
"name": "🚗搜索┃1080P",
|
||||
"key": "追忆",
|
||||
"name": "✴星光┃1080P",
|
||||
"type": 3,
|
||||
"api": "csp_qiao2",
|
||||
"quickSearch": 1,
|
||||
"playerType": 2,
|
||||
"jar": "./jars/巧技.jar",
|
||||
"ext": "./txt/cksp.txt"
|
||||
"quickSearch": 0,
|
||||
"api": "csp_AppMiToGuard",
|
||||
"ext": "or8dey6pioFw+XxkF2wS/RAzk3DzRGdI670hdzQc+Mikgjqjk9TLUbAA9F0iudN1/EXY443m7GHk8GjSrx5HqSIJwhkFw/xSNAD7EWUrLDF6HohBg/KuqjTeaDuMIXz7cBXwt1KPJLptozlzoIMYeWIXu6G0zPvUHi/rxqkaq6IWp1t9tTKX7JnqKU/XhyNt"
|
||||
},
|
||||
{
|
||||
"key": "csp_MiSou",
|
||||
|
@ -248,8 +277,7 @@
|
|||
"type": 3,
|
||||
"quickSearch": 1,
|
||||
"changeable": "0",
|
||||
"api": "csp_XiaoYiGuard",
|
||||
"ext": ""
|
||||
"api": "csp_MiSouGuard"
|
||||
},
|
||||
{
|
||||
"key": "听书",
|
||||
|
@ -291,7 +319,7 @@
|
|||
"url": "影视"
|
||||
},
|
||||
{
|
||||
"name": "巧技三",
|
||||
"name": "牛牛2",
|
||||
"type": 1,
|
||||
"url": "https://zy.qiaoji8.com/xiafan.php?url=",
|
||||
"ext": {
|
||||
|
|
|
@ -0,0 +1,224 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# by @嗷呜
|
||||
import json
|
||||
import random
|
||||
import sys
|
||||
from base64 import b64encode, b64decode
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
sys.path.append('..')
|
||||
from base.spider import Spider
|
||||
|
||||
class Spider(Spider):
|
||||
|
||||
def init(self, extend=""):
|
||||
did=self.getdid()
|
||||
self.headers.update({'deviceId': did})
|
||||
token=self.gettk()
|
||||
self.headers.update({'token': token})
|
||||
pass
|
||||
|
||||
def getName(self):
|
||||
pass
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
pass
|
||||
|
||||
def manualVideoCheck(self):
|
||||
pass
|
||||
|
||||
def destroy(self):
|
||||
pass
|
||||
|
||||
host='http://zero.mitotv.com'
|
||||
|
||||
headers = {
|
||||
'User-Agent': 'okhttp/4.12.0',
|
||||
'client': 'app',
|
||||
'deviceType': 'Android'
|
||||
}
|
||||
|
||||
def homeContent(self, filter):
|
||||
data=self.post(f"{self.host}/api/v1/app/screen/screenType", headers=self.headers).json()
|
||||
result = {}
|
||||
cate = {
|
||||
"类型": "classify",
|
||||
"地区": "region",
|
||||
"年份": "year"
|
||||
}
|
||||
sort={
|
||||
'key':'sreecnTypeEnum',
|
||||
'name': '排序',
|
||||
'value':[{'n':'人气','v':'POPULARITY'},{'n':'评分','v':'COLLECT'},{'n':'热搜','v':'HOT'}]
|
||||
}
|
||||
classes = []
|
||||
filters = {}
|
||||
for k in data['data']:
|
||||
classes.append({
|
||||
'type_name': k['name'],
|
||||
'type_id': k['id']
|
||||
})
|
||||
filters[k['id']] = [
|
||||
{
|
||||
'name': v['name'],
|
||||
'key': cate[v['name']],
|
||||
'value': [
|
||||
{'n': i['name'], 'v': i['name']}
|
||||
for i in v['children']
|
||||
]
|
||||
}
|
||||
for v in k['children']
|
||||
]
|
||||
filters[k['id']].append(sort)
|
||||
result['class'] = classes
|
||||
result['filters'] = filters
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
jdata={"condition":64,"pageNum":1,"pageSize":40}
|
||||
data=self.post(f"{self.host}/api/v1/app/recommend/recommendSubList", headers=self.headers, json=jdata).json()
|
||||
return {'list':self.getlist(data['data']['records'])}
|
||||
|
||||
def categoryContent(self, tid, pg, filter, extend):
|
||||
jdata = {
|
||||
'condition': {
|
||||
'sreecnTypeEnum': 'NEWEST',
|
||||
'typeId': tid,
|
||||
},
|
||||
'pageNum': int(pg),
|
||||
'pageSize': 40,
|
||||
}
|
||||
jdata['condition'].update(extend)
|
||||
data = self.post(f"{self.host}/api/v1/app/screen/screenMovie", headers=self.headers, json=jdata).json()
|
||||
result = {}
|
||||
result['list'] = self.getlist(data['data']['records'])
|
||||
result['page'] = pg
|
||||
result['pagecount'] = 9999
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
return result
|
||||
|
||||
def detailContent(self, ids):
|
||||
ids = ids[0].split('@@')
|
||||
jdata = {"id": int(ids[0]), "typeId": ids[-1]}
|
||||
v = self.post(f"{self.host}/api/v1/app/play/movieDesc", headers=self.headers, json=jdata).json()
|
||||
v = v['data']
|
||||
vod = {
|
||||
'type_name': v.get('classify'),
|
||||
'vod_year': v.get('year'),
|
||||
'vod_area': v.get('area'),
|
||||
'vod_actor': v.get('star'),
|
||||
'vod_director': v.get('director'),
|
||||
'vod_content': v.get('introduce'),
|
||||
'vod_play_from': '',
|
||||
'vod_play_url': ''
|
||||
}
|
||||
c = self.post(f"{self.host}/api/v1/app/play/movieDetails", headers=self.headers, json=jdata).json()
|
||||
l = c['data']['moviePlayerList']
|
||||
n = {str(i['id']): i['moviePlayerName'] for i in l}
|
||||
m = jdata.copy()
|
||||
m.update({'playerId': str(l[0]['id'])})
|
||||
pd = self.getv(m, c['data']['episodeList'])
|
||||
if len(l)-1:
|
||||
with ThreadPoolExecutor(max_workers=len(l)-1) as executor:
|
||||
future_to_player = {executor.submit(self.getd, jdata, player): player for player in l[1:]}
|
||||
for future in future_to_player:
|
||||
try:
|
||||
o,p = future.result()
|
||||
pd.update(self.getv(o,p))
|
||||
except Exception as e:
|
||||
print(f"请求失败: {e}")
|
||||
w, e = [],[]
|
||||
for i, x in pd.items():
|
||||
if x:
|
||||
w.append(n[i])
|
||||
e.append(x)
|
||||
vod['vod_play_from'] = '$$$'.join(w)
|
||||
vod['vod_play_url'] = '$$$'.join(e)
|
||||
return {'list': [vod]}
|
||||
|
||||
def searchContent(self, key, quick, pg="1"):
|
||||
jdata={
|
||||
"condition": {
|
||||
"value": key
|
||||
},
|
||||
"pageNum": int(pg),
|
||||
"pageSize": 40
|
||||
}
|
||||
data=self.post(f"{self.host}/api/v1/app/search/searchMovie", headers=self.headers, json=jdata).json()
|
||||
return {'list':self.getlist(data['data']['records']),'page':pg}
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
jdata=json.loads(self.d64(id))
|
||||
data = self.post(f"{self.host}/api/v1/app/play/movieDetails", headers=self.headers, json=jdata).json()
|
||||
try:
|
||||
params={'playerUrl':data['data']['url'],'playerId':jdata['playerId']}
|
||||
pd=self.fetch(f"{self.host}/api/v1/app/play/analysisMovieUrl", headers=self.headers, params=params).json()
|
||||
url,p=pd['data'],0
|
||||
except Exception as e:
|
||||
print(f"请求失败: {e}")
|
||||
url,p=data['data']['url'],0
|
||||
return {'parse': p, 'url': url, 'header': {'User-Agent': 'okhttp/4.12.0'}}
|
||||
|
||||
def localProxy(self, param):
|
||||
pass
|
||||
|
||||
def liveContent(self, url):
|
||||
pass
|
||||
|
||||
def gettk(self):
|
||||
data=self.fetch(f"{self.host}/api/v1/app/user/visitorInfo", headers=self.headers).json()
|
||||
return data['data']['token']
|
||||
|
||||
def getdid(self):
|
||||
did=self.getCache('ldid')
|
||||
if not did:
|
||||
hex_chars = '0123456789abcdef'
|
||||
did =''.join(random.choice(hex_chars) for _ in range(16))
|
||||
self.setCache('ldid',did)
|
||||
return did
|
||||
|
||||
def getd(self,jdata,player):
|
||||
x = jdata.copy()
|
||||
x.update({'playerId': str(player['id'])})
|
||||
response = self.post(f"{self.host}/api/v1/app/play/movieDetails", headers=self.headers, json=x).json()
|
||||
return x, response['data']['episodeList']
|
||||
|
||||
def getv(self,d,c):
|
||||
f={d['playerId']:''}
|
||||
g=[]
|
||||
for i in c:
|
||||
j=d.copy()
|
||||
j.update({'episodeId':str(i['id'])})
|
||||
g.append(f"{i['episode']}${self.e64(json.dumps(j))}")
|
||||
f[d['playerId']]='#'.join(g)
|
||||
return f
|
||||
|
||||
def getlist(self,data):
|
||||
videos = []
|
||||
for i in data:
|
||||
videos.append({
|
||||
'vod_id': f"{i['id']}@@{i['typeId']}",
|
||||
'vod_name': i.get('name'),
|
||||
'vod_pic': i.get('cover'),
|
||||
'vod_year': i.get('year'),
|
||||
'vod_remarks': i.get('totalEpisode')
|
||||
})
|
||||
return videos
|
||||
|
||||
def e64(self, text):
|
||||
try:
|
||||
text_bytes = text.encode('utf-8')
|
||||
encoded_bytes = b64encode(text_bytes)
|
||||
return encoded_bytes.decode('utf-8')
|
||||
except Exception as e:
|
||||
print(f"Base64编码错误: {str(e)}")
|
||||
return ""
|
||||
|
||||
def d64(self,encoded_text):
|
||||
try:
|
||||
encoded_bytes = encoded_text.encode('utf-8')
|
||||
decoded_bytes = b64decode(encoded_bytes)
|
||||
return decoded_bytes.decode('utf-8')
|
||||
except Exception as e:
|
||||
print(f"Base64解码错误: {str(e)}")
|
||||
return ""
|
BIN
小米/jars/巧技.jar
BIN
小米/jars/巧技.jar
Binary file not shown.
File diff suppressed because it is too large
Load Diff
3438
小米/lives/平台直播.txt
3438
小米/lives/平台直播.txt
File diff suppressed because it is too large
Load Diff
BIN
小米/spider.jar
BIN
小米/spider.jar
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
aMpWZFkXFecm4hhqZ9yfzBd24WjHV7lEq0TzPXvh8brK9+zi6x5XIpulpwecy92meWuHIvZTeo5jkTch1cNoIHlBErZixB1hzpJ1I6ptPQgHxp+ZCoBpPPZ6UB/jpMssKHVA4QVqXt+zl01X/XSB1VCx0Bml5xCczSFbKCe2MEn0ucTkQtUs9f4dUYprXoFJCfGEIjUF1yOWCKQwUjTYWzMBoj7uWaxEcWfXnnvGvO0BhmEStZ4HOkEVKG7WeLB3Jw11tb61vHpyvDXduNSjYcRNxr8EO9YIgDQsWn4lTgqILnClSUFmjufNkI3IluT1qctR4IVWJPQ7Y7ANQ9kxKMIli2xJmwILFqIsK7kqKOXc3nezbMCS0I+epES9fHMPpczsQPcBfpQT1o485uRClN+dM83gcAn9z90ucIQOKUBbkfmQ+WnvKyApUyFe3aFBkTYj+rFSp1bleilRDoa+yIY05cpDyItqqccy8GBk+dgQ755CMY/VKN9vLlxdoUJMCWZB1FR8VhnW7RpbYc08DOpNChGqKJ6Cwy1qVM/jt61WR2x1VaKreS59j1IMuxDuEBdhlmt+QLsbSWD7blw0ji9AFHAZu3M31oN5D2feEgKZ5oPAiWjpKw7knBA/raonihUn1oE+0e1ILzgrm3uLwb0hpd6xeeRv0vYW2FDCoe3A=
|
|
@ -111,37 +111,9 @@
|
|||
"filterable": 1,
|
||||
"ext": "./json/影视解说.json"
|
||||
},
|
||||
{
|
||||
"key": "88js",
|
||||
"name": "⚽ 88┃看球",
|
||||
"type": 3,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"ext": "./js/88看球.js",
|
||||
"playerType": 1,
|
||||
"style": {
|
||||
"type": "list"
|
||||
},
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"changeable": 0
|
||||
},
|
||||
{
|
||||
"key": "Jrsjs",
|
||||
"name": "⚽ Jrs┃球迷",
|
||||
"type": 3,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"ext": "./js/jrk.js",
|
||||
"playerType": 1,
|
||||
"style": {
|
||||
"type": "list"
|
||||
},
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"changeable": 0
|
||||
},
|
||||
{
|
||||
"key": "js_310直播",
|
||||
"name": "🥎┃三一┃直播",
|
||||
"name": "🥎球赛直播",
|
||||
"type": 3,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"searchable": 1,
|
||||
|
|
Binary file not shown.
|
@ -1,61 +0,0 @@
|
|||
var rule = {
|
||||
title:'88看球',
|
||||
// host:'http://www.88kanqiu.cc',
|
||||
host:'http://www.88kanqiu.bar/',
|
||||
url: "/match/fyclass/live",
|
||||
searchUrl: "",
|
||||
searchable: 0,
|
||||
quickSearch: 0,
|
||||
class_parse: ".nav-pills li;a&&Text;a&&href;/match/(\\d+)/live",
|
||||
headers: {
|
||||
"User-Agent": "PC_UA",
|
||||
},
|
||||
timeout: 5000,
|
||||
play_parse: true,
|
||||
pagecount:{"1":1,"2":1,"4":1,"22":1,"8":1,"9":1,"10":1,"14":1,"15":1,"12":1,"13":1,"16":1,"28":1,"7":1,"11":1,"33":1,"27":1,"23":1,"26":1,"3":1,"21":1,"18":1},
|
||||
lazy: `js:
|
||||
if(/embed=/.test(input)) {
|
||||
let url = input.match(/embed=(.*?)&/)[1];
|
||||
url = base64Decode(url);
|
||||
input = {
|
||||
jx:0,
|
||||
url: url.split('#')[0],
|
||||
parse: 0
|
||||
}
|
||||
} else if (/\?url=/.test(input)){
|
||||
input = {
|
||||
jx:0,
|
||||
url: input.split('?url=')[1].split('#')[0],
|
||||
parse: 0
|
||||
}
|
||||
} else {
|
||||
input
|
||||
}
|
||||
`,
|
||||
limit: 6,
|
||||
double: false,
|
||||
推荐: "*",
|
||||
一级: ".list-group .group-game-item;.d-none&&Text;img&&src;.btn&&Text;a&&href",
|
||||
二级: {
|
||||
title: ".game-info-container&&Text;.customer-navbar-nav li&&Text",
|
||||
img: "img&&src",
|
||||
desc: ";;;div.team-name:eq(0)&&Text;div.team-name:eq(1)&&Text",
|
||||
content: "div.game-time&&Text",
|
||||
tabs: "js:TABS=['实时直播']",
|
||||
lists: `js:
|
||||
LISTS = [];
|
||||
let html = request(input.replace('play', 'play-url'));
|
||||
let pdata = JSON.parse(html).data;
|
||||
pdata = pdata.slice(6);
|
||||
pdata = pdata.slice(0, -2);
|
||||
pdata = base64Decode(pdata);
|
||||
// log(pdata);
|
||||
let jo = JSON.parse(pdata).links;
|
||||
let d = jo.map(function (it) {
|
||||
return it.name + '$' + urlencode(it.url)
|
||||
});
|
||||
LISTS.push(d)
|
||||
`,
|
||||
},
|
||||
搜索: "",
|
||||
};
|
|
@ -1,33 +0,0 @@
|
|||
var rule = {
|
||||
title:'JRKAN直播',
|
||||
host:'http://www.jrkan2022.com/?lan=1',
|
||||
// JRKAN备用域名:www.jrkankan.com / www.jrkan365.com / jrsyyds.com / www.jryyds.com / jrskan.com / jrsbxj.com /Jrkan备用域名1: www.jrkan2022.com 备用域名2: www.jrs23.com 备用域名2: www.jrskk.com 最新网址发布:www.qiumi1314.co
|
||||
|
||||
url:'/fyclass',
|
||||
searchUrl:'',
|
||||
searchable:0,
|
||||
quickSearch:0,
|
||||
class_name:'全部',
|
||||
class_url:'/',
|
||||
//class_url:'?live',
|
||||
headers:{
|
||||
'User-Agent':'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
play_parse:true,
|
||||
lazy:"",
|
||||
limit:6,
|
||||
double:false,
|
||||
推荐:'*',
|
||||
// 一级:'.loc_match:eq(2) ul;li:gt(1):lt(4)&&Text;img&&src;li:lt(2)&&Text;a:eq(1)&&href',//play.sportsteam333.com
|
||||
一级:"js:var items=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;var html=request(input);var tabs=pdfa(html,'body&&.d-touch');tabs.forEach(function(it){var pz=pdfh(it,'.name:eq(1)&&Text');var ps=pdfh(it,'.name:eq(0)&&Text');var pk=pdfh(it,'.name:eq(2)&&Text');var img=pd(it,'img&&src');var timer=pdfh(it,'.lab_time&&Text');var url=pd(it,'a.me&&href');items.push({desc:timer+'🏆'+ps,title:pz+'🆚'+pk,pic_url:img,url:url})});setResult(items);",
|
||||
二级:{
|
||||
"title":".sub_list li:lt(2)&&Text;.sub_list li:eq(0)&&Text",
|
||||
"img":"img&&src",
|
||||
"desc":";;;.lab_team_home&&Text;.lab_team_away&&Text",
|
||||
"content":".sub_list ul&&Text",
|
||||
"tabs":"js:TABS=['实时直播']",
|
||||
"lists":"js:LISTS=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;let html=request(input);let data=pdfa(html,'.sub_playlist&&a');TABS.forEach(function(tab){let d=data.map(function(it){let name=pdfh(it,'strong&&Text');let url=pd(it,'a&&data-play');return name+'$'+url});LISTS.push(d)});",
|
||||
},
|
||||
搜索:'',
|
||||
}
|
1029
戏曲音乐/json/演唱会.json
1029
戏曲音乐/json/演唱会.json
File diff suppressed because it is too large
Load Diff
BIN
戏曲音乐/spider.jar
BIN
戏曲音乐/spider.jar
Binary file not shown.
152
摸鱼儿/api.json
152
摸鱼儿/api.json
|
@ -31,7 +31,7 @@
|
|||
"quickSearch": 0,
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.610
|
||||
"ratio": 1.61
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -81,7 +81,7 @@
|
|||
},
|
||||
{
|
||||
"key": "UcXmV2",
|
||||
"name": "🍚小米资源┃4K弹幕",
|
||||
"name": "🐂小二资源┃4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebShare",
|
||||
"jar": "./jars/config.jar",
|
||||
|
@ -89,7 +89,7 @@
|
|||
"filterable": 0,
|
||||
"changeable": 0,
|
||||
"timeout": 60,
|
||||
"ext": "./json/xm.json?"
|
||||
"ext": "./json/ex.json?"
|
||||
},
|
||||
{
|
||||
"key": "QuarkLaBiV2",
|
||||
|
@ -171,7 +171,7 @@
|
|||
"key": "pan1",
|
||||
"name": "🧊Pan1网盘┃4K弹幕",
|
||||
"type": 3,
|
||||
"api": "csp_PanWebShareCloudHM",
|
||||
"api": "csp_PanWebShareCloud123",
|
||||
"jar": "./jars/config.jar",
|
||||
"searchable": 1,
|
||||
"filterable": 0,
|
||||
|
@ -212,9 +212,53 @@
|
|||
{
|
||||
"key": "金牌影视",
|
||||
"name": "🏅金牌┃蓝光┃无广",
|
||||
"type": 3,
|
||||
"api": "./api/金牌影视.py",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"playerType": 2,
|
||||
"ext": {
|
||||
"site": "https://www.hkybqufgh.com,https://www.sizhengxt.com,https://0996zp.com,https://9zhoukj.com/,https://www.sizhengxt.com,https://www.tjrongze.com,https://www.jiabaide.cn,https://cqzuoer.com"
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "菲儿影视",
|
||||
"name": "🥪菲菲┃蓝光┃无广",
|
||||
"jar": "./jars/config.jar",
|
||||
"type": 3,
|
||||
"api": "csp_Jpys"
|
||||
"api": "csp_AppFerr",
|
||||
"ext": "sHR2rlsfjI4L3t4RXQMkn/M3t4AXAKTrZj3tfhm1t/gMT3dOrHqIzUNqLUEOIDMvllTbX6e1hMhB2mfpOaCmHNOL1yBB3SmxNyqXlai90EIpdnwOOgCR9Z+YwCTj6ySjzJ2VBiH3eXeOGcavcNeVRA=="
|
||||
},
|
||||
{
|
||||
"key": "格格",
|
||||
"name": "🍲格格┃蓝光┃无广",
|
||||
"type": 3,
|
||||
"api": "csp_Xdai",
|
||||
"jar": "./jars/config.jar",
|
||||
"playerType": 2,
|
||||
"ext": "jaHR0cDovLzExMS4xODAuMTk4LjQwOjExMTAvYXBpLnBocHxhc2djeGhqa3RzMTI0NTczfGFzZ2N4aGprdHMxMjQ1NzN8MTE5"
|
||||
},
|
||||
{
|
||||
"key": "随客",
|
||||
"name": "🥯随客┃蓝光┃无广",
|
||||
"type": 3,
|
||||
"api": "csp_XBPQ",
|
||||
"ext": "http://我不是.摸鱼儿.com/api/moyu.php?file=随客"
|
||||
},
|
||||
{
|
||||
"key": "664K",
|
||||
"name": "🌀沐风┃蓝光┃无广",
|
||||
"type": 3,
|
||||
"api": "csp_XBPQ",
|
||||
"ext": "http://我不是.摸鱼儿.com/api/moyu.php?file=664k"
|
||||
},
|
||||
{
|
||||
"key": "4Kdy",
|
||||
"name": "🕊️凝安┃蓝光┃无广",
|
||||
"type": 3,
|
||||
"api": "csp_XBPQ",
|
||||
"ext": "http://我不是.摸鱼儿.com/api/moyu.php?file=4kdy"
|
||||
},
|
||||
{
|
||||
"key": "nk",
|
||||
|
@ -398,12 +442,11 @@
|
|||
"name": "📔厂长┃不卡┃纯净",
|
||||
"type": 3,
|
||||
"api": "csp_NewCzGuard",
|
||||
"timeout": 15,
|
||||
"timeout": 10,
|
||||
"playerType": 2,
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"changeable": 1,
|
||||
"ext": "https://www.czzyvideo.com/"
|
||||
"changeable": 1
|
||||
},
|
||||
{
|
||||
"key": "原创",
|
||||
|
@ -556,7 +599,7 @@
|
|||
"name": "🫐三六┃蓝光┃纯净",
|
||||
"type": 3,
|
||||
"api": "csp_Sp360",
|
||||
"jar": "./jars/config.jar"
|
||||
"jar": "./jars/三六零弹幕.jar"
|
||||
},
|
||||
{
|
||||
"key": "央视经典",
|
||||
|
@ -638,15 +681,26 @@
|
|||
"filterable": 0
|
||||
},
|
||||
{
|
||||
"key": "hmdj",
|
||||
"key": "河马短剧",
|
||||
"name": "🦛河马┃短剧┃热推",
|
||||
"type": 3,
|
||||
"api": "csp_AppHMDJ",
|
||||
"jar": "./jars/config.jar",
|
||||
"api": "./api/河马短剧.py",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"ext": "w7TCmsONw6LDrsKYwoXCosKcwqDCrcKawqDDosKnwqTCoMKjwrPCosKpw53Dr8KUwp7CmsKlw63Dp8Kow63DsFpcUFfDrcOcw6rCoMK0U1fCi+WGtemFoeaQmOWRncKl5Yem5L2K5ZCnauW+oeiov+i2t+a8iuetksOXWlxQV8Odw5jDncOrw7PCo8Kke8KVw7LCmsK0wpnCocKqwqXCqcKZwq/CqcKwwqDDtw=="
|
||||
"changeable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"playerType": 2
|
||||
},
|
||||
{
|
||||
"key": "偷乐短剧",
|
||||
"name": "🤣偷乐┃短剧┃热推",
|
||||
"type": 3,
|
||||
"api": "./api/偷乐短剧.py",
|
||||
"searchable": 1,
|
||||
"changeable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"playerType": 2
|
||||
},
|
||||
{
|
||||
"key": "去看吧",
|
||||
|
@ -690,67 +744,51 @@
|
|||
"ext": "w7TCmsK/w7HDrsKIwqLCnFfCs8KTwqHDocOuwqfCoGpfwqjCp8KxwqfCs2ZeYmHCrsKhwqvCrsKrYsKjwqPCpsOiw6PCqcOjw63CosKeX8Kow6LDmsOvw5rDkGVewprCo8Oow6HCocKlwppawqTCmcKgwqDCrcKawqDDleWGuOmEmOaPleWQk8Kl5Yef5L6R5ZGwwrTlvqTop7botbTmu4DnrZLDkMKhwqXCmlrClMKVwpPDq8Osw6rDrcOFwpjCqVdqwpnCmsOxw67Ds8KcZmZmwqDDsA=="
|
||||
},
|
||||
{
|
||||
"key": "bili",
|
||||
"name": "🩷哔哩┃娱乐┃蓝光",
|
||||
"type": 3,
|
||||
"api": "csp_AmuBiliV2",
|
||||
"jar": "./jars/config.jar",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"changeable": 0,
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.433
|
||||
},
|
||||
"ext": "./json/bili.json?"
|
||||
},
|
||||
{
|
||||
"key": "huya",
|
||||
"key": "虎牙直播js",
|
||||
"name": "🐯虎牙┃娱乐┃蓝光",
|
||||
"type": 3,
|
||||
"api": "csp_AmuHuYa",
|
||||
"jar": "./jars/config.jar",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"changeable": 0,
|
||||
"api": "./api/drpy2.js",
|
||||
"ext": "./js/huya2.js",
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.433
|
||||
"ratio": 1.755
|
||||
},
|
||||
"ext": "w7TCmsOfw7HDrlpqUFfDocOnw67DqcK0Yl9kZ8KnwqzCrcKnwqxkZV5hwq7CpMKpw6zDrcKpwpnCoF/Do8Omw6nDp8KpwpvCpcKpwpHCp8Odw63DqMOoWlxQV8K9w6LDp8Oaw6PCocKjV2rCmcOOwqHDocOuwqfCoMKjasKowqLDpsOew6fCosKewpzCmcOvw5jCqMOdw5/CocKfXsKUw57DqcKhwqXCmlrCmMKkwqTDqcOmwrTCqMKpwp/ClcKdwp/Dp8Ofw6PDr8OfaWZewpTDnsOhw6nCp8OewpjCpldcwpnCmsOiw63DrsKjwqNqX8Kow5/Dn8Omw6nCocKcwpnCpsOewqHDqsOaw6HCmMKjXsKUw57DqcKhw5bCplNXwpTClcOcw6XDs8Opw65+wpXCqVfCs8KTwqHDsMOvwqzCmWZmwq/CmsO3"
|
||||
"timeout": 10,
|
||||
"playerType": "2",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"changeable": 0
|
||||
},
|
||||
{
|
||||
"key": "douyu",
|
||||
"key": "斗鱼js",
|
||||
"name": "🐟斗鱼┃娱乐┃蓝光",
|
||||
"type": 3,
|
||||
"api": "csp_AmuDouYu",
|
||||
"jar": "./jars/config.jar",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"filterable": 0,
|
||||
"changeable": 0,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"ext": "./js/斗鱼直播.js",
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.433
|
||||
"ratio": 1.755
|
||||
},
|
||||
"ext": "w7TCmsOfw7HDrlpqUFfDocOnw67DqcK0Yl9kZ8KnwqzCrcKnwqxkZV5hwq7CpMKpw6zDrcKpwpnCoF/Do8Omw6nDp8KpwpfCn8KlwqnDrsKhw6TDrMOpwqFXXFDCoMK3w6nDpsObwpzCnsKjV8KzwpPDlcKgw6LCp8KkwqDCo8KzwqLCqcOlw5/CoMKfwp7CnMOiw6nDn8Knw57CmMKewp9ew53DmMOwwqDCplNXwpjCpMOtw6PDrcKzwqliwpzClcKdw6jDocOmw6LDsMKYZmZew53DmMOow6jCqMKXwpXCplfCpcKTwqHDocOuwqfCoMKjasKowqLDpsOew6fCosKewpzCmcOvw5jCqMOpw5vCmsKVwqNew53DmMOwwqDDl19QV8KUw57DlsOsw7LDqsKne8KVwqnCoMKtwprCoMOxwqjCqcKZZsKvwqnCocO2"
|
||||
"timeout": 10,
|
||||
"playerType": "2",
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"changeable": 0
|
||||
},
|
||||
{
|
||||
"key": "ly",
|
||||
"key": "有声小说js",
|
||||
"name": "📻️戏曲┃娱乐┃蓝光",
|
||||
"type": 3,
|
||||
"api": "csp_AppLY",
|
||||
"jar": "./jars/config.jar",
|
||||
"searchable": 1,
|
||||
"quickSearch": 0,
|
||||
"changeable": 0,
|
||||
"api": "./api/drpy2.min.js",
|
||||
"ext": "./js/有声小说吧.js",
|
||||
"style": {
|
||||
"type": "rect",
|
||||
"ratio": 1.433
|
||||
"ratio": 1
|
||||
},
|
||||
"ext": "w7TCmsOuw6LDqlpqUFfDlOWHuOmFouaQnuWRnV/lhpzkvYflkKfCs+W/pOipgOi2vea8iuesjMKNV1zCmcKaw57DnsOdwqXCqcKgwqTDhMOYw7PCoMK0U1fCp8Klw7LDnMKwwq/CsFrCrQ=="
|
||||
"timeout": 10,
|
||||
"searchable": 0,
|
||||
"quickSearch": 0,
|
||||
"changeable": 0
|
||||
},
|
||||
{
|
||||
"key": "Bili",
|
||||
|
|
|
@ -0,0 +1,304 @@
|
|||
if (typeof Object.assign != 'function') {
|
||||
Object.assign = function () {
|
||||
var target = arguments[0];
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = arguments[i];
|
||||
for (var key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return target;
|
||||
};
|
||||
}
|
||||
function getMubans() {
|
||||
var mubanDict = { // 模板字典
|
||||
mxpro: {
|
||||
title: '',
|
||||
host: '',
|
||||
// homeUrl:'/',
|
||||
url: '/vodshow/fyclass--------fypage---.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
// "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.module-info-tag&&Text",
|
||||
"img": ".lazyload&&data-original",
|
||||
"desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text",
|
||||
"content": ".module-info-introduction&&Text",
|
||||
"tabs": ".module-tab-item",
|
||||
"lists": ".module-play-list:eq(#id) a"
|
||||
},
|
||||
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
|
||||
},
|
||||
mxone5: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/show/fyclass--------fypage---.html',
|
||||
searchUrl: '/search/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.tag-link&&Text",
|
||||
"img": ".module-item-pic&&img&&data-src",
|
||||
"desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text",
|
||||
"content": ".vod_content&&Text",
|
||||
"tabs": ".module-tab-item",
|
||||
"lists": ".module-player-list:eq(#id)&&.scroll-content&&a"
|
||||
},
|
||||
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
|
||||
},
|
||||
首图: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---/',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
// "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
"title": ".myui-content__detail .title&&Text;.myui-content__detail p:eq(-2)&&Text",
|
||||
"img": ".myui-content__thumb .lazyload&&data-original",
|
||||
"desc": ".myui-content__detail p:eq(0)&&Text;.myui-content__detail p:eq(1)&&Text;.myui-content__detail p:eq(2)&&Text",
|
||||
"content": ".content&&Text",
|
||||
"tabs": ".nav-tabs:eq(0) li",
|
||||
"lists": ".myui-content__list:eq(#id) li"
|
||||
},
|
||||
搜索: '#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
},
|
||||
首图2: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/list/fyclass-fypage.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA',
|
||||
// "Cookie": ""
|
||||
},
|
||||
// class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
|
||||
class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
"title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text",
|
||||
"img": ".stui-content__thumb .lazyload&&data-original",
|
||||
"desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text",
|
||||
"content": ".detail&&Text",
|
||||
"tabs": ".stui-vodlist__head h3",
|
||||
"lists": ".stui-content__playlist:eq(#id) li"
|
||||
},
|
||||
搜索: 'ul.stui-vodlist__media:eq(0) li,ul.stui-vodlist:eq(0) li,#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
搜索1: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
搜索2: 'ul.stui-vodlist__media&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
},
|
||||
默认: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---.html',
|
||||
searchUrl: '/vodsearch/-------------.html?wd=**',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
},
|
||||
vfed: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA',
|
||||
},
|
||||
// class_parse:'.fed-pops-navbar&&ul.fed-part-rows&&a.fed-part-eone:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
|
||||
class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text",
|
||||
"img": ".fed-list-info&&a&&data-original",
|
||||
"desc": ".fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text",
|
||||
"content": ".fed-part-esan&&Text",
|
||||
"tabs": ".fed-drop-boxs&&.fed-part-rows&&li",
|
||||
"lists": ".fed-play-item:eq(#id)&&ul:eq(1)&&li"
|
||||
},
|
||||
搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
|
||||
},
|
||||
海螺3: {
|
||||
title: '',
|
||||
host: '',
|
||||
searchUrl: '/v_search/**----------fypage---.html',
|
||||
url: '/vod_____show/fyclass--------fypage---.html',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
|
||||
cate_exclude: '明星|专题|最新|排行',
|
||||
limit: 40,
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
double: true,
|
||||
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
二级: {
|
||||
"title": ".hl-infos-title&&Text;.hl-text-conch&&Text",
|
||||
"img": ".hl-lazy&&data-original",
|
||||
"desc": ".hl-infos-content&&.hl-text-conch&&Text",
|
||||
"content": ".hl-content-text&&Text",
|
||||
"tabs": ".hl-tabs&&a",
|
||||
"lists": ".hl-plays-list:eq(#id)&&li"
|
||||
},
|
||||
搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
},
|
||||
海螺2: {
|
||||
title: '',
|
||||
host: '',
|
||||
searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage/',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
|
||||
limit: 40,
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
|
||||
double: true,
|
||||
一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h2&&Text;.deployment&&Text",
|
||||
"img": ".lazy&&data-original",
|
||||
"desc": ".deployment&&Text",
|
||||
"content": ".ec-show&&Text",
|
||||
"tabs": "#tag&&a",
|
||||
"lists": ".play_list_box:eq(#id)&&li"
|
||||
},
|
||||
搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
},
|
||||
短视: {
|
||||
title: '',
|
||||
host: '',
|
||||
// homeUrl:'/',
|
||||
url: '/channel/fyclass-fypage.html',
|
||||
searchUrl: '/search.html?wd=**',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {//网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
// "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
|
||||
cate_exclude: '解析|动态',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.content-rt&&p:eq(0)&&Text",
|
||||
"img": ".img&&img&&data-src",
|
||||
"desc": ".content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text",
|
||||
"content": ".zkjj_a&&Text",
|
||||
"tabs": ".py-tabs&&option",
|
||||
"lists": ".player:eq(#id) li"
|
||||
},
|
||||
搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
|
||||
},
|
||||
短视2:{
|
||||
title: '',
|
||||
host: '',
|
||||
class_name:'电影&电视剧&综艺&动漫',
|
||||
class_url:'1&2&3&4',
|
||||
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
headers:{'User-Agent':'MOBILE_UA'},
|
||||
url: '/index.php/api/vod#type=fyclass&page=fypage',
|
||||
filterable:0,//是否启用分类筛选,
|
||||
filter_url:'',
|
||||
filter: {},
|
||||
filter_def:{},
|
||||
detailUrl:'/index.php/vod/detail/id/fyid.html',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐:'.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
|
||||
一级:'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
|
||||
二级:{
|
||||
"title":".slide-info-title&&Text;.slide-info:eq(3)--strong&&Text",
|
||||
"img":".detail-pic&&data-original",
|
||||
"desc":".fraction&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(2)--strong&&Text;.slide-info:eq(1)--strong&&Text",
|
||||
"content":"#height_limit&&Text",
|
||||
"tabs":".anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a",
|
||||
"tab_text":".swiper-slide&&Text",
|
||||
"lists":".anthology-list-box:eq(#id) li"
|
||||
},
|
||||
搜索:'json:list;name;pic;;id',
|
||||
}
|
||||
};
|
||||
return JSON.parse(JSON.stringify(mubanDict));
|
||||
}
|
||||
var mubanDict = getMubans();
|
||||
var muban = getMubans();
|
||||
export default {muban,getMubans};
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,790 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# 偷乐短剧爬虫
|
||||
|
||||
import sys
|
||||
import json
|
||||
import re
|
||||
import time
|
||||
import urllib.parse
|
||||
import requests
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
# 导入基础类
|
||||
sys.path.append('../../')
|
||||
try:
|
||||
from base.spider import Spider
|
||||
except ImportError:
|
||||
# 本地调试时的替代实现
|
||||
class Spider:
|
||||
def init(self, extend=""):
|
||||
pass
|
||||
|
||||
class Spider(Spider):
|
||||
def __init__(self):
|
||||
# 网站主URL
|
||||
self.siteUrl = "https://www.toule.top"
|
||||
|
||||
# 根据网站实际结构,分类链接格式为: /index.php/vod/show/class/分类名/id/1.html
|
||||
# 分类ID映射 - 从网站中提取的分类
|
||||
self.cateManual = {
|
||||
"男频": "/index.php/vod/show/class/%E7%94%B7%E9%A2%91/id/1.html",
|
||||
"女频": "/index.php/vod/show/class/%E5%A5%B3%E9%A2%91/id/1.html",
|
||||
"都市": "/index.php/vod/show/class/%E9%83%BD%E5%B8%82/id/1.html",
|
||||
"赘婿": "/index.php/vod/show/class/%E8%B5%98%E5%A9%BF/id/1.html",
|
||||
"战神": "/index.php/vod/show/class/%E6%88%98%E7%A5%9E/id/1.html",
|
||||
"古代言情": "/index.php/vod/show/class/%E5%8F%A4%E4%BB%A3%E8%A8%80%E6%83%85/id/1.html",
|
||||
"现代言情": "/index.php/vod/show/class/%E7%8E%B0%E4%BB%A3%E8%A8%80%E6%83%85/id/1.html",
|
||||
"历史": "/index.php/vod/show/class/%E5%8E%86%E5%8F%B2/id/1.html",
|
||||
"玄幻": "/index.php/vod/show/class/%E7%8E%84%E5%B9%BB/id/1.html",
|
||||
"搞笑": "/index.php/vod/show/class/%E6%90%9E%E7%AC%91/id/1.html",
|
||||
"甜宠": "/index.php/vod/show/class/%E7%94%9C%E5%AE%A0/id/1.html",
|
||||
"励志": "/index.php/vod/show/class/%E5%8A%B1%E5%BF%97/id/1.html",
|
||||
"逆袭": "/index.php/vod/show/class/%E9%80%86%E8%A2%AD/id/1.html",
|
||||
"穿越": "/index.php/vod/show/class/%E7%A9%BF%E8%B6%8A/id/1.html",
|
||||
"古装": "/index.php/vod/show/class/%E5%8F%A4%E8%A3%85/id/1.html"
|
||||
}
|
||||
|
||||
# 请求头
|
||||
self.headers = {
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
|
||||
"Referer": "https://www.toule.top/",
|
||||
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
|
||||
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
|
||||
"Accept-Encoding": "gzip, deflate, br",
|
||||
"Connection": "keep-alive",
|
||||
}
|
||||
|
||||
|
||||
# 缓存
|
||||
self.cache = {}
|
||||
self.cache_timeout = {}
|
||||
|
||||
def getName(self):
|
||||
return "偷乐短剧"
|
||||
|
||||
def init(self, extend=""):
|
||||
# 初始化方法,可以留空
|
||||
return
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
"""判断是否为视频格式"""
|
||||
video_formats = ['.mp4', '.m3u8', '.ts', '.flv', '.avi', '.mkv', '.mov', '.rmvb', '.3gp']
|
||||
for format in video_formats:
|
||||
if format in url.lower():
|
||||
return True
|
||||
return False
|
||||
|
||||
def manualVideoCheck(self):
|
||||
"""是否需要手动检查视频"""
|
||||
return False
|
||||
|
||||
# 工具方法 - 网络请求
|
||||
def fetch(self, url, headers=None, data=None, method="GET"):
|
||||
"""统一的网络请求方法"""
|
||||
try:
|
||||
if headers is None:
|
||||
headers = self.headers.copy()
|
||||
|
||||
if method.upper() == "GET":
|
||||
response = requests.get(url, headers=headers, params=data, timeout=10,verify=False)
|
||||
else: # POST
|
||||
response = requests.post(url, headers=headers, data=data, timeout=10,verify=False)
|
||||
|
||||
response.raise_for_status()
|
||||
response.encoding = response.apparent_encoding or 'utf-8'
|
||||
return response
|
||||
except Exception as e:
|
||||
self.log(f"请求失败: {url}, 错误: {str(e)}", "ERROR")
|
||||
return None
|
||||
|
||||
# 缓存方法
|
||||
def getCache(self, key, timeout=3600):
|
||||
"""获取缓存数据"""
|
||||
if key in self.cache and key in self.cache_timeout:
|
||||
if time.time() < self.cache_timeout[key]:
|
||||
return self.cache[key]
|
||||
else:
|
||||
del self.cache[key]
|
||||
del self.cache_timeout[key]
|
||||
return None
|
||||
|
||||
def setCache(self, key, value, timeout=3600):
|
||||
"""设置缓存数据"""
|
||||
self.cache[key] = value
|
||||
self.cache_timeout[key] = time.time() + timeout
|
||||
|
||||
# 日志方法
|
||||
def log(self, msg, level='INFO'):
|
||||
"""记录日志"""
|
||||
levels = {
|
||||
'DEBUG': 0,
|
||||
'INFO': 1,
|
||||
'WARNING': 2,
|
||||
'ERROR': 3
|
||||
}
|
||||
|
||||
current_level = 'INFO' # 可以设置为DEBUG以获取更多信息
|
||||
|
||||
if levels.get(level, 4) >= levels.get(current_level, 1):
|
||||
print(f"[{level}] {time.strftime('%Y-%m-%d %H:%M:%S')} - {msg}")
|
||||
|
||||
# 辅助方法 - 从URL中提取视频ID
|
||||
def extractVodId(self, url):
|
||||
"""从URL中提取视频ID"""
|
||||
# 路径格式: /index.php/vod/play/id/9024/sid/1/nid/1.html
|
||||
match = re.search(r'/id/(\d+)/', url)
|
||||
if match:
|
||||
return match.group(1)
|
||||
return ""
|
||||
|
||||
# 辅助方法 - 从网页内容中提取分类
|
||||
def extractCategories(self, text):
|
||||
"""从网页内容中提取分类标签"""
|
||||
cats = []
|
||||
# 匹配标签字符串,例如: "男频,逆袭,亲情,短剧"
|
||||
if "," in text:
|
||||
parts = text.split(",")
|
||||
for part in parts:
|
||||
part = part.strip()
|
||||
if part and part != "短剧":
|
||||
cats.append(part)
|
||||
return cats
|
||||
|
||||
# 主要接口实现
|
||||
def homeContent(self, filter):
|
||||
"""获取首页分类及内容"""
|
||||
result = {}
|
||||
classes = []
|
||||
|
||||
# 从缓存获取
|
||||
cache_key = 'home_classes'
|
||||
cached_classes = self.getCache(cache_key)
|
||||
if cached_classes:
|
||||
classes = cached_classes
|
||||
else:
|
||||
# 使用预定义的分类
|
||||
for k, v in self.cateManual.items():
|
||||
classes.append({
|
||||
'type_id': v, # 使用完整URL路径作为type_id
|
||||
'type_name': k
|
||||
})
|
||||
|
||||
# 保存到缓存
|
||||
self.setCache(cache_key, classes, 24*3600) # 缓存24小时
|
||||
|
||||
result['class'] = classes
|
||||
|
||||
# 获取首页推荐视频
|
||||
videos = self.homeVideoContent().get('list', [])
|
||||
result['list'] = videos
|
||||
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
"""获取首页推荐视频内容"""
|
||||
result = {'list': []}
|
||||
videos = []
|
||||
|
||||
# 从缓存获取
|
||||
cache_key = 'home_videos'
|
||||
cached_videos = self.getCache(cache_key)
|
||||
if cached_videos:
|
||||
return {'list': cached_videos}
|
||||
|
||||
try:
|
||||
response = self.fetch(self.siteUrl)
|
||||
if response and response.status_code == 200:
|
||||
html = response.text
|
||||
soup = BeautifulSoup(html, 'html.parser')
|
||||
|
||||
# 查找最新更新区域
|
||||
latest_section = soup.find('h2', text=lambda t: t and '最新更新' in t)
|
||||
if latest_section:
|
||||
container = latest_section.parent # 获取容器
|
||||
if container:
|
||||
# 查找所有 li.item 元素
|
||||
items = container.find_all('li', class_='item')
|
||||
|
||||
for item in items:
|
||||
try:
|
||||
# 获取链接和标题
|
||||
title_link = item.find('h3')
|
||||
if not title_link:
|
||||
continue
|
||||
|
||||
title = title_link.text.strip()
|
||||
|
||||
# 获取第一个链接作为详情页链接
|
||||
link_tag = item.find('a')
|
||||
if not link_tag:
|
||||
continue
|
||||
|
||||
link = link_tag.get('href', '')
|
||||
if not link.startswith('http'):
|
||||
link = urllib.parse.urljoin(self.siteUrl, link)
|
||||
|
||||
# 提取ID
|
||||
vid = self.extractVodId(link)
|
||||
if not vid:
|
||||
continue
|
||||
|
||||
# 获取图片
|
||||
img_tag = item.find('img')
|
||||
img_url = ""
|
||||
if img_tag:
|
||||
img_url = img_tag.get('src', img_tag.get('data-src', ''))
|
||||
if img_url and not img_url.startswith('http'):
|
||||
img_url = urllib.parse.urljoin(self.siteUrl, img_url)
|
||||
|
||||
# 获取备注信息
|
||||
remarks = ""
|
||||
remarks_tag = item.find('span', class_='remarks')
|
||||
if remarks_tag:
|
||||
remarks = remarks_tag.text.strip()
|
||||
|
||||
# 获取标签信息
|
||||
tags = ""
|
||||
tags_tag = item.find('span', class_='tags')
|
||||
if tags_tag:
|
||||
tags = tags_tag.text.strip()
|
||||
|
||||
# 合并备注和标签
|
||||
if remarks and tags:
|
||||
remarks = f"{remarks} | {tags}"
|
||||
elif tags:
|
||||
remarks = tags
|
||||
|
||||
# 构建视频项
|
||||
videos.append({
|
||||
'vod_id': vid,
|
||||
'vod_name': title,
|
||||
'vod_pic': img_url,
|
||||
'vod_remarks': remarks
|
||||
})
|
||||
except Exception as e:
|
||||
self.log(f"处理视频项时出错: {str(e)}", "ERROR")
|
||||
continue
|
||||
|
||||
# 保存到缓存
|
||||
self.setCache(cache_key, videos, 3600) # 缓存1小时
|
||||
except Exception as e:
|
||||
self.log(f"获取首页视频内容发生错误: {str(e)}", "ERROR")
|
||||
|
||||
result['list'] = videos
|
||||
return result
|
||||
|
||||
def categoryContent(self, tid, pg, filter, extend):
|
||||
"""获取分类内容"""
|
||||
result = {}
|
||||
videos = []
|
||||
|
||||
# 处理页码
|
||||
if pg is None:
|
||||
pg = 1
|
||||
else:
|
||||
pg = int(pg)
|
||||
|
||||
# 构建分类URL - tid是完整的URL路径
|
||||
if tid.startswith("/"):
|
||||
# 替换页码,URL格式可能像: /index.php/vod/show/class/男频/id/1.html
|
||||
if pg > 1:
|
||||
if "html" in tid:
|
||||
category_url = tid.replace(".html", f"/page/{pg}.html")
|
||||
else:
|
||||
category_url = f"{tid}/page/{pg}.html"
|
||||
else:
|
||||
category_url = tid
|
||||
|
||||
full_url = urllib.parse.urljoin(self.siteUrl, category_url)
|
||||
else:
|
||||
# 如果tid不是URL路径,可能是旧版分类ID,尝试查找对应URL
|
||||
category_url = ""
|
||||
for name, url in self.cateManual.items():
|
||||
if name == tid:
|
||||
category_url = url
|
||||
break
|
||||
|
||||
if not category_url:
|
||||
self.log(f"未找到分类ID对应的URL: {tid}", "ERROR")
|
||||
result['list'] = []
|
||||
result['page'] = pg
|
||||
result['pagecount'] = 1
|
||||
result['limit'] = 0
|
||||
result['total'] = 0
|
||||
return result
|
||||
|
||||
# 处理页码
|
||||
if pg > 1:
|
||||
if "html" in category_url:
|
||||
category_url = category_url.replace(".html", f"/page/{pg}.html")
|
||||
else:
|
||||
category_url = f"{category_url}/page/{pg}.html"
|
||||
|
||||
full_url = urllib.parse.urljoin(self.siteUrl, category_url)
|
||||
|
||||
# 请求分类页
|
||||
try:
|
||||
response = self.fetch(full_url)
|
||||
if response and response.status_code == 200:
|
||||
html = response.text
|
||||
soup = BeautifulSoup(html, 'html.parser')
|
||||
|
||||
# 查找视频项,根据实际HTML结构调整
|
||||
items = soup.find_all('li', class_='item')
|
||||
|
||||
for item in items:
|
||||
try:
|
||||
# 获取链接和标题
|
||||
title_tag = item.find('h3')
|
||||
if not title_tag:
|
||||
continue
|
||||
|
||||
title = title_tag.text.strip()
|
||||
|
||||
# 获取链接
|
||||
link_tag = item.find('a')
|
||||
if not link_tag:
|
||||
continue
|
||||
|
||||
link = link_tag.get('href', '')
|
||||
if not link.startswith('http'):
|
||||
link = urllib.parse.urljoin(self.siteUrl, link)
|
||||
|
||||
# 提取ID
|
||||
vid = self.extractVodId(link)
|
||||
if not vid:
|
||||
continue
|
||||
|
||||
# 获取图片
|
||||
img_tag = item.find('img')
|
||||
img_url = ""
|
||||
if img_tag:
|
||||
img_url = img_tag.get('src', img_tag.get('data-src', ''))
|
||||
if img_url and not img_url.startswith('http'):
|
||||
img_url = urllib.parse.urljoin(self.siteUrl, img_url)
|
||||
|
||||
# 获取备注信息
|
||||
remarks = ""
|
||||
remarks_tag = item.find('span', class_='remarks')
|
||||
if remarks_tag:
|
||||
remarks = remarks_tag.text.strip()
|
||||
|
||||
# 获取标签信息
|
||||
tags = ""
|
||||
tags_tag = item.find('span', class_='tags')
|
||||
if tags_tag:
|
||||
tags = tags_tag.text.strip()
|
||||
|
||||
# 合并备注和标签
|
||||
if remarks and tags:
|
||||
remarks = f"{remarks} | {tags}"
|
||||
elif tags:
|
||||
remarks = tags
|
||||
|
||||
# 构建视频项
|
||||
videos.append({
|
||||
'vod_id': vid,
|
||||
'vod_name': title,
|
||||
'vod_pic': img_url,
|
||||
'vod_remarks': remarks
|
||||
})
|
||||
except Exception as e:
|
||||
self.log(f"处理分类视频项时出错: {str(e)}", "ERROR")
|
||||
continue
|
||||
|
||||
# 查找分页信息
|
||||
# 默认值
|
||||
total = len(videos)
|
||||
pagecount = 1
|
||||
limit = 20
|
||||
|
||||
# 尝试查找分页元素
|
||||
pagination = soup.find('ul', class_='page')
|
||||
if pagination:
|
||||
# 查找最后一页的链接
|
||||
last_page_links = pagination.find_all('a')
|
||||
for link in last_page_links:
|
||||
page_text = link.text.strip()
|
||||
if page_text.isdigit():
|
||||
pagecount = max(pagecount, int(page_text))
|
||||
except Exception as e:
|
||||
self.log(f"获取分类内容发生错误: {str(e)}", "ERROR")
|
||||
|
||||
result['list'] = videos
|
||||
result['page'] = pg
|
||||
result['pagecount'] = pagecount
|
||||
result['limit'] = limit
|
||||
result['total'] = total
|
||||
|
||||
return result
|
||||
|
||||
def detailContent(self, ids):
|
||||
"""获取详情内容"""
|
||||
result = {}
|
||||
|
||||
if not ids or len(ids) == 0:
|
||||
return result
|
||||
|
||||
# 视频ID
|
||||
vid = ids[0]
|
||||
|
||||
# 构建播放页URL
|
||||
play_url = f"{self.siteUrl}/index.php/vod/play/id/{vid}/sid/1/nid/1.html"
|
||||
|
||||
try:
|
||||
response = self.fetch(play_url)
|
||||
if not response or response.status_code != 200:
|
||||
return result
|
||||
|
||||
html = response.text
|
||||
soup = BeautifulSoup(html, 'html.parser')
|
||||
|
||||
# 提取视频基本信息
|
||||
# 标题
|
||||
title = ""
|
||||
title_tag = soup.find('h1', class_='items-title')
|
||||
if title_tag:
|
||||
title = title_tag.text.strip()
|
||||
|
||||
# 图片
|
||||
pic = ""
|
||||
pic_tag = soup.find('img', class_='thumb')
|
||||
if pic_tag:
|
||||
pic = pic_tag.get('src', '')
|
||||
if pic and not pic.startswith('http'):
|
||||
pic = urllib.parse.urljoin(self.siteUrl, pic)
|
||||
|
||||
# 简介
|
||||
desc = ""
|
||||
desc_tag = soup.find('div', class_='text-content')
|
||||
if desc_tag:
|
||||
desc = desc_tag.text.strip()
|
||||
|
||||
# 标签/分类
|
||||
tags = []
|
||||
tags_container = soup.find('span', class_='items-tags')
|
||||
if tags_container:
|
||||
tag_links = tags_container.find_all('a')
|
||||
for tag in tag_links:
|
||||
tag_text = tag.text.strip()
|
||||
if tag_text:
|
||||
tags.append(tag_text)
|
||||
|
||||
# 提取播放列表
|
||||
play_from = "偷乐短剧"
|
||||
play_list = []
|
||||
|
||||
# 查找播放列表区域
|
||||
play_area = soup.find('div', class_='swiper-wrapper')
|
||||
if play_area:
|
||||
# 查找所有剧集链接
|
||||
episode_links = play_area.find_all('a')
|
||||
for ep in episode_links:
|
||||
ep_title = ep.text.strip()
|
||||
ep_url = ep.get('href', '')
|
||||
|
||||
if ep_url:
|
||||
# 直接使用URL作为ID
|
||||
if not ep_url.startswith('http'):
|
||||
ep_url = urllib.parse.urljoin(self.siteUrl, ep_url)
|
||||
|
||||
# 提取集数信息
|
||||
ep_num = ep_title
|
||||
if ep_num.isdigit():
|
||||
ep_num = f"第{ep_num}集"
|
||||
|
||||
play_list.append(f"{ep_num}${ep_url}")
|
||||
|
||||
# 如果没有找到播放列表,查找播放按钮
|
||||
if not play_list:
|
||||
play_btn = soup.find('a', class_='btn-play')
|
||||
if play_btn:
|
||||
play_url = play_btn.get('href', '')
|
||||
if play_url:
|
||||
if not play_url.startswith('http'):
|
||||
play_url = urllib.parse.urljoin(self.siteUrl, play_url)
|
||||
|
||||
play_list.append(f"播放${play_url}")
|
||||
|
||||
# 如果仍然没有找到播放链接,使用播放页URL
|
||||
if not play_list:
|
||||
play_url = f"{self.siteUrl}/index.php/vod/play/id/{vid}/sid/1/nid/1.html"
|
||||
play_list.append(f"播放${play_url}")
|
||||
|
||||
# 提取更多信息(导演、演员等)
|
||||
director = ""
|
||||
actor = ""
|
||||
year = ""
|
||||
area = ""
|
||||
remarks = ""
|
||||
|
||||
# 查找备注信息
|
||||
meta_items = soup.find_all('div', class_='meta-item')
|
||||
for item in meta_items:
|
||||
item_title = item.find('span', class_='item-title')
|
||||
item_content = item.find('span', class_='item-content')
|
||||
|
||||
if item_title and item_content:
|
||||
title_text = item_title.text.strip()
|
||||
content_text = item_content.text.strip()
|
||||
|
||||
if "导演" in title_text:
|
||||
director = content_text
|
||||
elif "主演" in title_text:
|
||||
actor = content_text
|
||||
elif "年份" in title_text:
|
||||
year = content_text
|
||||
elif "地区" in title_text:
|
||||
area = content_text
|
||||
elif "简介" in title_text:
|
||||
if not desc:
|
||||
desc = content_text
|
||||
elif "状态" in title_text:
|
||||
remarks = content_text
|
||||
|
||||
# 如果没有从meta-item中获取到remarks
|
||||
if not remarks:
|
||||
remarks_tag = soup.find('span', class_='remarks')
|
||||
if remarks_tag:
|
||||
remarks = remarks_tag.text.strip()
|
||||
|
||||
# 构建标准数据结构
|
||||
vod = {
|
||||
"vod_id": vid,
|
||||
"vod_name": title,
|
||||
"vod_pic": pic,
|
||||
"vod_year": year,
|
||||
"vod_area": area,
|
||||
"vod_remarks": remarks,
|
||||
"vod_actor": actor,
|
||||
"vod_director": director,
|
||||
"vod_content": desc,
|
||||
"type_name": ",".join(tags),
|
||||
"vod_play_from": play_from,
|
||||
"vod_play_url": "#".join(play_list)
|
||||
}
|
||||
|
||||
result = {
|
||||
'list': [vod]
|
||||
}
|
||||
except Exception as e:
|
||||
self.log(f"获取详情内容时出错: {str(e)}", "ERROR")
|
||||
|
||||
return result
|
||||
|
||||
def searchContent(self, key, quick, pg=1):
|
||||
"""搜索功能"""
|
||||
result = {}
|
||||
videos = []
|
||||
|
||||
# 构建搜索URL和参数
|
||||
search_url = f"{self.siteUrl}/index.php/vod/search.html"
|
||||
params = {"wd": key}
|
||||
|
||||
try:
|
||||
response = self.fetch(search_url, data=params)
|
||||
if response and response.status_code == 200:
|
||||
html = response.text
|
||||
soup = BeautifulSoup(html, 'html.parser')
|
||||
|
||||
# 查找搜索结果项
|
||||
search_items = soup.find_all('li', class_='item')
|
||||
|
||||
for item in search_items:
|
||||
try:
|
||||
# 获取标题
|
||||
title_tag = item.find('h3')
|
||||
if not title_tag:
|
||||
continue
|
||||
|
||||
title = title_tag.text.strip()
|
||||
|
||||
# 获取链接
|
||||
link_tag = item.find('a')
|
||||
if not link_tag:
|
||||
continue
|
||||
|
||||
link = link_tag.get('href', '')
|
||||
if not link.startswith('http'):
|
||||
link = urllib.parse.urljoin(self.siteUrl, link)
|
||||
|
||||
# 提取视频ID
|
||||
vid = self.extractVodId(link)
|
||||
if not vid:
|
||||
continue
|
||||
|
||||
# 获取图片
|
||||
img_tag = item.find('img')
|
||||
img_url = ""
|
||||
if img_tag:
|
||||
img_url = img_tag.get('src', img_tag.get('data-src', ''))
|
||||
if img_url and not img_url.startswith('http'):
|
||||
img_url = urllib.parse.urljoin(self.siteUrl, img_url)
|
||||
|
||||
# 获取备注信息
|
||||
remarks = ""
|
||||
remarks_tag = item.find('span', class_='remarks')
|
||||
if remarks_tag:
|
||||
remarks = remarks_tag.text.strip()
|
||||
|
||||
# 获取标签信息
|
||||
tags = ""
|
||||
tags_tag = item.find('span', class_='tags')
|
||||
if tags_tag:
|
||||
tags = tags_tag.text.strip()
|
||||
|
||||
# 合并备注和标签
|
||||
if remarks and tags:
|
||||
remarks = f"{remarks} | {tags}"
|
||||
elif tags:
|
||||
remarks = tags
|
||||
|
||||
# 构建视频项
|
||||
videos.append({
|
||||
'vod_id': vid,
|
||||
'vod_name': title,
|
||||
'vod_pic': img_url,
|
||||
'vod_remarks': remarks
|
||||
})
|
||||
except Exception as e:
|
||||
self.log(f"处理搜索结果时出错: {str(e)}", "ERROR")
|
||||
continue
|
||||
except Exception as e:
|
||||
self.log(f"搜索功能发生错误: {str(e)}", "ERROR")
|
||||
|
||||
result['list'] = videos
|
||||
return result
|
||||
|
||||
def searchContentPage(self, key, quick, pg=1):
|
||||
return self.searchContent(key, quick, pg)
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
"""获取播放内容"""
|
||||
result = {}
|
||||
|
||||
try:
|
||||
# 判断是否已经是视频URL
|
||||
if self.isVideoFormat(id):
|
||||
result["parse"] = 0
|
||||
result["url"] = id
|
||||
result["playUrl"] = ""
|
||||
result["header"] = json.dumps(self.headers)
|
||||
return result
|
||||
|
||||
# 判断是否是完整的页面URL
|
||||
if id.startswith(('http://', 'https://')):
|
||||
play_url = id
|
||||
# 尝试作为相对路径处理
|
||||
elif id.startswith('/'):
|
||||
play_url = urllib.parse.urljoin(self.siteUrl, id)
|
||||
# 假设是视频ID,构建播放页面URL
|
||||
else:
|
||||
# 检查是否是"视频ID_集数"格式
|
||||
parts = id.split('_')
|
||||
if len(parts) > 1 and parts[0].isdigit():
|
||||
vid = parts[0]
|
||||
nid = parts[1]
|
||||
play_url = f"{self.siteUrl}/index.php/vod/play/id/{vid}/sid/1/nid/{nid}.html"
|
||||
else:
|
||||
# 直接当作视频ID处理
|
||||
play_url = f"{self.siteUrl}/index.php/vod/play/id/{id}/sid/1/nid/1.html"
|
||||
|
||||
# 访问播放页获取真实播放地址
|
||||
try:
|
||||
self.log(f"正在解析播放页面: {play_url}")
|
||||
response = self.fetch(play_url)
|
||||
if response and response.status_code == 200:
|
||||
html = response.text
|
||||
|
||||
# 查找player_aaaa变量
|
||||
player_match = re.search(r'var\s+player_aaaa\s*=\s*({.*?});', html, re.DOTALL)
|
||||
if player_match:
|
||||
try:
|
||||
player_data = json.loads(player_match.group(1))
|
||||
if 'url' in player_data:
|
||||
video_url = player_data['url']
|
||||
if not video_url.startswith('http'):
|
||||
video_url = urllib.parse.urljoin(self.siteUrl, video_url)
|
||||
|
||||
self.log(f"从player_aaaa获取到视频地址: {video_url}")
|
||||
result["parse"] = 0
|
||||
result["url"] = video_url
|
||||
result["playUrl"] = ""
|
||||
result["header"] = json.dumps(self.headers)
|
||||
return result
|
||||
except json.JSONDecodeError as e:
|
||||
self.log(f"解析player_aaaa JSON出错: {str(e)}", "ERROR")
|
||||
|
||||
# 如果player_aaaa解析失败,尝试其他方式
|
||||
# 1. 查找video标签
|
||||
video_match = re.search(r'<video[^>]*src=["\'](.*?)["\']', html)
|
||||
if video_match:
|
||||
video_url = video_match.group(1)
|
||||
if not video_url.startswith('http'):
|
||||
video_url = urllib.parse.urljoin(self.siteUrl, video_url)
|
||||
|
||||
self.log(f"从video标签找到视频地址: {video_url}")
|
||||
result["parse"] = 0
|
||||
result["url"] = video_url
|
||||
result["playUrl"] = ""
|
||||
result["header"] = json.dumps(self.headers)
|
||||
return result
|
||||
|
||||
# 2. 查找iframe
|
||||
iframe_match = re.search(r'<iframe[^>]*src=["\'](.*?)["\']', html)
|
||||
if iframe_match:
|
||||
iframe_url = iframe_match.group(1)
|
||||
if not iframe_url.startswith('http'):
|
||||
iframe_url = urllib.parse.urljoin(self.siteUrl, iframe_url)
|
||||
|
||||
self.log(f"找到iframe,正在解析: {iframe_url}")
|
||||
# 访问iframe内容
|
||||
iframe_response = self.fetch(iframe_url)
|
||||
if iframe_response and iframe_response.status_code == 200:
|
||||
iframe_html = iframe_response.text
|
||||
|
||||
# 在iframe内容中查找视频地址
|
||||
iframe_video_match = re.search(r'(https?://[^\'"]+\.(mp4|m3u8|ts))', iframe_html)
|
||||
if iframe_video_match:
|
||||
video_url = iframe_video_match.group(1)
|
||||
|
||||
self.log(f"从iframe中找到视频地址: {video_url}")
|
||||
result["parse"] = 0
|
||||
result["url"] = video_url
|
||||
result["playUrl"] = ""
|
||||
result["header"] = json.dumps({
|
||||
"User-Agent": self.headers["User-Agent"],
|
||||
"Referer": iframe_url
|
||||
})
|
||||
return result
|
||||
|
||||
# 3. 查找任何可能的视频URL
|
||||
url_match = re.search(r'(https?://[^\'"]+\.(mp4|m3u8|ts))', html)
|
||||
if url_match:
|
||||
video_url = url_match.group(1)
|
||||
|
||||
self.log(f"找到可能的视频地址: {video_url}")
|
||||
result["parse"] = 0
|
||||
result["url"] = video_url
|
||||
result["playUrl"] = ""
|
||||
result["header"] = json.dumps(self.headers)
|
||||
return result
|
||||
except Exception as e:
|
||||
self.log(f"解析播放地址时出错: {str(e)}", "ERROR")
|
||||
|
||||
# 如果所有方式都失败,返回外部解析标志
|
||||
self.log("未找到直接可用的视频地址,需要外部解析", "WARNING")
|
||||
result["parse"] = 1 # 表示需要外部解析
|
||||
result["url"] = play_url # 返回播放页面URL
|
||||
result["playUrl"] = ""
|
||||
result["header"] = json.dumps(self.headers)
|
||||
|
||||
except Exception as e:
|
||||
self.log(f"获取播放内容时出错: {str(e)}", "ERROR")
|
||||
|
||||
return result
|
||||
|
||||
def localProxy(self, param):
|
||||
"""本地代理"""
|
||||
return [404, "text/plain", {}, "Not Found"]
|
437
摸鱼儿/api/模板.js
437
摸鱼儿/api/模板.js
|
@ -1,116 +1,46 @@
|
|||
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];
|
||||
}
|
||||
if (typeof Object.assign != 'function') {
|
||||
Object.assign = function () {
|
||||
var target = arguments[0];
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = arguments[i];
|
||||
for (var key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
return target;
|
||||
};
|
||||
}
|
||||
|
||||
// 通用免嗅探播放
|
||||
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;
|
||||
}
|
||||
}`;
|
||||
|
||||
return target;
|
||||
};
|
||||
}
|
||||
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',
|
||||
},
|
||||
搜索: '*',
|
||||
},
|
||||
var mubanDict = { // 模板字典
|
||||
mxpro: {
|
||||
title: '',
|
||||
host: '', // homeUrl:'/',
|
||||
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"
|
||||
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+)',
|
||||
class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
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',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.module-info-tag-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',
|
||||
"title": "h1&&Text;.module-info-tag&&Text",
|
||||
"img": ".lazyload&&data-original",
|
||||
"desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text",
|
||||
"content": ".module-info-introduction&&Text",
|
||||
"tabs": ".module-tab-item",
|
||||
"lists": ".module-play-list:eq(#id) a"
|
||||
},
|
||||
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
|
||||
},
|
||||
|
@ -119,24 +49,23 @@ function getMubans() {
|
|||
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',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.tag-link&&Text',
|
||||
img: '.module-item-pic&&img&&data-src',
|
||||
desc: '.video-info-items:eq(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',
|
||||
"title": "h1&&Text;.tag-link&&Text",
|
||||
"img": ".module-item-pic&&img&&data-src",
|
||||
"desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text",
|
||||
"content": ".vod_content&&Text",
|
||||
"tabs": ".module-tab-item",
|
||||
"lists": ".module-player-list:eq(#id)&&.scroll-content&&a"
|
||||
},
|
||||
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
|
||||
},
|
||||
|
@ -145,121 +74,104 @@ function getMubans() {
|
|||
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"
|
||||
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',
|
||||
class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.myui-content__detail .title--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',
|
||||
"title": ".myui-content__detail .title&&Text;.myui-content__detail p:eq(-2)&&Text",
|
||||
"img": ".myui-content__thumb .lazyload&&data-original",
|
||||
"desc": ".myui-content__detail p:eq(0)&&Text;.myui-content__detail p:eq(1)&&Text;.myui-content__detail p:eq(2)&&Text",
|
||||
"content": ".content&&Text",
|
||||
"tabs": ".nav-tabs:eq(0) li",
|
||||
"lists": ".myui-content__list:eq(#id) li"
|
||||
},
|
||||
搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
|
||||
搜索: '#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
},
|
||||
首图2: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/list/fyclass-fypage.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA', // "Cookie": ""
|
||||
'User-Agent': 'UC_UA',
|
||||
// "Cookie": ""
|
||||
},
|
||||
// class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
|
||||
class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.stui-content__detail .title&&Text;.stui-content__detail&&p:eq(-2)&&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',
|
||||
"title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text",
|
||||
"img": ".stui-content__thumb .lazyload&&data-original",
|
||||
"desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text",
|
||||
"content": ".detail&&Text",
|
||||
"tabs": ".stui-vodlist__head h3",
|
||||
"lists": ".stui-content__playlist:eq(#id) li"
|
||||
},
|
||||
搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
|
||||
搜索: 'ul.stui-vodlist__media:eq(0) li,ul.stui-vodlist:eq(0) li,#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
搜索1: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
搜索2: 'ul.stui-vodlist__media&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
},
|
||||
默认: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '',
|
||||
searchUrl: '',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
filter: '',
|
||||
filter_url: '',
|
||||
filter_def: {},
|
||||
url: '/vodshow/fyclass--------fypage---.html',
|
||||
searchUrl: '/vodsearch/-------------.html?wd=**',
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
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',
|
||||
},
|
||||
搜索: '列表;标题;图片;描述;链接;详情',
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
},
|
||||
vfed: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA',
|
||||
},
|
||||
// class_parse:'.fed-pops-navbar&&ul.fed-part-rows&&a.fed-part-eone:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
|
||||
class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
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',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text',
|
||||
img: '.fed-list-info&&a&&data-original',
|
||||
desc: '.fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text',
|
||||
content: '.fed-part-esan&&Text',
|
||||
tabs: '.fed-drop-boxs&&.fed-part-rows&&li',
|
||||
lists: '.fed-play-item:eq(#id)&&ul:eq(1)&&li',
|
||||
"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',
|
||||
},
|
||||
|
@ -269,30 +181,29 @@ function getMubans() {
|
|||
searchUrl: '/v_search/**----------fypage---.html',
|
||||
url: '/vod_____show/fyclass--------fypage---.html',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
'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,
|
||||
lazy: '',
|
||||
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
double: true,
|
||||
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.hl-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',
|
||||
"title": ".hl-infos-title&&Text;.hl-text-conch&&Text",
|
||||
"img": ".hl-lazy&&data-original",
|
||||
"desc": ".hl-infos-content&&.hl-text-conch&&Text",
|
||||
"content": ".hl-content-text&&Text",
|
||||
"tabs": ".hl-tabs&&a",
|
||||
"lists": ".hl-plays-list:eq(#id)&&li"
|
||||
},
|
||||
搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
},
|
||||
海螺2: {
|
||||
title: '',
|
||||
|
@ -300,130 +211,94 @@ function getMubans() {
|
|||
searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage/',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
'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,
|
||||
lazy: '',
|
||||
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
|
||||
double: true,
|
||||
一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h2&&Text;.deployment&&Text',
|
||||
img: '.lazy&&data-original',
|
||||
desc: '.deployment&&Text',
|
||||
content: '.ec-show&&Text',
|
||||
tabs: '#tag&&a',
|
||||
lists: '.play_list_box:eq(#id)&&li',
|
||||
"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, //是否启用分类筛选,
|
||||
searchable: 2,//是否启用全局搜索,
|
||||
quickSearch: 0,//是否启用快速搜索,
|
||||
filterable: 0,//是否启用分类筛选,
|
||||
},
|
||||
短视: {
|
||||
title: '',
|
||||
host: '', // homeUrl:'/',
|
||||
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"
|
||||
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,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.content-rt&&p:eq(0)&&Text',
|
||||
img: '.img&&img&&data-src',
|
||||
desc: '.content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text',
|
||||
content: '.zkjj_a&&Text',
|
||||
tabs: '.py-tabs&&option',
|
||||
lists: '.player:eq(#id) li',
|
||||
"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: {
|
||||
短视2:{
|
||||
title: '',
|
||||
host: '',
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&3&4',
|
||||
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'
|
||||
},
|
||||
headers:{'User-Agent':'MOBILE_UA'},
|
||||
url: '/index.php/api/vod#type=fyclass&page=fypage',
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
filter_url: '',
|
||||
filterable:0,//是否启用分类筛选,
|
||||
filter_url:'',
|
||||
filter: {},
|
||||
filter_def: {},
|
||||
detailUrl: '/index.php/vod/detail/id/fyid.html',
|
||||
filter_def:{},
|
||||
detailUrl:'/index.php/vod/detail/id/fyid.html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
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',
|
||||
推荐:'.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
|
||||
一级:'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
|
||||
二级:{
|
||||
"title":".slide-info-title&&Text;.slide-info:eq(3)--strong&&Text",
|
||||
"img":".detail-pic&&data-original",
|
||||
"desc":".fraction&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(2)--strong&&Text;.slide-info:eq(1)--strong&&Text",
|
||||
"content":"#height_limit&&Text",
|
||||
"tabs":".anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a",
|
||||
"tab_text":".swiper-slide&&Text",
|
||||
"lists":".anthology-list-box:eq(#id) li"
|
||||
},
|
||||
搜索: 'json:list;name;pic;;id',
|
||||
},
|
||||
采集1: {
|
||||
title: '',
|
||||
host: '',
|
||||
homeTid: '13',
|
||||
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
|
||||
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
|
||||
searchUrl: '/api.php/provide/vod/?wd=**&pg=fypage',
|
||||
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000, // class_name: '电影&电视剧&综艺&动漫',
|
||||
// class_url: '1&2&3&4',
|
||||
// class_parse:'js:let html=request(input);input=JSON.parse(html).class;',
|
||||
class_parse: 'json:class;',
|
||||
limit: 20,
|
||||
multi: 1,
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 1, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
lazy: 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];`,
|
||||
搜索: '*',
|
||||
},
|
||||
搜索:'json:list;name;pic;;id',
|
||||
}
|
||||
};
|
||||
return JSON.parse(JSON.stringify(mubanDict));
|
||||
}
|
||||
|
||||
var mubanDict = getMubans();
|
||||
var muban = getMubans();
|
||||
export default {
|
||||
muban,
|
||||
getMubans
|
||||
};
|
||||
export default {muban,getMubans};
|
|
@ -0,0 +1,581 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import requests
|
||||
import re
|
||||
import json
|
||||
import traceback
|
||||
import sys
|
||||
|
||||
sys.path.append('../../')
|
||||
try:
|
||||
from base.spider import Spider
|
||||
except ImportError:
|
||||
# 定义一个基础接口类,用于本地测试
|
||||
class Spider:
|
||||
def init(self, extend=""):
|
||||
pass
|
||||
|
||||
class Spider(Spider):
|
||||
def __init__(self):
|
||||
self.siteUrl = "https://www.kuaikaw.cn"
|
||||
self.nextData = None # 缓存NEXT_DATA数据
|
||||
self.cateManual = {
|
||||
"甜宠": "462",
|
||||
"古装仙侠": "1102",
|
||||
"现代言情": "1145",
|
||||
"青春": "1170",
|
||||
"豪门恩怨": "585",
|
||||
"逆袭": "417-464",
|
||||
"重生": "439-465",
|
||||
"系统": "1159",
|
||||
"总裁": "1147",
|
||||
"职场商战": "943"
|
||||
}
|
||||
|
||||
def getName(self):
|
||||
# 返回爬虫名称
|
||||
return "河马短剧"
|
||||
|
||||
def init(self, extend=""):
|
||||
return
|
||||
|
||||
def fetch(self, url, headers=None):
|
||||
"""统一的网络请求接口"""
|
||||
if headers is None:
|
||||
headers = {
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
|
||||
"Referer": self.siteUrl,
|
||||
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
|
||||
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
|
||||
}
|
||||
|
||||
try:
|
||||
response = requests.get(url, headers=headers, timeout=10, allow_redirects=True)
|
||||
response.raise_for_status()
|
||||
return response
|
||||
except Exception as e:
|
||||
print(f"请求异常: {url}, 错误: {str(e)}")
|
||||
return None
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
# 检查是否为视频格式
|
||||
video_formats = ['.mp4', '.mkv', '.avi', '.wmv', '.m3u8', '.flv', '.rmvb']
|
||||
for format in video_formats:
|
||||
if format in url.lower():
|
||||
return True
|
||||
return False
|
||||
|
||||
def manualVideoCheck(self):
|
||||
# 不需要手动检查
|
||||
return False
|
||||
|
||||
def homeContent(self, filter):
|
||||
"""获取首页分类及筛选"""
|
||||
result = {}
|
||||
# 分类列表,使用已初始化的cateManual
|
||||
classes = []
|
||||
for k in self.cateManual:
|
||||
classes.append({
|
||||
'type_name': k,
|
||||
'type_id': self.cateManual[k]
|
||||
})
|
||||
result['class'] = classes
|
||||
# 获取首页推荐视频
|
||||
try:
|
||||
result['list'] = self.homeVideoContent()['list']
|
||||
except:
|
||||
result['list'] = []
|
||||
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
"""获取首页推荐视频内容"""
|
||||
videos = []
|
||||
try:
|
||||
response = self.fetch(self.siteUrl)
|
||||
html_content = response.text
|
||||
# 提取NEXT_DATA JSON数据
|
||||
next_data_pattern = r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>'
|
||||
next_data_match = re.search(next_data_pattern, html_content, re.DOTALL)
|
||||
if next_data_match:
|
||||
next_data_json = json.loads(next_data_match.group(1))
|
||||
page_props = next_data_json.get("props", {}).get("pageProps", {})
|
||||
# 获取轮播图数据 - 这些通常是推荐内容
|
||||
if "bannerList" in page_props and isinstance(page_props["bannerList"], list):
|
||||
banner_list = page_props["bannerList"]
|
||||
for banner in banner_list:
|
||||
book_id = banner.get("bookId", "")
|
||||
book_name = banner.get("bookName", "")
|
||||
cover_url = banner.get("coverWap", banner.get("wapUrl", ""))
|
||||
# 获取状态和章节数
|
||||
status = banner.get("statusDesc", "")
|
||||
total_chapters = banner.get("totalChapterNum", "")
|
||||
if book_id and book_name:
|
||||
videos.append({
|
||||
"vod_id": f"/drama/{book_id}",
|
||||
"vod_name": book_name,
|
||||
"vod_pic": cover_url,
|
||||
"vod_remarks": f"{status} {total_chapters}集" if total_chapters else status
|
||||
})
|
||||
|
||||
# SEO分类下的推荐
|
||||
if "seoColumnVos" in page_props and isinstance(page_props["seoColumnVos"], list):
|
||||
for column in page_props["seoColumnVos"]:
|
||||
book_infos = column.get("bookInfos", [])
|
||||
for book in book_infos:
|
||||
book_id = book.get("bookId", "")
|
||||
book_name = book.get("bookName", "")
|
||||
cover_url = book.get("coverWap", "")
|
||||
status = book.get("statusDesc", "")
|
||||
total_chapters = book.get("totalChapterNum", "")
|
||||
|
||||
if book_id and book_name:
|
||||
videos.append({
|
||||
"vod_id": f"/drama/{book_id}",
|
||||
"vod_name": book_name,
|
||||
"vod_pic": cover_url,
|
||||
"vod_remarks": f"{status} {total_chapters}集" if total_chapters else status
|
||||
})
|
||||
|
||||
# # 去重
|
||||
# seen = set()
|
||||
# unique_videos = []
|
||||
# for video in videos:
|
||||
# if video["vod_id"] not in seen:
|
||||
# seen.add(video["vod_id"])
|
||||
# unique_videos.append(video)
|
||||
# videos = unique_videos
|
||||
|
||||
except Exception as e:
|
||||
print(f"获取首页推荐内容出错: {e}")
|
||||
|
||||
result = {
|
||||
"list": videos
|
||||
}
|
||||
return result
|
||||
|
||||
def categoryContent(self, tid, pg, filter, extend):
|
||||
"""获取分类内容"""
|
||||
result = {}
|
||||
videos = []
|
||||
url = f"{self.siteUrl}/browse/{tid}/{pg}"
|
||||
response = self.fetch(url)
|
||||
html_content = response.text
|
||||
# 提取NEXT_DATA JSON数据
|
||||
next_data_pattern = r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>'
|
||||
next_data_match = re.search(next_data_pattern, html_content, re.DOTALL)
|
||||
if next_data_match:
|
||||
next_data_json = json.loads(next_data_match.group(1))
|
||||
page_props = next_data_json.get("props", {}).get("pageProps", {})
|
||||
# 获取总页数和当前页
|
||||
current_page = page_props.get("page", 1)
|
||||
total_pages = page_props.get("pages", 1)
|
||||
# 获取书籍列表
|
||||
book_list = page_props.get("bookList", [])
|
||||
# 转换为通用格式
|
||||
for book in book_list:
|
||||
book_id = book.get("bookId", "")
|
||||
book_name = book.get("bookName", "")
|
||||
cover_url = book.get("coverWap", "")
|
||||
status_desc = book.get("statusDesc", "")
|
||||
total_chapters = book.get("totalChapterNum", "")
|
||||
if book_id and book_name:
|
||||
videos.append({
|
||||
"vod_id": f"/drama/{book_id}",
|
||||
"vod_name": book_name,
|
||||
"vod_pic": cover_url,
|
||||
"vod_remarks": f"{status_desc} {total_chapters}集" if total_chapters else status_desc
|
||||
})
|
||||
# 构建返回结果
|
||||
result = {
|
||||
"list": videos,
|
||||
"page": int(current_page),
|
||||
"pagecount": total_pages,
|
||||
"limit": len(videos),
|
||||
"total": total_pages * len(videos) if videos else 0
|
||||
}
|
||||
return result
|
||||
|
||||
def switch(self, key, pg):
|
||||
# 搜索功能
|
||||
search_results = []
|
||||
# 获取第一页结果,并检查总页数
|
||||
url = f"{self.siteUrl}/search?searchValue={key}&page={pg}"
|
||||
response = self.fetch(url)
|
||||
html_content = response.text
|
||||
# 提取NEXT_DATA JSON数据
|
||||
next_data_pattern = r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>'
|
||||
next_data_match = re.search(next_data_pattern, html_content, re.DOTALL)
|
||||
if next_data_match:
|
||||
next_data_json = json.loads(next_data_match.group(1))
|
||||
page_props = next_data_json.get("props", {}).get("pageProps", {})
|
||||
# 获取总页数
|
||||
total_pages = page_props.get("pages", 1)
|
||||
# 处理所有页的数据
|
||||
all_book_list = []
|
||||
# 添加第一页的书籍列表
|
||||
book_list = page_props.get("bookList", [])
|
||||
all_book_list.extend(book_list)
|
||||
# 如果有多页,获取其他页的数据
|
||||
if total_pages > 1 : # quick模式只获取第一页
|
||||
for page in range(2, total_pages + 1):
|
||||
next_page_url = f"{self.siteUrl}/search?searchValue={key}&page={page}"
|
||||
next_page_response = self.fetch(next_page_url)
|
||||
next_page_html = next_page_response.text
|
||||
next_page_match = re.search(next_data_pattern, next_page_html, re.DOTALL)
|
||||
if next_page_match:
|
||||
next_page_json = json.loads(next_page_match.group(1))
|
||||
next_page_props = next_page_json.get("props", {}).get("pageProps", {})
|
||||
next_page_books = next_page_props.get("bookList", [])
|
||||
all_book_list.extend(next_page_books)
|
||||
# 转换为统一的搜索结果格式
|
||||
for book in all_book_list:
|
||||
book_id = book.get("bookId", "")
|
||||
book_name = book.get("bookName", "")
|
||||
cover_url = book.get("coverWap", "")
|
||||
total_chapters = book.get("totalChapterNum", "0")
|
||||
status_desc = book.get("statusDesc", "")
|
||||
# 构建视频项
|
||||
vod = {
|
||||
"vod_id": f"/drama/{book_id}",
|
||||
"vod_name": book_name,
|
||||
"vod_pic": cover_url,
|
||||
"vod_remarks": f"{status_desc} {total_chapters}集"
|
||||
}
|
||||
search_results.append(vod)
|
||||
result = {
|
||||
"list": search_results,
|
||||
"page": pg
|
||||
}
|
||||
return result
|
||||
|
||||
def searchContent(self, key, quick, pg=1):
|
||||
result = self.switch(key, pg=pg)
|
||||
result['page'] = pg
|
||||
return result
|
||||
|
||||
def searchContentPage(self, key, quick, pg=1):
|
||||
return self.searchContent(key, quick, pg)
|
||||
|
||||
def detailContent(self, ids):
|
||||
# 获取剧集信息
|
||||
vod_id = ids[0]
|
||||
episode_id = None
|
||||
chapter_id = None
|
||||
|
||||
if not vod_id.startswith('/drama/'):
|
||||
if vod_id.startswith('/episode/'):
|
||||
episode_info = vod_id.replace('/episode/', '').split('/')
|
||||
if len(episode_info) >= 2:
|
||||
episode_id = episode_info[0]
|
||||
chapter_id = episode_info[1]
|
||||
vod_id = f'/drama/{episode_id}'
|
||||
else:
|
||||
vod_id = '/drama/' + vod_id
|
||||
|
||||
drama_url = self.siteUrl + vod_id
|
||||
print(f"请求URL: {drama_url}")
|
||||
|
||||
headers = {
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
|
||||
"Referer": self.siteUrl,
|
||||
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
|
||||
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
|
||||
}
|
||||
|
||||
rsp = self.fetch(drama_url, headers=headers)
|
||||
if not rsp or rsp.status_code != 200:
|
||||
print(f"请求失败,状态码: {getattr(rsp, 'status_code', 'N/A')}")
|
||||
return {}
|
||||
|
||||
html = rsp.text
|
||||
next_data_match = re.search(r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>', html, re.DOTALL)
|
||||
|
||||
if not next_data_match:
|
||||
print("未找到NEXT_DATA内容")
|
||||
return {}
|
||||
|
||||
try:
|
||||
next_data = json.loads(next_data_match.group(1))
|
||||
page_props = next_data.get("props", {}).get("pageProps", {})
|
||||
print(f"找到页面属性,包含 {len(page_props.keys())} 个键")
|
||||
|
||||
book_info = page_props.get("bookInfoVo", {})
|
||||
chapter_list = page_props.get("chapterList", [])
|
||||
|
||||
title = book_info.get("title", "")
|
||||
sub_title = f"{book_info.get('totalChapterNum', '')}集"
|
||||
|
||||
categories = []
|
||||
for category in book_info.get("categoryList", []):
|
||||
categories.append(category.get("name", ""))
|
||||
|
||||
vod_content = book_info.get("introduction", "")
|
||||
|
||||
vod = {
|
||||
"vod_id": vod_id,
|
||||
"vod_name": title,
|
||||
"vod_pic": book_info.get("coverWap", ""),
|
||||
"type_name": ",".join(categories),
|
||||
"vod_year": "",
|
||||
"vod_area": book_info.get("countryName", ""),
|
||||
"vod_remarks": sub_title,
|
||||
"vod_actor": ", ".join([p.get("name", "") for p in book_info.get("performerList", [])]),
|
||||
"vod_director": "",
|
||||
"vod_content": vod_content
|
||||
}
|
||||
|
||||
# 处理播放列表
|
||||
play_url_list = []
|
||||
episodes = []
|
||||
|
||||
if chapter_list:
|
||||
print(f"找到 {len(chapter_list)} 个章节")
|
||||
|
||||
# 先检查是否有可以直接使用的MP4链接作为模板
|
||||
mp4_template = None
|
||||
first_mp4_chapter_id = None
|
||||
|
||||
# 先搜索第一个章节的MP4链接
|
||||
# 为提高成功率,尝试直接请求第一个章节的播放页
|
||||
if chapter_list and len(chapter_list) > 0:
|
||||
first_chapter = chapter_list[0]
|
||||
first_chapter_id = first_chapter.get("chapterId", "")
|
||||
drama_id_clean = vod_id.replace('/drama/', '')
|
||||
|
||||
if first_chapter_id and drama_id_clean:
|
||||
first_episode_url = f"{self.siteUrl}/episode/{drama_id_clean}/{first_chapter_id}"
|
||||
print(f"请求第一集播放页: {first_episode_url}")
|
||||
|
||||
first_rsp = self.fetch(first_episode_url, headers=headers)
|
||||
if first_rsp and first_rsp.status_code == 200:
|
||||
first_html = first_rsp.text
|
||||
# 直接从HTML提取MP4链接
|
||||
mp4_pattern = r'(https?://[^"\']+\.mp4)'
|
||||
mp4_matches = re.findall(mp4_pattern, first_html)
|
||||
if mp4_matches:
|
||||
mp4_template = mp4_matches[0]
|
||||
first_mp4_chapter_id = first_chapter_id
|
||||
print(f"找到MP4链接模板: {mp4_template}")
|
||||
print(f"模板对应的章节ID: {first_mp4_chapter_id}")
|
||||
|
||||
# 如果未找到模板,再检查章节对象中是否有MP4链接
|
||||
if not mp4_template:
|
||||
for chapter in chapter_list[:5]: # 只检查前5个章节以提高效率
|
||||
if "chapterVideoVo" in chapter and chapter["chapterVideoVo"]:
|
||||
chapter_video = chapter["chapterVideoVo"]
|
||||
mp4_url = chapter_video.get("mp4", "") or chapter_video.get("mp4720p", "") or chapter_video.get("vodMp4Url", "")
|
||||
if mp4_url and ".mp4" in mp4_url:
|
||||
mp4_template = mp4_url
|
||||
first_mp4_chapter_id = chapter.get("chapterId", "")
|
||||
print(f"从chapterVideoVo找到MP4链接模板: {mp4_template}")
|
||||
print(f"模板对应的章节ID: {first_mp4_chapter_id}")
|
||||
break
|
||||
|
||||
# 遍历所有章节处理播放信息
|
||||
for chapter in chapter_list:
|
||||
chapter_id = chapter.get("chapterId", "")
|
||||
chapter_name = chapter.get("chapterName", "")
|
||||
|
||||
# 1. 如果章节自身有MP4链接,直接使用
|
||||
if "chapterVideoVo" in chapter and chapter["chapterVideoVo"]:
|
||||
chapter_video = chapter["chapterVideoVo"]
|
||||
mp4_url = chapter_video.get("mp4", "") or chapter_video.get("mp4720p", "") or chapter_video.get("vodMp4Url", "")
|
||||
if mp4_url and ".mp4" in mp4_url:
|
||||
episodes.append(f"{chapter_name}${mp4_url}")
|
||||
continue
|
||||
|
||||
# 2. 如果有MP4模板,尝试替换章节ID构建MP4链接
|
||||
if mp4_template and first_mp4_chapter_id and chapter_id:
|
||||
# 替换模板中的章节ID部分
|
||||
if first_mp4_chapter_id in mp4_template:
|
||||
new_mp4_url = mp4_template.replace(first_mp4_chapter_id, chapter_id)
|
||||
episodes.append(f"{chapter_name}${new_mp4_url}")
|
||||
continue
|
||||
|
||||
# 3. 如果上述方法都不可行,回退到使用chapter_id构建中间URL
|
||||
if chapter_id and chapter_name:
|
||||
url = f"{vod_id}${chapter_id}${chapter_name}"
|
||||
episodes.append(f"{chapter_name}${url}")
|
||||
|
||||
if not episodes and vod_id:
|
||||
# 尝试构造默认的集数
|
||||
total_chapters = int(book_info.get("totalChapterNum", "0"))
|
||||
if total_chapters > 0:
|
||||
print(f"尝试构造 {total_chapters} 个默认集数")
|
||||
|
||||
# 如果知道章节ID的模式,可以构造
|
||||
if chapter_id and episode_id:
|
||||
for i in range(1, total_chapters + 1):
|
||||
chapter_name = f"第{i}集"
|
||||
url = f"{vod_id}${chapter_id}${chapter_name}"
|
||||
episodes.append(f"{chapter_name}${url}")
|
||||
else:
|
||||
# 使用普通的构造方式
|
||||
for i in range(1, total_chapters + 1):
|
||||
chapter_name = f"第{i}集"
|
||||
url = f"{vod_id}${chapter_name}"
|
||||
episodes.append(f"{chapter_name}${url}")
|
||||
|
||||
if episodes:
|
||||
play_url_list.append("#".join(episodes))
|
||||
vod['vod_play_from'] = '河马剧场'
|
||||
vod['vod_play_url'] = '$$$'.join(play_url_list)
|
||||
|
||||
result = {
|
||||
'list': [vod]
|
||||
}
|
||||
return result
|
||||
except Exception as e:
|
||||
print(f"解析详情页失败: {str(e)}")
|
||||
print(traceback.format_exc())
|
||||
return {}
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
result = {}
|
||||
print(f"调用playerContent: flag={flag}, id={id}")
|
||||
|
||||
headers = {
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
|
||||
"Referer": self.siteUrl,
|
||||
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
|
||||
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
|
||||
}
|
||||
|
||||
# 解析id参数
|
||||
parts = id.split('$')
|
||||
drama_id = None
|
||||
chapter_id = None
|
||||
|
||||
if len(parts) >= 2:
|
||||
drama_id = parts[0]
|
||||
chapter_id = parts[1]
|
||||
chapter_name = parts[2] if len(parts) > 2 else "第一集"
|
||||
print(f"解析参数: drama_id={drama_id}, chapter_id={chapter_id}")
|
||||
else:
|
||||
# 处理旧数据格式
|
||||
print(f"使用原始URL格式: {id}")
|
||||
result["parse"] = 0
|
||||
result["url"] = id
|
||||
result["header"] = json.dumps(headers)
|
||||
return result
|
||||
|
||||
# 直接检查chapter_id是否包含http(可能已经是视频链接)
|
||||
if 'http' in chapter_id and '.mp4' in chapter_id:
|
||||
print(f"已经是MP4链接: {chapter_id}")
|
||||
result["parse"] = 0
|
||||
result["url"] = chapter_id
|
||||
result["header"] = json.dumps(headers)
|
||||
return result
|
||||
|
||||
# 构建episode页面URL
|
||||
drama_id_clean = drama_id.replace('/drama/', '')
|
||||
episode_url = f"{self.siteUrl}/episode/{drama_id_clean}/{chapter_id}"
|
||||
print(f"请求episode页面: {episode_url}")
|
||||
|
||||
try:
|
||||
rsp = self.fetch(episode_url, headers=headers)
|
||||
if not rsp or rsp.status_code != 200:
|
||||
print(f"请求失败,状态码: {getattr(rsp, 'status_code', 'N/A')}")
|
||||
result["parse"] = 0
|
||||
result["url"] = id
|
||||
result["header"] = json.dumps(headers)
|
||||
return result
|
||||
|
||||
html = rsp.text
|
||||
print(f"获取页面大小: {len(html)} 字节")
|
||||
|
||||
# 尝试从NEXT_DATA提取视频链接
|
||||
mp4_url = None
|
||||
|
||||
# 方法1: 从NEXT_DATA提取
|
||||
next_data_match = re.search(r'<script id="__NEXT_DATA__" type="application/json">(.*?)</script>', html, re.DOTALL)
|
||||
if next_data_match:
|
||||
try:
|
||||
print("找到NEXT_DATA")
|
||||
next_data = json.loads(next_data_match.group(1))
|
||||
page_props = next_data.get("props", {}).get("pageProps", {})
|
||||
|
||||
# 从chapterList中查找当前章节
|
||||
chapter_list = page_props.get("chapterList", [])
|
||||
print(f"找到章节列表,长度: {len(chapter_list)}")
|
||||
|
||||
for chapter in chapter_list:
|
||||
if chapter.get("chapterId") == chapter_id:
|
||||
print(f"找到匹配的章节: {chapter.get('chapterName')}")
|
||||
chapter_video = chapter.get("chapterVideoVo", {})
|
||||
mp4_url = chapter_video.get("mp4", "") or chapter_video.get("mp4720p", "") or chapter_video.get("vodMp4Url", "")
|
||||
if mp4_url:
|
||||
print(f"从chapterList找到MP4链接: {mp4_url}")
|
||||
break
|
||||
|
||||
# 如果未找到,尝试从当前章节获取
|
||||
if not mp4_url:
|
||||
current_chapter = page_props.get("chapterInfo", {})
|
||||
if current_chapter:
|
||||
print("找到当前章节信息")
|
||||
chapter_video = current_chapter.get("chapterVideoVo", {})
|
||||
mp4_url = chapter_video.get("mp4", "") or chapter_video.get("mp4720p", "") or chapter_video.get("vodMp4Url", "")
|
||||
if mp4_url:
|
||||
print(f"从chapterInfo找到MP4链接: {mp4_url}")
|
||||
except Exception as e:
|
||||
print(f"解析NEXT_DATA失败: {str(e)}")
|
||||
print(traceback.format_exc())
|
||||
|
||||
# 方法2: 直接从HTML中提取MP4链接
|
||||
if not mp4_url:
|
||||
mp4_pattern = r'(https?://[^"\']+\.mp4)'
|
||||
mp4_matches = re.findall(mp4_pattern, html)
|
||||
if mp4_matches:
|
||||
# 查找含有chapter_id的链接
|
||||
matched_mp4 = False
|
||||
for url in mp4_matches:
|
||||
if chapter_id in url:
|
||||
mp4_url = url
|
||||
matched_mp4 = True
|
||||
print(f"从HTML直接提取章节MP4链接: {mp4_url}")
|
||||
break
|
||||
|
||||
# 如果没找到包含chapter_id的链接,使用第一个
|
||||
if not matched_mp4 and mp4_matches:
|
||||
mp4_url = mp4_matches[0]
|
||||
print(f"从HTML直接提取MP4链接: {mp4_url}")
|
||||
|
||||
if mp4_url and ".mp4" in mp4_url:
|
||||
print(f"最终找到的MP4链接: {mp4_url}")
|
||||
result["parse"] = 0
|
||||
result["url"] = mp4_url
|
||||
result["header"] = json.dumps(headers)
|
||||
return result
|
||||
else:
|
||||
print(f"未找到有效的MP4链接,尝试再次解析页面内容")
|
||||
# 再尝试一次从HTML中广泛搜索所有可能的MP4链接
|
||||
all_mp4_pattern = r'(https?://[^"\']+\.mp4)'
|
||||
all_mp4_matches = re.findall(all_mp4_pattern, html)
|
||||
if all_mp4_matches:
|
||||
mp4_url = all_mp4_matches[0]
|
||||
print(f"从HTML广泛搜索找到MP4链接: {mp4_url}")
|
||||
result["parse"] = 0
|
||||
result["url"] = mp4_url
|
||||
result["header"] = json.dumps(headers)
|
||||
return result
|
||||
|
||||
print(f"未找到视频链接,返回原episode URL: {episode_url}")
|
||||
result["parse"] = 0
|
||||
result["url"] = episode_url
|
||||
result["header"] = json.dumps(headers)
|
||||
return result
|
||||
except Exception as e:
|
||||
print(f"请求或解析失败: {str(e)}")
|
||||
print(traceback.format_exc())
|
||||
result["parse"] = 0
|
||||
result["url"] = id
|
||||
result["header"] = json.dumps(headers)
|
||||
return result
|
||||
|
||||
def localProxy(self, param):
|
||||
# 本地代理处理,此处简单返回传入的参数
|
||||
return [200, "video/MP2T", {}, param]
|
||||
|
||||
def destroy(self):
|
||||
# 资源回收
|
||||
pass
|
|
@ -0,0 +1,225 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# by @嗷呜
|
||||
import json
|
||||
import sys
|
||||
import threading
|
||||
import uuid
|
||||
import requests
|
||||
sys.path.append('..')
|
||||
from base.spider import Spider
|
||||
import time
|
||||
from Crypto.Hash import MD5, SHA1
|
||||
|
||||
class Spider(Spider):
|
||||
'''
|
||||
配置示例:
|
||||
{
|
||||
"key": "xxxx",
|
||||
"name": "xxxx",
|
||||
"type": 3,
|
||||
"api": ".所在路径/金牌.py",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": "https://www.jiabaide.cn,域名2,域名3"
|
||||
}
|
||||
},
|
||||
'''
|
||||
def init(self, extend=""):
|
||||
if extend:
|
||||
hosts=json.loads(extend)['site']
|
||||
self.host = self.host_late(hosts)
|
||||
pass
|
||||
|
||||
def getName(self):
|
||||
pass
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
pass
|
||||
|
||||
def manualVideoCheck(self):
|
||||
pass
|
||||
|
||||
def destroy(self):
|
||||
pass
|
||||
|
||||
def homeContent(self, filter):
|
||||
cdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/get/filer/type", headers=self.getheaders()).json()
|
||||
fdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/v1/get/filer/list", headers=self.getheaders()).json()
|
||||
result = {}
|
||||
classes = []
|
||||
filters={}
|
||||
for k in cdata['data']:
|
||||
classes.append({
|
||||
'type_name': k['typeName'],
|
||||
'type_id': str(k['typeId']),
|
||||
})
|
||||
sort_values = [{"n": "最近更新", "v": "2"},{"n": "人气高低", "v": "3"}, {"n": "评分高低", "v": "4"}]
|
||||
for tid, d in fdata['data'].items():
|
||||
current_sort_values = sort_values.copy()
|
||||
if tid == '1':
|
||||
del current_sort_values[0]
|
||||
filters[tid] = [
|
||||
{"key": "type", "name": "类型",
|
||||
"value": [{"n": i["itemText"], "v": i["itemValue"]} for i in d["typeList"]]},
|
||||
|
||||
*([] if not d["plotList"] else [{"key": "v_class", "name": "剧情",
|
||||
"value": [{"n": i["itemText"], "v": i["itemText"]}
|
||||
for i in d["plotList"]]}]),
|
||||
|
||||
{"key": "area", "name": "地区",
|
||||
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["districtList"]]},
|
||||
|
||||
{"key": "year", "name": "年份",
|
||||
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["yearList"]]},
|
||||
|
||||
{"key": "lang", "name": "语言",
|
||||
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["languageList"]]},
|
||||
|
||||
{"key": "sort", "name": "排序", "value": current_sort_values}
|
||||
]
|
||||
result['class'] = classes
|
||||
result['filters'] = filters
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
data1 = self.fetch(f"{self.host}/api/mw-movie/anonymous/v1/home/all/list", headers=self.getheaders()).json()
|
||||
data2=self.fetch(f"{self.host}/api/mw-movie/anonymous/home/hotSearch",headers=self.getheaders()).json()
|
||||
data=[]
|
||||
for i in data1['data'].values():
|
||||
data.extend(i['list'])
|
||||
data.extend(data2['data'])
|
||||
vods=self.getvod(data)
|
||||
return {'list':vods}
|
||||
|
||||
def categoryContent(self, tid, pg, filter, extend):
|
||||
|
||||
params = {
|
||||
"area": extend.get('area', ''),
|
||||
"filterStatus": "1",
|
||||
"lang": extend.get('lang', ''),
|
||||
"pageNum": pg,
|
||||
"pageSize": "30",
|
||||
"sort": extend.get('sort', '1'),
|
||||
"sortBy": "1",
|
||||
"type": extend.get('type', ''),
|
||||
"type1": tid,
|
||||
"v_class": extend.get('v_class', ''),
|
||||
"year": extend.get('year', '')
|
||||
}
|
||||
data = self.fetch(f"{self.host}/api/mw-movie/anonymous/video/list?{self.js(params)}", headers=self.getheaders(params)).json()
|
||||
result = {}
|
||||
result['list'] = self.getvod(data['data']['list'])
|
||||
result['page'] = pg
|
||||
result['pagecount'] = 9999
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
return result
|
||||
|
||||
def detailContent(self, ids):
|
||||
data=self.fetch(f"{self.host}/api/mw-movie/anonymous/video/detail?id={ids[0]}",headers=self.getheaders({'id':ids[0]})).json()
|
||||
vod=self.getvod([data['data']])[0]
|
||||
vod['vod_play_from']='金牌'
|
||||
vod['vod_play_url'] = '#'.join(
|
||||
f"{i['name'] if len(vod['episodelist']) > 1 else vod['vod_name']}${ids[0]}@@{i['nid']}" for i in
|
||||
vod['episodelist'])
|
||||
vod.pop('episodelist', None)
|
||||
return {'list':[vod]}
|
||||
|
||||
def searchContent(self, key, quick, pg="1"):
|
||||
params = {
|
||||
"keyword": key,
|
||||
"pageNum": pg,
|
||||
"pageSize": "8",
|
||||
"sourceCode": "1"
|
||||
}
|
||||
data=self.fetch(f"{self.host}/api/mw-movie/anonymous/video/searchByWord?{self.js(params)}",headers=self.getheaders(params)).json()
|
||||
vods=self.getvod(data['data']['result']['list'])
|
||||
return {'list':vods,'page':pg}
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
self.header = {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'DNT': '1',
|
||||
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'Origin': self.host,
|
||||
'Referer': f'{self.host}/'
|
||||
}
|
||||
ids=id.split('@@')
|
||||
pdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/v2/video/episode/url?clientType=1&id={ids[0]}&nid={ids[1]}",headers=self.getheaders({'clientType':'1','id': ids[0], 'nid': ids[1]})).json()
|
||||
vlist=[]
|
||||
for i in pdata['data']['list']:vlist.extend([i['resolutionName'],i['url']])
|
||||
return {'parse':0,'url':vlist,'header':self.header}
|
||||
|
||||
def localProxy(self, param):
|
||||
pass
|
||||
|
||||
def host_late(self, url_list):
|
||||
if isinstance(url_list, str):
|
||||
urls = [u.strip() for u in url_list.split(',')]
|
||||
else:
|
||||
urls = url_list
|
||||
if len(urls) <= 1:
|
||||
return urls[0] if urls else ''
|
||||
|
||||
results = {}
|
||||
threads = []
|
||||
|
||||
def test_host(url):
|
||||
try:
|
||||
start_time = time.time()
|
||||
response = requests.head(url, timeout=1.0, allow_redirects=False)
|
||||
delay = (time.time() - start_time) * 1000
|
||||
results[url] = delay
|
||||
except Exception as e:
|
||||
results[url] = float('inf')
|
||||
for url in urls:
|
||||
t = threading.Thread(target=test_host, args=(url,))
|
||||
threads.append(t)
|
||||
t.start()
|
||||
for t in threads:
|
||||
t.join()
|
||||
return min(results.items(), key=lambda x: x[1])[0]
|
||||
|
||||
def md5(self, sign_key):
|
||||
md5_hash = MD5.new()
|
||||
md5_hash.update(sign_key.encode('utf-8'))
|
||||
md5_result = md5_hash.hexdigest()
|
||||
return md5_result
|
||||
|
||||
def js(self, param):
|
||||
return '&'.join(f"{k}={v}" for k, v in param.items())
|
||||
|
||||
def getheaders(self, param=None):
|
||||
if param is None:param = {}
|
||||
t=str(int(time.time()*1000))
|
||||
param['key']='cb808529bae6b6be45ecfab29a4889bc'
|
||||
param['t']=t
|
||||
sha1_hash = SHA1.new()
|
||||
sha1_hash.update(self.md5(self.js(param)).encode('utf-8'))
|
||||
sign = sha1_hash.hexdigest()
|
||||
deviceid = str(uuid.uuid4())
|
||||
headers = {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
|
||||
'Accept': 'application/json, text/plain, */*',
|
||||
'sign': sign,
|
||||
't': t,
|
||||
'deviceid':deviceid
|
||||
}
|
||||
return headers
|
||||
|
||||
def convert_field_name(self, field):
|
||||
field = field.lower()
|
||||
if field.startswith('vod') and len(field) > 3:
|
||||
field = field.replace('vod', 'vod_')
|
||||
if field.startswith('type') and len(field) > 4:
|
||||
field = field.replace('type', 'type_')
|
||||
return field
|
||||
|
||||
def getvod(self, array):
|
||||
return [{self.convert_field_name(k): v for k, v in item.items()} for item in array]
|
||||
|
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,7 @@
|
|||
var rule = {
|
||||
title:'有声小说吧',
|
||||
编码:'gb18030',
|
||||
host:'http://m.ysxs8.vip',
|
||||
host:'http://m.ysxs8.top',
|
||||
url:'/downlist/fyclass_fypage.html',
|
||||
searchUrl:'/search.asp?page=fypage&searchword=**&searchtype=-1',
|
||||
searchable:2,
|
||||
|
@ -34,4 +34,4 @@ var rule = {
|
|||
lists:'#playlist ul li',
|
||||
},
|
||||
搜索:'*',
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,192 +1,199 @@
|
|||
{
|
||||
"classes": [{
|
||||
"type_name": "电影",
|
||||
"type_id": "dy"
|
||||
}, {
|
||||
"type_name": "电视",
|
||||
"type_id": "ds"
|
||||
}, {
|
||||
"type_name": "短剧",
|
||||
"type_id": "dj"
|
||||
}, {
|
||||
"type_name": "综艺",
|
||||
"type_id": "zy"
|
||||
}, {
|
||||
"type_name": "动漫",
|
||||
"type_id": "dm"
|
||||
}, {
|
||||
"type_name": "音乐",
|
||||
"type_id": "yy"
|
||||
}],
|
||||
"classes": [
|
||||
{
|
||||
"type_name": "电影",
|
||||
"type_id": "dy"
|
||||
},
|
||||
{
|
||||
"type_name": "电视",
|
||||
"type_id": "ds"
|
||||
},
|
||||
{
|
||||
"type_name": "短剧",
|
||||
"type_id": "dj"
|
||||
},
|
||||
{
|
||||
"type_name": "综艺",
|
||||
"type_id": "zy"
|
||||
},
|
||||
{
|
||||
"type_name": "动漫",
|
||||
"type_id": "dm"
|
||||
},
|
||||
{
|
||||
"type_name": "音乐",
|
||||
"type_id": "yy"
|
||||
}
|
||||
],
|
||||
"filters": {
|
||||
"dy": [
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"ds": [
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"dj": [
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"zy": [
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"dm": [
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"yy": [
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
"key": "root",
|
||||
"name": "来源",
|
||||
"value": [
|
||||
{
|
||||
"n": "全部",
|
||||
"v": "0"
|
||||
},
|
||||
{
|
||||
"n": "夸克",
|
||||
"v": "2"
|
||||
},
|
||||
{
|
||||
"n": "UC",
|
||||
"v": "5"
|
||||
},
|
||||
{
|
||||
"n": "阿里",
|
||||
"v": "1"
|
||||
},
|
||||
{
|
||||
"n": "百度",
|
||||
"v": "4"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"siteUrl":"https://ysapi.yingso.fun/v7/ali/all"
|
||||
"siteUrl": "https://ysapi.yingso.fun/v7/ali/all"
|
||||
}
|
2132
摸鱼儿/json/bili.json
2132
摸鱼儿/json/bili.json
File diff suppressed because it is too large
Load Diff
|
@ -1 +1,20 @@
|
|||
{"SiteUrl":"https://www.hmxz.org","Classes":[{"type_name":"电影","type_id":"1"},{"type_name":"剧集","type_id":"2"},{"type_name":"综艺","type_id":"5"},{"type_name":"动漫","type_id":"3"}], "Cookie":"bbs_sid=ducbgilqu67ff2oirbbh9aq7ol;bbs_token=KLC2C9dxzxxpvoGd4vV8VKgN_2FM1Fbe_2B_2BLShggfWjEmh1kmEA"}
|
||||
{
|
||||
"Classes": [
|
||||
{
|
||||
"type_name": "电影",
|
||||
"type_id": "1"
|
||||
},
|
||||
{
|
||||
"type_name": "剧集",
|
||||
"type_id": "2"
|
||||
},
|
||||
{
|
||||
"type_name": "动漫",
|
||||
"type_id": "3"
|
||||
},
|
||||
{
|
||||
"type_name": "综艺",
|
||||
"type_id": "5"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1 +1,26 @@
|
|||
{"SiteUrl":"https://pan1.me","Classes":[{"type_name":"电影","type_id":"2"},{"type_name":"剧集","type_id":"48"},{"type_name":"4K原盘","type_id":"56"},{"type_name":"综艺","type_id":"52"},{"type_name":"动漫","type_id":"37"}], "Cookie":"bbs_sid=rrru52bda4v655kl9u1c87f00m; bbs_token=dZRAvHbHcUZkuJ7oHALqWoUs00C1fGqqXDXH7I8LH6hMddXP"}
|
||||
{
|
||||
"SiteUrl": "https://time.123in.link",
|
||||
"Classes": [
|
||||
{
|
||||
"type_name": "电影",
|
||||
"type_id": "2"
|
||||
},
|
||||
{
|
||||
"type_name": "剧集",
|
||||
"type_id": "48"
|
||||
},
|
||||
{
|
||||
"type_name": "4K原盘",
|
||||
"type_id": "56"
|
||||
},
|
||||
{
|
||||
"type_name": "综艺",
|
||||
"type_id": "52"
|
||||
},
|
||||
{
|
||||
"type_name": "动漫",
|
||||
"type_id": "37"
|
||||
}
|
||||
],
|
||||
"Cookie": "bbs_sid=rrru52bda4v655kl9u1c87f00m; bbs_token=dZRAvHbHcUZkuJ7oHALqWoUs00C1fGqqXDXH7I8LH6hMddXP"
|
||||
}
|
File diff suppressed because one or more lines are too long
BIN
摸鱼儿/spider.jar
BIN
摸鱼儿/spider.jar
Binary file not shown.
805
欧歌/api.json
805
欧歌/api.json
File diff suppressed because it is too large
Load Diff
146
欧歌/api/嗨皮影视.py
146
欧歌/api/嗨皮影视.py
|
@ -1,146 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# by @嗷呜
|
||||
import sys
|
||||
sys.path.append('..')
|
||||
from base.spider import Spider
|
||||
import requests
|
||||
|
||||
|
||||
class Spider(Spider):
|
||||
|
||||
def init(self, extend=""):
|
||||
pass
|
||||
|
||||
def getName(self):
|
||||
return "hitv"
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
pass
|
||||
|
||||
def manualVideoCheck(self):
|
||||
pass
|
||||
|
||||
def destroy(self):
|
||||
pass
|
||||
|
||||
def homeContent(self, filter):
|
||||
result = {}
|
||||
cateManual = {
|
||||
# "直播": "live",
|
||||
'排行榜': 'rank',
|
||||
"电影": "1",
|
||||
"剧集": "2",
|
||||
"综艺": "3",
|
||||
"动画": "4",
|
||||
"短片": "5"
|
||||
}
|
||||
classes = []
|
||||
for k in cateManual:
|
||||
classes.append({
|
||||
'type_name': k,
|
||||
'type_id': cateManual[k]
|
||||
})
|
||||
result['class'] = classes
|
||||
return result
|
||||
|
||||
host = "https://wys.upfuhn.com"
|
||||
headers = {
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
||||
"Chrome/80.0.3987.149 Safari/537.36"
|
||||
}
|
||||
|
||||
def list(self, list):
|
||||
videos = []
|
||||
for it in list:
|
||||
videos.append({
|
||||
"vod_id": it['video_site_id'],
|
||||
"vod_name": it['video_name'],
|
||||
"vod_pic": it['video_horizontal_url'] or it['video_vertical_url'],
|
||||
"vod_remarks": it['newest_series_num'],
|
||||
"vod_year": it['years'],
|
||||
})
|
||||
return videos
|
||||
|
||||
def homeVideoContent(self):
|
||||
url = f'{self.host}/v1/ys_video_sites/hot?t=1'
|
||||
data = requests.get(url, headers=self.headers).json()
|
||||
videos = self.list(data['data']['data'])
|
||||
result = {'list': videos}
|
||||
return result
|
||||
|
||||
def categoryContent(self, tid, pg, filter, extend):
|
||||
path = f'/v1/ys_video_sites?t={tid}&s_t=0&a&y&o=0&ps=21&pn={pg}'
|
||||
rank = False
|
||||
if tid == 'rank':
|
||||
if pg == 1:
|
||||
path = f'/v1/ys_video_sites/ranking'
|
||||
rank = True
|
||||
else:
|
||||
path = ''
|
||||
# elif tid == 'live' and pg == 1:
|
||||
# path = f'/v1/ys_live_tvs'
|
||||
videos = []
|
||||
result = {}
|
||||
try:
|
||||
data = requests.get(self.host + path, headers=self.headers).json()
|
||||
if rank:
|
||||
for video in data['data']:
|
||||
videos.extend(data['data'][video])
|
||||
else:
|
||||
videos = data['data']['data']
|
||||
result = {}
|
||||
result['list'] = self.list(videos)
|
||||
result['page'] = pg
|
||||
result['pagecount'] = 9999
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
except:
|
||||
result['list'] = []
|
||||
return result
|
||||
|
||||
def detailContent(self, ids):
|
||||
tid = ids[0]
|
||||
url = f'{self.host}/v1/ys_video_series/by_vid/{tid}'
|
||||
data = requests.get(url, headers=self.headers).json()
|
||||
data1 = data['data']['ys_video_site']
|
||||
urls = []
|
||||
for it in data['data']['data']:
|
||||
urls.append(it['series_num'] + '$' + it['video_url'])
|
||||
vod = {
|
||||
'vod_name': data1['video_name'],
|
||||
'type_name': data1['tag'],
|
||||
'vod_year': data1['years'],
|
||||
'vod_area': data1['area'],
|
||||
'vod_director': data1['main_actor'],
|
||||
'vod_content': data1['video_desc'],
|
||||
'vod_play_from': '嗨皮在线',
|
||||
'vod_play_url': '#'.join(urls),
|
||||
}
|
||||
result = {
|
||||
'list': [
|
||||
vod
|
||||
]
|
||||
}
|
||||
return result
|
||||
|
||||
def searchContent(self, key, quick, pg=1):
|
||||
url = f'{self.host}/v1/ys_video_sites/search?s={key}&o=0&ps=200&pn={pg}'
|
||||
data = requests.get(url, headers=self.headers).json()
|
||||
videos = data['data']['video_sites']
|
||||
if data['data']['first_video_series'] is not None:
|
||||
videos = [data['data']['first_video_series']] + videos
|
||||
result = {}
|
||||
result['list'] = self.list(videos)
|
||||
result['page'] = pg
|
||||
return result
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
result = {
|
||||
'url': id,
|
||||
'parse': 0,
|
||||
'header': self.headers
|
||||
}
|
||||
return result
|
||||
|
||||
def localProxy(self, param):
|
||||
pass
|
|
@ -0,0 +1,225 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# by @嗷呜
|
||||
import json
|
||||
import sys
|
||||
import threading
|
||||
import uuid
|
||||
import requests
|
||||
sys.path.append('..')
|
||||
from base.spider import Spider
|
||||
import time
|
||||
from Crypto.Hash import MD5, SHA1
|
||||
|
||||
class Spider(Spider):
|
||||
'''
|
||||
配置示例:
|
||||
{
|
||||
"key": "xxxx",
|
||||
"name": "xxxx",
|
||||
"type": 3,
|
||||
"api": ".所在路径/金牌.py",
|
||||
"searchable": 1,
|
||||
"quickSearch": 1,
|
||||
"filterable": 1,
|
||||
"changeable": 1,
|
||||
"ext": {
|
||||
"site": "https://www.jiabaide.cn,域名2,域名3"
|
||||
}
|
||||
},
|
||||
'''
|
||||
def init(self, extend=""):
|
||||
if extend:
|
||||
hosts=json.loads(extend)['site']
|
||||
self.host = self.host_late(hosts)
|
||||
pass
|
||||
|
||||
def getName(self):
|
||||
pass
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
pass
|
||||
|
||||
def manualVideoCheck(self):
|
||||
pass
|
||||
|
||||
def destroy(self):
|
||||
pass
|
||||
|
||||
def homeContent(self, filter):
|
||||
cdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/get/filer/type", headers=self.getheaders()).json()
|
||||
fdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/v1/get/filer/list", headers=self.getheaders()).json()
|
||||
result = {}
|
||||
classes = []
|
||||
filters={}
|
||||
for k in cdata['data']:
|
||||
classes.append({
|
||||
'type_name': k['typeName'],
|
||||
'type_id': str(k['typeId']),
|
||||
})
|
||||
sort_values = [{"n": "最近更新", "v": "2"},{"n": "人气高低", "v": "3"}, {"n": "评分高低", "v": "4"}]
|
||||
for tid, d in fdata['data'].items():
|
||||
current_sort_values = sort_values.copy()
|
||||
if tid == '1':
|
||||
del current_sort_values[0]
|
||||
filters[tid] = [
|
||||
{"key": "type", "name": "类型",
|
||||
"value": [{"n": i["itemText"], "v": i["itemValue"]} for i in d["typeList"]]},
|
||||
|
||||
*([] if not d["plotList"] else [{"key": "v_class", "name": "剧情",
|
||||
"value": [{"n": i["itemText"], "v": i["itemText"]}
|
||||
for i in d["plotList"]]}]),
|
||||
|
||||
{"key": "area", "name": "地区",
|
||||
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["districtList"]]},
|
||||
|
||||
{"key": "year", "name": "年份",
|
||||
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["yearList"]]},
|
||||
|
||||
{"key": "lang", "name": "语言",
|
||||
"value": [{"n": i["itemText"], "v": i["itemText"]} for i in d["languageList"]]},
|
||||
|
||||
{"key": "sort", "name": "排序", "value": current_sort_values}
|
||||
]
|
||||
result['class'] = classes
|
||||
result['filters'] = filters
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
data1 = self.fetch(f"{self.host}/api/mw-movie/anonymous/v1/home/all/list", headers=self.getheaders()).json()
|
||||
data2=self.fetch(f"{self.host}/api/mw-movie/anonymous/home/hotSearch",headers=self.getheaders()).json()
|
||||
data=[]
|
||||
for i in data1['data'].values():
|
||||
data.extend(i['list'])
|
||||
data.extend(data2['data'])
|
||||
vods=self.getvod(data)
|
||||
return {'list':vods}
|
||||
|
||||
def categoryContent(self, tid, pg, filter, extend):
|
||||
|
||||
params = {
|
||||
"area": extend.get('area', ''),
|
||||
"filterStatus": "1",
|
||||
"lang": extend.get('lang', ''),
|
||||
"pageNum": pg,
|
||||
"pageSize": "30",
|
||||
"sort": extend.get('sort', '1'),
|
||||
"sortBy": "1",
|
||||
"type": extend.get('type', ''),
|
||||
"type1": tid,
|
||||
"v_class": extend.get('v_class', ''),
|
||||
"year": extend.get('year', '')
|
||||
}
|
||||
data = self.fetch(f"{self.host}/api/mw-movie/anonymous/video/list?{self.js(params)}", headers=self.getheaders(params)).json()
|
||||
result = {}
|
||||
result['list'] = self.getvod(data['data']['list'])
|
||||
result['page'] = pg
|
||||
result['pagecount'] = 9999
|
||||
result['limit'] = 90
|
||||
result['total'] = 999999
|
||||
return result
|
||||
|
||||
def detailContent(self, ids):
|
||||
data=self.fetch(f"{self.host}/api/mw-movie/anonymous/video/detail?id={ids[0]}",headers=self.getheaders({'id':ids[0]})).json()
|
||||
vod=self.getvod([data['data']])[0]
|
||||
vod['vod_play_from']='嗷呜有金牌'
|
||||
vod['vod_play_url'] = '#'.join(
|
||||
f"{i['name'] if len(vod['episodelist']) > 1 else vod['vod_name']}${ids[0]}@@{i['nid']}" for i in
|
||||
vod['episodelist'])
|
||||
vod.pop('episodelist', None)
|
||||
return {'list':[vod]}
|
||||
|
||||
def searchContent(self, key, quick, pg="1"):
|
||||
params = {
|
||||
"keyword": key,
|
||||
"pageNum": pg,
|
||||
"pageSize": "8",
|
||||
"sourceCode": "1"
|
||||
}
|
||||
data=self.fetch(f"{self.host}/api/mw-movie/anonymous/video/searchByWord?{self.js(params)}",headers=self.getheaders(params)).json()
|
||||
vods=self.getvod(data['data']['result']['list'])
|
||||
return {'list':vods,'page':pg}
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
self.header = {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
|
||||
'sec-ch-ua-platform': '"Windows"',
|
||||
'DNT': '1',
|
||||
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
|
||||
'sec-ch-ua-mobile': '?0',
|
||||
'Origin': self.host,
|
||||
'Referer': f'{self.host}/'
|
||||
}
|
||||
ids=id.split('@@')
|
||||
pdata = self.fetch(f"{self.host}/api/mw-movie/anonymous/v2/video/episode/url?clientType=1&id={ids[0]}&nid={ids[1]}",headers=self.getheaders({'clientType':'1','id': ids[0], 'nid': ids[1]})).json()
|
||||
vlist=[]
|
||||
for i in pdata['data']['list']:vlist.extend([i['resolutionName'],i['url']])
|
||||
return {'parse':0,'url':vlist,'header':self.header}
|
||||
|
||||
def localProxy(self, param):
|
||||
pass
|
||||
|
||||
def host_late(self, url_list):
|
||||
if isinstance(url_list, str):
|
||||
urls = [u.strip() for u in url_list.split(',')]
|
||||
else:
|
||||
urls = url_list
|
||||
if len(urls) <= 1:
|
||||
return urls[0] if urls else ''
|
||||
|
||||
results = {}
|
||||
threads = []
|
||||
|
||||
def test_host(url):
|
||||
try:
|
||||
start_time = time.time()
|
||||
response = requests.head(url, timeout=1.0, allow_redirects=False)
|
||||
delay = (time.time() - start_time) * 1000
|
||||
results[url] = delay
|
||||
except Exception as e:
|
||||
results[url] = float('inf')
|
||||
for url in urls:
|
||||
t = threading.Thread(target=test_host, args=(url,))
|
||||
threads.append(t)
|
||||
t.start()
|
||||
for t in threads:
|
||||
t.join()
|
||||
return min(results.items(), key=lambda x: x[1])[0]
|
||||
|
||||
def md5(self, sign_key):
|
||||
md5_hash = MD5.new()
|
||||
md5_hash.update(sign_key.encode('utf-8'))
|
||||
md5_result = md5_hash.hexdigest()
|
||||
return md5_result
|
||||
|
||||
def js(self, param):
|
||||
return '&'.join(f"{k}={v}" for k, v in param.items())
|
||||
|
||||
def getheaders(self, param=None):
|
||||
if param is None:param = {}
|
||||
t=str(int(time.time()*1000))
|
||||
param['key']='cb808529bae6b6be45ecfab29a4889bc'
|
||||
param['t']=t
|
||||
sha1_hash = SHA1.new()
|
||||
sha1_hash.update(self.md5(self.js(param)).encode('utf-8'))
|
||||
sign = sha1_hash.hexdigest()
|
||||
deviceid = str(uuid.uuid4())
|
||||
headers = {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.61 Chrome/126.0.6478.61 Not/A)Brand/8 Safari/537.36',
|
||||
'Accept': 'application/json, text/plain, */*',
|
||||
'sign': sign,
|
||||
't': t,
|
||||
'deviceid':deviceid
|
||||
}
|
||||
return headers
|
||||
|
||||
def convert_field_name(self, field):
|
||||
field = field.lower()
|
||||
if field.startswith('vod') and len(field) > 3:
|
||||
field = field.replace('vod', 'vod_')
|
||||
if field.startswith('type') and len(field) > 4:
|
||||
field = field.replace('type', 'type_')
|
||||
return field
|
||||
|
||||
def getvod(self, array):
|
||||
return [{self.convert_field_name(k): v for k, v in item.items()} for item in array]
|
||||
|
Binary file not shown.
Binary file not shown.
|
@ -18,5 +18,5 @@
|
|||
"type_id": "3"
|
||||
}
|
||||
],
|
||||
"Cookie": "bbs_sid=ducbgilqu67ff2oirbbh9aq7ol;bbs_token=KLC2C9dxzxxpvoGd4vV8VKgN_2FM1Fbe_2B_2BLShggfWjEmh1kmEA"
|
||||
"Cookie": "bbs_token=FA8pLqzdH_2BRZcE3NSxK16kAtCl5DGcWlSstttSkYFQ6Wuw1J; bbs_sid=rj76f5flpvqduij8c460dqhdul; _xn_accesscount_visited=1"
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"SiteUrl": "https://www.leijing.xyz",
|
||||
"Classes": [
|
||||
{
|
||||
"type_name": "电影",
|
||||
"type_id": "42204681950354"
|
||||
},
|
||||
{
|
||||
"type_name": "剧集",
|
||||
"type_id": "42204684250355"
|
||||
},
|
||||
{
|
||||
"type_name": "影视原盘",
|
||||
"type_id": "42212287587456"
|
||||
},
|
||||
{
|
||||
"type_name": "综艺",
|
||||
"type_id": "42210356650363"
|
||||
},
|
||||
{
|
||||
"type_name": "动漫",
|
||||
"type_id": "42204792950357"
|
||||
},
|
||||
{
|
||||
"type_name": "纪录片",
|
||||
"type_id": "42204697150356"
|
||||
},
|
||||
{
|
||||
"type_name": "演唱会",
|
||||
"type_id": "42317879720298"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"SiteUrl": "https://liuqu.banye.tech:7086",
|
||||
"SiteUrl": "https://mogg.banye.tech:7086",
|
||||
"Domains": [
|
||||
"http://123.666291.xyz",
|
||||
"https://mogg.5568.eu.org",
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue