mirror of https://github.com/qist/tvbox.git
parent
ceb6a9f28a
commit
4a24008b7a
@ -0,0 +1,647 @@
|
||||
央视频道,#genre#
|
||||
CCTV1,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000004953&livemode=1&stbId=yu&mode=1
|
||||
CCTV1,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000002226&livemode=1&stbId=yu&mode=1
|
||||
CCTV1,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000030810&livemode=1&stbId=yu&mode=1
|
||||
CCTV1,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000265001&livemode=1&stbId=yu&mode=1
|
||||
CCTV1,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000052&livemode=1&stbId=yu&mode=1
|
||||
CCTV1,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000029752&livemode=1&stbId=yu&mode=1
|
||||
CCTV1,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000018602&livemode=1&stbId=yu&mode=1
|
||||
CCTV1,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000021973&livemode=1&stbId=yu&mode=1
|
||||
CCTV1,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265001&livemode=1&stbId=yu&mode=1
|
||||
CCTV2,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000005000031113&livemode=1&stbId=yu&mode=1
|
||||
CCTV2,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031101&livemode=1&stbId=yu&mode=1
|
||||
CCTV2,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000014161&livemode=1&stbId=yu&mode=1
|
||||
CCTV2,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=8878432746825677699&livemode=1&stbId=yu&mode=1
|
||||
CCTV2,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000012442&livemode=1&stbId=yu&mode=1
|
||||
CCTV2,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000023315&livemode=1&stbId=yu&mode=1
|
||||
CCTV2,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265002&livemode=1&stbId=yu&mode=1
|
||||
CCTV2,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=5353323539453949720&livemode=1&stbId=yu&mode=1
|
||||
CCTV3,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000002000020548&livemode=1&stbId=yu&mode=1
|
||||
CCTV3,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000008883&livemode=1&stbId=yu&mode=1
|
||||
CCTV3,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000265003&livemode=1&stbId=yu&mode=1
|
||||
CCTV3,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000022313&livemode=1&stbId=yu&mode=1
|
||||
CCTV3,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000011218&livemode=1&stbId=yu&mode=1
|
||||
CCTV3,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000013682&livemode=1&stbId=yu&mode=1
|
||||
CCTV3,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265003&livemode=1&stbId=yu&mode=1
|
||||
CCTV3,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8378175926191110263&livemode=1&stbId=yu&mode=1
|
||||
CCTV4,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000005000030093&livemode=1&stbId=yu&mode=1
|
||||
CCTV4,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031102&livemode=1&stbId=yu&mode=1
|
||||
CCTV4,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000265004&livemode=1&stbId=yu&mode=1
|
||||
CCTV4,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000031664&livemode=1&stbId=yu&mode=1
|
||||
CCTV4,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265004&livemode=1&stbId=yu&mode=1
|
||||
CCTV4,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8183388942203045169&livemode=1&stbId=yu&mode=1
|
||||
CCTV5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000008885&livemode=1&stbId=yu&mode=1
|
||||
CCTV5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000016619&livemode=1&stbId=yu&mode=1
|
||||
CCTV5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000265005&livemode=1&stbId=yu&mode=1
|
||||
CCTV5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=4867251683694877276&livemode=1&stbId=yu&mode=1
|
||||
CCTV5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000016431&livemode=1&stbId=yu&mode=1
|
||||
CCTV5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=7680777599813046442&livemode=1&stbId=yu&mode=1
|
||||
CCTV5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000004794&livemode=1&stbId=yu&mode=1
|
||||
CCTV5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000003000030177&livemode=1&stbId=yu&mode=1
|
||||
CCTV5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000025222&livemode=1&stbId=yu&mode=1
|
||||
CCTV5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265005&livemode=1&stbId=yu&mode=1
|
||||
CCTV5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=reallive-cctv5&livemode=1&stbId=yu&mode=1
|
||||
CCTV6,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000008886&livemode=1&stbId=yu&mode=1
|
||||
CCTV6,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000018433&livemode=1&stbId=yu&mode=1
|
||||
CCTV6,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000265006&livemode=1&stbId=yu&mode=1
|
||||
CCTV6,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000004574&livemode=1&stbId=yu&mode=1
|
||||
CCTV6,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6994512760913257617&livemode=1&stbId=yu&mode=1
|
||||
CCTV6,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000001737&livemode=1&stbId=yu&mode=1
|
||||
CCTV6,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000016466&livemode=1&stbId=yu&mode=1
|
||||
CCTV6,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265006&livemode=1&stbId=yu&mode=1
|
||||
CCTV6,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6117099895556651277&livemode=1&stbId=yu&mode=1
|
||||
CCTV7,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000005000026715&livemode=1&stbId=yu&mode=1
|
||||
CCTV7,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031104&livemode=1&stbId=yu&mode=1
|
||||
CCTV7,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000009055&livemode=1&stbId=yu&mode=1
|
||||
CCTV7,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000017218&livemode=1&stbId=yu&mode=1
|
||||
CCTV7,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000024341&livemode=1&stbId=yu&mode=1
|
||||
CCTV7,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265007&livemode=1&stbId=yu&mode=1
|
||||
CCTV7,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7050628689018054317&livemode=1&stbId=yu&mode=1
|
||||
CCTV8,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000008888&livemode=1&stbId=yu&mode=1
|
||||
CCTV8,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000018377&livemode=1&stbId=yu&mode=1
|
||||
CCTV8,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000001070&livemode=1&stbId=yu&mode=1
|
||||
CCTV8,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=8967744667154419073&livemode=1&stbId=yu&mode=1
|
||||
CCTV8,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000003736&livemode=1&stbId=yu&mode=1
|
||||
CCTV8,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000031433&livemode=1&stbId=yu&mode=1
|
||||
CCTV8,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265008&livemode=1&stbId=yu&mode=1
|
||||
CCTV8,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8871488051501921127&livemode=1&stbId=yu&mode=1
|
||||
CCTV9,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000018384&livemode=1&stbId=yu&mode=1
|
||||
CCTV9,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288020&livemode=1&stbId=yu&mode=1
|
||||
CCTV9,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000032162&livemode=1&stbId=yu&mode=1
|
||||
CCTV9,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6350727550077620987&livemode=1&stbId=yu&mode=1
|
||||
CCTV9,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000014583&livemode=1&stbId=yu&mode=1
|
||||
CCTV9,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000028286&livemode=1&stbId=yu&mode=1
|
||||
CCTV9,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265009&livemode=1&stbId=yu&mode=1
|
||||
CCTV9,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6275371742726901431&livemode=1&stbId=yu&mode=1
|
||||
CCTV10,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000012827&livemode=1&stbId=yu&mode=1
|
||||
CCTV10,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000016738&livemode=1&stbId=yu&mode=1
|
||||
CCTV10,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000031506&livemode=1&stbId=yu&mode=1
|
||||
CCTV10,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000023734&livemode=1&stbId=yu&mode=1
|
||||
CCTV10,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000026367&livemode=1&stbId=yu&mode=1
|
||||
CCTV10,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265010&livemode=1&stbId=yu&mode=1
|
||||
CCTV10,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7019587760656900133&livemode=1&stbId=yu&mode=1
|
||||
CCTV11,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040011&livemode=1&stbId=yu&mode=1
|
||||
CCTV11,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031106&livemode=1&stbId=yu&mode=1
|
||||
CCTV11,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000019789&livemode=1&stbId=yu&mode=1
|
||||
CCTV11,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265011&livemode=1&stbId=yu&mode=1
|
||||
CCTV11,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6351457414282570521&livemode=1&stbId=yu&mode=1
|
||||
CCTV12,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040012&livemode=1&stbId=yu&mode=1
|
||||
CCTV12,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031107&livemode=1&stbId=yu&mode=1
|
||||
CCTV12,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000022586&livemode=1&stbId=yu&mode=1
|
||||
CCTV12,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000001640&livemode=1&stbId=yu&mode=1
|
||||
CCTV12,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000032494&livemode=1&stbId=yu&mode=1
|
||||
CCTV12,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265012&livemode=1&stbId=yu&mode=1
|
||||
CCTV12,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=5325631075193490169&livemode=1&stbId=yu&mode=1
|
||||
CCTV13,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000005000001827&livemode=1&stbId=yu&mode=1
|
||||
CCTV13,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031108&livemode=1&stbId=yu&mode=1
|
||||
CCTV13,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000021303&livemode=1&stbId=yu&mode=1
|
||||
CCTV13,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265101&livemode=1&stbId=yu&mode=1
|
||||
CCTV13,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6918130250570453526&livemode=1&stbId=yu&mode=1
|
||||
CCTV14,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000006673&livemode=1&stbId=yu&mode=1
|
||||
CCTV14,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000023358&livemode=1&stbId=yu&mode=1
|
||||
CCTV14,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000013647&livemode=1&stbId=yu&mode=1
|
||||
CCTV14,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6113730085955692619&livemode=1&stbId=yu&mode=1
|
||||
CCTV14,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000008170&livemode=1&stbId=yu&mode=1
|
||||
CCTV14,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000021349&livemode=1&stbId=yu&mode=1
|
||||
CCTV14,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265013&livemode=1&stbId=yu&mode=1
|
||||
CCTV14,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8203666801302077036&livemode=1&stbId=yu&mode=1
|
||||
CCTV15,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000005000018417&livemode=1&stbId=yu&mode=1
|
||||
CCTV15,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031109&livemode=1&stbId=yu&mode=1
|
||||
CCTV15,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000008163&livemode=1&stbId=yu&mode=1
|
||||
CCTV15,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265014&livemode=1&stbId=yu&mode=1
|
||||
CCTV15,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=4832596595465032187&livemode=1&stbId=yu&mode=1
|
||||
CCTV16,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000008000023254&livemode=1&stbId=yu&mode=1
|
||||
CCTV16,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000008000023253&livemode=1&stbId=yu&mode=1
|
||||
CCTV16,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000233001&livemode=1&stbId=yu&mode=1
|
||||
CCTV16,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000233002&livemode=1&stbId=yu&mode=1
|
||||
CCTV17,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288014&livemode=1&stbId=yu&mode=1
|
||||
CCTV17,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000056836&livemode=1&stbId=yu&mode=1
|
||||
CCTV17,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265015&livemode=1&stbId=yu&mode=1
|
||||
CCTV17,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000268004&livemode=1&stbId=yu&mode=1
|
||||
CCTV5+,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031127&livemode=1&stbId=yu&mode=1
|
||||
CCTV5+,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=5350361928876847638&livemode=1&stbId=yu&mode=1
|
||||
CCTV5+,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000015875&livemode=1&stbId=yu&mode=1
|
||||
CCTV5+,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000018504&livemode=1&stbId=yu&mode=1
|
||||
CCTV5+,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000020505&livemode=1&stbId=yu&mode=1
|
||||
CCTV5+,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265016&livemode=1&stbId=yu&mode=1
|
||||
CCTV5+,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=reallive-cctv5plus&livemode=1&stbId=yu&mode=1
|
||||
卫视频道,#genre#
|
||||
湖南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000006692&livemode=1&stbId=yu&mode=1
|
||||
湖南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000030452&livemode=1&stbId=yu&mode=1
|
||||
湖南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000265010&livemode=1&stbId=yu&mode=1
|
||||
湖南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000018044&livemode=1&stbId=yu&mode=1
|
||||
湖南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000009115&livemode=1&stbId=yu&mode=1
|
||||
湖南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000032695&livemode=1&stbId=yu&mode=1
|
||||
湖南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265024&livemode=1&stbId=yu&mode=1
|
||||
湖南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6954818217931477266&livemode=1&stbId=yu&mode=1
|
||||
湖南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8655038471675748531&livemode=1&stbId=yu&mode=1
|
||||
东方卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000014098&livemode=1&stbId=yu&mode=1
|
||||
东方卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000032246&livemode=1&stbId=yu&mode=1
|
||||
东方卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000265007&livemode=1&stbId=yu&mode=1
|
||||
东方卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000003639&livemode=1&stbId=yu&mode=1
|
||||
东方卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6690661682550849647&livemode=1&stbId=yu&mode=1
|
||||
东方卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000005866&livemode=1&stbId=yu&mode=1
|
||||
东方卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000030202&livemode=1&stbId=yu&mode=1
|
||||
东方卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265018&livemode=1&stbId=yu&mode=1
|
||||
东方卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=4699937686040264690&livemode=1&stbId=yu&mode=1
|
||||
东方卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6081477947334326291&livemode=1&stbId=yu&mode=1
|
||||
江苏卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000019351&livemode=1&stbId=yu&mode=1
|
||||
江苏卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000018509&livemode=1&stbId=yu&mode=1
|
||||
江苏卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000265009&livemode=1&stbId=yu&mode=1
|
||||
江苏卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000014861&livemode=1&stbId=yu&mode=1
|
||||
江苏卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000001828&livemode=1&stbId=yu&mode=1
|
||||
江苏卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000004684&livemode=1&stbId=yu&mode=1
|
||||
江苏卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265030&livemode=1&stbId=yu&mode=1
|
||||
江苏卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=4690153511271751319&livemode=1&stbId=yu&mode=1
|
||||
江苏卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=4796340999304424198&livemode=1&stbId=yu&mode=1
|
||||
广东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000014694&livemode=1&stbId=yu&mode=1
|
||||
广东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000030417&livemode=1&stbId=yu&mode=1
|
||||
广东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=5306115082857917057&livemode=1&stbId=yu&mode=1
|
||||
广东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000031076&livemode=1&stbId=yu&mode=1
|
||||
广东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000014176&livemode=1&stbId=yu&mode=1
|
||||
广东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000028357&livemode=1&stbId=yu&mode=1
|
||||
广东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265034&livemode=1&stbId=yu&mode=1
|
||||
广东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=5616881981321254555&livemode=1&stbId=yu&mode=1
|
||||
广东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6604532991586541024&livemode=1&stbId=yu&mode=1
|
||||
浙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000007275&livemode=1&stbId=yu&mode=1
|
||||
浙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000017320&livemode=1&stbId=yu&mode=1
|
||||
浙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000032070&livemode=1&stbId=yu&mode=1
|
||||
浙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000009806&livemode=1&stbId=yu&mode=1
|
||||
浙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000014260&livemode=1&stbId=yu&mode=1
|
||||
浙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265031&livemode=1&stbId=yu&mode=1
|
||||
浙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=4945391150963996912&livemode=1&stbId=yu&mode=1
|
||||
浙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7889730693553663314&livemode=1&stbId=yu&mode=1
|
||||
北京卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000031556&livemode=1&stbId=yu&mode=1
|
||||
北京卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000011502&livemode=1&stbId=yu&mode=1
|
||||
北京卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000265011&livemode=1&stbId=yu&mode=1
|
||||
北京卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000020451&livemode=1&stbId=yu&mode=1
|
||||
北京卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000017156&livemode=1&stbId=yu&mode=1
|
||||
北京卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000021288&livemode=1&stbId=yu&mode=1
|
||||
北京卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265027&livemode=1&stbId=yu&mode=1
|
||||
北京卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8186688740528366039&livemode=1&stbId=yu&mode=1
|
||||
北京卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8258663409451267714&livemode=1&stbId=yu&mode=1
|
||||
深圳卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000007410&livemode=1&stbId=yu&mode=1
|
||||
深圳卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000024026&livemode=1&stbId=yu&mode=1
|
||||
深圳卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000002116&livemode=1&stbId=yu&mode=1
|
||||
深圳卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000009227&livemode=1&stbId=yu&mode=1
|
||||
深圳卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000011645&livemode=1&stbId=yu&mode=1
|
||||
深圳卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265028&livemode=1&stbId=yu&mode=1
|
||||
深圳卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=5352218613763113657&livemode=1&stbId=yu&mode=1
|
||||
深圳卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7696950400632248401&livemode=1&stbId=yu&mode=1
|
||||
天津卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000030788&livemode=1&stbId=yu&mode=1
|
||||
天津卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000006827&livemode=1&stbId=yu&mode=1
|
||||
天津卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000009186&livemode=1&stbId=yu&mode=1
|
||||
天津卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000000831&livemode=1&stbId=yu&mode=1
|
||||
天津卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000003475&livemode=1&stbId=yu&mode=1
|
||||
天津卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265026&livemode=1&stbId=yu&mode=1
|
||||
天津卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6707942579111517572&livemode=1&stbId=yu&mode=1
|
||||
天津卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8798367982904688776&livemode=1&stbId=yu&mode=1
|
||||
山东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000020424&livemode=1&stbId=yu&mode=1
|
||||
山东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000027763&livemode=1&stbId=yu&mode=1
|
||||
山东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000004134&livemode=1&stbId=yu&mode=1
|
||||
山东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000012807&livemode=1&stbId=yu&mode=1
|
||||
山东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000016568&livemode=1&stbId=yu&mode=1
|
||||
山东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265019&livemode=1&stbId=yu&mode=1
|
||||
山东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7347081113971056899&livemode=1&stbId=yu&mode=1
|
||||
山东卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7744799445271696577&livemode=1&stbId=yu&mode=1
|
||||
安徽卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000027288&livemode=1&stbId=yu&mode=1
|
||||
安徽卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000023002&livemode=1&stbId=yu&mode=1
|
||||
安徽卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000009954&livemode=1&stbId=yu&mode=1
|
||||
安徽卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000020780&livemode=1&stbId=yu&mode=1
|
||||
安徽卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000030159&livemode=1&stbId=yu&mode=1
|
||||
安徽卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265025&livemode=1&stbId=yu&mode=1
|
||||
安徽卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=4774346722046993363&livemode=1&stbId=yu&mode=1
|
||||
江西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000032154&livemode=1&stbId=yu&mode=1
|
||||
江西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000011210&livemode=1&stbId=yu&mode=1
|
||||
江西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000013731&livemode=1&stbId=yu&mode=1
|
||||
江西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265032&livemode=1&stbId=yu&mode=1
|
||||
江西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000268001&livemode=1&stbId=yu&mode=1
|
||||
江西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=5616078396620462481&livemode=1&stbId=yu&mode=1
|
||||
黑龙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000025203&livemode=1&stbId=yu&mode=1
|
||||
黑龙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000031107&livemode=1&stbId=yu&mode=1
|
||||
黑龙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000016510&livemode=1&stbId=yu&mode=1
|
||||
黑龙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000001925&livemode=1&stbId=yu&mode=1
|
||||
黑龙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000009082&livemode=1&stbId=yu&mode=1
|
||||
黑龙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265029&livemode=1&stbId=yu&mode=1
|
||||
黑龙江卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8467838254824392379&livemode=1&stbId=yu&mode=1
|
||||
四川卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000006119&livemode=1&stbId=yu&mode=1
|
||||
四川卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000016825&livemode=1&stbId=yu&mode=1
|
||||
贵州卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000025843&livemode=1&stbId=yu&mode=1
|
||||
贵州卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000003169&livemode=1&stbId=yu&mode=1
|
||||
湖北卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000014954&livemode=1&stbId=yu&mode=1
|
||||
湖北卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000022140&livemode=1&stbId=yu&mode=1
|
||||
湖北卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000001000015436&livemode=1&stbId=yu&mode=1
|
||||
湖北卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000010355&livemode=1&stbId=yu&mode=1
|
||||
湖北卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000024621&livemode=1&stbId=yu&mode=1
|
||||
湖北卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265023&livemode=1&stbId=yu&mode=1
|
||||
湖北卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6956052407855047826&livemode=1&stbId=yu&mode=1
|
||||
辽宁卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000008940&livemode=1&stbId=yu&mode=1
|
||||
辽宁卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000011671&livemode=1&stbId=yu&mode=1
|
||||
辽宁卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000001945&livemode=1&stbId=yu&mode=1
|
||||
辽宁卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000024033&livemode=1&stbId=yu&mode=1
|
||||
辽宁卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265022&livemode=1&stbId=yu&mode=1
|
||||
辽宁卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7638375013635582245&livemode=1&stbId=yu&mode=1
|
||||
广西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040014&livemode=1&stbId=yu&mode=1
|
||||
广西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031118&livemode=1&stbId=yu&mode=1
|
||||
广西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000019837&livemode=1&stbId=yu&mode=1
|
||||
重庆卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000025797&livemode=1&stbId=yu&mode=1
|
||||
重庆卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000001096&livemode=1&stbId=yu&mode=1
|
||||
重庆卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000018937&livemode=1&stbId=yu&mode=1
|
||||
重庆卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265017&livemode=1&stbId=yu&mode=1
|
||||
重庆卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=4995134319251569870&livemode=1&stbId=yu&mode=1
|
||||
东南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000005829&livemode=1&stbId=yu&mode=1
|
||||
东南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000010584&livemode=1&stbId=yu&mode=1
|
||||
东南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000009263&livemode=1&stbId=yu&mode=1
|
||||
东南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265033&livemode=1&stbId=yu&mode=1
|
||||
东南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7721801662260370363&livemode=1&stbId=yu&mode=1
|
||||
吉林卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040013&livemode=1&stbId=yu&mode=1
|
||||
吉林卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031117&livemode=1&stbId=yu&mode=1
|
||||
吉林卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000027730&livemode=1&stbId=yu&mode=1
|
||||
海南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000006211&livemode=1&stbId=yu&mode=1
|
||||
海南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000023773&livemode=1&stbId=yu&mode=1
|
||||
云南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040019&livemode=1&stbId=yu&mode=1
|
||||
云南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031120&livemode=1&stbId=yu&mode=1
|
||||
云南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000024694&livemode=1&stbId=yu&mode=1
|
||||
厦门卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266006&livemode=1&stbId=yu&mode=1
|
||||
河南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000005000017925&livemode=1&stbId=yu&mode=1
|
||||
河南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031119&livemode=1&stbId=yu&mode=1
|
||||
河南卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000027731&livemode=1&stbId=yu&mode=1
|
||||
河北卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040016&livemode=1&stbId=yu&mode=1
|
||||
河北卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000017118&livemode=1&stbId=yu&mode=1
|
||||
陕西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040017&livemode=1&stbId=yu&mode=1
|
||||
陕西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000007495&livemode=1&stbId=yu&mode=1
|
||||
山西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040023&livemode=1&stbId=yu&mode=1
|
||||
山西卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000021220&livemode=1&stbId=yu&mode=1
|
||||
甘肃卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040021&livemode=1&stbId=yu&mode=1
|
||||
甘肃卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031121&livemode=1&stbId=yu&mode=1
|
||||
甘肃卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000017827&livemode=1&stbId=yu&mode=1
|
||||
宁夏卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040022&livemode=1&stbId=yu&mode=1
|
||||
宁夏卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000031451&livemode=1&stbId=yu&mode=1
|
||||
青海卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040015&livemode=1&stbId=yu&mode=1
|
||||
青海卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000013359&livemode=1&stbId=yu&mode=1
|
||||
西藏卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000015894&livemode=1&stbId=yu&mode=1
|
||||
新疆卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040018&livemode=1&stbId=yu&mode=1
|
||||
新疆卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000029441&livemode=1&stbId=yu&mode=1
|
||||
三沙卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288016&livemode=1&stbId=yu&mode=1
|
||||
农林卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000046&livemode=1&stbId=yu&mode=1
|
||||
农林卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266003&livemode=1&stbId=yu&mode=1
|
||||
延边卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000049&livemode=1&stbId=yu&mode=1
|
||||
延边卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266008&livemode=1&stbId=yu&mode=1
|
||||
兵团卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040020&livemode=1&stbId=yu&mode=1
|
||||
兵团卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266005&livemode=1&stbId=yu&mode=1
|
||||
康巴卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266002&livemode=1&stbId=yu&mode=1
|
||||
安多卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266001&livemode=1&stbId=yu&mode=1
|
||||
内蒙古卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000014080&livemode=1&stbId=yu&mode=1
|
||||
大湾区卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000045&livemode=1&stbId=yu&mode=1
|
||||
大湾区卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000011619&livemode=1&stbId=yu&mode=1
|
||||
山东教育卫视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000004097&livemode=1&stbId=yu&mode=1
|
||||
地方频道,#genre#
|
||||
北京纪实科教,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031204&livemode=1&stbId=yu&mode=1
|
||||
北京纪实科教,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000065&livemode=1&stbId=yu&mode=1
|
||||
北京纪实科教,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000026&livemode=1&stbId=yu&mode=1
|
||||
北京纪实科教,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000001910&livemode=1&stbId=yu&mode=1
|
||||
北京纪实科教,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000028380&livemode=1&stbId=yu&mode=1
|
||||
北京纪实科教,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265020&livemode=1&stbId=yu&mode=1
|
||||
北京卡酷少儿,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000265008&livemode=1&stbId=yu&mode=1
|
||||
北京卡酷少儿,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=7851974109718180595&livemode=1&stbId=yu&mode=1
|
||||
北京卡酷少儿,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000002413&livemode=1&stbId=yu&mode=1
|
||||
广东珠江,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000033&livemode=1&stbId=yu&mode=1
|
||||
广东珠江,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000011655&livemode=1&stbId=yu&mode=1
|
||||
广东嘉佳卡通,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000025964&livemode=1&stbId=yu&mode=1
|
||||
湖南茶频道,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031209&livemode=1&stbId=yu&mode=1
|
||||
湖南茶频道,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000070&livemode=1&stbId=yu&mode=1
|
||||
湖南快乐垂钓,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031206&livemode=1&stbId=yu&mode=1
|
||||
湖南快乐垂钓,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000067&livemode=1&stbId=yu&mode=1
|
||||
湖南金鹰卡通,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040024&livemode=1&stbId=yu&mode=1
|
||||
湖南金鹰卡通,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000016601&livemode=1&stbId=yu&mode=1
|
||||
湖南金鹰纪实,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031203&livemode=1&stbId=yu&mode=1
|
||||
湖南金鹰纪实,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000011724&livemode=1&stbId=yu&mode=1
|
||||
江苏优漫卡通,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000010063&livemode=1&stbId=yu&mode=1
|
||||
江苏财富天下,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031208&livemode=1&stbId=yu&mode=1
|
||||
江苏财富天下,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000069&livemode=1&stbId=yu&mode=1
|
||||
上海ICS,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000030951&livemode=1&stbId=yu&mode=1
|
||||
上海ICS,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288018&livemode=1&stbId=yu&mode=1
|
||||
上海ICS,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000001&livemode=1&stbId=yu&mode=1
|
||||
上海都市,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000018926&livemode=1&stbId=yu&mode=1
|
||||
上海都市,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000012&livemode=1&stbId=yu&mode=1
|
||||
上海教育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288019&livemode=1&stbId=yu&mode=1
|
||||
上海新闻综合,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031110&livemode=1&stbId=yu&mode=1
|
||||
上海新闻综合,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000005&livemode=1&stbId=yu&mode=1
|
||||
上海纪实人文,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000021713&livemode=1&stbId=yu&mode=1
|
||||
上海纪实人文,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000004000010282&livemode=1&stbId=yu&mode=1
|
||||
上海纪实人文,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000010606&livemode=1&stbId=yu&mode=1
|
||||
上海纪实人文,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000016545&livemode=1&stbId=yu&mode=1
|
||||
上海纪实人文,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265021&livemode=1&stbId=yu&mode=1
|
||||
上海东方影视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000032212&livemode=1&stbId=yu&mode=1
|
||||
上海东方影视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000013&livemode=1&stbId=yu&mode=1
|
||||
上海第一财经,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000027146&livemode=1&stbId=yu&mode=1
|
||||
上海第一财经,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000004&livemode=1&stbId=yu&mode=1
|
||||
上海五星体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000017540&livemode=1&stbId=yu&mode=1
|
||||
上海五星体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000007&livemode=1&stbId=yu&mode=1
|
||||
上海哈哈炫动,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000005000031641&livemode=1&stbId=yu&mode=1
|
||||
上海哈哈炫动,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031123&livemode=1&stbId=yu&mode=1
|
||||
上海哈哈炫动,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000000172&livemode=1&stbId=yu&mode=1
|
||||
其它频道,#genre#
|
||||
中国教育1台,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000002000002652&livemode=1&stbId=yu&mode=1
|
||||
中国教育1台,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288015&livemode=1&stbId=yu&mode=1
|
||||
中国教育1台,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000027253&livemode=1&stbId=yu&mode=1
|
||||
中国教育2台,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031201&livemode=1&stbId=yu&mode=1
|
||||
中国教育2台,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288017&livemode=1&stbId=yu&mode=1
|
||||
中国教育2台,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000047&livemode=1&stbId=yu&mode=1
|
||||
中国教育2台,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266004&livemode=1&stbId=yu&mode=1
|
||||
中国教育4台,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000012123&livemode=1&stbId=yu&mode=1
|
||||
中国教育4台,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031126&livemode=1&stbId=yu&mode=1
|
||||
中国教育4台,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000025333&livemode=1&stbId=yu&mode=1
|
||||
求索纪录,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000010&livemode=1&stbId=yu&mode=1
|
||||
求索纪录,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000002000032052&livemode=1&stbId=yu&mode=1
|
||||
求索动物,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000009&livemode=1&stbId=yu&mode=1
|
||||
求索动物,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000002000010046&livemode=1&stbId=yu&mode=1
|
||||
求索科学,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000011&livemode=1&stbId=yu&mode=1
|
||||
求索科学,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000002000032344&livemode=1&stbId=yu&mode=1
|
||||
求索生活,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000008&livemode=1&stbId=yu&mode=1
|
||||
求索生活,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000002000003382&livemode=1&stbId=yu&mode=1
|
||||
中国天气,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000005000031974&livemode=1&stbId=yu&mode=1
|
||||
中国天气,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000057&livemode=1&stbId=yu&mode=1
|
||||
健康养生,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288006&livemode=1&stbId=yu&mode=1
|
||||
中华美食,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000052&livemode=1&stbId=yu&mode=1
|
||||
中华美食,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266015&livemode=1&stbId=yu&mode=1
|
||||
风尚音乐,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000004&livemode=1&stbId=yu&mode=1
|
||||
风尚音乐,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=5529729098703832176&livemode=1&stbId=yu&mode=1
|
||||
高清娱乐,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000013&livemode=1&stbId=yu&mode=1
|
||||
高清娱乐,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000003000001569&livemode=1&stbId=yu&mode=1
|
||||
华数服务,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000025&livemode=1&stbId=yu&mode=1
|
||||
精品剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000002&livemode=1&stbId=yu&mode=1
|
||||
精品剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=8230197131234717902&livemode=1&stbId=yu&mode=1
|
||||
精品综合,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000008&livemode=1&stbId=yu&mode=1
|
||||
精品综合,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=5595720619887440144&livemode=1&stbId=yu&mode=1
|
||||
漫游世界,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000017&livemode=1&stbId=yu&mode=1
|
||||
漫游世界,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000003000028434&livemode=1&stbId=yu&mode=1
|
||||
欧美影院,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000005&livemode=1&stbId=yu&mode=1
|
||||
欧美影院,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=7185203501769528108&livemode=1&stbId=yu&mode=1
|
||||
热播精选,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000016&livemode=1&stbId=yu&mode=1
|
||||
热播精选,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7681593242002292003&livemode=1&stbId=yu&mode=1
|
||||
少儿动漫,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000003&livemode=1&stbId=yu&mode=1
|
||||
少儿动漫,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=8145334647720731271&livemode=1&stbId=yu&mode=1
|
||||
探索纪录,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000007&livemode=1&stbId=yu&mode=1
|
||||
探索纪录,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=5359008697329269813&livemode=1&stbId=yu&mode=1
|
||||
电子竞技,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000015&livemode=1&stbId=yu&mode=1
|
||||
电子竞技,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000003000011654&livemode=1&stbId=yu&mode=1
|
||||
亚洲影院,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000006&livemode=1&stbId=yu&mode=1
|
||||
亚洲影院,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=5841816227539527643&livemode=1&stbId=yu&mode=1
|
||||
精彩影视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000063&livemode=1&stbId=yu&mode=1
|
||||
精彩影视,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000320630&livemode=1&stbId=yu&mode=1
|
||||
睛彩竞技,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000011528&livemode=1&stbId=yu&mode=1
|
||||
睛彩竞技,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000011530&livemode=1&stbId=yu&mode=1
|
||||
睛彩竞技,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000060&livemode=1&stbId=yu&mode=1
|
||||
睛彩竞技,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000270001&livemode=1&stbId=yu&mode=1
|
||||
睛彩青少,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000011525&livemode=1&stbId=yu&mode=1
|
||||
睛彩青少,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000031315&livemode=1&stbId=yu&mode=1
|
||||
睛彩青少,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000068&livemode=1&stbId=yu&mode=1
|
||||
睛彩青少,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000270007&livemode=1&stbId=yu&mode=1
|
||||
睛彩篮球,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000011529&livemode=1&stbId=yu&mode=1
|
||||
睛彩篮球,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000011531&livemode=1&stbId=yu&mode=1
|
||||
睛彩篮球,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000061&livemode=1&stbId=yu&mode=1
|
||||
睛彩篮球,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000065&livemode=1&stbId=yu&mode=1
|
||||
睛彩篮球,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000270002&livemode=1&stbId=yu&mode=1
|
||||
睛彩篮球,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000270006&livemode=1&stbId=yu&mode=1
|
||||
睛彩广场舞,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000011523&livemode=1&stbId=yu&mode=1
|
||||
睛彩广场舞,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000011524&livemode=1&stbId=yu&mode=1
|
||||
睛彩广场舞,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000062&livemode=1&stbId=yu&mode=1
|
||||
睛彩广场舞,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000064&livemode=1&stbId=yu&mode=1
|
||||
睛彩广场舞,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000270003&livemode=1&stbId=yu&mode=1
|
||||
睛彩广场舞,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000270005&livemode=1&stbId=yu&mode=1
|
||||
华数4K,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000014&livemode=1&stbId=yu&mode=1
|
||||
华数4K,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000003000004748&livemode=1&stbId=yu&mode=1
|
||||
纯享4K,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000011651&livemode=1&stbId=yu&mode=1
|
||||
炫动3D,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000012&livemode=1&stbId=yu&mode=1
|
||||
炫动3D,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000003000000558&livemode=1&stbId=yu&mode=1
|
||||
移动云VR,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000015686&livemode=1&stbId=yu&mode=1
|
||||
英雄联盟音乐节,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000011&livemode=1&stbId=yu&mode=1
|
||||
英雄联盟音乐节,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8978605063318475207&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频,#genre#
|
||||
咪咕体育-4K,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000005180&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-1,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000001000005969&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-2,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000001000007218&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-3,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000001000008001&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-4,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000001000010129&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000001000010948&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-6,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000001000028638&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-7,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000001000031494&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-8,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000000097&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-9,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000002019&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-10,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000003915&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-11,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000004193&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-12,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000005837&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-13,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000006077&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-14,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000006658&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-15,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000009788&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-16,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000010833&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-17,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000011297&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-18,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000011518&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-19,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000012558&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-20,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000012616&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-21,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000015470&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-22,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000019839&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-23,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000021904&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-24,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000025380&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-25,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000027691&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-26,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000031669&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-27,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000011518&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-28,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000011519&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-29,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000011520&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-30,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000011521&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-31,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000011522&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-32,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000063&livemode=1&stbId=yu&mode=1
|
||||
咪咕视频-33,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000270004&livemode=1&stbId=yu&mode=1
|
||||
咪咕游戏赛事-1,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000001000008176&livemode=1&stbId=yu&mode=1
|
||||
咪咕足球赛事-2,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000001000005308&livemode=1&stbId=yu&mode=1
|
||||
咪咕足球赛事-3,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000001000008379&livemode=1&stbId=yu&mode=1
|
||||
咪咕足球赛事-4,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000002809&livemode=1&stbId=yu&mode=1
|
||||
咪咕足球赛事-5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000015560&livemode=1&stbId=yu&mode=1
|
||||
咪咕足球赛事-6,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000023434&livemode=1&stbId=yu&mode=1
|
||||
SiTV频道,#genre#
|
||||
SiTV动漫秀场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000002000023636&livemode=1&stbId=yu&mode=1
|
||||
SiTV动漫秀场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031113&livemode=1&stbId=yu&mode=1
|
||||
SiTV动漫秀场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000009&livemode=1&stbId=yu&mode=1
|
||||
SiTV游戏风云,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000002000027005&livemode=1&stbId=yu&mode=1
|
||||
SiTV游戏风云,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031114&livemode=1&stbId=yu&mode=1
|
||||
SiTV游戏风云,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000011&livemode=1&stbId=yu&mode=1
|
||||
SiTV法治天地,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=9001547084732463424&livemode=1&stbId=yu&mode=1
|
||||
SiTV法治天地,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000014&livemode=1&stbId=yu&mode=1
|
||||
SiTV劲爆体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000002000029972&livemode=1&stbId=yu&mode=1
|
||||
SiTV劲爆体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000008&livemode=1&stbId=yu&mode=1
|
||||
SiTV魅力足球,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031207&livemode=1&stbId=yu&mode=1
|
||||
SiTV魅力足球,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000068&livemode=1&stbId=yu&mode=1
|
||||
SiTV金色学堂,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000010000026105&livemode=1&stbId=yu&mode=1
|
||||
SiTV金色学堂,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000061&livemode=1&stbId=yu&mode=1
|
||||
SiTV欢笑剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000002000009455&livemode=1&stbId=yu&mode=1
|
||||
SiTV欢笑剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000007000010001&livemode=1&stbId=yu&mode=1
|
||||
SiTV欢笑剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000016&livemode=1&stbId=yu&mode=1
|
||||
SiTV七彩戏剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031116&livemode=1&stbId=yu&mode=1
|
||||
SiTV七彩戏剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000010&livemode=1&stbId=yu&mode=1
|
||||
SiTV生活时尚,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000002000019634&livemode=1&stbId=yu&mode=1
|
||||
SiTV生活时尚,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000006&livemode=1&stbId=yu&mode=1
|
||||
SiTV乐游,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000006000040025&livemode=1&stbId=yu&mode=1
|
||||
SiTV乐游,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031112&livemode=1&stbId=yu&mode=1
|
||||
SiTV乐游,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000059&livemode=1&stbId=yu&mode=1
|
||||
SiTV乐游,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000092&livemode=1&stbId=yu&mode=1
|
||||
SiTV都市剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000002000004412&livemode=1&stbId=yu&mode=1
|
||||
SiTV都市剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000031111&livemode=1&stbId=yu&mode=1
|
||||
SiTV都市剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000015&livemode=1&stbId=yu&mode=1
|
||||
SiTV东方财经,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000007000010003&livemode=1&stbId=yu&mode=1
|
||||
SiTV东方财经,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000090&livemode=1&stbId=yu&mode=1
|
||||
iHOT频道,#genre#
|
||||
iHOT爱科学,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000047&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱科学,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000160630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱历史,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000046&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱历史,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000150630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱旅行,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000056&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱旅行,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000250630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000060&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000290630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱赛车,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000055&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱赛车,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000240630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱浪漫,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000035&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱浪漫,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000040630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱奇谈,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000058&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱奇谈,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000270630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱动漫,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000059&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱动漫,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000280630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱谍战,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000038&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱谍战,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000070630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱科幻,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000033&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱科幻,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000020630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱喜剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000032&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱喜剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000010630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱悬疑,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000036&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱悬疑,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000050630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱院线,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000034&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱院线,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000030630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱玩具,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000053&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱玩具,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000220630&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱幼教,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000004000000049&livemode=1&stbId=yu&mode=1
|
||||
iHOT爱幼教,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=wasusyt&Contentid=6000000006000180630&livemode=1&stbId=yu&mode=1
|
||||
CGTN频道,#genre#
|
||||
CGTN,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=7745129417417101820&livemode=1&stbId=yu&mode=1
|
||||
CGTN,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000002000009569&livemode=1&stbId=yu&mode=1
|
||||
CGTN俄语,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000280004&livemode=1&stbId=yu&mode=1
|
||||
CGTN法语,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000280003&livemode=1&stbId=yu&mode=1
|
||||
CGTN纪录,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=7114647837765104058&livemode=1&stbId=yu&mode=1
|
||||
CGTN阿拉伯语,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000280001&livemode=1&stbId=yu&mode=1
|
||||
CGTN西班牙语,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000280002&livemode=1&stbId=yu&mode=1
|
||||
BesTV频道,#genre#
|
||||
BesTV星光影院,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288013&livemode=1&stbId=yu&mode=1
|
||||
BesTV谍战剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288004&livemode=1&stbId=yu&mode=1
|
||||
BesTV华语影院,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288005&livemode=1&stbId=yu&mode=1
|
||||
BesTV全球大片,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288009&livemode=1&stbId=yu&mode=1
|
||||
BesTV热门剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288010&livemode=1&stbId=yu&mode=1
|
||||
BesTV青春动漫,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288008&livemode=1&stbId=yu&mode=1
|
||||
BesTV宝宝动画,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288002&livemode=1&stbId=yu&mode=1
|
||||
BesTV电竞天堂,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288003&livemode=1&stbId=yu&mode=1
|
||||
BesTV热门综艺,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288011&livemode=1&stbId=yu&mode=1
|
||||
BesTV戏曲精选,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288012&livemode=1&stbId=yu&mode=1
|
||||
BesTV百变课堂,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288001&livemode=1&stbId=yu&mode=1
|
||||
BesTV看天下精选,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000011000288007&livemode=1&stbId=yu&mode=1
|
||||
BesTV-1,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000002898&livemode=1&stbId=yu&mode=1
|
||||
BesTV-2,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000004876&livemode=1&stbId=yu&mode=1
|
||||
BesTV-3,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000006777&livemode=1&stbId=yu&mode=1
|
||||
BesTV-4,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000018009&livemode=1&stbId=yu&mode=1
|
||||
BesTV-5,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000019233&livemode=1&stbId=yu&mode=1
|
||||
BesTV-6,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000022620&livemode=1&stbId=yu&mode=1
|
||||
BesTV-7,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000023256&livemode=1&stbId=yu&mode=1
|
||||
BesTV-8,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000026930&livemode=1&stbId=yu&mode=1
|
||||
BesTV-9,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000024&livemode=1&stbId=yu&mode=1
|
||||
BesTV-10,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000026&livemode=1&stbId=yu&mode=1
|
||||
BesTV-11,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000027&livemode=1&stbId=yu&mode=1
|
||||
BesTV-12,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000028&livemode=1&stbId=yu&mode=1
|
||||
BesTV-13,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000030&livemode=1&stbId=yu&mode=1
|
||||
BesTV-14,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000049&livemode=1&stbId=yu&mode=1
|
||||
BesTV-15,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000050&livemode=1&stbId=yu&mode=1
|
||||
BesTV-16http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000051&livemode=1&stbId=yu&mode=1
|
||||
BesTV-17,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000001116&livemode=1&stbId=yu&mode=1
|
||||
BesTV-18,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=bestzb&Contentid=5000000001000017342&livemode=1&stbId=yu&mode=1
|
||||
BesTV-19,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000025&livemode=1&stbId=yu&mode=1
|
||||
BesTV-20,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000029&livemode=1&stbId=yu&mode=1
|
||||
NewTV频道,#genre#
|
||||
NewTV黑莓电影,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000001&livemode=1&stbId=yu&mode=1
|
||||
NewTV黑莓电影,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000019624&livemode=1&stbId=yu&mode=1
|
||||
NewTV黑莓电影,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8785669936177902664&livemode=1&stbId=yu&mode=1
|
||||
NewTV黑莓动画,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000002&livemode=1&stbId=yu&mode=1
|
||||
NewTV黑莓动画,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000021734&livemode=1&stbId=yu&mode=1
|
||||
NewTV黑莓动画,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6497762188035533951&livemode=1&stbId=yu&mode=1
|
||||
NewTV哒啵赛事,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000004&livemode=1&stbId=yu&mode=1
|
||||
NewTV哒啵赛事,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000039&livemode=1&stbId=yu&mode=1
|
||||
NewTV哒啵赛事,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000040&livemode=1&stbId=yu&mode=1
|
||||
NewTV哒啵赛事,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000003775&livemode=1&stbId=yu&mode=1
|
||||
NewTV哒啵赛事,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000006906&livemode=1&stbId=yu&mode=1
|
||||
NewTV哒啵赛事,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=5320946857686967621&livemode=1&stbId=yu&mode=1
|
||||
NewTV哒啵电竞,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000066&livemode=1&stbId=yu&mode=1
|
||||
NewTV哒啵电竞,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000032327&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级电视剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000032&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级电视剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000008139&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级电视剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000024993&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级电视剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000268003&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级电影,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000031&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级电影,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000012884&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级电影,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000003000012426&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级电影,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000002120&livemode=1&stbId=yu&mode=1
|
||||
NewTV动作电影,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000017&livemode=1&stbId=yu&mode=1
|
||||
NewTV动作电影,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000018653&livemode=1&stbId=yu&mode=1
|
||||
NewTV动作电影,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8103864434730665389&livemode=1&stbId=yu&mode=1
|
||||
NewTV家庭剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000012&livemode=1&stbId=yu&mode=1
|
||||
NewTV家庭剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000008284&livemode=1&stbId=yu&mode=1
|
||||
NewTV家庭剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6316377948248689070&livemode=1&stbId=yu&mode=1
|
||||
NewTV惊悚悬疑,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000015&livemode=1&stbId=yu&mode=1
|
||||
NewTV惊悚悬疑,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000024282&livemode=1&stbId=yu&mode=1
|
||||
NewTV惊悚悬疑,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7151256057701199617&livemode=1&stbId=yu&mode=1
|
||||
NewTV精品大剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000020&livemode=1&stbId=yu&mode=1
|
||||
NewTV精品大剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000013968&livemode=1&stbId=yu&mode=1
|
||||
NewTV精品大剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7882297361445410858&livemode=1&stbId=yu&mode=1
|
||||
NewTV明星大片,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000019008&livemode=1&stbId=yu&mode=1
|
||||
NewTV军旅剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000014&livemode=1&stbId=yu&mode=1
|
||||
NewTV军旅剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7485075951068666323&livemode=1&stbId=yu&mode=1
|
||||
NewTV古装剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000024&livemode=1&stbId=yu&mode=1
|
||||
NewTV古装剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6859053933687922163&livemode=1&stbId=yu&mode=1
|
||||
NewTV欢乐剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000050&livemode=1&stbId=yu&mode=1
|
||||
NewTV欢乐剧场,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266012&livemode=1&stbId=yu&mode=1
|
||||
NewTV东北热剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000051&livemode=1&stbId=yu&mode=1
|
||||
NewTV东北热剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266013&livemode=1&stbId=yu&mode=1
|
||||
NewTV爱情喜剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000010&livemode=1&stbId=yu&mode=1
|
||||
NewTV爱情喜剧,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=8393829412396288037&livemode=1&stbId=yu&mode=1
|
||||
NewTV精品纪录,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000019&livemode=1&stbId=yu&mode=1
|
||||
NewTV精品纪录,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000013730&livemode=1&stbId=yu&mode=1
|
||||
NewTV精品纪录,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6298506997017621594&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000030&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000009204&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000009601&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000007755&livemode=1&stbId=yu&mode=1
|
||||
NewTV精品体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000021&livemode=1&stbId=yu&mode=1
|
||||
NewTV精品体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000014634&livemode=1&stbId=yu&mode=1
|
||||
NewTV精品体育,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6460382139625130259&livemode=1&stbId=yu&mode=1
|
||||
NewTV中国功夫,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000009&livemode=1&stbId=yu&mode=1
|
||||
NewTV中国功夫,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=5897056882324761054&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级综艺,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000029&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级综艺,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000025771&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级综艺,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000023658&livemode=1&stbId=yu&mode=1
|
||||
NewTV超级综艺,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000268002&livemode=1&stbId=yu&mode=1
|
||||
NewTV金牌综艺,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000005&livemode=1&stbId=yu&mode=1
|
||||
NewTV金牌综艺,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000004000026167&livemode=1&stbId=yu&mode=1
|
||||
NewTV金牌综艺,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6399725674632152632&livemode=1&stbId=yu&mode=1
|
||||
NewTV魅力潇湘,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000041&livemode=1&stbId=yu&mode=1
|
||||
NewTV魅力潇湘,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000006197&livemode=1&stbId=yu&mode=1
|
||||
NewTV魅力潇湘,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266014&livemode=1&stbId=yu&mode=1
|
||||
NewTV炫舞未来,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000044&livemode=1&stbId=yu&mode=1
|
||||
NewTV炫舞未来,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000001000000515&livemode=1&stbId=yu&mode=1
|
||||
NewTV农业致富,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000003&livemode=1&stbId=yu&mode=1
|
||||
NewTV农业致富,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6193684637634073625&livemode=1&stbId=yu&mode=1
|
||||
NewTV军事评论,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000022&livemode=1&stbId=yu&mode=1
|
||||
NewTV军事评论,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=5822616274253344775&livemode=1&stbId=yu&mode=1
|
||||
NewTV精品萌宠,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000067&livemode=1&stbId=yu&mode=1
|
||||
NewTV精品萌宠,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000006000032328&livemode=1&stbId=yu&mode=1
|
||||
NewTV潮妈辣婆,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000018&livemode=1&stbId=yu&mode=1
|
||||
NewTV潮妈辣婆,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=6516734029835465177&livemode=1&stbId=yu&mode=1
|
||||
NewTV怡伴健康,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000023&livemode=1&stbId=yu&mode=1
|
||||
NewTV怡伴健康,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266011&livemode=1&stbId=yu&mode=1
|
||||
NewTV怡伴健康,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=7820874641606664941&livemode=1&stbId=yu&mode=1
|
||||
NewTV武搏世界,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000007&livemode=1&stbId=yu&mode=1
|
||||
NewTV武搏世界,http://gslbserv.itv.cmvideo.cn:80/1.m3u8?channel-id=ystenlive&Contentid=bokesen&livemode=1&stbId=yu&mode=1
|
||||
@ -0,0 +1,40 @@
|
||||
var rule = {
|
||||
title: '56动漫',
|
||||
host: 'https://www.56dm.cc/',
|
||||
url: 'https://www.56dm.cc/type/fyclass-fypage.html',
|
||||
searchUrl: 'https://www.56dm.cc/search/**----------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: '.snui-header-menu-nav li:gt(0):lt(6);a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: `js:
|
||||
if(/\\.(m3u8|mp4)/.test(input)){
|
||||
input = {parse:0,url:input}
|
||||
}else{
|
||||
if(rule.parse_url.startsWith('json:')){
|
||||
let purl = rule.parse_url.replace('json:','')+input;
|
||||
let html = request(purl);
|
||||
input = {parse:0,url:JSON.parse(html).url}
|
||||
}else{
|
||||
input= rule.parse_url+input;
|
||||
}
|
||||
}
|
||||
`,
|
||||
limit: 6,
|
||||
推荐: '.cCBf_FAAEfbc;li;a&&title;.lazyload&&data-original;.dAD_BBCI&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.cCBf_FAAEfbc li;a&&title;a&&data-original;.dAD_BBCI&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text",
|
||||
"img": ".stui-content__thumb .lazyload&&data-original",
|
||||
"desc": ".cCBf_DABCcac__hcIdeE p:eq(0)&&Text;.cCBf_DABCcac__hcIdeE p:eq(1)&&Text;.cCBf_DABCcac__hcIdeE p:eq(2)&&Text;.cCBf_DABCcac__hcIdeE p:eq(3)&&Text;.cCBf_DABCcac__hcIdeE p:eq(4)&&Text",
|
||||
"content": ".detail&&Text",
|
||||
"tabs": ".channel-tab li",
|
||||
"lists": ".play-list-content:eq(#id) li"
|
||||
},
|
||||
搜索: '.cCBf_FAAEfbc__dbD;a&&title;.lazyload&&data-original;.dAD_BBCI&&Text;a&&href;.cCBf_FAAEfbc__hcIdeE&&p:eq(0) p&&Text',
|
||||
}
|
||||
@ -0,0 +1,169 @@
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 注意事项:此源仅支持 影视TV 及 爱佬版tvbox最新版
|
||||
// 3个set-Cookie
|
||||
|
||||
var rule = {
|
||||
title:'Anime1动畫',
|
||||
host:'https://anime1.me',
|
||||
url: '/fyclass',
|
||||
detailUrl:'/?cat=fyid',
|
||||
searchUrl: '/page/fypage?s=**',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
headers:{'User-Agent': 'PC_UA'},
|
||||
timeout:5000,
|
||||
class_name:'連載中&2025&2024&2023&2022&2021&2020&2019&2018&更早',
|
||||
class_url:'連載中&2025&2024&2023&2022&2021&2020&2019&2018&2017',
|
||||
play_parse:true,
|
||||
lazy:`js:
|
||||
var apiurl = 'https://v.anime1.me/api';
|
||||
var html = request(apiurl, {
|
||||
headers: {
|
||||
'Referer': HOST,
|
||||
},
|
||||
body: 'd=' + input,
|
||||
method: 'POST',
|
||||
withHeaders: true
|
||||
});
|
||||
let json = JSON.parse(html);
|
||||
print(json);
|
||||
log(Object.keys(json));
|
||||
let setCk = Object.keys(json).filter(it => it.toLowerCase() === "set-cookie");
|
||||
let cookie = setCk ? json[setCk] : "";
|
||||
// 3个set-Cookie
|
||||
if (Array.isArray(cookie)) {
|
||||
cookie = cookie.join(';');
|
||||
}
|
||||
cookie = cookie.split(';').filter(function(it) {
|
||||
return ['e', 'p', 'h'].includes(it.split('=')[0])
|
||||
}).join(';');
|
||||
log(cookie);
|
||||
var purl = JSON.parse(json.body).s[0].src;
|
||||
if (purl.startsWith('/')) {
|
||||
purl = 'https:' + purl
|
||||
}
|
||||
input = {
|
||||
jx: 0,
|
||||
url: purl,
|
||||
parse: 0,
|
||||
header: JSON.stringify({
|
||||
'referer': HOST,
|
||||
'Cookie': cookie,
|
||||
'user-agent': PC_UA
|
||||
}),
|
||||
}
|
||||
`,
|
||||
limit:6,
|
||||
推荐: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
return x[2].includes('連載中');
|
||||
});
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
一级: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
if (MY_CATE === '連載中') return x[2].includes(MY_CATE);
|
||||
else if (MY_CATE === '2017') return x[3] <= MY_CATE;
|
||||
else return x[3] == MY_CATE;
|
||||
});
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
二级: `js:
|
||||
pdfh = jsp.pdfh; pdfa = jsp.pdfa; pd = jsp.pd;
|
||||
var html = request(input);
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
var vid = input.split('=')[1];
|
||||
let playKeys = Object.values(list).find(function(x) {
|
||||
return x[0] === parseInt(vid);
|
||||
});
|
||||
VOD = {
|
||||
vod_pic: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
vod_id: playKeys[0],
|
||||
vod_name: playKeys[1],
|
||||
vod_content: playKeys[2],
|
||||
vod_year: playKeys[3],
|
||||
type_name: playKeys[4],
|
||||
vod_actor: playKeys[5],
|
||||
};
|
||||
var pageurl = pd(html, '.cat-links&&a&&href');
|
||||
var pagenum = 1;
|
||||
let vod_tab_list = [];
|
||||
let vlist = [];
|
||||
for (let p = 1; p < parseInt(pagenum) + 1; p++) {
|
||||
let phtml = request(pageurl + '/page/' + pagenum);
|
||||
let new_vod_list = [];
|
||||
let vodList = [];
|
||||
vodList = pdfa(phtml, '.site-main&&article');
|
||||
for (let i = 0; i < vodList.length; i++) {
|
||||
let it = vodList[i];
|
||||
let ptitle = pdfh(it, '.entry-title&&Text').replace(/\\[(.*)\\]/, '$1');
|
||||
let purl = pd(it, '.video-js&&data-apireq');
|
||||
new_vod_list.push(ptitle + '$' + purl);
|
||||
}
|
||||
vlist = vlist.concat(new_vod_list);
|
||||
try {
|
||||
pagenum = pd(phtml, '.nav-previous&&a&&href').split('/page/')[1];
|
||||
} catch(e) {}
|
||||
}
|
||||
let vlist2 = vlist.reverse().join("#");
|
||||
vod_tab_list.push(vlist2);
|
||||
VOD.vod_play_from = '在线播放';
|
||||
VOD.vod_play_url = vod_tab_list.join("$$$");
|
||||
`,
|
||||
搜索: `js:
|
||||
var d = [];
|
||||
function stripHtmlTag(src) {
|
||||
return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' ');
|
||||
}
|
||||
var timestamp = new Date().getTime();
|
||||
var json = request('https://d1zquzjgwo9yb.cloudfront.net/?_=' + timestamp);
|
||||
var list = JSON.parse(json);
|
||||
var wd = input.split('=')[1];
|
||||
let playKeys = Object.values(list).filter(function(x) {
|
||||
return x[1].includes(wd);
|
||||
});
|
||||
log(playKeys);
|
||||
playKeys.forEach(function(it) {
|
||||
d.push({
|
||||
title: stripHtmlTag(it[1]),
|
||||
img: 'https://sta.anicdn.com/playerImg/8.jpg',
|
||||
desc: it[2],
|
||||
url: it[0],
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
`,
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,13 @@
|
||||
muban.短视2.二级.img = '.detail-pic&&img&&data-src';
|
||||
var rule = {
|
||||
title: 'NyaFun',
|
||||
模板:'短视2',
|
||||
host: 'https://www.nyafun.net',
|
||||
homeUrl:'/map.html',
|
||||
url: '/index.php/api/vod#type=fyclass&page=fypage',
|
||||
class_name:'番剧&剧场',
|
||||
class_url:'2&1',
|
||||
detailUrl:'/bangumi/fyid.html',
|
||||
推荐:'.border-box .public-list-box;a&&title;.lazy&&data-src;.public-list-prb&&Text;a&&href',
|
||||
double: false, // 推荐内容是否双层定位
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
[
|
||||
{
|
||||
"share_name": "优品阁",
|
||||
"share_id": "uWa9gbM3RJ7"
|
||||
},
|
||||
{
|
||||
"share_name": "阿里1T",
|
||||
"share_id": "mxAfB6eRgY4"
|
||||
},
|
||||
{
|
||||
"share_name": "平凡中的",
|
||||
"share_id": "4ydLxf7VgH7"
|
||||
},
|
||||
{
|
||||
"share_name": "tacit0924",
|
||||
"share_id": "DNgnCudf4cD?pwd=6666"
|
||||
},
|
||||
{
|
||||
"share_name": "黄妈",
|
||||
"share_id": "4bGRVUdUtct"
|
||||
},
|
||||
{
|
||||
"share_name": "YYDSVIP",
|
||||
"share_id": "dieULBdYP3D"
|
||||
},
|
||||
{
|
||||
"share_name": "优源阁",
|
||||
"share_id": "RnjUi1urdb2"
|
||||
},
|
||||
{
|
||||
"share_name": "风流动漫",
|
||||
"share_id": "WdaaeX7HK44"
|
||||
},
|
||||
{
|
||||
"share_name": "风流剧集",
|
||||
"share_id": "kgxWjZsK6bq"
|
||||
},
|
||||
{
|
||||
"share_name": "xiaaluo",
|
||||
"share_id": "sg8CdGUwmUr"
|
||||
},
|
||||
{
|
||||
"share_name": "4K影视",
|
||||
"share_id": "wHPKUENKFsS"
|
||||
},
|
||||
{
|
||||
"share_name": "诺兰全集",
|
||||
"share_id": "gf2GebXnZHh"
|
||||
},
|
||||
{
|
||||
"share_name": "纪录片",
|
||||
"share_id": "fSNHaYST47s"
|
||||
},
|
||||
{
|
||||
"share_name": "掌灯者|港",
|
||||
"share_id": "wHPKUENKFsS"
|
||||
},
|
||||
{
|
||||
"share_name": "掌灯者|一",
|
||||
"share_id": "wHPKUENKFsS"
|
||||
},
|
||||
{
|
||||
"share_name": "掌灯者|二",
|
||||
"share_id": "wHPKUENKFsS"
|
||||
},
|
||||
{
|
||||
"share_name": "掌灯者|三",
|
||||
"share_id": "wHPKUENKFsS"
|
||||
}
|
||||
]
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
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 it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -0,0 +1,607 @@
|
||||
/*!
|
||||
* 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}));
|
||||
@ -0,0 +1,504 @@
|
||||
(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+)?$/;
|
||||
var NON_PRIMITIVES = /\[[@#~](,[@#~])*\]|\[\]|\{([@i]:[@#~])(,[@i]:[@#~])*\}|\{\}/g;
|
||||
var IDENTIFIERS = /[$_a-z][$\w]*/gi;
|
||||
var VARIABLES = /i(\.i|\[[@#i]\])*/g;
|
||||
var ACCESSOR = /(\.i|\[[@#i]\])/g;
|
||||
var OPERATORS = /(===?|!==?|>=?|<=?|&&|\|\||[+\-\*\/%])/g;
|
||||
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) {
|
||||
var match = src.slice(index + open.length).match(TAGS[open]);
|
||||
match = match ? match[0] : "";
|
||||
var simplified = match.replace(STRINGS, "@");
|
||||
if (!match || ~simplified.indexOf(open)) {
|
||||
return index + 1
|
||||
}
|
||||
var inner = match.slice(0, 0 - open.length);
|
||||
if (inner.charAt(0) === "-") var wsCollapseLeft = true;
|
||||
if (inner.slice(-1) === "-") var wsCollapseRight = true;
|
||||
inner = inner.replace(/^-|-$/g, "").trim();
|
||||
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 === "{{{") {
|
||||
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, "@");
|
||||
extracted.src = extracted.src.replace(/\|\|/g, "~").split("|");
|
||||
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]
|
||||
};
|
||||
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")
|
||||
};
|
||||
Parser.prototype.parseExpr = function(src, opts) {
|
||||
opts = opts || {};
|
||||
var parsed1 = this.extractEnt(src, STRINGS, "@");
|
||||
parsed1.src = parsed1.src.replace(EOPS, function(s, before, op, after) {
|
||||
return op in operators ? before + operators[op] + after : s
|
||||
});
|
||||
var parsed2 = this.extractEnt(parsed1.src, IDENTS_AND_NUMS, function(s) {
|
||||
return s in constants || NUMBER.test(s) ? "#" : null
|
||||
});
|
||||
var parsed3 = this.extractEnt(parsed2.src, IDENTIFIERS, "i");
|
||||
parsed3.src = parsed3.src.replace(/\s+/g, "");
|
||||
var simplified = parsed3.src;
|
||||
while (simplified !== (simplified = this.replaceComplex(simplified)));
|
||||
while (simplified !== (simplified = simplified.replace(/i(\.i|\[[@#i]\])+/, "v")));
|
||||
simplified = simplified.replace(/[iv]\[v?\]/g, "x");
|
||||
simplified = simplified.replace(/[@#~v]/g, "i");
|
||||
simplified = simplified.replace(OPERATORS, "%");
|
||||
simplified = simplified.replace(/!+[i]/g, "i");
|
||||
var terms = opts.terms ? simplified.split(",") : [simplified];
|
||||
terms.forEach(function(term) {
|
||||
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();
|
||||
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(",") + ")"
|
||||
};
|
||||
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 + '"'
|
||||
}
|
||||
return JSON.parse(str)
|
||||
};
|
||||
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;
|
||||
this.isSilent = true
|
||||
},
|
||||
include: function(name) {
|
||||
name = this.parseQuoted(name);
|
||||
var incSrc = this.readTemplateFile(name);
|
||||
this.isInclude = true;
|
||||
this.tokenize(incSrc);
|
||||
this.isInclude = false
|
||||
}
|
||||
};
|
||||
tagHandlers.assign = tagHandlers.set;
|
||||
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
|
||||
};
|
||||
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;
|
||||
val = filter.apply(data, arr)
|
||||
} else {
|
||||
throw new Error("Invalid filter: " + name)
|
||||
}
|
||||
}
|
||||
if (opts.autoEscape && name !== opts.autoEscape && name !== "safe") {
|
||||
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
|
||||
};
|
||||
|
||||
function trimLeft(str) {
|
||||
return str.replace(LEADING_SPACE, "")
|
||||
}
|
||||
|
||||
function trimRight(str) {
|
||||
return str.replace(TRAILING_SPACE, "")
|
||||
}
|
||||
|
||||
function matchAll(str, reg, fn) {
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
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 it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -0,0 +1,843 @@
|
||||
var rule = {
|
||||
title: '360影视[官]',
|
||||
host: 'https://www.360kan.com',
|
||||
homeUrl: 'https://api.web.360kan.com/v1/rank?cat=2&size=9',
|
||||
detailUrl: 'https://api.web.360kan.com/v1/detail?cat=fyclass&id=fyid',
|
||||
searchUrl: 'https://api.so.360kan.com/index?force_v=1&kw=**&from=&pageno=fypage&v_ap=1&tab=all',
|
||||
url: 'https://api.web.360kan.com/v1/fyfilter&size=35&pageno=fypage&callback=',
|
||||
filterable: 1,
|
||||
filter_url: 'filter/list?catid=fyclass&rank={{fl.排序}}&cat={{fl.类型}}&year={{fl.年代}}&area={{fl.地区}}',
|
||||
filter: {
|
||||
"1": [{
|
||||
"key": "类型",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "喜剧"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "爱情"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "动作"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "恐怖"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "剧情"
|
||||
}, {
|
||||
"n": "犯罪",
|
||||
"v": "犯罪"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "奇幻"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "战争"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "悬疑"
|
||||
}, {
|
||||
"n": "动画",
|
||||
"v": "动画"
|
||||
}, {
|
||||
"n": "文艺",
|
||||
"v": "文艺"
|
||||
}, {
|
||||
"n": "纪录",
|
||||
"v": "纪录"
|
||||
}, {
|
||||
"n": "传记",
|
||||
"v": "传记"
|
||||
}, {
|
||||
"n": "歌舞",
|
||||
"v": "歌舞"
|
||||
}, {
|
||||
"n": "古装",
|
||||
"v": "古装"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "历史"
|
||||
}, {
|
||||
"n": "惊悚",
|
||||
"v": "惊悚"
|
||||
}, {
|
||||
"n": "伦理",
|
||||
"v": "伦理"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "地区",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "内地",
|
||||
"v": "大陆"
|
||||
}, {
|
||||
"n": "中国香港",
|
||||
"v": "香港"
|
||||
}, {
|
||||
"n": "中国台湾",
|
||||
"v": "台湾"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "泰国"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "韩国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
}, {
|
||||
"n": "法国",
|
||||
"v": "法国"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "英国"
|
||||
}, {
|
||||
"n": "德国",
|
||||
"v": "德国"
|
||||
}, {
|
||||
"n": "印度",
|
||||
"v": "印度"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "lt_year"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近热映",
|
||||
"v": "rankhot"
|
||||
}, {
|
||||
"n": "最近上映",
|
||||
"v": "ranklatest"
|
||||
}, {
|
||||
"n": "最受好评",
|
||||
"v": "rankpoint"
|
||||
}]
|
||||
}],
|
||||
"2": [{
|
||||
"key": "类型",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "言情",
|
||||
"v": "言情"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "剧情"
|
||||
}, {
|
||||
"n": "伦理",
|
||||
"v": "伦理"
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "喜剧"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "悬疑"
|
||||
}, {
|
||||
"n": "都市",
|
||||
"v": "都市"
|
||||
}, {
|
||||
"n": "偶像",
|
||||
"v": "偶像"
|
||||
}, {
|
||||
"n": "古装",
|
||||
"v": "古装"
|
||||
}, {
|
||||
"n": "军事",
|
||||
"v": "军事"
|
||||
}, {
|
||||
"n": "警匪",
|
||||
"v": "警匪"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "历史"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "励志"
|
||||
}, {
|
||||
"n": "神话",
|
||||
"v": "神话"
|
||||
}, {
|
||||
"n": "谍战",
|
||||
"v": "谍战"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "青春剧"
|
||||
}, {
|
||||
"n": "家庭",
|
||||
"v": "家庭剧"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "动作"
|
||||
}, {
|
||||
"n": "情景",
|
||||
"v": "情景"
|
||||
}, {
|
||||
"n": "武侠",
|
||||
"v": "武侠"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "地区",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "内地",
|
||||
"v": "内地"
|
||||
}, {
|
||||
"n": "中国香港",
|
||||
"v": "香港"
|
||||
}, {
|
||||
"n": "中国台湾",
|
||||
"v": "台湾"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "泰国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "韩国"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "英国"
|
||||
}, {
|
||||
"n": "新加坡",
|
||||
"v": "新加坡"
|
||||
}]
|
||||
}, {
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "lt_year"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近热映",
|
||||
"v": "rankhot"
|
||||
}, {
|
||||
"n": "最近上映",
|
||||
"v": "ranklatest"
|
||||
}, {
|
||||
"n": "最受好评",
|
||||
"v": "rankpoint"
|
||||
}]
|
||||
}],
|
||||
"3": [{
|
||||
"key": "类型",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "脱口秀",
|
||||
"v": "脱口秀"
|
||||
}, {
|
||||
"n": "真人秀",
|
||||
"v": "真人秀"
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "搞笑"
|
||||
}, {
|
||||
"n": "选秀",
|
||||
"v": "选秀"
|
||||
}, {
|
||||
"n": "八卦",
|
||||
"v": "八卦"
|
||||
}, {
|
||||
"n": "访谈",
|
||||
"v": "访谈"
|
||||
}, {
|
||||
"n": "情感",
|
||||
"v": "情感"
|
||||
}, {
|
||||
"n": "生活",
|
||||
"v": "生活"
|
||||
}, {
|
||||
"n": "晚会",
|
||||
"v": "晚会"
|
||||
}, {
|
||||
"n": "音乐",
|
||||
"v": "音乐"
|
||||
}, {
|
||||
"n": "职场",
|
||||
"v": "职场"
|
||||
}, {
|
||||
"n": "美食",
|
||||
"v": "美食"
|
||||
}, {
|
||||
"n": "时尚",
|
||||
"v": "时尚"
|
||||
}, {
|
||||
"n": "游戏",
|
||||
"v": "游戏"
|
||||
}, {
|
||||
"n": "少儿",
|
||||
"v": "少儿"
|
||||
}, {
|
||||
"n": "体育",
|
||||
"v": "体育"
|
||||
}, {
|
||||
"n": "纪实",
|
||||
"v": "纪实"
|
||||
}, {
|
||||
"n": "科教",
|
||||
"v": "科教"
|
||||
}, {
|
||||
"n": "曲艺",
|
||||
"v": "曲艺"
|
||||
}, {
|
||||
"n": "歌舞",
|
||||
"v": "歌舞"
|
||||
}, {
|
||||
"n": "财经",
|
||||
"v": "财经"
|
||||
}, {
|
||||
"n": "汽车",
|
||||
"v": "汽车"
|
||||
}, {
|
||||
"n": "播报",
|
||||
"v": "播报"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "地区",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "内地",
|
||||
"v": "大陆"
|
||||
}, {
|
||||
"n": "中国香港",
|
||||
"v": "香港"
|
||||
}, {
|
||||
"n": "中国台湾",
|
||||
"v": "台湾"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "欧美"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近热映",
|
||||
"v": "rankhot"
|
||||
}, {
|
||||
"n": "最近上映",
|
||||
"v": "ranklatest"
|
||||
}]
|
||||
}],
|
||||
"4": [{
|
||||
"key": "类型",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "热血"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}, {
|
||||
"n": "美少女",
|
||||
"v": "美少女"
|
||||
}, {
|
||||
"n": "魔幻",
|
||||
"v": "魔幻"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "经典"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "励志"
|
||||
}, {
|
||||
"n": "少儿",
|
||||
"v": "少儿"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "冒险"
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "搞笑"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "推理"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "恋爱"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "治愈"
|
||||
}, {
|
||||
"n": "幻想",
|
||||
"v": "幻想"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "校园"
|
||||
}, {
|
||||
"n": "动物",
|
||||
"v": "动物"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "机战"
|
||||
}, {
|
||||
"n": "亲子",
|
||||
"v": "亲子"
|
||||
}, {
|
||||
"n": "儿歌",
|
||||
"v": "儿歌"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "运动"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "悬疑"
|
||||
}, {
|
||||
"n": "怪物",
|
||||
"v": "怪物"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "战争"
|
||||
}, {
|
||||
"n": "益智",
|
||||
"v": "益智"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "青春"
|
||||
}, {
|
||||
"n": "童话",
|
||||
"v": "童话"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "竞技"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "动作"
|
||||
}, {
|
||||
"n": "社会",
|
||||
"v": "社会"
|
||||
}, {
|
||||
"n": "友情",
|
||||
"v": "友情"
|
||||
}, {
|
||||
"n": "真人版",
|
||||
"v": "真人版"
|
||||
}, {
|
||||
"n": "电影版",
|
||||
"v": "电影版"
|
||||
}, {
|
||||
"n": "OVA版",
|
||||
"v": "OVA版"
|
||||
}, {
|
||||
"n": "TV版",
|
||||
"v": "TV版"
|
||||
}, {
|
||||
"n": "新番动画",
|
||||
"v": "新番动画"
|
||||
}, {
|
||||
"n": "完结动画",
|
||||
"v": "完结动画"
|
||||
}]
|
||||
}, {
|
||||
"key": "地区",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "内地",
|
||||
"v": "大陆"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
}]
|
||||
}, {
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "2004"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "更早"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近热映",
|
||||
"v": "rankhot"
|
||||
}, {
|
||||
"n": "最近上映",
|
||||
"v": "ranklatest"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
filter_def: {},
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: '电视剧&电影&综艺&动漫',
|
||||
class_url: '2&1&3&4',
|
||||
limit: 5,
|
||||
multi: 1,
|
||||
searchable: 2,
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
try {
|
||||
let api = "" + input.split("?")[0];
|
||||
console.log(api);
|
||||
let response = fetch(api, {
|
||||
method: 'get',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
});
|
||||
let bata = JSON.parse(response);
|
||||
if (bata.url.includes("qq,qiyi,imgo,youku,leshi,bilibili1,m1905")) {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: bata.url,
|
||||
jx: 0,
|
||||
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
|
||||
};
|
||||
} else {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: input.split("?")[0],
|
||||
jx: 1,
|
||||
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
|
||||
};
|
||||
}
|
||||
} catch {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: input.split("?")[0],
|
||||
jx: 1,
|
||||
danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
|
||||
};
|
||||
}
|
||||
}),
|
||||
// 疑似t4专用的
|
||||
// lazy:'js:input={parse: 1, playUrl: "", jx: 1, url: input.split("?")[0]}',
|
||||
// 手动调用解析请求json的url,此lazy不方便
|
||||
// lazy:'js:input="https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
|
||||
推荐: 'json:data;title;cover;comment;cat+ent_id;description',
|
||||
一级: 'json:data.movies;title;cover;pubdate;id;description',
|
||||
二级: '',
|
||||
二级: $js.toString(() => {
|
||||
let html = JSON.parse(fetch(input, fetch_params));
|
||||
let data = html.data;
|
||||
let tilte = data.title;
|
||||
let img = data.cdncover;
|
||||
let vod_type = data.moviecategory.join(",");
|
||||
let area = data.area.join(",");
|
||||
let director = data.director.join(",");
|
||||
let actor = data.actor.join(",");
|
||||
let content = data.description;
|
||||
let base_vod = {
|
||||
vod_id: input,
|
||||
vod_name: tilte,
|
||||
type_name: vod_type,
|
||||
vod_actor: actor,
|
||||
vod_director: director,
|
||||
vod_content: content,
|
||||
vod_remarks: area,
|
||||
vod_pic: urljoin2(input, img)
|
||||
};
|
||||
let delta = 50;
|
||||
let vod_play = {};
|
||||
let sites = data.playlink_sites;
|
||||
sites.forEach(function(site) {
|
||||
let playList = "";
|
||||
let vodItems = [];
|
||||
print(data)
|
||||
if (data.allupinfo) {
|
||||
let total = parseInt(data.allupinfo[site]);
|
||||
print(total)
|
||||
for (let j = 1; j < total; j += delta) {
|
||||
let end = Math.min(total, j + delta - 1);
|
||||
print(end)
|
||||
let url2 = buildUrl(input, {
|
||||
start: j,
|
||||
end: end,
|
||||
site: site
|
||||
});
|
||||
let vod_data = JSON.parse(fetch(url2), fetch_params).data;
|
||||
if (vod_data != null) {
|
||||
if (vod_data.allepidetail) {
|
||||
vod_data = vod_data.allepidetail[site];
|
||||
vod_data.forEach(function(item, index) {
|
||||
vodItems.push((item.playlink_num || "") + "$" + urlDeal(item.url || ""))
|
||||
})
|
||||
} else {
|
||||
vod_data = vod_data.defaultepisode;
|
||||
vod_data.forEach(function(item, index) {
|
||||
vodItems.push((item.period || "") + (item.name || "") + "$" + urlDeal(item.url) || "")
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let item = data.playlinksdetail[site];
|
||||
vodItems.push((item.sort || "") + "$" + urlDeal(item.default_url || ""))
|
||||
}
|
||||
if (vodItems.length > 0) {
|
||||
playList = vodItems.join("#")
|
||||
}
|
||||
if (playList.length < 1) {
|
||||
return
|
||||
}
|
||||
vod_play[site] = playList
|
||||
});
|
||||
let tabs = Object.keys(vod_play);
|
||||
let playUrls = [];
|
||||
for (let id in tabs) {
|
||||
print("id:" + id);
|
||||
playUrls.push(vod_play[tabs[id]])
|
||||
}
|
||||
if (tabs.length > 0) {
|
||||
let vod_play_from = tabs.join("$$$");
|
||||
let vod_play_url = playUrls.join("$$$");
|
||||
base_vod.vod_play_from = vod_play_from;
|
||||
base_vod.vod_play_url = vod_play_url
|
||||
}
|
||||
VOD = base_vod;
|
||||
}),
|
||||
搜索: 'json:data.longData.rows;titleTxt||titlealias;cover;cat_name;cat_id+en_id;description',
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,12 @@
|
||||
Object.assign(muban.mxpro.二级, {
|
||||
tab_text: 'div--small&&Text',
|
||||
});
|
||||
var rule = {
|
||||
模板: 'mxpro',
|
||||
title: '剧圈圈',
|
||||
host: 'https://www.jqqzx.cc/',
|
||||
url: '/vodshow/id/fyclass/page/fypage.html',
|
||||
searchUrl: '/vodsearch**/page/fypage.html',
|
||||
class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;.*/(.*?)\.html',
|
||||
cate_exclude: '今日更新|热榜',
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,64 @@
|
||||
var rule = {
|
||||
author: '小可乐/240526/第一版',
|
||||
title: '动漫巴士[漫]',
|
||||
host: 'http://dm84.site',
|
||||
hostJs: 'print(HOST);let html=request(HOST,{headers:{"User-Agent":MOBILE_UA}});let src= jsp.pdfh(html,"ul&&a:eq(0)&&href");print(src);HOST=src',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
编码: 'utf-8',
|
||||
timeout: 5000,
|
||||
|
||||
homeUrl: '/',
|
||||
url: '/show-fyclass--fyfilter-fypage.html',
|
||||
filter_url: '{{fl.by}}-{{fl.class}}--{{fl.year}}',
|
||||
detailUrl: '',
|
||||
searchUrl: '/s-**---------fypage.html',
|
||||
searchable: 1,
|
||||
quickSearch: 1,
|
||||
filterable: 1,
|
||||
|
||||
class_name: '国产动漫&日本动漫&欧美动漫&电影',
|
||||
class_url: '1&2&3&4',
|
||||
filter_def: {},
|
||||
|
||||
proxy_rule: '',
|
||||
sniffer: 0,
|
||||
isVideo: '',
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
lazy: `js:
|
||||
let html = request(input);
|
||||
let kurl = pdfh(html,'body&&iframe').match(/src="(.*?)"/)[1];
|
||||
input= kurl
|
||||
`,
|
||||
|
||||
limit: 9,
|
||||
double: false,
|
||||
推荐: '*',
|
||||
//列表;标题;图片;描述;链接;详情(可不写)
|
||||
一级: '.v_list li;a&&title;a&&data-bg;.desc&&Text;a&&href',
|
||||
二级: {
|
||||
//名称;类型
|
||||
"title": "h1&&Text;meta[name*=class]&&content",
|
||||
//图片
|
||||
"img": "img&&src",
|
||||
//主要描述;年份;地区;演员;导演
|
||||
"desc": "meta[name*=update_date]&&content;meta[name*=release_date]&&content;meta[name*=area]&&content;meta[name*=actor]&&content;meta[name*=director]&&content",
|
||||
//简介
|
||||
"content": "p:eq(-2)&&Text",
|
||||
//线路数组
|
||||
"tabs": ".tab_control&&li",
|
||||
//线路标题
|
||||
"tab_text": "body&&Text",
|
||||
//播放数组 选集列表
|
||||
"lists": ".play_list:eq(#id)&&a",
|
||||
//选集标题
|
||||
"list_text": "body&&Text",
|
||||
//选集链接
|
||||
"list_url": "a&&href"
|
||||
},
|
||||
搜索: '*',
|
||||
|
||||
filter: 'H4sIAAAAAAAAA+2WbUsqQRTH3+/HmNe+0LWn21eJXlgIRU+Q3UBEsLTaCrYtSm9cb2RQ2YOVFUFa9mWcGf0Wjc6cMxPFstDlcgXf7e/39+zo2XPUlEUiZHTMSpGZeJKMksnZWCJBQmQ+NhcXyKt1erQteDk2+1OIsRSZF5quldvZckcLIOmQsqcb9LmurALImPOL5QsqUwAZd3O6TgFmF2+tpy3IJGB2vmvUScDzKmfNxjGcJwHrspVWKQN1EiBrZV55w1WZArynd8Svd+GeEvCzb5VZZoW9XPF97ICp0uPpEDY5GY8t6h6zwlO78Biwx3bYHlCue2n4qPZR00e0j5je1t42fVj7sOEjP9CLS8OPaD9i+mHth00/pP2Q6Qe1H/zYr4mk0S13j9Z2PnVLN1HA0rR4Kdy5Wauxu32VTE0vJfSzvs1RZ10licmFxXjnWGs8ZBH7r+3E+l778AImQkKQnfDbJeq59OYKMgl6Dqv0rYAT2AU877hEf1fgPAlBdoIVa+LdQZ2EIDvBVq95HjMJmN3XWc6BTAK+l8MG9SBTgHUrHsvkoU4CZm6Ze/A8Fei6be5Usa4LmD2U2n9O+MElxMj9re2prY3+z1vr92vlW+e3mT7b9+UW9ee5l+Z54F/Ms/ib0nwt6v8sHfj2POeLdPMc6iQE+eb3nWenyrJrcJ6E/jz3zjxb6XeqCRqqbAwAAA=='
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
var rule = {
|
||||
title: '动画片大全',
|
||||
host: 'https://www.dhpdq2.com/',
|
||||
url: 'https://www.dhpdq2.com/katong/fyclass-fypage/',
|
||||
searchUrl: '/vodsearch/**----------fypage---/',
|
||||
class_parse: '.c_class li;a&&Text;a&&href;.*/(.*?)/',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
推荐: '.stui-vodlist;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
double: true,
|
||||
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.detail_list&&ul:eq(1)&&li&&a:eq(2)&&Text',
|
||||
img: '.vodlist_thumb&&data-original',
|
||||
desc: '.playinfo&&p:eq(0)&&Text;.playinfo&&p:eq(1)&&Text;.playinfo&&p:eq(2)&&Text;.playinfo&&p:eq(3)&&Text',
|
||||
content: '.content:eq(1)',
|
||||
tabs: '.relatesdh .title h3',
|
||||
lists: '.relatesdh:eq(#id) li',
|
||||
},
|
||||
搜索: '*',
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,29 @@
|
||||
var rule = {
|
||||
title: '好看动漫',
|
||||
host: 'https://www.youjiula.com/',
|
||||
url: 'https://www.youjiula.com/youjiu/fyclass-fypage.html',
|
||||
searchUrl: 'https://www.youjiula.com/search.php?page=fypage&searchword=**&searchtype=',
|
||||
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": "#desc&&Text",
|
||||
"tabs": ".stui-pannel-box h3",
|
||||
"lists": ".stui-content__playlist:eq(#id) li"
|
||||
},
|
||||
搜索: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
|
||||
|
||||
}
|
||||
@ -0,0 +1,209 @@
|
||||
globalThis.h_ost = 'http://xxsp.xxmh.top/';
|
||||
var key = CryptoJS.enc.Base64.parse("MGY3OTFiZmMwZGM2MWU4Zg==");
|
||||
var iv = CryptoJS.enc.Base64.parse("MGY3OTFiZmMwZGM2MWU4Zg==");
|
||||
globalThis.AES_Decrypt = function(word) {
|
||||
try {
|
||||
var decrypt = CryptoJS.AES.decrypt(word, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7,
|
||||
});
|
||||
const decryptedText = decrypt.toString(CryptoJS.enc.Utf8);
|
||||
if (!decryptedText) {
|
||||
throw new Error("解密后的内容为空");
|
||||
}
|
||||
return decryptedText;
|
||||
} catch (e) {
|
||||
console.error("解密失败:", e);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
globalThis.AES_Encrypt = function(word) {
|
||||
var encrypted = CryptoJS.AES.encrypt(word, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
});
|
||||
return encrypted.toString();
|
||||
};
|
||||
|
||||
globalThis.vod1 = function(t, pg) {
|
||||
let html1 = request(h_ost + 'api.php/getappapi.index/typeFilterVodList', {
|
||||
body: {
|
||||
area: '全部',
|
||||
year: '全部',
|
||||
type_id: t,
|
||||
page: pg,
|
||||
sort: '最新',
|
||||
lang: '全部',
|
||||
class: '全部'
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
let html = JSON.parse(html1);
|
||||
return (AES_Decrypt(html.data));
|
||||
}
|
||||
globalThis.vodids = function(ids) {
|
||||
let html1 = fetch(h_ost + 'api.php/getappapi.index/vodDetail', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
vod_id: ids,
|
||||
}
|
||||
});
|
||||
let html = JSON.parse(html1);
|
||||
const rdata = JSON.parse(AES_Decrypt(html.data));
|
||||
const data = {
|
||||
vod_id: ids,
|
||||
vod_name: rdata.vod.vod_name,
|
||||
vod_remarks: rdata.vod.vod_remarks,
|
||||
vod_actor: rdata.vod.vod_actor,
|
||||
vod_director: rdata.vod.vod_director,
|
||||
vod_content: rdata.vod.vod_content,
|
||||
vod_play_from: '',
|
||||
vod_play_url: ''
|
||||
};
|
||||
|
||||
rdata.vod_play_list.forEach((value) => {
|
||||
data.vod_play_from += value.player_info.show + '$$$';
|
||||
value.urls.forEach((v) => {
|
||||
data.vod_play_url += v.name + '$' + value.player_info.parse + '~' + v.url + '~' + rdata.vod.vod_name + '~' + v.name + '#';
|
||||
});
|
||||
data.vod_play_url += '$$$';
|
||||
});
|
||||
return data;
|
||||
}
|
||||
//搜索
|
||||
globalThis.ssvod = function(wd) {
|
||||
var html1 = fetch(h_ost + 'api.php/getappapi.index/searchList', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
keywords: wd,
|
||||
typepage_id: 1,
|
||||
}
|
||||
});
|
||||
let html = JSON.parse(html1);
|
||||
return AES_Decrypt(html.data);
|
||||
}
|
||||
//解析
|
||||
globalThis.jxx = function(id, url, name, juji) {
|
||||
/* if("741852963"!=='741852963'){
|
||||
return 'https://s0.mall.tcl.com/group1/M00/00/89/CvoGBGdcOPaAAUxvADwZniVV2bc476.mp4';
|
||||
}*/
|
||||
if (id.startsWith('http')) {
|
||||
return {
|
||||
parse: 1,
|
||||
url: id + url,
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
if (id == 0) {
|
||||
return {
|
||||
parse: 0,
|
||||
url: id + url,
|
||||
jx: 1,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
|
||||
let html1 = request(h_ost + 'api.php/getappapi.index/vodParse', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
parse_api: id,
|
||||
url: AES_Encrypt(url),
|
||||
}
|
||||
});
|
||||
let html = AES_Decrypt(JSON.parse(html1).data);
|
||||
console.log(html);
|
||||
let decry = html.replace(/\n/g, '').replace(/\\/g, '');
|
||||
let matches = decry.match(/"url":"([^"]+)"/);
|
||||
if (!matches || matches[1] === null) {
|
||||
matches = decry.match(/"url": "([^"]+)"/);
|
||||
}
|
||||
return {
|
||||
parse: 0,
|
||||
url: matches[1],
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
|
||||
var rule = {
|
||||
title: '小熊',
|
||||
host: '',
|
||||
detailUrl: 'fyid',
|
||||
searchUrl: '**',
|
||||
url: 'fyclass',
|
||||
searchable: 2,
|
||||
quickSearch: 1,
|
||||
filterable: 0,
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&3&4',
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
const parts = input.split('~');
|
||||
input = jxx(parts[0], parts[1], parts[2], parts[3]);
|
||||
}),
|
||||
推荐: $js.toString(() => {
|
||||
let data = vod1(0, 0);
|
||||
let bata = JSON.parse(data).recommend_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
一级: $js.toString(() => {
|
||||
let data = vod1(input, MY_PAGE);
|
||||
let bata = JSON.parse(data).recommend_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
二级: $js.toString(() => {
|
||||
console.log("调试信息2" + input);
|
||||
let data = vodids(input);
|
||||
//console.log(data);
|
||||
VOD = data;
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let data = ssvod(input);
|
||||
let bata = JSON.parse(data).search_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
// console.log(data);
|
||||
setResult(d);
|
||||
}),
|
||||
}
|
||||
@ -0,0 +1,45 @@
|
||||
var rule = {
|
||||
title: '弹幕[资]',
|
||||
host: 'http://gy.xn--yet24tmq1a.xyz/',
|
||||
homeTid: '',
|
||||
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
|
||||
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
|
||||
searchUrl: '/api.php/provide/vod/?ac=detail&wd=**&pg=fypage',
|
||||
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
class_parse: 'json:class;',
|
||||
timeout: 5000,
|
||||
filterable: 1,
|
||||
limit: 20,
|
||||
multi: 1,
|
||||
searchable: 2,
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
lazy: $js.toString(() => {
|
||||
let json = request("http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input);
|
||||
let bata = JSON.parse(json);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: bata.url,
|
||||
jx: 0,
|
||||
danmaku: bata.danmaku
|
||||
};
|
||||
}),
|
||||
推荐: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
|
||||
一级: $js.toString(() => {
|
||||
let bata = JSON.parse(request(input)).list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
})
|
||||
});
|
||||
setResult(d)
|
||||
}),
|
||||
二级: 'js:\n let html=request(input);\n html=JSON.parse(html);\n let data=html.list;\n VOD=data[0];',
|
||||
搜索: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
|
||||
}
|
||||
@ -0,0 +1,210 @@
|
||||
globalThis.h_ost = 'http://118.107.41.134:35555/';
|
||||
var key = CryptoJS.enc.Base64.parse("ZGMzMjUwNmQ5YjVjYmY4ZQ==");
|
||||
var iv = CryptoJS.enc.Base64.parse("ZGMzMjUwNmQ5YjVjYmY4ZQ==");
|
||||
globalThis.AES_Decrypt = function(word) {
|
||||
try {
|
||||
var decrypt = CryptoJS.AES.decrypt(word, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7,
|
||||
});
|
||||
const decryptedText = decrypt.toString(CryptoJS.enc.Utf8);
|
||||
if (!decryptedText) {
|
||||
throw new Error("解密后的内容为空");
|
||||
}
|
||||
return decryptedText;
|
||||
} catch (e) {
|
||||
console.error("解密失败:", e);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
globalThis.AES_Encrypt = function(word) {
|
||||
var encrypted = CryptoJS.AES.encrypt(word, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
});
|
||||
return encrypted.toString();
|
||||
};
|
||||
|
||||
globalThis.vod1 = function(t, pg) {
|
||||
let html1 = request(h_ost + 'api.php/getappapi.index/typeFilterVodList', {
|
||||
body: {
|
||||
area: '全部',
|
||||
year: '全部',
|
||||
type_id: t,
|
||||
page: pg,
|
||||
sort: '最新',
|
||||
lang: '全部',
|
||||
class: '全部'
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
let html = JSON.parse(html1);
|
||||
return (AES_Decrypt(html.data));
|
||||
}
|
||||
globalThis.vodids = function(ids) {
|
||||
let html1 = fetch(h_ost + 'api.php/getappapi.index/vodDetail', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
vod_id: ids,
|
||||
}
|
||||
});
|
||||
let html = JSON.parse(html1);
|
||||
const rdata = JSON.parse(AES_Decrypt(html.data));
|
||||
const data = {
|
||||
vod_id: ids,
|
||||
vod_name: rdata.vod.vod_name,
|
||||
vod_remarks: rdata.vod.vod_remarks,
|
||||
vod_actor: rdata.vod.vod_actor,
|
||||
vod_director: rdata.vod.vod_director,
|
||||
vod_content: rdata.vod.vod_content,
|
||||
vod_play_from: '',
|
||||
vod_play_url: ''
|
||||
};
|
||||
|
||||
rdata.vod_play_list.forEach((value) => {
|
||||
data.vod_play_from += value.player_info.show + '$$$';
|
||||
value.urls.forEach((v) => {
|
||||
data.vod_play_url += v.name + '$' + value.player_info.parse + '~' + v.url + '~' + rdata.vod.vod_name + '~' + v.name + '#';
|
||||
});
|
||||
data.vod_play_url += '$$$';
|
||||
});
|
||||
return data;
|
||||
}
|
||||
//搜索
|
||||
globalThis.ssvod = function(wd) {
|
||||
var html1 = fetch(h_ost + 'api.php/getappapi.index/searchList', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
keywords: wd,
|
||||
typepage_id: 1,
|
||||
}
|
||||
});
|
||||
let html = JSON.parse(html1);
|
||||
return AES_Decrypt(html.data);
|
||||
}
|
||||
//解析
|
||||
globalThis.jxx = function(id, url, name, juji) {
|
||||
/* if("741852963"!=='741852963'){
|
||||
return 'https://s0.mall.tcl.com/group1/M00/00/89/CvoGBGdcOPaAAUxvADwZniVV2bc476.mp4';
|
||||
}*/
|
||||
//console.log(id);
|
||||
if (id.startsWith('http')) {
|
||||
return {
|
||||
parse: 1,
|
||||
url: id + url,
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
if (id == 0) {
|
||||
return {
|
||||
parse: 0,
|
||||
url: url,
|
||||
jx: 1,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
|
||||
let html1 = request(h_ost + 'api.php/getappapi.index/vodParse', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
parse_api: id,
|
||||
url: AES_Encrypt(url),
|
||||
}
|
||||
});
|
||||
let html = AES_Decrypt(JSON.parse(html1).data);
|
||||
console.log(html);
|
||||
let decry = html.replace(/\n/g, '').replace(/\\/g, '');
|
||||
let matches = decry.match(/"url":"([^"]+)"/);
|
||||
if (!matches || matches[1] === null) {
|
||||
matches = decry.match(/"url": "([^"]+)"/);
|
||||
}
|
||||
return {
|
||||
parse: 0,
|
||||
url: matches[1],
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
|
||||
var rule = {
|
||||
title: '巨人',
|
||||
host: '',
|
||||
detailUrl: 'fyid',
|
||||
searchUrl: '**',
|
||||
url: 'fyclass',
|
||||
searchable: 2,
|
||||
quickSearch: 1,
|
||||
filterable: 0,
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&3&4',
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
const parts = input.split('~');
|
||||
input = jxx(parts[0], parts[1], parts[2], parts[3]);
|
||||
}),
|
||||
推荐: $js.toString(() => {
|
||||
let data = vod1(0, 0);
|
||||
let bata = JSON.parse(data).recommend_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
一级: $js.toString(() => {
|
||||
let data = vod1(input, MY_PAGE);
|
||||
let bata = JSON.parse(data).recommend_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
二级: $js.toString(() => {
|
||||
console.log("调试信息2" + input);
|
||||
let data = vodids(input);
|
||||
//console.log(data);
|
||||
VOD = data;
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let data = ssvod(input);
|
||||
let bata = JSON.parse(data).search_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
// console.log(data);
|
||||
setResult(d);
|
||||
}),
|
||||
}
|
||||
@ -0,0 +1,278 @@
|
||||
var rule = {
|
||||
title: '异世界动漫',
|
||||
host: 'https://www.dmmiku.com/',
|
||||
homeUrl: '/index.php/vod/show/id/22.html',
|
||||
// url:'/index.php/vod/show/class/fyclass/id/20/page/fypage.html',
|
||||
url: '/index.php/vod/show/fyclassfyfilter.html',
|
||||
filterable: 1,
|
||||
filter_url: '{{fl.type}}/id/20/page/fypage{{fl.year}}',
|
||||
filter: {
|
||||
"area/日本": [{
|
||||
"key": "type",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "OVA",
|
||||
"v": "/class/OVA"
|
||||
}, {
|
||||
"n": "剧场版",
|
||||
"v": "/class/剧场版"
|
||||
}, {
|
||||
"n": "无修",
|
||||
"v": "/class/BD无修"
|
||||
}, {
|
||||
"n": "萝莉",
|
||||
"v": "/class/萝莉"
|
||||
}, {
|
||||
"n": "学園",
|
||||
"v": "/class/学園"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "/class/后宫"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "/class/恋爱"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "/class/热血"
|
||||
}, {
|
||||
"n": "神魔",
|
||||
"v": "/class/神魔"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "/class/治愈"
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "/class/搞笑"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "/class/百合"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "/class/冒险"
|
||||
}, {
|
||||
"n": "魔法",
|
||||
"v": "/class/魔法"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "/class/机战"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "/class/战争"
|
||||
}, {
|
||||
"n": "犯罪",
|
||||
"v": "/class/犯罪"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "/class/悬疑"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "/class/推理"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "/class/运动"
|
||||
}, {
|
||||
"n": "耽美",
|
||||
"v": "/class/耽美"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "/class/其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "/year/2008"
|
||||
}]
|
||||
}],
|
||||
"area/中國": [{
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "/year/2008"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000, //网站的全局请求超时,默认是3000毫秒
|
||||
class_name: '日漫&国漫',
|
||||
class_url: 'area/日本&area/中國',
|
||||
play_parse: true,
|
||||
lazy: `js:
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
var from = html.from;
|
||||
if (html.encrypt == '1') {
|
||||
url = unescape(url)
|
||||
} else if (html.encrypt == '2') {
|
||||
url = unescape(base64Decode(url))
|
||||
}
|
||||
if (/m3u8|mp4/.test(url)) {
|
||||
input = url
|
||||
} else {
|
||||
var MacPlayerConfig={};
|
||||
eval(fetch(HOST + "/static/js/playerconfig.js").replace('var Mac','Mac'));
|
||||
var jx = MacPlayerConfig.player_list[from].parse;
|
||||
if (jx == '') {
|
||||
jx = MacPlayerConfig.parse
|
||||
};
|
||||
if (jx.startsWith("/")) {
|
||||
jx = "https:" + jx;
|
||||
}
|
||||
input={
|
||||
jx:0,
|
||||
url:jx+url,
|
||||
parse:1,
|
||||
header: JSON.stringify({
|
||||
'referer': HOST
|
||||
})
|
||||
}
|
||||
}
|
||||
`,
|
||||
limit: 6,
|
||||
// 图片来源:'@Referer=https://api.douban.com/@User-Agent=Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/113.0.0.0%20Safari/537.36',
|
||||
推荐: '*',
|
||||
一级: '.vodlist_wi&&li;.lazyload&&title;.lazyload&&data-original;.pic_text&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h2&&Text;li.data--span:eq(0)&&Text",
|
||||
"img": ".lazyload&&data-original",
|
||||
"desc": "li.data--span:eq(1)&&Text;;;li.data--span:eq(2)&&Text;li.data--span:eq(3)&&Text",
|
||||
"content": ".full_text&&span&&Text",
|
||||
"tabs": `js:
|
||||
TABS = [];
|
||||
let tabs = pdfa(html, '#NumTab&&a');
|
||||
tabs.forEach((it) => {
|
||||
TABS.push(pdfh(it, 'a&&alt'))
|
||||
});
|
||||
`,
|
||||
// "lists": ".content_playlist:not(.list_scroll):eq(#id) a"
|
||||
"lists": "div.playlist_full:eq(#id) li"
|
||||
},
|
||||
搜索: 'li.searchlist_item;*;*;*;*',
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
var rule = {
|
||||
类型: '影视',
|
||||
title: '思古影视',
|
||||
host: 'https://siguyy.cn',
|
||||
url: '/show/fyclass--------fypage---/',
|
||||
searchUrl: 'https://siguyy.cn/search/-------------/?wd=**',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
timeout: 5000,
|
||||
play_parse: true,
|
||||
filterable: 0,
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&3&4',
|
||||
lazy: `js:
|
||||
if(/\\.(m3u8|mp4)/.test(input)){
|
||||
input = {parse:0,url:input}
|
||||
}else{
|
||||
if(rule.parse_url.startsWith('json:')){
|
||||
let purl = rule.parse_url.replace('json:','')+input;
|
||||
let html = request(purl);
|
||||
input = {parse:0,url:JSON.parse(html).url}
|
||||
}else{
|
||||
input= rule.parse_url+input;
|
||||
}
|
||||
`,
|
||||
headers: {
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0",
|
||||
},
|
||||
推荐: '*',
|
||||
一级: '.container .flex.desktop-hover-effect;span&&Text;img&&data-original;p.truncate&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.p-3.mobile&&Text',
|
||||
img: 'img&&data-original',
|
||||
desc: '.text-sm.py-1&&Text',
|
||||
content: '.text-secondary&&Text',
|
||||
tabs: '.flex.flex-row.gap-1.items-center',
|
||||
lists: '.flex.flex-column.overflow-auto.no-scrollbar&&li',
|
||||
tab_text: 'body&&Text',
|
||||
list_text: 'a&&Text',
|
||||
list_url: 'a&&href',
|
||||
},
|
||||
double: false,
|
||||
搜索: '.col-lg-6.col-md-12.mt-2.mb-2.cursor-pointer;.topic-details-title-sub.text-secondary&&Text;img&&data-original;.topic-details-title&&Text;a&&href',
|
||||
}
|
||||
@ -0,0 +1,773 @@
|
||||
// 发布页 https://acgfans.org/pub.html
|
||||
var rule = {
|
||||
title: '怡萱动漫',
|
||||
// host:'https://www.yxdmlove.com',
|
||||
host: 'https://acgfans.org/pub.html',
|
||||
hostJs: 'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src = jsp.pdfh(html,"p:eq(0)&&a&&Text");print(src);HOST=src', //网页域名根动态抓取js代码。通过HOST=赋值
|
||||
// url:'/category.html?channel=17&zhonglei=fyclass&orderby=pubdate&totalresult=2999&pageno=fypage',
|
||||
url: '/category.html?channel=17&zhonglei=fyclassfyfilter&pageno=fypage',
|
||||
filterable: 1, //是否启用分类筛选,
|
||||
filter_url: '&{{fl.by or "orderby=pubdate"}}&{{fl.year}}&{{fl.area}}&{{fl.sta}}&{{fl.class}}',
|
||||
filter: {
|
||||
"TV": [{
|
||||
"key": "sta",
|
||||
"name": "进度",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "连载中",
|
||||
"v": "status=连载中"
|
||||
}, {
|
||||
"n": "已完结",
|
||||
"v": "status=已完结"
|
||||
}, {
|
||||
"n": "未播放",
|
||||
"v": "status=未播放"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "area=日本"
|
||||
}, {
|
||||
"n": "中国",
|
||||
"v": "area=中国"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "area=欧美"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "year=2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "year=2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "year=2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "year=2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "year=2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "year=2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "year=2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "year=2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "year=2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "year=2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "year=2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "year=2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "year=2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "year=2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "year=2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "year=2010"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "year=2010前"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "剧情",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "jqlx=冒险"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "jqlx=热血"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "jqlx=爱情"
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "jqlx=搞笑"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "jqlx=后宫"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "jqlx=校园"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "jqlx=机战"
|
||||
}, {
|
||||
"n": "幻想",
|
||||
"v": "jqlx=幻想"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "jqlx=科幻"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "jqlx=竞技"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "jqlx=百合"
|
||||
}, {
|
||||
"n": "耽美",
|
||||
"v": "jqlx=耽美"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "jqlx=悬疑"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "jqlx=剧情"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "jqlx=战争"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "jqlx=恐怖"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "jqlx=运动"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "jqlx=动作"
|
||||
}, {
|
||||
"n": "童话",
|
||||
"v": "jqlx=童话"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "jqlx=历史"
|
||||
}, {
|
||||
"n": "真人",
|
||||
"v": "jqlx=真人"
|
||||
}, {
|
||||
"n": "女性向",
|
||||
"v": "jqlx=女性向"
|
||||
}, {
|
||||
"n": "泡面番",
|
||||
"v": "jqlx=泡面番"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "orderby=pubdate"
|
||||
}, {
|
||||
"n": "热度",
|
||||
"v": "orderby=click"
|
||||
}]
|
||||
}],
|
||||
"剧场版": [{
|
||||
"key": "sta",
|
||||
"name": "进度",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "连载中",
|
||||
"v": "status=连载中"
|
||||
}, {
|
||||
"n": "已完结",
|
||||
"v": "status=已完结"
|
||||
}, {
|
||||
"n": "未播放",
|
||||
"v": "status=未播放"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "area=日本"
|
||||
}, {
|
||||
"n": "中国",
|
||||
"v": "area=中国"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "area=欧美"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "year=2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "year=2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "year=2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "year=2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "year=2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "year=2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "year=2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "year=2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "year=2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "year=2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "year=2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "year=2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "year=2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "year=2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "year=2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "year=2010"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "year=2010前"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "剧情",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "jqlx=冒险"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "jqlx=热血"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "jqlx=爱情"
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "jqlx=搞笑"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "jqlx=后宫"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "jqlx=校园"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "jqlx=机战"
|
||||
}, {
|
||||
"n": "幻想",
|
||||
"v": "jqlx=幻想"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "jqlx=科幻"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "jqlx=竞技"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "jqlx=百合"
|
||||
}, {
|
||||
"n": "耽美",
|
||||
"v": "jqlx=耽美"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "jqlx=悬疑"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "jqlx=剧情"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "jqlx=战争"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "jqlx=恐怖"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "jqlx=运动"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "jqlx=动作"
|
||||
}, {
|
||||
"n": "童话",
|
||||
"v": "jqlx=童话"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "jqlx=历史"
|
||||
}, {
|
||||
"n": "真人",
|
||||
"v": "jqlx=真人"
|
||||
}, {
|
||||
"n": "女性向",
|
||||
"v": "jqlx=女性向"
|
||||
}, {
|
||||
"n": "泡面番",
|
||||
"v": "jqlx=泡面番"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "orderby=pubdate"
|
||||
}, {
|
||||
"n": "热度",
|
||||
"v": "orderby=click"
|
||||
}]
|
||||
}],
|
||||
"OVA": [{
|
||||
"key": "sta",
|
||||
"name": "进度",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "连载中",
|
||||
"v": "status=连载中"
|
||||
}, {
|
||||
"n": "已完结",
|
||||
"v": "status=已完结"
|
||||
}, {
|
||||
"n": "未播放",
|
||||
"v": "status=未播放"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "area=日本"
|
||||
}, {
|
||||
"n": "中国",
|
||||
"v": "area=中国"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "area=欧美"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "year=2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "year=2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "year=2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "year=2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "year=2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "year=2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "year=2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "year=2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "year=2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "year=2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "year=2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "year=2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "year=2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "year=2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "year=2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "year=2010"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "year=2010前"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "剧情",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "jqlx=冒险"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "jqlx=热血"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "jqlx=爱情"
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "jqlx=搞笑"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "jqlx=后宫"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "jqlx=校园"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "jqlx=机战"
|
||||
}, {
|
||||
"n": "幻想",
|
||||
"v": "jqlx=幻想"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "jqlx=科幻"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "jqlx=竞技"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "jqlx=百合"
|
||||
}, {
|
||||
"n": "耽美",
|
||||
"v": "jqlx=耽美"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "jqlx=悬疑"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "jqlx=剧情"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "jqlx=战争"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "jqlx=恐怖"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "jqlx=运动"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "jqlx=动作"
|
||||
}, {
|
||||
"n": "童话",
|
||||
"v": "jqlx=童话"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "jqlx=历史"
|
||||
}, {
|
||||
"n": "真人",
|
||||
"v": "jqlx=真人"
|
||||
}, {
|
||||
"n": "女性向",
|
||||
"v": "jqlx=女性向"
|
||||
}, {
|
||||
"n": "泡面番",
|
||||
"v": "jqlx=泡面番"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "orderby=pubdate"
|
||||
}, {
|
||||
"n": "热度",
|
||||
"v": "orderby=click"
|
||||
}]
|
||||
}],
|
||||
"其他": [{
|
||||
"key": "sta",
|
||||
"name": "进度",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "连载中",
|
||||
"v": "status=连载中"
|
||||
}, {
|
||||
"n": "已完结",
|
||||
"v": "status=已完结"
|
||||
}, {
|
||||
"n": "未播放",
|
||||
"v": "status=未播放"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "area=日本"
|
||||
}, {
|
||||
"n": "中国",
|
||||
"v": "area=中国"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "area=欧美"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "year=2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "year=2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "year=2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "year=2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "year=2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "year=2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "year=2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "year=2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "year=2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "year=2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "year=2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "year=2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "year=2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "year=2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "year=2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "year=2010"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "year=2010前"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "剧情",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "jqlx=冒险"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "jqlx=热血"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "jqlx=爱情"
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "jqlx=搞笑"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "jqlx=后宫"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "jqlx=校园"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "jqlx=机战"
|
||||
}, {
|
||||
"n": "幻想",
|
||||
"v": "jqlx=幻想"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "jqlx=科幻"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "jqlx=竞技"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "jqlx=百合"
|
||||
}, {
|
||||
"n": "耽美",
|
||||
"v": "jqlx=耽美"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "jqlx=悬疑"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "jqlx=剧情"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "jqlx=战争"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "jqlx=恐怖"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "jqlx=运动"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "jqlx=动作"
|
||||
}, {
|
||||
"n": "童话",
|
||||
"v": "jqlx=童话"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "jqlx=历史"
|
||||
}, {
|
||||
"n": "真人",
|
||||
"v": "jqlx=真人"
|
||||
}, {
|
||||
"n": "女性向",
|
||||
"v": "jqlx=女性向"
|
||||
}, {
|
||||
"n": "泡面番",
|
||||
"v": "jqlx=泡面番"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "orderby=pubdate"
|
||||
}, {
|
||||
"n": "热度",
|
||||
"v": "orderby=click"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
// filter_def:{
|
||||
// TV:{by:'orderby=pubdate'},
|
||||
// 剧场版:{by:'orderby=pubdate'},
|
||||
// OVA:{by:'orderby=pubdate'},
|
||||
// 其他:{by:'orderby=pubdate'}
|
||||
// },
|
||||
searchUrl: '/search.html?keyword=**&PageNo=fypage',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'PC_UA',
|
||||
},
|
||||
class_name: 'TV&剧场版&OVA&其他',
|
||||
class_url: 'TV&剧场版&OVA&其他',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 6,
|
||||
// 推荐:'.dhnew.adj li;*;*;*;*',
|
||||
推荐: '.dhnew.adj li;a&&title;img&&src;p:eq(-1)&&Text;a&&href',
|
||||
// 一级:'.dhnew li;a&&title;img&&src;p:eq(-1)&&Text;a&&href',
|
||||
一级: `js:
|
||||
let d = [];
|
||||
pdfh = jsp.pdfh;pdfa = jsp.pdfa;pd = jsp.pd;
|
||||
let html = '';
|
||||
let totalresult = getItem("totalresult_" + MY_CATE, '')
|
||||
if (totalresult == '') {
|
||||
html = request(input);
|
||||
totalresult = pdfh(html, ".pageinfo&&strong&&Text");
|
||||
setItem("totalresult_" + MY_CATE, totalresult)
|
||||
}
|
||||
input += '&totalresult=' + getItem("totalresult_" + MY_CATE, '');
|
||||
html = request(input);
|
||||
let list = pdfa(html, ".dhnew&&li");
|
||||
list.forEach(it => {
|
||||
d.push({
|
||||
title: pdfh(it, "a&&title"),
|
||||
desc: pdfh(it, "p:eq(-1)&&Text"),
|
||||
pic_url: pd(it, "img&&src"),
|
||||
url: pd(it, "a&&href")
|
||||
})
|
||||
});
|
||||
setResult(d)
|
||||
`,
|
||||
二级: {
|
||||
"title": "h1&&Text;.dhxx p:eq(4)&&Text",
|
||||
"img": ".anime-img&&img&&src",
|
||||
"desc": ".info1-left li:eq(1)&&Text;.dhxx p:eq(3)&&Text;.dhxx p:eq(2)&&Text;.info1-left li:eq(0)&&Text;.info1-left li:eq(2)&&Text",
|
||||
"content": ".info2--strong&&Text",
|
||||
"tabs": ".ol-select li",
|
||||
"lists": ".ol-content:eq(#id) li"
|
||||
},
|
||||
// 搜索:'*;*;*;p:eq(3)&&Text;*',
|
||||
搜索: '.dhnew li;a&&title;img&&src;p:eq(3)&&Text;a&&href',
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,183 @@
|
||||
globalThis.h_ost = 'http://op.ysdqjs.cn/';
|
||||
|
||||
globalThis.vodlist = function($t, $pg) {
|
||||
const currentTimestamp = parseInt(Date.now() / 1000, 10);
|
||||
const url = h_ost + '/v2/home/type_search';
|
||||
const hx = CryptoJS.MD5('kj5649ertj84ks89r4jh8s45hf84hjfds04k' + currentTimestamp).toString();
|
||||
let html = request(url, {
|
||||
body: {
|
||||
sign: hx,
|
||||
type_id: $t,
|
||||
page: $pg,
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp-okgo/jeasonlzy',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
return JSON.parse(html).data.list;
|
||||
}
|
||||
|
||||
globalThis.seach = function(wd) {
|
||||
const currentTimestamp = parseInt(Date.now() / 1000, 10);
|
||||
const url = h_ost + '/v2/home/search';
|
||||
const hx = CryptoJS.MD5('kj5649ertj84ks89r4jh8s45hf84hjfds04k' + currentTimestamp).toString();
|
||||
let html = request(url, {
|
||||
body: {
|
||||
sign: hx,
|
||||
keyword: wd,
|
||||
timestamp: currentTimestamp,
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp-okgo/jeasonlzy',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
return JSON.parse(html).data.list;
|
||||
}
|
||||
globalThis.vodids = function(ids) {
|
||||
const currentTimestamp = parseInt(Date.now() / 1000, 10);
|
||||
const url = h_ost + '/v2/home/vod_details';
|
||||
const hx = CryptoJS.MD5('kj5649ertj84ks89r4jh8s45hf84hjfds04k' + currentTimestamp).toString();
|
||||
let html = request(url, {
|
||||
body: {
|
||||
sign: hx,
|
||||
vod_id: ids,
|
||||
timestamp: currentTimestamp,
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp-okgo/jeasonlzy',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
const redata = JSON.parse(html);
|
||||
let vodPlayFrom = '';
|
||||
let vodPlayUrl = '';
|
||||
redata.data.vod_play_list.forEach((value, key) => {
|
||||
if (value.flag.includes("nby") || value.flag.includes("mgtv") || value.flag.includes("qq") || value.flag.includes("qiyi") || value.flag.includes("mgtv") || 1) {
|
||||
vodPlayFrom += `${value.flag}$$$`;
|
||||
value.urls.forEach(url => {
|
||||
vodPlayUrl += `${url.name}$${value.parse_urls[0]}${url.url}~${url.name}#`;
|
||||
});
|
||||
vodPlayUrl += '$$$';
|
||||
}
|
||||
});
|
||||
const regeshi = {
|
||||
vod_id: redata.data.vod_id,
|
||||
vod_name: redata.data.vod_name,
|
||||
vod_remarks: `${redata.data.vod_remarks}`,
|
||||
type_name: redata.data.vod_class,
|
||||
vod_pic: redata.data.vod_pic,
|
||||
vod_year: redata.data.vod_year,
|
||||
vod_area: redata.data.vod_area,
|
||||
vod_actor: `${redata.data.vod_actor}`,
|
||||
vod_director: redata.data.vod_director,
|
||||
vod_content: `${redata.data.vod_content}`,
|
||||
vod_play_from: vodPlayFrom,
|
||||
vod_play_url: vodPlayUrl
|
||||
};
|
||||
return regeshi;
|
||||
}
|
||||
globalThis.jxx = function(input) {
|
||||
if ("741852963" !== '741852963') {
|
||||
return 'https://s0.mall.tcl.com/group1/M00/00/89/CvoGBGdcOPaAAUxvADwZniVV2bc476.mp4';
|
||||
}
|
||||
const parts = input.split('~');
|
||||
try {
|
||||
let response = fetch(parts[0], {
|
||||
method: 'get',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
});
|
||||
|
||||
if (response.includes("成功") || response.includes("success") || response.includes("nby")) {
|
||||
let bata = JSON.parse(response);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: bata.url,
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + VOD.vod_name + '&js=' + parts[1] + '&key=741852963'
|
||||
}
|
||||
} else {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: parts[0].includes('url=') ? parts[0].slice(parts[0].indexOf('url=') + 4) : null,
|
||||
jx: 1,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + VOD.vod_name + '&js=' + parts[1] + '&key=741852963'
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: '解析失败',
|
||||
jx: 0,
|
||||
}
|
||||
}
|
||||
return input;
|
||||
}
|
||||
|
||||
var rule = {
|
||||
title: '天天',
|
||||
host: '',
|
||||
detailUrl: 'fyid',
|
||||
searchUrl: '**',
|
||||
url: 'fyclass',
|
||||
searchable: 2,
|
||||
quickSearch: 1,
|
||||
filterable: 0,
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&4&3',
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
input = jxx(input);
|
||||
}),
|
||||
推荐: $js.toString(() => {
|
||||
let bdata = vodlist(1, 1);
|
||||
console.log(bdata);
|
||||
bdata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
一级: $js.toString(() => {
|
||||
let bdata = vodlist(input, MY_PAGE);
|
||||
console.log(bdata);
|
||||
bdata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
二级: $js.toString(() => {
|
||||
console.log("调试信息2" + input);
|
||||
let data = vodids(input);
|
||||
//console.log(data);
|
||||
VOD = (data);
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let ddata = seach(input);
|
||||
ddata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
}
|
||||
@ -0,0 +1,429 @@
|
||||
if (typeof Object.assign !== 'function') {
|
||||
Object.assign = function() {
|
||||
let target = arguments[0];
|
||||
for (let i = 1; i < arguments.length; i++) {
|
||||
let source = arguments[i];
|
||||
for (let key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return target;
|
||||
};
|
||||
}
|
||||
|
||||
// 通用免嗅探播放
|
||||
let common_lazy = `js:
|
||||
let html = request(input);
|
||||
let hconf = html.match(/r player_.*?=(.*?)</)[1];
|
||||
let json = JSON5.parse(hconf);
|
||||
let url = json.url;
|
||||
if (json.encrypt == '1') {
|
||||
url = unescape(url);
|
||||
} else if (json.encrypt == '2') {
|
||||
url = unescape(base64Decode(url));
|
||||
}
|
||||
if (/\\.(m3u8|mp4|m4a|mp3)/.test(url)) {
|
||||
input = {
|
||||
parse: 0,
|
||||
jx: 0,
|
||||
url: url,
|
||||
};
|
||||
} else {
|
||||
input = url && url.startsWith('http') && tellIsJx(url) ? {parse:0,jx:1,url:url}:input;
|
||||
}`;
|
||||
// 默认嗅探播放
|
||||
|
||||
let def_lazy = `js:
|
||||
input = { parse: 1, url: input, js: '' };`;
|
||||
// 采集站播放
|
||||
|
||||
let cj_lazy = `js:
|
||||
if (/\\.(m3u8|mp4)/.test(input)) {
|
||||
input = { parse: 0, url: input };
|
||||
} else {
|
||||
if (rule.parse_url.startsWith('json:')) {
|
||||
let purl = rule.parse_url.replace('json:', '') + input;
|
||||
let html = request(purl);
|
||||
let json = JSON.parse(html);
|
||||
if (json.url) {
|
||||
input = { parse: 0, url: json.url };
|
||||
}
|
||||
} else {
|
||||
input = rule.parse_url + input;
|
||||
}
|
||||
}`;
|
||||
|
||||
function getMubans() {
|
||||
const mubanDict = { // 模板字典
|
||||
mx: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---/',
|
||||
searchUrl: '/vodsearch/**----------fypage---/',
|
||||
class_parse: '.top_nav li;a&&Text;a&&href;.*/(.*?)/',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true,
|
||||
推荐: '.cbox_list;*;*;*;*;*',
|
||||
一级: 'ul.vodlist li;a&&title;a&&data-original;.pic_text&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h2&&Text;.content_detail:eq(1)&&li&&a:eq(2)&&Text',
|
||||
img: '.vodlist_thumb&&data-original',
|
||||
desc: '.content_detail:eq(1)&&li:eq(1)&&Text;.content_detail:eq(1)&&li&&a&&Text;.content_detail:eq(1)&&li&&a:eq(1)&&Text;.content_detail:eq(1)&&li:eq(2)&&Text;.content_detail:eq(1)&&li:eq(3)&&Text',
|
||||
content: '.content_desc&&span&&Text',
|
||||
tabs: '.play_source_tab&&a',
|
||||
lists: '.content_playlist:eq(#id) li',
|
||||
},
|
||||
搜索: '*',
|
||||
},
|
||||
mxpro: {
|
||||
title: '',
|
||||
host: '', // homeUrl:'/',
|
||||
url: '/vodshow/fyclass--------fypage---.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.navbar-items li:gt(0):lt(10);a&&Text;a&&href;/(\\d+)',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.module-info-tag-link:eq(-1)&&Text',
|
||||
img: '.lazyload&&data-original||data-src||src',
|
||||
desc: '.module-info-item:eq(-2)&&Text;.module-info-tag-link&&Text;.module-info-tag-link:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(1)&&Text',
|
||||
content: '.module-info-introduction&&Text',
|
||||
tabs: '.module-tab-item',
|
||||
lists: '.module-play-list:eq(#id) a',
|
||||
tab_text: 'div--small&&Text',
|
||||
},
|
||||
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
|
||||
},
|
||||
mxone5: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/show/fyclass--------fypage---.html',
|
||||
searchUrl: '/search/**----------fypage---.html',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?)\.html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.tag-link&&Text',
|
||||
img: '.module-item-pic&&img&&data-src',
|
||||
desc: '.video-info-items:eq(3)&&Text;.tag-link:eq(2)&&Text;.tag-link:eq(1)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text',
|
||||
content: '.vod_content&&Text',
|
||||
tabs: '.module-tab-item',
|
||||
lists: '.module-player-list:eq(#id)&&.scroll-content&&a',
|
||||
tab_text: 'div--small&&Text',
|
||||
},
|
||||
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
|
||||
},
|
||||
首图: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/vodshow/fyclass--------fypage---/',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.myui-content__detail .title--span&&Text;.myui-content__detail p.data:eq(3)&&Text',
|
||||
img: '.myui-content__thumb .lazyload&&data-original',
|
||||
desc: '.myui-content__detail p.otherbox&&Text;.year&&Text;.myui-content__detail p.data:eq(4)&&Text;.myui-content__detail p.data:eq(2)&&Text;.myui-content__detail p.data:eq(0)&&Text',
|
||||
content: '.content&&Text',
|
||||
tabs: '.myui-panel__head&&li',
|
||||
// tabs: '.nav-tabs&&li',
|
||||
lists: '.myui-content__list:eq(#id) li',
|
||||
},
|
||||
搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
|
||||
},
|
||||
首图2: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/list/fyclass-fypage.html',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA', // "Cookie": ""
|
||||
},
|
||||
class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
|
||||
一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.stui-content__detail .title&&Text;.stui-content__detail&&p:eq(-2)&&a&&Text',
|
||||
title1: '.stui-content__detail .title&&Text;.stui-content__detail&&p&&Text',
|
||||
img: '.stui-content__thumb .lazyload&&data-original',
|
||||
desc: '.stui-content__detail p&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(2)&&Text;.stui-content__detail&&p:eq(-2)&&a:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text;.stui-content__detail p:eq(1)&&Text',
|
||||
desc1: '.stui-content__detail p:eq(4)&&Text;;;.stui-content__detail p:eq(1)&&Text',
|
||||
content: '.detail&&Text',
|
||||
tabs: '.stui-pannel__head h3',
|
||||
tabs1: '.stui-vodlist__head h3',
|
||||
lists: '.stui-content__playlist:eq(#id) li',
|
||||
},
|
||||
搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
|
||||
},
|
||||
默认: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '',
|
||||
searchUrl: '',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
filter: '',
|
||||
filter_url: '',
|
||||
filter_def: {},
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: '#side-menu li;a&&Text;a&&href;/(.*?)\.html',
|
||||
cate_exclude: '',
|
||||
play_parse: true,
|
||||
lazy: def_lazy,
|
||||
double: true,
|
||||
推荐: '列表1;列表2;标题;图片;描述;链接;详情',
|
||||
一级: '列表;标题;图片;描述;链接;详情',
|
||||
二级: {
|
||||
title: 'vod_name;vod_type',
|
||||
img: '图片链接',
|
||||
desc: '主要信息;年代;地区;演员;导演',
|
||||
content: '简介',
|
||||
tabs: '',
|
||||
lists: 'xx:eq(#id)&&a',
|
||||
tab_text: 'body&&Text',
|
||||
list_text: 'body&&Text',
|
||||
list_url: 'a&&href',
|
||||
},
|
||||
搜索: '列表;标题;图片;描述;链接;详情',
|
||||
},
|
||||
vfed: {
|
||||
title: '',
|
||||
host: '',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage.html',
|
||||
searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA',
|
||||
},
|
||||
class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text',
|
||||
img: '.fed-list-info&&a&&data-original',
|
||||
desc: '.fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text',
|
||||
content: '.fed-part-esan&&Text',
|
||||
tabs: '.fed-drop-boxs&&.fed-part-rows&&li',
|
||||
lists: '.fed-play-item:eq(#id)&&ul:eq(1)&&li',
|
||||
},
|
||||
搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
|
||||
},
|
||||
海螺3: {
|
||||
title: '',
|
||||
host: '',
|
||||
searchUrl: '/v_search/**----------fypage---.html',
|
||||
url: '/vod_____show/fyclass--------fypage---.html',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
|
||||
cate_exclude: '明星|专题|最新|排行',
|
||||
limit: 40,
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
double: true,
|
||||
推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
二级: {
|
||||
title: '.hl-dc-title&&Text;.hl-dc-content&&li:eq(6)&&Text',
|
||||
img: '.hl-lazy&&data-original',
|
||||
desc: '.hl-dc-content&&li:eq(10)&&Text;.hl-dc-content&&li:eq(4)&&Text;.hl-dc-content&&li:eq(5)&&Text;.hl-dc-content&&li:eq(2)&&Text;.hl-dc-content&&li:eq(3)&&Text',
|
||||
content: '.hl-content-text&&Text',
|
||||
tabs: '.hl-tabs&&a',
|
||||
tab_text: 'a--span&&Text',
|
||||
lists: '.hl-plays-list:eq(#id)&&li',
|
||||
},
|
||||
搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
},
|
||||
海螺2: {
|
||||
title: '',
|
||||
host: '',
|
||||
searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
|
||||
url: '/index.php/vod/show/id/fyclass/page/fypage/',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
timeout: 5000,
|
||||
class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
|
||||
limit: 40,
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
double: true,
|
||||
推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
|
||||
一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h2&&Text;.deployment&&Text',
|
||||
img: '.lazy&&data-original',
|
||||
desc: '.deployment&&Text',
|
||||
content: '.ec-show&&Text',
|
||||
tabs: '#tag&&a',
|
||||
lists: '.play_list_box:eq(#id)&&li',
|
||||
},
|
||||
搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
},
|
||||
短视: {
|
||||
title: '',
|
||||
host: '', // homeUrl:'/',
|
||||
url: '/channel/fyclass-fypage.html',
|
||||
searchUrl: '/search.html?wd=**',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok"
|
||||
},
|
||||
class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
|
||||
cate_exclude: '解析|动态',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
double: true, // 推荐内容是否双层定位
|
||||
推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
|
||||
二级: {
|
||||
title: 'h1&&Text;.content-rt&&p:eq(0)&&Text',
|
||||
img: '.img&&img&&data-src',
|
||||
desc: '.content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text',
|
||||
content: '.zkjj_a&&Text',
|
||||
tabs: '.py-tabs&&option',
|
||||
lists: '.player:eq(#id) li',
|
||||
},
|
||||
搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
|
||||
},
|
||||
短视2: {
|
||||
title: '',
|
||||
host: '',
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&3&4',
|
||||
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
url: '/index.php/api/vod#type=fyclass&page=fypage',
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
filter_url: '',
|
||||
filter: {},
|
||||
filter_def: {},
|
||||
detailUrl: '/index.php/vod/detail/id/fyid.html',
|
||||
play_parse: true,
|
||||
lazy: common_lazy,
|
||||
limit: 6,
|
||||
推荐: '.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
|
||||
一级: 'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
|
||||
二级: {
|
||||
title: '.slide-info-title&&Text;.slide-info:eq(2)--strong&&Text',
|
||||
img: '.detail-pic&&data-original',
|
||||
desc: '.slide-info-remarks&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(1)--strong&&Text;.info-parameter&&ul&&li:eq(3)&&Text',
|
||||
content: '#height_limit&&Text',
|
||||
tabs: '.anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a',
|
||||
tab_text: 'a--span&&Text',
|
||||
lists: '.anthology-list-box:eq(#id) li',
|
||||
},
|
||||
搜索: 'json:list;name;pic;;id',
|
||||
},
|
||||
采集1: {
|
||||
title: '',
|
||||
host: '',
|
||||
homeTid: '13',
|
||||
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
|
||||
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
|
||||
searchUrl: '/api.php/provide/vod/?wd=**&pg=fypage',
|
||||
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000, // class_name: '电影&电视剧&综艺&动漫',
|
||||
// class_url: '1&2&3&4',
|
||||
// class_parse:'js:let html=request(input);input=JSON.parse(html).class;',
|
||||
class_parse: 'json:class;',
|
||||
limit: 20,
|
||||
multi: 1,
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 1, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
lazy: cj_lazy,
|
||||
推荐: '*',
|
||||
一级: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from',
|
||||
二级: `js:
|
||||
let html=request(input);
|
||||
html=JSON.parse(html);
|
||||
let data=html.list;
|
||||
VOD=data[0];`,
|
||||
搜索: '*',
|
||||
},
|
||||
};
|
||||
return JSON.parse(JSON.stringify(mubanDict));
|
||||
}
|
||||
|
||||
var mubanDict = getMubans();
|
||||
var muban = getMubans();
|
||||
export default {
|
||||
muban,
|
||||
getMubans
|
||||
};
|
||||
@ -0,0 +1,8 @@
|
||||
var rule = {
|
||||
模板: '首图',
|
||||
title: '樱花动漫[漫]',
|
||||
host: 'https://katedm.com/',
|
||||
url: '/list/fyclass-fypage.html',
|
||||
searchUrl: '/search/**----------fypage---.html',
|
||||
搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-tag&&Text;a&&href',
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,815 @@
|
||||
muban.短视2.二级.img = '.detail-pic&&img&&data-src';
|
||||
var rule = {
|
||||
title: '爱弹幕',
|
||||
模板: '短视2',
|
||||
host: 'https://anime.girigirilove.com',
|
||||
homeUrl: '/map/',
|
||||
// url:'/show/fyclass--------fypage---/'
|
||||
url: '/show/fyclassfyfilter/',
|
||||
filterable: 1, //是否启用分类筛选,
|
||||
filter_url: '-{{fl.area}}-{{fl.by}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}',
|
||||
filter: {
|
||||
"2": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "喜剧"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "爱情"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "恐怖"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "动作"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "剧情"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "战争"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "奇幻"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "冒险"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "悬疑"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "校园"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "后宫"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "热血"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "运动"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "百合"
|
||||
}, {
|
||||
"n": "乙女",
|
||||
"v": "乙女"
|
||||
}, {
|
||||
"n": "机甲",
|
||||
"v": "机甲"
|
||||
}, {
|
||||
"n": "日常",
|
||||
"v": "日常"
|
||||
}, {
|
||||
"n": "魔法少女",
|
||||
"v": "魔法少女"
|
||||
}, {
|
||||
"n": "异世界",
|
||||
"v": "异世界"
|
||||
}, {
|
||||
"n": "爱抖露",
|
||||
"v": "爱抖露"
|
||||
}, {
|
||||
"n": "音乐",
|
||||
"v": "音乐"
|
||||
}, {
|
||||
"n": "萌",
|
||||
"v": "萌"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "一月",
|
||||
"v": "一月"
|
||||
}, {
|
||||
"n": "四月",
|
||||
"v": "四月"
|
||||
}, {
|
||||
"n": "七月",
|
||||
"v": "七月"
|
||||
}, {
|
||||
"n": "十月",
|
||||
"v": "十月"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "2000"
|
||||
}]
|
||||
}, {
|
||||
"key": "lang",
|
||||
"name": "语言",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "日语",
|
||||
"v": "日语"
|
||||
}, {
|
||||
"n": "国语",
|
||||
"v": "国语"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最新",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "最热",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}],
|
||||
"3": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "搞笑"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "爱情"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "恐怖"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "动作"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "剧情"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "战争"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "奇幻"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "冒险"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "悬疑"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "校园"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "后宫"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "热血"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "运动"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "内地",
|
||||
"v": "内地"
|
||||
}, {
|
||||
"n": "港台",
|
||||
"v": "港台"
|
||||
}, {
|
||||
"n": "日韩",
|
||||
"v": "日韩"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "欧美"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "2003"
|
||||
}]
|
||||
}, {
|
||||
"key": "lang",
|
||||
"name": "语言",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "国语",
|
||||
"v": "国语"
|
||||
}, {
|
||||
"n": "英语",
|
||||
"v": "英语"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最新",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "最热",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}],
|
||||
"21": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "喜剧"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "爱情"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "恐怖"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "动作"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "剧情"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "战争"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "奇幻"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "冒险"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "悬疑"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "校园"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "后宫"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "热血"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "运动"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "百合"
|
||||
}, {
|
||||
"n": "耽美",
|
||||
"v": "耽美"
|
||||
}, {
|
||||
"n": "机甲",
|
||||
"v": "机甲"
|
||||
}, {
|
||||
"n": "日常",
|
||||
"v": "日常"
|
||||
}, {
|
||||
"n": "魔法少女",
|
||||
"v": "魔法少女"
|
||||
}, {
|
||||
"n": "异世界",
|
||||
"v": "异世界"
|
||||
}, {
|
||||
"n": "爱抖露",
|
||||
"v": "爱抖露"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "2003"
|
||||
}]
|
||||
}, {
|
||||
"key": "lang",
|
||||
"name": "语言",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "日语",
|
||||
"v": "日语"
|
||||
}, {
|
||||
"n": "中文",
|
||||
"v": "中文"
|
||||
}, {
|
||||
"n": "英语",
|
||||
"v": "英语"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最新",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "最热",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}],
|
||||
"20": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "爱情"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "经典"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "冒险"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "剧情"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "动作"
|
||||
}, {
|
||||
"n": "同性",
|
||||
"v": "同性"
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "喜剧"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "奇幻"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "恐怖"
|
||||
}, {
|
||||
"n": "悬疑.惊悚",
|
||||
"v": "悬疑.惊悚"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "战争"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "欧美"
|
||||
}, {
|
||||
"n": "歌舞",
|
||||
"v": "歌舞"
|
||||
}, {
|
||||
"n": "灾难",
|
||||
"v": "灾难"
|
||||
}, {
|
||||
"n": "记录.泰剧",
|
||||
"v": "记录.泰剧"
|
||||
}, {
|
||||
"n": "体育",
|
||||
"v": "体育"
|
||||
}, {
|
||||
"n": "烧脑",
|
||||
"v": "烧脑"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "欧美"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "泰国"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "2005"
|
||||
}, {
|
||||
"n": "2004.2003",
|
||||
"v": "2004.2003"
|
||||
}]
|
||||
}, {
|
||||
"key": "lang",
|
||||
"name": "语言",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "日语",
|
||||
"v": "日语"
|
||||
}, {
|
||||
"n": "英语",
|
||||
"v": "英语"
|
||||
}, {
|
||||
"n": "泰语",
|
||||
"v": "泰语"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最新",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "最热",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}],
|
||||
"24": [{
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最新",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "最热",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}],
|
||||
"26": [{
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最新",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "最热",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
searchUrl: '/search/**----------fypage---/',
|
||||
class_name: '日番&美番&劇場版&真人番劇&BD副音軌&其他',
|
||||
class_url: '2&3&21&20&24&26',
|
||||
play_parse: true,
|
||||
lazy: `js:
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
var from = html.from;
|
||||
var next = html.link_next;
|
||||
if (html.encrypt == '1') {
|
||||
url = unescape(url)
|
||||
} else if (html.encrypt == '2') {
|
||||
url = unescape(base64Decode(url))
|
||||
} else if (html.encrypt == '3') {
|
||||
url = url.substring(8, url.length);
|
||||
url = base64Decode(url);
|
||||
url = url.substring(8, (url.length) - 8)
|
||||
}
|
||||
if (/\\.m3u8|\\.mp4/.test(url)) {
|
||||
input = {
|
||||
jx: 0,
|
||||
url: url,
|
||||
parse: 0
|
||||
}
|
||||
} else {
|
||||
var paurl = request(HOST + '/static/player/' + from + '.js').match(/ src="(.*?)'/)[1];
|
||||
if (/https/.test(paurl)) {
|
||||
var purl = paurl + url + '&next=' + next + '&title=';
|
||||
input = {
|
||||
jx: 0,
|
||||
url: purl,
|
||||
parse: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
推荐: '.border-box&&.public-list-box;a&&title;.lazy&&data-src;.public-list-prb&&Text;a&&href',
|
||||
double: false, // 推荐内容是否双层定位
|
||||
一级: '.border-box .public-list-box;a&&title;.lazy&&data-src;.public-list-prb&&Text;a&&href',
|
||||
搜索: '.row-right&&.search-box;.thumb-txt&&Text;.lazy&&data-src;.public-list-prb&&Text;a&&href',
|
||||
}
|
||||
@ -0,0 +1,890 @@
|
||||
var rule = {
|
||||
title: '看了么',
|
||||
host: 'https://www.ksksl.com',
|
||||
// url:'/show/fyclass/page/fypage.html',
|
||||
url: '/show/fyclassfyfilter.html',
|
||||
filterable: 1, //是否启用分类筛选,
|
||||
filter_url: '{{fl.area}}{{fl.by or "/by/time"}}{{fl.class}}/page/fypage{{fl.year}}',
|
||||
filter: {
|
||||
"dy": [{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "中国大陆",
|
||||
"v": "/area/中国大陆"
|
||||
}, {
|
||||
"n": "中国香港",
|
||||
"v": "/area/中国香港"
|
||||
}, {
|
||||
"n": "中国台湾",
|
||||
"v": "/area/中国台湾"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "/area/美国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "/area/韩国"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "/area/英国"
|
||||
}, {
|
||||
"n": "法国",
|
||||
"v": "/area/法国"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "分类",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "/class/喜剧"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "/class/爱情"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "/class/恐怖"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "/class/动作"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "/class/剧情"
|
||||
}, {
|
||||
"n": "警匪",
|
||||
"v": "/class/警匪"
|
||||
}, {
|
||||
"n": "犯罪",
|
||||
"v": "/class/犯罪"
|
||||
}, {
|
||||
"n": "动画",
|
||||
"v": "/class/动画"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "武侠",
|
||||
"v": "/class/武侠"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "/class/冒险"
|
||||
}, {
|
||||
"n": "枪战",
|
||||
"v": "/class/枪战"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "/class/恐怖"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "/class/悬疑"
|
||||
}, {
|
||||
"n": "惊悚",
|
||||
"v": "/class/惊悚"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "/class/经典"
|
||||
}, {
|
||||
"n": "青春",
|
||||
"v": "/class/青春"
|
||||
}, {
|
||||
"n": "文艺",
|
||||
"v": "/class/文艺"
|
||||
}, {
|
||||
"n": "古装",
|
||||
"v": "/class/古装"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "/class/运动"
|
||||
}, {
|
||||
"n": "农村",
|
||||
"v": "/class/农村"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}],
|
||||
"tv": [{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "中国大陆",
|
||||
"v": "/area/中国大陆"
|
||||
}, {
|
||||
"n": "中国香港",
|
||||
"v": "/area/中国香港"
|
||||
}, {
|
||||
"n": "中国台湾",
|
||||
"v": "/area/中国台湾"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "/area/美国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "/area/韩国"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "/area/英国"
|
||||
}, {
|
||||
"n": "法国",
|
||||
"v": "/area/法国"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "分类",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "古装",
|
||||
"v": "/class/古装"
|
||||
}, {
|
||||
"n": "言情",
|
||||
"v": "/class/言情"
|
||||
}, {
|
||||
"n": "武侠",
|
||||
"v": "/class/武侠"
|
||||
}, {
|
||||
"n": "偶像",
|
||||
"v": "/class/美国"
|
||||
}, {
|
||||
"n": "家庭",
|
||||
"v": "/class/家庭"
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "/class/喜剧"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "/class/战争"
|
||||
}, {
|
||||
"n": "军旅",
|
||||
"v": "/class/军旅"
|
||||
}, {
|
||||
"n": "谍战",
|
||||
"v": "/class/谍战"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "/class/悬疑"
|
||||
}, {
|
||||
"n": "罪案",
|
||||
"v": "/class/罪案"
|
||||
}, {
|
||||
"n": "穿越",
|
||||
"v": "/class/穿越"
|
||||
}, {
|
||||
"n": "宫廷",
|
||||
"v": "/class/宫廷"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "神话",
|
||||
"v": "/class/神话"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "年代",
|
||||
"v": "/class/年代"
|
||||
}, {
|
||||
"n": "农村",
|
||||
"v": "/class/农村"
|
||||
}, {
|
||||
"n": "商战",
|
||||
"v": "/class/商战"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "/class/剧情"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "网剧",
|
||||
"v": "/class/网剧"
|
||||
}, {
|
||||
"n": "都市",
|
||||
"v": "/class/都市"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}],
|
||||
"zy": [{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "中国大陆",
|
||||
"v": "/area/中国大陆"
|
||||
}, {
|
||||
"n": "中国香港",
|
||||
"v": "/area/中国香港"
|
||||
}, {
|
||||
"n": "中国台湾",
|
||||
"v": "/area/中国台湾"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "/area/美国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "/area/韩国"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "/area/英国"
|
||||
}, {
|
||||
"n": "法国",
|
||||
"v": "/area/法国"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "分类",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "表演",
|
||||
"v": "/class/表演"
|
||||
}, {
|
||||
"n": "播报",
|
||||
"v": "/class/播报"
|
||||
}, {
|
||||
"n": "访谈",
|
||||
"v": "/class/访谈"
|
||||
}, {
|
||||
"n": "体验",
|
||||
"v": "/class/体验"
|
||||
}, {
|
||||
"n": "养成",
|
||||
"v": "/class/养成"
|
||||
}, {
|
||||
"n": "游戏",
|
||||
"v": "/class/游戏"
|
||||
}, {
|
||||
"n": "亲子",
|
||||
"v": "/class/亲子"
|
||||
}, {
|
||||
"n": "美食",
|
||||
"v": "/class/美食"
|
||||
}, {
|
||||
"n": "情感",
|
||||
"v": "/class/情感"
|
||||
}, {
|
||||
"n": "选秀",
|
||||
"v": "/class/选秀"
|
||||
}, {
|
||||
"n": "益智",
|
||||
"v": "/class/益智"
|
||||
}, {
|
||||
"n": "晚会",
|
||||
"v": "/class/晚会"
|
||||
}, {
|
||||
"n": "音乐",
|
||||
"v": "/class/音乐"
|
||||
}, {
|
||||
"n": "文化",
|
||||
"v": "/class/文化"
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "/class/喜剧"
|
||||
}, {
|
||||
"n": "曲艺",
|
||||
"v": "/class/曲艺"
|
||||
}, {
|
||||
"n": "职场",
|
||||
"v": "/class/职场"
|
||||
}, {
|
||||
"n": "脱口秀",
|
||||
"v": "/class/脱口秀"
|
||||
}, {
|
||||
"n": "文艺",
|
||||
"v": "/class/文艺"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}, {
|
||||
"n": "潮流文化",
|
||||
"v": "/class/潮流文化"
|
||||
}, {
|
||||
"n": "体育",
|
||||
"v": "/class/体育"
|
||||
}, {
|
||||
"n": "资讯",
|
||||
"v": "/class/资讯"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}],
|
||||
"dm": [{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "中国大陆",
|
||||
"v": "/area/中国大陆"
|
||||
}, {
|
||||
"n": "中国香港",
|
||||
"v": "/area/中国香港"
|
||||
}, {
|
||||
"n": "中国台湾",
|
||||
"v": "/area/中国台湾"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "/area/美国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "/area/韩国"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "/area/英国"
|
||||
}, {
|
||||
"n": "法国",
|
||||
"v": "/area/法国"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "分类",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "热门",
|
||||
"v": "/class/热门"
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "/class/搞笑"
|
||||
}, {
|
||||
"n": "番剧",
|
||||
"v": "/class/番剧"
|
||||
}, {
|
||||
"n": "国创",
|
||||
"v": "/class/国创"
|
||||
}, {
|
||||
"n": "大电影",
|
||||
"v": "/class/大电影"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "/class/热血"
|
||||
}, {
|
||||
"n": "催泪",
|
||||
"v": "/class/催泪"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "/class/励志"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "/class/机战"
|
||||
}, {
|
||||
"n": "格斗",
|
||||
"v": "/class/格斗"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "/class/恋爱"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "/class/科幻"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "/class/奇幻"
|
||||
}, {
|
||||
"n": "魔幻",
|
||||
"v": "/class/魔幻"
|
||||
}, {
|
||||
"n": "推理",
|
||||
"v": "/class/推理"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "/class/校园"
|
||||
}, {
|
||||
"n": "日常",
|
||||
"v": "/class/日常"
|
||||
}, {
|
||||
"n": "经典",
|
||||
"v": "/class/经典"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "美食",
|
||||
"v": "/class/美食"
|
||||
}, {
|
||||
"n": "武侠",
|
||||
"v": "/class/武侠"
|
||||
}, {
|
||||
"n": "玄幻",
|
||||
"v": "/class/玄幻"
|
||||
}, {
|
||||
"n": "竞技",
|
||||
"v": "/class/竞技"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "/year/2009"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}],
|
||||
"jl": [{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "中国大陆",
|
||||
"v": "/area/中国大陆"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "/area/日本"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "/area/美国"
|
||||
}, {
|
||||
"n": "国外",
|
||||
"v": "/area/国外"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "/area/其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "分类",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "社会",
|
||||
"v": "/class/社会"
|
||||
}, {
|
||||
"n": "动物",
|
||||
"v": "/class/动物"
|
||||
}, {
|
||||
"n": "文化",
|
||||
"v": "/class/文化"
|
||||
}, {
|
||||
"n": "自然",
|
||||
"v": "/class/自然"
|
||||
}, {
|
||||
"n": "人文",
|
||||
"v": "/class/人文"
|
||||
}, {
|
||||
"n": "军事",
|
||||
"v": "/class/军事"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "/class/历史"
|
||||
}, {
|
||||
"n": "记录",
|
||||
"v": "/class/记录"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "/year/2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "/year/2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "/year/2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "/year/2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "/year/2010"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "/by/score"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
// searchUrl:'/ch.html?wd=**',
|
||||
searchUrl: '/ch/page/fypage/wd/**.html',
|
||||
searchable: 2,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
// class_name: '电影&电视剧&动漫&综艺&纪录片',//静态分类名称拼接
|
||||
// class_url: 'dy&tv&dm&zy&jl',//静态分类标识拼接
|
||||
class_parse: '.vi-nav.swiper-wrapper&&li:gt(0):lt(6);a&&Text;a&&href;.*/(.*?).html',
|
||||
play_parse: true,
|
||||
lazy: `js:
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
if (html.encrypt == '1') {
|
||||
url = unescape(url)
|
||||
} else if (html.encrypt == '2') {
|
||||
url = unescape(base64Decode(url))
|
||||
}
|
||||
if (/\\.m3u8|\\.mp4/.test(url)) {
|
||||
input = {
|
||||
jx: 0,
|
||||
url: url,
|
||||
parse: 0
|
||||
}
|
||||
} else {
|
||||
input
|
||||
}
|
||||
`,
|
||||
limit: 5,
|
||||
推荐: '.dx-top;li;a&&title;a&&data-original;.vod_remarks&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: 'ul.dx-list li;a&&title;a&&data-original;.vod_remarks&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1--span&&Text;",
|
||||
"img": ".picHover&&img&&src",
|
||||
"desc": ";;;.video-info-item:eq(0)&&Text;.item-tags&&Text",
|
||||
"content": ".vod_content&&Text",
|
||||
"tabs": ".play-title h2",
|
||||
"lists": ".play_li.fn-clear:eq(#id) a"
|
||||
},
|
||||
搜索: '*',
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
var rule = {
|
||||
类型: '影视',//影视|听书|漫画|小说
|
||||
title: '爱看短剧[盘]',
|
||||
host: 'https://ys.110t.cn/',
|
||||
homeUrl: '/api/ajax.php?act=recommend',
|
||||
homeUrl: '/api/ajax.php?act=Daily',
|
||||
url: '/api/ajax.php?act=fyclass',
|
||||
searchUrl: '/api/ajax.php?act=search&name=**',
|
||||
searchable: 1,
|
||||
quickSearch: 0,
|
||||
filterable: 0,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
hikerListCol: "text_1",
|
||||
hikerClassListCol: "text_1",
|
||||
timeout: 5000,
|
||||
class_name: '全部',
|
||||
class_url: 'yingshilist',
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
input = "push://" + input;
|
||||
}),
|
||||
double: false,
|
||||
推荐: '*',
|
||||
一级: 'json:data;name;;addtime;url',
|
||||
二级: '*',
|
||||
搜索: '*',
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
var rule = {
|
||||
title: '碟调影视',
|
||||
host: 'http://www.618648.com',
|
||||
// homeUrl:'/',
|
||||
url: '/die-tiao/fyclass-fypage.html',
|
||||
searchUrl: '/diediaoch/page/fypage/wd/**.html',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
filterable: 0, //是否启用分类筛选,
|
||||
headers: { //网站的请求头,完整支持所有的,常带ua和cookies
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
// "Cookie": "searchneed=ok"
|
||||
},
|
||||
//class_parse:'.stui-header__menu li.hidden-xs;a&&Text;a&&href;.*/(.*?).html',
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&3&4',
|
||||
play_parse: true,
|
||||
lazy: '',
|
||||
limit: 8,
|
||||
推荐: '.stui-vodlist.clearfix;.stui-vodlist__box;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
double: true, // 推荐内容是否双层定位
|
||||
一级: '.stui-vodlist.clearfix li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1.title&&Text;.stui-content__detail p:eq(2)&&Text",
|
||||
"img": ".lazyload&&data-original",
|
||||
"desc": ".video-info-items:eq(-2)&&Text;.video-info-items:eq(-1)&&Text;.video-info-items:eq(-2)&&Text;.stui-content__detail p:eq(7)&&Text;.stui-content__detail p:eq(6)&&Text",
|
||||
"content": ".stui-content__detail p:eq(9)&&Text",
|
||||
"tabs": ".nav.nav-tabs li",
|
||||
"lists": ".tab-pane.fade:eq(#id)&&ul&&li"
|
||||
},
|
||||
搜索: '.stui-vodlist.clearfix li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
|
||||
}
|
||||
@ -0,0 +1,101 @@
|
||||
var rule = {
|
||||
title:'磁力熊[磁]',
|
||||
host:'https://www.cilixiong.com',
|
||||
homeUrl:'/top250/index.html',
|
||||
// url: '/fyclass/index_(fypage-1).html',
|
||||
url: '/fyclassfyfilter-(fypage-1).html',
|
||||
filter_url:'-{{fl.class or "0"}}-{{fl.area or "0"}}',
|
||||
filter:{
|
||||
"1":[{"key":"class","name":"类型","value":[{"n":"全部","v":"0"},{"n":"剧情","v":"1"},{"n":"喜剧","v":"2"},{"n":"惊悚","v":"3"},{"n":"动作","v":"4"},{"n":"爱情","v":"5"},{"n":"犯罪","v":"6"},{"n":"恐怖","v":"7"},{"n":"冒险","v":"8"},{"n":"悬疑","v":"9"},{"n":"科幻","v":"10"},{"n":"家庭","v":"11"},{"n":"奇幻","v":"12"},{"n":"动画","v":"13"},{"n":"战争","v":"14"},{"n":"历史","v":"15"},{"n":"传记","v":"16"},{"n":"音乐","v":"17"},{"n":"歌舞","v":"18"},{"n":"运动","v":"19"},{"n":"西部","v":"20"},{"n":"灾难","v":"21"},{"n":"古装","v":"22"},{"n":"情色","v":"23"},{"n":"同性","v":"24"},{"n":"儿童","v":"25"},{"n":"纪录片","v":"26"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"0"},{"n":"大陆","v":"1"},{"n":"香港","v":"2"},{"n":"台湾","v":"3"},{"n":"美国","v":"4"},{"n":"日本","v":"5"},{"n":"韩国","v":"6"},{"n":"英国","v":"7"},{"n":"法国","v":"8"},{"n":"德国","v":"9"},{"n":"印度","v":"10"},{"n":"泰国","v":"11"},{"n":"丹麦","v":"12"},{"n":"瑞典","v":"13"},{"n":"巴西","v":"14"},{"n":"加拿大","v":"15"},{"n":"俄罗斯","v":"16"},{"n":"意大利","v":"17"},{"n":"比利时","v":"18"},{"n":"爱尔兰","v":"19"},{"n":"西班牙","v":"20"},{"n":"澳大利亚","v":"21"},{"n":"波兰","v":"22"},{"n":"土耳其","v":"23"},{"n":"越南","v":"24"}]}],
|
||||
"2":[{"key":"class","name":"类型","value":[{"n":"全部","v":"0"},{"n":"剧情","v":"1"},{"n":"喜剧","v":"2"},{"n":"惊悚","v":"3"},{"n":"动作","v":"4"},{"n":"爱情","v":"5"},{"n":"犯罪","v":"6"},{"n":"恐怖","v":"7"},{"n":"冒险","v":"8"},{"n":"悬疑","v":"9"},{"n":"科幻","v":"10"},{"n":"家庭","v":"11"},{"n":"奇幻","v":"12"},{"n":"动画","v":"13"},{"n":"战争","v":"14"},{"n":"历史","v":"15"},{"n":"传记","v":"16"},{"n":"音乐","v":"17"},{"n":"歌舞","v":"18"},{"n":"运动","v":"19"},{"n":"西部","v":"20"},{"n":"灾难","v":"21"},{"n":"古装","v":"22"},{"n":"情色","v":"23"},{"n":"同性","v":"24"},{"n":"儿童","v":"25"},{"n":"纪录片","v":"26"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"0"},{"n":"大陆","v":"1"},{"n":"香港","v":"2"},{"n":"台湾","v":"3"},{"n":"美国","v":"4"},{"n":"日本","v":"5"},{"n":"韩国","v":"6"},{"n":"英国","v":"7"},{"n":"法国","v":"8"},{"n":"德国","v":"9"},{"n":"印度","v":"10"},{"n":"泰国","v":"11"},{"n":"丹麦","v":"12"},{"n":"瑞典","v":"13"},{"n":"巴西","v":"14"},{"n":"加拿大","v":"15"},{"n":"俄罗斯","v":"16"},{"n":"意大利","v":"17"},{"n":"比利时","v":"18"},{"n":"爱尔兰","v":"19"},{"n":"西班牙","v":"20"},{"n":"澳大利亚","v":"21"},{"n":"波兰","v":"22"},{"n":"土耳其","v":"23"},{"n":"越南","v":"24"}]}]
|
||||
},
|
||||
searchUrl: '/e/search/index.php#classid=1,2&show=title&tempid=1&keyboard=**;post',
|
||||
searchable:2,
|
||||
quickSearch:0,
|
||||
filterable:1,
|
||||
headers:{
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout:5000,
|
||||
class_name:'电影&剧集&豆瓣电影Top250&IMDB Top250&高分悬疑片&高分喜剧片&高分传记片&高分爱情片&高分犯罪片&高分恐怖片&高分冒险片&高分武侠片&高分奇幻片&高分历史片&高分战争片&高分歌舞片&高分灾难片&高分情色片&高分西部片&高分音乐片&高分科幻片&高分动作片&高分动画片&高分纪录片&冷门佳片',
|
||||
class_url:'1&2&/top250/&/s/imdbtop250/&/s/suspense/&/s/comedy/&/s/biopic/&/s/romance/&/s/crime/&/s/horror/&/s/adventure/&/s/martial/&/s/fantasy/&/s/history/&/s/war/&/s/musical/&/s/disaster/&/s/erotic/&/s/west/&/s/music/&/s/sci-fi/&s/action/&/s/animation/&/s/documentary/&/s/unpopular/',
|
||||
play_parse:true,
|
||||
lazy:'',
|
||||
limit:6,
|
||||
推荐: `js:
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
var d = [];
|
||||
var html = request(input);
|
||||
var list = pdfa(html, 'body&&.col');
|
||||
list.forEach(it => {
|
||||
d.push({
|
||||
title: pdfh(it, 'h2&&Text'),
|
||||
desc: pdfh(it, '.me-auto&&Text') + '分 / ' + pdfh(it, '.small&&Text'),
|
||||
// pic_url: pd(it, '.card-img&&style'), // 只有 影视TV&爱佬版 有图片
|
||||
pic_url: /!'/.test(pd(it, '.card-img&&style'))?pd(it, '.card-img&&style'):pd(it, '.card-img&&style').replaceAll("'",""), // 兼容 影视TV&爱佬版 以外的其它壳子
|
||||
url: pd(it, 'a&&href')
|
||||
});
|
||||
})
|
||||
setResult(d);
|
||||
`,
|
||||
一级: `js:
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
var d = [];
|
||||
if (MY_CATE !== '1' && MY_CATE !== '2') {
|
||||
let turl = (MY_PAGE === 1)? 'index' : 'index_'+ MY_PAGE;
|
||||
input = HOST + MY_CATE + turl + '.html';
|
||||
}
|
||||
var html = request(input);
|
||||
var list = pdfa(html, 'body&&.col');
|
||||
list.forEach(it => {
|
||||
d.push({
|
||||
title: pdfh(it, 'h2&&Text'),
|
||||
desc: pdfh(it, '.me-auto&&Text') + '分 / ' + pdfh(it, '.small&&Text'),
|
||||
// pic_url: pdfh(it, '.card-img&&style'), // 只有 影视TV&爱佬版 有图片
|
||||
pic_url: /!'/.test(pd(it, '.card-img&&style'))?pd(it, '.card-img&&style'):pd(it, '.card-img&&style').replaceAll("'",""), // 兼容 影视TV&爱佬版 以外的其它壳子
|
||||
url: pd(it, 'a&&href')
|
||||
});
|
||||
})
|
||||
setResult(d);
|
||||
`,
|
||||
二级:{
|
||||
title:'h1&&Text;p.mb-2:eq(4)&&Text',
|
||||
desc:'p.mb-2:eq(1)&&Text;;;p.mb-2:eq(7)&&Text;p.mb-2:eq(5)&&Text',
|
||||
img:'.rounded-2&&src',
|
||||
content:'.mv_card_box&&Text',
|
||||
// tabs:'js:TABS = ["道长磁力"]',
|
||||
// lists:'.mv_down:eq(#id)&&.border-bottom',
|
||||
// list_text:'a&&Text',
|
||||
// list_url:'a&&href',
|
||||
|
||||
tabs:'js:TABS = ["道长磁力","道长在线预览"]',
|
||||
lists:`js:
|
||||
log(TABS);
|
||||
pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;
|
||||
LISTS = [];
|
||||
var dd=[];
|
||||
TABS.forEach(function(tab) {
|
||||
if (/道长磁力/.test(tab)) {
|
||||
var d = pdfa(html, '.mv_down&&.border-bottom');
|
||||
d = d.map(function(it) {
|
||||
var title = pdfh(it, 'a&&Text');
|
||||
log('title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title);
|
||||
var burl = pd(it, 'a&&href');
|
||||
log('burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl);
|
||||
return title + '$' + burl
|
||||
});
|
||||
LISTS.push(d)
|
||||
} else if (/道长在线预览/.test(tab)) {
|
||||
var d = pd(html, 'iframe&&src');
|
||||
if (d) {
|
||||
d=['第一集在线播放预览$' + d]
|
||||
} else {
|
||||
d=['没有预览不要点$http://www.sharenice.net/douyin/23852']
|
||||
}
|
||||
LISTS.push(d)
|
||||
}
|
||||
});
|
||||
`,
|
||||
},
|
||||
搜索:'.col;h2&&Text;.card-img&&style;.me-auto&&Text;a&&href',
|
||||
}
|
||||
@ -0,0 +1,224 @@
|
||||
globalThis.h_ost = 'http://mitu.jiajiayoutian.top/';
|
||||
var key = CryptoJS.enc.Base64.parse("ZDAzMmMxMjg3NmJjNjg0OA==");
|
||||
var iv = CryptoJS.enc.Base64.parse("ZDAzMmMxMjg3NmJjNjg0OA==");
|
||||
globalThis.AES_Decrypt = function(word) {
|
||||
try {
|
||||
var decrypt = CryptoJS.AES.decrypt(word, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7,
|
||||
});
|
||||
const decryptedText = decrypt.toString(CryptoJS.enc.Utf8);
|
||||
if (!decryptedText) {
|
||||
throw new Error("解密后的内容为空");
|
||||
}
|
||||
return decryptedText;
|
||||
} catch (e) {
|
||||
console.error("解密失败:", e);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
globalThis.AES_Encrypt = function(word) {
|
||||
var encrypted = CryptoJS.AES.encrypt(word, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
});
|
||||
return encrypted.toString();
|
||||
};
|
||||
|
||||
globalThis.vod1 = function(t, pg) {
|
||||
let html1 = request(h_ost + 'api.php/getappapi.index/typeFilterVodList', {
|
||||
body: {
|
||||
area: '全部',
|
||||
year: '全部',
|
||||
type_id: t,
|
||||
page: pg,
|
||||
sort: '最新',
|
||||
lang: '全部',
|
||||
class: '全部'
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
let html = JSON.parse(html1);
|
||||
return (AES_Decrypt(html.data));
|
||||
}
|
||||
globalThis.vodids = function(ids) {
|
||||
let html1 = fetch(h_ost + 'api.php/getappapi.index/vodDetail', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
vod_id: ids,
|
||||
}
|
||||
});
|
||||
let html = JSON.parse(html1);
|
||||
const rdata = JSON.parse(AES_Decrypt(html.data));
|
||||
console.log(rdata);
|
||||
const data = {
|
||||
vod_id: ids,
|
||||
vod_name: rdata.vod.vod_name,
|
||||
vod_remarks: rdata.vod.vod_remarks,
|
||||
vod_actor: rdata.vod.vod_actor,
|
||||
vod_director: rdata.vod.vod_director,
|
||||
vod_content: rdata.vod.vod_content,
|
||||
vod_play_from: '',
|
||||
vod_play_url: ''
|
||||
};
|
||||
|
||||
rdata.vod_play_list.forEach((value) => {
|
||||
data.vod_play_from += value.player_info.show + '$$$';
|
||||
value.urls.forEach((v) => {
|
||||
data.vod_play_url += v.name + '$' + value.player_info.parse + '~' + v.url + '~' + rdata.vod.vod_name + '~' + v.name + '#';
|
||||
});
|
||||
data.vod_play_url += '$$$';
|
||||
});
|
||||
return data;
|
||||
}
|
||||
//搜索
|
||||
globalThis.ssvod = function(wd) {
|
||||
var html1 = fetch(h_ost + 'api.php/getappapi.index/searchList', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
keywords: wd,
|
||||
typepage_id: 1,
|
||||
}
|
||||
});
|
||||
let html = JSON.parse(html1);
|
||||
return AES_Decrypt(html.data);
|
||||
}
|
||||
//解析
|
||||
globalThis.jxx = function(id, url, name, juji) {
|
||||
try {
|
||||
if (id.includes('xmflv')) {
|
||||
return {
|
||||
parse: 1,
|
||||
url: id + url,
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
//log(id);
|
||||
if (url.includes('m3u8')) {
|
||||
return {
|
||||
parse: 0,
|
||||
url: url,
|
||||
jx: 1,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
if (id.includes('http')) {
|
||||
let purl = JSON.parse(request(id + url)).url;
|
||||
return {
|
||||
parse: 0,
|
||||
url: purl,
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
}
|
||||
let html1 = request(h_ost + 'api.php/getappapi.index/vodParse', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
body: {
|
||||
parse_api: id,
|
||||
url: AES_Encrypt(url),
|
||||
}
|
||||
});
|
||||
let html = AES_Decrypt(JSON.parse(html1).data);
|
||||
console.log(html1);
|
||||
let decry = html.replace(/\n/g, '').replace(/\\/g, '');
|
||||
let matches = decry.match(/"url":"([^"]+)"/);
|
||||
if (!matches || matches[1] === null) {
|
||||
matches = decry.match(/"url": "([^"]+)"/);
|
||||
}
|
||||
return {
|
||||
parse: 0,
|
||||
url: matches[1],
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
|
||||
};
|
||||
} catch {
|
||||
return {
|
||||
parse: 0,
|
||||
url: '解析失败',
|
||||
jx: 0
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
var rule = {
|
||||
title: '米兔[资]',
|
||||
host: '',
|
||||
detailUrl: 'fyid',
|
||||
searchUrl: '**',
|
||||
url: 'fyclass',
|
||||
searchable: 2,
|
||||
quickSearch: 1,
|
||||
filterable: 0,
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&3&4',
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
const parts = input.split('~');
|
||||
input = jxx(parts[0], parts[1], parts[2], parts[3]);
|
||||
}),
|
||||
推荐: $js.toString(() => {
|
||||
let data = vod1(0, 0);
|
||||
let bata = JSON.parse(data).recommend_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
一级: $js.toString(() => {
|
||||
let data = vod1(input, MY_PAGE);
|
||||
let bata = JSON.parse(data).recommend_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
二级: $js.toString(() => {
|
||||
console.log("调试信息2" + input);
|
||||
let data = vodids(input);
|
||||
//console.log(data);
|
||||
VOD = data;
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let data = ssvod(input);
|
||||
let bata = JSON.parse(data).search_list;
|
||||
bata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
// console.log(data);
|
||||
setResult(d);
|
||||
}),
|
||||
}
|
||||
@ -0,0 +1,743 @@
|
||||
// 地址发布页 https://subaibai.vip/
|
||||
// 搜索数字验证
|
||||
var rule = {
|
||||
title: '素白白',
|
||||
// host:'https://www.subaibaiys.com',
|
||||
host: 'https://subaibai.vip',
|
||||
hostJs: 'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src = jsp.pdfh(html,".go:eq(0)&&a&&href");print(src);HOST=src', //网页域名根动态抓取js代码。通过HOST=赋值
|
||||
// url:'/fyclass/page/fypage',
|
||||
url: '/fyclassfyfilter',
|
||||
filterable: 1, //是否启用分类筛选,
|
||||
filter_url: '{{fl.area}}{{fl.year}}{{fl.class}}{{fl.cateId}}/page/fypage',
|
||||
filter: {
|
||||
"movie_bt": [{
|
||||
"key": "cateId",
|
||||
"name": "分类",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"v": "/movie_bt_series/dongmanju",
|
||||
"n": "动漫剧"
|
||||
}, {
|
||||
"v": "/movie_bt_series/dongmandy",
|
||||
"n": "动漫电影"
|
||||
}, {
|
||||
"v": "/movie_bt_series/yindudy",
|
||||
"n": "印度电影"
|
||||
}, {
|
||||
"v": "/movie_bt_series/guochanju",
|
||||
"n": "国产剧"
|
||||
}, {
|
||||
"v": "/movie_bt_series/guochandy",
|
||||
"n": "国产电影"
|
||||
}, {
|
||||
"v": "/movie_bt_series/riju",
|
||||
"n": "日剧"
|
||||
}, {
|
||||
"v": "/movie_bt_series/rihandy",
|
||||
"n": "日韩电影"
|
||||
}, {
|
||||
"v": "/movie_bt_series/oumeiju",
|
||||
"n": "欧美剧"
|
||||
}, {
|
||||
"v": "/movie_bt_series/oumeidy",
|
||||
"n": "欧美电影"
|
||||
}, {
|
||||
"v": "/movie_bt_series/taiju",
|
||||
"n": "泰剧"
|
||||
}, {
|
||||
"v": "/movie_bt_series/thaidy",
|
||||
"n": "泰国电影"
|
||||
}, {
|
||||
"v": "/movie_bt_series/gangju",
|
||||
"n": "港台剧"
|
||||
}, {
|
||||
"v": "/movie_bt_series/gangtaidy",
|
||||
"n": "港台电影"
|
||||
}, {
|
||||
"v": "/movie_bt_series/documentary",
|
||||
"n": "纪录片"
|
||||
}, {
|
||||
"v": "/movie_bt_series/zongyi",
|
||||
"n": "综艺"
|
||||
}, {
|
||||
"v": "/movie_bt_series/hanju",
|
||||
"n": "韩剧"
|
||||
}, {
|
||||
"v": "/movie_bt_series/xianggangdy",
|
||||
"n": "香港经典电影"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"v": "/movie_bt_tags/pop-popular",
|
||||
"n": "POP流行"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/biography",
|
||||
"n": "传记"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/child",
|
||||
"n": "儿童"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/adventure",
|
||||
"n": "冒险"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/plot",
|
||||
"n": "剧情"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/action",
|
||||
"n": "动作"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/anime",
|
||||
"n": "动漫"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/animation",
|
||||
"n": "动画"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/history",
|
||||
"n": "历史"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/costume",
|
||||
"n": "古装"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/antiquity",
|
||||
"n": "古风"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/homosexual",
|
||||
"n": "同性"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/comedy",
|
||||
"n": "喜剧"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/fantasy",
|
||||
"n": "奇幻"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/family",
|
||||
"n": "家庭"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/terror",
|
||||
"n": "恐怖"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/suspense",
|
||||
"n": "悬疑"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/erotic",
|
||||
"n": "情色"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/thriller",
|
||||
"n": "惊悚"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/drama",
|
||||
"n": "戏曲"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/war",
|
||||
"n": "战争"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/latin",
|
||||
"n": "拉丁"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/funny",
|
||||
"n": "搞笑"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/campus",
|
||||
"n": "校园"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/song-and-dance",
|
||||
"n": "歌舞"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/martial-arts",
|
||||
"n": "武侠"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/disaster",
|
||||
"n": "灾难"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/love",
|
||||
"n": "爱情"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/crime",
|
||||
"n": "犯罪"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/fancy",
|
||||
"n": "玄幻"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/reality-show",
|
||||
"n": "真人秀"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/short-film",
|
||||
"n": "短片"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/kehuan",
|
||||
"n": "科幻"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/documentary",
|
||||
"n": "纪录片"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/talkshow",
|
||||
"n": "脱口秀"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/stageart",
|
||||
"n": "舞台艺术"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/west",
|
||||
"n": "西部"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/sport",
|
||||
"n": "运动"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/youth",
|
||||
"n": "青春"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/music",
|
||||
"n": "音乐"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/ghost",
|
||||
"n": "鬼怪"
|
||||
}, {
|
||||
"v": "/movie_bt_tags/black-film",
|
||||
"n": "黑色电影"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"v": "/movie_bt_cat/bhutan",
|
||||
"n": "不丹"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/china",
|
||||
"n": "中国"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/china-taiwan",
|
||||
"n": "中国台湾"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/china-mainland",
|
||||
"n": "中国大陆"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/china-hongkong",
|
||||
"n": "中国香港"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/denmark",
|
||||
"n": "丹麦"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/ukraine",
|
||||
"n": "乌克兰"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/uruguay",
|
||||
"n": "乌拉圭"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/israel",
|
||||
"n": "以色列"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/iraq",
|
||||
"n": "伊拉克"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/iran",
|
||||
"n": "伊朗"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/russia",
|
||||
"n": "俄罗斯"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/bulgaria",
|
||||
"n": "保加利亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/croatia",
|
||||
"n": "克罗地亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/iceland",
|
||||
"n": "冰岛"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/canada",
|
||||
"n": "加拿大"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/hungary",
|
||||
"n": "匈牙利"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/south-africa",
|
||||
"n": "南非"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/botswana",
|
||||
"n": "博茨瓦纳"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/qatar",
|
||||
"n": "卡塔尔"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/luxembourg",
|
||||
"n": "卢森堡"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/india",
|
||||
"n": "印度"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/indonesia",
|
||||
"n": "印度尼西亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/kazakhstan",
|
||||
"n": "哈萨克斯坦"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/colombia",
|
||||
"n": "哥伦比亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/turkey",
|
||||
"n": "土耳其"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/serbia",
|
||||
"n": "塞尔维亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/cyprus",
|
||||
"n": "塞浦路斯"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/mexico",
|
||||
"n": "墨西哥"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/dominica",
|
||||
"n": "多米尼加"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/austria",
|
||||
"n": "奥地利"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/venezuela",
|
||||
"n": "委内瑞拉"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/nigeria",
|
||||
"n": "尼日利亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/巴基斯坦",
|
||||
"n": "巴基斯坦"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/paraguay",
|
||||
"n": "巴拉圭"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/brazil",
|
||||
"n": "巴西"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/greece",
|
||||
"n": "希腊"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/germany",
|
||||
"n": "德国"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/italy",
|
||||
"n": "意大利"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/latvia",
|
||||
"n": "拉脱维亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/norway",
|
||||
"n": "挪威"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/chech",
|
||||
"n": "捷克"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/摩洛哥",
|
||||
"n": "摩洛哥"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/斯洛伐克",
|
||||
"n": "斯洛伐克"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/slovenia",
|
||||
"n": "斯洛文尼亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/singapore",
|
||||
"n": "新加坡"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/zealand",
|
||||
"n": "新西兰"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/japan",
|
||||
"n": "日本"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/chile",
|
||||
"n": "智利"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/north-korea",
|
||||
"n": "朝鲜"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/cambodia",
|
||||
"n": "柬埔寨"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/georgia",
|
||||
"n": "格鲁吉亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/belgium",
|
||||
"n": "比利时"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/saudi-arabia",
|
||||
"n": "沙特阿拉伯"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/france",
|
||||
"n": "法国"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/poland",
|
||||
"n": "波兰"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/puertorco",
|
||||
"n": "波多黎各"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/bohei",
|
||||
"n": "波黑"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/thailand",
|
||||
"n": "泰国"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/australia",
|
||||
"n": "澳大利亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/ireland",
|
||||
"n": "爱尔兰"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/estonia",
|
||||
"n": "爱沙尼亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/sweden",
|
||||
"n": "瑞典"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/switzerland",
|
||||
"n": "瑞士"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/belarus",
|
||||
"n": "白俄罗斯"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/peru",
|
||||
"n": "秘鲁"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/tunisia",
|
||||
"n": "突尼斯"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/lithuania",
|
||||
"n": "立陶宛"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/romania",
|
||||
"n": "罗马尼亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/america",
|
||||
"n": "美国"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/finland",
|
||||
"n": "芬兰"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/sovietunion",
|
||||
"n": "苏联"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/england",
|
||||
"n": "英国"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/netherlands",
|
||||
"n": "荷兰"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/philippines",
|
||||
"n": "菲律宾"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/葡萄牙",
|
||||
"n": "葡萄牙"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/west-germany",
|
||||
"n": "西德"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/spain",
|
||||
"n": "西班牙"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/vietnam",
|
||||
"n": "越南"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/argentina",
|
||||
"n": "阿根廷"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/korea",
|
||||
"n": "韩国"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/malaysia",
|
||||
"n": "马来西亚"
|
||||
}, {
|
||||
"v": "/movie_bt_cat/马耳他",
|
||||
"n": "马耳他"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"v": "/year/2024",
|
||||
"n": "2024"
|
||||
}, {
|
||||
"v": "/year/2023",
|
||||
"n": "2023"
|
||||
}, {
|
||||
"v": "/year/2022",
|
||||
"n": "2022"
|
||||
}, {
|
||||
"v": "/year/2021",
|
||||
"n": "2021"
|
||||
}, {
|
||||
"v": "/year/2020",
|
||||
"n": "2020"
|
||||
}, {
|
||||
"v": "/year/2019",
|
||||
"n": "2019"
|
||||
}, {
|
||||
"v": "/year/2018",
|
||||
"n": "2018"
|
||||
}, {
|
||||
"v": "/year/2017",
|
||||
"n": "2017"
|
||||
}, {
|
||||
"v": "/year/2016",
|
||||
"n": "2016"
|
||||
}, {
|
||||
"v": "/year/2015",
|
||||
"n": "2015"
|
||||
}, {
|
||||
"v": "/year/2014",
|
||||
"n": "2014"
|
||||
}, {
|
||||
"v": "/year/2013",
|
||||
"n": "2013"
|
||||
}, {
|
||||
"v": "/year/2012",
|
||||
"n": "2012"
|
||||
}, {
|
||||
"v": "/year/2011",
|
||||
"n": "2011"
|
||||
}, {
|
||||
"v": "/year/2010",
|
||||
"n": "2010"
|
||||
}, {
|
||||
"v": "/year/2009",
|
||||
"n": "2009"
|
||||
}, {
|
||||
"v": "/year/2008",
|
||||
"n": "2008"
|
||||
}, {
|
||||
"v": "/year/2007",
|
||||
"n": "2007"
|
||||
}, {
|
||||
"v": "/year/2006",
|
||||
"n": "2006"
|
||||
}, {
|
||||
"v": "/year/2005",
|
||||
"n": "2005"
|
||||
}, {
|
||||
"v": "/year/2004",
|
||||
"n": "2004"
|
||||
}, {
|
||||
"v": "/year/2003",
|
||||
"n": "2003"
|
||||
}, {
|
||||
"v": "/year/2002",
|
||||
"n": "2002"
|
||||
}, {
|
||||
"v": "/year/2001",
|
||||
"n": "2001"
|
||||
}, {
|
||||
"v": "/year/2000",
|
||||
"n": "2000"
|
||||
}, {
|
||||
"v": "/year/1999",
|
||||
"n": "1999"
|
||||
}, {
|
||||
"v": "/year/1998",
|
||||
"n": "1998"
|
||||
}, {
|
||||
"v": "/year/1997",
|
||||
"n": "1997"
|
||||
}, {
|
||||
"v": "/year/1996",
|
||||
"n": "1996"
|
||||
}, {
|
||||
"v": "/year/1995",
|
||||
"n": "1995"
|
||||
}, {
|
||||
"v": "/year/1994",
|
||||
"n": "1994"
|
||||
}, {
|
||||
"v": "/year/1993",
|
||||
"n": "1993"
|
||||
}, {
|
||||
"v": "/year/1992",
|
||||
"n": "1992"
|
||||
}, {
|
||||
"v": "/year/1991",
|
||||
"n": "1991"
|
||||
}, {
|
||||
"v": "/year/1990",
|
||||
"n": "1990"
|
||||
}, {
|
||||
"v": "/year/1989",
|
||||
"n": "1989"
|
||||
}, {
|
||||
"v": "/year/1988",
|
||||
"n": "1988"
|
||||
}, {
|
||||
"v": "/year/1987",
|
||||
"n": "1987"
|
||||
}, {
|
||||
"v": "/year/1986",
|
||||
"n": "1986"
|
||||
}, {
|
||||
"v": "/year/1985",
|
||||
"n": "1985"
|
||||
}, {
|
||||
"v": "/year/1984",
|
||||
"n": "1984"
|
||||
}, {
|
||||
"v": "/year/1983",
|
||||
"n": "1983"
|
||||
}, {
|
||||
"v": "/year/1982",
|
||||
"n": "1982"
|
||||
}, {
|
||||
"v": "/year/1981",
|
||||
"n": "1981"
|
||||
}, {
|
||||
"v": "/year/1980",
|
||||
"n": "1980"
|
||||
}, {
|
||||
"v": "/year/1979",
|
||||
"n": "1979"
|
||||
}, {
|
||||
"v": "/year/1978",
|
||||
"n": "1978"
|
||||
}, {
|
||||
"v": "/year/1977",
|
||||
"n": "1977"
|
||||
}, {
|
||||
"v": "/year/1976",
|
||||
"n": "1976"
|
||||
}, {
|
||||
"v": "/year/1975",
|
||||
"n": "1975"
|
||||
}, {
|
||||
"v": "/year/1974",
|
||||
"n": "1974"
|
||||
}, {
|
||||
"v": "/year/1973",
|
||||
"n": "1973"
|
||||
}, {
|
||||
"v": "/year/1972",
|
||||
"n": "1972"
|
||||
}, {
|
||||
"v": "/year/1971",
|
||||
"n": "1971"
|
||||
}, {
|
||||
"v": "/year/1970",
|
||||
"n": "1970"
|
||||
}, {
|
||||
"v": "/year/1969",
|
||||
"n": "1969"
|
||||
}, {
|
||||
"v": "/year/1968",
|
||||
"n": "1968"
|
||||
}, {
|
||||
"v": "/year/1967",
|
||||
"n": "1967"
|
||||
}, {
|
||||
"v": "/year/1966",
|
||||
"n": "1966"
|
||||
}, {
|
||||
"v": "/year/1965",
|
||||
"n": "1965"
|
||||
}, {
|
||||
"v": "/year/1964",
|
||||
"n": "1964"
|
||||
}, {
|
||||
"v": "/year/1963",
|
||||
"n": "1963"
|
||||
}, {
|
||||
"v": "/year/1962",
|
||||
"n": "1962"
|
||||
}, {
|
||||
"v": "/year/1960",
|
||||
"n": "1960"
|
||||
}, {
|
||||
"v": "/year/1959",
|
||||
"n": "1959"
|
||||
}, {
|
||||
"v": "/year/1954",
|
||||
"n": "1954"
|
||||
}, {
|
||||
"v": "/year/1952",
|
||||
"n": "1952"
|
||||
}, {
|
||||
"v": "/year/1950",
|
||||
"n": "1950"
|
||||
}, {
|
||||
"v": "/year/1949",
|
||||
"n": "1949"
|
||||
}, {
|
||||
"v": "/year/1948",
|
||||
"n": "1948"
|
||||
}, {
|
||||
"v": "/year/1940",
|
||||
"n": "1940"
|
||||
}, {
|
||||
"v": "/year/1939",
|
||||
"n": "1939"
|
||||
}, {
|
||||
"v": "/year/1925",
|
||||
"n": "1925"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
// searchUrl:'/search?q=**',
|
||||
searchUrl: '/search?q=**',
|
||||
searchable: 2, //是否启用全局搜索,
|
||||
quickSearch: 0, //是否启用快速搜索,
|
||||
headers: {
|
||||
'User-Agent': 'UC_UA',
|
||||
},
|
||||
class_parse: '.navlist&&li;a&&Text;a&&href;.*/([^/]+)',
|
||||
play_parse: true,
|
||||
// lazy:'',
|
||||
lazy: `js:
|
||||
pdfh = jsp.pdfh;
|
||||
var html = request(input);
|
||||
var ohtml = pdfh(html, '.videoplay&&Html');
|
||||
var url = pdfh(ohtml, "body&&iframe&&src");
|
||||
if (/Cloud/.test(url)) {
|
||||
var ifrwy = request(url);
|
||||
let code = ifrwy.match(/var url = '(.*?)'/)[1].split('').reverse().join('');
|
||||
let temp = '';
|
||||
for (let i = 0x0; i < code.length; i = i + 0x2) {
|
||||
temp += String.fromCharCode(parseInt(code[i] + code[i + 0x1], 0x10))
|
||||
}
|
||||
input = {
|
||||
jx: 0,
|
||||
url: temp.substring(0x0, (temp.length - 0x7) / 0x2) + temp.substring((temp.length - 0x7) / 0x2 + 0x7),
|
||||
parse: 0
|
||||
}
|
||||
} else if (/decrypted/.test(ohtml)) {
|
||||
var phtml = pdfh(ohtml, "body&&script:not([src])&&Html");
|
||||
eval(getCryptoJS());
|
||||
var scrpt = phtml.match(/var.*?\\)\\);/g)[0];
|
||||
var data = [];
|
||||
eval(scrpt.replace(/md5/g, 'CryptoJS').replace('eval', 'data = '));
|
||||
input = {
|
||||
jx: 0,
|
||||
url: data.match(/url:.*?[\\'\\"](.*?)[\\'\\"]/)[1],
|
||||
parse: 0
|
||||
}
|
||||
} else {
|
||||
input
|
||||
}
|
||||
`,
|
||||
limit: 6,
|
||||
推荐: '.leibox&&li;*;*;*;*',
|
||||
// double:true, // 推荐内容是否双层定位
|
||||
一级: '.mrb&&li;img&&alt;img&&data-original;.jidi&&Text;a&&href',
|
||||
二级: {
|
||||
"title": "h1&&Text;.moviedteail_list&&li:eq(0)&&Text",
|
||||
"img": ".dyimg&&img&&src",
|
||||
"desc": ".moviedteail_list&&li:eq(-1)&&Text;;;.moviedteail_list&&li:eq(7)&&Text;.moviedteail_list&&li:eq(5)&&Text",
|
||||
"content": ".yp_context&&p&&Text",
|
||||
"tabs": ".mi_paly_box .ypxingq_t--span",
|
||||
"lists": ".paly_list_btn:eq(#id) a"
|
||||
},
|
||||
搜索: '.search_list&&li;img&&alt;img&&data-original;.nostag&&Text;a&&href',
|
||||
}
|
||||
@ -0,0 +1,970 @@
|
||||
var rule = {
|
||||
title: '花子动漫[漫]',
|
||||
host: 'https://www.huazidm.com',
|
||||
class_name: 'TV动漫&剧场&特摄',
|
||||
class_url: '1&2&3',
|
||||
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA',
|
||||
},
|
||||
url: '/index.php/api/vod#type=fyclassfyfilter&page=fypage',
|
||||
filterable: 0,
|
||||
filter_url: '&class={{fl.class}}&year={{fl.year}}&letter={{fl.letter}}&by={{fl.by}}',
|
||||
filter: {
|
||||
"1": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "异世界",
|
||||
"v": "异世界"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "百合"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "后宫"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "热血"
|
||||
}, {
|
||||
"n": "纯爱",
|
||||
"v": "纯爱"
|
||||
}, {
|
||||
"n": "穿越",
|
||||
"v": "穿越"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "奇幻"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "战斗"
|
||||
}, {
|
||||
"n": "后宫",
|
||||
"v": "后宫"
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "搞笑"
|
||||
}, {
|
||||
"n": "日常",
|
||||
"v": "日常"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "治愈"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "校园"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "恋爱"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "冒险"
|
||||
}, {
|
||||
"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": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "1998"
|
||||
}, {
|
||||
"n": "1997",
|
||||
"v": "1997"
|
||||
}, {
|
||||
"n": "1996",
|
||||
"v": "1996"
|
||||
}, {
|
||||
"n": "1995",
|
||||
"v": "1995"
|
||||
}, {
|
||||
"n": "1994",
|
||||
"v": "1994"
|
||||
}, {
|
||||
"n": "1993",
|
||||
"v": "1993"
|
||||
}, {
|
||||
"n": "1992",
|
||||
"v": "1992"
|
||||
}, {
|
||||
"n": "1991",
|
||||
"v": "1991"
|
||||
}, {
|
||||
"n": "1990",
|
||||
"v": "1990"
|
||||
}, {
|
||||
"n": "1989",
|
||||
"v": "1989"
|
||||
}, {
|
||||
"n": "1988",
|
||||
"v": "1988"
|
||||
}, {
|
||||
"n": "1987",
|
||||
"v": "1987"
|
||||
}, {
|
||||
"n": "1986",
|
||||
"v": "1986"
|
||||
}, {
|
||||
"n": "1985",
|
||||
"v": "1985"
|
||||
}, {
|
||||
"n": "1984",
|
||||
"v": "1984"
|
||||
}, {
|
||||
"n": "1983",
|
||||
"v": "1983"
|
||||
}, {
|
||||
"n": "1982",
|
||||
"v": "1982"
|
||||
}, {
|
||||
"n": "1981",
|
||||
"v": "1981"
|
||||
}, {
|
||||
"n": "1980",
|
||||
"v": "1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "letter",
|
||||
"name": "字母",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "A",
|
||||
"v": "A"
|
||||
}, {
|
||||
"n": "B",
|
||||
"v": "B"
|
||||
}, {
|
||||
"n": "C",
|
||||
"v": "C"
|
||||
}, {
|
||||
"n": "D",
|
||||
"v": "D"
|
||||
}, {
|
||||
"n": "E",
|
||||
"v": "E"
|
||||
}, {
|
||||
"n": "F",
|
||||
"v": "F"
|
||||
}, {
|
||||
"n": "G",
|
||||
"v": "G"
|
||||
}, {
|
||||
"n": "H",
|
||||
"v": "H"
|
||||
}, {
|
||||
"n": "I",
|
||||
"v": "I"
|
||||
}, {
|
||||
"n": "J",
|
||||
"v": "J"
|
||||
}, {
|
||||
"n": "K",
|
||||
"v": "K"
|
||||
}, {
|
||||
"n": "L",
|
||||
"v": "L"
|
||||
}, {
|
||||
"n": "M",
|
||||
"v": "M"
|
||||
}, {
|
||||
"n": "N",
|
||||
"v": "N"
|
||||
}, {
|
||||
"n": "O",
|
||||
"v": "O"
|
||||
}, {
|
||||
"n": "P",
|
||||
"v": "P"
|
||||
}, {
|
||||
"n": "Q",
|
||||
"v": "Q"
|
||||
}, {
|
||||
"n": "R",
|
||||
"v": "R"
|
||||
}, {
|
||||
"n": "S",
|
||||
"v": "S"
|
||||
}, {
|
||||
"n": "T",
|
||||
"v": "T"
|
||||
}, {
|
||||
"n": "U",
|
||||
"v": "U"
|
||||
}, {
|
||||
"n": "V",
|
||||
"v": "V"
|
||||
}, {
|
||||
"n": "W",
|
||||
"v": "W"
|
||||
}, {
|
||||
"n": "X",
|
||||
"v": "X"
|
||||
}, {
|
||||
"n": "Y",
|
||||
"v": "Y"
|
||||
}, {
|
||||
"n": "Z",
|
||||
"v": "Z"
|
||||
}, {
|
||||
"n": "0-9",
|
||||
"v": "0-9"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "时间",
|
||||
"value": [{
|
||||
"n": "按最新",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "按最热",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "按评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}],
|
||||
"2": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "异世界",
|
||||
"v": "异世界"
|
||||
}, {
|
||||
"n": "百合",
|
||||
"v": "百合"
|
||||
}, {
|
||||
"n": "热血",
|
||||
"v": "热血"
|
||||
}, {
|
||||
"n": "穿越",
|
||||
"v": "穿越"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "奇幻"
|
||||
}, {
|
||||
"n": "战斗",
|
||||
"v": "战斗"
|
||||
}, {
|
||||
"n": "搞笑",
|
||||
"v": "搞笑"
|
||||
}, {
|
||||
"n": "日常",
|
||||
"v": "日常"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}, {
|
||||
"n": "治愈",
|
||||
"v": "治愈"
|
||||
}, {
|
||||
"n": "校园",
|
||||
"v": "校园"
|
||||
}, {
|
||||
"n": "恋爱",
|
||||
"v": "恋爱"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "冒险"
|
||||
}, {
|
||||
"n": "机战",
|
||||
"v": "机战"
|
||||
}, {
|
||||
"n": "音乐",
|
||||
"v": "音乐"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "1998"
|
||||
}, {
|
||||
"n": "1997",
|
||||
"v": "1997"
|
||||
}, {
|
||||
"n": "1996",
|
||||
"v": "1996"
|
||||
}, {
|
||||
"n": "1995",
|
||||
"v": "1995"
|
||||
}, {
|
||||
"n": "1994",
|
||||
"v": "1994"
|
||||
}, {
|
||||
"n": "1993",
|
||||
"v": "1993"
|
||||
}, {
|
||||
"n": "1992",
|
||||
"v": "1992"
|
||||
}, {
|
||||
"n": "1991",
|
||||
"v": "1991"
|
||||
}, {
|
||||
"n": "1990",
|
||||
"v": "1990"
|
||||
}, {
|
||||
"n": "1989",
|
||||
"v": "1989"
|
||||
}, {
|
||||
"n": "1988",
|
||||
"v": "1988"
|
||||
}, {
|
||||
"n": "1987",
|
||||
"v": "1987"
|
||||
}, {
|
||||
"n": "1986",
|
||||
"v": "1986"
|
||||
}, {
|
||||
"n": "1985",
|
||||
"v": "1985"
|
||||
}, {
|
||||
"n": "1984",
|
||||
"v": "1984"
|
||||
}, {
|
||||
"n": "1983",
|
||||
"v": "1983"
|
||||
}, {
|
||||
"n": "1982",
|
||||
"v": "1982"
|
||||
}, {
|
||||
"n": "1981",
|
||||
"v": "1981"
|
||||
}, {
|
||||
"n": "1980",
|
||||
"v": "1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "letter",
|
||||
"name": "字母",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "A",
|
||||
"v": "A"
|
||||
}, {
|
||||
"n": "B",
|
||||
"v": "B"
|
||||
}, {
|
||||
"n": "C",
|
||||
"v": "C"
|
||||
}, {
|
||||
"n": "D",
|
||||
"v": "D"
|
||||
}, {
|
||||
"n": "E",
|
||||
"v": "E"
|
||||
}, {
|
||||
"n": "F",
|
||||
"v": "F"
|
||||
}, {
|
||||
"n": "G",
|
||||
"v": "G"
|
||||
}, {
|
||||
"n": "H",
|
||||
"v": "H"
|
||||
}, {
|
||||
"n": "I",
|
||||
"v": "I"
|
||||
}, {
|
||||
"n": "J",
|
||||
"v": "J"
|
||||
}, {
|
||||
"n": "K",
|
||||
"v": "K"
|
||||
}, {
|
||||
"n": "L",
|
||||
"v": "L"
|
||||
}, {
|
||||
"n": "M",
|
||||
"v": "M"
|
||||
}, {
|
||||
"n": "N",
|
||||
"v": "N"
|
||||
}, {
|
||||
"n": "O",
|
||||
"v": "O"
|
||||
}, {
|
||||
"n": "P",
|
||||
"v": "P"
|
||||
}, {
|
||||
"n": "Q",
|
||||
"v": "Q"
|
||||
}, {
|
||||
"n": "R",
|
||||
"v": "R"
|
||||
}, {
|
||||
"n": "S",
|
||||
"v": "S"
|
||||
}, {
|
||||
"n": "T",
|
||||
"v": "T"
|
||||
}, {
|
||||
"n": "U",
|
||||
"v": "U"
|
||||
}, {
|
||||
"n": "V",
|
||||
"v": "V"
|
||||
}, {
|
||||
"n": "W",
|
||||
"v": "W"
|
||||
}, {
|
||||
"n": "X",
|
||||
"v": "X"
|
||||
}, {
|
||||
"n": "Y",
|
||||
"v": "Y"
|
||||
}, {
|
||||
"n": "Z",
|
||||
"v": "Z"
|
||||
}, {
|
||||
"n": "0-9",
|
||||
"v": "0-9"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "时间",
|
||||
"value": [{
|
||||
"n": "按最新",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "按最热",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "按评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}],
|
||||
"3": [{
|
||||
"key": "class",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "动作"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "奇幻"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "2004"
|
||||
}, {
|
||||
"n": "2003",
|
||||
"v": "2003"
|
||||
}, {
|
||||
"n": "2002",
|
||||
"v": "2002"
|
||||
}, {
|
||||
"n": "2001",
|
||||
"v": "2001"
|
||||
}, {
|
||||
"n": "2000",
|
||||
"v": "2000"
|
||||
}, {
|
||||
"n": "1999",
|
||||
"v": "1999"
|
||||
}, {
|
||||
"n": "1998",
|
||||
"v": "1998"
|
||||
}, {
|
||||
"n": "1997",
|
||||
"v": "1997"
|
||||
}, {
|
||||
"n": "1996",
|
||||
"v": "1996"
|
||||
}, {
|
||||
"n": "1995",
|
||||
"v": "1995"
|
||||
}, {
|
||||
"n": "1994",
|
||||
"v": "1994"
|
||||
}, {
|
||||
"n": "1993",
|
||||
"v": "1993"
|
||||
}, {
|
||||
"n": "1992",
|
||||
"v": "1992"
|
||||
}, {
|
||||
"n": "1991",
|
||||
"v": "1991"
|
||||
}, {
|
||||
"n": "1990",
|
||||
"v": "1990"
|
||||
}, {
|
||||
"n": "1989",
|
||||
"v": "1989"
|
||||
}, {
|
||||
"n": "1988",
|
||||
"v": "1988"
|
||||
}, {
|
||||
"n": "1987",
|
||||
"v": "1987"
|
||||
}, {
|
||||
"n": "1986",
|
||||
"v": "1986"
|
||||
}, {
|
||||
"n": "1985",
|
||||
"v": "1985"
|
||||
}, {
|
||||
"n": "1984",
|
||||
"v": "1984"
|
||||
}, {
|
||||
"n": "1983",
|
||||
"v": "1983"
|
||||
}, {
|
||||
"n": "1982",
|
||||
"v": "1982"
|
||||
}, {
|
||||
"n": "1981",
|
||||
"v": "1981"
|
||||
}, {
|
||||
"n": "1980",
|
||||
"v": "1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "letter",
|
||||
"name": "字母",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "A",
|
||||
"v": "A"
|
||||
}, {
|
||||
"n": "B",
|
||||
"v": "B"
|
||||
}, {
|
||||
"n": "C",
|
||||
"v": "C"
|
||||
}, {
|
||||
"n": "D",
|
||||
"v": "D"
|
||||
}, {
|
||||
"n": "E",
|
||||
"v": "E"
|
||||
}, {
|
||||
"n": "F",
|
||||
"v": "F"
|
||||
}, {
|
||||
"n": "G",
|
||||
"v": "G"
|
||||
}, {
|
||||
"n": "H",
|
||||
"v": "H"
|
||||
}, {
|
||||
"n": "I",
|
||||
"v": "I"
|
||||
}, {
|
||||
"n": "J",
|
||||
"v": "J"
|
||||
}, {
|
||||
"n": "K",
|
||||
"v": "K"
|
||||
}, {
|
||||
"n": "L",
|
||||
"v": "L"
|
||||
}, {
|
||||
"n": "M",
|
||||
"v": "M"
|
||||
}, {
|
||||
"n": "N",
|
||||
"v": "N"
|
||||
}, {
|
||||
"n": "O",
|
||||
"v": "O"
|
||||
}, {
|
||||
"n": "P",
|
||||
"v": "P"
|
||||
}, {
|
||||
"n": "Q",
|
||||
"v": "Q"
|
||||
}, {
|
||||
"n": "R",
|
||||
"v": "R"
|
||||
}, {
|
||||
"n": "S",
|
||||
"v": "S"
|
||||
}, {
|
||||
"n": "T",
|
||||
"v": "T"
|
||||
}, {
|
||||
"n": "U",
|
||||
"v": "U"
|
||||
}, {
|
||||
"n": "V",
|
||||
"v": "V"
|
||||
}, {
|
||||
"n": "W",
|
||||
"v": "W"
|
||||
}, {
|
||||
"n": "X",
|
||||
"v": "X"
|
||||
}, {
|
||||
"n": "Y",
|
||||
"v": "Y"
|
||||
}, {
|
||||
"n": "Z",
|
||||
"v": "Z"
|
||||
}, {
|
||||
"n": "0-9",
|
||||
"v": "0-9"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "时间",
|
||||
"value": [{
|
||||
"n": "按最新",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "按最热",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "按评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
filter_def: {},
|
||||
detailUrl: '/voddetail/fyid.html',
|
||||
play_parse: true,
|
||||
sniffer: 1,
|
||||
is_video: 'obj/tos|bd.xhscdn|/ugc/',
|
||||
lazy: $js.toString(() => {
|
||||
input = {
|
||||
parse: 1,
|
||||
url: input,
|
||||
//js:'try{let urls=Array.from(document.querySelectorAll("iframe")).filter(x=>x.src.includes("?url="));if(urls){location.href=urls[0].src}}catch{}document.querySelector("button").click()',
|
||||
js: 'try{location.href=document.querySelector("#playleft iframe").src}catch{}document.querySelector("button.swal-button--confirm").click()',
|
||||
parse_extra: '&is_pc=1&custom_regex=' + rule.is_video,
|
||||
}
|
||||
}),
|
||||
limit: 6,
|
||||
推荐: '.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
|
||||
一级: $js.toString(() => {
|
||||
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',
|
||||
搜索: $js.toString(() => {
|
||||
let html = fetch(input);
|
||||
let list = pdfa(html, ".public-list-box");
|
||||
VODS = list.map(x => {
|
||||
return {
|
||||
vod_name: pdfh(x, ".thumb-txt&&Text"),
|
||||
vod_pic: pdfh(x, ".lazy&&data-src"),
|
||||
vod_remarks: pdfh(x, ".public-list-prb&&Text"),
|
||||
vod_content: pdfh(x, ".thumb-blurb&&Text"),
|
||||
vod_id: pdfh(x, "a&&href")
|
||||
}
|
||||
});
|
||||
}),
|
||||
图片替换: '&=>&'
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,549 @@
|
||||
var rule = {
|
||||
title: "路漫漫",
|
||||
host: "http://www.lmm36.com",
|
||||
url: "/vod/show/id/fyclassfyfilter.html",
|
||||
searchUrl: '/vod/search/page/fypage/wd/**.html',
|
||||
searchable: 2,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
filter: {
|
||||
"3": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"4": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"5": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"6": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"7": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}],
|
||||
"8": [{
|
||||
"key": "年代",
|
||||
"name": "年代",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "/year/2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "/year/2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "/year/2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "/year/2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "/year/2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "/year/2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "/year/2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "/year/2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "/year/2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "/year/2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "/year/2015"
|
||||
}, {
|
||||
"n": "更早",
|
||||
"v": "/year/2014-1980"
|
||||
}]
|
||||
}, {
|
||||
"key": "排序",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "最近更新",
|
||||
"v": "/by/time"
|
||||
}, {
|
||||
"n": "最高人气",
|
||||
"v": "/by/hits"
|
||||
}, {
|
||||
"n": "最高评分",
|
||||
"v": "/by/score"
|
||||
}, {
|
||||
"n": "最多点赞",
|
||||
"v": "/by/up"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
filter_url: "{{fl.排序}}{{fl.年代}}/page/fypage",
|
||||
filter_def: "",
|
||||
headers: {
|
||||
"User-Agent": "MOBILE_UA"
|
||||
},
|
||||
timeout: 5000,
|
||||
class_name: "日本动漫&国产动漫&欧美动漫&日本动画电影&国产动画电影&欧美动画电影",
|
||||
class_url: "6&7&8&3&4&5",
|
||||
class_parse: "",
|
||||
cate_exclude: "",
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
function getDAesString(token) {
|
||||
eval(getCryptoJS());
|
||||
var key = CryptoJS.enc.Utf8.parse("ejjooopppqqqrwww");
|
||||
|
||||
var iv = CryptoJS.enc.Utf8.parse("1348987635684651");
|
||||
|
||||
var token = CryptoJS.AES.decrypt(token, key, {
|
||||
iv: iv,
|
||||
mode: CryptoJS.mode.CBC,
|
||||
padding: CryptoJS.pad.Pkcs7,
|
||||
});
|
||||
|
||||
return token.toString(CryptoJS.enc.Utf8);
|
||||
}
|
||||
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
var from = html.from;
|
||||
if (html.encrypt == "1") {
|
||||
url = unescape(url);
|
||||
} else if (html.encrypt == "2") {
|
||||
url = unescape(base64Decode(url));
|
||||
}
|
||||
if (/\.mp4|\.m3u8|\.flv/.test(url)) {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: url.split("&")[0],
|
||||
js: ''
|
||||
};
|
||||
} else {
|
||||
var jsh = request(HOST + "/static/player/" + from + ".js", {
|
||||
headers: {
|
||||
Referer: input
|
||||
},
|
||||
}).match(/\.src\s*=\s*(.*?);/)[1];
|
||||
//log(MY_HOME);
|
||||
if (/type=/.test(jsh)) {
|
||||
jsh = jsh
|
||||
.replace(/[\+\s']/g, "")
|
||||
.replace(/MacPlayer.Parse/, "")
|
||||
.replace(/MacPlayer.PlayUrl/, url)
|
||||
.replace(/window.location.href/, input);
|
||||
var playht = fetch(jsh, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
}
|
||||
});
|
||||
} else {
|
||||
jsh = jsh
|
||||
.replace(/[\+\s']/g, "")
|
||||
.replace(/MacPlayer.Parse/, "")
|
||||
.replace(/MacPlayer.PlayUrl/, url)
|
||||
.replace(/window.location.href/, input);
|
||||
|
||||
jsh = JSON.parse(
|
||||
fetch(jsh, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
},
|
||||
onlyHeaders: true
|
||||
})
|
||||
).url;
|
||||
var playht = fetch(jsh, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var postapi = jsh.match(/^(.*?\/\/.*?\/.*?\/)/)[1];
|
||||
|
||||
var posturl = postapi + playht.match(/post\("(.*?)"/)[1];
|
||||
if (/act\s*=/.test(playht)) {
|
||||
var vid = playht.match(/vid\s*=\s*"(.*?)"/)[1];
|
||||
var t = playht.match(/var\s*t\s*=\s*"(.*?)"/)[1];
|
||||
var token = playht.match(/token\s*=\s*"(.*?)"/)[1];
|
||||
var act = playht.match(/act\s*=\s*"(.*?)"/)[1];
|
||||
var play = playht.match(/play\s*=\s*"(.*?)"/)[1];
|
||||
token = getDAesString(token);
|
||||
|
||||
var data = JSON.parse(
|
||||
post(posturl, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
},
|
||||
body: {
|
||||
vid: vid,
|
||||
t: t,
|
||||
token: token,
|
||||
act: act,
|
||||
play: play,
|
||||
},
|
||||
timeout: 5000
|
||||
})
|
||||
);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: data.url,
|
||||
js: ''
|
||||
};
|
||||
} else {
|
||||
var key = "";
|
||||
|
||||
playht.match(/var (\w+)="(.*?)";/g).forEach(function(list) {
|
||||
key += list.match(/"(.*?)"/)[1];
|
||||
});
|
||||
const bodys = JSON.parse(
|
||||
playht
|
||||
.match(/post\(.*?,(.*?),\n/)[1]
|
||||
.replace(/"keyyy"\s*:\s*''.*?''/, '"keyyy" : "' + key + '"')
|
||||
);
|
||||
var data = JSON.parse(
|
||||
post(posturl, {
|
||||
headers: {
|
||||
Referer: HOST
|
||||
},
|
||||
body: bodys
|
||||
})
|
||||
);
|
||||
if (data.ext == "xgplayer") {
|
||||
var dataurl =
|
||||
"https://yun.366day.site/mp4hls/xgplayer.php?vid=" + data.url;
|
||||
var video = fetch(dataurl, {
|
||||
headers: {
|
||||
Referer: jsh
|
||||
}
|
||||
}).match(
|
||||
/"url": "(.*?)"/
|
||||
)[1];
|
||||
input = {
|
||||
parse: 0,
|
||||
url: video,
|
||||
js: ''
|
||||
};
|
||||
} else if (data.ext == "hls" || data.ext == "hls_list") {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: decodeURIComponent(data.url),
|
||||
js: ''
|
||||
};
|
||||
} else {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: data.url,
|
||||
js: ''
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
double: false,
|
||||
推荐: "*",
|
||||
一级: ".video-img-box;h6.title&&Text;.lazyload&&data-src;.label&&Text;a&&href",
|
||||
二级: {
|
||||
title: ".page-title&&Text;.tag-link&&Text",
|
||||
img: ".module-item-pic&&.lazyload&&src",
|
||||
desc: ".video-info-items:eq(3)&&Text;.video-info-items:eq(2)&&Text;;.video-info-items:eq(1)&&Text;.video-info-items:eq(0)&&Text",
|
||||
content: ".video-info-content&&Text",
|
||||
tabs: ".module-tab-item.tab-item",
|
||||
lists: ".module-player-list:eq(#id) a",
|
||||
tab_text: "body&&Text",
|
||||
list_text: "body&&Text",
|
||||
list_url: "a&&href"
|
||||
},
|
||||
detailUrl: "",
|
||||
搜索: "*"
|
||||
}
|
||||
@ -0,0 +1,627 @@
|
||||
muban.首图2.二级.desc = 'p.data:eq(-1)&&Text;;;p.data:eq(-2)&&Text;p.data:eq(-3)&&Text';
|
||||
var rule = {
|
||||
title: '达达龟',
|
||||
模板: '首图2',
|
||||
host: 'https://www.dadagui.me',
|
||||
// url:'/vodshow/fyclass--------fypage---.html',
|
||||
url: '/vodshow/fyclassfyfilter.html',
|
||||
filterable: 1, //是否启用分类筛选,
|
||||
filter_url: '-{{fl.area}}-{{fl.by}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}',
|
||||
filter: {
|
||||
"1": [{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "大陆",
|
||||
"v": "大陆"
|
||||
}, {
|
||||
"n": "香港",
|
||||
"v": "香港"
|
||||
}, {
|
||||
"n": "台湾",
|
||||
"v": "台湾"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
}, {
|
||||
"n": "法国",
|
||||
"v": "法国"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "英国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "韩国"
|
||||
}, {
|
||||
"n": "德国",
|
||||
"v": "德国"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "泰国"
|
||||
}, {
|
||||
"n": "印度",
|
||||
"v": "印度"
|
||||
}, {
|
||||
"n": "意大利",
|
||||
"v": "意大利"
|
||||
}, {
|
||||
"n": "西班牙",
|
||||
"v": "西班牙"
|
||||
}, {
|
||||
"n": "加拿大",
|
||||
"v": "加拿大"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "2004"
|
||||
}]
|
||||
}, {
|
||||
"key": "lang",
|
||||
"name": "语言",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "国语",
|
||||
"v": "国语"
|
||||
}, {
|
||||
"n": "英语",
|
||||
"v": "英语"
|
||||
}, {
|
||||
"n": "粤语",
|
||||
"v": "粤语"
|
||||
}, {
|
||||
"n": "闽南语",
|
||||
"v": "闽南语"
|
||||
}, {
|
||||
"n": "韩语",
|
||||
"v": "韩语"
|
||||
}, {
|
||||
"n": "日语",
|
||||
"v": "日语"
|
||||
}, {
|
||||
"n": "法语",
|
||||
"v": "法语"
|
||||
}, {
|
||||
"n": "德语",
|
||||
"v": "德语"
|
||||
}, {
|
||||
"n": "其它",
|
||||
"v": "其它"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}],
|
||||
"2": [{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "内地",
|
||||
"v": "内地"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "韩国"
|
||||
}, {
|
||||
"n": "香港",
|
||||
"v": "香港"
|
||||
}, {
|
||||
"n": "台湾",
|
||||
"v": "台湾"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "泰国"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "英国"
|
||||
}, {
|
||||
"n": "新加坡",
|
||||
"v": "新加坡"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "2004"
|
||||
}]
|
||||
}, {
|
||||
"key": "lang",
|
||||
"name": "语言",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "国语",
|
||||
"v": "国语"
|
||||
}, {
|
||||
"n": "英语",
|
||||
"v": "英语"
|
||||
}, {
|
||||
"n": "粤语",
|
||||
"v": "粤语"
|
||||
}, {
|
||||
"n": "闽南语",
|
||||
"v": "闽南语"
|
||||
}, {
|
||||
"n": "韩语",
|
||||
"v": "韩语"
|
||||
}, {
|
||||
"n": "日语",
|
||||
"v": "日语"
|
||||
}, {
|
||||
"n": "其它",
|
||||
"v": "其它"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}],
|
||||
"3": [{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "内地",
|
||||
"v": "内地"
|
||||
}, {
|
||||
"n": "港台",
|
||||
"v": "港台"
|
||||
}, {
|
||||
"n": "日韩",
|
||||
"v": "日韩"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "欧美"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "2004"
|
||||
}]
|
||||
}, {
|
||||
"key": "lang",
|
||||
"name": "语言",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "国语",
|
||||
"v": "国语"
|
||||
}, {
|
||||
"n": "英语",
|
||||
"v": "英语"
|
||||
}, {
|
||||
"n": "粤语",
|
||||
"v": "粤语"
|
||||
}, {
|
||||
"n": "闽南语",
|
||||
"v": "闽南语"
|
||||
}, {
|
||||
"n": "韩语",
|
||||
"v": "韩语"
|
||||
}, {
|
||||
"n": "日语",
|
||||
"v": "日语"
|
||||
}, {
|
||||
"n": "其它",
|
||||
"v": "其它"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}],
|
||||
"4": [{
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "国产",
|
||||
"v": "国产"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
}, {
|
||||
"n": "欧美",
|
||||
"v": "欧美"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "2011",
|
||||
"v": "2011"
|
||||
}, {
|
||||
"n": "2010",
|
||||
"v": "2010"
|
||||
}, {
|
||||
"n": "2009",
|
||||
"v": "2009"
|
||||
}, {
|
||||
"n": "2008",
|
||||
"v": "2008"
|
||||
}, {
|
||||
"n": "2007",
|
||||
"v": "2007"
|
||||
}, {
|
||||
"n": "2006",
|
||||
"v": "2006"
|
||||
}, {
|
||||
"n": "2005",
|
||||
"v": "2005"
|
||||
}, {
|
||||
"n": "2004",
|
||||
"v": "2004"
|
||||
}]
|
||||
}, {
|
||||
"key": "lang",
|
||||
"name": "语言",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "国语",
|
||||
"v": "国语"
|
||||
}, {
|
||||
"n": "英语",
|
||||
"v": "英语"
|
||||
}, {
|
||||
"n": "粤语",
|
||||
"v": "粤语"
|
||||
}, {
|
||||
"n": "闽南语",
|
||||
"v": "闽南语"
|
||||
}, {
|
||||
"n": "韩语",
|
||||
"v": "韩语"
|
||||
}, {
|
||||
"n": "日语",
|
||||
"v": "日语"
|
||||
}, {
|
||||
"n": "其它",
|
||||
"v": "其它"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "人气",
|
||||
"v": "hits"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "score"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
searchUrl: '/vodsearch/**----------fypage---.html',
|
||||
class_parse: '.stui-header__menu li:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
|
||||
lazy: `js:
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
if (html.encrypt == '1') {
|
||||
url = unescape(url)
|
||||
} else if (html.encrypt == '2') {
|
||||
url = unescape(base64Decode(url))
|
||||
}
|
||||
if (/\\.m3u8|\\.mp4/.test(url)) {
|
||||
input = {
|
||||
jx: 0,
|
||||
url: url,
|
||||
parse: 0
|
||||
}
|
||||
} else {
|
||||
input
|
||||
}
|
||||
`,
|
||||
// 搜索: muban.首图2.搜索1,
|
||||
搜索: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
|
||||
}
|
||||
@ -0,0 +1,183 @@
|
||||
globalThis.h_ost = 'http://v.lkuys.cn/';
|
||||
|
||||
globalThis.vodlist = function($t, $pg) {
|
||||
const currentTimestamp = parseInt(Date.now() / 1000, 10);
|
||||
const url = h_ost + '/v2/home/type_search';
|
||||
const hx = CryptoJS.MD5('kj5649ertj84ks89r4jh8s45hf84hjfds04k' + currentTimestamp).toString();
|
||||
let html = request(url, {
|
||||
body: {
|
||||
sign: hx,
|
||||
type_id: $t,
|
||||
page: $pg,
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp-okgo/jeasonlzy',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
return JSON.parse(html).data.list;
|
||||
}
|
||||
|
||||
globalThis.seach = function(wd) {
|
||||
const currentTimestamp = parseInt(Date.now() / 1000, 10);
|
||||
const url = h_ost + '/v2/home/search';
|
||||
const hx = CryptoJS.MD5('kj5649ertj84ks89r4jh8s45hf84hjfds04k' + currentTimestamp).toString();
|
||||
let html = request(url, {
|
||||
body: {
|
||||
sign: hx,
|
||||
keyword: wd,
|
||||
timestamp: currentTimestamp,
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp-okgo/jeasonlzy',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
return JSON.parse(html).data.list;
|
||||
}
|
||||
globalThis.vodids = function(ids) {
|
||||
const currentTimestamp = parseInt(Date.now() / 1000, 10);
|
||||
const url = h_ost + '/v2/home/vod_details';
|
||||
const hx = CryptoJS.MD5('kj5649ertj84ks89r4jh8s45hf84hjfds04k' + currentTimestamp).toString();
|
||||
let html = request(url, {
|
||||
body: {
|
||||
sign: hx,
|
||||
vod_id: ids,
|
||||
timestamp: currentTimestamp,
|
||||
},
|
||||
headers: {
|
||||
'User-Agent': 'okhttp-okgo/jeasonlzy',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
'method': 'POST'
|
||||
}, true);
|
||||
const redata = JSON.parse(html);
|
||||
let vodPlayFrom = '';
|
||||
let vodPlayUrl = '';
|
||||
redata.data.vod_play_list.forEach((value, key) => {
|
||||
if (value.flag.includes("nby") || value.flag.includes("mgtv") || value.flag.includes("qq") || value.flag.includes("qiyi") || value.flag.includes("mgtv")) {
|
||||
vodPlayFrom += `${value.flag}$$$`;
|
||||
value.urls.forEach(url => {
|
||||
vodPlayUrl += `${url.name}$${value.parse_urls[0]}${url.url}~${url.name}#`;
|
||||
});
|
||||
vodPlayUrl += '$$$';
|
||||
}
|
||||
});
|
||||
const regeshi = {
|
||||
vod_id: redata.data.vod_id,
|
||||
vod_name: redata.data.vod_name,
|
||||
vod_remarks: `${redata.data.vod_remarks}`,
|
||||
type_name: redata.data.vod_class,
|
||||
vod_pic: redata.data.vod_pic,
|
||||
vod_year: redata.data.vod_year,
|
||||
vod_area: redata.data.vod_area,
|
||||
vod_actor: `${redata.data.vod_actor}`,
|
||||
vod_director: redata.data.vod_director,
|
||||
vod_content: `${redata.data.vod_content}`,
|
||||
vod_play_from: vodPlayFrom,
|
||||
vod_play_url: vodPlayUrl
|
||||
};
|
||||
return regeshi;
|
||||
}
|
||||
globalThis.jxx = function(input) {
|
||||
if ("741852963" !== '741852963') {
|
||||
return 'https://s0.mall.tcl.com/group1/M00/00/89/CvoGBGdcOPaAAUxvADwZniVV2bc476.mp4';
|
||||
}
|
||||
const parts = input.split('~');
|
||||
try {
|
||||
let response = fetch(parts[0], {
|
||||
method: 'get',
|
||||
headers: {
|
||||
'User-Agent': 'okhttp/3.14.9',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
});
|
||||
|
||||
if (response.includes("成功") || response.includes("success") || response.includes("nby")) {
|
||||
let bata = JSON.parse(response);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: bata.url,
|
||||
jx: 0,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + VOD.vod_name + '&js=' + parts[1] + '&key=741852963'
|
||||
}
|
||||
} else {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: parts[0].includes('url=') ? parts[0].slice(parts[0].indexOf('url=') + 4) : null,
|
||||
jx: 1,
|
||||
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + VOD.vod_name + '&js=' + parts[1] + '&key=741852963'
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: '解析失败',
|
||||
jx: 0,
|
||||
}
|
||||
}
|
||||
return input;
|
||||
}
|
||||
|
||||
var rule = {
|
||||
title: '追剧',
|
||||
host: '',
|
||||
detailUrl: 'fyid',
|
||||
searchUrl: '**',
|
||||
url: 'fyclass',
|
||||
searchable: 2,
|
||||
quickSearch: 1,
|
||||
filterable: 0,
|
||||
class_name: '电影&电视剧&综艺&动漫',
|
||||
class_url: '1&2&4&3',
|
||||
play_parse: true,
|
||||
lazy: $js.toString(() => {
|
||||
input = jxx(input);
|
||||
}),
|
||||
推荐: $js.toString(() => {
|
||||
let bdata = vodlist(0, 1);
|
||||
console.log(bdata);
|
||||
bdata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
一级: $js.toString(() => {
|
||||
let bdata = vodlist(input, MY_PAGE);
|
||||
console.log(bdata);
|
||||
bdata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
二级: $js.toString(() => {
|
||||
console.log("调试信息2" + input);
|
||||
let data = vodids(input);
|
||||
//console.log(data);
|
||||
VOD = (data);
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
let ddata = seach(input);
|
||||
ddata.forEach(it => {
|
||||
d.push({
|
||||
url: it.vod_id,
|
||||
title: it.vod_name,
|
||||
img: it.vod_pic,
|
||||
desc: it.vod_remarks
|
||||
});
|
||||
});
|
||||
setResult(d);
|
||||
}),
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
var rule = {
|
||||
title: '追剧迷',
|
||||
模板: 'vfed',
|
||||
host: 'https://www.zhuijumi.cc',
|
||||
// url:'/videotype/fyclass-fypage.html',
|
||||
url: '/mp4type/fyclass-fypage.html',
|
||||
searchUrl: '/mp4search/-.html?wd=**',
|
||||
class_parse: '.fed-part-tips li;a&&Text;a&&href;.*/(.*?).html',
|
||||
cate_exclude: '更多|申请',
|
||||
lazy: `js:
|
||||
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
|
||||
var url = html.url;
|
||||
if (html.encrypt == '1') {
|
||||
url = unescape(url)
|
||||
} else if (html.encrypt == '2') {
|
||||
url = unescape(base64Decode(url))
|
||||
}
|
||||
if (/\\.m3u8|\\.mp4/.test(url)) {
|
||||
input = {
|
||||
jx: 0,
|
||||
url: url,
|
||||
parse: 0
|
||||
}
|
||||
} else {
|
||||
input
|
||||
}
|
||||
`,
|
||||
二级: {
|
||||
"title": "h1&&Text;.fed-col-xs6--span:eq(0)&&Text",
|
||||
"img": ".fed-list-info&&a&&data-original",
|
||||
"desc": ".fed-col-xs12.fed-part-eone:eq(3)&&Text;;;.fed-col-xs12.fed-part-eone--span:eq(0)&&Text;.fed-col-xs12.fed-part-eone--span:eq(1)&&Text",
|
||||
"content": ".fed-conv-text:eq(0)&&Text",
|
||||
"tabs": "ul.fed-padding&&li",
|
||||
"lists": ".fed-tabs-btm:eq(#id) li"
|
||||
},
|
||||
搜索: '.fed-list-deta;h1&&Text;.fed-lazy&&data-original;.fed-list-remarks&&Text;a&&href;.fed-col-xs12.fed-part-eone:eq(2)&&Text',
|
||||
}
|
||||
@ -0,0 +1,378 @@
|
||||
globalThis.getRandomItem = function(items) {
|
||||
return items[Math.random() * items.length | 0];
|
||||
}
|
||||
var rule = {
|
||||
title: '采集之王[合]',
|
||||
author: '道长',
|
||||
version: '20240706 beta17',
|
||||
update_info: ``.trim(),
|
||||
host: '',
|
||||
homeTid: '',
|
||||
homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}',
|
||||
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
|
||||
searchUrl: '/api.php/provide/vod/?wd=**&pg=#TruePage##page=fypage',
|
||||
classUrl: '/api.php/provide/vod/',
|
||||
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyfilter',
|
||||
filter_url: '{{fl.类型}}',
|
||||
headers: {
|
||||
'User-Agent': 'MOBILE_UA'
|
||||
},
|
||||
timeout: 5000,
|
||||
limit: 20,
|
||||
search_limit: 10,
|
||||
searchable: 1,
|
||||
quickSearch: 0,
|
||||
filterable: 1,
|
||||
play_parse: true,
|
||||
parse_url: '',
|
||||
search_match: false,
|
||||
search_pic: true,
|
||||
预处理: $js.toString(() => {
|
||||
function getClasses(item) {
|
||||
let classes = [];
|
||||
if (item.class_name && item.class_url) {
|
||||
if (!/&|电影|电视剧|综艺|动漫[\u4E00-\u9FA5]+/.test(item.class_name)) {
|
||||
try {
|
||||
item.class_name = ungzip(item.class_name)
|
||||
} catch (e) {
|
||||
log(`不识别的class_name导致gzip解码失败:${e}`)
|
||||
return classes
|
||||
}
|
||||
}
|
||||
let names = item.class_name.split('&');
|
||||
let urls = item.class_url.split('&');
|
||||
let cnt = Math.min(names.length, urls.length);
|
||||
for (let i = 0; i < cnt; i++) {
|
||||
classes.push({
|
||||
'type_id': urls[i],
|
||||
'type_name': names[i]
|
||||
});
|
||||
}
|
||||
}
|
||||
return classes
|
||||
}
|
||||
if (typeof(batchFetch) === 'function') {
|
||||
rule.search_limit = 16;
|
||||
log('当前程序支持批量请求[batchFetch],搜索限制已设置为16');
|
||||
}
|
||||
let _url = rule.params;
|
||||
log(`传入参数:${_url}`);
|
||||
if (_url && typeof(_url) === 'string' && /^(http|file)/.test(_url)) {
|
||||
if (_url.includes('$')) {
|
||||
let _url_params = _url.split('$');
|
||||
_url = _url_params[0];
|
||||
rule.search_match = !!(_url_params[1]);
|
||||
if (_url_params.length > 2) {
|
||||
rule.search_pic = !!(_url_params[2]);
|
||||
}
|
||||
}
|
||||
let html = request(_url);
|
||||
let json = JSON.parse(html);
|
||||
let _classes = [];
|
||||
rule.filter = {};
|
||||
rule.filter_def = {};
|
||||
json.forEach(it => {
|
||||
let _obj = {
|
||||
type_name: it.name,
|
||||
type_id: it.url,
|
||||
parse_url: it.parse_url || '',
|
||||
searchable: it.searchable !== 0,
|
||||
api: it.api || '',
|
||||
cate_exclude: it.cate_exclude || '',
|
||||
cate_excludes: it.cate_excludes || [],
|
||||
};
|
||||
_classes.push(_obj);
|
||||
try {
|
||||
let json1 = [];
|
||||
if (it.class_name && it.class_url) {
|
||||
json1 = getClasses(it);
|
||||
} else {
|
||||
json1 = JSON.parse(request(urljoin(_obj.type_id, _obj.api || rule.classUrl))).class;
|
||||
}
|
||||
if (_obj.cate_excludes && Array.isArray(_obj.cate_excludes) && _obj.cate_excludes.length > 0) {
|
||||
json1 = json1.filter(cl => !_obj.cate_excludes.includes(cl.type_name));
|
||||
} else if (_obj.cate_exclude) {
|
||||
json1 = json1.filter(cl => !new RegExp(_obj.cate_exclude, 'i').test(cl.type_name));
|
||||
}
|
||||
rule.filter[_obj.type_id] = [{
|
||||
"key": "类型",
|
||||
"name": "类型",
|
||||
"value": json1.map(i => {
|
||||
return {
|
||||
"n": i.type_name,
|
||||
'v': i.type_id
|
||||
}
|
||||
})
|
||||
}];
|
||||
if (json1.length > 0) {
|
||||
rule.filter_def[it.url] = {
|
||||
"类型": json1[0].type_id
|
||||
};
|
||||
}
|
||||
} catch (e) {
|
||||
rule.filter[it.url] = [{
|
||||
"key": "类型",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}]
|
||||
}];
|
||||
}
|
||||
});
|
||||
rule.classes = _classes;
|
||||
}
|
||||
}),
|
||||
class_parse: $js.toString(() => {
|
||||
input = rule.classes;
|
||||
}),
|
||||
推荐: $js.toString(() => {
|
||||
VODS = [];
|
||||
if (rule.classes) {
|
||||
let randomClass = getRandomItem(rule.classes);
|
||||
let _url = urljoin(randomClass.type_id, input);
|
||||
if (randomClass.api) {
|
||||
_url = _url.replace('/api.php/provide/vod/', randomClass.api)
|
||||
}
|
||||
try {
|
||||
let html = request(_url, {
|
||||
timeout: rule.timeout
|
||||
});
|
||||
let json = JSON.parse(html);
|
||||
VODS = json.list;
|
||||
VODS.forEach(it => {
|
||||
it.vod_id = randomClass.type_id + '$' + it.vod_id;
|
||||
it.vod_remarks = it.vod_remarks + '|' + randomClass.type_name;
|
||||
});
|
||||
} catch (e) {}
|
||||
}
|
||||
}),
|
||||
一级: $js.toString(() => {
|
||||
VODS = [];
|
||||
if (rule.classes) {
|
||||
let _url = urljoin(MY_CATE, input);
|
||||
let current_vod = rule.classes.find(item => item.type_id === MY_CATE);
|
||||
if (current_vod && current_vod.api) {
|
||||
_url = _url.replace('/api.php/provide/vod/', current_vod.api)
|
||||
}
|
||||
let html = request(_url);
|
||||
let json = JSON.parse(html);
|
||||
VODS = json.list;
|
||||
VODS.forEach(it => {
|
||||
it.vod_id = MY_CATE + '$' + it.vod_id
|
||||
});
|
||||
}
|
||||
}),
|
||||
二级: $js.toString(() => {
|
||||
VOD = {};
|
||||
if (orId === 'update_info') {
|
||||
VOD = {
|
||||
vod_content: rule.update_info.trim(),
|
||||
vod_name: '更新日志',
|
||||
type_name: '更新日志',
|
||||
vod_pic: 'https://resource-cdn.tuxiaobei.com/video/FtWhs2mewX_7nEuE51_k6zvg6awl.png',
|
||||
vod_remarks: `版本:${rule.version}`,
|
||||
vod_play_from: '道长在线',
|
||||
vod_play_url: '随机小视频$http://api.yujn.cn/api/zzxjj.php',
|
||||
};
|
||||
} else {
|
||||
if (rule.classes) {
|
||||
let _url = urljoin(fyclass, input);
|
||||
let current_vod = rule.classes.find(item => item.type_id === fyclass);
|
||||
if (current_vod && current_vod.api) {
|
||||
_url = _url.replace('/api.php/provide/vod/', current_vod.api)
|
||||
}
|
||||
let html = request(_url);
|
||||
let json = JSON.parse(html);
|
||||
let data = json.list;
|
||||
VOD = data[0];
|
||||
if (current_vod && current_vod.type_name) {
|
||||
VOD.vod_play_from = VOD.vod_play_from.split('$$$').map(it => current_vod.type_name + '|' + it).join('$$$')
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
搜索: $js.toString(() => {
|
||||
VODS = [];
|
||||
if (rule.classes) {
|
||||
let canSearch = rule.classes.filter(it => it.searchable);
|
||||
let page = Number(MY_PAGE);
|
||||
page = (MY_PAGE - 1) % Math.ceil(canSearch.length / rule.search_limit) + 1;
|
||||
let truePage = Math.ceil(MY_PAGE / Math.ceil(canSearch.length / rule.search_limit));
|
||||
if (rule.search_limit) {
|
||||
let start = (page - 1) * rule.search_limit;
|
||||
let end = page * rule.search_limit;
|
||||
let t1 = new Date().getTime();
|
||||
let searchMode = typeof(batchFetch) === 'function' ? '批量' : '单个';
|
||||
log('start:' + start);
|
||||
log('end:' + end);
|
||||
log('搜索模式:' + searchMode);
|
||||
log('精准搜索:' + rule.search_match);
|
||||
log('强制获取图片:' + rule.search_pic);
|
||||
if (start < canSearch.length) {
|
||||
let search_classes = canSearch.slice(start, end);
|
||||
let urls = [];
|
||||
search_classes.forEach(it => {
|
||||
let _url = urljoin(it.type_id, input);
|
||||
if (it.api) {
|
||||
_url = _url.replace('/api.php/provide/vod/', it.api)
|
||||
}
|
||||
_url = _url.replace("#TruePage#", "" + truePage);
|
||||
urls.push(_url);
|
||||
});
|
||||
let results_list = [];
|
||||
let results = [];
|
||||
if (typeof(batchFetch) === 'function') {
|
||||
let reqUrls = urls.map(it => {
|
||||
return {
|
||||
url: it,
|
||||
options: {
|
||||
timeout: rule.timeout
|
||||
}
|
||||
}
|
||||
});
|
||||
let rets = batchFetch(reqUrls);
|
||||
let detailUrls = [];
|
||||
let detailUrlCount = 0;
|
||||
rets.forEach((ret, idx) => {
|
||||
let it = search_classes[idx];
|
||||
if (ret) {
|
||||
try {
|
||||
let json = JSON.parse(ret);
|
||||
let data = json.list;
|
||||
data.forEach(i => {
|
||||
i.site_name = it.type_name;
|
||||
i.vod_id = it.type_id + '$' + i.vod_id;
|
||||
i.vod_remarks = i.vod_remarks + '|' + it.type_name;
|
||||
});
|
||||
if (rule.search_match) {
|
||||
data = data.filter(item => item.vod_name && (new RegExp(KEY, 'i')).test(item.vod_name))
|
||||
}
|
||||
if (data.length > 0) {
|
||||
if (rule.search_pic && !data[0].vod_pic) {
|
||||
log(`当前搜索站点【${it.type_name}】没图片,尝试访问二级去获取图片`);
|
||||
let detailUrl = urls[idx].split('wd=')[0] + 'ac=detail&ids=' + data.map(k => k.vod_id.split('$')[1]).join(',');
|
||||
detailUrls.push(detailUrl);
|
||||
results_list.push({
|
||||
data: data,
|
||||
has_pic: false,
|
||||
detailUrlCount: detailUrlCount
|
||||
});
|
||||
detailUrlCount++;
|
||||
} else {
|
||||
results_list.push({
|
||||
data: data,
|
||||
has_pic: true
|
||||
});
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
log(`请求:${it.type_id}发生错误:${e.message}`)
|
||||
}
|
||||
}
|
||||
});
|
||||
let reqUrls2 = detailUrls.map(it => {
|
||||
return {
|
||||
url: it,
|
||||
options: {
|
||||
timeout: rule.timeout
|
||||
}
|
||||
}
|
||||
});
|
||||
let rets2 = reqUrls2.length > 0 ? batchFetch(reqUrls2) : [];
|
||||
for (let k = 0; k < results_list.length; k++) {
|
||||
let result_data = results_list[k].data;
|
||||
if (!results_list[k].has_pic) {
|
||||
try {
|
||||
let detailJson = JSON.parse(rets2[results_list[k].detailUrlCount]);
|
||||
log('二级数据列表元素数:' + detailJson.list.length);
|
||||
result_data.forEach((d, _seq) => {
|
||||
let detailVodPic = detailJson.list.find(vod => vod.vod_id.toString() === d.vod_id.split('$')[1]);
|
||||
if (detailVodPic) {
|
||||
Object.assign(d, {
|
||||
vod_pic: detailVodPic.vod_pic
|
||||
});
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
log(`强制获取网站${result_data[0].site_name}的搜索图片失败:${e.message}`);
|
||||
}
|
||||
}
|
||||
results = results.concat(result_data);
|
||||
}
|
||||
} else {
|
||||
urls.forEach((_url, idx) => {
|
||||
let it = search_classes[idx];
|
||||
try {
|
||||
let html = request(_url);
|
||||
let json = JSON.parse(html);
|
||||
let data = json.list;
|
||||
data.forEach(i => {
|
||||
i.vod_id = it.type_id + '$' + i.vod_id;
|
||||
i.vod_remarks = i.vod_remarks + '|' + it.type_name;
|
||||
});
|
||||
if (rule.search_match) {
|
||||
data = data.filter(item => item.vod_name && (new RegExp(KEY, 'i')).test(item.vod_name))
|
||||
}
|
||||
if (data.length > 0) {
|
||||
if (rule.search_pic && !data[0].vod_pic) {
|
||||
log(`当前搜索站点【${it.type_name}】没图片,尝试访问二级去获取图片`);
|
||||
let detailUrl = urls[idx].split('wd=')[0] + 'ac=detail&ids=' + data.map(k => k.vod_id.split('$')[1]).join(',');
|
||||
try {
|
||||
let detailJson = JSON.parse(request(detailUrl));
|
||||
log('二级数据列表元素数:' + detailJson.list.length);
|
||||
data.forEach((d, _seq) => {
|
||||
let detailVodPic = detailJson.list.find(vod => vod.vod_id.toString() === d.vod_id.split('$')[1]);
|
||||
if (detailVodPic) {
|
||||
Object.assign(d, {
|
||||
vod_pic: detailVodPic.vod_pic
|
||||
});
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
log(`强制获取网站${it.type_id}的搜索图片失败:${e.message}`);
|
||||
}
|
||||
}
|
||||
results = results.concat(data);
|
||||
}
|
||||
results = results.concat(data);
|
||||
} catch (e) {
|
||||
log(`请求:${it.type_id}发生错误:${e.message}`)
|
||||
}
|
||||
});
|
||||
}
|
||||
VODS = results;
|
||||
let t2 = new Date().getTime();
|
||||
log(`${searchMode}搜索:${urls.length}个站耗时:${(Number(t2) - Number(t1))}ms`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
lazy: $js.toString(() => {
|
||||
let parse_url = '';
|
||||
if (flag && flag.includes('|')) {
|
||||
let type_name = flag.split('|')[0];
|
||||
let current_vod = rule.classes.find(item => item.type_name === type_name);
|
||||
if (current_vod && current_vod.parse_url) {
|
||||
parse_url = current_vod.parse_url
|
||||
}
|
||||
}
|
||||
if (/\.(m3u8|mp4)/.test(input)) {
|
||||
input = {
|
||||
parse: 0,
|
||||
url: input
|
||||
}
|
||||
} else {
|
||||
if (parse_url.startsWith('json:')) {
|
||||
let purl = parse_url.replace('json:', '') + input;
|
||||
let html = request(purl);
|
||||
input = {
|
||||
parse: 0,
|
||||
url: JSON.parse(html).url
|
||||
}
|
||||
} else {
|
||||
input = parse_url + input;
|
||||
}
|
||||
}
|
||||
}),
|
||||
}
|
||||
@ -0,0 +1,598 @@
|
||||
// 网址发布页 https://molicp.com
|
||||
muban.首图.二级.title = '.text-fff--font&&Text;.data--span:eq(0)&&Text';
|
||||
muban.首图.二级.desc = '#rating&&Text;;;.data--span:eq(1)&&Text;.data--span:eq(2)&&Text';
|
||||
muban.首图.二级.content = '.desc&&Text';
|
||||
var rule = {
|
||||
title: 'HDmoli',
|
||||
模板: '首图',
|
||||
host: 'https://www.hdmoli.pro',
|
||||
// url:'/mlist/fyclass-fypage.html',
|
||||
url: '/search.php?page=fypage&searchtype=5&tid=fyfilter',
|
||||
filterable: 1, //是否启用分类筛选,
|
||||
filter_url: '{{fl.cateId}}&jq={{fl.class}}&area={{fl.area}}&year={{fl.year}}&state={{fl.state}}&order={{fl.by}}',
|
||||
filter: {
|
||||
"1": [{
|
||||
"key": "cateId",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "1"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "5"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "6"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "7"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "8"
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "9"
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "10"
|
||||
}, {
|
||||
"n": "纪录片",
|
||||
"v": "11"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "12"
|
||||
}, {
|
||||
"n": "犯罪",
|
||||
"v": "30"
|
||||
}, {
|
||||
"n": "动画",
|
||||
"v": "32"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "剧情",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "战争"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "恐怖"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "剧情"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "爱情"
|
||||
}, {
|
||||
"n": "家庭",
|
||||
"v": "家庭"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "励志"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "悬疑"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "动作"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "奇幻"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "冒险"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "历史"
|
||||
}, {
|
||||
"n": "惊悚",
|
||||
"v": "惊悚"
|
||||
}, {
|
||||
"n": "音乐",
|
||||
"v": "音乐"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}, {
|
||||
"n": "犯罪",
|
||||
"v": "犯罪"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "运动"
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "喜剧"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "韩国"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "英国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "泰国"
|
||||
}, {
|
||||
"n": "中国",
|
||||
"v": "中国"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "more",
|
||||
"v": "more"
|
||||
}]
|
||||
}, {
|
||||
"key": "state",
|
||||
"name": "状态",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "完结",
|
||||
"v": "w"
|
||||
}, {
|
||||
"n": "连载中",
|
||||
"v": "l"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "douban"
|
||||
}]
|
||||
}],
|
||||
"2": [{
|
||||
"key": "cateId",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "2"
|
||||
}, {
|
||||
"n": "美剧",
|
||||
"v": "15"
|
||||
}, {
|
||||
"n": "韩剧",
|
||||
"v": "16"
|
||||
}, {
|
||||
"n": "日剧",
|
||||
"v": "13"
|
||||
}, {
|
||||
"n": "英剧",
|
||||
"v": "34"
|
||||
}, {
|
||||
"n": "中国",
|
||||
"v": "14"
|
||||
}, {
|
||||
"n": "泰剧",
|
||||
"v": "29"
|
||||
}, {
|
||||
"n": "综艺",
|
||||
"v": "39"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "38"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "剧情",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "战争"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "恐怖"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "剧情"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "爱情"
|
||||
}, {
|
||||
"n": "家庭",
|
||||
"v": "家庭"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "励志"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "悬疑"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "动作"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "奇幻"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "冒险"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "历史"
|
||||
}, {
|
||||
"n": "惊悚",
|
||||
"v": "惊悚"
|
||||
}, {
|
||||
"n": "音乐",
|
||||
"v": "音乐"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}, {
|
||||
"n": "犯罪",
|
||||
"v": "犯罪"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "运动"
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "喜剧"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "韩国"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "英国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "泰国"
|
||||
}, {
|
||||
"n": "中国",
|
||||
"v": "中国"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "more",
|
||||
"v": "more"
|
||||
}]
|
||||
}, {
|
||||
"key": "state",
|
||||
"name": "状态",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "完结",
|
||||
"v": "w"
|
||||
}, {
|
||||
"n": "连载中",
|
||||
"v": "l"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "douban"
|
||||
}]
|
||||
}],
|
||||
"41": [{
|
||||
"key": "cateId",
|
||||
"name": "类型",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": "41"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "42"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "43"
|
||||
}]
|
||||
}, {
|
||||
"key": "class",
|
||||
"name": "剧情",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "战争",
|
||||
"v": "战争"
|
||||
}, {
|
||||
"n": "恐怖",
|
||||
"v": "恐怖"
|
||||
}, {
|
||||
"n": "剧情",
|
||||
"v": "剧情"
|
||||
}, {
|
||||
"n": "爱情",
|
||||
"v": "爱情"
|
||||
}, {
|
||||
"n": "家庭",
|
||||
"v": "家庭"
|
||||
}, {
|
||||
"n": "励志",
|
||||
"v": "励志"
|
||||
}, {
|
||||
"n": "悬疑",
|
||||
"v": "悬疑"
|
||||
}, {
|
||||
"n": "动作",
|
||||
"v": "动作"
|
||||
}, {
|
||||
"n": "奇幻",
|
||||
"v": "奇幻"
|
||||
}, {
|
||||
"n": "冒险",
|
||||
"v": "冒险"
|
||||
}, {
|
||||
"n": "历史",
|
||||
"v": "历史"
|
||||
}, {
|
||||
"n": "惊悚",
|
||||
"v": "惊悚"
|
||||
}, {
|
||||
"n": "音乐",
|
||||
"v": "音乐"
|
||||
}, {
|
||||
"n": "科幻",
|
||||
"v": "科幻"
|
||||
}, {
|
||||
"n": "犯罪",
|
||||
"v": "犯罪"
|
||||
}, {
|
||||
"n": "运动",
|
||||
"v": "运动"
|
||||
}, {
|
||||
"n": "喜剧",
|
||||
"v": "喜剧"
|
||||
}]
|
||||
}, {
|
||||
"key": "area",
|
||||
"name": "地区",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "美国",
|
||||
"v": "美国"
|
||||
}, {
|
||||
"n": "韩国",
|
||||
"v": "韩国"
|
||||
}, {
|
||||
"n": "英国",
|
||||
"v": "英国"
|
||||
}, {
|
||||
"n": "日本",
|
||||
"v": "日本"
|
||||
}, {
|
||||
"n": "泰国",
|
||||
"v": "泰国"
|
||||
}, {
|
||||
"n": "中国",
|
||||
"v": "中国"
|
||||
}, {
|
||||
"n": "其他",
|
||||
"v": "其他"
|
||||
}]
|
||||
}, {
|
||||
"key": "year",
|
||||
"name": "年份",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "2025",
|
||||
"v": "2025"
|
||||
}, {
|
||||
"n": "2024",
|
||||
"v": "2024"
|
||||
}, {
|
||||
"n": "2023",
|
||||
"v": "2023"
|
||||
}, {
|
||||
"n": "2022",
|
||||
"v": "2022"
|
||||
}, {
|
||||
"n": "2021",
|
||||
"v": "2021"
|
||||
}, {
|
||||
"n": "2020",
|
||||
"v": "2020"
|
||||
}, {
|
||||
"n": "2019",
|
||||
"v": "2019"
|
||||
}, {
|
||||
"n": "2018",
|
||||
"v": "2018"
|
||||
}, {
|
||||
"n": "2017",
|
||||
"v": "2017"
|
||||
}, {
|
||||
"n": "2016",
|
||||
"v": "2016"
|
||||
}, {
|
||||
"n": "2015",
|
||||
"v": "2015"
|
||||
}, {
|
||||
"n": "2014",
|
||||
"v": "2014"
|
||||
}, {
|
||||
"n": "2013",
|
||||
"v": "2013"
|
||||
}, {
|
||||
"n": "2012",
|
||||
"v": "2012"
|
||||
}, {
|
||||
"n": "more",
|
||||
"v": "more"
|
||||
}]
|
||||
}, {
|
||||
"key": "state",
|
||||
"name": "状态",
|
||||
"value": [{
|
||||
"n": "全部",
|
||||
"v": ""
|
||||
}, {
|
||||
"n": "完结",
|
||||
"v": "w"
|
||||
}, {
|
||||
"n": "连载中",
|
||||
"v": "l"
|
||||
}]
|
||||
}, {
|
||||
"key": "by",
|
||||
"name": "排序",
|
||||
"value": [{
|
||||
"n": "时间",
|
||||
"v": "time"
|
||||
}, {
|
||||
"n": "评分",
|
||||
"v": "douban"
|
||||
}]
|
||||
}]
|
||||
},
|
||||
filter_def: {
|
||||
1: {
|
||||
cateId: '1',
|
||||
by: 'time'
|
||||
},
|
||||
2: {
|
||||
cateId: '2',
|
||||
by: 'time'
|
||||
},
|
||||
41: {
|
||||
cateId: '41',
|
||||
by: 'time'
|
||||
}
|
||||
},
|
||||
searchUrl: '/search.php?page=fypage&searchword=**&searchtype=',
|
||||
class_parse: '.myui-header__menu li;a&&Text;a&&href;.*/index(\\d+).html',
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
{
|
||||
"vodPic": "https://rogsoft.ddnsto.com/softcenter/softcenter/res/icon-alist.png",
|
||||
"drives": [
|
||||
{
|
||||
"name": "小雅",
|
||||
"server": "http://alist.xiaoya.pro"
|
||||
},
|
||||
{
|
||||
"name": "触光",
|
||||
"server": "https://pan.ichuguang.com"
|
||||
},
|
||||
{
|
||||
"name": "魔都云",
|
||||
"server": "https://cdn.modupan.com"
|
||||
},
|
||||
{
|
||||
"name": "七米蓝",
|
||||
"server": "https://al.chirmyram.com"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
{
|
||||
"drives": [
|
||||
{
|
||||
"name": "七米藍",
|
||||
"server": "https://al.chirmyram.com/dav",
|
||||
"user": "alist",
|
||||
"pass": "alist"
|
||||
},
|
||||
{
|
||||
"name": "影視庫",
|
||||
"server": "https://esir.eu.org/dav",
|
||||
"user": "alist",
|
||||
"pass": "alist"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,141 @@
|
||||
[
|
||||
{
|
||||
"name": "360资源",
|
||||
"url": "https://360zy.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影|连续剧|综艺|动漫|伦理片|体育|爽文短剧",
|
||||
"class_name": "H4sIALGjdWYC/zWRa3aCMBCFd5N9tAvomhRaFHoqcKpYrUd7VEQtCD6rYGAzee6iYYi/8s0kmZl7h/fPFO+RqKa8SKgdIV7chZ0j6qzZ/ReR+4p7Frc7dYLgCVAwUQ9r4t09M9+AIp/eippY22OtAN7Zkb5l3S+S25D7xiSP6j5yNWLXFGi2UemaWBzxslcTwZ/COKCX5yfETIcZY/i8u9A84akidykWUJr2LOoeoIkR88CHYZyU4y1Qu5TjEijfUjwAmiVaD+/DxNTN2K2E/sOQTWKg8x9dBkDHTE9Hl5EcWdqfenY3ewTDUIl4BCDiYWOjtzFTy9MB/NGBuBy5ZyKe7uqDTba0a/F9gURYSXPdWI1Z0FGzw456GSkW0sT0aiDx6rPTtFGP6O2kbvimEhdHu0SKESl/VPAhcKzKgJTwKOc+a7+rDarteHJQyZYl5sk/IOiszA8CAAA=",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42&43&45&46&47&48&49&50&51&52&53"
|
||||
},
|
||||
{
|
||||
"name": "豪华资源",
|
||||
"url": "https://hhzyapi.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电视剧|电影|综艺|动漫|短剧|伦理片",
|
||||
"class_name": "H4sIALGjdWYC/zVPWw6CMBC8Tc/pI6D1w0eCKErCj1ofKBBjokg5DbsLt7Bdy1dnZrezMxS8WuWDVIKCF+hCYKqonluhO0X4zhglF/vg5sjskuIzt6ipTrT0SU4EzM6Nji2iaYFjj7UwNkusqRV8vhbhcImDkKdSuT2cbptSWtQ+ctBr54fVTYDvQcynjEABWzTvO+y1WzCRME578o/+J/StWlkKWOT4qdnhoLrId7L5Z0r1xLRc5D1hE0doWHe7mkOOUgpXXGaWkb5yyOPE1aLkbk78ALNMUSlMAQAA",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&20&23&24&25&26&27&28&30&31&32&33&34&35&36&37&38"
|
||||
},
|
||||
{
|
||||
"name": "速播资源",
|
||||
"url": "https://subocaiji.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影|电视剧|动漫|综艺|短剧|伦理片",
|
||||
"class_name": "H4sIALGjdWYC/zWPWw6CMBBFd9N1+ohKNVGMiBpI+FHrAyJISHiV1bQzsAuZgl/39LY9k0En0zJh6GStWGoumF4/oH4zrOqWlwzLl5ZH5CvqlfSJ0EpgvjAk9rqoiMA6q5Kbd1yMtzC1YeKazvX7erT0dhyG6qvoLsPQXQxFQ9QFTwpsthSQf6BJDZ1uJtKYQtV3tJckVPLQzr5t5qlyw1QeaU+OG/Q/wA//h1CQctwtiHrJD0Ycn8r6AAAA",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&20&21&22&23&24&25&26&27"
|
||||
},
|
||||
{
|
||||
"name": "红牛资源",
|
||||
"url": "https://www.hongniuzy2.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影|连续剧|综艺|动漫|纪录片|伦理片|体育赛事|短剧",
|
||||
"class_name": "H4sIALGjdWYC/y2PXQ6CMBCEb9Nz+hOVaqIYFU0g8qRV1AgSEikUL9Pu1lvorj7Nl5nNZBbXlTOF8K89NjcnlcCm9VILNz1BeyGxJkE5ES5KvjERBgUMR0xq6eqGCPoh9CK+k+qfQrCzWrIXG6sVtcPzDl3JtD2wXBV2cyK3yKHu2Ctzknd65kE6c2bDNbwJf4tte8RwTLY1Kz94+Cq2eiYwpS8+mOVyptYAAAA=",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&19&20&21&29&30"
|
||||
},
|
||||
{
|
||||
"name": "新浪资源",
|
||||
"url": "https://api.xinlangapi.com",
|
||||
"parse_url": "",
|
||||
"api": "/xinlangapi.php/provide/vod/from/xlm3u8/",
|
||||
"cate_exclude": "电影|电视剧|动漫|综艺|纪录片|伦理片|体育|短剧",
|
||||
"class_name": "H4sIALGjdWYC/0WOXQ6CMBCEb9Nz+hOR+qAYETUh4UWtikaQkEihPU27W24hXU18msk3m53BuLaqZBjXTgSWC2YXF+hyhm3nuGQob1Ztkc89Nyr1DsMSpjNyYm2b1jsI90ZyuuPil8I4glFCLEkHTO4o+gP1wPsJuqLGVQGNJnYXqJf/Ffgd12dXSncnkqrwYrozRoH/adTGTV4Ms8fAP2ziC/TQAAAA",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&20&21&22&23&24"
|
||||
},
|
||||
{
|
||||
"name": "黑木耳资源",
|
||||
"url": "https://www.heimuer.tv",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "^电影$|^电视剧$|^综艺$|^动漫$|^短剧$",
|
||||
"class_name": "H4sIALGjdWYC/0WSbXKCQAyGb8M5UQcRqgU7DFal2mllKBa/pqNjQexl2M1yi7LZpP2175PNJnkDEJ1FfbIgOqtsKLzMEv6HvH1aUN2UV1pdRA4c8Fwdb+oE1fCpneeowrG0M1Rx0qWiSl3xXWkle6G0Y4wt66bMdHV5PeijXedIsxSPfgHxFJ8MfNlfaAW9e7u4oxqdaATwD1BvUWVTatKNBVEF5GK9w3pfR3QS4CGLDO6PqOJjmxd45VyaKsbYbqxGK+w9em5KD6tXgXCuqOopVAlV7x6J/eDfD61IWwqOBNrYsuabWSqTggHHYMBJujl5zTgPQ7BR7w55UfNQ9h4IWnuo3nbs0mzNAKQrddpymjuBaE0gNpOmcjkt/1EXnyFKxP6V026lsv+ahmOxf+EbY5uammWaf8T4IzDOCeiDUxouiIGdcyZWN/ALQpTFCIwCAAA=",
|
||||
"class_url": "1&2&3&4&6&7&8&9&10&11&12&13&14&15&16&20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42&43&44&45&46&47&48&49&50&51&52&53&54&55&56&57&58&59&60&61&62&63"
|
||||
},
|
||||
{
|
||||
"name": "暴风资源",
|
||||
"url": "https://bfzyapi.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影片|连续剧|综艺片|动漫片|伦理片|电影解说|体育|演员|新闻资讯",
|
||||
"class_name": "H4sIALGjdWYC/zWRa3aCMBCFd5N1+kIFj1VOLdbq0Z6iBq0VrI8qGN1MMhN20WSAP8x34c7NZMDRWYkDuh2mvEiKGVEwUy63BPUh1AJLyH11y4i6B2g65HN5SdB9l6lLX9OtEm9Ew7bep5b0c47Zj3EzNRUy5ZZgx/HxYilfT+AaEy02xkC+QQK3B/nGK5jtiM5/ahkQHZPK50Vw/6ZZimTStslmlaI4qRTmpEFSiSKxEJjdtUvjqiXPJ+1Clw2VoNxKUG4pTAiOivXQQjUPdXxi+VdL+Z59LcWrbvzq81SmPaYvRxw2GcZ7KsK3BYJYx6lyegwXdllmDOVELO/0cbSAxDc3ZLh56ounbieZhQxfElN0VDM/wWysr8UOuwICc4PVEeo9qGU6rLN8vFWbD1xn5snyplDXhm75cJqbnqUOHZlN5OPzH964N6gIAgAA",
|
||||
"class_url": "20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42&43&44&45&46&47&48&49&50&51&52&53&54&55&56&57&58&65&66&67&68&69&70&71&72"
|
||||
},
|
||||
{
|
||||
"name": "量子资源",
|
||||
"url": "https://cj.lziapi.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影片|连续剧|动漫片|综艺片|伦理片|电影解说|体育|演员|新闻资讯",
|
||||
"class_name": "H4sIALGjdWYC/zWR607DMAyF3ybPCbuxDom1Yms3UTEJtmWI0bSMAr1kvEzspG9B46S/8h3b8XEcvSpBFjq4Y+bvWTcfEHCmm9YEtY3B4oTtuyclU6I47Yss6XmB4ykRj6BqLOFtiDcx1QXcZ3G+UXVAsSepam49uuMWfwXR7q0PW8Iz19cHSybLQa7pxjLH6krZ5IDpmaj8gX1MdMn9XdjzbjtzkzPbeZkPIjn0FoMgCy/8NPRGXzYIN4kX1G0QztsJ1R51OKMF0BoNfzXiiyn5aEafzHxfdDhmWmR0yMgeGAsjapjeM2xXEG36QN4ljSknJhNDGyfgVKgqdHnWvUwgWpDVzn7SP/ilxw64AQAA",
|
||||
"class_url": "1&2&3&4&6&7&8&9&10&11&12&13&14&15&16&20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42&43&44&45&46"
|
||||
},
|
||||
{
|
||||
"name": "非凡资源",
|
||||
"url": "http://cj.ffzyapi.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影片|连续剧|动漫片|综艺片|伦理片",
|
||||
"class_name": "H4sIAFhXhmYC/zWQWw6CMBBFd8M6NUakfggmChKJ/ADViFpiiPIobqadwi6kQ/k7d153ZtShlLxQZGP1v4tqHpJQSzVtT2odk9srtHdDgkdIfjQWaVJOAas1Et3LqtEESw8WPtYRarLgnERNMHbmoqbaY8hC+L6Q4tsY1gQ5Vd1OU/9kkh+xw2VQdZgNUohypPIjEx/pzUyvTOgQ2tPmlp7sslkE6WgxC7QwwmyDN5qyWUybGIHTZjF5T0K0mfJsfECsP/cHYziM500BAAA=",
|
||||
"class_url": "1&2&3&4&6&7&8&9&10&11&12&13&14&15&16&20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&36"
|
||||
},
|
||||
{
|
||||
"name": "索尼资源",
|
||||
"url": "https://suoniapi.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影|电视剧|综艺|动漫|体育赛事|预告片|影视解说|爽文短剧|伦理|港台三级|两性课堂|写真热舞",
|
||||
"class_name": "H4sIAFlXhmYC/z1RbXaCMBC8TU7QW/RSip/oq8orxVp56hNoaqtFq1gFopfJZsMtGhLor93Z3czuTNBNgB0IuomkXbApwSyXdkpg8CHyrzJw5qPdI+D5ql1m2D+IVkdn1IFrVmaiORENT8/ZtOqK/itPbV2bM57Skl1sKd5GZVYsN7owjXS4xGWA8V6jow6YfgJ70VTJL4SenghpMetWR6rHiqYGimK8r4HeU2sx640i86YG5px/regaNZqqnjG7K5C74B54/kY4e5bWj0zmPB0SjL9x0iLyfCxDsW6DM9BEXizjFDpDokxWBksayPikHGTC6+FyVyri+TtOutVOfrExNeaoo01HRnfhXeuxaST8bQX4JRQNKuMbrCwC3Rn6S2ztZH9BHh7RfKzwbQhqKRAdi7UjmkP1hcrrJ8m26hRjfCiDDs9m/LYicD3xLMDNXZ4HRLYdcVoIa4ueQ3C0V52ixeBikcJKxH5s9vwBtOQp10cCAAA=",
|
||||
"class_url": "1&2&3&4&6&7&8&9&10&11&12&13&14&15&16&17&18&19&20&23&25&26&27&28&29&30&31&39&44&45&47&48&49&50&51&52&53&54&55&56&57&58&59&60&61&62&63&64&65&66&67&68&69&70"
|
||||
},
|
||||
{
|
||||
"name": "快车资源",
|
||||
"url": "https://caiji.kczyapi.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影|电视剧|综艺|动漫|预告片|伦理|影视解说|体育赛事|港台三级|两性课堂|写真热舞",
|
||||
"class_name": "H4sIAFZXhmYC/z1RbXaCMBC8TU7QW/RSip/oq8orxVp56hNoaqtFq1gFopfJZsMtGhLor93Z3czuTNBNgB0IuomkXbApwSyXdkpg8CHyrzJw5qPdI+D5ql1m2D+IVkdn1IFrVmaiORENT8/ZtOqK/itPbV2bM57Skl1sKd5GZVYsN7owjXS4xGWA8V6jow6YfgJ70VTJL4SenghpMetWR6rHiqYGimK8r4HeU2sx640i86YG5px/regaNZqqnjG7K5C74B54/kY4e5bWj0zmPB0SjL9x0iLyfCxDsW6DM9BEXizjFDpDokxWBksayPikHGTC6+FyVyri+TtOutVOfrExNeaoo01HRnfhXeuxaST8bQX4JRQNKuMbrCwC3Rn6S2ztZH9BHh7RfKzwbQhqKRAdi7UjmkP1hcrrJ8m26hRjfCiDDs9m/LYicD3xLMDNXZ4HRLYdcVoIa4ueQ3C0V52ixeBikcJKxH5s9vwBtOQp10cCAAA=",
|
||||
"class_url": "1&2&3&4&6&7&8&9&10&11&12&13&14&15&16&17&18&19&20&23&25&26&27&28&29&30&31&39&44&45&47&48&49&50&51&52&53&54&55&56&57&58&59&60&61&62&63&64&65&66&67&68&69&70"
|
||||
},
|
||||
{
|
||||
"name": "️极速资源",
|
||||
"url": "https://jszyapi.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电视剧|电影|动漫|综艺|短剧|伦理片",
|
||||
"api": "/api.php/provide/vod/at/json/",
|
||||
"class_name": "H4sIAGJXhmYC/zVP0W7CMBD7m3znYKIQkICKUsaoxMsgsBUooEpQmn5N7i79iyVH+hTbsXw2JaVVEUglKClBXwXmipqpF9r9Gh8XRtujf3C1Y3bM8V54ZOo9zSOSQwHjg9GZRzS64ueAtTRzJtZUDM+XR9ib40fKv1IFH46+TCU9sucC9DLkYf0nIBpAxqecQAlHmMcJNjoYXCXM8o68q78JvWorKwGzAp8Nl9UL27/ZcmOqiYAf1a6j4HEhbmFH3ORZ0RFODIR6TfvdcON+TmnMy8YX0r/ceDcMG2l7cvf+AYiMpdZZAQAA",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&20&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37&38"
|
||||
},
|
||||
{
|
||||
"name": "光速资源",
|
||||
"url": "https://api.guangsuapi.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影|电视剧|综艺|动漫|记录片|伦理片|体育赛事|短剧",
|
||||
"class_name": "H4sIAFVXhmYC/y2Oaw6CMBCEb9Nz+ohINVGMiBpJ+KNW4gskJPJoT9PulltIF3/Nl5nJ7GJYGpkzDEsrPMMFw6a1vGZmcYP27kTLGPmcmSjuY0fo5zCdEYmNqRpKufh7MA5gFBH5B11zSs+iO9I6PASqFdH3Dapw1CWpk+EiDv/A/kLeOoNKUb3InNhXZuTOber2ioFHJLd28rHlSddLhsmz7/0A4RcQUdYAAAA=",
|
||||
"class_url": "1&2&3&4&6&7&8&9&10&11&12&13&14&15&16&20&21&22&23&24&25&30&31"
|
||||
},
|
||||
{
|
||||
"name": "卧龙资源",
|
||||
"url": "https://collect.wolongzy.cc",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影片|连续剧|综艺片|动漫片|伦理片|电影解说|体育|短剧",
|
||||
"class_name": "H4sIAFZXhmYC/1WR0VLCQAxF/6bfqXQsbB9omYEq2JEHKqtQ2iIC0nbxZ5pk+Qt303VG307uZnJvsjQ9gtqTGHr6+4WaHQjpUdNqUVsNwjdst446lTIlqWmyRKM9+g9McgKXxhLex3iXcJ+Q7hVHT10tWHtWXS2tx209x6+SafluZEuYS7qOLUFU4eXK2uMrpjnT8QxZYkkXFagZ+y53LhxNmz8GHPt3niv6Qa4w1lHV7+kCuAIyeZsHrsBD9S+ak4lvpuVKl58e+iEOFuxdnKDu80SZXvHqMA4g+uAjDHJKJhw6LEltmMqCYt/r2jXFAf/B6WAFs5Yx/QEG4wmPmwEAAA==",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&22&23&24&25&26&27&30&31&32&33&37&38&39&42&43&44&45&46&48&49&51&54"
|
||||
},
|
||||
{
|
||||
"name": "天空资源",
|
||||
"url": "https://m3u8.tiankongapi.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影|连续剧|动漫|综艺|伦理片|电影解说|体育赛事|短剧",
|
||||
"api": "/api.php/provide/vod/from/tkm3u8/",
|
||||
"class_name": "H4sIAFdXhmYC/zVQW3LCMAy8jc/JYygknSllCqGUTPkoYAphEqCB4uD0Mrbk3KK2Yn95V9autMJpqeWJodhrOcNoyMzfJ1ZHHXEGGcf6xaFmu4Df3CEd75RMXR+OTtAfEOITfa8cgu4rdBKHbK//hdG7EhHVktSWCcU7nJIC4xzlnmpLqQSnaatvS/w0eBwYVg8TCabXvFk8eeL2GReBzDdWFAitHTTjAu41ebX+raMVQJoF0ub0pLzpdRLIpfCbWIF7kK5l+JfJf5jeDH1u7NbNR01pexkmE8ozuKqKbqHkm+mdTblU4pnhyt32H73g+qZ2AQAA",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42&44"
|
||||
},
|
||||
{
|
||||
"name": "百度云资源",
|
||||
"url": "https://api.apibdzy.com",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影|电视剧|综艺|动漫|伦理片|纪录片|体育赛事|资讯",
|
||||
"class_name": "H4sIAFdXhmYC/zVP7W7CMAx8mzzn1vGVTgKqla4TSEgTLMAQLaBMkDZ9msRO32KNm/67O9t3Z0yl1VeGqXRiYrlgWNWOK2bjA9S/zNQ/uJwgn3rB6A2hbNMteoSzK7yNCYnEPiuP4HUJLxntcRGmMMuN4qTtRPtFOfAooLl71G6PJHzuKV+drF6RZ1ygPoVsTCvsq9pFCc+GLs4Cm7lHdvxnqoy0e0kC5YRfOucuYyCPonMYCDkML6+1USI83t8MpA8KJDpjlvhabSShXIRaRn+46Obk2qh35uTIXQrWjwKBfA75NpD2e2ST+B8HkFGOfQEAAA==",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&36&37&38&39"
|
||||
},
|
||||
{
|
||||
"name": "无尽资源",
|
||||
"url": "https://api.wujinapi.me",
|
||||
"parse_url": "",
|
||||
"cate_exclude": "电影|连续剧|综艺|动漫|伦理片|体育赛事|影视解说|短剧|预告片|资讯|公告|头条|港台三级|韩国伦理|西方伦理|日本伦理|两性课堂|写真热舞",
|
||||
"class_name": "H4sIAFhXhmYC/zVRWVbCQBC8zZxTwxp8CnliFI2AEhzUaIIQhSxwmeklt3Ayk/xVdVe/7qqmaQrlVvB5TvkXuFJQXrCbCRhtsPgUnHb5O66ZKgNyBwL8QKtqRMMtdnoGSQ+OeY3wcoIXvtG5suni8EFlrqk9lSqT9ZLqbYaHuEYwTvB4MotPN1pgar0IvJGAcI/PL0IVbzTpmz3ZB5R3NaoW740W79cYRAalfxD6Zj6U1azfGNECrW6JXjpOWhJJvbP1a2+zru1MS4ysJU5EvmfMjDY0NaZpFFP5YWrrQRNE5aSYjMmGi7ukPkuVt+z8cPqksitB8TdNOkK3WfZZrjjeC1qYD9gj24XWVUOKKUy3qngU/Lurx6vXrk7KpGyG1MGlTDbx2OAEr8/oHxti42qIOoR4ITk+wdIR0J9RsKDOFw/nAgMXVu0JsN5Vrx5eXumP639dcxnR0ITPXQ/3c5uJgONe5St6P/Ov/t045FVP5TN1Wgq6SXSn6pRwcP4BxMt0fHACAAA=",
|
||||
"class_url": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&20&21&22&23&24&25&26&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42&43&44&45&46&47&48&49&50&51&52&53&54&55&56&57&58&59"
|
||||
}
|
||||
]
|
||||
@ -0,0 +1,279 @@
|
||||
# coding=utf-8
|
||||
# !/usr/bin/python
|
||||
# by嗷呜(finally)
|
||||
import sys
|
||||
import os
|
||||
sys.path.append("..")
|
||||
import re
|
||||
import hashlib
|
||||
import hmac
|
||||
import random
|
||||
import string
|
||||
from Crypto.Util.Padding import unpad
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
from Crypto.PublicKey import RSA
|
||||
from Crypto.Cipher import PKCS1_v1_5, AES
|
||||
from base64 import b64encode, b64decode
|
||||
import json
|
||||
import time
|
||||
from base.spider import Spider
|
||||
|
||||
class Spider(Spider):
|
||||
|
||||
def getName(self):
|
||||
return "电影猎手"
|
||||
|
||||
def init(self, extend=""):
|
||||
self.device = self.device_id()
|
||||
self.host = self.gethost()
|
||||
pass
|
||||
|
||||
def isVideoFormat(self, url):
|
||||
pass
|
||||
|
||||
def manualVideoCheck(self):
|
||||
pass
|
||||
|
||||
def action(self, action):
|
||||
pass
|
||||
|
||||
def destroy(self):
|
||||
pass
|
||||
|
||||
t = str(int(time.time()))
|
||||
|
||||
def homeContent(self, filter):
|
||||
result = {}
|
||||
filters = {}
|
||||
classes = []
|
||||
bba = self.url()
|
||||
data = self.fetch(f"{self.host}/api/v1/app/config?pack={bba[0]}&signature={bba[1]}", headers=self.header()).text
|
||||
data1 = self.aes(data)
|
||||
dy = {"class":"类型","area":"地区","lang":"语言","year":"年份","letter":"字母","by":"排序","sort":"排序"}
|
||||
data1['data']['movie_screen']['sort'].pop(0)
|
||||
for item in data1['data']['movie_screen']['sort']:
|
||||
item['n'] = item.pop('name')
|
||||
item['v'] = item.pop('value')
|
||||
for item in data1['data']['movie_screen']['filter']:
|
||||
has_non_empty_field = False
|
||||
classes.append({"type_name": item["name"], "type_id": str(item["id"])})
|
||||
for key in dy:
|
||||
if key in item and item[key]:
|
||||
has_non_empty_field = True
|
||||
break
|
||||
if has_non_empty_field:
|
||||
filters[str(item["id"])] = []
|
||||
filters[str(item["id"])].append(
|
||||
{"key": 'sort', "name": '排序', "value": data1['data']['movie_screen']['sort']})
|
||||
for dkey in item:
|
||||
if dkey in dy and item[dkey]:
|
||||
item[dkey].pop(0)
|
||||
value_array = [
|
||||
{"n": value.strip(), "v": value.strip()}
|
||||
for value in item[dkey]
|
||||
if value.strip() != ""
|
||||
]
|
||||
filters[str(item["id"])].append(
|
||||
{"key": dkey, "name": dy[dkey], "value": value_array}
|
||||
)
|
||||
result["class"] = classes
|
||||
result["filters"] = filters
|
||||
return result
|
||||
|
||||
def homeVideoContent(self):
|
||||
bba = self.url()
|
||||
url = f'{self.host}/api/v1/movie/index_recommend?pack={bba[0]}&signature={bba[1]}'
|
||||
data = self.fetch(url, headers=self.header()).json()
|
||||
videos = []
|
||||
for item in data['data']:
|
||||
if len(item['list']) > 0:
|
||||
for it in item['list']:
|
||||
try:
|
||||
videos.append(self.voides(it))
|
||||
except Exception as e:
|
||||
continue
|
||||
result = {"list": videos}
|
||||
return result
|
||||
|
||||
def categoryContent(self, tid, pg, filter, extend):
|
||||
body = {"type_id": tid, "sort": extend.get("sort", "by_default"), "class": extend.get("class", "类型"),
|
||||
"area": extend.get("area", "地区"), "year": extend.get("year", "年份"), "page": str(pg),
|
||||
"pageSize": "21"}
|
||||
result = {}
|
||||
list = []
|
||||
bba = self.url(body)
|
||||
url = f"{self.host}/api/v1/movie/screen/list?pack={bba[0]}&signature={bba[1]}"
|
||||
data = self.fetch(url, headers=self.header()).json()['data']['list']
|
||||
for item in data:
|
||||
list.append(self.voides(item))
|
||||
result["list"] = list
|
||||
result["page"] = pg
|
||||
result["pagecount"] = 9999
|
||||
result["limit"] = 90
|
||||
result["total"] = 999999
|
||||
return result
|
||||
|
||||
def detailContent(self, ids):
|
||||
body = {"id": ids[0]}
|
||||
bba = self.url(body)
|
||||
url = f'{self.host}/api/v1/movie/detail?pack={bba[0]}&signature={bba[1]}'
|
||||
data = self.fetch(url, headers=self.header()).json()['data']
|
||||
video = {'vod_name': data.get('name'),'type_name': data.get('type_name'),'vod_year': data.get('year'),'vod_area': data.get('area'),'vod_remarks': data.get('dynami'),'vod_content': data.get('content')}
|
||||
play = []
|
||||
names = []
|
||||
tasks = []
|
||||
for itt in data["play_from"]:
|
||||
name = itt["name"]
|
||||
a = []
|
||||
if len(itt["list"]) > 0:
|
||||
names.append(name)
|
||||
play.append(self.playeach(itt['list']))
|
||||
else:
|
||||
tasks.append({"movie_id": ids[0], "from_code": itt["code"]})
|
||||
names.append(name)
|
||||
if tasks:
|
||||
with ThreadPoolExecutor(max_workers=len(tasks)) as executor:
|
||||
results = executor.map(self.playlist, tasks)
|
||||
for result in results:
|
||||
if result:
|
||||
play.append(result)
|
||||
else:
|
||||
play.append("")
|
||||
video["vod_play_from"] = "$$$".join(names)
|
||||
video["vod_play_url"] = "$$$".join(play)
|
||||
result = {"list": [video]}
|
||||
return result
|
||||
|
||||
def searchContent(self, key, quick, pg=1):
|
||||
body = {"keyword": key, "sort": "", "type_id": "0", "page": str(pg), "pageSize": "10",
|
||||
"res_type": "by_movie_name"}
|
||||
bba = self.url(body)
|
||||
url = f"{self.host}/api/v1/movie/search?pack={bba[0]}&signature={bba[1]}"
|
||||
data = self.fetch(url, headers=self.header()).json()['data'].get('list')
|
||||
videos = []
|
||||
for it in data:
|
||||
try:
|
||||
videos.append(self.voides(it))
|
||||
except Exception as e:
|
||||
continue
|
||||
result = {"list": videos, "page": pg}
|
||||
return result
|
||||
|
||||
def playerContent(self, flag, id, vipFlags):
|
||||
url = id
|
||||
if "m3u8" not in url and "mp4" not in url:
|
||||
try:
|
||||
add = id.split('|||')
|
||||
data = {"from_code": add[0], "play_url": add[1], "episode_id": add[2], "type": "play"}
|
||||
bba = self.url(data)
|
||||
data2 = self.fetch(f"{self.host}/api/v1/movie_addr/parse_url?pack={bba[0]}&signature={bba[1]}",
|
||||
headers=self.header()).json()['data']
|
||||
url = data2.get('play_url') or data2.get('download_url')
|
||||
try:
|
||||
url1 = self.fetch(url, headers=self.header(), allow_redirects=False).headers['Location']
|
||||
if url1 and "http" in url1:
|
||||
url = url1
|
||||
except:
|
||||
pass
|
||||
except Exception as e:
|
||||
pass
|
||||
if '.jpg' in url or '.jpeg' in url or '.png' in url:
|
||||
url = self.getProxyUrl() + "&url=" + b64encode(url.encode('utf-8')).decode('utf-8') + "&type=m3u8"
|
||||
result = {}
|
||||
result["parse"] = 0
|
||||
result["url"] = url
|
||||
result["header"] = {'user-agent': 'okhttp/4.9.2'}
|
||||
return result
|
||||
|
||||
def localProxy(self, param):
|
||||
url = b64decode(param["url"]).decode('utf-8')
|
||||
durl = url[:url.rfind('/')]
|
||||
data = self.fetch(url, headers=self.header()).content.decode("utf-8")
|
||||
lines = data.strip().split('\n')
|
||||
for index, string in enumerate(lines):
|
||||
# if 'URI="' in string and 'http' not in string:
|
||||
# lines[index] = index
|
||||
# 暂时预留,貌似用不到
|
||||
if '#EXT' not in string and 'http' not in string:
|
||||
lines[index] = durl + ('' if string.startswith('/') else '/') + string
|
||||
data = '\n'.join(lines)
|
||||
return [200, "application/vnd.apple.mpegur", data]
|
||||
|
||||
def device_id(self):
|
||||
characters = string.ascii_lowercase + string.digits
|
||||
random_string = ''.join(random.choices(characters, k=32))
|
||||
return random_string
|
||||
|
||||
def gethost(self):
|
||||
headers = {
|
||||
'User-Agent': 'okhttp/4.9.2',
|
||||
'Connection': 'Keep-Alive',
|
||||
}
|
||||
response = self.fetch('https://app-site.ecoliving168.com/domain_v5.json', headers=headers).json()
|
||||
url = response['api_service'].replace('/api/', '')
|
||||
return url
|
||||
|
||||
def header(self):
|
||||
headers = {
|
||||
'User-Agent': 'Android',
|
||||
'Accept': 'application/prs.55App.v2+json',
|
||||
'timestamp': self.t,
|
||||
'x-client-setting': '{"pure-mode":1}',
|
||||
'x-client-uuid': '{"device_id":' + self.device + '}, "type":1,"brand":"Redmi", "model":"M2012K10C", "system_version":30, "sdk_version":"3.1.0.7"}',
|
||||
'x-client-version': '3096 '
|
||||
}
|
||||
return headers
|
||||
|
||||
def url(self, id=None):
|
||||
if not id:
|
||||
id = {}
|
||||
id["timestamp"] = self.t
|
||||
public_key = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA02F/kPg5A2NX4qZ5JSns+bjhVMCC6JbTiTKpbgNgiXU+Kkorg6Dj76gS68gB8llhbUKCXjIdygnHPrxVHWfzmzisq9P9awmXBkCk74Skglx2LKHa/mNz9ivg6YzQ5pQFUEWS0DfomGBXVtqvBlOXMCRxp69oWaMsnfjnBV+0J7vHbXzUIkqBLdXSNfM9Ag5qdRDrJC3CqB65EJ3ARWVzZTTcXSdMW9i3qzEZPawPNPe5yPYbMZIoXLcrqvEZnRK1oak67/ihf7iwPJqdc+68ZYEmmdqwunOvRdjq89fQMVelmqcRD9RYe08v+xDxG9Co9z7hcXGTsUquMxkh29uNawIDAQAB'
|
||||
encrypted_text = json.dumps(id)
|
||||
public_key = RSA.import_key(b64decode(public_key))
|
||||
cipher = PKCS1_v1_5.new(public_key)
|
||||
encrypted_message = cipher.encrypt(encrypted_text.encode('utf-8'))
|
||||
encrypted_message_base64 = b64encode(encrypted_message).decode('utf-8')
|
||||
result = encrypted_message_base64.replace('+', '-').replace('/', '_').replace('=', '')
|
||||
key = '635a580fcb5dc6e60caa39c31a7bde48'
|
||||
sign = hmac.new(key.encode(), result.encode(), hashlib.md5).hexdigest()
|
||||
return result, sign
|
||||
|
||||
def playlist(self, body):
|
||||
try:
|
||||
bba = self.url(body)
|
||||
url = f'{self.host}/api/v1/movie_addr/list?pack={bba[0]}&signature={bba[1]}'
|
||||
data = self.fetch(url, headers=self.header()).json()['data']
|
||||
return self.playeach(data)
|
||||
except Exception:
|
||||
return []
|
||||
|
||||
def playeach(self,data):
|
||||
play_urls = []
|
||||
for it in data:
|
||||
if re.search(r"mp4|m3u8", it["play_url"]):
|
||||
play_urls.append(f"{it['episode_name']}${it['play_url']}")
|
||||
else:
|
||||
play_urls.append(
|
||||
f"{it['episode_name']}${it['from_code']}|||{it['play_url']}|||{it['episode_id']}"
|
||||
)
|
||||
return '#'.join(play_urls)
|
||||
|
||||
def voides(self, item):
|
||||
if item['name'] or item['title']:
|
||||
voide = {
|
||||
"vod_id": item.get('id') or item.get('click'),
|
||||
'vod_name': item.get('name') or item.get('title'),
|
||||
'vod_pic': item.get('cover') or item.get('image'),
|
||||
'vod_year': item.get('year') or item.get('label'),
|
||||
'vod_remarks': item.get('dynamic') or item.get('sub_title')
|
||||
}
|
||||
return voide
|
||||
|
||||
def aes(self, text):
|
||||
text = text.replace('-', '+').replace('_', '/') + '=='
|
||||
key = b"e6d5de5fcc51f53d"
|
||||
iv = b"2f13eef7dfc6c613"
|
||||
cipher = AES.new(key, AES.MODE_CBC, iv)
|
||||
pt = unpad(cipher.decrypt(b64decode(text)), AES.block_size).decode("utf-8")
|
||||
return json.loads(pt)
|
||||
@ -0,0 +1,8 @@
|
||||
{
|
||||
"简介": "detail-content\" style=*>&&</span>",
|
||||
"数组": "stui-vodlist__box\">&&</div></div>",
|
||||
"副标题": "pic-text text-right\">&&</span>",
|
||||
"播放列表": "<a&&</a>",
|
||||
"分类url": "https://www.kmxibanyayu.com/vs/{cateId}-{area}--{class}-----{catePg}---{year}.html",
|
||||
"分类": "短剧$duanju#电视剧$dianshiju#电影$dianying#动漫$dongman#综艺$zongyi"
|
||||
}
|
||||
@ -0,0 +1,4 @@
|
||||
{
|
||||
"分类": "短剧$1#电视剧$2",
|
||||
"分类url": "https://www.jjduanju.com/sort/{cateId}/page/{catePg}.html"
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
{
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"主页url": "https://dora.xiaoxinbk.com/",
|
||||
"数组": "class=\"card-img-bili\"&&</a>",
|
||||
"标题": "alt=\"&&\"",
|
||||
"图片": "data-url=\"&&\"",
|
||||
"链接": "href=\"&&\"",
|
||||
"线路标题": "mt-0\">&&</h3>",
|
||||
"播放数组": "class=\"card-body button-list\"&&</div>",
|
||||
"播放列表": "<a&&a>",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"播放标题": ">&&</",
|
||||
"分类url": "https://www.dora-video.cn/search/sy/?niandai={year}&cat={class}&tag={cateId}&gaojijiansuo=1&zhuangtai={by}",
|
||||
"分类": "全部$0#动画$20#剧场版$21#MV$22#预告片$23#直播$27#同人$25#民间$26#目录$28#中篇$30",
|
||||
"剧情": "哆啦A梦新番$1#新哆啦A梦 台湾配音$2#哆啦A梦剧场版$3#最新预告片$6#剧场版集合$7#哆啦A梦MV$4#哆啦A梦七小子集合$11#生日特别篇$19#哆啦A梦生日特别篇$12#哆啦美生日特别篇$14#大雄生日特别篇$13#静香生日特别篇$15#胖虎生日特别篇$16#小夫生日特别篇$17#24小时直播$24#哆啦A梦中篇附映$29#哆啦A梦大山版 - 哆啦a梦1979版国语旧版 - 旧版$31#哆啦A梦大山修复&补档区$32#藤子·F·不二雄【其它动画】$33",
|
||||
"排序": "全部$0#完结$2#连载$1#待定$-1"
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
{
|
||||
"主页url": "https://www.bugutv.org/",
|
||||
"搜索url": "https://www.bugutv.org/?cat=&s={wd}",
|
||||
"搜索数组": "content-area\">&&</div>",
|
||||
"简介": "◎简*介</p>&&</p>",
|
||||
"导演": "◎导*演&&<br>",
|
||||
"主演": "◎主*演&&<br>",
|
||||
"影片年代": "◎上映 日期&&<br>",
|
||||
"影片地区": "◎产*地&&<br>",
|
||||
"线路数组": "entry-content u-text-format u-clearfix&&\"content-template",
|
||||
"线路标题": "磁力",
|
||||
"播放数组": "entry-content u-text-format u-clearfix&&\"content-template",
|
||||
"播放列表": "<p>&&</p>[包含:magnet]",
|
||||
"播放链接": "*\">&&</a>",
|
||||
"分类": "4K蓝光原盘$4kuhd#4K电影$4kmovie#4K剧集$4ktv#杜比视界$dolbyvision#4K纪录片$4kdocu#4K演示片$4kdemo/4ktv-4ktv#杜比演示片$4kdemo/dolbydomo#DTS演示片$4kdemo/dtsdomo#8K演示片$4kdemo/8kdemo#蓝光电影$bluraymovie/bluray-movie#蓝光剧集$bluraymovie/bluraytv#3D蓝光$bluraymovie/3dmovie#蓝光纪录片$bluraymovie/documentary#蓝光演唱会$bluraymovie/audiotest",
|
||||
"分类url": "https://www.bugutv.org/{cateId}/page/{catePg}"
|
||||
}
|
||||
@ -0,0 +1,5 @@
|
||||
{
|
||||
"线路标题": "<h3 class=\"title\">&&</h3>",
|
||||
"分类url": "https://yinghuadm.fun/vodshow/{cateId}-{area}--{class}-----{catePg}---{year}.html",
|
||||
"分类": "电影$1#剧集$2#综艺$3#动漫$4"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
{
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"分类": "电影$1#电视剧$2#综艺$3#动漫$4",
|
||||
"类型": "动作片$6#喜剧片$7#爱情片$8#科幻片$9#奇幻片$10#恐怖片$11#剧情片$12#战争片$20#动画片$26#悬疑片$22#冒险片$23#犯罪片$24#惊悚片$45#歌舞片$46#灾难片$47#网络片$48||国产剧$13#港台剧$14#日剧$15#韩剧$33#欧美剧$16#泰剧$34#新马剧$35#其他剧$25||内地综艺$27#港台综艺$28#日本综艺$29#韩国综艺$36#欧美综艺$30#新马泰综艺$37#其他综艺$38||国产动漫$31#日本动漫$32#韩国动漫$39#港台动漫$40#新马泰动漫$41#欧美动漫$42#其他动漫$43",
|
||||
"分类url": "https://www.ylys.tv/vodshow/{cateId}-{area}-{by}-{class}-{lang}-{letter}---{catePg}---{year}.html"
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
{
|
||||
"首页": "0",
|
||||
"播放链接前缀": "https://www.gyf.lol",
|
||||
"数组": "public-list-box&&</div>",
|
||||
"图片": "data-src=\"&&\"",
|
||||
"标题": "title=\"&&\"",
|
||||
"副标题": "class=\"public-prt hide ol2\">&&</span>",
|
||||
"链接": "href=\"&&\"",
|
||||
"线路数组": "swiper-slide&&</a>",
|
||||
"线路标题": "</i>&&<span",
|
||||
"播放数组": "<ul class=\"anthology-list-play&&</ul>",
|
||||
"播放列表": "<li&&</li>",
|
||||
"播放标题": "html\">&&</a>",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"分类url": "https://www.gyf.lol/index.php/vod/show/area/{area}/by/{by}/class/{class}/id/{cateId}/lang/{lang}/page/{catePg}/year/{year}.html",
|
||||
"分类": "电影$1#剧集$2#综艺$3#动漫$4#短剧$21#少儿$22"
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
{
|
||||
"简介": "简介:</em>&&",
|
||||
"数组": "row\">&&</div></div>",
|
||||
"分类url": "https://www.hainatv.net/index.php/vod/show/area/{area}/id/{cateId}/lang/{lang}/page/{catePg}/year/{year}.html",
|
||||
"分类": "电影$1#电视剧$2#综艺$3#动漫$4#短剧$59"
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
{
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"主页url": "https://www.aiwodj.com",
|
||||
"数组": "lazy lazyloaded&&</a[替换:amp;>>]",
|
||||
"图片": "data-src=\"&&\"",
|
||||
"标题": "title=\"&&\"",
|
||||
"链接": "href=\"&&\"",
|
||||
"副标题": "+module-item-caption\">&&</div",
|
||||
"简介": "description\" content=\"&&,这里",
|
||||
"线路数组": "module-tab-item tab-item&&</div",
|
||||
"线路标题": "+span>&&</span",
|
||||
"播放数组": "module-blocklist&&</div>",
|
||||
"播放列表": "<a&&</a>",
|
||||
"播放标题": "span>&&</span>",
|
||||
"播放链接": "href=\"&&\"",
|
||||
"跳转播放链接": "urlDecode(var player_*\"url\":\"&&\")",
|
||||
"搜索url": "https://www.aiwodj.com/vodsearch/{wd}----------{pg}---.html",
|
||||
"搜索数组": "lazy lazyload&&</a[替换:amp;>>]",
|
||||
"搜索图片": "data-src=\"&&\"",
|
||||
"搜索标题": "+title=\"&&\"",
|
||||
"搜索链接": "href=\"&&\"",
|
||||
"分类url": "https://www.aiwodj.com/vodshow/{cateId}--{by}-{class}-{lang}----{catePg}---{year}.html",
|
||||
"分类": "穿越&战神&重生&爱情&萌娃&神医&古代&玄幻&言情",
|
||||
"分类值": "fenle&fenlei2&fenlei3&fenlei4&guda&shenyi&gudai&xuanhuan&yanqing"
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
{
|
||||
"首页": "0",
|
||||
"线路标题": "module-tab-value\">&&</span>",
|
||||
"分类url": "http://www.ppxys.vip/s/{cateId}/area/{area}/by/{by}/class/{class}/lang/{lang}/letter/{letter}/page/{catePg}/year/{year}.html",
|
||||
"分类": "剧集$1#电影$2#动漫番剧$3"
|
||||
}
|
||||
@ -0,0 +1,4 @@
|
||||
{
|
||||
"分类": "短剧$duanju#电影$dianying#电视剧$dianshiju#动漫$dongman#综艺$zongyi",
|
||||
"分类url": "https://www.duanjuwang.cc/vodtype/{cateId}/page/{catePg}.html"
|
||||
}
|
||||
@ -0,0 +1,5 @@
|
||||
{
|
||||
"分类": "电影$1#剧集$2#综艺$3#动漫$4",
|
||||
"类型": "动作片$1#喜剧片$2#爱情片$21#海外动漫$3#科幻片$4#恐怖片$5#剧情片$6#战争片$7#纪录片$8#其他$9",
|
||||
"分类url": "https://www.xgitv.com/vshow/{cateId}-----------.html"
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
{
|
||||
"请求头": "User-Agent$MOBILE_UA",
|
||||
"编码": "UTF-8",
|
||||
"分类url": "https://v.aiwule.com/vodshow/{cateId}-{area}-{by}-{class}-{lang}-{letter}---{catePg}---{year}.html",
|
||||
"分类": "电影$20#电视剧$21#动漫$23#综艺$22#短剧$47",
|
||||
"简介": "简介:&&"
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
{
|
||||
"规则名": "BT天堂",
|
||||
"规则作者": "",
|
||||
"请求头参数": "PC_UA",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "0",
|
||||
"是否开启获取首页数据": "1",
|
||||
"首页推荐链接": "https://www.bttt11.com",
|
||||
"首页列表数组规则": "body&&.ul-imgtxt1",
|
||||
"首页片单列表数组规则": "li",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"首页片单标题": "h3&&Text",
|
||||
"首页片单链接": "a&&href",
|
||||
"首页片单图片": "img&&src",
|
||||
"首页片单副标题": "span,-1&&Text",
|
||||
"首页片单链接加前缀": "https://www.bttt11.com",
|
||||
"首页片单链接加后缀": "",
|
||||
"分类起始页码": "0",
|
||||
"分类链接": "https://www.bttt11.com/html/{cateId}-{catePg}.html",
|
||||
//"分类链接": "https://www.clgod.xyz/list/{catePg}-{cateId}-0-0.html",
|
||||
"分类名称": "欧美电影&日韩电影&港台电影&大陆电影&亚太电影&欧美剧&日韩剧&港台剧&国产剧&亚太剧&动漫&综艺&纪录片",
|
||||
"分类名称替换词": "1&2&3&4&5&6&7&8&9&10&11&12&13",
|
||||
//"分类名称": "电影&动作&灵异&奇幻&宗教&励志&犯罪&功夫&喜剧&黑色&幽默&爱情&香港&纪录片&灾难&亲情&暴力&僵尸&丧尸&悬疑&人性&惊悚&血腥&武侠&剧情&历史&战争&经典&漫画&改编&恐怖&穿越&青春&黑帮&文艺&浪漫&同志&冒险&动画&演唱会",
|
||||
//"分类名称替换词": "0&1&2&3&4&5&6&7&8&10&11&12&1315&16&17&18&19&20&21&22&23&24&25&27&28&29&30&31&32&33&34&35&36&37&38&39&40&41&42",
|
||||
"筛选数据": {},
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": ".ul-imgtxt2&&li",
|
||||
"分类片单是否Jsoup写法": "1",
|
||||
"分类片单标题": "h3&&Text",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": "img&&src",
|
||||
"分类片单副标题": "span,-1--a&&Text!更新时间:",
|
||||
"分类片单链接加前缀": "https://www.bttt11.com",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$PC_UA",
|
||||
"搜索链接": "https://www.bttt11.com/e/search/;post",
|
||||
"POST请求数据": "show=title,newstext&keyboard={wd}&searchtype=影视搜索",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": ".ul-imgtxt2&&li",
|
||||
"搜索片单是否Jsoup写法": "1",
|
||||
"搜索片单图片": "img&&src",
|
||||
"搜索片单标题": "h3&&Text",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": "span,-1--a&&Text!更新时间:",
|
||||
"搜索片单链接加前缀": "https://www.bttt11.com",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "0",
|
||||
"直接播放链接加前缀": "",
|
||||
"直接播放链接加后缀": "",
|
||||
"直接播放直链视频请求头": "",
|
||||
"详情是否Jsoup写法": "0",
|
||||
"类型详情": "<p>◎类 别&&</p>",
|
||||
"年代详情": "<p>◎年 代&&</p>",
|
||||
"地区详情": "<p>◎产 地&&</p>",
|
||||
"演员详情": "",
|
||||
"简介详情": "",
|
||||
"线路列表数组规则": "",
|
||||
"线路标题": "",
|
||||
"播放列表数组规则": "body&&.container",
|
||||
"选集列表数组规则": "a[href^=magnet]||a[href^=ed2K]",
|
||||
"选集标题链接是否Jsoup写法": "1",
|
||||
"选集标题": "Text",
|
||||
"选集链接": "a&&href",
|
||||
"是否反转选集序列": "0",
|
||||
"选集链接加前缀": "",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "0",
|
||||
"是否开启手动嗅探": "0",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv",
|
||||
"手动嗅探视频链接过滤词": ".html"
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
{
|
||||
"规则名": "电影牛影院",
|
||||
"规则作者": "香雅情",
|
||||
"请求头参数": "手机",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "1",
|
||||
"是否开启获取首页数据": "1",
|
||||
"首页推荐链接": "https://www.dianyingn.cc",
|
||||
"首页列表数组规则": "body&&.fed-list-info:has(.fed-list-remarks)",
|
||||
"首页片单列表数组规则": "li",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"首页片单标题": ".fed-list-title&&Text",
|
||||
"首页片单链接": "a&&href",
|
||||
"首页片单图片": ".fed-list-pics&&data-original",
|
||||
"首页片单副标题": ".fed-list-remarks&&Text",
|
||||
"首页片单链接加前缀": "https://www.dianyingn.cc",
|
||||
"首页片单链接加后缀": "",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "https://www.dianyingn.cc/vodtype/{cateId}-{catePg}.html",
|
||||
"分类名称": "电影&电视剧&综艺&动漫",
|
||||
"分类名称替换词": "dianying&dianshiju&zongyi&dongman",
|
||||
"筛选数据": "ext",
|
||||
"筛选子分类名称": "动作片&喜剧片&爱情片&科幻片&恐怖片&剧情片&战争片&纪录片||国产剧&港台剧&日韩剧&欧美剧",
|
||||
"筛选子分类替换词": "dongzuopian&xijupian&aiqingpian&kehuanpian&kongbupian&juqingpian&zhanzhengpian&jilupian||guochanju&gangtaiju&rihanju&oumeiju",
|
||||
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": "body&&.fed-list-item:has(.fed-list-remarks)",
|
||||
"分类片单是否Jsoup写法": "1",
|
||||
"分类片单标题": ".fed-list-title&&Text",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": ".fed-list-pics&&data-original",
|
||||
"分类片单副标题": ".fed-list-remarks&&Text",
|
||||
"分类片单链接加前缀": "https://www.dianyingn.cc",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "手机",
|
||||
"搜索链接": "https://www.dianyingn.cc/index.php/ajax/suggest.html?mid=1&wd={wd}",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "0",
|
||||
"搜索列表数组规则": "list",
|
||||
"搜索片单是否Jsoup写法": "1",
|
||||
"搜索片单图片": "pic",
|
||||
"搜索片单标题": "name",
|
||||
"搜索片单链接": "id",
|
||||
"搜索片单副标题": "",
|
||||
"搜索片单链接加前缀": "https://www.dianyingn.cc/voddetail/",
|
||||
"搜索片单链接加后缀": ".html",
|
||||
"链接是否直接播放": "0",
|
||||
"直接播放链接加前缀": "https://live.52sf.ga/huya/",
|
||||
"直接播放链接加后缀": "#isVideo=true#",
|
||||
"直接播放直链视频请求头": "authority$ku.peizq.online#Referer$https://play.peizq.online",
|
||||
"详情是否Jsoup写法": "0",
|
||||
"类型详情": "",
|
||||
"年代详情": "",
|
||||
"地区详情": "",
|
||||
"演员详情": "主演:</span>&&</li>",
|
||||
"简介详情": "简介:</span>&&</li>",
|
||||
"线路列表数组规则": ".fed-tabs-item&&ul&&li",
|
||||
"线路标题": "Text",
|
||||
"播放列表数组规则": "body&&.fed-play-item",
|
||||
"选集列表数组规则": ".fed-btns-info",
|
||||
"选集标题链接是否Jsoup写法": "1",
|
||||
"选集标题": "a&&Text",
|
||||
"选集链接": "a&&href",
|
||||
"是否反转选集序列": "0",
|
||||
"选集链接加前缀": "https://www.dianyingn.cc",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "0",
|
||||
"是否开启手动嗅探": "0",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
||||
@ -0,0 +1,81 @@
|
||||
{
|
||||
"规则名": "短剧屋",
|
||||
"规则作者": "",
|
||||
"请求头参数": "手机",
|
||||
"网页编码格式": "UTF-8",
|
||||
"图片是否需要代理": "0",
|
||||
"是否开启获取首页数据": "1",
|
||||
"首页推荐链接": "http://www.metaysw.com",
|
||||
"首页列表数组规则": "body&&.vod-vodlist",
|
||||
"首页片单列表数组规则": "li",
|
||||
"首页片单是否Jsoup写法": "1",
|
||||
"分类起始页码": "1",
|
||||
"分类链接": "http://www.metaysw.com/type/{cateId}-{catePg}.html",
|
||||
"分类名称": "短剧",
|
||||
"分类名称替换词": "lianxuju",
|
||||
"筛选数据": {},
|
||||
//"筛选数据": "ext",
|
||||
//{cateId}
|
||||
"筛选子分类名称": "",
|
||||
"筛选子分类替换词": "",
|
||||
//{class}
|
||||
"筛选类型名称": "",
|
||||
"筛选类型替换词": "*",
|
||||
//{area}
|
||||
"筛选地区名称": "",
|
||||
"筛选地区替换词": "*",
|
||||
//{year}
|
||||
"筛选年份名称": "",
|
||||
"筛选年份替换词": "*",
|
||||
//{lang}
|
||||
"筛选语言名称": "",
|
||||
"筛选语言替换词": "*",
|
||||
//{by}
|
||||
"筛选排序名称": "时间&人气&评分",
|
||||
"筛选排序替换词": "time&hits&score",
|
||||
"分类截取模式": "1",
|
||||
"分类列表数组规则": ".vod-vodlist&&li",
|
||||
"分类片单是否Jsoup写法": "1",
|
||||
"分类片单标题": ".vod-vodlist__title&&Text",
|
||||
"分类片单链接": "a&&href",
|
||||
"分类片单图片": ".lazyload&&data-original",
|
||||
"分类片单副标题": ".pic-text&&Text",
|
||||
"分类片单链接加前缀": "http://www.metaysw.com",
|
||||
"分类片单链接加后缀": "",
|
||||
"搜索请求头参数": "User-Agent$手机",
|
||||
"搜索链接": "http://www.metaysw.com/search/page/{SearchPg}/wd/{wd}.html",
|
||||
"POST请求数据": "",
|
||||
"搜索截取模式": "1",
|
||||
"搜索列表数组规则": ".vod-vodlist&&li",
|
||||
"搜索片单是否Jsoup写法": "1",
|
||||
"搜索片单图片": ".lazyload&&data-original",
|
||||
"搜索片单标题": ".vod-vodlist__title&&Text",
|
||||
"搜索片单链接": "a&&href",
|
||||
"搜索片单副标题": ".pic-text&&Text",
|
||||
"搜索片单链接加前缀": "http://www.metaysw.com",
|
||||
"搜索片单链接加后缀": "",
|
||||
"链接是否直接播放": "0",
|
||||
"直接播放链接加前缀": "https://live.52sf.ga/huya/",
|
||||
"直接播放链接加后缀": "#isVideo=true#",
|
||||
"直接播放直链视频请求头": "authority$ku.peizq.online#Referer$https://play.peizq.online",
|
||||
"详情是否Jsoup写法": "1",
|
||||
"类型详情": "",
|
||||
"年代详情": "",
|
||||
"地区详情": "",
|
||||
"演员详情": ".vod-content__detail&&p,2&&Text!主演:",
|
||||
"简介详情": "",
|
||||
"线路列表数组规则": ".dropdown-menu&&li",
|
||||
"线路标题": "a&&Text",
|
||||
"播放列表数组规则": "body&&.vod-content__playlist",
|
||||
"选集列表数组规则": "li",
|
||||
"选集标题链接是否Jsoup写法": "1",
|
||||
"选集标题": "a&&Text",
|
||||
"选集链接": "a&&href",
|
||||
"是否反转选集序列": "0",
|
||||
"选集链接加前缀": "http://www.metaysw.com",
|
||||
"选集链接加后缀": "",
|
||||
"分析MacPlayer": "0",
|
||||
"是否开启手动嗅探": "0",
|
||||
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
|
||||
"手动嗅探视频链接过滤词": ".html#=http"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue