From c5000ab7383747d22466b69ad9cc08f461e337ed Mon Sep 17 00:00:00 2001 From: hc precog Date: Mon, 12 Aug 2024 22:23:43 +0800 Subject: [PATCH] add --- README.md | 14 +- .../drpy_js/360\345\275\261\350\247\206.js" | 28 + ...\345\275\261\350\247\206[\351\243\236].js" | 31 + ...\346\226\260\347\211\210[\347\243\201].js" | 65 + .../drpy_js/777\345\275\261\350\247\206.js" | 12 + .../drpy_js/996\345\275\261\350\247\206.js" | 27 + zyplayer/drpy_dz/drpy_js/LIBVIO.js | 49 + zyplayer/drpy_dz/drpy_js/freeok.js | 27 + zyplayer/drpy_dz/drpy_js/qimiao.js | 63 + zyplayer/drpy_dz/drpy_js/voflix.js | 55 + .../drpy_js/\344\274\230\351\205\267.js" | 39 + .../\345\205\224\345\260\217\350\264\235.js" | 26 + ...34\346\260\221\345\275\261\350\247\206.js" | 138 + ...4\346\260\221\345\275\261\350\247\2062.js" | 61 + ...4\346\260\221\345\275\261\350\247\2063.js" | 50 + ...21\345\275\261\350\247\206\346\226\260.js" | 97 + ...27\347\223\234\345\275\261\350\247\206.js" | 189 + ...47\351\276\231\350\265\204\346\272\220.js" | 11 + ...02\351\225\277\350\265\204\346\272\220.js" | 195 + ...57\345\217\257\345\275\261\350\247\206.js" | 84 + ...24\345\223\251\345\275\261\350\247\206.js" | 115 + ...50\347\272\277\344\271\213\345\256\266.js" | 62 + ...47\347\261\263\346\230\237\347\220\203.js" | 29 + ...47\261\263\346\230\237\347\220\203[V2].js" | 304 ++ ...07\347\217\215\345\274\202\345\205\275.js" | 39 + ...02\350\232\201\350\265\204\346\272\220.js" | 35 + ...2\350\232\201\350\265\204\346\272\2202.js" | 13 + ...21\347\232\204\345\223\224\345\223\251.js" | 443 +++ ...24\345\223\251\344\274\240\345\217\202.js" | 445 +++ ...64\351\243\216\350\265\204\346\272\220.js" | 11 + ...01\345\256\242\350\265\204\346\272\220.js" | 11 + ...01\351\200\237\350\265\204\346\272\220.js" | 8 + ...34\344\270\200\347\237\255\345\211\247.js" | 25 + ...13\346\234\272\345\231\250\344\272\272.js" | 67 + ...51\345\201\266\345\223\245\345\223\245.js" | 34 + ...75\345\253\226\345\275\261\350\247\206.js" | 29 + ...26\350\200\205\350\201\224\347\233\237.js" | 10 + ...76\345\277\231\346\227\240\346\236\234.js" | 34 + ...42\345\260\274\350\265\204\346\272\220.js" | 12 + .../\347\275\221\351\243\236\347\214\253.js" | 84 + .../drpy_js/\350\200\220\347\234\213.js" | 26 + ...76\344\272\221\351\251\276\351\233\276.js" | 40 + ...61\345\255\220\345\212\250\346\274\253.js" | 72 + .../drpy_js/\350\215\220\347\211\207.js" | 156 + .../drpy_js/\350\217\234\347\213\227.js" | 66 + .../drpy_js/\350\261\206\347\223\243.js" | 37 + .../drpy_js/\351\205\267\344\272\22177.js" | 140 + ...17\345\255\220\345\275\261\350\247\206.js" | 50 + ...17\345\255\220\350\265\204\346\272\220.js" | 11 + ...21\351\271\260\350\265\204\346\272\220.js" | 11 + ...77\351\207\214\345\234\237\350\261\206.js" | 32 + ...36\345\207\241\350\265\204\346\272\220.js" | 12 + zyplayer/drpy_dz/js.json | 588 +++ zyplayer/drpy_dz/readme.txt | 3 + ...\345\275\261\350\247\206[\345\256\230].js" | 28 + ...20\347\224\265\345\275\261\351\231\242.js" | 37 + zyplayer/drpy_dzlive/drpy_js/4khdr.js | 185 + ...\345\275\261\350\247\206[\351\243\236].js" | 25 + ...\346\226\260\347\211\210[\347\243\201].js" | 65 + .../drpy_js/777\345\275\261\350\247\206.js" | 12 + zyplayer/drpy_dzlive/drpy_js/HDmoli.js | 12 + .../drpy_js/LIBVIO[\344\274\230].js" | 46 + .../drpy_js/TVB\344\272\221\346\222\255.js" | 40 + zyplayer/drpy_dzlive/drpy_js/freeok.js | 27 + ...\350\265\204\346\272\220[\350\265\204].js" | 12 + zyplayer/drpy_dzlive/drpy_js/voflix.js | 55 + .../\344\270\200\350\265\267\347\234\213.js" | 53 + ...03\345\271\264\345\275\261\350\247\206.js" | 74 + ...72\344\272\272\345\275\261\350\247\206.js" | 15 + ...\344\274\230\351\205\267[\345\256\230].js" | 175 + ...40\345\256\242\345\275\261\350\247\206.js" | 56 + ...\345\260\217\350\264\235[\345\204\277].js" | 26 + ...\345\275\261\350\247\206[\344\274\230].js" | 45 + ...03\347\245\236\345\275\261\350\247\206.js" | 56 + ...\345\275\261\350\247\206[\344\274\230].js" | 189 + ...32\347\234\213\345\220\254\344\271\246.js" | 51 + ...\350\265\204\346\272\220[\350\265\204].js" | 11 + ...63\347\234\213\345\275\261\350\247\206.js" | 31 + ...02\351\225\277\350\265\204\346\272\220.js" | 195 + ...\345\275\261\350\247\206[\344\274\230].js" | 84 + ...57\350\276\276\345\275\261\350\247\206.js" | 88 + ...\345\275\261\350\247\206[\345\256\230].js" | 116 + ...24\345\223\251\347\233\264\346\222\255.js" | 118 + ...50\347\272\277\344\271\213\345\256\266.js" | 62 + ...25\344\272\221\345\275\261\350\247\206.js" | 51 + ...32\345\244\232\350\277\275\345\211\247.js" | 24 + ...47\347\261\263\346\230\237\347\220\203.js" | 29 + ...47\261\263\346\230\237\347\220\203[V2].js" | 304 ++ ...\345\274\202\345\205\275[\345\256\230].js" | 39 + ...34\347\204\266\345\275\261\350\247\206.js" | 28 + ...35\347\211\207\350\247\206\351\242\221.js" | 15 + ...62\351\245\255\345\275\261\350\247\206.js" | 87 + ...61\350\247\206\347\234\213\345\220\247.js" | 108 + ...53\347\234\213\345\275\261\350\247\206.js" | 11 + ...45\217\244\345\275\261\350\247\206[V2].js" | 299 ++ ...\345\223\224\345\223\251[\345\256\230].js" | 443 +++ ...24\345\223\251\344\274\240\345\217\202.js" | 445 +++ ...14\345\277\203\344\270\226\347\225\214.js" | 86 + ...27\351\261\274\347\233\264\346\222\255.js" | 188 + ...60\350\214\266\346\235\257\347\213\220.js" | 160 + ...66\345\205\211\345\275\261\351\231\242.js" | 7 + ...23\347\234\213\345\275\261\350\247\206.js" | 9 + ...37\344\272\221\345\275\261\350\247\206.js" | 11 + ...37\347\251\272\345\275\261\351\231\242.js" | 9 + .../drpy_js/\346\230\237\350\276\260.js" | 45 + ...\350\265\204\346\272\220[\350\265\204].js" | 11 + ...\350\265\204\346\272\220[\350\265\204].js" | 11 + ...\350\265\204\346\272\220[\350\265\204].js" | 8 + ...34\344\270\200\347\237\255\345\211\247.js" | 25 + ...31\346\261\201\345\275\261\350\247\206.js" | 41 + ...67\345\244\226\345\211\247\346\261\207.js" | 37 + ...\345\275\261\350\247\206[\344\274\230].js" | 81 + ...55\346\222\255\344\271\213\345\256\266.js" | 13 + ...61\347\234\213\345\275\261\350\247\206.js" | 9 + ...\345\231\250\344\272\272[\350\231\253].js" | 67 + .../drpy_js/\347\210\261\350\275\246MV.js" | 23 + ...\345\223\245\345\223\245[\347\233\230].js" | 34 + ...26\350\200\205\350\201\224\347\233\237.js" | 10 + ...\346\227\240\346\236\234[\345\256\230].js" | 168 + ...56\347\232\256\345\275\261\350\247\206.js" | 9 + .../drpy_dzlive/drpy_js/\347\234\21357.js" | 26 + ...13\347\234\213\345\275\261\350\247\206.js" | 28 + ...\345\212\233\347\206\212[\347\243\201].js" | 101 + ...\347\224\265\345\275\261[\346\220\234].js" | 11 + ...\347\231\275\347\231\275[\344\274\230].js" | 75 + ...\350\265\204\346\272\220[\350\265\204].js" | 12 + ...\351\243\236\347\214\253[\344\274\230].js" | 84 + ...16\345\211\247\346\230\237\347\220\203.js" | 51 + .../\347\276\216\347\233\212\350\276\276.js" | 37 + .../drpy_js/\350\200\220\347\234\213.js" | 26 + ...\351\251\276\351\233\276[\345\256\230].js" | 151 + ...\345\212\250\346\274\253[\346\274\253].js" | 72 + ...\350\215\220\347\211\207[\344\274\230].js" | 156 + ...\350\217\234\347\213\227[\345\256\230].js" | 66 + ...35\345\205\211\345\275\261\350\247\206.js" | 9 + ...16\347\211\231\347\233\264\346\222\255.js" | 189 + .../\350\233\213\350\233\213\345\211\247.js" | 61 + .../\350\233\213\350\233\213\350\265\236.js" | 59 + ...77\345\261\213\345\275\261\350\247\206.js" | 12 + ...\350\261\206\347\223\243[\345\256\230].js" | 37 + ...67\345\256\242\345\275\261\350\247\206.js" | 11 + ...\345\275\261\350\247\206[\350\265\204].js" | 50 + ...\350\265\204\346\272\220[\350\265\204].js" | 11 + ...\350\265\204\346\272\220[\350\265\204].js" | 11 + ...\345\234\237\350\261\206[\347\233\230].js" | 32 + ...\350\265\204\346\272\220[\350\265\204].js" | 12 + ...\350\265\204\346\272\220[\350\265\204].js" | 11 + ...73\351\233\200\350\247\206\351\242\221.js" | 58 + zyplayer/drpy_dzlive/drpy_libs/drpy2.js | 3199 +++++++++++++++++ zyplayer/drpy_dzlive/drpy_libs/drpy2.min.js | 73 + zyplayer/drpy_dzlive/drpy_libs/gbk.js | 68 + zyplayer/drpy_dzlive/drpy_libs/jsencrypt.js | 265 ++ zyplayer/drpy_dzlive/drpy_libs/node-rsa.js | 2 + zyplayer/drpy_dzlive/drpy_libs/pako.min.js | 2 + .../drpy_libs/\346\250\241\346\235\277.js" | 377 ++ zyplayer/drpy_dzlive/index.js | 149 + zyplayer/drpy_dzlive/index.json | 1190 ++++++ ...\345\255\246\346\225\231\350\202\262.json" | 1050 ++++++ ...\345\253\226\347\255\233\351\200\211.json" | 1 + .../lives/\345\215\216\346\225\2602.m3u" | 156 + ...5\345\267\236\345\215\216\346\225\260.m3u" | 156 + zyplayer/drpy_dzlive/readme.txt | 10 + zyplayer/drpy_gao/js.json | 357 ++ zyplayer/drpy_gao/js/1080P.js | 13 + .../js/139\345\275\261\350\247\206.js" | 45 + .../js/188\345\275\261\350\247\206.js" | 43 + zyplayer/drpy_gao/js/18av.js | 17 + "zyplayer/drpy_gao/js/18\345\223\210.js" | 25 + .../js/310\347\233\264\346\222\255.js" | 22 + .../js/333\345\275\261\350\247\206.js" | 20 + ...48\347\224\265\345\275\261\347\275\221.js" | 61 + .../js/360\345\275\261\350\247\206.js" | 28 + .../js/369\345\275\261\350\247\206.js" | 27 + ...4K\347\224\265\345\275\261\347\275\221.js" | 46 + zyplayer/drpy_gao/js/4khdr.js | 186 + .../js/4k\345\211\247\351\231\242.js" | 49 + .../js/539\345\275\261\350\247\206.js" | 35 + ...\345\275\261\350\247\206[\351\243\236].js" | 31 + .../js/555\347\224\265\345\275\261[V2].js" | 305 ++ ...67\347\224\265\345\275\261\351\231\242.js" | 46 + .../js/58\345\212\250\346\274\253.js" | 28 + .../js/69\347\276\216\345\211\247.js" | 20 + .../js/69\347\276\216\345\211\247[V2].js" | 30 + ...\346\226\260\347\211\210[\347\243\201].js" | 65 + .../7\345\226\234\345\275\261\351\231\242.js" | 27 + .../js/88\347\234\213\347\220\203.js" | 60 + .../8\345\217\267\345\275\261\351\231\242.js" | 26 + zyplayer/drpy_gao/js/97tvs.js | 203 ++ .../js/996\345\275\261\350\247\206.js" | 30 + .../js/A8\351\237\263\344\271\220.js" | 20 + .../js/AGE\345\212\250\346\274\253.js" | 99 + zyplayer/drpy_gao/js/AnFuns.js | 33 + .../js/Anime1\345\212\250\347\225\253.js" | 169 + zyplayer/drpy_gao/js/Auete.js | 50 + .../B\347\253\231\345\275\261\350\247\206.js" | 68 + .../js/DJ\351\237\263\344\271\220.js" | 36 + zyplayer/drpy_gao/js/Fun4K.js | 52 + zyplayer/drpy_gao/js/HDmoli.js | 25 + .../js/JRKAN\347\233\264\346\222\255.js" | 44 + zyplayer/drpy_gao/js/JangoIndex.js | 25 + zyplayer/drpy_gao/js/JustLive.js | 231 ++ .../js/KOK\345\275\261\351\231\242.js" | 141 + ...\345\275\261\350\247\206[\351\243\236].js" | 42 + zyplayer/drpy_gao/js/Missav.js | 22 + .../js/NT\345\212\250\346\274\253.js" | 37 + .../js/NY\345\275\261\351\231\242.js" | 54 + zyplayer/drpy_gao/js/NyaFun.js | 13 + .../js/TVB\344\272\221\346\222\255.js" | 47 + .../js/UM\347\224\265\345\275\261[V2].js" | 306 ++ .../drpy_gao/js/UrleBird[\351\243\236].js" | 25 + zyplayer/drpy_gao/js/aipanso.js | 126 + zyplayer/drpy_gao/js/alist.json | 80 + zyplayer/drpy_gao/js/banan.js | 19 + zyplayer/drpy_gao/js/cilixiong.js | 61 + zyplayer/drpy_gao/js/cilixiongp.js | 61 + zyplayer/drpy_gao/js/cokemv.js | 73 + zyplayer/drpy_gao/js/cokemv[V2].js | 304 ++ zyplayer/drpy_gao/js/ddys.js | 136 + zyplayer/drpy_gao/js/ddys_d.js | 136 + zyplayer/drpy_gao/js/drpy.js | 37 + zyplayer/drpy_gao/js/dydhhy.js | 142 + zyplayer/drpy_gao/js/dygang.js | 212 ++ zyplayer/drpy_gao/js/funletu.js | 86 + zyplayer/drpy_gao/js/huya.js | 48 + .../js/i275\345\220\254\344\271\246.js" | 32 + "zyplayer/drpy_gao/js/if101[\351\243\236].js" | 67 + zyplayer/drpy_gao/js/ikanbot2.js | 53 + zyplayer/drpy_gao/js/ikanbot3.js | 46 + zyplayer/drpy_gao/js/jianpian.js | 45 + zyplayer/drpy_gao/js/jiyingw.js | 230 ++ zyplayer/drpy_gao/js/jiyingwp.js | 230 ++ zyplayer/drpy_gao/js/jsapi.js | 98 + zyplayer/drpy_gao/js/jsapi2.js | 99 + zyplayer/drpy_gao/js/kkpans.js | 162 + zyplayer/drpy_gao/js/kuba.js | 188 + zyplayer/drpy_gao/js/lf_live.txt | 40 + zyplayer/drpy_gao/js/lf_live1.txt | 19 + zyplayer/drpy_gao/js/libvio.js | 137 + zyplayer/drpy_gao/js/live2mv_data.json | 18 + zyplayer/drpy_gao/js/meijumi.js | 307 ++ zyplayer/drpy_gao/js/meijumip.js | 307 ++ zyplayer/drpy_gao/js/meow.js | 91 + zyplayer/drpy_gao/js/mp4us.js | 178 + zyplayer/drpy_gao/js/qimiao.js | 63 + zyplayer/drpy_gao/js/rrdyw.js | 130 + .../js/ss\347\233\264\346\222\255.js" | 18 + zyplayer/drpy_gao/js/template.js | 301 ++ zyplayer/drpy_gao/js/tzfile.js | 130 + zyplayer/drpy_gao/js/voflix.js | 55 + zyplayer/drpy_gao/js/xb6v.js | 242 ++ zyplayer/drpy_gao/js/xzys.js | 177 + zyplayer/drpy_gao/js/yyets.js | 102 + zyplayer/drpy_gao/js/yyetsp.js | 102 + ...12\345\244\264\347\237\255\345\211\247.js" | 23 + .../js/\344\270\244\344\270\252BT.js" | 40 + .../\344\270\255\345\233\275\344\272\272.js" | 24 + ...72\347\272\277\344\270\212\347\234\213.js" | 26 + ...20\351\261\274\345\275\261\350\247\206.js" | 56 + ...72\344\272\272\345\275\261\350\247\206.js" | 45 + .../drpy_gao/js/\344\274\230\351\205\267.js" | 39 + ...04\345\274\237\345\275\261\350\247\206.js" | 21 + .../\345\205\215\350\264\271\347\234\213.js" | 56 + .../\345\205\224\345\260\217\350\264\235.js" | 26 + ...55\346\234\210\345\220\254\344\271\246.js" | 27 + ...60\350\212\261\345\275\261\351\231\242.js" | 65 + .../drpy_gao/js/\345\205\273\347\253\257.js" | 18 + ...34\346\260\221\345\275\261\350\247\206.js" | 61 + ...14\344\272\221\345\275\261\350\247\206.js" | 67 + .../js/\345\210\272\346\241\220[V2].js" | 320 ++ .../js/\345\211\247\350\277\267su.js" | 63 + .../\345\212\250\346\274\253\345\262\233.js" | 32 + ...27\345\267\235\345\275\261\350\247\206.js" | 51 + ...45\214\227\346\236\201\347\213\220[V2].js" | 305 ++ ...\345\275\261\351\231\242[\351\243\236].js" | 46 + ...27\347\223\234\345\275\261\350\247\206.js" | 189 + ...32\347\234\213\345\220\254\344\271\246.js" | 51 + ...02\351\225\277\350\265\204\346\272\220.js" | 75 + .../\345\216\273\347\234\213\345\220\247.js" | 19 + .../\345\220\254\344\271\246\347\275\221.js" | 29 + .../drpy_gao/js/\345\220\270\347\223\234.js" | 21 + .../js/\345\220\274\345\220\274[V2].js" | 305 ++ .../js/\345\222\225\345\231\234[V2].js" | 304 ++ ...24\345\223\251\345\275\261\350\247\206.js" | 115 + ...24\345\223\251\347\233\264\346\222\255.js" | 132 + ...24\345\230\200\345\275\261\350\247\206.js" | 33 + .../js/\345\225\246\345\225\246DJ.js" | 22 + ...34\351\251\254\346\213\211\351\233\205.js" | 21 + .../\345\226\265\346\254\241\345\205\203.js" | 237 ++ ...52\345\234\210\345\275\261\350\247\206.js" | 45 + ...50\347\272\277\344\271\213\345\256\266.js" | 64 + ...32\347\221\231\345\275\261\350\247\206.js" | 59 + ...10\345\205\204\345\275\261\350\247\206.js" | 32 + ...47\347\261\263\346\230\237\347\220\203.js" | 29 + ...47\261\263\346\230\237\347\220\203[V2].js" | 304 ++ ...\350\247\206\351\242\221[\351\243\236].js" | 40 + ...07\344\274\230\345\275\261\351\231\242.js" | 33 + ...07\347\217\215\345\274\202\345\205\275.js" | 39 + ...07\347\261\263\345\212\250\346\274\253.js" | 52 + ...10\351\243\236\344\270\255\346\226\207.js" | 54 + ...45\245\210\351\243\236\347\213\227[V2].js" | 304 ++ .../\345\245\275\350\266\243\347\275\221.js" | 32 + ...56\345\217\257\345\212\250\346\274\253.js" | 32 + ...20\345\255\220\345\275\261\350\247\206.js" | 38 + ...34\347\204\266\345\275\261\350\247\206.js" | 64 + .../js/\345\256\235\347\211\207[V2].js" | 307 ++ .../\345\260\217\345\223\201\347\275\221.js" | 23 + ...\345\275\261\351\231\242[\351\243\236].js" | 42 + ...17\347\213\227\345\275\261\351\231\242.js" | 27 + ...75\350\217\234\347\224\265\345\275\261.js" | 53 + ...30\350\220\275\345\275\261\350\247\206.js" | 54 + ...62\351\245\255\345\275\261\350\247\206.js" | 79 + ...\345\271\277\346\222\255\350\277\267FM.js" | 42 + ...00\347\234\274\350\247\206\351\242\221.js" | 23 + ...26\347\225\214\345\212\250\346\274\253.js" | 74 + .../js/\345\275\261\346\216\242[V2].js" | 264 ++ .../\345\275\261\346\270\243\346\270\243.js" | 68 + ...50\247\206\344\271\213\345\256\266[V2].js" | 305 ++ ...61\350\247\206\345\267\245\345\216\202.js" | 4 + ...61\350\247\206\345\267\245\345\234\272.js" | 52 + .../js/\345\276\225\347\261\263TV.js" | 23 + .../drpy_gao/js/\345\277\253\347\234\213.js" | 42 + ...35\345\217\244\345\275\261\350\247\206.js" | 75 + ...45\217\244\345\275\261\350\247\206[V2].js" | 304 ++ ...41\350\220\261\345\212\250\346\274\253.js" | 69 + ...40\344\271\205\345\275\261\351\231\242.js" | 44 + ...21\347\210\261\350\267\237\345\211\247.js" | 45 + ...21\347\232\204\345\223\224\345\223\251.js" | 517 +++ ...23\351\245\255\344\275\223\350\202\262.js" | 29 + .../drpy_gao/js/\346\222\255\345\256\242.js" | 73 + ...27\351\261\274\347\233\264\346\222\255.js" | 198 + .../\346\226\260\347\211\207\345\234\272.js" | 100 + ...06\350\247\211\345\275\261\350\247\206.js" | 48 + ...66\345\205\211\345\275\261\350\247\206.js" | 50 + .../drpy_gao/js/\346\230\237\350\276\260.js" | 24 + .../js/\346\230\240\350\277\267[V2].js" | 304 ++ ...40\350\277\267\345\275\261\351\231\242.js" | 37 + ...62\345\245\207\345\212\250\346\274\253.js" | 38 + ...45\245\207\345\275\261\350\247\206[V2].js" | 304 ++ ...60\345\260\217\350\257\264\345\220\247.js" | 38 + ...60\347\273\230\346\234\254\347\275\221.js" | 20 + .../\346\234\261\345\217\244\345\212\233.js" | 17 + ...64\346\250\261\345\275\261\350\247\206.js" | 52 + ...32\351\227\250\345\275\261\351\231\242.js" | 44 + .../drpy_gao/js/\346\250\241\346\235\277.js" | 304 ++ ...\345\275\261\351\231\242[\351\243\236].js" | 101 + ...47\345\270\235\345\275\261\351\231\242.js" | 43 + .../\346\255\246\344\272\253\345\220\247.js" | 36 + ...52\347\211\207\346\230\237\347\220\203.js" | 29 + ...67\345\205\224\345\275\261\351\231\242.js" | 29 + ...67\346\264\213\345\220\254\344\271\246.js" | 59 + .../js/\346\270\205\351\243\216DJ.js" | 29 + ...55\346\222\255\344\271\213\345\256\266.js" | 48 + .../\347\203\255\346\222\255\345\272\223.js" | 53 + ...40\345\220\254\344\271\246\347\275\221.js" | 27 + ...\345\243\271\345\270\206[\351\243\236].js" | 42 + .../\347\210\261\345\274\271\345\271\225.js" | 59 + .../drpy_gao/js/\347\210\261\347\234\213.js" | 54 + ...61\347\234\213\345\275\261\351\231\242.js" | 27 + ...13\346\234\272\345\231\250\344\272\272.js" | 116 + .../js/\347\210\261\350\275\246MV.js" | 23 + .../js/\347\210\261\350\277\252[V2].js" | 307 ++ ...61\350\277\252\345\275\261\350\247\206.js" | 53 + ...\346\222\255\345\272\223[\351\243\236].js" | 177 + ...53\344\272\206\344\270\252\345\222\252.js" | 25 + .../drpy_gao/js/\347\216\204\345\244\251.js" | 40 + ...51\345\201\266\345\247\220\345\247\220.js" | 18 + ...65\345\275\261\345\205\210\347\224\237.js" | 64 + ...76\345\277\231\346\227\240\346\236\234.js" | 34 + .../\347\232\256\347\232\256\351\270\255.js" | 62 + ...60\351\232\217\350\272\253\345\220\254.js" | 50 + .../\347\234\213\344\272\206\344\271\210.js" | 57 + .../\347\234\213\351\237\251\345\211\247.js" | 41 + .../\347\237\255\350\247\206\351\242\221.js" | 24 + ...\345\212\233\347\206\212[\347\243\201].js" | 101 + ...01\344\272\272\345\275\261\351\231\242.js" | 157 + .../drpy_gao/js/\347\247\213\351\234\236.js" | 41 + ...13\351\234\236\345\275\261\350\247\206.js" | 43 + .../drpy_gao/js/\347\253\245\350\266\243.js" | 70 + ...63\347\210\261\345\275\261\350\247\206.js" | 46 + .../\347\264\240\347\231\275\347\231\275.js" | 72 + ...54\347\211\210\345\275\261\345\203\217.js" | 23 + .../js/\347\275\221\351\243\236.TV.js" | 48 + .../\347\276\216\345\211\247\347\275\221.js" | 43 + ...47\276\216\347\233\212\350\276\276[V2].js" | 304 ++ .../\347\276\216\350\247\206\347\275\221.js" | 22 + .../drpy_gao/js/\350\203\226\350\231\216.js" | 54 + ...76\344\272\221\351\251\276\351\233\276.js" | 39 + ...61\345\261\213\345\275\261\351\231\242.js" | 19 + .../js/\350\212\261\347\214\253TV.js" | 32 + ...71\346\236\234\347\210\261\345\276\256.js" | 28 + .../drpy_gao/js/\350\215\220\347\211\207.js" | 150 + .../drpy_gao/js/\350\217\234\347\213\227.js" | 66 + ...73\351\230\201\345\275\261\350\247\206.js" | 41 + ...51\230\201\345\275\261\350\247\206[V2].js" | 304 ++ ...35\345\205\211\345\275\261\351\231\242.js" | 48 + ...16\347\211\231\347\233\264\346\222\255.js" | 194 + .../\350\233\213\350\233\213\345\211\247.js" | 66 + .../\350\233\213\350\233\213\350\265\236.js" | 59 + ...45\350\234\264\345\275\261\350\247\206.js" | 15 + .../js/\350\234\273\350\234\223FM.js" | 28 + ...53\347\252\235\347\224\265\345\275\261.js" | 28 + ...77\347\223\234\345\275\261\351\231\242.js" | 25 + ...46\351\232\217\350\272\253\345\220\254.js" | 48 + ...67\351\243\236\345\275\261\351\231\242.js" | 41 + "zyplayer/drpy_gao/js/\350\267\221TV.js" | 26 + ...50\267\257\344\272\272\347\224\262[V2].js" | 305 ++ .../\350\267\257\346\274\253\346\274\253.js" | 47 + .../\350\276\276\350\276\276\351\276\237.js" | 38 + .../\350\277\275\345\211\247\350\277\267.js" | 37 + .../drpy_gao/js/\351\205\2676\347\275\221.js" | 23 + .../js/\351\205\267\344\272\22177.js" | 140 + .../js/\351\205\267\345\245\207MV.js" | 25 + ...17\345\255\220\345\275\261\350\247\206.js" | 57 + ...17\345\255\220\350\265\204\346\272\220.js" | 87 + ...21\346\233\274\345\275\261\350\247\206.js" | 40 + .../js/\351\221\253\351\221\253[V2].js" | 305 ++ ...77\345\270\203\345\275\261\351\231\242.js" | 48 + ...36\345\205\224\345\275\261\350\247\206.js" | 50 + ...26\346\222\255\345\275\261\351\231\242.js" | 52 + ...32\347\201\253\347\224\265\345\275\261.js" | 81 + zyplayer/drpy_gao/readme.txt | 3 + 421 files changed, 39724 insertions(+), 1 deletion(-) create mode 100644 "zyplayer/drpy_dz/drpy_js/360\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/555\345\275\261\350\247\206[\351\243\236].js" create mode 100644 "zyplayer/drpy_dz/drpy_js/6V\346\226\260\347\211\210[\347\243\201].js" create mode 100644 "zyplayer/drpy_dz/drpy_js/777\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/996\345\275\261\350\247\206.js" create mode 100644 zyplayer/drpy_dz/drpy_js/LIBVIO.js create mode 100644 zyplayer/drpy_dz/drpy_js/freeok.js create mode 100644 zyplayer/drpy_dz/drpy_js/qimiao.js create mode 100644 zyplayer/drpy_dz/drpy_js/voflix.js create mode 100644 "zyplayer/drpy_dz/drpy_js/\344\274\230\351\205\267.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\205\224\345\260\217\350\264\235.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\206\234\346\260\221\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\206\234\346\260\221\345\275\261\350\247\2062.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\206\234\346\260\221\345\275\261\350\247\2063.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\206\234\346\260\221\345\275\261\350\247\206\346\226\260.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\215\227\347\223\234\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\215\247\351\276\231\350\265\204\346\272\220.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\216\202\351\225\277\350\265\204\346\272\220.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\217\257\345\217\257\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\223\224\345\223\251\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\234\250\347\272\277\344\271\213\345\256\266.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\244\247\347\261\263\346\230\237\347\220\203.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\244\247\347\261\263\346\230\237\347\220\203[V2].js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\245\207\347\217\215\345\274\202\345\205\275.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\260\217\350\232\202\350\232\201\350\265\204\346\272\220.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\345\260\217\350\232\202\350\232\201\350\265\204\346\272\2202.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251\344\274\240\345\217\202.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\346\232\264\351\243\216\350\265\204\346\272\220.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\346\236\201\345\256\242\350\265\204\346\272\220.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\346\236\201\351\200\237\350\265\204\346\272\220.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\346\246\234\344\270\200\347\237\255\345\211\247.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\347\210\261\347\234\213\346\234\272\345\231\250\344\272\272.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\347\216\251\345\201\266\345\223\245\345\223\245.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\347\231\275\345\253\226\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\347\231\275\345\253\226\350\200\205\350\201\224\347\233\237.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\347\231\276\345\277\231\346\227\240\346\236\234.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\347\264\242\345\260\274\350\265\204\346\272\220.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\347\275\221\351\243\236\347\214\253.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\350\200\220\347\234\213.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\350\205\276\344\272\221\351\251\276\351\233\276.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\350\212\261\345\255\220\345\212\250\346\274\253.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\350\215\220\347\211\207.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\350\217\234\347\213\227.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\350\261\206\347\223\243.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\351\205\267\344\272\22177.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\351\207\217\345\255\220\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\351\207\217\345\255\220\350\265\204\346\272\220.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\351\207\221\351\271\260\350\265\204\346\272\220.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\351\230\277\351\207\214\345\234\237\350\261\206.js" create mode 100644 "zyplayer/drpy_dz/drpy_js/\351\235\236\345\207\241\350\265\204\346\272\220.js" create mode 100644 zyplayer/drpy_dz/js.json create mode 100644 zyplayer/drpy_dz/readme.txt create mode 100644 "zyplayer/drpy_dzlive/drpy_js/360\345\275\261\350\247\206[\345\256\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/420\347\224\265\345\275\261\351\231\242.js" create mode 100644 zyplayer/drpy_dzlive/drpy_js/4khdr.js create mode 100644 "zyplayer/drpy_dzlive/drpy_js/555\345\275\261\350\247\206[\351\243\236].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/6V\346\226\260\347\211\210[\347\243\201].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/777\345\275\261\350\247\206.js" create mode 100644 zyplayer/drpy_dzlive/drpy_js/HDmoli.js create mode 100644 "zyplayer/drpy_dzlive/drpy_js/LIBVIO[\344\274\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/TVB\344\272\221\346\222\255.js" create mode 100644 zyplayer/drpy_dzlive/drpy_js/freeok.js create mode 100644 "zyplayer/drpy_dzlive/drpy_js/ok\350\265\204\346\272\220[\350\265\204].js" create mode 100644 zyplayer/drpy_dzlive/drpy_js/voflix.js create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\344\270\200\350\265\267\347\234\213.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\344\270\203\345\271\264\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\344\272\272\344\272\272\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\344\274\230\351\205\267[\345\256\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\344\276\240\345\256\242\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\205\224\345\260\217\350\264\235[\345\204\277].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\206\234\346\260\221\345\275\261\350\247\206[\344\274\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\215\203\347\245\236\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\215\227\347\223\234\345\275\261\350\247\206[\344\274\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\215\232\347\234\213\345\220\254\344\271\246.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\215\247\351\276\231\350\265\204\346\272\220[\350\265\204].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\215\263\347\234\213\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\216\202\351\225\277\350\265\204\346\272\220.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\217\257\345\217\257\345\275\261\350\247\206[\344\274\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\217\257\350\276\276\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\223\224\345\223\251\345\275\261\350\247\206[\345\256\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\223\224\345\223\251\347\233\264\346\222\255.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\234\250\347\272\277\344\271\213\345\256\266.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\244\225\344\272\221\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\244\232\345\244\232\350\277\275\345\211\247.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\244\247\347\261\263\346\230\237\347\220\203.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\244\247\347\261\263\346\230\237\347\220\203[V2].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\245\207\347\217\215\345\274\202\345\205\275[\345\256\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\255\234\347\204\266\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\256\235\347\211\207\350\247\206\351\242\221.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\271\262\351\245\255\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\275\261\350\247\206\347\234\213\345\220\247.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\345\277\253\347\234\213\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\200\235\345\217\244\345\275\261\350\247\206[V2].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251[\345\256\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251\344\274\240\345\217\202.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\216\214\345\277\203\344\270\226\347\225\214.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\226\227\351\261\274\347\233\264\346\222\255.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\226\260\350\214\266\346\235\257\347\213\220.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\227\266\345\205\211\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\230\223\347\234\213\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\230\237\344\272\221\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\230\237\347\251\272\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\230\237\350\276\260.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\232\264\351\243\216\350\265\204\346\272\220[\350\265\204].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\236\201\345\256\242\350\265\204\346\272\220[\350\265\204].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\236\201\351\200\237\350\265\204\346\272\220[\350\265\204].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\246\234\344\270\200\347\237\255\345\211\247.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\251\231\346\261\201\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\346\265\267\345\244\226\345\211\247\346\261\207.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\203\247\347\201\253\345\275\261\350\247\206[\344\274\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\203\255\346\222\255\344\271\213\345\256\266.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\210\261\347\234\213\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\210\261\347\234\213\346\234\272\345\231\250\344\272\272[\350\231\253].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\210\261\350\275\246MV.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\216\251\345\201\266\345\223\245\345\223\245[\347\233\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\231\275\345\253\226\350\200\205\350\201\224\347\233\237.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\231\276\345\277\231\346\227\240\346\236\234[\345\256\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\232\256\347\232\256\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\234\21357.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\234\213\347\234\213\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\243\201\345\212\233\347\206\212[\347\243\201].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\245\236\351\251\254\347\224\265\345\275\261[\346\220\234].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\264\240\347\231\275\347\231\275[\344\274\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\264\242\345\260\274\350\265\204\346\272\220[\350\265\204].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\275\221\351\243\236\347\214\253[\344\274\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\276\216\345\211\247\346\230\237\347\220\203.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\347\276\216\347\233\212\350\276\276.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\350\200\220\347\234\213.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\350\205\276\344\272\221\351\251\276\351\233\276[\345\256\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\350\212\261\345\255\220\345\212\250\346\274\253[\346\274\253].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\350\215\220\347\211\207[\344\274\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\350\217\234\347\213\227[\345\256\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\350\223\235\345\205\211\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\350\231\216\347\211\231\347\233\264\346\222\255.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\350\233\213\350\233\213\345\211\247.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\350\233\213\350\233\213\350\265\236.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\350\245\277\345\261\213\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\350\261\206\347\223\243[\345\256\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\351\205\267\345\256\242\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\351\207\217\345\255\220\345\275\261\350\247\206[\350\265\204].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\351\207\217\345\255\220\350\265\204\346\272\220[\350\265\204].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\351\207\221\351\271\260\350\265\204\346\272\220[\350\265\204].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\351\230\277\351\207\214\345\234\237\350\261\206[\347\233\230].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\351\235\236\345\207\241\350\265\204\346\272\220[\350\265\204].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\351\255\224\351\203\275\350\265\204\346\272\220[\350\265\204].js" create mode 100644 "zyplayer/drpy_dzlive/drpy_js/\351\272\273\351\233\200\350\247\206\351\242\221.js" create mode 100644 zyplayer/drpy_dzlive/drpy_libs/drpy2.js create mode 100644 zyplayer/drpy_dzlive/drpy_libs/drpy2.min.js create mode 100644 zyplayer/drpy_dzlive/drpy_libs/gbk.js create mode 100644 zyplayer/drpy_dzlive/drpy_libs/jsencrypt.js create mode 100644 zyplayer/drpy_dzlive/drpy_libs/node-rsa.js create mode 100644 zyplayer/drpy_dzlive/drpy_libs/pako.min.js create mode 100644 "zyplayer/drpy_dzlive/drpy_libs/\346\250\241\346\235\277.js" create mode 100644 zyplayer/drpy_dzlive/index.js create mode 100644 zyplayer/drpy_dzlive/index.json create mode 100644 "zyplayer/drpy_dzlive/json/\345\260\217\345\255\246\346\225\231\350\202\262.json" create mode 100644 "zyplayer/drpy_dzlive/json/\347\231\275\345\253\226\347\255\233\351\200\211.json" create mode 100644 "zyplayer/drpy_dzlive/lives/\345\215\216\346\225\2602.m3u" create mode 100644 "zyplayer/drpy_dzlive/lives/\346\235\255\345\267\236\345\215\216\346\225\260.m3u" create mode 100644 zyplayer/drpy_dzlive/readme.txt create mode 100644 zyplayer/drpy_gao/js.json create mode 100644 zyplayer/drpy_gao/js/1080P.js create mode 100644 "zyplayer/drpy_gao/js/139\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/188\345\275\261\350\247\206.js" create mode 100644 zyplayer/drpy_gao/js/18av.js create mode 100644 "zyplayer/drpy_gao/js/18\345\223\210.js" create mode 100644 "zyplayer/drpy_gao/js/310\347\233\264\346\222\255.js" create mode 100644 "zyplayer/drpy_gao/js/333\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/348\347\224\265\345\275\261\347\275\221.js" create mode 100644 "zyplayer/drpy_gao/js/360\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/369\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/4K\347\224\265\345\275\261\347\275\221.js" create mode 100644 zyplayer/drpy_gao/js/4khdr.js create mode 100644 "zyplayer/drpy_gao/js/4k\345\211\247\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/539\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/555\345\275\261\350\247\206[\351\243\236].js" create mode 100644 "zyplayer/drpy_gao/js/555\347\224\265\345\275\261[V2].js" create mode 100644 "zyplayer/drpy_gao/js/567\347\224\265\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/58\345\212\250\346\274\253.js" create mode 100644 "zyplayer/drpy_gao/js/69\347\276\216\345\211\247.js" create mode 100644 "zyplayer/drpy_gao/js/69\347\276\216\345\211\247[V2].js" create mode 100644 "zyplayer/drpy_gao/js/6V\346\226\260\347\211\210[\347\243\201].js" create mode 100644 "zyplayer/drpy_gao/js/7\345\226\234\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/88\347\234\213\347\220\203.js" create mode 100644 "zyplayer/drpy_gao/js/8\345\217\267\345\275\261\351\231\242.js" create mode 100644 zyplayer/drpy_gao/js/97tvs.js create mode 100644 "zyplayer/drpy_gao/js/996\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/A8\351\237\263\344\271\220.js" create mode 100644 "zyplayer/drpy_gao/js/AGE\345\212\250\346\274\253.js" create mode 100644 zyplayer/drpy_gao/js/AnFuns.js create mode 100644 "zyplayer/drpy_gao/js/Anime1\345\212\250\347\225\253.js" create mode 100644 zyplayer/drpy_gao/js/Auete.js create mode 100644 "zyplayer/drpy_gao/js/B\347\253\231\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/DJ\351\237\263\344\271\220.js" create mode 100644 zyplayer/drpy_gao/js/Fun4K.js create mode 100644 zyplayer/drpy_gao/js/HDmoli.js create mode 100644 "zyplayer/drpy_gao/js/JRKAN\347\233\264\346\222\255.js" create mode 100644 zyplayer/drpy_gao/js/JangoIndex.js create mode 100644 zyplayer/drpy_gao/js/JustLive.js create mode 100644 "zyplayer/drpy_gao/js/KOK\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/KUBO\345\275\261\350\247\206[\351\243\236].js" create mode 100644 zyplayer/drpy_gao/js/Missav.js create mode 100644 "zyplayer/drpy_gao/js/NT\345\212\250\346\274\253.js" create mode 100644 "zyplayer/drpy_gao/js/NY\345\275\261\351\231\242.js" create mode 100644 zyplayer/drpy_gao/js/NyaFun.js create mode 100644 "zyplayer/drpy_gao/js/TVB\344\272\221\346\222\255.js" create mode 100644 "zyplayer/drpy_gao/js/UM\347\224\265\345\275\261[V2].js" create mode 100644 "zyplayer/drpy_gao/js/UrleBird[\351\243\236].js" create mode 100644 zyplayer/drpy_gao/js/aipanso.js create mode 100644 zyplayer/drpy_gao/js/alist.json create mode 100644 zyplayer/drpy_gao/js/banan.js create mode 100644 zyplayer/drpy_gao/js/cilixiong.js create mode 100644 zyplayer/drpy_gao/js/cilixiongp.js create mode 100644 zyplayer/drpy_gao/js/cokemv.js create mode 100644 zyplayer/drpy_gao/js/cokemv[V2].js create mode 100644 zyplayer/drpy_gao/js/ddys.js create mode 100644 zyplayer/drpy_gao/js/ddys_d.js create mode 100644 zyplayer/drpy_gao/js/drpy.js create mode 100644 zyplayer/drpy_gao/js/dydhhy.js create mode 100644 zyplayer/drpy_gao/js/dygang.js create mode 100644 zyplayer/drpy_gao/js/funletu.js create mode 100644 zyplayer/drpy_gao/js/huya.js create mode 100644 "zyplayer/drpy_gao/js/i275\345\220\254\344\271\246.js" create mode 100644 "zyplayer/drpy_gao/js/if101[\351\243\236].js" create mode 100644 zyplayer/drpy_gao/js/ikanbot2.js create mode 100644 zyplayer/drpy_gao/js/ikanbot3.js create mode 100644 zyplayer/drpy_gao/js/jianpian.js create mode 100644 zyplayer/drpy_gao/js/jiyingw.js create mode 100644 zyplayer/drpy_gao/js/jiyingwp.js create mode 100644 zyplayer/drpy_gao/js/jsapi.js create mode 100644 zyplayer/drpy_gao/js/jsapi2.js create mode 100644 zyplayer/drpy_gao/js/kkpans.js create mode 100644 zyplayer/drpy_gao/js/kuba.js create mode 100644 zyplayer/drpy_gao/js/lf_live.txt create mode 100644 zyplayer/drpy_gao/js/lf_live1.txt create mode 100644 zyplayer/drpy_gao/js/libvio.js create mode 100644 zyplayer/drpy_gao/js/live2mv_data.json create mode 100644 zyplayer/drpy_gao/js/meijumi.js create mode 100644 zyplayer/drpy_gao/js/meijumip.js create mode 100644 zyplayer/drpy_gao/js/meow.js create mode 100644 zyplayer/drpy_gao/js/mp4us.js create mode 100644 zyplayer/drpy_gao/js/qimiao.js create mode 100644 zyplayer/drpy_gao/js/rrdyw.js create mode 100644 "zyplayer/drpy_gao/js/ss\347\233\264\346\222\255.js" create mode 100644 zyplayer/drpy_gao/js/template.js create mode 100644 zyplayer/drpy_gao/js/tzfile.js create mode 100644 zyplayer/drpy_gao/js/voflix.js create mode 100644 zyplayer/drpy_gao/js/xb6v.js create mode 100644 zyplayer/drpy_gao/js/xzys.js create mode 100644 zyplayer/drpy_gao/js/yyets.js create mode 100644 zyplayer/drpy_gao/js/yyetsp.js create mode 100644 "zyplayer/drpy_gao/js/\344\270\212\345\244\264\347\237\255\345\211\247.js" create mode 100644 "zyplayer/drpy_gao/js/\344\270\244\344\270\252BT.js" create mode 100644 "zyplayer/drpy_gao/js/\344\270\255\345\233\275\344\272\272.js" create mode 100644 "zyplayer/drpy_gao/js/\344\270\255\345\233\275\344\272\272\347\272\277\344\270\212\347\234\213.js" create mode 100644 "zyplayer/drpy_gao/js/\344\271\220\351\261\274\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\344\272\272\344\272\272\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\344\274\230\351\205\267.js" create mode 100644 "zyplayer/drpy_gao/js/\345\205\204\345\274\237\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\205\215\350\264\271\347\234\213.js" create mode 100644 "zyplayer/drpy_gao/js/\345\205\224\345\260\217\350\264\235.js" create mode 100644 "zyplayer/drpy_gao/js/\345\205\255\346\234\210\345\220\254\344\271\246.js" create mode 100644 "zyplayer/drpy_gao/js/\345\205\260\350\212\261\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\345\205\273\347\253\257.js" create mode 100644 "zyplayer/drpy_gao/js/\345\206\234\346\260\221\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\207\214\344\272\221\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\210\272\346\241\220[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\345\211\247\350\277\267su.js" create mode 100644 "zyplayer/drpy_gao/js/\345\212\250\346\274\253\345\262\233.js" create mode 100644 "zyplayer/drpy_gao/js/\345\214\227\345\267\235\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\214\227\346\236\201\347\213\220[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\345\215\216\344\271\220\345\275\261\351\231\242[\351\243\236].js" create mode 100644 "zyplayer/drpy_gao/js/\345\215\227\347\223\234\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\215\232\347\234\213\345\220\254\344\271\246.js" create mode 100644 "zyplayer/drpy_gao/js/\345\216\202\351\225\277\350\265\204\346\272\220.js" create mode 100644 "zyplayer/drpy_gao/js/\345\216\273\347\234\213\345\220\247.js" create mode 100644 "zyplayer/drpy_gao/js/\345\220\254\344\271\246\347\275\221.js" create mode 100644 "zyplayer/drpy_gao/js/\345\220\270\347\223\234.js" create mode 100644 "zyplayer/drpy_gao/js/\345\220\274\345\220\274[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\345\222\225\345\231\234[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\345\223\224\345\223\251\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\223\224\345\223\251\347\233\264\346\222\255.js" create mode 100644 "zyplayer/drpy_gao/js/\345\223\224\345\230\200\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\225\246\345\225\246DJ.js" create mode 100644 "zyplayer/drpy_gao/js/\345\226\234\351\251\254\346\213\211\351\233\205.js" create mode 100644 "zyplayer/drpy_gao/js/\345\226\265\346\254\241\345\205\203.js" create mode 100644 "zyplayer/drpy_gao/js/\345\233\233\344\270\252\345\234\210\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\234\250\347\272\277\344\271\213\345\256\266.js" create mode 100644 "zyplayer/drpy_gao/js/\345\244\232\347\221\231\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\244\247\345\270\210\345\205\204\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\244\247\347\261\263\346\230\237\347\220\203.js" create mode 100644 "zyplayer/drpy_gao/js/\345\244\247\347\261\263\346\230\237\347\220\203[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\345\244\251\345\244\251\350\247\206\351\242\221[\351\243\236].js" create mode 100644 "zyplayer/drpy_gao/js/\345\245\207\344\274\230\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\345\245\207\347\217\215\345\274\202\345\205\275.js" create mode 100644 "zyplayer/drpy_gao/js/\345\245\207\347\261\263\345\212\250\346\274\253.js" create mode 100644 "zyplayer/drpy_gao/js/\345\245\210\351\243\236\344\270\255\346\226\207.js" create mode 100644 "zyplayer/drpy_gao/js/\345\245\210\351\243\236\347\213\227[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\345\245\275\350\266\243\347\275\221.js" create mode 100644 "zyplayer/drpy_gao/js/\345\246\256\345\217\257\345\212\250\346\274\253.js" create mode 100644 "zyplayer/drpy_gao/js/\345\255\220\345\255\220\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\255\234\347\204\266\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\256\235\347\211\207[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\345\260\217\345\223\201\347\275\221.js" create mode 100644 "zyplayer/drpy_gao/js/\345\260\217\345\256\235\345\275\261\351\231\242[\351\243\236].js" create mode 100644 "zyplayer/drpy_gao/js/\345\260\217\347\213\227\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\345\260\217\347\231\275\350\217\234\347\224\265\345\275\261.js" create mode 100644 "zyplayer/drpy_gao/js/\345\260\230\350\220\275\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\271\262\351\245\255\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\345\271\277\346\222\255\350\277\267FM.js" create mode 100644 "zyplayer/drpy_gao/js/\345\274\200\347\234\274\350\247\206\351\242\221.js" create mode 100644 "zyplayer/drpy_gao/js/\345\274\202\344\270\226\347\225\214\345\212\250\346\274\253.js" create mode 100644 "zyplayer/drpy_gao/js/\345\275\261\346\216\242[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\345\275\261\346\270\243\346\270\243.js" create mode 100644 "zyplayer/drpy_gao/js/\345\275\261\350\247\206\344\271\213\345\256\266[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\345\275\261\350\247\206\345\267\245\345\216\202.js" create mode 100644 "zyplayer/drpy_gao/js/\345\275\261\350\247\206\345\267\245\345\234\272.js" create mode 100644 "zyplayer/drpy_gao/js/\345\276\225\347\261\263TV.js" create mode 100644 "zyplayer/drpy_gao/js/\345\277\253\347\234\213.js" create mode 100644 "zyplayer/drpy_gao/js/\346\200\235\345\217\244\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\346\200\235\345\217\244\345\275\261\350\247\206[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\346\200\241\350\220\261\345\212\250\346\274\253.js" create mode 100644 "zyplayer/drpy_gao/js/\346\202\240\344\271\205\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\346\210\221\347\210\261\350\267\237\345\211\247.js" create mode 100644 "zyplayer/drpy_gao/js/\346\210\221\347\232\204\345\223\224\345\223\251.js" create mode 100644 "zyplayer/drpy_gao/js/\346\212\223\351\245\255\344\275\223\350\202\262.js" create mode 100644 "zyplayer/drpy_gao/js/\346\222\255\345\256\242.js" create mode 100644 "zyplayer/drpy_gao/js/\346\226\227\351\261\274\347\233\264\346\222\255.js" create mode 100644 "zyplayer/drpy_gao/js/\346\226\260\347\211\207\345\234\272.js" create mode 100644 "zyplayer/drpy_gao/js/\346\226\260\350\247\206\350\247\211\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\346\227\266\345\205\211\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\346\230\237\350\276\260.js" create mode 100644 "zyplayer/drpy_gao/js/\346\230\240\350\277\267[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\346\230\240\350\277\267\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\346\233\262\345\245\207\345\212\250\346\274\253.js" create mode 100644 "zyplayer/drpy_gao/js/\346\233\262\345\245\207\345\275\261\350\247\206[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\346\234\211\345\243\260\345\260\217\350\257\264\345\220\247.js" create mode 100644 "zyplayer/drpy_gao/js/\346\234\211\345\243\260\347\273\230\346\234\254\347\275\221.js" create mode 100644 "zyplayer/drpy_gao/js/\346\234\261\345\217\244\345\212\233.js" create mode 100644 "zyplayer/drpy_gao/js/\346\234\264\346\250\261\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\346\245\232\351\227\250\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\346\250\241\346\235\277.js" create mode 100644 "zyplayer/drpy_gao/js/\346\254\247\344\271\220\345\275\261\351\231\242[\351\243\236].js" create mode 100644 "zyplayer/drpy_gao/js/\346\254\247\345\270\235\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\346\255\246\344\272\253\345\220\247.js" create mode 100644 "zyplayer/drpy_gao/js/\346\255\252\347\211\207\346\230\237\347\220\203.js" create mode 100644 "zyplayer/drpy_gao/js/\346\265\267\345\205\224\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\346\265\267\346\264\213\345\220\254\344\271\246.js" create mode 100644 "zyplayer/drpy_gao/js/\346\270\205\351\243\216DJ.js" create mode 100644 "zyplayer/drpy_gao/js/\347\203\255\346\222\255\344\271\213\345\256\266.js" create mode 100644 "zyplayer/drpy_gao/js/\347\203\255\346\222\255\345\272\223.js" create mode 100644 "zyplayer/drpy_gao/js/\347\210\261\344\270\212\344\275\240\345\220\254\344\271\246\347\275\221.js" create mode 100644 "zyplayer/drpy_gao/js/\347\210\261\345\243\271\345\270\206[\351\243\236].js" create mode 100644 "zyplayer/drpy_gao/js/\347\210\261\345\274\271\345\271\225.js" create mode 100644 "zyplayer/drpy_gao/js/\347\210\261\347\234\213.js" create mode 100644 "zyplayer/drpy_gao/js/\347\210\261\347\234\213\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\347\210\261\347\234\213\346\234\272\345\231\250\344\272\272.js" create mode 100644 "zyplayer/drpy_gao/js/\347\210\261\350\275\246MV.js" create mode 100644 "zyplayer/drpy_gao/js/\347\210\261\350\277\252[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\347\210\261\350\277\252\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\347\213\254\346\222\255\345\272\223[\351\243\236].js" create mode 100644 "zyplayer/drpy_gao/js/\347\214\253\344\272\206\344\270\252\345\222\252.js" create mode 100644 "zyplayer/drpy_gao/js/\347\216\204\345\244\251.js" create mode 100644 "zyplayer/drpy_gao/js/\347\216\251\345\201\266\345\247\220\345\247\220.js" create mode 100644 "zyplayer/drpy_gao/js/\347\224\265\345\275\261\345\205\210\347\224\237.js" create mode 100644 "zyplayer/drpy_gao/js/\347\231\276\345\277\231\346\227\240\346\236\234.js" create mode 100644 "zyplayer/drpy_gao/js/\347\232\256\347\232\256\351\270\255.js" create mode 100644 "zyplayer/drpy_gao/js/\347\233\270\345\243\260\351\232\217\350\272\253\345\220\254.js" create mode 100644 "zyplayer/drpy_gao/js/\347\234\213\344\272\206\344\271\210.js" create mode 100644 "zyplayer/drpy_gao/js/\347\234\213\351\237\251\345\211\247.js" create mode 100644 "zyplayer/drpy_gao/js/\347\237\255\350\247\206\351\242\221.js" create mode 100644 "zyplayer/drpy_gao/js/\347\243\201\345\212\233\347\206\212[\347\243\201].js" create mode 100644 "zyplayer/drpy_gao/js/\347\247\201\344\272\272\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\347\247\213\351\234\236.js" create mode 100644 "zyplayer/drpy_gao/js/\347\247\213\351\234\236\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\347\253\245\350\266\243.js" create mode 100644 "zyplayer/drpy_gao/js/\347\261\263\347\210\261\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\347\264\240\347\231\275\347\231\275.js" create mode 100644 "zyplayer/drpy_gao/js/\347\275\221\346\230\223\345\205\254\347\211\210\345\275\261\345\203\217.js" create mode 100644 "zyplayer/drpy_gao/js/\347\275\221\351\243\236.TV.js" create mode 100644 "zyplayer/drpy_gao/js/\347\276\216\345\211\247\347\275\221.js" create mode 100644 "zyplayer/drpy_gao/js/\347\276\216\347\233\212\350\276\276[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\347\276\216\350\247\206\347\275\221.js" create mode 100644 "zyplayer/drpy_gao/js/\350\203\226\350\231\216.js" create mode 100644 "zyplayer/drpy_gao/js/\350\205\276\344\272\221\351\251\276\351\233\276.js" create mode 100644 "zyplayer/drpy_gao/js/\350\212\261\345\261\213\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\350\212\261\347\214\253TV.js" create mode 100644 "zyplayer/drpy_gao/js/\350\213\271\346\236\234\347\210\261\345\276\256.js" create mode 100644 "zyplayer/drpy_gao/js/\350\215\220\347\211\207.js" create mode 100644 "zyplayer/drpy_gao/js/\350\217\234\347\213\227.js" create mode 100644 "zyplayer/drpy_gao/js/\350\220\275\346\224\273\351\230\201\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\350\220\275\346\224\273\351\230\201\345\275\261\350\247\206[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\350\223\235\345\205\211\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\350\231\216\347\211\231\347\233\264\346\222\255.js" create mode 100644 "zyplayer/drpy_gao/js/\350\233\213\350\233\213\345\211\247.js" create mode 100644 "zyplayer/drpy_gao/js/\350\233\213\350\233\213\350\265\236.js" create mode 100644 "zyplayer/drpy_gao/js/\350\234\245\350\234\264\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\350\234\273\350\234\223FM.js" create mode 100644 "zyplayer/drpy_gao/js/\350\242\253\347\252\235\347\224\265\345\275\261.js" create mode 100644 "zyplayer/drpy_gao/js/\350\245\277\347\223\234\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\350\257\204\344\271\246\351\232\217\350\272\253\345\220\254.js" create mode 100644 "zyplayer/drpy_gao/js/\350\265\267\351\243\236\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\350\267\221TV.js" create mode 100644 "zyplayer/drpy_gao/js/\350\267\257\344\272\272\347\224\262[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\350\267\257\346\274\253\346\274\253.js" create mode 100644 "zyplayer/drpy_gao/js/\350\276\276\350\276\276\351\276\237.js" create mode 100644 "zyplayer/drpy_gao/js/\350\277\275\345\211\247\350\277\267.js" create mode 100644 "zyplayer/drpy_gao/js/\351\205\2676\347\275\221.js" create mode 100644 "zyplayer/drpy_gao/js/\351\205\267\344\272\22177.js" create mode 100644 "zyplayer/drpy_gao/js/\351\205\267\345\245\207MV.js" create mode 100644 "zyplayer/drpy_gao/js/\351\207\217\345\255\220\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\351\207\217\345\255\220\350\265\204\346\272\220.js" create mode 100644 "zyplayer/drpy_gao/js/\351\207\221\346\233\274\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\351\221\253\351\221\253[V2].js" create mode 100644 "zyplayer/drpy_gao/js/\351\230\277\345\270\203\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\351\243\236\345\205\224\345\275\261\350\247\206.js" create mode 100644 "zyplayer/drpy_gao/js/\351\246\226\346\222\255\345\275\261\351\231\242.js" create mode 100644 "zyplayer/drpy_gao/js/\351\252\232\347\201\253\347\224\265\345\275\261.js" create mode 100644 zyplayer/drpy_gao/readme.txt diff --git a/README.md b/README.md index 697e234..f081251 100644 --- a/README.md +++ b/README.md @@ -1 +1,13 @@ -在线视频以及音频源搜集整理,链接在index.js中。 \ No newline at end of file +# 音乐 + 音源 +[Lx 官网](https://lxmusic.toside.cn/) +[Lx Win & Mac 下载地址](https://github.com/lyswhut/lx-music-desktop/releases) +[Lx 手机版 下载地址](https://github.com/lyswhut/lx-music-mobile/releases) +# 视频 + 视频源 +[ZyPlayer 官网](https://github.com/Hiram-Wong/ZyPlayer) +[ZyPlayer 下载地址](https://github.com/Hiram-Wong/ZyPlayer/releases) +# 图书 + 书源 +[开源阅读 官网](https://gedoor.github.io/) +[开源阅读 下载地址](https://github.com/gedoor/legado/releases) +# 漫画 + 图源 +[Cimoc 官网](https://github.com/Haleydu/Cimoc) +[Cimoc 下载地址](https://github.com/Haleydu/Cimoc/releases) \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/360\345\275\261\350\247\206.js" "b/zyplayer/drpy_dz/drpy_js/360\345\275\261\350\247\206.js" new file mode 100644 index 0000000..79c372d --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/360\345\275\261\350\247\206.js" @@ -0,0 +1,28 @@ +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/filter/list?catid=fyclass&rank=rankhot&cat=&year=&area=&act=&size=35&pageno=fypage&callback=', + 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:input=input.split("?")[0];log(input);', + // 疑似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: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=200;let vod_play={};let sites=data.playlink_sites;sites.forEach(function(site){let playList="";let vodItems=[];if(data.allupinfo){let total=parseInt(data.allupinfo[site]);for(let j=1;j0){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', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/555\345\275\261\350\247\206[\351\243\236].js" "b/zyplayer/drpy_dz/drpy_js/555\345\275\261\350\247\206[\351\243\236].js" new file mode 100644 index 0000000..284e6b2 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/555\345\275\261\350\247\206[\351\243\236].js" @@ -0,0 +1,31 @@ +// 搜索验证 +// 网址发布页 https://www.555dy.top +muban.mxpro.二级.desc = '.module-info-item:eq(-1)&&Text;;;.module-info-item-content:eq(2)&&Text;.module-info-item-content:eq(0)&&Text'; +var rule = { + title:'555影视[飞]', + 模板:'mxpro', + host: 'https://www.555dyy.top', + hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src=jsp.pdfh(html,".row:eq(1)&&a&&href");print(src);HOST=src', + url:'/vodshow/fyfilter.html', + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.cateId}}-{{fl.area}}-{{fl.by}}-{{fl.class}}-{{fl.lang}}----fypage---{{fl.year}}', + filter: { + "1":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"Netflix","v":"Netflix"},{"n":"仙侠","v":"仙侠"},{"n":"剧情","v":"剧情"},{"n":"科幻","v":"科幻"},{"n":"动作","v":"动作"},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"冒险","v":"冒险"},{"n":"儿童","v":"儿童"},{"n":"歌舞","v":"歌舞"},{"n":"音乐","v":"音乐"},{"n":"奇幻","v":"奇幻"},{"n":"动画","v":"动画"},{"n":"恐怖","v":"恐怖"},{"n":"惊悚","v":"惊悚"},{"n":"丧尸","v":"丧尸"},{"n":"战争","v":"战争"},{"n":"传记","v":"传记"},{"n":"纪录","v":"纪录"},{"n":"犯罪","v":"犯罪"},{"n":"悬疑","v":"悬疑"},{"n":"西部","v":"西部"},{"n":"灾难","v":"灾难"},{"n":"古装","v":"古装"},{"n":"武侠","v":"武侠"},{"n":"家庭","v":"家庭"},{"n":"短片","v":"短片"},{"n":"校园","v":"校园"},{"n":"文艺","v":"文艺"},{"n":"运动","v":"运动"},{"n":"青春","v":"青春"},{"n":"同性","v":"同性"},{"n":"励志","v":"励志"},{"n":"人性","v":"人性"},{"n":"美食","v":"美食"},{"n":"女性","v":"女性"},{"n":"治愈","v":"治愈"},{"n":"历史","v":"历史"},{"n":"真人秀","v":"真人秀"},{"n":"脱口秀","v":"脱口秀"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"英国","v":"英国"},{"n":"法国","v":"法国"},{"n":"德国","v":"德国"},{"n":"印度","v":"印度"},{"n":"泰国","v":"泰国"},{"n":"丹麦","v":"丹麦"},{"n":"瑞典","v":"瑞典"},{"n":"巴西","v":"巴西"},{"n":"加拿大","v":"加拿大"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"意大利","v":"意大利"},{"n":"比利时","v":"比利时"},{"n":"爱尔兰","v":"爱尔兰"},{"n":"西班牙","v":"西班牙"},{"n":"澳大利亚","v":"澳大利亚"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"英语","v":"英语"},{"n":"法语","v":"法语"},{"n":"国语","v":"国语"},{"n":"粤语","v":"粤语"},{"n":"日语","v":"日语"},{"n":"韩语","v":"韩语"},{"n":"泰语","v":"泰语"},{"n":"德语","v":"德语"},{"n":"俄语","v":"俄语"},{"n":"闽南语","v":"闽南语"},{"n":"丹麦语","v":"丹麦语"},{"n":"波兰语","v":"波兰语"},{"n":"瑞典语","v":"瑞典语"},{"n":"印地语","v":"印地语"},{"n":"挪威语","v":"挪威语"},{"n":"意大利语","v":"意大利语"},{"n":"西班牙语","v":"西班牙语"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"热门连续剧","v":"13"},{"n":"港台剧","v":"15"},{"n":"日韩剧","v":"44"},{"n":"欧美剧","v":"45"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"Netflix","v":"Netflix"},{"n":"剧情","v":"剧情"},{"n":"丧尸","v":"丧尸"},{"n":"仙侠","v":"仙侠"},{"n":"穿越","v":"穿越"},{"n":"惊悚","v":"惊悚"},{"n":"恐怖","v":"恐怖"},{"n":"言情","v":"言情"},{"n":"科幻","v":"科幻"},{"n":"动作","v":"动作"},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"偶像","v":"偶像"},{"n":"都市","v":"都市"},{"n":"军旅","v":"军旅"},{"n":"谍战","v":"谍战"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"冒险","v":"冒险"},{"n":"儿童","v":"儿童"},{"n":"歌舞","v":"歌舞"},{"n":"音乐","v":"音乐"},{"n":"奇幻","v":"奇幻"},{"n":"动画","v":"动画"},{"n":"战争","v":"战争"},{"n":"传记","v":"传记"},{"n":"记录","v":"记录"},{"n":"犯罪","v":"犯罪"},{"n":"悬疑","v":"悬疑"},{"n":"西部","v":"西部"},{"n":"灾难","v":"灾难"},{"n":"古装","v":"古装"},{"n":"武侠","v":"武侠"},{"n":"家庭","v":"家庭"},{"n":"短片","v":"短片"},{"n":"校园","v":"校园"},{"n":"文艺","v":"文艺"},{"n":"运动","v":"运动"},{"n":"青春","v":"青春"},{"n":"同性","v":"同性"},{"n":"励志","v":"励志"},{"n":"人性","v":"人性"},{"n":"美食","v":"美食"},{"n":"女性","v":"女性"},{"n":"治愈","v":"治愈"},{"n":"历史","v":"历史"},{"n":"真人秀","v":"真人秀"},{"n":"脱口秀","v":"脱口秀"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"韩国","v":"韩国"},{"n":"美国","v":"美国"},{"n":"日本","v":"日本"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"德国","v":"德国"},{"n":"台湾","v":"台湾"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "3":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"YouTube","v":"YouTube"},{"n":"脱口秀","v":"脱口秀"},{"n":"真人秀","v":"真人秀"},{"n":"选秀","v":"选秀"},{"n":"八卦","v":"八卦"},{"n":"访谈","v":"访谈"},{"n":"情感","v":"情感"},{"n":"生活","v":"生活"},{"n":"晚会","v":"晚会"},{"n":"搞笑","v":"搞笑"},{"n":"音乐","v":"音乐"},{"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":"其它"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"Netflix","v":"Netflix"},{"n":"热血","v":"热血"},{"n":"科幻","v":"科幻"},{"n":"美少女","v":"美少女"},{"n":"魔幻","v":"魔幻"},{"n":"经典","v":"经典"},{"n":"励志","v":"励志"},{"n":"少儿","v":"少儿"},{"n":"冒险","v":"冒险"},{"n":"搞笑","v":"搞笑"},{"n":"推理","v":"推理"},{"n":"恋爱","v":"恋爱"},{"n":"治愈","v":"治愈"},{"n":"幻想","v":"幻想"},{"n":"校园","v":"校园"},{"n":"动物","v":"动物"},{"n":"机战","v":"机战"},{"n":"亲子","v":"亲子"},{"n":"儿歌","v":"儿歌"},{"n":"运动","v":"运动"},{"n":"悬疑","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":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"},{"n":"更早","v":"更早"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "124":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] + }, + filter_def:{ + 1:{cateId:'1',by:'time'}, + 2:{cateId:'2',by:'time'}, + 3:{cateId:'3',by:'time'}, + 4:{cateId:'4',by:'time'}, + 124:{cateId:'124',by:'time'} + }, + class_parse: '.navbar-items li;a&&Text;a&&href;/(\\d+)/', + cate_exclude:'福利', + searchUrl:'/index.php/ajax/suggest?mid=1&wd=**&limit=50', + detailUrl:'/voddetail/fyid.html', //非必填,二级详情拼接链接 + 搜索:'json:list;name;pic;;id', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/6V\346\226\260\347\211\210[\347\243\201].js" "b/zyplayer/drpy_dz/drpy_js/6V\346\226\260\347\211\210[\347\243\201].js" new file mode 100644 index 0000000..af57e87 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/6V\346\226\260\347\211\210[\347\243\201].js" @@ -0,0 +1,65 @@ +var rule = { + title:'6V新版[磁]', + host:'http://www.xb6v.com', + // host:'https://www.66s6.net', + // url: '/fyclass/index_fypage.html[/fyclass/index.html]', + url: '/fyclassfyfilter/index_fypage.html[/fyclassfyfilter/index.html]', + filter_url:'{{fl.class}}', + filter:{ + "dianshiju":[{"key":"class","name":"类型","value":[{"n":"全部","v":""},{"n":"国剧","v":"/guoju"},{"n":"日韩剧","v":"/rihanju"},{"n":"欧美剧","v":"/oumeiju"}]}] + }, + searchUrl: '/e/search/index.php#show=title&tempid=1&tbname=article&mid=1&dopost=search&submit=&keyboard=**;post', + searchable:2, + quickSearch:0, + filterable:1, + headers:{ + 'User-Agent': 'MOBILE_UA' + }, + timeout:5000, + class_parse:'#menus&&li:gt(1);a&&Text;a&&href;.*/(.*)/', + cate_exclude:'欧美剧|旧版6v', + play_parse:true, + limit:6, + 推荐: '*', + 一级: '#post_container&&li;h2&&Text;img&&src;.info_date&&Text;a&&href', + 二级: { + "title": "#content&&h1&&Text;.info_category&&Text", + "img": "#post_content&&img&&src", + "desc": ";;;#post_content&&p:eq(0)&&Text;#post_content&&p:eq(2)&&Text", + "content": "#post_content&&p:eq(1)&&Text", + "tabs": `js: + TABS = ["道长磁力"]; + let tabs = pdfa(html, '#content&&h3:not(:contains(网盘))'); + tabs.forEach((it) => { + TABS.push(pdfh(it, "body&&Text").replace('播放地址','道长在线').replace('(无插件 极速播放)','一').replace('(无需安装插件)','二')) + }); + `, + "lists": `js: + log(TABS); + pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; + LISTS = []; + let i = 1; + TABS.forEach(function(tab) { + if (/道长磁力/.test(tab)) { + var d = pdfa(html, '.context&&td'); + d = d.map(function(it) { + var title = pdfh(it, 'a&&Text'); + var burl = pd(it, 'a&&href'); + return title + '$' + burl + }); + LISTS.push(d) + } else if (/道长在线/.test(tab) && i <= TABS.length-1) { + var d = pdfa(html, '.context&&.widget:eq(list_idx)&&a'.replace("list_idx", i)); + d = d.map(function(it) { + var title = pdfh(it, 'a&&Text'); + var burl = pd(it, 'a&&href'); + return title + '$' + burl + }); + LISTS.push(d) + i = i + 1; + } + }); + `, + }, + 搜索: '*', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/777\345\275\261\350\247\206.js" "b/zyplayer/drpy_dz/drpy_js/777\345\275\261\350\247\206.js" new file mode 100644 index 0000000..80c2a69 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/777\345\275\261\350\247\206.js" @@ -0,0 +1,12 @@ +var rule = { + title: '777影视', + 模板:'mxpro', + host: '777ys.pro', + host: 'http://www.777ys.vip', + url: '/show/fyclassfyfilter', + searchUrl: '/search/page/fypage/wd/**/', + filterable: 1, + filter_url:'{{fl.地区}}{{fl.排序}}{{fl.剧情}}{{fl.字母}}/page/fypage{{fl.年份}}', + filter:'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', + class_parse: '.navbar-items&&.navbar-item;a&&Text;a&&href;type/(\\w+)/', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/996\345\275\261\350\247\206.js" "b/zyplayer/drpy_dz/drpy_js/996\345\275\261\350\247\206.js" new file mode 100644 index 0000000..6d56156 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/996\345\275\261\350\247\206.js" @@ -0,0 +1,27 @@ +var rule= { + title:'996影视', + host:'https://www.cs1369.com', + // url:'/index.php/vod/show/id/fyclass/page/fypage.html', + url:'/show/id/fyclass/page/fypage.html', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + filterable:1,//是否启用分类筛选, + class_parse: '.stui-header__menu&&li:gt(0):lt(4);a&&Text;a&&href;.*/(.*?).html', + play_parse: true, + lazy:'js:var html=JSON.parse(request(input).match(/r player_.*?=(.*?)>>>>>>>>>>>>>>" + new_html); +let json=JSON.parse(JSON.parse(new_html)); +json = json.result.items; +let d=[]; +for(const it in json){ + if (json.hasOwnProperty(it)){ + log("qimiao search it>>>>>>>>>>>>>>>" + JSON.stringify(json[it])); + if (json[it].title.includes(KEY)){ + d.push({ + title:json[it].title, + img:'', + content:json[it].content.title, + desc:json[it].insert_time, + url:'push://'+json[it].page_url + }); + } + } +} +setResult(d); +`, +} diff --git a/zyplayer/drpy_dz/drpy_js/voflix.js b/zyplayer/drpy_dz/drpy_js/voflix.js new file mode 100644 index 0000000..c6806a6 --- /dev/null +++ b/zyplayer/drpy_dz/drpy_js/voflix.js @@ -0,0 +1,55 @@ +muban.mxpro.二级.desc = '.module-info-item:eq(4)&&Text;;;.module-info-item-content:eq(1)&&Text;.module-info-item-content:eq(0)&&Text'; +muban.mxpro.二级.tab_text = 'body--small&&Text'; +var rule = { + title: 'voflix', + 模板: 'mxpro', + host: 'https://www.voflix.me', + homeUrl: '/label/new.html', + // url:'/show/fyclass--------fypage---.html', + url: '/show/fyfilter.html', + filterable: 1,//是否启用分类筛选, + filter_url: '{{fl.cateId}}-{{fl.area}}-{{fl.by or "time"}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}', + filter: { + "1":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"1"},{"n":"动作","v":"6"},{"n":"喜剧","v":"7"},{"n":"爱情","v":"8"},{"n":"科幻","v":"9"},{"n":"恐怖","v":"10"},{"n":"剧情","v":"11"},{"n":"战争","v":"12"},{"n":"动画","v":"23"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"恐怖","v":"恐怖"},{"n":"动作","v":"动作"},{"n":"科幻","v":"科幻"},{"n":"剧情","v":"剧情"},{"n":"战争","v":"战争"},{"n":"警匪","v":"警匪"},{"n":"犯罪","v":"犯罪"},{"n":"动画","v":"动画"},{"n":"奇幻","v":"奇幻"},{"n":"武侠","v":"武侠"},{"n":"冒险","v":"冒险"},{"n":"枪战","v":"枪战"},{"n":"恐怖","v":"恐怖"},{"n":"悬疑","v":"悬疑"},{"n":"惊悚","v":"惊悚"},{"n":"经典","v":"经典"},{"n":"青春","v":"青春"},{"n":"文艺","v":"文艺"},{"n":"微电影","v":"微电影"},{"n":"古装","v":"古装"},{"n":"历史","v":"历史"},{"n":"运动","v":"运动"},{"n":"农村","v":"农村"},{"n":"儿童","v":"儿童"},{"n":"网络电影","v":"网络电影"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国香港","v":"中国香港"},{"n":"中国台湾","v":"中国台湾"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"德国","v":"德国"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"国产剧","v":"13"},{"n":"港台剧","v":"14"},{"n":"日韩剧","v":"15"},{"n":"欧美剧","v":"16"},{"n":"纪录片","v":"21"},{"n":"泰国剧","v":"24"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春偶像","v":"青春偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国台湾","v":"中国台湾"},{"n":"中国香港","v":"中国香港"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"},{"n":"少女","v":"少女"},{"n":"社会","v":"社会"},{"n":"原创","v":"原创"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国","v":"中国"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "3":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"选秀","v":"选秀"},{"n":"情感","v":"情感"},{"n":"访谈","v":"访谈"},{"n":"播报","v":"播报"},{"n":"旅游","v":"旅游"},{"n":"音乐","v":"音乐"},{"n":"美食","v":"美食"},{"n":"纪实","v":"纪实"},{"n":"曲艺","v":"曲艺"},{"n":"生活","v":"生活"},{"n":"游戏互动","v":"游戏互动"},{"n":"财经","v":"财经"},{"n":"求职","v":"求职"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "13":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"国产剧","v":"13"},{"n":"港台剧","v":"14"},{"n":"日韩剧","v":"15"},{"n":"欧美剧","v":"16"},{"n":"纪录片","v":"21"},{"n":"泰国剧","v":"24"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春偶像","v":"青春偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"惊悚","v":"惊悚"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2024"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "15":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"国产剧","v":"13"},{"n":"港台剧","v":"14"},{"n":"日韩剧","v":"15"},{"n":"欧美剧","v":"16"},{"n":"纪录片","v":"21"},{"n":"泰国剧","v":"24"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春偶像","v":"青春偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"惊悚","v":"惊悚"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "16":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"国产剧","v":"13"},{"n":"港台剧","v":"14"},{"n":"日韩剧","v":"15"},{"n":"欧美剧","v":"16"},{"n":"纪录片","v":"21"},{"n":"泰国剧","v":"24"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春偶像","v":"青春偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"美国","v":"美国"},{"n":"英国","v":"英国"},{"n":"德国","v":"德国"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] + }, + filter_def: { + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 4:{cateId:'4'}, + 3:{cateId:'3'}, + 13:{cateId:'13'}, + 15:{cateId:'15'}, + 16:{cateId:'16'} + }, + tab_remove:['夸克网盘'], + class_parse: '.navbar-items&&li;a&&Text;a&&href;/(\\d+).html', + lazy: `js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?)扮演"}]}, {"key": "sort", "name": "综合排序", "value": [{"n": "综合排序", "v": ""}, {"n": "最多播放", "v": "2"}, {"n": "最好评", "v": "3"}, {"n": "最新上线", "v": "1"}]}]}, + headers:{ + 'User-Agent':'PC_UA', + 'Cookie':'cna=VvNvGX3e0ywCAavVEXlnA2bg; __ysuid=1626676228345Rl1; __ayft=1652434048647; __arycid=dm-1-00; __arcms=dm-1-00; __ayvstp=85; __arpvid=1667204023100cWWdgM-1667204023112; __ayscnt=10; __aypstp=60; isg=BBwcqxvvk3BxkWQGugbLpUSf7TrOlcC_U7GAj_YdfYfvQbzLHqYGT4Hgp6m5TvgX; tfstk=c3JOByYUH20ilVucLOhh0pCtE40lZfGc-PjLHLLfuX7SWNyAiQvkeMBsIw7PWDC..; l=eBQguS-PjdJFGJT-BOfwourza77OSIRA_uPzaNbMiOCPOb1B5UxfW6yHp4T6C3GVhsGJR3rp2umHBeYBqQd-nxvOF8qmSVDmn', + }, + timeout:5000, + class_name:'电视剧&电影&综艺&动漫&少儿&纪录片&文化&亲子&教育&搞笑&生活&体育&音乐&游戏', + class_url:'电视剧&电影&综艺&动漫&少儿&纪录片&文化&亲子&教育&搞笑&生活&体育&音乐&游戏', + limit:20, + play_parse:true, + // 手动调用解析请求json的url,此lazy不方便 + // lazy:'js:print(input);fetch_params.headers["user-agent"]=MOBILE_UA;let html=request(input);let rurl=html.match(/window\\.open\\(\'(.*?)\',/)[1];rurl=urlDeal(rurl);input={parse:1,url:rurl};', + lazy:'js:input={parse:1,jx:1,url:input};', + // 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + // 一级:'json:data.filterData.listData;title;img;subTitle;videoLink;summary', + 一级:'', + 一级:'js:let d=[];MY_FL.type=MY_CATE;let fl=stringify(MY_FL);fl=encodeUrl(fl);input=input.split("{")[0]+fl;if(MY_PAGE>1){let old_session=getItem("yk_session_"+MY_CATE,"{}");if(MY_PAGE===2){input=input.replace("optionRefresh=1","session="+encodeUrl(old_session))}else{input=input.replace("optionRefresh=1","session="+encodeUrl(old_session))}}let html=fetch(input,fetch_params);try{html=JSON.parse(html);let lists=html.data.filterData.listData;let session=html.data.filterData.session;session=stringify(session);if(session!==getItem("yk_session_"+MY_CATE,"{}")){setItem("yk_session_"+MY_CATE,session)}lists.forEach(function(it){let vid;if(it.videoLink.includes("id_")){vid=it.videoLink.split("id_")[1].split(".html")[0]}else{vid="msearch:"}d.push({title:it.title,img:it.img,desc:it.summary,url:"https://search.youku.com/api/search?appScene=show_episode&showIds="+vid,content:it.subTitle})})}catch(e){log("一级列表解析发生错误:"+e.message)}setResult(d);', + 二级:'', + 二级:'js:var d=[];VOD={};let html=request(input);let json=JSON.parse(html);if(/keyword/.test(input)){input="https://search.youku.com/api/search?appScene=show_episode&showIds="+json.pageComponentList[0].commonData.showId;json=JSON.parse(fetch(MY_URL,fetch_params))}let video_lists=json.serisesList;var name=json.sourceName;if(/优酷/.test(name)&&video_lists.length>0){let ourl="https://v.youku.com/v_show/id_"+video_lists[0].videoId+".html";let _img=video_lists[0].thumbUrl;let html=fetch(ourl,{headers:{Referer:"https://v.youku.com/","User-Agent":PC_UA}});let json=/__INITIAL_DATA__/.test(html)?html.split("window.__INITIAL_DATA__ =")[1].split(";")[0]:"{}";if(json==="{}"){log("触发了优酷人机验证");VOD.vod_remarks=ourl;VOD.vod_pic=_img;VOD.vod_name=video_lists[0].title.replace(/(\\d+)/g,"");VOD.vod_content="触发了优酷人机验证,本次未获取详情,但不影响播放("+ourl+")"}else{try{json=JSON.parse(json);let data=json.data.data;let data_extra=data.data.extra;let img=data_extra.showImgV;let model=json.data.model;let m=model.detail.data.nodes[0].nodes[0].nodes[0].data;let _type=m.showGenre;let _desc=m.updateInfo||m.subtitle;let JJ=m.desc;let _title=m.introTitle;VOD.vod_pic=img;VOD.vod_name=_title;VOD.vod_type=_type;VOD.vod_remarks=_desc;VOD.vod_content=JJ}catch(e){log("海报渲染发生错误:"+e.message);print(json);VOD.vod_remarks=name}}}if(!/优酷/.test(name)){VOD.vod_content="非自家播放源,暂无视频简介及海报";VOD.vod_remarks=name}function adhead(url){return urlencode(url)}play_url=play_url.replace("&play_url=","&type=json&play_url=");video_lists.forEach(function(it){let url="https://v.youku.com/v_show/id_"+it.videoId+".html";if(it.thumbUrl){d.push({desc:it.showVideoStage?it.showVideoStage.replace("期","集"):it.displayName,pic_url:it.thumbUrl,title:it.title,url:play_url+adhead(url)})}else if(name!=="优酷"){d.push({title:it.displayName?it.displayName:it.title,url:play_url+adhead(it.url)})}});VOD.vod_play_from=name;VOD.vod_play_url=d.map(function(it){return it.title+"$"+it.url}).join("#");', + 搜索:'', + 搜索:'js:var d=[];let html=request(input);let json=JSON.parse(html);json.pageComponentList.forEach(function(it){if(it.hasOwnProperty("commonData")){it=it.commonData;d.push({title:it.titleDTO.displayName,img:it.posterDTO.vThumbUrl,desc:it.stripeBottom,content:it.updateNotice+" "+it.feature,url:"https://search.youku.com/api/search?appScene=show_episode&showIds="+it.showId+"&appCaller=h5"})}});setResult(d);', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\345\205\224\345\260\217\350\264\235.js" "b/zyplayer/drpy_dz/drpy_js/\345\205\224\345\260\217\350\264\235.js" new file mode 100644 index 0000000..905d963 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\345\205\224\345\260\217\350\264\235.js" @@ -0,0 +1,26 @@ +var rule = { + title:'兔小贝', + host:'https://www.tuxiaobei.com', + homeUrl:'', + url:'/list/mip-data?typeId=fyclass&page=fypage&callback=', + detailUrl:'/play/fyid', + searchUrl:'/search/index?key=**', + searchable:2, + headers:{ + 'User-Agent':'MOBILE_UA' + }, + timeout:5000, + class_url:'2&3&4&25', + class_name:'儿歌&故事&国学&启蒙', + //class_name:'#page-viewport&&ul&&li;.text&&Text;a&&href;/(.*)', + cate_exclude:'应用', + 推荐:'.pic-list.list-box;.items;.text&&Text;mip-img&&src;.all&&Text;a&&href', + double:true, + limit:5, + play_parse:true, + lazy:'js:fetch_params.headers["user-agent"] = IOS_UA;let html=fetch(input,fetch_params);let src = jsp.pdfh(html,"body&&#videoWrap&&video-src");input=src;', + // 一级:'json:data.items;name;image;collect_num;category_id+video_id', + 一级:'json:data.items;name;image;duration_string;video_id', + 二级:'*', + 搜索:'.list-con&&.items;.text&&Text;mip-img&&src;.time&&Text;a&&href', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\345\206\234\346\260\221\345\275\261\350\247\206.js" "b/zyplayer/drpy_dz/drpy_js/\345\206\234\346\260\221\345\275\261\350\247\206.js" new file mode 100644 index 0000000..0db9112 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\345\206\234\346\260\221\345\275\261\350\247\206.js" @@ -0,0 +1,138 @@ +// 发布页 https://www.nmdvd.com/ +/** + * 环境变量设置方法1: DR-PY 后台管理界面 + * CMS后台管理 > 设置中心 > 环境变量 > {"nmjx_url":"XXXXXXX"} > 保存 + * 环境变量设置方法2: 手动替换 + * 底下代码 "$nmjx_url" 比如 "http://localhost:5708/nm?all=&url=" + */ +var rule={ + title:'农民影视', + tab_rename:{'默认':'线路①','播放':'线路①','滴滴':'线路①'}, + //host:'https://www.nmddd.com', + host:'https://www.nmdvd.com/', + hostJs:`print(HOST);let html=request(HOST,{headers:{"User-Agent":MOBILE_UA}}); + let src = jsp.pdfh(html,"body&&a:eq(1)&&href")||jsp.pdfh(html,"body&&a:eq(1)&&Text"); + if(!src.startsWith('http')){src='https://'+src};print("抓到主页:"+src);HOST=src`, + url:'/vod-list-id-fyfilter.html', + // /vod-list-id-2-pg-1-order--by-time-class-0-year-2023-letter--area--lang-.html + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.cateId}}-pg-fypage-order--by-{{fl.by or "time"}}-class-0-year-{{fl.year}}-letter-{{fl.letter}}-area-{{fl.area}}-lang-', + filter: 'H4sIAAAAAAAAA+2Z304TQRyF32WvuZjZtjNT3sBnMFxUbCJRMQE0IYRELQgtCmqkFSz+iZaWiFICIbIIfZnulr6FW7o756CJMeFKMnf9ndOdnW9osl+WOU96ozfnvLvFWW/UGy/MFG/c9ka8ycL9Yjz39k/C9yvx/Khw72Hx4ouTcRwutvql1iCOB+nNjyRxpdU9rffKS0mTQ1Oth+UmGmWb3vJ+VFpEo9E0X4XHJ2iMbaInL6PHVTR53KfcvLSaFLho+W03KFOFfUelSvR0kypsL2wsXdqEjPc3NiiH51WYKhZwWmG9HT4P/n5aWPlLs7/xLEmTIe362xvRj72kSwZ73Vo7Oj5LrxsO9sjOVsN3p0mXDHbNDzvoksEeQK0R1XeTLhlsd9DGdclgu2o7rHwMtz6ltZ3tXXd2o63GeaPTDTbTe3NkqV60w2A7pRoOaXe+so8dJAN2t867W+cu3kq00omPNl3WznblRqe39q1X3kgXt3P6jW5noXdai6rpHwOzvcviUfi9lN5iOPBPZLZYmKKfyPFh9+TzP/5EfOFnkuziI+U+cp9ziVxyLpALymXe5jLPuUFuONfINecKueI8hzzHeRZ5lnPwSuaV4JXMK8ErmVeCVzKvAK9gXgFewbwCvIJ5BXgF8wrwCuYV4BXMK8ArmFeAVzCvAK9gXgFeAV6Zz6e8Fx8pN8gN5xq55lwhV5znkOc4zyLPcp5BnuHcR+5zLpFLzgVy5jXgNcxrwGuY14DXMK8Br2FeA17DvAa8hnkNeA3zGvAa5jXgNcxrwGuYV4NXM68Gr2ZeDV7NvBq8mnk1eDXzavBq5tXg1cyrwauZV4NXM68Gr2ZeBV7FvAq8inkVeBXzKvAq5lXgVcyrwKuYV4FXMa8Cr2JeBV7FvAq88Ud+fNyaxcMjWn0dBmt/PDyi2lG/dpgsMDMRf9U+vYIgar9JmjsTM9N48u0thMupfUyPP5gqDu46NuL5V7RB0MaP4m7QjI0sRUMV+8zAXA7aaYWzi+1jICe4Cscd7TYHToMq51zMuZhzMedizsWcizkXcy52zVwsQy7m7MbZjbMbZzfObpzdOLtxdvP/2032im+acDphpRX9/EovhsxvFf3/Lu/eGTmrclblrMpZlbMqZ1XOqq6ZVfnKvTRyeuP0xumN0xunN05vnN5cI72Z/wVNTNQhri4AAA==', + filter_def:{ + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 3:{cateId:'3'}, + 4:{cateId:'4'}, + 26:{cateId:'26'} + }, + searchUrl:'/index.php?m=vod-search&wd=**', + searchable:2,//是否启用全局搜索, + headers:{//网站的请求头,完整支持所有的,常带ua和cookies + 'User-Agent': 'MOBILE_UA', + }, + // class_parse: '#topnav li:lt(4);a&&Text;a&&href;.*/(.*?).html', + class_name:'电影&连续剧&综艺&动漫&短剧',//静态分类名称拼接 + class_url:'1&2&3&4&26',//静态分类标识拼接 + play_parse: true, + lazy:` + let nmjx_url="$nmjx_url"; + var _0xodi='jsjiami.com.v7';const _0x37e71f=_0x1285;(function(_0x2e7bfd,_0x3cdd85,_0x4d347f,_0x47e412,_0x4ff866,_0x4aa004,_0x444f49){return _0x2e7bfd=_0x2e7bfd>>0x2,_0x4aa004='hs',_0x444f49='hs',function(_0x26e9c8,_0x2cd563,_0x335a8a,_0x2517a7,_0x5c94b8){const _0x5645ad=_0x1285;_0x2517a7='tfi',_0x4aa004=_0x2517a7+_0x4aa004,_0x5c94b8='up',_0x444f49+=_0x5c94b8,_0x4aa004=_0x335a8a(_0x4aa004),_0x444f49=_0x335a8a(_0x444f49),_0x335a8a=0x0;const _0x2de274=_0x26e9c8();while(!![]&&--_0x47e412+_0x2cd563){try{_0x2517a7=-parseInt(_0x5645ad(0x7d,'K0(&'))/0x1+parseInt(_0x5645ad(0x80,']OZ4'))/0x2+parseInt(_0x5645ad(0x75,'W614'))/0x3*(-parseInt(_0x5645ad(0x87,'31#m'))/0x4)+-parseInt(_0x5645ad(0x7f,'M]PY'))/0x5+-parseInt(_0x5645ad(0x86,'QMlb'))/0x6*(parseInt(_0x5645ad(0x76,'sT&i'))/0x7)+-parseInt(_0x5645ad(0x79,'pCyS'))/0x8*(parseInt(_0x5645ad(0x72,'gYCa'))/0x9)+parseInt(_0x5645ad(0x6a,'uIJ^'))/0xa;}catch(_0x55868d){_0x2517a7=_0x335a8a;}finally{_0x5c94b8=_0x2de274[_0x4aa004]();if(_0x2e7bfd<=_0x47e412)_0x335a8a?_0x4ff866?_0x2517a7=_0x5c94b8:_0x4ff866=_0x5c94b8:_0x335a8a=_0x5c94b8;else{if(_0x335a8a==_0x4ff866['replace'](/[EBDLXbwQxSTMIOgyNrk=]/g,'')){if(_0x2517a7===_0x2cd563){_0x2de274['un'+_0x4aa004](_0x5c94b8);break;}_0x2de274[_0x444f49](_0x5c94b8);}}}}}(_0x4d347f,_0x3cdd85,function(_0x1d4b13,_0x30c936,_0x395634,_0x6bd478,_0x1de8bb,_0x62c716,_0x3c0b80){return _0x30c936='\x73\x70\x6c\x69\x74',_0x1d4b13=arguments[0x0],_0x1d4b13=_0x1d4b13[_0x30c936](''),_0x395634='\x72\x65\x76\x65\x72\x73\x65',_0x1d4b13=_0x1d4b13[_0x395634]('\x76'),_0x6bd478='\x6a\x6f\x69\x6e',(0x163ac7,_0x1d4b13[_0x6bd478](''));});}(0x2fc,0x76eca,_0x36d4,0xc1),_0x36d4)&&(_0xodi=_0x36d4);pdfh=jsp['pdfh'],pdfa=jsp[_0x37e71f(0x74,'*1pz')];let html=request(input),mac_url=html['match'](/mac_url='(.*?)';/)[0x1],mac_from=html['match'](/mac_from='(.*?)'/)[0x1];log(_0x37e71f(0x7e,'q)91')+flag+'\x20mac_from:'+mac_from);let is_sniffer=/^线路/['test'](flag)||/one|zhou/[_0x37e71f(0x85,'31#m')](mac_from),index=parseInt(input[_0x37e71f(0x6d,'3#6c')](/num-(\\d+)/)[0x1])-0x1,playUrls=mac_url[_0x37e71f(0x81,']OZ4')]('#'),playUrl=playUrls[index][_0x37e71f(0x71,'lVcp')]('$')[0x1];log(playUrl);function _0x36d4(){const _0x53364a=(function(){return[_0xodi,'SwBDjrsjEQbiaMmLyi.NOrcxoxkmQX.BIvw7TIgM==','p8o+FcTECmkM','agRcQSoSW7ZcQ3S','i8koW4WuWPz0nSoefWBdO8oX','feWcWRRdQW','CSo1W5BdQSoGxSkBWRBcUCoFaIm','hCo9WQzMj8oaW45sW5pdVK7dTa','vSk4W7K7yq','WPVdUCkJW6BcHhLIW710ECoHW4RcTmo6','W7RcVSk4W4HiWQddIqu','WRSqCtevqKihsSo+dXu','W6ldTmoFW4S'].concat((function(){return['cSooWOCOAmo6wmoz','WQdcPmkzWOLnDSo2W77cR8kZDW','556W5AYA55UO6zkwWO4','srddUWlcVG','wXT3wKjBrmkRWPCj','WQbjW4/cLCk7W53dG8k7W7JdLmooW4O','W7lcLLakACopBx/cHW06oh/dUG','iCo7W57dUmodoCkgrq','W7lcMfegA8odhXJcKrmDgW','o2VdUIrc','W6bll2zigW','fLjrWQ/dLq','WQTLW4nMW5hdIaL2'].concat((function(){return['WQ05WOpdSrS','W5LeWQ1wW67cGmobc8oNWP3dISkY','eSkiv8kaW6H/W4ldMq','mSkbWOJdTa','haHrW6ldNCoEosO','W63cOCoQex5/W5dcNJSKt08','6kAL5P6f5PcL5Psy5z+q5z6vDa','WRldNJNcL8kdW70','WQXKWOvjW6ldKHfGjW','kSkrWPRdPq'];}()));}()));}());_0x36d4=function(){return _0x53364a;};return _0x36d4();};let scripts=html['match'](/script src="(.*?)"/g),js_url='';for(let i=0x0;i>(-0x2*_0x3312b0&0x6)):0x0){_0x46d76a=_0x114a04['indexOf'](_0x46d76a);}for(let _0x4f71be=0x0,_0x146aea=_0x372a53['length'];_0x4f71be<_0x146aea;_0x4f71be++){_0x407de2+='%'+('00'+_0x372a53['charCodeAt'](_0x4f71be)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x407de2);};const _0x34ef19=function(_0x1b0acf,_0x4e4792){let _0x359eae=[],_0x1dc0cd=0x0,_0x1f5a60,_0x32021c='';_0x1b0acf=_0xb7f286(_0x1b0acf);let _0x431d11;for(_0x431d11=0x0;_0x431d11<0x100;_0x431d11++){_0x359eae[_0x431d11]=_0x431d11;}for(_0x431d11=0x0;_0x431d11<0x100;_0x431d11++){_0x1dc0cd=(_0x1dc0cd+_0x359eae[_0x431d11]+_0x4e4792['charCodeAt'](_0x431d11%_0x4e4792['length']))%0x100,_0x1f5a60=_0x359eae[_0x431d11],_0x359eae[_0x431d11]=_0x359eae[_0x1dc0cd],_0x359eae[_0x1dc0cd]=_0x1f5a60;}_0x431d11=0x0,_0x1dc0cd=0x0;for(let _0x509089=0x0;_0x509089<_0x1b0acf['length'];_0x509089++){_0x431d11=(_0x431d11+0x1)%0x100,_0x1dc0cd=(_0x1dc0cd+_0x359eae[_0x431d11])%0x100,_0x1f5a60=_0x359eae[_0x431d11],_0x359eae[_0x431d11]=_0x359eae[_0x1dc0cd],_0x359eae[_0x1dc0cd]=_0x1f5a60,_0x32021c+=String['fromCharCode'](_0x1b0acf['charCodeAt'](_0x509089)^_0x359eae[(_0x359eae[_0x431d11]+_0x359eae[_0x1dc0cd])%0x100]);}return _0x32021c;};_0x1285['odQkxk']=_0x34ef19,_0x10a76b=arguments,_0x1285['hnQdXB']=!![];}const _0x4ef3fe=_0x36d4cd[0x0],_0x38977f=_0x12851b+_0x4ef3fe,_0x36459a=_0x10a76b[_0x38977f];return!_0x36459a?(_0x1285['iXQsil']===undefined&&(_0x1285['iXQsil']=!![]),_0x37fd40=_0x1285['odQkxk'](_0x37fd40,_0x34cb3b),_0x10a76b[_0x38977f]=_0x37fd40):_0x37fd40=_0x36459a,_0x37fd40;},_0x1285(_0x10a76b,_0x5c4c01);}jx_path=urljoin(HOST,jx_path),log(_0x37e71f(0x83,'470G')+jx_path);let jx_js_url=jx_path+mac_from+'.js';log(_0x37e71f(0x7b,'Zkut')+js_url),html=request(jx_js_url);let jx_php_url=html['match'](/src="(.*?)'/)[0x1];if(is_sniffer){html=request(nmjx_url+jx_php_url);let urls=JSON[_0x37e71f(0x89,'Q@uc')](html)['data'];log(urls),playUrl=urls[0x0]+playUrl;}else playUrl=jx_php_url+playUrl;log(_0x37e71f(0x77,'be5Q')+playUrl),html=req(playUrl,{'headers':{'User-Agent':MOBILE_UA}})['content'];let realUrl;is_sniffer?realUrl=html['match'](/video src="(.*?)"/)[0x1]:realUrl=html['match'](/url='(.*?)'/)[0x1];log(_0x37e71f(0x88,'6730')+realUrl);realUrl&&(input={'parse':0x0,'url':realUrl});var version_ = 'jsjiami.com.v7'; + `, + lazy2 : ` + // let location = JSON.parse(request('https://www.wzget.cn/02w9z',{withHeaders:true,redirect:0})).location; + let location = JSON.parse(request('https://www.wzget.cn/02w9z',{withHeaders:true,redirect:null})).location; + //let location = request('https://www.wzget.cn/02w9z',{withHeaders:true,redirect:0}); + log(location);`, + lazy_old:` + pdfh = jsp.pdfh; + pdfa = jsp.pdfa; + // log(input); + let html=request(input); + // log(html); + let mac_url = html.match(/mac_url='(.*?)';/)[1]; + let mac_from = html.match(/mac_from='(.*?)'/)[1]; + log(mac_from); + let index = parseInt(input.match(/num-(\\d+)/)[1])-1; + let playUrls = mac_url.split('#'); + let playUrl = playUrls[index].split('$')[1]; + // log('index:'+index); + // log(mac_url); + log(playUrl); + let jx_js_url = 'https://m.nmddd.com/player/'+mac_from+'.js'; + html = request(jx_js_url); + // log(html); + let jx_php_url = html.match(/src="(.*?)'/)[1]; + // log(jx_php_url); + if(mac_from=='one'){ + // html = request('https://api.cnmcom.com/webcloud/nmm.php'); + html = request(jx_php_url); + //log(html); + let v7js = pdfa(html,'body&&script').find((it)=>{ + return pdfh(it,'body&&Html').includes('jsjiami.com'); + }); + // v7js = pdfh(v7js,'script&&Html').split('*/')[1]; + v7js = pdfh(v7js,'script&&Text') || pdfh(v7js,'script&&Html'); + v7js = v7js.replace(/debugger/g,'console.log("debugger")'); + log(v7js); + // function playlist(obj){log(obj)}; + var window={location:{href:""},onload:function(){}};function URL(href){return{searchParams:{get:function(){return""}}}}var elements={WANG:{src:""}};var document={getElementById:function(id){return elements[id]}}; + function setInterval(){} + eval(v7js+'\\nrule.playlist=playlist;'); + log(typeof(rule.playlist)); + let urls = []; + let lines = pdfa(html, "body&&li").map(x => { + let textContent = pdfh(x, "body&&Text"); + log(textContent); + rule.playlist({ + textContent: textContent + }); + urls.push(elements.WANG.src) + }); + log(urls); + playUrl = urls[0]+playUrl; + }else{ + playUrl = jx_php_url+playUrl; + } + log(playUrl); + html = request(playUrl); + // log(html); + let realUrl; + if(mac_from=='one'){ + realUrl = html.match(/video src="(.*?)"/)[1]; + }else{ + realUrl = html.match(/url='(.*?)'/)[1]; + } + // log(realUrl); + if(realUrl){ + input = {parse:0,url:realUrl}; + } + `, + + limit:6, + double: true, // 推荐内容是否双层定位 + 推荐:'.globalPicList;.resize_list;*;*;*;*', + 一级:'.globalPicList li;.sTit&&Text;img:eq(-1)&&src;.sBottom--em&&Text;a&&href', + 二级:{ + "title":".title&&Text;.type-title&&Text", + "img":".page-hd&&img&&src", + "desc":".desc_item:eq(3)&&Text;.desc_item:eq(4)--span&&Text;;.desc_item:eq(1)--span&&Text;.desc_item:eq(2)--span&&Text", + "content":".detail-con p&&Text", + "tabs":".hd", + "lists":".numList:eq(#id) li" + }, + 搜索:'.ulPicTxt.clearfix li;*;img&&data-src;.sDes:eq(1)&&Text;*', + + // //是否启用辅助嗅探: 1,0 + // sniffer:1, + // // 辅助嗅探规则js写法 + // isVideo:`js: + // log(input); + // if(/video\\/tos/.test(input)){ + // input = true + // }else if(/\\.m3u8/.test(input)){ + // input = true + // }else{ + // input = false + // } + // `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\345\206\234\346\260\221\345\275\261\350\247\2062.js" "b/zyplayer/drpy_dz/drpy_js/\345\206\234\346\260\221\345\275\261\350\247\2062.js" new file mode 100644 index 0000000..6bb68e2 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\345\206\234\346\260\221\345\275\261\350\247\2062.js" @@ -0,0 +1,61 @@ +// 发布页 https://www.nmdvd.com/ +// https://www.jsjiami.com/ +var rule={ + title:'农民影视2', + tab_rename:{'默认':'线路①','播放':'线路①','滴滴':'线路①'}, + //host:'https://www.nmddd.com', + host:'https://www.nmdvd.com/', + hostJs:`print(HOST);let html=request(HOST,{headers:{"User-Agent":MOBILE_UA}}); + let src = jsp.pdfh(html,"body&&a:eq(1)&&href")||jsp.pdfh(html,"body&&a:eq(1)&&Text"); + if(!src.startsWith('http')){src='https://'+src};print("抓到主页:"+src);HOST=src`, + url:'/vod-list-id-fyfilter.html', + // /vod-list-id-2-pg-1-order--by-time-class-0-year-2023-letter--area--lang-.html + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.cateId}}-pg-fypage-order--by-{{fl.by or "time"}}-class-0-year-{{fl.year}}-letter-{{fl.letter}}-area-{{fl.area}}-lang-', + filter: 'H4sIAAAAAAAAA+2Z304TQRyF32WvuZjZtjNT3sBnMFxUbCJRMQE0IYRELQgtCmqkFSz+iZaWiFICIbIIfZnulr6FW7o756CJMeFKMnf9ndOdnW9osl+WOU96ozfnvLvFWW/UGy/MFG/c9ka8ycL9Yjz39k/C9yvx/Khw72Hx4ouTcRwutvql1iCOB+nNjyRxpdU9rffKS0mTQ1Oth+UmGmWb3vJ+VFpEo9E0X4XHJ2iMbaInL6PHVTR53KfcvLSaFLho+W03KFOFfUelSvR0kypsL2wsXdqEjPc3NiiH51WYKhZwWmG9HT4P/n5aWPlLs7/xLEmTIe362xvRj72kSwZ73Vo7Oj5LrxsO9sjOVsN3p0mXDHbNDzvoksEeQK0R1XeTLhlsd9DGdclgu2o7rHwMtz6ltZ3tXXd2o63GeaPTDTbTe3NkqV60w2A7pRoOaXe+so8dJAN2t867W+cu3kq00omPNl3WznblRqe39q1X3kgXt3P6jW5noXdai6rpHwOzvcviUfi9lN5iOPBPZLZYmKKfyPFh9+TzP/5EfOFnkuziI+U+cp9ziVxyLpALymXe5jLPuUFuONfINecKueI8hzzHeRZ5lnPwSuaV4JXMK8ErmVeCVzKvAK9gXgFewbwCvIJ5BXgF8wrwCuYV4BXMK8ArmFeAVzCvAK9gXgFeAV6Zz6e8Fx8pN8gN5xq55lwhV5znkOc4zyLPcp5BnuHcR+5zLpFLzgVy5jXgNcxrwGuY14DXMK8Br2FeA17DvAa8hnkNeA3zGvAa5jXgNcxrwGuYV4NXM68Gr2ZeDV7NvBq8mnk1eDXzavBq5tXg1cyrwauZV4NXM68Gr2ZeBV7FvAq8inkVeBXzKvAq5lXgVcyrwKuYV4FXMa8Cr2JeBV7FvAq88Ud+fNyaxcMjWn0dBmt/PDyi2lG/dpgsMDMRf9U+vYIgar9JmjsTM9N48u0thMupfUyPP5gqDu46NuL5V7RB0MaP4m7QjI0sRUMV+8zAXA7aaYWzi+1jICe4Cscd7TYHToMq51zMuZhzMedizsWcizkXcy52zVwsQy7m7MbZjbMbZzfObpzdOLtxdvP/2032im+acDphpRX9/EovhsxvFf3/Lu/eGTmrclblrMpZlbMqZ1XOqq6ZVfnKvTRyeuP0xumN0xunN05vnN5cI72Z/wVNTNQhri4AAA==', + filter_def:{ + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 3:{cateId:'3'}, + 4:{cateId:'4'}, + 26:{cateId:'26'} + }, + searchUrl:'/index.php?m=vod-search&wd=**', + searchable:2,//是否启用全局搜索, + headers:{//网站的请求头,完整支持所有的,常带ua和cookies + 'User-Agent': 'MOBILE_UA', + }, + // class_parse: '#topnav li:lt(4);a&&Text;a&&href;.*/(.*?).html', + class_name:'电影&连续剧&综艺&动漫&短剧',//静态分类名称拼接 + class_url:'1&2&3&4&26',//静态分类标识拼接 + play_parse: true, + lazy:` + var _0xodY='jsjiami.com.v7';const _0x3a7939=_0x1b9e;(function(_0x50d14f,_0x363bc3,_0xd60da8,_0x34010f,_0x5d155a,_0x2263d2,_0x40e9ef){return _0x50d14f=_0x50d14f>>0x4,_0x2263d2='hs',_0x40e9ef='hs',function(_0xfe8ab2,_0x4926ff,_0xacbc26,_0x81c935,_0x39ef92){const _0x241219=_0x1b9e;_0x81c935='tfi',_0x2263d2=_0x81c935+_0x2263d2,_0x39ef92='up',_0x40e9ef+=_0x39ef92,_0x2263d2=_0xacbc26(_0x2263d2),_0x40e9ef=_0xacbc26(_0x40e9ef),_0xacbc26=0x0;const _0x4cddeb=_0xfe8ab2();while(!![]&&--_0x34010f+_0x4926ff){try{_0x81c935=-parseInt(_0x241219(0x1fc,'hMdy'))/0x1*(-parseInt(_0x241219(0x1e8,'zfP6'))/0x2)+parseInt(_0x241219(0x1f4,'M9a1'))/0x3+parseInt(_0x241219(0x1e5,'5Qm)'))/0x4*(parseInt(_0x241219(0x1e7,'Fxfe'))/0x5)+-parseInt(_0x241219(0x205,'s4]9'))/0x6*(parseInt(_0x241219(0x1f2,'M9a1'))/0x7)+-parseInt(_0x241219(0x1ef,'5Qm)'))/0x8+-parseInt(_0x241219(0x207,'ECOd'))/0x9*(-parseInt(_0x241219(0x1fa,'UU)s'))/0xa)+parseInt(_0x241219(0x1f7,'bTs%'))/0xb;}catch(_0x588a5e){_0x81c935=_0xacbc26;}finally{_0x39ef92=_0x4cddeb[_0x2263d2]();if(_0x50d14f<=_0x34010f)_0xacbc26?_0x5d155a?_0x81c935=_0x39ef92:_0x5d155a=_0x39ef92:_0xacbc26=_0x39ef92;else{if(_0xacbc26==_0x5d155a['replace'](/[xtRMbOeynNrgJFQXwK=]/g,'')){if(_0x81c935===_0x4926ff){_0x4cddeb['un'+_0x2263d2](_0x39ef92);break;}_0x4cddeb[_0x40e9ef](_0x39ef92);}}}}}(_0xd60da8,_0x363bc3,function(_0x87df3f,_0x31fc78,_0x2fb012,_0x11d407,_0x52aa2e,_0x1bcd9e,_0x1c6455){return _0x31fc78='\x73\x70\x6c\x69\x74',_0x87df3f=arguments[0x0],_0x87df3f=_0x87df3f[_0x31fc78](''),_0x2fb012='\x72\x65\x76\x65\x72\x73\x65',_0x87df3f=_0x87df3f[_0x2fb012]('\x76'),_0x11d407='\x6a\x6f\x69\x6e',(0x163ac6,_0x87df3f[_0x11d407](''));});}(0xc90,0xb2591,_0x30a0,0xcb),_0x30a0)&&(_0xodY=\`\x7ef\`);pdfh=jsp[_0x3a7939(0x209,'M9a1')],pdfa=jsp[_0x3a7939(0x1eb,'1Z5k')];let html=request(input),mac_url=html[_0x3a7939(0x1ee,'hMdy')](/mac_url='(.*?)';/)[0x1],mac_from=html[_0x3a7939(0x1e9,'M9a1')](/mac_from='(.*?)'/)[0x1];log(_0x3a7939(0x1e4,'zfP6')+flag+_0x3a7939(0x1f3,'cACk')+mac_from);let is_sniffer=/^线路/['test'](flag)||/one|zhou/['test'](mac_from),index=parseInt(input[_0x3a7939(0x1e9,'M9a1')](/num-(\\d+)/)[0x1])-0x1,playUrls=mac_url['split']('#'),playUrl=playUrls[index][_0x3a7939(0x203,'ttts')]('$')[0x1];function _0x30a0(){const _0x13b14a=(function(){return[_0xodY,'QjMXstrjKgiryabxymMywiNO.cnoFRmbg.bbvJ7e==','W6m2ECkwomobcmkvcCk4ymkkWQS','W7ZdTSoRkSokWPbVC8okguSaWOq','eSk6scVdVwKjWP3dN8o1WOy4','eCkYjM7cQYGRWQO','qHtcNCkXv8o5WQJcKCo7jmoZAW','cCo8W7m7dXZcTSodrSoS','amoiW6b9W7m','W5rmWRawW6VcVCoWW4K2sq','W5BdKSkGWPhcUrBdVbZdNXC','556b5A6555MR6zggWPi','E8kvlbnzW4upW5C','W4vRW4ZcMX48WOS','h8oqW47dVwC'].concat((function(){return['WO0emCoJgmo6WRm/','c3pcTCoBdmkBW7xdICkyefhdKq','bLNcNSkOWQO','WQvgfXhdVCohW4bnWQRcI8ktW6KK','WPTnWRHbW7uc','imo3WONdMq','W71iW7hdJmonFMO','eLddNCoX','ctaNW4L/WQVdICki','W4pdOd3dTXK','W73cUSoigSksCSoFe0fRAfq','fMOc','W6WYW6ZdNvOEW6hcMW','WPZcUg7dVK4bc8kmW5m','pCoYWPVdKSk+'].concat((function(){return['sSo6W7RdOx5r','WQ/cS0vW','6ksU5P2s5PgY5PsJ5z+n5z+LBq','A2ZdR8o0sa','vSkLWRnUfa','W77cSSocgSkwDmkHuwfWENuhW4W','W67cPNBdT8olW4bSW7v5zf7cQmk4yq','WR/dImorWQBcUmk4W7KhcmkPW7JdJG','z8oHWRJdTmkZWPddRq','qdRcRCkOW4f5W69mhCof','zCkHW5/cGSoGW7pdR8kMCCkuWRL8','WRHGk8onFmkvxCkj','smo2bg3cUwvOW4ddS8oQWRSaDKj7wSolWORdMCkRreuk'];}()));}()));}());_0x30a0=function(){return _0x13b14a;};return _0x30a0();};function _0x1b9e(_0x486a8a,_0x36edfa){const _0x30a0cc=_0x30a0();return _0x1b9e=function(_0x1b9eab,_0x286407){_0x1b9eab=_0x1b9eab-0x1e1;let _0x2bfbe5=_0x30a0cc[_0x1b9eab];if(_0x1b9e['NiBjgG']===undefined){var _0x5810c9=function(_0x11e993){const _0x1e2fda='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d4d60='',_0x2e6752='';for(let _0x4facf7=0x0,_0x24a279,_0x3d63f6,_0x499bf3=0x0;_0x3d63f6=_0x11e993['charAt'](_0x499bf3++);~_0x3d63f6&&(_0x24a279=_0x4facf7%0x4?_0x24a279*0x40+_0x3d63f6:_0x3d63f6,_0x4facf7++%0x4)?_0x2d4d60+=String['fromCharCode'](0xff&_0x24a279>>(-0x2*_0x4facf7&0x6)):0x0){_0x3d63f6=_0x1e2fda['indexOf'](_0x3d63f6);}for(let _0x1ad841=0x0,_0x1bae51=_0x2d4d60['length'];_0x1ad841<_0x1bae51;_0x1ad841++){_0x2e6752+='%'+('00'+_0x2d4d60['charCodeAt'](_0x1ad841)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e6752);};const _0x367256=function(_0x5f02d6,_0x25d27b){let _0x419fcf=[],_0x232c6b=0x0,_0x147076,_0x2fb679='';_0x5f02d6=_0x5810c9(_0x5f02d6);let _0x29504c;for(_0x29504c=0x0;_0x29504c<0x100;_0x29504c++){_0x419fcf[_0x29504c]=_0x29504c;}for(_0x29504c=0x0;_0x29504c<0x100;_0x29504c++){_0x232c6b=(_0x232c6b+_0x419fcf[_0x29504c]+_0x25d27b['charCodeAt'](_0x29504c%_0x25d27b['length']))%0x100,_0x147076=_0x419fcf[_0x29504c],_0x419fcf[_0x29504c]=_0x419fcf[_0x232c6b],_0x419fcf[_0x232c6b]=_0x147076;}_0x29504c=0x0,_0x232c6b=0x0;for(let _0x4f7f02=0x0;_0x4f7f02<_0x5f02d6['length'];_0x4f7f02++){_0x29504c=(_0x29504c+0x1)%0x100,_0x232c6b=(_0x232c6b+_0x419fcf[_0x29504c])%0x100,_0x147076=_0x419fcf[_0x29504c],_0x419fcf[_0x29504c]=_0x419fcf[_0x232c6b],_0x419fcf[_0x232c6b]=_0x147076,_0x2fb679+=String['fromCharCode'](_0x5f02d6['charCodeAt'](_0x4f7f02)^_0x419fcf[(_0x419fcf[_0x29504c]+_0x419fcf[_0x232c6b])%0x100]);}return _0x2fb679;};_0x1b9e['DkIagt']=_0x367256,_0x486a8a=arguments,_0x1b9e['NiBjgG']=!![];}const _0x16fdc4=_0x30a0cc[0x0],_0x174b48=_0x1b9eab+_0x16fdc4,_0x52b185=_0x486a8a[_0x174b48];return!_0x52b185?(_0x1b9e['ZVqdvL']===undefined&&(_0x1b9e['ZVqdvL']=!![]),_0x2bfbe5=_0x1b9e['DkIagt'](_0x2bfbe5,_0x286407),_0x486a8a[_0x174b48]=_0x2bfbe5):_0x2bfbe5=_0x52b185,_0x2bfbe5;},_0x1b9e(_0x486a8a,_0x36edfa);}log(playUrl);let scripts=html['match'](/script src="(.*?)"/g),js_url='';for(let i=0x0;i " + HOST)', + url: '/fyclassfyfilter', + filterable: 1,//是否启用分类筛选, + filter_url: '{{fl.cateId}}{{fl.class}}{{fl.area}}/page/fypage', + filter: { + "movie_bt": [ + { + "key": "area", + "name": "分类", + "value": [{"v": "", "n": "全部"}, { + "v": "/movie_bt_series/zhanchangtuijian", + "n": "站长推荐" + }, {"v": "/movie_bt_series/dyy", "n": "电影"}, { + "v": "/movie_bt_series/dianshiju", + "n": "电视剧" + }, {"v": "/movie_bt_series/dohua", "n": "动画"}, { + "v": "/movie_bt_series/guochanju", + "n": "国产剧" + }, {"v": "/movie_bt_series/mj", "n": "美剧"}, { + "v": "/movie_bt_series/rj", + "n": "日剧" + }, {"v": "/movie_bt_series/hj", "n": "韩剧"}, { + "v": "/movie_bt_series/hwj", + "n": "海外剧(其他)" + }, {"v": "/movie_bt_series/huayudianying", "n": "华语电影"}, { + "v": "/movie_bt_series/meiguodianying", + "n": "欧美电影" + }, {"v": "/movie_bt_series/ribendianying", "n": "日本电影"}, { + "v": "/movie_bt_series/hanguodianying", + "n": "韩国电影" + }, {"v": "/movie_bt_series/yingguodianying", "n": "英国电影"}, { + "v": "/movie_bt_series/faguodianying", + "n": "法国电影" + }, {"v": "/movie_bt_series/yindudianying", "n": "印度电影"}, { + "v": "/movie_bt_series/eluosidianying", + "n": "俄罗斯电影" + }, { + "v": "/movie_bt_series/jianadadianying", + "n": "加拿大电影" + }, {"v": "/movie_bt_series/huiyuanzhuanqu", "n": "会员专区"}] + }, + { + "key": "class", + "name": "类型", + "value": [{"n": "全部", "v": ""}, {"n": "传记", "v": "/movie_bt_tags/chuanji"}, { + "n": "儿童", + "v": "/movie_bt_tags/etet" + }, {"n": "冒险", "v": "/movie_bt_tags/maoxian"}, { + "n": "剧情", + "v": "/movie_bt_tags/juqing" + }, {"n": "动作", "v": "/movie_bt_tags/dozuo"}, {"n": "动漫", "v": "/movie_bt_tags/doman"}, { + "n": "动画", + "v": "/movie_bt_tags/dhh" + }, {"n": "历史", "v": "/movie_bt_tags/lishi"}, { + "n": "古装", + "v": "/movie_bt_tags/guzhuang" + }, {"n": "同性", "v": "/movie_bt_tags/tongxing"}, { + "n": "喜剧", + "v": "/movie_bt_tags/xiju" + }, {"n": "奇幻", "v": "/movie_bt_tags/qihuan"}, { + "n": "家庭", + "v": "/movie_bt_tags/jiating" + }, {"n": "恐怖", "v": "/movie_bt_tags/kubu"}, {"n": "悬疑", "v": "/movie_bt_tags/xuanyi"}, { + "n": "情色", + "v": "/movie_bt_tags/qingse" + }, {"n": "惊悚", "v": "/movie_bt_tags/kingsong"}, { + "n": "战争", + "v": "/movie_bt_tags/zhanzhen" + }, {"n": "歌舞", "v": "/movie_bt_tags/gw"}, {"n": "武侠", "v": "/movie_bt_tags/wuxia"}, { + "n": "灾难", + "v": "/movie_bt_tags/zainan" + }, {"n": "爱情", "v": "/movie_bt_tags/aiqing"}, { + "n": "犯罪", + "v": "/movie_bt_tags/fanzui" + }, {"n": "短片", "v": "/movie_bt_tags/dp"}, {"n": "科幻", "v": "/movie_bt_tags/kh"}, { + "n": "纪录片", + "v": "/movie_bt_tags/jlpp" + }, {"n": "西部", "v": "/movie_bt_tags/xb"}, {"n": "运动", "v": "/movie_bt_tags/yd"}, { + "n": "音乐", + "v": "/movie_bt_tags/yy" + }] + } + ] + }, + searchUrl: '/xsseanmch?q=**&p=fypage', + searchable: 2, + filterable: 0, + headers: { + 'User-Agent': 'PC_UA', + // 'Cookie': 'esc_search_captcha=1' + }, + class_name: '全部&豆瓣电影Top250&高分影视&最新电影&热映中&站长推荐&电影&电视剧&动画&国产剧&日剧&韩剧&美剧&海外剧&俄罗斯电影&加拿大电影&华语电影&印度电影&日本电影&欧美电影&法国电影&英国电影&韩国电影&纪录片', + class_url: 'movie_bt&dbtop250&gaofenyingshi&zuixindianying&reyingzhong&/movie_bt_series/zhanchangtuijian&/movie_bt_series/dyy&/movie_bt_series/dianshiju&/movie_bt_series/dohua&/movie_bt_series/guochanju&/movie_bt_series/rj&/movie_bt_series/hj&/movie_bt_series/mj&/movie_bt_series/hwj&/movie_bt_series/eluosidianying&/movie_bt_series/jianadadianying&/movie_bt_series/huayudianying&/movie_bt_series/yindudianying&/movie_bt_series/ribendianying&/movie_bt_series/meiguodianying&/movie_bt_series/faguodianying&/movie_bt_series/yingguodianying&/movie_bt_series/hanguodianying&movie_bt//movie_bt_tags/jlpp', + play_parse: true, + + // lazy代码:源于海阔香雅情大佬 / 小程序:香情影视 https://pastebin.com/L4tHdvFn + lazy: `js: + pdfh = jsp.pdfh; + var html = request(input); + var ohtml = pdfh(html, '.videoplay&&Html'); + var url = pdfh(ohtml, "body&&iframe&&src"); + if (url) { + var _obj={}; + eval(pdfh(request(url),'body&&script&&Html')+'\\n_obj.player=player;_obj.rand=rand'); + function js_decrypt(str, tokenkey, tokeniv) { + eval(getCryptoJS()); + var key = CryptoJS.enc.Utf8.parse(tokenkey); + var iv = CryptoJS.enc.Utf8.parse(tokeniv); + return CryptoJS.AES.decrypt(str, key, {iv: iv,padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8); + }; + let config = JSON.parse(js_decrypt(_obj.player,'VFBTzdujpR9FWBhe', _obj.rand)); + input = { + jx: 0, + url: config.url, + parse: 0 + }; + }else if (/decrypted/.test(ohtml)) { + var phtml = pdfh(ohtml, "body&&script:not([src])&&Html"); + eval(getCryptoJS()); + var script = phtml.match(/var.*?\\)\\);/g)[0]; + var data = []; + eval(script.replace(/md5/g, 'CryptoJS').replace('eval', 'data = ')); + input = { + jx: 0, + url: data.match(/url:.*?['"](.*?)['"]/)[1], + parse: 0 + } + + + } + `, + 推荐: '.bt_img;ul&&li;*;*;*;*', + double: true, + 一级: '.bt_img&&ul&&li;h3.dytit&&Text;img.lazy&&data-original;.jidi&&Text;a&&href', + 二级: { + "title": "h1&&Text;.moviedteail_list li&&a&&Text", + "img": "div.dyimg img&&src", + "desc": ".moviedteail_list li:eq(3) a&&Text;.moviedteail_list li:eq(2) a&&Text;.moviedteail_list li:eq(1) a&&Text;.moviedteail_list li:eq(7)&&Text;.moviedteail_list li:eq(5)&&Text", + "content": ".yp_context&&Text", + "tabs": ".mi_paly_box span", + "lists": ".paly_list_btn:eq(#id) a" + }, + 搜索: `js: + let cookie = getItem(RULE_CK,''); + // let cookie = ''; + log('储存的cookie:'+cookie); + let hhtml=request(input,{withHeaders:true,headers:{Cookie:cookie}}); + let json = JSON.parse(hhtml); + let html = json.body; + let setCk = Object.keys(json).find(it=>it.toLowerCase()==='set-cookie'); + cookie = setCk ? json[setCk] : cookie; + // 3个set-Cookie + if (Array.isArray(cookie)) { + cookie = cookie.join(';'); + } + cookie = cookie.split(';')[0]; + log('set-cookie:'+cookie); + let code=''; + if(/erphp-search-captcha/.test(html)){ + code = jsp.pdfh(html,'.erphp-search-captcha--button&&Text'); + if(code.includes('=')){ + let a = code.replace('=','').replace(/ /g,''); + code = eval(a); + log('回答验证码:'+a+' 答案:'+code); + } + let key = jsp.pdfh(html,'.erphp-search-captcha&&input&&name'); + let body = key+'='+code; + post(input,{body:body,headers:{Cookie:cookie}}); + setItem(RULE_CK,cookie); + html = getHtml(input); + } + // log(html); + VODS = []; + let lis=pdfa(html,'.search_list&&ul&&li'); + log(lis.length); + lis.forEach(function(it){ + VODS.push({ + vod_id: pd(it,'a&&href',input), + vod_name: pdfh(it,'h3.dytit&&Text'), + vod_pic: pd(it,'img.lazy&&data-original',input), + vod_remarks: pdfh(html,'.jidi&&Text') + }); + + }); + + `, + // 搜索: '.search_list&&ul&&li;*;*;*;*', + // 预处理:'rule_fetch_params.headers.Cookie="68148872828e9f4d64e7a296f6c6b6d7=5429da9a54375db451f7f9e4f16ce0ea;esc_search_captcha=1";let new_host="https://czspp.com";let new_html=request(new_host);if(/正在进行人机识别/.test(new_html)){let new_src=pd(new_html,"script&&src",new_host);log(new_src);let hhtml=request(new_src,{withHeaders:true});let json=JSON.parse(hhtml);let html=json.body;let key=html.match(new RegExp(\'var key="(.*?)"\'))[1];let avalue=html.match(new RegExp(\'value="(.*?)"\'))[1];let c="";for(let i=0;ihttps://vres.a357899.cn', + filter:'H4sIAAAAAAAAA+2Zz08bRxTH/xefOdgGtTi3HlqpUpVLe6hURREHV4qa0kN/qFWEZLANxhBsEDFx7AIpGEyCf0CQY9bY/md2Ztf/RWf95r0ZR+3LtqGRqviC+LzvzOzs7Nt531k/isQid755FPku+VvkTsS76In9jchMZHHh+6TNvyw8/Dk5briowiJbH6XrQVhBZGkGoneTP3378MGvOnz3068+++Lzr0kV66cyndWiBtJKVRVBDYC0fN3tV1EDQM3LXZgxNaAml4syVdKaBtLSebnyDDUAGjPf8vovcEwA0k63xXUPNQAac+XcK23jmAB0D7U1008Daas7o/IZagA0Zu6p66zjmADUb2tVFC6xHwBphWP/iNYagLRmRzgN1ABQc28O/WZbaxpoLo0Td3CIcwEw2qaf2ydtDLRmBw1vfQ3XDMB6tt5uzzzbAEjLDL2XNdQAUPOXN0XV0ZqGpXuBCmksqm2x6Zg0Jg6TxuL4dFRexUXoNkSlr0PYYnRSlt3WRAsdMg+gLa8Hk2NAiJZlsKWCuCwAtJx7NVk9x+UEoGsfnJl+GmhZNi6MpoHGfPXEaBpotoPXRtNA2uO2cE5QAzBjtu0x23Y/t3s9on4a6N6390W2i/cOQNd7feXXhng9AJMuh3JjqB4GZQwyXXWY8fp7skQPh5jmnCmoDiKHb5xhatHaVSj3OtiC2Np2RHtXZPFNMUxPojb0CirVy/gwiOkqg1dwXdehjcgO0T1nO24PtzENdqr7rYZfT5lUJw6V6pW+ao+DA9BNXh4bTYOVaEbTYCWv0TRYyWs0DVaCWv0Awi6CuL5ye33rfUcOswjxaHxOx8b/WvFZE5+143ETj9vxmInH7HjUxKMUj0XH0zwiLRa9r/4kqEH0zQbRoEHUNEhMNoglEtH76o9pMP9mg/mgwbxpICtXcg9fhUD7ODGxsHJrRzgFs7DEkwvr9W5EMYdXMaNXU7KEL0ncDntpfNJmXf1WRuRw350LpnFvRvX6b8yJpjDmhDMZnHHhjARrFrjizZghrrBzhoczJ0FhovvTEMYMceaEMzVBQaPraQhjQNSWZ56RhjBGkDNfo3RfdFdwLgC3bUAoHLllA8LZhH9rPTgLwVkP1l681ShxJoMzJ9PCOS2cH3DhnH1PhTNfl6llefNy4hxnQqFO/9wpkPsywGzebKHkCh5X1JgTqSzue+dU0AFCGQimaHMnZ5UH/vMUagCkVfKyjFVFQxjj4fUK1rEMgPodPhcV2mQAUPtk8YFKK5Dgf8rMYVGtPW53AHRUcy5Fo4g7PwBtd7/vyKe40hpMOd9Qa0jlfAxhLMJfWqDb+mbAlc23l/N3+1rwbmZg+s1g+s1gan1snlqf/7n1mbst6+M5L0T/CaYzAGnVA9dxvFOqwcQ0t2bb9NZAWuZCFI5Mb8OhDBP36Z8xTNznfa/SFUe0OQHQbPMrXqWJUwUwJffvP/1zBo2zBl8mF378YVFrGmie3M8zjGHiDJosP3NvaEcFmP6cMC0j0zLyIZeRj/55GTFh+ymPUqv+H5R6AJTqu1XRxBOLBppVuajON5jqANTvbOh38tgPgK639tjbPcDrAYQpK+yv28zJij3fMudw9tdt7myf7Yhm2rySAbz3zFEpsvQnK+G0IDwhAAA=', + 一级f:`js: + let urls = [ + 'https://keke5.app/show/1-----1-1.html', + 'https://keke5.app/show/2-----1-1.html', + 'https://keke5.app/show/3-----1-1.html', + 'https://keke5.app/show/4-----1-1.html', + 'https://keke5.app/show/6-----1-1.html', + ]; + let filters = {}; + pdfa = jsp.pdfa; + pdfh = jsp.pdfh; + for(let url of urls){ + let fclass = url.match(/show\\/(\\d+)-/)[1]; + console.log(fclass); + let html = request(url); + let tabs = pdfa(html, '.filter-row'); + let data = []; + for (let tab of tabs) { + let title = pdfh(tab, 'strong&&Text').replace(':',''); + let lis = pdfa(tab, 'a'); + let _map = {key: title, name: title}; + let value = []; + for (let li of lis) { + let n = pdfh(li, 'a&&Text').trim(); + let v=n; + if(/全部|地区|类型/.test(n)){ + v = ''; + }else if(/综合/.test(n)){ + v = '1'; + }else{ + v = pdfh(li,'a&&href'); + try { + v = v.match(/-(.*?)1-1\.html/)[1].replace(/-/g,''); + }catch (e) { + v = v.match(/-(.*?)-1\.html/)[1].replace(/-/g,''); + } + v = decodeURIComponent(v); + } + value.push({ + 'n': n, 'v': v + }); + } + _map['value'] = value; + data.push(_map); + } + filters[fclass] = data; + } + VODS = [filters]; + console.log(gzip(JSON.stringify(filters))); + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\345\223\224\345\223\251\345\275\261\350\247\206.js" "b/zyplayer/drpy_dz/drpy_js/\345\223\224\345\223\251\345\275\261\350\247\206.js" new file mode 100644 index 0000000..75c8724 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\345\223\224\345\223\251\345\275\261\350\247\206.js" @@ -0,0 +1,115 @@ +/** + * 影视TV 弹幕支持 + * https://t.me/fongmi_offical/ + * https://github.com/FongMi/Release/tree/main/apk + * Cookie设置 + * Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md + * Cookie设置方法1: DR-PY 后台管理界面 + * CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存 + * Cookie设置方法2: 手动替换Cookie + * 底下代码 headers的 + * "Cookie":"$bili_cookie" + * 手动替换为 + * "Cookie":"将获取的Cookie黏贴在这" + * 客户端长期Cookie设置教程: + * 抓包哔哩手机端搜索access_key,取任意链接里的access_key和appkey在drpy环境变量中增加同名的环境变量即可 + * 此时哔哩.js这个解析可用于此源的解析线路用 + */ + +var rule = { + title:'哔哩影视', + host:'https://api.bilibili.com', + url:'/fyclass-fypage&vmid=$vmid', + detailUrl:'/pgc/view/web/season?season_id=fyid', + filter_url:'fl={{fl}}', + vmid获取教程:'登录后访问https://api.bilibili.com/x/web-interface/nav,搜索mid就是,cookie需要 bili_jct,DedeUserID,SESSDATA参数', + searchUrl:'/x/web-interface/search/type?keyword=**&page=fypage&search_type=', + searchable:1, + filterable:1, + quickSearch:0, + headers:{ + 'User-Agent':'PC_UA', + "Referer": "https://www.bilibili.com", + "Cookie":"$bili_cookie" + }, + timeout:5000, + class_name:'番剧&国创&电影&电视剧&纪录片&综艺&全部&追番&追剧&时间表', + class_url:'1&4&2&5&3&7&全部&追番&追剧&时间表', + filter:{"全部":[{"key":"tid","name":"分类","value":[{"n":"番剧","v":"1"},{"n":"国创","v":"4"},{"n":"电影","v":"2"},{"n":"电视剧","v":"5"},{"n":"记录片","v":"3"},{"n":"综艺","v":"7"}]},{"key":"order","name":"排序","value":[{"n":"播放数量","v":"2"},{"n":"更新时间","v":"0"},{"n":"最高评分","v":"4"},{"n":"弹幕数量","v":"1"},{"n":"追看人数","v":"3"},{"n":"开播时间","v":"5"},{"n":"上映时间","v":"6"}]},{"key":"season_status","name":"付费","value":[{"n":"全部","v":"-1"},{"n":"免费","v":"1"},{"n":"付费","v":"2%2C6"},{"n":"大会员","v":"4%2C6"}]}],"时间表":[{"key":"tid","name":"分类","value":[{"n":"番剧","v":"1"},{"n":"国创","v":"4"}]}]}, + play_parse:true, + // play_json:[{re:'*', json:{jx:1, parse:0,header:JSON.stringify({"user-agent":"PC_UA"})}}], + pagecount:{"1":1,"2":1,"3":1,"4":1,"5":1,"7":1,"时间表":1}, + lazy:'', + limit:5, + 推荐:'', + 推荐:'js:let d=[];function get_result(url){let videos=[];let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let vodList=jo.result?jo.result.list:jo.data.list;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod.new_ep?vod["new_ep"]["index_show"]:vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})})}return videos}function get_rank(tid,pg){return get_result("https://api.bilibili.com/pgc/web/rank/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_rank2(tid,pg){return get_result("https://api.bilibili.com/pgc/season/rank/web/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function home_video(){let videos=get_rank(1).slice(0,5);[4,2,5,3,7].forEach(function(i){videos=videos.concat(get_rank2(i).slice(0,5))});return videos}VODS=home_video();', + 一级:'', + 一级:'js:let d=[];let vmid=input.split("vmid=")[1].split("&")[0];function get_result(url){let videos=[];let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let vodList=jo.result?jo.result.list:jo.data.list;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod.new_ep?vod["new_ep"]["index_show"]:vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})})}return videos}function get_rank(tid,pg){return get_result("https://api.bilibili.com/pgc/web/rank/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_rank2(tid,pg){return get_result("https://api.bilibili.com/pgc/season/rank/web/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_zhui(pg,mode){let url="https://api.bilibili.com/x/space/bangumi/follow/list?type="+mode+"&follow_status=0&pn="+pg+"&ps=10&vmid="+vmid;return get_result(url)}function get_all(tid,pg,order,season_status){let url="https://api.bilibili.com/pgc/season/index/result?order="+order+"&pagesize=20&type=1&season_type="+tid+"&page="+pg+"&season_status="+season_status;return get_result(url)}function get_timeline(tid,pg){let videos=[];let url="https://api.bilibili.com/pgc/web/timeline/v2?season_type="+tid+"&day_before=2&day_after=4";let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let videos1=[];let vodList=jo.result.latest;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod["pub_index"]+" "+vod["follows"].replace("系列","");videos1.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});let videos2=[];for(let i=0;i<7;i++){let vodList=jo["result"]["timeline"][i]["episodes"];vodList.forEach(function(vod){if(vod["published"]+""==="0"){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let date=vod["pub_ts"];let remark=date+" "+vod["pub_index"];videos2.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})}})}videos=videos2.concat(videos1)}return videos}function cate_filter(d,cookie){if(MY_CATE==="1"){return get_rank(MY_CATE,MY_PAGE)}else if(["2","3","4","5","7"].includes(MY_CATE)){return get_rank2(MY_CATE,MY_PAGE)}else if(MY_CATE==="全部"){let tid=MY_FL.tid||"1";let order=MY_FL.order||"2";let season_status=MY_FL.season_status||"-1";return get_all(tid,MY_PAGE,order,season_status)}else if(MY_CATE==="追番"){return get_zhui(MY_PAGE,1)}else if(MY_CATE==="追剧"){return get_zhui(MY_PAGE,2)}else if(MY_CATE==="时间表"){let tid=MY_FL.tid||"1";return get_timeline(tid,MY_PAGE)}else{return[]}}VODS=cate_filter();', + 二级:{ + is_json:true, + title:".result.title;.result.share_sub_title", + img:".result.cover", + desc:".result.new_ep.desc;.result.publish.pub_time;.result.subtitle", + content:".result.evaluate", + tabs:"js:pdfa=jsp.pdfa;TABS=['B站']", + lists:".result.episodes", + list_text:'title', + list_url:'cid', + }, + 二级:'', + 二级:'js:function zh(num){let p="";if(Number(num)>1e8){p=(num/1e8).toFixed(2)+"亿"}else if(Number(num)>1e4){p=(num/1e4).toFixed(2)+"万"}else{p=num}return p}let html=request(input);let jo=JSON.parse(html).result;let id=jo["season_id"];let title=jo["title"];let pic=jo["cover"];let areas=jo["areas"][0]["name"];let typeName=jo["share_sub_title"];let date=jo["publish"]["pub_time"].substr(0,4);let dec=jo["evaluate"];let remark=jo["new_ep"]["desc"];let stat=jo["stat"];let status="弹幕: "+zh(stat["danmakus"])+" 点赞: "+zh(stat["likes"])+" 投币: "+zh(stat["coins"])+" 追番追剧: "+zh(stat["favorites"]);let score=jo.hasOwnProperty("rating")?"评分: "+jo["rating"]["score"]+" "+jo["subtitle"]:"暂无评分"+" "+jo["subtitle"];let vod={vod_id:id,vod_name:title,vod_pic:pic,type_name:typeName,vod_year:date,vod_area:areas,vod_remarks:remark,vod_actor:status,vod_director:score,vod_content:dec};let ja=jo["episodes"];let playurls1=[];let playurls2=[];ja.forEach(function(tmpJo){let eid=tmpJo["id"];let cid=tmpJo["cid"];let link=tmpJo["link"];let part=tmpJo["title"].replace("#","-")+" "+tmpJo["long_title"];playurls1.push(part+"$"+eid+"_"+cid);playurls2.push(part+"$"+link)});let playUrl=playurls1.join("#")+"$$$"+playurls2.join("#");vod["vod_play_from"]="B站$$$bilibili";vod["vod_play_url"]=playUrl;VOD=vod;', + 搜索:'', + 搜索:'js:let url1=input+"media_bangumi";let url2=input+"media_ft";let html=request(url1);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let jo1=JSON.parse(html).data;html=request(url2);let jo2=JSON.parse(html).data;let videos=[];let vodList=[];if(jo1["numResults"]===0){vodList=jo2["result"]}else if(jo2["numResults"]===0){vodList=jo1["result"]}else{vodList=jo1["result"].concat(jo2["result"])}vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=KEY+"➢"+vod["title"].trim().replace(\'\',"").replace("","");let img=vod["cover"].trim();let remark=vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}', + lazy:'', + lazy:`js: + if (/^http/.test(input)) { + input = { + jx: 1, + url: input, + parse: 0, + header: JSON.stringify({ + "user-agent": "Mozilla/5.0" + }) + } + } else { + let ids = input.split("_"); + let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + ids[1]; + let result = {}; + let url = "https://api.bilibili.com/pgc/player/web/playurl?qn=116&ep_id=" + ids[0] + "&cid=" + ids[1]; + let html = request(url); + let jRoot = JSON.parse(html); + if (jRoot["message"] !== "success") { + print("需要大会员权限才能观看"); + input = "" + } else { + let jo = jRoot["result"]; + let ja = jo["durl"]; + let maxSize = -1; + let position = -1; + ja.forEach(function(tmpJo, i) { + if (maxSize < Number(tmpJo["size"])) { + maxSize = Number(tmpJo["size"]); + position = i + } + }); + let url = ""; + if (ja.length > 0) { + if (position === -1) { + position = 0 + } + url = ja[position]["url"] + } + result["parse"] = 0; + result["playUrl"] = ""; + result["url"] = url; + result["header"] = { + Referer: "https://www.bilibili.com", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" + }; + result["contentType"] = "video/x-flv"; + result["danmaku"] = dan; + input = result + } + } + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\345\234\250\347\272\277\344\271\213\345\256\266.js" "b/zyplayer/drpy_dz/drpy_js/\345\234\250\347\272\277\344\271\213\345\256\266.js" new file mode 100644 index 0000000..1a6c780 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\345\234\250\347\272\277\344\271\213\345\256\266.js" @@ -0,0 +1,62 @@ +// 在线之家地址发布页 https://www.zxzj.site + +muban.首图2.二级.desc = '.data:eq(3)&&Text;;;.data:eq(1)&&Text;.data:eq(2)&&Text'; +var rule = { + title:'在线之家', + 模板:'首图2', + host:'https://www.zxzj.site', + hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src=jsp.pdfh(html,"li:eq(0)&&a:eq(2)&&href");print(src);HOST=src', + url:'/vodshow/fyclassfyfilter.html', + filterable:1,//是否启用分类筛选, + filter_url:'-{{fl.area}}-{{fl.by}}-{{fl.class}}-----fypage---{{fl.year}}', + 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":"冒险"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"欧美","v":"欧美"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"}]},{"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":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"}]},{"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":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"剧情","v":"剧情"},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"动作","v":"动作"},{"n":"悬疑","v":"悬疑"},{"n":"恐怖","v":"恐怖"},{"n":"奇幻","v":"奇幻"},{"n":"惊悚","v":"惊悚"},{"n":"犯罪","v":"犯罪"},{"n":"科幻","v":"科幻"},{"n":"音乐","v":"音乐"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "5":[{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "6":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] + }, + tab_exclude:'夸克网盘|迅雷云盘|百度网盘', + // 搜索:muban.首图2.搜索1, + 搜索: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href', + 图片来源:'@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', + + /* + lazy代码:源于海阔香雅情大佬 / 小程序:香情影视 https://pastebin.com/L4tHdvFn + */ + lazy:`js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('https') ? it.vod_pic : it.vod_pic.startsWith('http') ? it.vod_pic.replace('http','https') : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, + 一级:`js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + input = input.replace('video','v1.vod').replace('tid','type').replace('pg=','page='); + jsondata = JSON.parse(request(input)); + videoList = jsondata.data.list; + } else { + input = HOST + '/'+ input.split('/')[4]; + jsondata = JSON.parse(request(input)); + videoList = jsondata.list || jsondata.data; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('https') ? it.vod_pic : it.vod_pic.startsWith('http') ? it.vod_pic.replace('http','https') : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, + + 二级:`js: + if (/v1\\.vod/.test(HOST)) { + input = HOST + '/'+ input.split('/')[3]; + } else { + input = HOST + '/'+ input.split('/')[3].replace('detail','video_detail').replace('vod_id','id'); + } + try { + let html = request(input); + html = JSON.parse(html); + let node = /xgapp/.test(HOST) ? html.data.vod_info : html.data; + VOD = { + vod_id: node.vod_id, + vod_name: node.vod_name, + vod_pic: node.vod_pic, + type_name: node.vod_class, + vod_year: node.vod_year, + vod_area: node.vod_area, + vod_remarks: node.vod_remarks, + vod_actor: node.vod_actor, + vod_director: node.vod_director, + vod_content: node.vod_content.strip() + }; + if (typeof play_url === 'undefined') { + var play_url = '' + } + var name = { + 'bfzym3u8': '暴风', + '1080zyk': '优质', + 'kuaikan': '快看', + 'lzm3u8': '量子', + 'ffm3u8': '非凡', + 'haiwaikan': '海外看', + 'gsm3u8': '光速', + 'zuidam3u8': '最大', + 'bjm3u8': '八戒', + 'snm3u8': '索尼', + 'wolong': '卧龙', + 'xlm3u8': '新浪', + 'yhm3u8': '樱花', + 'tkm3u8': '天空', + 'jsm3u8': '极速', + 'wjm3u8': '无尽', + 'sdm3u8': '闪电', + 'kcm3u8': '快车', + 'jinyingm3u8': '金鹰', + 'fsm3u8': '飞速', + 'tpm3u8': '淘片', + 'lem3u8': '鱼乐', + 'dbm3u8': '百度', + 'tomm3u8': '番茄', + 'ukm3u8': 'U酷', + 'ikm3u8': '爱坤', + 'hnzym3u8': '红牛资源', + 'hnm3u8': '红牛', + '68zy_m3u8': '68', + 'kdm3u8': '酷点', + 'bdxm3u8': '北斗星', + 'qhm3u8': '奇虎', + 'hhm3u8': '豪华', + 'kbm3u8': '快播' + }; + let episodes = /v1\\.vod/.test(HOST)?node.vod_play_list:node.vod_url_with_player; + if (episodes != '') { + let playMap = {}; + let arr = []; + episodes.forEach(ep => { + let from = []; + if (/v1\\.vod/.test(HOST)) { + from = ep.player_info.from||ep.player_info.show||ep.from||ep.show; + } else { + from = ep.code||ep.name; + } + if (!playMap.hasOwnProperty(from)) { + playMap[from] = [] + } + let parse_api = ''; + if (/v1\\.vod/.test(HOST)) { + parse_api = ep.player_info.parse != null ? ep.player_info.parse : ep.player_info.parse2; + // parse_api = /,/.test(parse_api) ? parse_api.split(',')[1] : parse_api; + } else { + parse_api = ep.parse_api; + } + log('parse_api =========> '+parse_api); + if (parse_api != null && !/\\.m3u8|\\.mp4/.test(ep.url)) { + parse_api = parse_api.replaceAll('..','.') ; + ep.url = ep.url.replaceAll('$','$'+parse_api); + } + if (from != null) playMap[from].push(ep.url) + }); + for (var key in playMap) { + if ('bfzym3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 1 + }) + } else if ('1080zyk' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 2 + }) + } else if ('kuaikan' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 3 + }) + } else if ('lzm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 4 + }) + } else if ('ffm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 5 + }) + } else if ('snm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 6 + }) + } else if ('qhm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 7 + }) + } else { + arr.push({ + flag: name[key] ? name[key] : key, + url: playMap[key], + sort: 8 + }) + } + } + arr.sort((a, b) => a.sort - b.sort); + let playFrom = []; + let playList = []; + arr.map(val => { + if (!/undefined/.test(val.flag)) { + playFrom.push(val.flag); + playList.push(val.url); + } + }) + VOD.vod_play_from = playFrom.join('$$$'); + VOD.vod_play_url = playList.join('$$$'); + } else { + VOD.vod_play_from = node.vod_play_from; + VOD.vod_play_url = node.vod_play_url; + } + } catch (e) { + log("获取二级详情页发生错误:" + e.message); + } + `, + 搜索:`js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + input = (HOST + '/'+ input.split('/')[3]).replace('/search','').replace('text=','wd=').replace('pg=','page='); + jsondata = JSON.parse(request(input)); + videoList = jsondata.data.list; + } else { + input = HOST + '/'+ input.split('/')[3] + jsondata = JSON.parse(request(input)); + videoList = jsondata.list || jsondata.data; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('https') ? it.vod_pic : it.vod_pic.startsWith('http') ? it.vod_pic.replace('http','https') : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\345\245\207\347\217\215\345\274\202\345\205\275.js" "b/zyplayer/drpy_dz/drpy_js/\345\245\207\347\217\215\345\274\202\345\205\275.js" new file mode 100644 index 0000000..c67ae3d --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\345\245\207\347\217\215\345\274\202\345\205\275.js" @@ -0,0 +1,39 @@ +var rule = { + title:'奇珍异兽', + host:'https://www.iqiyi.com', + homeUrl:'', + // detailUrl:'https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid=fyid&size=2000&page=1', + detailUrl:'https://pcw-api.iqiyi.com/video/video/videoinfowithuser/fyid?agent_type=1&authcookie=&subkey=fyid&subscribe=1', + searchUrl:'https://search.video.iqiyi.com/o?if=html5&key=**&pageNum=fypage&pos=1&pageSize=24&site=iqiyi', + searchable:2, + multi:1, + filterable:1, + filter:{'1': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': 'three_category_id', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '华语', 'v': 1}, {'n': '香港地区', 'v': 28997}, {'n': '美国', 'v': 2}, {'n': '欧洲', 'v': 3}, {'n': '韩国', 'v': 4}, {'n': '日本', 'v': 308}, {'n': '泰国', 'v': 1115}, {'n': '印度', 'v': 28999}, {'n': '其它', 'v': 5}]}, {'key': '18001', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '喜剧', 'v': 8}, {'n': '爱情', 'v': 6}, {'n': '动作', 'v': 11}, {'n': '枪战', 'v': 131}, {'n': '犯罪', 'v': 291}, {'n': '惊悚', 'v': 128}, {'n': '恐怖', 'v': 10}, {'n': '悬疑', 'v': 289}, {'n': '动画', 'v': 12}, {'n': '家庭', 'v': 27356}, {'n': '奇幻', 'v': 1284}, {'n': '魔幻', 'v': 129}, {'n': '科幻', 'v': 9}, {'n': '战争', 'v': 7}, {'n': '青春', 'v': 130}]}, {'key': '27396', 'name': '规格', 'value': [{'n': '全部', 'v': ''}, {'n': '巨制', 'v': 27397}, {'n': '院线', 'v': 27815}, {'n': '独播', 'v': 30149}, {'n': '网络电影', 'v': 27401}]}], '2': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': 'three_category_id', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': 15}, {'n': '港剧', 'v': 16}, {'n': '韩剧', 'v': 17}, {'n': '美剧', 'v': 18}, {'n': '日剧', 'v': 309}, {'n': '泰剧', 'v': 1114}, {'n': '台湾地区', 'v': 1117}, {'n': '英剧', 'v': 28916}, {'n': '其它', 'v': 19}]}, {'key': '18003', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '自制', 'v': 11992}, {'n': '古装', 'v': 24}, {'n': '言情', 'v': 20}, {'n': '武侠', 'v': 23}, {'n': '偶像', 'v': 30}, {'n': '家庭', 'v': 1654}, {'n': '青春', 'v': 1653}, {'n': '都市', 'v': 24064}, {'n': '喜剧', 'v': 135}, {'n': '战争', 'v': 27916}, {'n': '军旅', 'v': 1655}, {'n': '谍战', 'v': 290}, {'n': '悬疑', 'v': 32}, {'n': '罪案', 'v': 149}, {'n': '穿越', 'v': 148}, {'n': '宫廷', 'v': 139}, {'n': '历史', 'v': 21}, {'n': '神话', 'v': 145}, {'n': '科幻', 'v': 34}, {'n': '年代', 'v': 27}, {'n': '农村', 'v': 29}, {'n': '商战', 'v': 140}, {'n': '剧情', 'v': 24063}, {'n': '奇幻', 'v': 27881}, {'n': '网剧', 'v': 24065}, {'n': '竖短片', 'v': 32839}]}], '3': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': 'three_category_id', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '国内', 'v': 20323}, {'n': '国外', 'v': 20324}]}, {'key': '18004', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '人文', 'v': 70}, {'n': '美食', 'v': 33908}, {'n': '医疗', 'v': 33924}, {'n': '自然', 'v': 33933}, {'n': '萌宠', 'v': 33945}, {'n': '财经', 'v': 33953}, {'n': '罪案', 'v': 33960}, {'n': '竞技', 'v': 33967}, {'n': '灾难', 'v': 33974}, {'n': '军事', 'v': 72}, {'n': '历史', 'v': 74}, {'n': '探险', 'v': 73}, {'n': '社会', 'v': 71}, {'n': '科技', 'v': 28119}, {'n': '旅游', 'v': 310}]}, {'key': '28467', 'name': '出品方', 'value': [{'n': '全部', 'v': ''}, {'n': 'BBC', 'v': 28468}, {'n': '美国历史频道', 'v': 28470}, {'n': '探索频道', 'v': 28471}, {'n': '央视记录', 'v': 28472}, {'n': '北京纪实频道', 'v': 28473}, {'n': '上海纪实频道', 'v': 28474}, {'n': '朗思文化', 'v': 28476}, {'n': 'CNEX', 'v': 28477}, {'n': '五星传奇', 'v': 28478}, {'n': 'IMG', 'v': 28479}, {'n': 'NHK', 'v': 28480}, {'n': '爱奇艺出品', 'v': 31283}, {'n': 'Netflix', 'v': 31286}]}, {'key': '29076', 'name': '片种', 'value': [{'n': '全部', 'v': ''}, {'n': '纪录电影', 'v': 29077}, {'n': '系列纪录片', 'v': 29078}, {'n': '网络纪录片', 'v': 29082}, {'n': '纪实栏目', 'v': 29083}]}, {'key': '31294', 'name': '时长', 'value': [{'n': '全部', 'v': ''}, {'n': '微纪录', 'v': 29079}, {'n': '长纪录', 'v': 29080}, {'n': '短纪录', 'v': 29081}]}], '4': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': 'three_category_id', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': 37}, {'n': '日本', 'v': 38}, {'n': '韩国', 'v': 1106}, {'n': '欧美', 'v': 30218}, {'n': '其它', 'v': 40}]}, {'key': '30219', 'name': '版本', 'value': [{'n': '全部', 'v': ''}, {'n': '动画', 'v': 30220}, {'n': '特摄', 'v': 30223}, {'n': '布袋戏', 'v': 30224}, {'n': '特别篇', 'v': 32782}, {'n': '动态漫画', 'v': 32783}, {'n': '动画电影', 'v': 32784}, {'n': '竖版视频', 'v': 32785}, {'n': '轻动画', 'v': 33482}, {'n': '短剧', 'v': 33483}]}, {'key': '30225', 'name': '风格', 'value': [{'n': '全部', 'v': ''}, {'n': '搞笑', 'v': 30230}, {'n': '热血', 'v': 30232}, {'n': '催泪', 'v': 30233}, {'n': '治愈', 'v': 30234}, {'n': '励志', 'v': 30237}, {'n': '机战', 'v': 30241}, {'n': '恋爱', 'v': 30243}, {'n': '科幻', 'v': 30245}, {'n': '奇幻', 'v': 30247}, {'n': '推理', 'v': 30248}, {'n': '校园', 'v': 30249}, {'n': '日常', 'v': 30252}, {'n': '历史', 'v': 30254}, {'n': '美食', 'v': 30255}, {'n': '职场', 'v': 30256}, {'n': '偶像', 'v': 30258}, {'n': '泡面', 'v': 30265}, {'n': '冒险', 'v': 30267}, {'n': '竞技', 'v': 30268}, {'n': '合家欢', 'v': 30270}, {'n': '武侠', 'v': 32792}, {'n': '玄幻', 'v': 32793}]}, {'key': '32795', 'name': '新类型', 'value': [{'n': '全部', 'v': ''}, {'n': '轻小说改编', 'v': 32796}, {'n': '漫画改编', 'v': 32797}, {'n': '游戏改编', 'v': 32798}, {'n': '原创', 'v': 32799}]}], '6': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': 'three_category_id', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': 151}, {'n': '港台', 'v': 152}, {'n': '韩国', 'v': 33306}, {'n': '欧美', 'v': 154}, {'n': '其它', 'v': 1113}]}, {'key': '18014', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '播报', 'v': 155}, {'n': '访谈', 'v': 156}, {'n': '游戏', 'v': 158}, {'n': '晚会', 'v': 292}, {'n': '曲艺', 'v': 293}, {'n': '脱口秀', 'v': 2118}, {'n': '真人秀', 'v': 2224}, {'n': '竞技', 'v': 30278}, {'n': '爱奇艺出品', 'v': 30279}, {'n': '竞演', 'v': 33860}]}, {'key': '33162', 'name': '题材', 'value': [{'n': '全部', 'v': ''}, {'n': '音乐', 'v': 33163}, {'n': '舞蹈', 'v': 33172}, {'n': '文化', 'v': 33173}, {'n': '美食', 'v': 33182}, {'n': '伦理', 'v': 33184}, {'n': '相亲', 'v': 33193}, {'n': '纪实', 'v': 33195}, {'n': '生活', 'v': 33196}, {'n': '亲子', 'v': 33197}, {'n': '少儿', 'v': 33198}, {'n': '财经', 'v': 33199}, {'n': '健康', 'v': 33200}, {'n': '时尚', 'v': 33203}, {'n': '旅游', 'v': 33205}, {'n': '教育', 'v': 33206}, {'n': '其它', 'v': 33220}, {'n': '爱情', 'v': 33316}, {'n': '搞笑', 'v': 33317}, {'n': '益智', 'v': 33318}, {'n': '职场', 'v': 33319}, {'n': '语言', 'v': 33530}, {'n': '辩论', 'v': 33531}, {'n': '演讲', 'v': 33843}]}], '5': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': 'three_category_id', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': 221}, {'n': '港台', 'v': 220}, {'n': '欧美', 'v': 219}, {'n': '日韩', 'v': 218}, {'n': '拉美', 'v': 217}, {'n': '亚洲地区', 'v': 216}, {'n': '非洲', 'v': 215}]}, {'key': '18009', 'name': '语种', 'value': [{'n': '全部', 'v': ''}, {'n': '普通话', 'v': 91}, {'n': '粤语', 'v': 92}, {'n': '闽南语', 'v': 93}, {'n': '英语', 'v': 94}, {'n': '日语', 'v': 95}, {'n': '韩语', 'v': 96}, {'n': '其它', 'v': 97}]}, {'key': '23554', 'name': '音乐类型', 'value': [{'n': '全部', 'v': ''}, {'n': '单曲MV', 'v': 23556}, {'n': '单曲现场', 'v': 23557}, {'n': '演唱会', 'v': 23558}, {'n': '新闻', 'v': 23559}, {'n': '访谈', 'v': 23560}, {'n': '音乐记录', 'v': 23561}, {'n': '音乐周边', 'v': 23562}, {'n': '音乐节目', 'v': 23563}, {'n': '影视原声', 'v': 23564}, {'n': '音乐短片', 'v': 23565}, {'n': '其他', 'v': 23566}]}], '16': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': '18061', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '喜剧', 'v': 1296}, {'n': '爱情', 'v': 1297}, {'n': '动作', 'v': 1298}, {'n': '奇幻', 'v': 1299}, {'n': '惊悚', 'v': 1300}, {'n': '悬疑', 'v': 1301}, {'n': '青春', 'v': 1302}]}]}, + // url:'https://pcw-api.iqiyi.com/search/recommend/list?channel_id=fyclass&data_type=1&is_purchase=&mode=24&page_id=fypage&ret_num=48&three_category_id=', + url:'https://pcw-api.iqiyi.com/search/recommend/list?channel_id=fyclass&data_type=1&page_id=fypage&ret_num=48', + filter_url:'is_purchase={{fl.is_purchase}}&mode={{fl.mode}}&three_category_id={{fl.three_category_id}}&market_release_date_level={{fl.year}}', + // url:'https://pcw-api.iqiyi.com/search/video/videolists?channel_id=fyclass&pageNum=fypage&pageSize=24&data_type=1&site=iqiyi', + headers:{ + 'User-Agent':'MOBILE_UA' + }, + timeout:5000, + class_name:'电影&电视剧&纪录片&动漫&综艺&音乐&网络电影', + class_url:'1&2&3&4&6&5&16', + limit:20, + // play_parse:true, + // 手动调用解析请求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', + // 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + // 一级:'json:.data.list;.name;.imageUrl;.latestOrder;.albumId', + 推荐:'', + // 推荐:'js:let d=[];fetch_params.headers["user-agent"]=PC_UA;pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;let html=fetch(HOST,fetch_params);let lists=pdfa(html,".qy-mod-li");lists.forEach(function(it){try{let title=pdfh(it,"p.sub&&title");let desc=pdfh(it,".qy-mod-label&&Text");let pic_url=pd(it,"img&&src");d.push({title:title,desc:desc,img:pic_url})}catch(e){}});res=setResult(d);', + 一级:'js:let d=[];if(MY_CATE==="16"){input=input.replace("channel_id=16","channel_id=1").split("three_category_id")[0];input+="three_category_id=27401"}else if(MY_CATE==="5"){input=input.replace("data_type=1","data_type=2")}let html=request(input);let json=JSON.parse(html);if(json.code==="A00003"){fetch_params.headers["user-agent"]=PC_UA;json=JSON.parse(fetch(input,fetch_params))}json.data.list.forEach(function(data){if(data.channelId===1){desc=data.hasOwnProperty("score")?data.score+"分\\t":""}else if(data.channelId===2||data.channelId===4){if(data.latestOrder===data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"集全"}else{if(data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"/"+data.videoCount+"集"}else{desc="更新至 "+data.latestOrder+"集"}}}else if(data.channelId===6){desc=data.period+"期"}else if(data.channelId===5){desc=data.focus}else{if(data.latestOrder){desc="更新至 第"+data.latestOrder+"期"}else if(data.period){desc=data.period}else{desc=data.focus}}url=MY_CATE+"$"+data.albumId;d.push({url:url,title:data.name,desc:desc,pic_url:data.imageUrl.replace(".jpg","_390_520.jpg?caplist=jpg,webp")})});setResult(d);', + // 一级:'js:let d=[];if(MY_CATE==="16"){input=input.replace("channel_id=16","channel_id=1").split("three_category_id")[0];input+="three_category_id=27401"}else if(MY_CATE==="5"){input=input.replace("data_type=1","data_type=2")}let html=fetch(input,fetch_params);let json=JSON.parse(html);if(json.code==="A00003"){fetch_params.headers["user-agent"]=PC_UA;json=JSON.parse(fetch(input,fetch_params))}json.data.list.forEach(function(data){if(data.channelId===1){desc=data.hasOwnProperty("score")?data.score+"分\\t":""}else if(data.channelId===2||data.channelId===4){if(data.latestOrder===data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"集全"}else{if(data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"/"+data.videoCount+"集"}else{desc="更新至 "+data.latestOrder+"集"}}}else if(data.channelId===6){desc=data.period+"期"}else if(data.channelId===5){desc=data.focus}else{if(data.latestOrder){desc="更新至 第"+data.latestOrder+"期"}else if(data.period){desc=data.period}else{desc=data.focus}}url=MY_CATE+"$"+data.albumId;d.push({url:url,title:data.name,desc:desc,pic_url:data.imageUrl.replace(".jpg","_390_520.jpg?caplist=jpg,webp")})});setResult(d);', + // 一级:'json:.data.list;.name;.imageUrl;.playUrl;.latestOrder', + // 二级:{is_json:1,"title":"data.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites;data.playlinksdetail.#idv.quality","lists":"data.playlinksdetail.#idv.default_url"}, + // 二级:{is_json:1,"title":"data.name+data.subtitle;data.latestOrder","img":"data.imageUrl","desc":"data.categories;data.areas","content":"data.description","tabs":"data.name","lists":"data.playlinksdetail.#idv.default_url"}, + 二级:'', + 二级:'js:let d=[];let html=request(input);let json=JSON.parse(html).data;VOD={vod_id:"",vod_url:input,vod_name:"",type_name:"",vod_actor:"",vod_year:"",vod_director:"",vod_area:"",vod_content:"",vod_remarks:"",vod_pic:""};VOD.vod_name=json.name;try{if(json.latestOrder){VOD.vod_remarks="类型: "+(json.categories[0].name||"")+"\\t"+(json.categories[1].name||"")+"\\t"+(json.categories[2].name||"")+"\\t"+"评分:"+(json.score||"")+"\\n更新至:第"+json.latestOrder+"集(期)/共"+json.videoCount+"集(期)"}else{VOD.vod_remarks="类型: "+(json.categories[0].name||"")+"\\t"+(json.categories[1].name||"")+"\\t"+(json.categories[2].name||"")+"\\t"+"评分:"+(json.score||"")+json.period}}catch(e){VOD.vod_remarks=json.subtitle}VOD.vod_area=(json.focus||"")+"\\n资费:"+(json.payMark===1?"VIP":"免费")+"\\n地区:"+(json.areas||"");let vsize="579_772";try{vsize=json.imageSize[12]}catch(e){}VOD.vod_pic=json.imageUrl.replace(".jpg","_"+vsize+".jpg?caplist=jpg,webp");VOD.type_name=json.categories.map(function(it){return it.name}).join(",");if(json.people.main_charactor){let vod_actors=[];json.people.main_charactor.forEach(function(it){vod_actors.push(it.name)});VOD.vod_actor=vod_actors.join(",")}VOD.vod_content=json.description;let playlists=[];if(json.channelId===1||json.channelId===5){playlists=[{playUrl:json.playUrl,imageUrl:json.imageUrl,shortTitle:json.shortTitle,focus:json.focus,period:json.period}]}else{if(json.channelId===6){let qs=json.period.split("-")[0];let listUrl="https://pcw-api.iqiyi.com/album/source/svlistinfo?cid=6&sourceid="+json.albumId+"&timelist="+qs;let playData=JSON.parse(request(listUrl)).data[qs];playData.forEach(function(it){playlists.push({playUrl:it.playUrl,imageUrl:it.imageUrl,shortTitle:it.shortTitle,focus:it.focus,period:it.period})})}else{let listUrl="https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid="+json.albumId+"&size=200&page=1";let data=JSON.parse(request(listUrl)).data;let total=data.total;playlists=data.epsodelist;if(total>200){for(let i=2;i200){for(let i=2;i 窗口预览 > 开启 + * https://t.me/pipixiawerun + * vod_area:'bilidanmu' + * Cookie设置 + * Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md + * Cookie设置方法1: DR-PY 后台管理界面 + * CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存 + * Cookie设置方法2: 手动替换Cookie + * 底下代码 headers的 + * "Cookie":"$bili_cookie" + * 手动替换为 + * "Cookie":"将获取的Cookie黏贴在这" + * 客户端长期Cookie设置教程: + * 抓包哔哩手机端搜索access_key,取任意链接里的access_key和appkey在drpy环境变量中增加同名的环境变量即可 + * 此时哔哩.js这个解析可用于此源的解析线路用 + */ +var rule = { + title:'我的哔哩', + host:'https://api.bilibili.com', + homeUrl:'/x/web-interface/ranking/v2?rid=0&type=origin', + url:'/x/web-interface/search/type?search_type=video&keyword=fyclass&page=fypage', + class_parse:`js: + let html=request('{{host}}/files/json/小学教育.json'); + let json = dealJson(html); + input=json.classes; + homeObj.filter = json.filter; + // log(input); + `, + filterable: 1, + detailUrl:'/x/web-interface/view/detail?aid=fyid', + searchUrl:'/x/web-interface/search/type?search_type=video&keyword=**&page=fypage', + searchable:2, + quickSearch:0, + headers:{ + "User-Agent":"PC_UA", + "Referer": "https://www.bilibili.com", + "Cookie": "buvid3=666" + }, + timeout:5000, + limit:8, + play_parse:true, + double:false, + lazy:`js: + let ids = input.split('_'); + let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + ids[1]; + let result = {}; + let iurl = 'https://api.bilibili.com:443/x/player/playurl?avid=' + ids[0] + '&cid=' + ids[1] + '&qn=116'; + let html = request(iurl); + let jRoot = JSON.parse(html); + let jo = jRoot.data; + let ja = jo.durl; + let maxSize = -1; + let position = -1; + ja.forEach(function(tmpJo, i) { + if (maxSize < Number(tmpJo.size)) { + maxSize = Number(tmpJo.size); + position = i + } + }); + let purl = ''; + if (ja.length > 0) { + if (position === -1) { + position = 0 + } + purl = ja[position].url + } + result.parse = 0; + result.playUrl = ''; + result.url = unescape(purl); + result.header = { + 'Referer': 'https://live.bilibili.com', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' + }; + if (/\\.flv/.test(purl)) { + result.contentType = 'video/x-flv'; + } else { + result.contentType = ''; + } + result.danmaku = dan; + input = result + `, + 推荐:`js: + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + min = Math.floor(duration / 60); + sec = duration % 60; + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + function ConvertNum(num) { + let _ws = Math.pow(10, 1); + let _b = 1e4; + if (num < _b) { + return num.toString(); + } + let _r = ''; + let _strArg = ['', '万', '亿', '万亿']; + let _i = Math.floor(Math.log(num) / Math.log(_b)); + if (_i > 3) { + _i = 3; + } + _r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i]; + return _r; + } + let html = request(input); + let vodList = JSON.parse(html).data.list; + let videos = []; + vodList.forEach(function(vod) { + let aid = vod.aid; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let remark = turnDHM(vod.duration) + ' ▶' + ConvertNum(vod.stat.view) + ' 🆙' + vod.owner.name; + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, + 一级:`js: + if (cateObj.tid.endsWith('_clicklink')) { + cateObj.tid = cateObj.tid.split('_')[0]; + input = HOST + '/x/web-interface/search/type?search_type=video&keyword=' + cateObj.tid + '&page=' + MY_PAGE; + } + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + min = Math.floor(duration / 60); + sec = duration % 60; + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + function ConvertNum(num) { + let _ws = Math.pow(10, 1); + let _b = 1e4; + if (num < _b) { + return num.toString(); + } + let _r = ''; + let _strArg = ['', '万', '亿', '万亿']; + let _i = Math.floor(Math.log(num) / Math.log(_b)); + if (_i > 3) { + _i = 3; + } + _r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i]; + return _r; + } + let data = []; + let vodList = []; + if (MY_CATE === '推荐') { + input = HOST + '/x/web-interface/index/top/rcmd?ps=14&fresh_idx=' + MY_PAGE + '&fresh_idx_1h=' + MY_PAGE; + data = JSON.parse(request(input)).data; + vodList = data.item; + } else if (MY_CATE === '历史记录') { + input = HOST + '/x/v2/history?pn=' + MY_PAGE; + data = JSON.parse(request(input)).data; + vodList = data; + } else { + data = JSON.parse(request(input)).data; + vodList = data.result; + } + let videos = []; + vodList.forEach(function(vod) { + let aid = vod.aid?vod.aid:vod.id; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let play = ''; + let danmaku = ''; + if (MY_CATE === '推荐') { + play = ConvertNum(vod.stat.view); + danmaku = vod.stat.danmaku; + } else if (MY_CATE === '历史记录') { + play = ConvertNum(vod.stat.view); + danmaku = vod.stat.danmaku; + } else { + play = ConvertNum(vod.play); + danmaku = vod.video_review; + } + let remark = turnDHM(vod.duration) + ' ▶' + play + ' 💬' + danmaku; + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, + 二级:`js: + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + let html = request(input); + let jo = JSON.parse(html).data.View; + // 历史记录 + let cookies = rule_fetch_params.headers.Cookie.split(';'); + let bili_jct = ''; + cookies.forEach(cookie => { + if (cookie.includes('bili_jct')) { + bili_jct = cookie.split('=')[1]; + } + }); + if (bili_jct !== '') { + let historyReport = 'https://api.bilibili.com/x/v2/history/report'; + let dataPost = { + aid: jo.aid, + cid: jo.cid, + csrf: bili_jct, + }; + post(historyReport, dataPost, 'form'); + } + + let stat = jo.stat; + let up_info = JSON.parse(html).data.Card; + let relation = up_info.following ? '已关注' : '未关注'; + let aid = jo.aid; + let title = stripHtmlTag(jo.title); + let pic = jo.pic; + let desc = jo.desc; + + let date = new Date(jo.pubdate * 1000); + let yy = date.getFullYear().toString(); + let mm = date.getMonth()+1; + mm = mm < 10 ? ('0' + mm) : mm; + let dd = date.getDate(); + dd = dd < 10 ? ('0' + dd) : dd; + + let up_name = jo.owner.name; + let typeName = jo.tname; + // let remark = jo.duration; + let vod = { + vod_id: aid, + vod_name: title, + vod_pic: pic, + type_name: typeName, + vod_year: yy+mm+dd, + vod_area: 'bilidanmu', + // vod_remarks: remark, + vod_tags: 'mv', + // vod_director: '🆙 ' + up_name + ' 👥 ' + up_info.follower + ' ' + relation, + vod_director: '🆙 ' + '[a=cr:' + JSON.stringify({'id':up_name + '_clicklink','name':up_name}) + '/]' + up_name + '[/a]' + ' 👥 ' + up_info.follower + ' ' + relation, + vod_actor: '▶' + stat.view + ' ' + '💬' + stat.danmaku + ' ' + '👍' + stat.like + ' ' + '💰' + stat.coin + ' ' + '⭐' + stat.favorite, + vod_content: desc + }; + let ja = jo.pages; + let treeMap = {}; + let playurls = []; + ja.forEach(function(tmpJo) { + let cid = tmpJo.cid; + let part = tmpJo.part.replaceAll('#', '﹟').replaceAll('$', '﹩'); + playurls.push( + part + '$' + aid + '_' + cid + ) + }); + treeMap['B站'] = playurls.join('#'); + let relatedData = JSON.parse(html).data.Related; + playurls = []; + relatedData.forEach(function(rd) { + let ccid = rd.cid; + let title = rd.title.replaceAll('#', '﹟').replaceAll('$', '﹩'); + let aaid = rd.aid; + playurls.push( + title + '$' + aaid + '_' + ccid + ) + }); + treeMap['相关推荐'] = playurls.join('#'); + vod.vod_play_from = Object.keys(treeMap).join("$$$"); + vod.vod_play_url = Object.values(treeMap).join("$$$"); + VOD = vod; + `, + 搜索:`js: + let html = request(input); + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + min = Math.floor(duration / 60); + sec = duration % 60; + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + let videos = []; + let vodList = JSON.parse(html).data.result; + vodList.forEach(function(vod) { + let aid = vod.aid; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let remark = turnDHM(vod.duration); + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, +} diff --git "a/zyplayer/drpy_dz/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251\344\274\240\345\217\202.js" "b/zyplayer/drpy_dz/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251\344\274\240\345\217\202.js" new file mode 100644 index 0000000..79fdf5f --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251\344\274\240\345\217\202.js" @@ -0,0 +1,445 @@ +/** + * 已知问题: + * [推荐]页面:'雷电模拟器'播放部份影片会出错,'播放器'改成'ijk' & '解码方式'改成'软解',即可正常播放 + * 影视TV 超連結跳轉支持 + * 影视TV 弹幕支持 + * https://t.me/fongmi_offical/ + * https://github.com/FongMi/Release/tree/main/apk + * 皮皮虾DMBox 弹幕支持 + * 设置 > 窗口预览 > 开启 + * https://t.me/pipixiawerun + * vod_area:'bilidanmu' + * Cookie设置 + * Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md + * Cookie设置方法1: DR-PY 后台管理界面 + * CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存 + * Cookie设置方法2: 手动替换Cookie + * 底下代码 headers的 + * "Cookie":"$bili_cookie" + * 手动替换为 + * "Cookie":"将获取的Cookie黏贴在这" + * 客户端长期Cookie设置教程: + * 抓包哔哩手机端搜索access_key,取任意链接里的access_key和appkey在drpy环境变量中增加同名的环境变量即可 + * 此时哔哩.js这个解析可用于此源的解析线路用 + * 传参 ?type=url¶ms=../json/小学教育.json + */ +var rule = { + title:'我的哔哩-小学教育', + host:'https://api.bilibili.com', + homeUrl:'/x/web-interface/ranking/v2?rid=0&type=origin', + url:'/x/web-interface/search/type?search_type=video&keyword=fyclass&page=fypage', + class_parse:`js: + log('rule.params:'+rule.params); + let html=request(rule.params); + let json = dealJson(html); + input=json.classes; + homeObj.filter = json.filter; + // log(input); + `, + filterable: 1, + detailUrl:'/x/web-interface/view/detail?aid=fyid', + searchUrl:'/x/web-interface/search/type?search_type=video&keyword=**&page=fypage', + searchable:2, + quickSearch:0, + headers:{ + "User-Agent":"PC_UA", + "Referer": "https://www.bilibili.com", + "Cookie": "buvid3=666" + }, + timeout:5000, + limit:8, + play_parse:true, + double:false, + lazy:`js: + let ids = input.split('_'); + let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + ids[1]; + let result = {}; + let iurl = 'https://api.bilibili.com:443/x/player/playurl?avid=' + ids[0] + '&cid=' + ids[1] + '&qn=116'; + let html = request(iurl); + let jRoot = JSON.parse(html); + let jo = jRoot.data; + let ja = jo.durl; + let maxSize = -1; + let position = -1; + ja.forEach(function(tmpJo, i) { + if (maxSize < Number(tmpJo.size)) { + maxSize = Number(tmpJo.size); + position = i + } + }); + let purl = ''; + if (ja.length > 0) { + if (position === -1) { + position = 0 + } + purl = ja[position].url + } + result.parse = 0; + result.playUrl = ''; + result.url = unescape(purl); + result.header = { + 'Referer': 'https://live.bilibili.com', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' + }; + if (/\\.flv/.test(purl)) { + result.contentType = 'video/x-flv'; + } else { + result.contentType = ''; + } + result.danmaku = dan; + input = result + `, + 推荐:`js: + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + min = Math.floor(duration / 60); + sec = duration % 60; + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + function ConvertNum(num) { + let _ws = Math.pow(10, 1); + let _b = 1e4; + if (num < _b) { + return num.toString(); + } + let _r = ''; + let _strArg = ['', '万', '亿', '万亿']; + let _i = Math.floor(Math.log(num) / Math.log(_b)); + if (_i > 3) { + _i = 3; + } + _r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i]; + return _r; + } + let html = request(input); + let vodList = JSON.parse(html).data.list; + let videos = []; + vodList.forEach(function(vod) { + let aid = vod.aid; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let remark = turnDHM(vod.duration) + ' ▶' + ConvertNum(vod.stat.view) + ' 🆙' + vod.owner.name; + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, + 一级:`js: + if (cateObj.tid.endsWith('_clicklink')) { + cateObj.tid = cateObj.tid.split('_')[0]; + input = HOST + '/x/web-interface/search/type?search_type=video&keyword=' + cateObj.tid + '&page=' + MY_PAGE; + } + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + min = Math.floor(duration / 60); + sec = duration % 60; + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + function ConvertNum(num) { + let _ws = Math.pow(10, 1); + let _b = 1e4; + if (num < _b) { + return num.toString(); + } + let _r = ''; + let _strArg = ['', '万', '亿', '万亿']; + let _i = Math.floor(Math.log(num) / Math.log(_b)); + if (_i > 3) { + _i = 3; + } + _r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i]; + return _r; + } + let data = []; + let vodList = []; + if (MY_CATE === '推荐') { + input = HOST + '/x/web-interface/index/top/rcmd?ps=14&fresh_idx=' + MY_PAGE + '&fresh_idx_1h=' + MY_PAGE; + data = JSON.parse(request(input)).data; + vodList = data.item; + } else if (MY_CATE === '历史记录') { + input = HOST + '/x/v2/history?pn=' + MY_PAGE; + data = JSON.parse(request(input)).data; + vodList = data; + } else { + data = JSON.parse(request(input)).data; + vodList = data.result; + } + let videos = []; + vodList.forEach(function(vod) { + let aid = vod.aid?vod.aid:vod.id; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let play = ''; + let danmaku = ''; + if (MY_CATE === '推荐') { + play = ConvertNum(vod.stat.view); + danmaku = vod.stat.danmaku; + } else if (MY_CATE === '历史记录') { + play = ConvertNum(vod.stat.view); + danmaku = vod.stat.danmaku; + } else { + play = ConvertNum(vod.play); + danmaku = vod.video_review; + } + let remark = turnDHM(vod.duration) + ' ▶' + play + ' 💬' + danmaku; + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, + 二级:`js: + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + let html = request(input); + let jo = JSON.parse(html).data.View; + // 历史记录 + let cookies = rule_fetch_params.headers.Cookie.split(';'); + let bili_jct = ''; + cookies.forEach(cookie => { + if (cookie.includes('bili_jct')) { + bili_jct = cookie.split('=')[1]; + } + }); + if (bili_jct !== '') { + let historyReport = 'https://api.bilibili.com/x/v2/history/report'; + let dataPost = { + aid: jo.aid, + cid: jo.cid, + csrf: bili_jct, + }; + post(historyReport, dataPost, 'form'); + } + + let stat = jo.stat; + let up_info = JSON.parse(html).data.Card; + let relation = up_info.following ? '已关注' : '未关注'; + let aid = jo.aid; + let title = stripHtmlTag(jo.title); + let pic = jo.pic; + let desc = jo.desc; + + let date = new Date(jo.pubdate * 1000); + let yy = date.getFullYear().toString(); + let mm = date.getMonth()+1; + mm = mm < 10 ? ('0' + mm) : mm; + let dd = date.getDate(); + dd = dd < 10 ? ('0' + dd) : dd; + + let up_name = jo.owner.name; + let typeName = jo.tname; + // let remark = jo.duration; + let vod = { + vod_id: aid, + vod_name: title, + vod_pic: pic, + type_name: typeName, + vod_year: yy+mm+dd, + vod_area: 'bilidanmu', + // vod_remarks: remark, + vod_tags: 'mv', + // vod_director: '🆙 ' + up_name + ' 👥 ' + up_info.follower + ' ' + relation, + vod_director: '🆙 ' + '[a=cr:' + JSON.stringify({'id':up_name + '_clicklink','name':up_name}) + '/]' + up_name + '[/a]' + ' 👥 ' + up_info.follower + ' ' + relation, + vod_actor: '▶' + stat.view + ' ' + '💬' + stat.danmaku + ' ' + '👍' + stat.like + ' ' + '💰' + stat.coin + ' ' + '⭐' + stat.favorite, + vod_content: desc + }; + let ja = jo.pages; + let treeMap = {}; + let playurls = []; + ja.forEach(function(tmpJo) { + let cid = tmpJo.cid; + let part = tmpJo.part.replaceAll('#', '﹟').replaceAll('$', '﹩'); + playurls.push( + part + '$' + aid + '_' + cid + ) + }); + treeMap['B站'] = playurls.join('#'); + let relatedData = JSON.parse(html).data.Related; + playurls = []; + relatedData.forEach(function(rd) { + let ccid = rd.cid; + let title = rd.title.replaceAll('#', '﹟').replaceAll('$', '﹩'); + let aaid = rd.aid; + playurls.push( + title + '$' + aaid + '_' + ccid + ) + }); + treeMap['相关推荐'] = playurls.join('#'); + vod.vod_play_from = Object.keys(treeMap).join("$$$"); + vod.vod_play_url = Object.values(treeMap).join("$$$"); + VOD = vod; + `, + 搜索:`js: + let html = request(input); + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + min = Math.floor(duration / 60); + sec = duration % 60; + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + let videos = []; + let vodList = JSON.parse(html).data.result; + vodList.forEach(function(vod) { + let aid = vod.aid; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let remark = turnDHM(vod.duration); + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, +} diff --git "a/zyplayer/drpy_dz/drpy_js/\346\232\264\351\243\216\350\265\204\346\272\220.js" "b/zyplayer/drpy_dz/drpy_js/\346\232\264\351\243\216\350\265\204\346\272\220.js" new file mode 100644 index 0000000..94475d3 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\346\232\264\351\243\216\350\265\204\346\272\220.js" @@ -0,0 +1,11 @@ +// https://bfzyapi.com/api.php/provide/vod/?ac=list + +var rule = { + 模板: '采集1', + title: '暴风资源', + host: 'https://bfzyapi.com', + // homeTid: '13', + homeTid: '', + cate_exclude: '电影片|连续剧|综艺片|动漫片|电影解说|体育|演员|新闻资讯', + parse_url: '', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\346\236\201\345\256\242\350\265\204\346\272\220.js" "b/zyplayer/drpy_dz/drpy_js/\346\236\201\345\256\242\350\265\204\346\272\220.js" new file mode 100644 index 0000000..0075c58 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\346\236\201\345\256\242\350\265\204\346\272\220.js" @@ -0,0 +1,11 @@ +// https://www.jkdy.cc/api.php/provide/vod/?ac=list + +var rule = { + 模板: '采集1', + title: '极客资源', + host: 'https://www.jkdy.cc', + // homeTid: '13', + homeTid: '', + cate_exclude: '', + parse_url: 'https://www.jkdy.cc/jx/vid.php?url=', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\346\236\201\351\200\237\350\265\204\346\272\220.js" "b/zyplayer/drpy_dz/drpy_js/\346\236\201\351\200\237\350\265\204\346\272\220.js" new file mode 100644 index 0000000..98cfcf9 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\346\236\201\351\200\237\350\265\204\346\272\220.js" @@ -0,0 +1,8 @@ +var rule = { + 模板: '采集1', + title: '极速资源', + host: 'https://jszyapi.com', + cate_exclude: '电影片|连续剧|综艺片|动漫片|电影解说|演员|新闻资讯|电视剧|电影|综艺|动漫', + // parse_url: 'https://jisjiexi.com/play/?url=' + parse_url: '' +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\346\246\234\344\270\200\347\237\255\345\211\247.js" "b/zyplayer/drpy_dz/drpy_js/\346\246\234\344\270\200\347\237\255\345\211\247.js" new file mode 100644 index 0000000..22f7388 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\346\246\234\344\270\200\347\237\255\345\211\247.js" @@ -0,0 +1,25 @@ +var rule ={ + title: '榜一短剧', + host: 'https://duanjuu.com', + url: '/vodshow/fyclass--------fypage---.html', + searchUrl: '/vodsearch/-------------.html?wd=**&submit=', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + filterable: 0,//是否启用分类筛选, + class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html', + play_parse: true, + lazy: '', + limit: 6, + 推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href', + double: true, // 推荐内容是否双层定位 + 一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href', + 二级: { + "title": "h1&&Text;.tag-link&&Text", + "img": ".module-item-pic&&img&&data-src", + "desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text", + "content": ".vod_content&&Text", + "tabs": ".module-tab-item", + "lists": ".module-player-list:eq(#id)&&.scroll-content&&a" + }, + 搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href', + } \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\347\210\261\347\234\213\346\234\272\345\231\250\344\272\272.js" "b/zyplayer/drpy_dz/drpy_js/\347\210\261\347\234\213\346\234\272\345\231\250\344\272\272.js" new file mode 100644 index 0000000..049ee67 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\347\210\261\347\234\213\346\234\272\345\231\250\344\272\272.js" @@ -0,0 +1,67 @@ +var rule = { + title:'爱看机器人', + host:'https://v.ikanbot.com', + url:'/hot/index-fyclass-fyfilter-p-fypage.html[/hot/index-fyclass-fyfilter.html]', + //https://www.ikanbot.com/search?q=%E6%96%97%E7%BD%97%E5%A4%A7&p=2 + // searchUrl:'/search?q=**&p=fypage', + searchUrl:'/search?q=**&p=fypage[/search?q=**]', + searchable:2, + quickSearch:0, + filterable:1, + filter_url:'{{fl.tag}}', + 图片来源:'@Referer=https://v.ikanbot.com/@User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36', + filter:{ + "movie":[{"key":"tag","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":"豆瓣top250","v":"豆瓣top250"}]}] + ,"tv":[{"key":"tag","name":"标签","value":[{"n":"热门","v":"热门"},{"n":"美剧","v":"美剧"},{"n":"英剧","v":"英剧"},{"n":"韩剧","v":"韩剧"},{"n":"日剧","v":"日剧"},{"n":"国产剧","v":"国产剧"},{"n":"港剧","v":"港剧"},{"n":"日本动画","v":"日本动画"},{"n":"综艺","v":"综艺"},{"n":"纪录片","v":"纪录片"}]}] + }, + filter_def:{ + movie:{tag:'热门'}, + tv:{tag:'国产剧'}, + }, + filter获取方法:` + let value = []; + $('ul').eq(2).find('li').each(function() { + // console.log($(this).text()); + let n = $(this).text().trim(); + value.push({ + 'n': n, 'v': n + }); + }); + // 电影执行: + let data = {'movie': [{'key': 'tag', 'name': '标签', 'value': value}]}; + console.log(JSON.stringify(data)); + + //剧集执行: + let data = {'tv': [{'key': 'tag', 'name': '标签', 'value': value}]}; + console.log(JSON.stringify(data)); + `, + headers:{'User-Agent':'PC_UA',}, + class_name:'电影&剧集', + class_url:'movie&tv', + play_parse:true, + double:true, + tab_remove:['wjm3u8','ikm3u8','sdm3u8','M3U8','jinyingm3u8','fsm3u8','ukm3u8'],//移除某个线路及相关的选集 + tab_order:['bfzym3u8','1080zyk','kuaikan','lzm3u8','ffm3u8','snm3u8','qhm3u8','gsm3u8','zuidam3u8','bjm3u8','wolong','xlm3u8','yhm3u8'],//线路顺序,按里面的顺序优先,没写的依次排后面 + tab_rename:{'bfzym3u8':'暴风','1080zyk':'优质','kuaikan':'快看','lzm3u8':'量子','ffm3u8':'非凡','snm3u8':'索尼','qhm3u8':'奇虎','haiwaikan':'海外看','gsm3u8':'光速','zuidam3u8':'最大','bjm3u8':'八戒','wolong':'卧龙','xlm3u8':'新浪','yhm3u8':'樱花','tkm3u8':'天空','jsm3u8':'极速','wjm3u8':'无尽','sdm3u8':'闪电','kcm3u8':'快车','jinyingm3u8':'金鹰','fsm3u8':'飞速','tpm3u8':'淘片','lem3u8':'鱼乐','dbm3u8':'百度','tomm3u8':'番茄','ukm3u8':'U酷','ikm3u8':'爱坤','hnzym3u8':'红牛资源','hnm3u8':'红牛','68zy_m3u8':'68','kdm3u8':'酷点','bdxm3u8':'北斗星','hhm3u8':'豪华','kbm3u8':'快播'},//线路名替换如:lzm3u8替换为量子资源 + 推荐:'.v-list;div.item;*;*;*;*', //这里可以为空,这样点播不会有内容 + // 一级:'.v-list&&div.item;p&&Text;img&&src;;a&&href', //一级的内容是推荐或者点播时候的一级匹配 + 一级:'.v-list&&div.item;p&&Text;img&&data-src;;a&&href', //一级的内容是推荐或者点播时候的一级匹配 + // 二级:二级, + 二级:'js:eval(unescape(base64Decode("anM6CiAgICAgICAgcGRmaCA9IGpzcC5wZGZoOwogICAgICAgIGZ1bmN0aW9uIGdldFRva2VuKGh0bWwxKSB7CiAgICAgICAgICAgIGxldCBjdXJyZW50SWQgPSBwZGZoKGh0bWwxLCAnI2N1cnJlbnRfaWQmJnZhbHVlJyk7CiAgICAgICAgICAgIGxldCBlVG9rZW4gPSBwZGZoKGh0bWwxLCAnI2VfdG9rZW4mJnZhbHVlJyk7CiAgICAgICAgICAgIGlmICghY3VycmVudElkIHx8ICFlVG9rZW4pIHJldHVybiAnJzsKICAgICAgICAgICAgbGV0IGlkTGVuZ3RoID0gY3VycmVudElkLmxlbmd0aDsKICAgICAgICAgICAgbGV0IHN1YklkID0gY3VycmVudElkLnN1YnN0cmluZyhpZExlbmd0aCAtIDQsIGlkTGVuZ3RoKTsKICAgICAgICAgICAgbGV0IGtleXMgPSBbXTsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJJZC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgbGV0IGN1ckludCA9IHBhcnNlSW50KHN1YklkW2ldKTsKICAgICAgICAgICAgICAgIGxldCBzcGxpdFBvcyA9IGN1ckludCAlIDMgKyAxOwogICAgICAgICAgICAgICAga2V5c1tpXSA9IGVUb2tlbi5zdWJzdHJpbmcoc3BsaXRQb3MsIHNwbGl0UG9zICsgOCk7CiAgICAgICAgICAgICAgICBlVG9rZW4gPSBlVG9rZW4uc3Vic3RyaW5nKHNwbGl0UG9zICsgOCwgZVRva2VuLmxlbmd0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGtleXMuam9pbignJyk7CiAgICAgICAgfQogICAgICAgIHRyeSB7CiAgICAgICAgICAgIFZPRD17fTsKICAgICAgICAgICAgbGV0IGh0bWwxID0gcmVxdWVzdChpbnB1dCk7CiAgICAgICAgICAgIFZPRC52b2RfaWQgPSBwZGZoKGh0bWwxLCAnI2N1cnJlbnRfaWQmJnZhbHVlJyk7CiAgICAgICAgICAgIFZPRC52b2RfbmFtZSA9IHBkZmgoaHRtbDEsICdoMiYmVGV4dCcpOwogICAgICAgICAgICBWT0Qudm9kX3BpYyA9IHBkZmgoaHRtbDEsICcuaXRlbS1yb290JiZpbWcmJmRhdGEtc3JjJyk7CiAgICAgICAgICAgIFZPRC52b2RfYWN0b3IgPSBwZGZoKGh0bWwxLCAnLm1ldGE6ZXEoNCkmJlRleHQnKTsKICAgICAgICAgICAgVk9ELnZvZF9hcmVhID0gcGRmaChodG1sMSwgJy5tZXRhOmVxKDMpJiZUZXh0Jyk7CiAgICAgICAgICAgIFZPRC52b2RfeWVhciA9IHBkZmgoaHRtbDEsICcubWV0YTplcSgyKSYmVGV4dCcpOwogICAgICAgICAgICBWT0Qudm9kX3JlbWFya3MgPSAnJzsKICAgICAgICAgICAgVk9ELnZvZF9kaXJlY3RvciA9ICcnOwogICAgICAgICAgICBWT0Qudm9kX2NvbnRlbnQgPSBwZGZoKGh0bWwxLCAnI2xpbmUtdGlwcyYmVGV4dCcpOwogICAgICAgICAgICAvLyBsb2coVk9EKTsKICAgICAgICAgICAgdmFyIHZfdGtzID0gZ2V0VG9rZW4oaHRtbDEpOwogICAgICAgICAgICBsb2coJ3ZfdGtzID09PT4gJyArIHZfdGtzKTsKICAgICAgICAgICAgaW5wdXQgPSBIT1NUICsgJy9hcGkvZ2V0UmVzTj92aWRlb0lkPScgKyBpbnB1dC5zcGxpdCgnLycpLnBvcCgpICsgJyZtdHlwZT0yJnRva2VuPScrdl90a3M7CiAgICAgICAgICAgIGxldCBodG1sID0gcmVxdWVzdChpbnB1dCwgewogICAgICAgICAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzonTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM18yXzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzEzLjAuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMScsCiAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiBNWV9VUkwsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBwcmludChodG1sKTsKICAgICAgICAgICAgaHRtbCA9IEpTT04ucGFyc2UoaHRtbCk7CiAgICAgICAgICAgIGxldCBlcGlzb2RlcyA9IGh0bWwuZGF0YS5saXN0OwogICAgICAgICAgICBsZXQgcGxheU1hcCA9IHt9OwogICAgICAgICAgICBpZiAodHlwZW9mIHBsYXlfdXJsID09PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICAgICAgdmFyIHBsYXlfdXJsID0gJycKICAgICAgICAgICAgfQogICAgICAgICAgICBsZXQgbWFwID0ge30KICAgICAgICAgICAgbGV0IGFyciA9IFtdCiAgICAgICAgICAgIGxldCBuYW1lID0gewogICAgICAgICAgICAgICAgJ2JmenltM3U4JzogJ+aatOmjjicsCiAgICAgICAgICAgICAgICAnMTA4MHp5ayc6ICfkvJjotKgnLAogICAgICAgICAgICAgICAgJ2t1YWlrYW4nOiAn5b+r55yLJywKICAgICAgICAgICAgICAgICdsem0zdTgnOiAn6YeP5a2QJywKICAgICAgICAgICAgICAgICdmZm0zdTgnOiAn6Z2e5YehJywKICAgICAgICAgICAgICAgICdoYWl3YWlrYW4nOiAn5rW35aSW55yLJywKICAgICAgICAgICAgICAgICdnc20zdTgnOiAn5YWJ6YCfJywKICAgICAgICAgICAgICAgICd6dWlkYW0zdTgnOiAn5pyA5aSnJywKICAgICAgICAgICAgICAgICdiam0zdTgnOiAn5YWr5oiSJywKICAgICAgICAgICAgICAgICdzbm0zdTgnOiAn57Si5bC8JywKICAgICAgICAgICAgICAgICd3b2xvbmcnOiAn5Y2n6b6ZJywKICAgICAgICAgICAgICAgICd4bG0zdTgnOiAn5paw5rWqJywKICAgICAgICAgICAgICAgICd5aG0zdTgnOiAn5qix6IqxJywKICAgICAgICAgICAgICAgICd0a20zdTgnOiAn5aSp56m6JywKICAgICAgICAgICAgICAgICdqc20zdTgnOiAn5p6B6YCfJywKICAgICAgICAgICAgICAgICd3am0zdTgnOiAn5peg5bC9JywKICAgICAgICAgICAgICAgICdzZG0zdTgnOiAn6Zeq55S1JywKICAgICAgICAgICAgICAgICdrY20zdTgnOiAn5b+r6L2mJywKICAgICAgICAgICAgICAgICdqaW55aW5nbTN1OCc6ICfph5HpubAnLAogICAgICAgICAgICAgICAgJ2ZzbTN1OCc6ICfpo57pgJ8nLAogICAgICAgICAgICAgICAgJ3RwbTN1OCc6ICfmt5jniYcnLAogICAgICAgICAgICAgICAgJ2xlbTN1OCc6ICfpsbzkuZAnLAogICAgICAgICAgICAgICAgJ2RibTN1OCc6ICfnmb7luqYnLAogICAgICAgICAgICAgICAgJ3RvbW0zdTgnOiAn55Wq6IyEJywKICAgICAgICAgICAgICAgICd1a20zdTgnOiAnVemFtycsCiAgICAgICAgICAgICAgICAnaWttM3U4JzogJ+eIseWdpCcsCiAgICAgICAgICAgICAgICAnaG56eW0zdTgnOiAn57qi54mb6LWE5rqQJywKICAgICAgICAgICAgICAgICdobm0zdTgnOiAn57qi54mbJywKICAgICAgICAgICAgICAgICc2OHp5X20zdTgnOiAnNjgnLAogICAgICAgICAgICAgICAgJ2tkbTN1OCc6ICfphbfngrknLAogICAgICAgICAgICAgICAgJ2JkeG0zdTgnOiAn5YyX5paX5pifJywKICAgICAgICAgICAgICAgICdxaG0zdTgnOiAn5aWH6JmOJywKICAgICAgICAgICAgICAgICdoaG0zdTgnOiAn6LGq5Y2OJwogICAgICAgICAgICB9OwogICAgICAgICAgICBlcGlzb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKGVwKSB7CiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UoZXBbJ3Jlc0RhdGEnXSk7CiAgICAgICAgICAgICAgICBkYXRhLm1hcCh2YWwgPT4gewogICAgICAgICAgICAgICAgICAgIGlmKCFtYXBbdmFsLmZsYWddKXsKICAgICAgICAgICAgICAgICAgICAgICAgbWFwW3ZhbC5mbGFnXSA9IFt2YWwudXJsLnJlcGxhY2VBbGwoJyMjJywnIycpXQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1hcFt2YWwuZmxhZ10ucHVzaCh2YWwudXJsLnJlcGxhY2VBbGwoJyMjJywnIycpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gbWFwKSB7CiAgICAgICAgICAgICAgICBpZiAoJ2JmenltM3U4JyA9PSBrZXkpIHsKICAgICAgICAgICAgICAgICAgICBhcnIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWc6IG5hbWVba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBtYXBba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgc29ydDogMQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCcxMDgwenlrJyA9PSBrZXkpIHsKICAgICAgICAgICAgICAgICAgICBhcnIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWc6IG5hbWVba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBtYXBba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgc29ydDogMgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCdrdWFpa2FuJyA9PSBrZXkpIHsKICAgICAgICAgICAgICAgICAgICBhcnIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWc6IG5hbWVba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBtYXBba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgc29ydDogMwogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCdsem0zdTgnID09IGtleSkgewogICAgICAgICAgICAgICAgICAgIGFyci5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgZmxhZzogbmFtZVtrZXldLAogICAgICAgICAgICAgICAgICAgICAgICB1cmw6IG1hcFtrZXldLAogICAgICAgICAgICAgICAgICAgICAgICBzb3J0OiA0CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJ2ZmbTN1OCcgPT0ga2V5KSB7CiAgICAgICAgICAgICAgICAgICAgYXJyLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICBmbGFnOiBuYW1lW2tleV0sCiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogbWFwW2tleV0sCiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQ6IDUKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgnc25tM3U4JyA9PSBrZXkpIHsKICAgICAgICAgICAgICAgICAgICBhcnIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWc6IG5hbWVba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBtYXBba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgc29ydDogNgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCdxaG0zdTgnID09IGtleSkgewogICAgICAgICAgICAgICAgICAgIGFyci5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgZmxhZzogbmFtZVtrZXldLAogICAgICAgICAgICAgICAgICAgICAgICB1cmw6IG1hcFtrZXldLAogICAgICAgICAgICAgICAgICAgICAgICBzb3J0OiA3CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgYXJyLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICBmbGFnOiAobmFtZVtrZXldKSA/IG5hbWVba2V5XSA6IGtleSwKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBtYXBba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgc29ydDogOAogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYXJyLnNvcnQoKGEsIGIpID0+IGEuc29ydCAtIGIuc29ydCk7CiAgICAgICAgICAgIGxldCBwbGF5RnJvbSA9IFtdOwogICAgICAgICAgICBsZXQgcGxheUxpc3QgPSBbXTsKICAgICAgICAgICAgYXJyLm1hcCh2YWwgPT4gewogICAgICAgICAgICAgICAgaWYgKCEvdW5kZWZpbmVkLy50ZXN0KHZhbC5mbGFnKSkgewogICAgICAgICAgICAgICAgICAgIHBsYXlGcm9tLnB1c2godmFsLmZsYWcpOwogICAgICAgICAgICAgICAgICAgIHBsYXlMaXN0LnB1c2godmFsLnVybCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIGxldCB2b2RfcGxheV9mcm9tID0gcGxheUZyb20uam9pbignJCQkJyk7CiAgICAgICAgICAgIGxldCB2b2RfcGxheV91cmwgPSBwbGF5TGlzdC5qb2luKCckJCQnKTsKICAgICAgICAgICAgVk9EWyd2b2RfcGxheV9mcm9tJ10gPSB2b2RfcGxheV9mcm9tOwogICAgICAgICAgICBWT0RbJ3ZvZF9wbGF5X3VybCddID0gdm9kX3BsYXlfdXJsOwogICAgICAgICAgICAvLyBsb2coVk9EKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGxvZygn6I635Y+W5LqM57qn6K+m5oOF6aG15Y+R55Sf6ZSZ6K+vOicgKyBlLm1lc3NhZ2UpCiAgICAgICAgfQ==")))', + // 搜索:'#search-result&&.media;h5&&a&&Text;a&&img&&data-src;.label&&Text;a&&href',//第三个是描述,一般显示更新或者完结 + 搜索:'.col-md-8&&.media;h5&&a&&Text;a&&img&&data-src;.label&&Text;a&&href',//第三个是描述,一般显示更新或者完结 + lazy:` + if(/\\.m3u8$/.test(input)){ + input = { + parse:0, + url:getProxyUrl()+'&url='+input, + jx:0 + } + } + `, + proxy_rule: `js: + let url = input.url; + let m3u8 = fixAdM3u8Ai(url); + input = [200,'application/vnd.apple.mpegurl',m3u8] + ` +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\347\216\251\345\201\266\345\223\245\345\223\245.js" "b/zyplayer/drpy_dz/drpy_js/\347\216\251\345\201\266\345\223\245\345\223\245.js" new file mode 100644 index 0000000..877e90d --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\347\216\251\345\201\266\345\223\245\345\223\245.js" @@ -0,0 +1,34 @@ +Object.assign(muban.mxone5.二级,{ + //tabs: '.module-tab-item', + lists: '.module-row-one:eq(#id)&&a.module-row-text', + list_text:'h4&&Text', + list_url:'a&&data-clipboard-text', +}); +var rule = { + title: '玩偶哥哥', + 模板: 'mxone5', + host: 'https://www.wogg.net', + //url: '/index.php/vod/show/fyclass--------fypage---.html', + url: '/index.php/vodshow/fyclass-fyfilter.html', + filter_url: '{{fl.area}}-{{fl.by or "time"}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}', + searchUrl: '/index.php/vod/search/page/fypage/wd/**.html', + filter: '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', + class_parse: '.grid-box&&ul&&li;a&&Text;a&&href;.*/(.*?).html', + cate_exclude: '全部影片', + 一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href', + lazy: ` + if (/(pan.quark.cn|www.aliyundrive.com|www.alipan.com)/.test(input)){ +let type="ali"; +if (input.includes("pan.quark.cn")){ +type="quark"; +} else if (input.includes("www.aliyundrive.com") || input.includes("www.alipan.com")){ +type="ali"; +} +let confirm=""; +//let confirm="&confirm=0"; +input = getProxyUrl().replace('js',type)+'&type=push'+confirm+'&url='+encodeURIComponent(input); +//input={parse:0,url:input} +} + + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\347\231\275\345\253\226\345\275\261\350\247\206.js" "b/zyplayer/drpy_dz/drpy_js/\347\231\275\345\253\226\345\275\261\350\247\206.js" new file mode 100644 index 0000000..a3af7fe --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\347\231\275\345\253\226\345\275\261\350\247\206.js" @@ -0,0 +1,29 @@ +muban.首图2.二级.title = '.stui-content__detail .title--span&&Text;.stui-content__detail p&&a&&Text'; +muban.首图2.二级.content = 'p.col-pd&&Text'; +muban.首图2.二级.tabs = '.stui-pannel_hd h3'; +muban.首图2.二级.lists = '.stui-content__playlist:eq(#id) li'; +muban.首图2.二级.desc = 'p.data:eq(3)&&Text;p.data&&a:eq(-1)&&Text;p.data&&a:eq(-2)&&Text;p.data:eq(1)&&Text;p.data:eq(2)&&Text'; +var rule = { + title: '白嫖影视', + 模板: '首图2', + host: 'https://www.baipiaoys.com:9092', + url:'/show/fyfilter.html', + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.地区}}{{fl.排序}}{{fl.剧情}}{{fl.类型}}{{fl.语言}}{{fl.字母}}/page/fypage{{fl.年代}}', + filter:'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', + filter_def: { + 1: { 类型: '/id/1' }, + 2: { 类型: '/id/2' }, + 3: { 类型: '/id/3' }, + 4: { 类型: '/id/4' }, + 5: { 类型: '/id/5' } + }, + searchUrl:'/search/page/fypage/wd/**.html', + tab_exclude:'影片|评论|榜单', + lazy: `js: + let html=request(input); + let jscode=pdfh(html,'body&&script:eq(2)&&Text'); + let jsurl=jscode.match(/"url":"(.*?)"/)[1]; + input='https://www.baipiao-ys.cc:6062/player/analysis.php?v='+jsurl; + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\347\231\275\345\253\226\350\200\205\350\201\224\347\233\237.js" "b/zyplayer/drpy_dz/drpy_js/\347\231\275\345\253\226\350\200\205\350\201\224\347\233\237.js" new file mode 100644 index 0000000..30837c4 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\347\231\275\345\253\226\350\200\205\350\201\224\347\233\237.js" @@ -0,0 +1,10 @@ +var rule = { + title: '白嫖者联盟', + 模板: '首图', + host: 'https://www.qyzf88.com', + url: '/qyvodshow/fyclass--------fypage---.html', + searchUrl: '/qyvodsearch/**----------fypage---.html', + searchable: 2, + filterable: 0, + class_parse: '.myui-header__menu li:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\347\231\276\345\277\231\346\227\240\346\236\234.js" "b/zyplayer/drpy_dz/drpy_js/\347\231\276\345\277\231\346\227\240\346\236\234.js" new file mode 100644 index 0000000..927fa86 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\347\231\276\345\277\231\346\227\240\346\236\234.js" @@ -0,0 +1,34 @@ +var rule = { + title:'百忙无果', + host:'https://pianku.api.%6d%67%74%76.com', + homeUrl:'', + searchUrl:'https://mobileso.bz.%6d%67%74%76.com/pc/search/v1?q=**&pn=fypage&pc=10', + detailUrl:'https://pcweb.api.mgtv.com/episode/list?page=1&size=50&video_id=fyid', + searchable:2, + quickSearch:0, + filterable:1, + multi:1, + // 分类链接fypage参数支持1个()表达式 + // https://www.mgtv.com/lib/3?lastp=list_index&kind=a1&year=all&chargeInfo=a1&sort=c2 + url:'/rider/list/pcweb/v3?platform=pcweb&channelId=fyclass&pn=fypage&pc=80&hudong=1&_support=10000000&kind=a1&area=a1', + filter_url:'year={{fl.year or "all"}}&sort={{fl.sort or "all"}}&chargeInfo={{fl.chargeInfo or "all"}}', + headers:{ + 'User-Agent':'PC_UA' + }, + timeout:5000, + class_name:'电视剧&电影&综艺&动漫&纪录片&教育&少儿', + class_url:'2&3&1&50&51&115&10', + filter:{'2': [{'key': 'chargeInfo', 'name': '付费类型', 'value': [{'n': '全部', 'v': 'all'}, {'n': '免费', 'v': 'b1'}, {'n': 'vip', 'v': 'b2'}, {'n': 'VIP用券', 'v': 'b3'}, {'n': '付费点播', 'v': 'b4'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '最新', 'v': 'c1'}, {'n': '最热', 'v': 'c2'}, {'n': '知乎高分', 'v': 'c4'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': 'all'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '2013', 'v': '2013'}, {'n': '2012', 'v': '2012'}, {'n': '2011', 'v': '2011'}, {'n': '2010', 'v': '2010'}, {'n': '2009', 'v': '2009'}, {'n': '2008', 'v': '2008'}, {'n': '2007', 'v': '2007'}, {'n': '2006', 'v': '2006'}, {'n': '2005', 'v': '2005'}, {'n': '2004', 'v': '2004'}]}], '3': [{'key': 'chargeInfo', 'name': '付费类型', 'value': [{'n': '全部', 'v': 'all'}, {'n': '免费', 'v': 'b1'}, {'n': 'vip', 'v': 'b2'}, {'n': 'VIP用券', 'v': 'b3'}, {'n': '付费点播', 'v': 'b4'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '最新', 'v': 'c1'}, {'n': '最热', 'v': 'c2'}, {'n': '知乎高分', 'v': 'c4'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': 'all'}, {'n': '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'}]}], '1': [{'key': 'chargeInfo', 'name': '付费类型', 'value': [{'n': '全部', 'v': 'all'}, {'n': '免费', 'v': 'b1'}, {'n': 'vip', 'v': 'b2'}, {'n': 'VIP用券', 'v': 'b3'}, {'n': '付费点播', 'v': 'b4'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '最新', 'v': 'c1'}, {'n': '最热', 'v': 'c2'}, {'n': '知乎高分', 'v': 'c4'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': 'all'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '2013', 'v': '2013'}, {'n': '2012', 'v': '2012'}, {'n': '2011', 'v': '2011'}, {'n': '2010', 'v': '2010'}, {'n': '2009', 'v': '2009'}, {'n': '2008', 'v': '2008'}, {'n': '2007', 'v': '2007'}, {'n': '2006', 'v': '2006'}, {'n': '2005', 'v': '2005'}, {'n': '2004', 'v': '2004'}]}], '50': [{'key': 'chargeInfo', 'name': '付费类型', 'value': [{'n': '全部', 'v': 'all'}, {'n': '免费', 'v': 'b1'}, {'n': 'vip', 'v': 'b2'}, {'n': 'VIP用券', 'v': 'b3'}, {'n': '付费点播', 'v': 'b4'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '最新', 'v': 'c1'}, {'n': '最热', 'v': 'c2'}, {'n': '知乎高分', 'v': 'c4'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': 'all'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '2013', 'v': '2013'}, {'n': '2012', 'v': '2012'}, {'n': '2011', 'v': '2011'}, {'n': '2010', 'v': '2010'}, {'n': '2009', 'v': '2009'}, {'n': '2008', 'v': '2008'}, {'n': '2007', 'v': '2007'}, {'n': '2006', 'v': '2006'}, {'n': '2005', 'v': '2005'}, {'n': '2004', 'v': '2004'}]}], '51': [{'key': 'chargeInfo', 'name': '付费类型', 'value': [{'n': '全部', 'v': 'all'}, {'n': '免费', 'v': 'b1'}, {'n': 'vip', 'v': 'b2'}, {'n': 'VIP用券', 'v': 'b3'}, {'n': '付费点播', 'v': 'b4'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '最新', 'v': 'c1'}, {'n': '最热', 'v': 'c2'}, {'n': '知乎高分', 'v': 'c4'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': 'all'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '2013', 'v': '2013'}, {'n': '2012', 'v': '2012'}, {'n': '2011', 'v': '2011'}, {'n': '2010', 'v': '2010'}, {'n': '2009', 'v': '2009'}, {'n': '2008', 'v': '2008'}, {'n': '2007', 'v': '2007'}, {'n': '2006', 'v': '2006'}, {'n': '2005', 'v': '2005'}, {'n': '2004', 'v': '2004'}]}], '115': [{'key': 'chargeInfo', 'name': '付费类型', 'value': [{'n': '全部', 'v': 'all'}, {'n': '免费', 'v': 'b1'}, {'n': 'vip', 'v': 'b2'}, {'n': 'VIP用券', 'v': 'b3'}, {'n': '付费点播', 'v': 'b4'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '最新', 'v': 'c1'}, {'n': '最热', 'v': 'c2'}, {'n': '知乎高分', 'v': 'c4'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': 'all'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '2013', 'v': '2013'}, {'n': '2012', 'v': '2012'}, {'n': '2011', 'v': '2011'}, {'n': '2010', 'v': '2010'}, {'n': '2009', 'v': '2009'}, {'n': '2008', 'v': '2008'}, {'n': '2007', 'v': '2007'}, {'n': '2006', 'v': '2006'}, {'n': '2005', 'v': '2005'}, {'n': '2004', 'v': '2004'}]}]}, + limit:20, + play_parse:true, + // 手动调用解析请求json的url,此lazy不方便 + // lazy:'js:print(input);fetch_params.headers["user-agent"]=MOBILE_UA;let html=request(input);let rurl=html.match(/window\\.open\\(\'(.*?)\',/)[1];rurl=urlDeal(rurl);input={parse:1,url:rurl};', + // 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + 一级:'json:data.hitDocs;title;img;updateInfo||rightCorner.text;playPartId', + // 一级:'json:data.hitDocs;title;img;updateInfo;playPartId', + 二级:'', + 二级:'js:log(input);', + 二级:'js:fetch_params.headers.Referer="https://www.mgtv.com";fetch_params.headers["User-Agent"]=UA;pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;VOD={};let d=[];let html=request(input);let json=JSON.parse(html);let host="https://www.mgtv.com";let ourl=json.data.list.length>0?json.data.list[0].url:json.data.series[0].url;if(!/^http/.test(ourl)){ourl=host+ourl}fetch_params.headers["User-Agent"]=MOBILE_UA;html=request(ourl);if(html.includes("window.location =")){print("开始获取ourl");ourl=pdfh(html,"meta[http-equiv=refresh]&&content").split("url=")[1];print("获取到ourl:"+ourl);html=request(ourl)}try{let details=pdfh(html,".m-details&&Html").replace(/h1>/,"h6>").replace(/div/g,"br");print(details);let actor="",director="",time="";if(/播出时间/.test(details)){actor=pdfh(html,"p:eq(5)&&Text").substr(0,25);director=pdfh(html,"p:eq(4)&&Text");time=pdfh(html,"p:eq(3)&&Text")}else{actor=pdfh(html,"p:eq(4)&&Text").substr(0,25);director=pdfh(html,"p:eq(3)&&Text");time="已完结"}let _img=pd(html,".video-img&&img&&src");let JJ=pdfh(html,".desc&&Text").split("简介:")[1];let _desc=time;VOD.vod_name=pdfh(html,".vt-txt&&Text");VOD.type_name=pdfh(html,"p:eq(0)&&Text").substr(0,6);VOD.vod_area=pdfh(html,"p:eq(1)&&Text");VOD.vod_actor=actor;VOD.vod_director=director;VOD.vod_remarks=_desc;VOD.vod_pic=_img;VOD.vod_content=JJ}catch(e){log("获取影片信息发生错误:"+e.message)}function getRjpg(imgUrl,xs){xs=xs||3;let picSize=/jpg_/.test(imgUrl)?imgUrl.split("jpg_")[1].split(".")[0]:false;let rjpg=false;if(picSize){let a=parseInt(picSize.split("x")[0])*xs;let b=parseInt(picSize.split("x")[1])*xs;rjpg=a+"x"+b+".jpg"}let img=/jpg_/.test(imgUrl)&&rjpg?imgUrl.replace(imgUrl.split("jpg_")[1],rjpg):imgUrl;return img}if(json.data.total===1&&json.data.list.length===1){let data=json.data.list[0];let url="https://www.mgtv.com"+data.url;d.push({title:data.t4,desc:data.t2,pic_url:getRjpg(data.img),url:url})}else if(json.data.list.length>1){for(let i=1;i<=json.data.total_page;i++){if(i>1){json=JSON.parse(fetch(input.replace("page=1","page="+i),{}))}json.data.list.forEach(function(data){let url="https://www.mgtv.com"+data.url;if(data.isIntact=="1"){d.push({title:data.t4,desc:data.t2,pic_url:getRjpg(data.img),url:url})}})}}else{print(input+"暂无片源")}VOD.vod_play_from="mgtv";VOD.vod_play_url=d.map(function(it){return it.title+"$"+it.url}).join("#");setResult(d);', + 搜索:'', + 搜索:'js:fetch_params.headers.Referer="https://www.mgtv.com";fetch_params.headers["User-Agent"]=UA;let d=[];let html=request(input);let json=JSON.parse(html);json.data.contents.forEach(function(data){if(data.data.sourceList||data.data.yearList){let list=data.data.sourceList?data.data.sourceList:data.data.yearList[0].sourceList;let desc="";list.forEach(function(it){desc+=it.name+"\\t"});if(list[0].source==="imgo"){let img=data.data.pic?data.data.pic:data.data.yearList[0].pic;d.push({title:data.data.title?data.data.title:data.data.yearList[0].title,img:img,content:data.data.story?data.data.story:data.data.yearList[0].story,desc:data.data.playTime,url:list[0].vid})}}});setResult(d);', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\347\264\242\345\260\274\350\265\204\346\272\220.js" "b/zyplayer/drpy_dz/drpy_js/\347\264\242\345\260\274\350\265\204\346\272\220.js" new file mode 100644 index 0000000..1735bac --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\347\264\242\345\260\274\350\265\204\346\272\220.js" @@ -0,0 +1,12 @@ +// https://suoniapi.com/api.php/provide/vod/?ac=list +// https://suoniapi.com/api.php/provide/vod/from/snm3u8/?ac=list + +var rule = { + 模板: '采集1', + title: '索尼资源', + host: 'https://suoniapi.com', + // homeTid: '13', + homeTid: '', + cate_exclude: '电影|电视剧|综艺|动漫|电影解说|体育|演员|新闻资讯|诺克|女频', + parse_url: '', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\347\275\221\351\243\236\347\214\253.js" "b/zyplayer/drpy_dz/drpy_js/\347\275\221\351\243\236\347\214\253.js" new file mode 100644 index 0000000..c4fdbce --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\347\275\221\351\243\236\347\214\253.js" @@ -0,0 +1,84 @@ +var rule = { + title: '网飞猫', + host: 'https://www.ncat1.app', + // url: '/show/fyclass-----2-fypage.html', + url: '/show/fyclass-fyfilter-fypage.html', + filter_url:'{{fl.类型}}-{{fl.地区}}-{{fl.语言}}-{{fl.年份}}-{{fl.排序}}', + searchUrl: '/search?k=**&page=fypage', + searchable: 2, + quickSearch: 0, + filterable: 1, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + class_parse: '#nav-swiper&&.nav-swiper-slide;a&&Text;a&&href;/(\\w+).html', + cate_exclude:'Netflix|今日更新|专题列表|排行榜', + tab_order:['超清', '蓝光', '极速蓝光'], + play_parse: true, + lazy: '', + limit: 20, + 推荐: '.section-box:eq(2)&&.module-box-inner&&.module-item;*;*;*;*', + double: false, + 一级: '.module-box-inner&&.module-item;.v-item-title:eq(-1)&&Text;img&&data-original;.v-item-bottom&&span&&Text;a&&href', + 二级: { + title: '.detail-title&&Text;.detail-tags&&a:eq(-2)&&Text', + img: '.detail-pic&&img&&data-original', + desc: '.detail-info-row-main:eq(-2)&&Text;.detail-tags&&a&&Text;.detail-tags&&a:eq(1)&&Text;.detail-info-row-main:eq(1)&&Text;.detail-info-row-main&&Text', + content: '.detail-desc&&Text', + tabs: '.source-item-label', + lists: '.episode-list:eq(#id) a', + }, + 搜索: '.search-result-list&&a;.title&&Text;*;.search-result-item-header&&Text;a&&href;.desc&&Text', + 图片替换:'https://www.ncat1.app=>https://vres.a357899.cn', + filter:'H4sIAAAAAAAAA+2Zz08bRxTH/xefOdgGtTi3HlqpUpVLe6hURREHV4qa0kN/qFWEZLANxhBsEDFx7AIpGEyCf0CQY9bY/md2Ztf/RWf95r0ZR+3LtqGRqviC+LzvzOzs7Nt531k/isQid755FPku+VvkTsS76In9jchMZHHh+6TNvyw8/Dk5briowiJbH6XrQVhBZGkGoneTP3378MGvOnz3068+++Lzr0kV66cyndWiBtJKVRVBDYC0fN3tV1EDQM3LXZgxNaAml4syVdKaBtLSebnyDDUAGjPf8vovcEwA0k63xXUPNQAac+XcK23jmAB0D7U1008Daas7o/IZagA0Zu6p66zjmADUb2tVFC6xHwBphWP/iNYagLRmRzgN1ABQc28O/WZbaxpoLo0Td3CIcwEw2qaf2ydtDLRmBw1vfQ3XDMB6tt5uzzzbAEjLDL2XNdQAUPOXN0XV0ZqGpXuBCmksqm2x6Zg0Jg6TxuL4dFRexUXoNkSlr0PYYnRSlt3WRAsdMg+gLa8Hk2NAiJZlsKWCuCwAtJx7NVk9x+UEoGsfnJl+GmhZNi6MpoHGfPXEaBpotoPXRtNA2uO2cE5QAzBjtu0x23Y/t3s9on4a6N6390W2i/cOQNd7feXXhng9AJMuh3JjqB4GZQwyXXWY8fp7skQPh5jmnCmoDiKHb5xhatHaVSj3OtiC2Np2RHtXZPFNMUxPojb0CirVy/gwiOkqg1dwXdehjcgO0T1nO24PtzENdqr7rYZfT5lUJw6V6pW+ao+DA9BNXh4bTYOVaEbTYCWv0TRYyWs0DVaCWv0Awi6CuL5ye33rfUcOswjxaHxOx8b/WvFZE5+143ETj9vxmInH7HjUxKMUj0XH0zwiLRa9r/4kqEH0zQbRoEHUNEhMNoglEtH76o9pMP9mg/mgwbxpICtXcg9fhUD7ODGxsHJrRzgFs7DEkwvr9W5EMYdXMaNXU7KEL0ncDntpfNJmXf1WRuRw350LpnFvRvX6b8yJpjDmhDMZnHHhjARrFrjizZghrrBzhoczJ0FhovvTEMYMceaEMzVBQaPraQhjQNSWZ56RhjBGkDNfo3RfdFdwLgC3bUAoHLllA8LZhH9rPTgLwVkP1l681ShxJoMzJ9PCOS2cH3DhnH1PhTNfl6llefNy4hxnQqFO/9wpkPsywGzebKHkCh5X1JgTqSzue+dU0AFCGQimaHMnZ5UH/vMUagCkVfKyjFVFQxjj4fUK1rEMgPodPhcV2mQAUPtk8YFKK5Dgf8rMYVGtPW53AHRUcy5Fo4g7PwBtd7/vyKe40hpMOd9Qa0jlfAxhLMJfWqDb+mbAlc23l/N3+1rwbmZg+s1g+s1gan1snlqf/7n1mbst6+M5L0T/CaYzAGnVA9dxvFOqwcQ0t2bb9NZAWuZCFI5Mb8OhDBP36Z8xTNznfa/SFUe0OQHQbPMrXqWJUwUwJffvP/1zBo2zBl8mF378YVFrGmie3M8zjGHiDJosP3NvaEcFmP6cMC0j0zLyIZeRj/55GTFh+ymPUqv+H5R6AJTqu1XRxBOLBppVuajON5jqANTvbOh38tgPgK639tjbPcDrAYQpK+yv28zJij3fMudw9tdt7myf7Yhm2rySAbz3zFEpsvQnK+G0IDwhAAA=', + 一级f:`js: + let urls = [ + 'https://www.ncat1.app/show/1-----1-1.html', + 'https://www.ncat1.app/show/2-----1-1.html', + 'https://www.ncat1.app/show/3-----1-1.html', + 'https://www.ncat1.app/show/4-----1-1.html', + 'https://www.ncat1.app/show/6-----1-1.html', + ]; + let filters = {}; + pdfa = jsp.pdfa; + pdfh = jsp.pdfh; + for(let url of urls){ + let fclass = url.match(/show\\/(\\d+)-/)[1]; + console.log(fclass); + let html = request(url); + let tabs = pdfa(html, '.filter-row'); + let data = []; + for (let tab of tabs) { + let title = pdfh(tab, 'strong&&Text').replace(':',''); + let lis = pdfa(tab, 'a'); + let _map = {key: title, name: title}; + let value = []; + for (let li of lis) { + let n = pdfh(li, 'a&&Text').trim(); + let v=n; + if(/全部|地区|类型/.test(n)){ + v = ''; + }else if(/综合/.test(n)){ + v = '1'; + }else{ + v = pdfh(li,'a&&href'); + try { + v = v.match(/-(.*?)1-1\.html/)[1].replace(/-/g,''); + }catch (e) { + v = v.match(/-(.*?)-1\.html/)[1].replace(/-/g,''); + } + v = decodeURIComponent(v); + } + value.push({ + 'n': n, 'v': v + }); + } + _map['value'] = value; + data.push(_map); + } + filters[fclass] = data; + } + VODS = [filters]; + console.log(gzip(JSON.stringify(filters))); + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\350\200\220\347\234\213.js" "b/zyplayer/drpy_dz/drpy_js/\350\200\220\347\234\213.js" new file mode 100644 index 0000000..666268e --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\350\200\220\347\234\213.js" @@ -0,0 +1,26 @@ +var rule={ + title: '耐看', + host: 'https://nkvod.com', + url: '/show/fyclass--------fypage---.html', + searchUrl: '/nk/-------------.html?wd=**', + searchable: 2, + quickSearch: 0, + filterable: 0, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + class_parse: '.navbar&&ul&&li;a&&Text;a&&href;/(\\d+).html', + play_parse: false, + lazy: '', + limit: 6, + 推荐: '.module-items;a;a&&title;img&&data-original;.module-item-note&&Text;a&&href', + double: true, + 一级: 'a.module-poster-item.module-item;a&&title;img&&data-original;.module-item-note&&Text;a&&href', + 二级: { + "title": "h1&&Text;.module-info-tag&&Text", + "img": ".lazyload&&data-original", + "desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text", + "content": ".module-info-introduction&&Text", + "tabs": ".hisSwiper&&span", + "lists": ".his-tab-list:eq(#id) a"}, + 搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\350\205\276\344\272\221\351\251\276\351\233\276.js" "b/zyplayer/drpy_dz/drpy_js/\350\205\276\344\272\221\351\251\276\351\233\276.js" new file mode 100644 index 0000000..2723c41 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\350\205\276\344\272\221\351\251\276\351\233\276.js" @@ -0,0 +1,40 @@ +var rule = { + title:'腾云驾雾', + host:'https://v.%71%71.com', + // homeUrl:'/channel/choice?listpage=1&channel=choice&sort=18&_all=1', + homeUrl:'/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18', + detailUrl:'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid', + // searchUrl:'https://node.video.%71%71.com/x/api/msearch?keyWord=**', + searchUrl:'/x/search/?q=**&stag=fypage', + // searchUrl:'http://s.video.qq.com/smartbox?plat=2&ver=0&num=29&otype=json&query=**', + searchable:2, + filterable:1, + multi:1, + // url:'/channel/fyclass?listpage=fypage&channel=fyclass&sort=18&_all=1', + url:'/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1', + filter_url:'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}', + filter:{'choice': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}]}], 'tv': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}]}], 'movie': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}]}], 'variety': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}]}], 'cartoon': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}]}], 'child': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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'}]}], 'doco': [{'key': 'sort', 'name': '排序', 'value': [{'n': '最热', 'v': '18'}, {'n': '最新', 'v': '19'}, {'n': '好评', 'v': '16'}, {'n': '高分好评', 'v': '21'}]}, {'key': 'pay', 'name': '资费', 'value': [{'n': '全部', 'v': '-1'}, {'n': '免费', 'v': '867'}, {'n': '会员', 'v': '6'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '-1'}, {'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'}]}]}, + headers:{ + 'User-Agent':'PC_UA' + }, + timeout:5000, + // class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)', + cate_exclude:'会员|游戏|全部', + class_name:'精选&电视剧&电影&综艺&动漫&少儿&纪录片', + class_url:'choice&tv&movie&variety&cartoon&child&doco', + limit:20, + // play_parse:true, + // 手动调用解析请求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', + 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + 一级:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + // 二级:{is_json:1,"title":"data.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites;data.playlinksdetail.#idv.quality","lists":"data.playlinksdetail.#idv.default_url"}, + // 二级:{is_json:1,"title":"data.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites","lists":"data.playlinksdetail.#idv.default_url"}, + 二级:'', + 二级:'js:VOD={};let d=[];let video_list=[];let video_lists=[];let list=[];let QZOutputJson;let html=fetch(input,fetch_params);let sourceId=/get_playsource/.test(input)?input.match(/id=(\\d*?)&/)[1]:input.split("cid=")[1];let cid=sourceId;let detailUrl="https://v.%71%71.com/detail/m/"+cid+".html";log("详情页:"+detailUrl);var pdfh=jsp.pdfh;var pd=jsp.pd;try{let json=JSON.parse(html);VOD={vod_url:input,vod_name:json.c.title,type_name:json.typ.join(","),vod_actor:json.nam.join(","),vod_year:json.c.year,vod_content:json.c.description,vod_remarks:json.rec,vod_pic:urljoin2(input,json.c.pic)}}catch(e){log("解析片名海报等基础信息发生错误:"+e.message)}if(/get_playsource/.test(input)){eval(html);let indexList=QZOutputJson.PlaylistItem.indexList;indexList.forEach(function(it){let dataUrl="https://s.video.qq.com/get_playsource?id="+sourceId+"&plat=2&type=4&data_type=3&range="+it+"&video_type=10&plname=qq&otype=json";eval(fetch(dataUrl,fetch_params));let vdata=QZOutputJson.PlaylistItem.videoPlayList;vdata.forEach(function(item){d.push({title:item.title,pic_url:item.pic,desc:item.episode_number+"\\t\\t\\t播放量:"+item.thirdLine,url:item.playUrl})});video_lists=video_lists.concat(vdata)})}else{let json=JSON.parse(html);video_lists=json.c.video_ids;let url="https://v.qq.com/x/cover/"+sourceId+".html";if(video_lists.length===1){let vid=video_lists[0];url="https://v.qq.com/x/cover/"+cid+"/"+vid+".html";d.push({title:"在线播放",url:url})}else if(video_lists.length>1){for(let i=0;i1?it1.category_map[1]:""})})})}}let yg=d.filter(function(it){return it.type&&it.type!=="正片"});let zp=d.filter(function(it){return!(it.type&&it.type!=="正片")});VOD.vod_play_from=yg.length<1?"qq":"qq$$$qq 预告及花絮";VOD.vod_play_url=yg.length<1?d.map(function(it){return it.title+"$"+it.url}).join("#"):[zp,yg].map(function(it){return it.map(function(its){return its.title+"$"+its.url}).join("#")}).join("$$$");', + // 二级:'js:VOD={};let d=[];let video_list=[];let video_lists=[];let list=[];let QZOutputJson;let html=fetch(input,fetch_params);let sourceId=/get_playsource/.test(input)?input.match(/id=(\\d*?)&/)[1]:input.split("cid=")[1];let cid=sourceId;let detailUrl="https://v.%71%71.com/detail/m/"+cid+".html";log("详情页:"+detailUrl);var pdfh=jsp.pdfh;var pd=jsp.pd;try{let json=JSON.parse(html);VOD={vod_url:input,vod_name:json.c.title,type_name:json.typ.join(","),vod_actor:json.nam.join(","),vod_year:json.c.year,vod_content:json.c.description,vod_remarks:json.rec,vod_pic:urljoin2(input,json.c.pic)}}catch(e){log("解析片名海报等基础信息发生错误:"+e.message)}if(/get_playsource/.test(input)){eval(html);let indexList=QZOutputJson.PlaylistItem.indexList;indexList.forEach(function(it){let dataUrl="https://s.video.qq.com/get_playsource?id="+sourceId+"&plat=2&type=4&data_type=3&range="+it+"&video_type=10&plname=qq&otype=json";eval(fetch(dataUrl,fetch_params));let vdata=QZOutputJson.PlaylistItem.videoPlayList;vdata.forEach(function(item){d.push({title:item.title,pic_url:item.pic,desc:item.episode_number+"\\t\\t\\t播放量:"+item.thirdLine,url:item.playUrl})});video_lists=video_lists.concat(vdata)})}else{let json=JSON.parse(html);video_lists=json.c.video_ids;let url="https://v.qq.com/x/cover/"+sourceId+".html";if(json.c.type===10){let dataUrl="https://s.video.qq.com/get_playsource?id="+json.c.column_id+"&plat=2&type=2&data_type=3&video_type=8&plname=qq&otype=json";let o_html=fetch(dataUrl,fetch_params);eval(o_html);video_lists=[];let indexList=QZOutputJson.PlaylistItem.indexList;indexList.forEach(function(it){let dataUrl="https://s.video.qq.com/get_playsource?id="+json.c.column_id+"&plat=2&type=4&data_type=3&range="+it+"&video_type=10&plname=qq&otype=json";eval(fetch(dataUrl,fetch_params));let vdata=QZOutputJson.PlaylistItem.videoPlayList;vdata.forEach(function(item){d.push({title:item.title,pic_url:item.pic,desc:item.episode_number+"\\t\\t\\t播放量:"+item.thirdLine,url:item.playUrl})});video_lists=video_lists.concat(vdata)})}else if(video_lists.length===1){d.push({title:"在线播放",url:url})}else if(video_lists.length>1){for(let i=0;i1?it1.category_map[1]:""})})})}}let yg=d.filter(function(it){return it.type&&it.type!=="正片"});let zp=d.filter(function(it){return!(it.type&&it.type!=="正片")});VOD.vod_play_from=yg.length<1?"qq":"qq$$$qq 预告及花絮";VOD.vod_play_url=yg.length<1?d.map(function(it){return it.title+"$"+it.url}).join("#"):[zp,yg].map(function(it){return it.map(function(its){return its.title+"$"+its.url}).join("#")}).join("$$$");', + // 搜索:'json:uiData;data[0].title;data[0].posterPic;.titleMarkLabelList[1].primeText;data[0].id;data[0].publishDate', + // 搜索:'js:let d=[];pdfa=jsp.pdfa;pdfh=jsp.pdfh;pd=jsp.pd;let html=request(input);let baseList=pdfa(html,"body&&.result_item_v");baseList.forEach(function(it){let longText=pdfh(it,".result_title&&Text");let shortText=pdfh(it,".sub&&Text");let fromTag=pdfh(it,".result_source&&Text");let score=pdfh(it,".result_score&&Text");let content=pdfh(it,".desc_text&&Text");let url=pdfh(it,".result_title&&a&&href");let img=pd(it,".figure_pic&&src");url="https://node.video.qq.com/x/api/float_vinfo2?cid="+url.match(/.*\\/(.*?)\\.html/)[1];log(shortText+"|"+url);if(fromTag.match(/腾讯/)){d.push({title:longText.split(shortText)[0],img:img,url:url,content:content,desc:"⭐"+longText.split(shortText)[1]+"-"+shortText+" "+score})}});setResult(d);', + 搜索:'js:let d=[];pdfa=jsp.pdfa;pdfh=jsp.pdfh;pd=jsp.pd;let html=request(input);let baseList=pdfa(html,"body&&.result_item_v");baseList.forEach(function(it){let longText=pdfh(it,".result_title&&a&&Text");let shortText=pdfh(it,".type&&Text");let fromTag=pdfh(it,".result_source&&Text");let score=pdfh(it,".figure_info&&Text");let content=pdfh(it,".desc_text&&Text");let url=pdfh(it,".result_title&&a&&href");let img=pd(it,".figure_pic&&src");url="https://node.video.qq.com/x/api/float_vinfo2?cid="+url.match(/.*\\/(.*?)\\.html/)[1];log(shortText+"|"+url);if(fromTag.match(/腾讯/)){d.push({title:longText.split(shortText)[0],img:img,url:url,content:content,desc:shortText+" "+score})}});setResult(d);', + // 搜索:'json:item;word;dc;class;id;sn', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\350\212\261\345\255\220\345\212\250\346\274\253.js" "b/zyplayer/drpy_dz/drpy_js/\350\212\261\345\255\220\345\212\250\346\274\253.js" new file mode 100644 index 0000000..afb5445 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\350\212\261\345\255\220\345\212\250\346\274\253.js" @@ -0,0 +1,72 @@ +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: 'H4sIAAAAAAAAA+2W204TURSG32WuMdnT0nbDnZzP57PhopImEhETWk0IIUFOloNQDLSigGJCLCIWhJCWgr4MM9O+hdPO2mstDzE10cSYudv/989u55t0uteUpmuVd6a0+6FJrVIbGQuGw1qZNh58ELKjdZo19lbs/Dg49ihUvG7cxsZCMj+XLGA7aNNlQK9mb9Jxa2sVCsrqCmv7sxGLQg0Bd8fWjI9HaqsTcN/ccW5/Ru1zAnaXKSt6qjonYHf4JXexrDon4PcdPDUyWfV9TlCdGX1hxhPQQSjlPs3YnvVhQ+1zAnaJAyOdVp0T8D7fbdC9QMB9n7LmvHpmELB7s2+8OladE7B7skLPBQI6LD7Pbx8qByfgvrWkFVtU+5yA3c6l/TRU5wTV5V+f3WRi0EFQXS62m1tbgg4C3WfMnInjfRYDdnPL5uxL1TkBu7P9/O5ba+u9qjHjFem0GV03NzPqCsz4HE7Wc6lzuoIyfsbVkbWZZZ+BGd0WlHRhNT1c4M67NBkKTtCrZGTOb7LXJb5KHuEpB1ZcMu4l7uXcQ9zDuU5c51wQF4zrFcjtJeOSuOQ8QDzAuZ+4n3MfcR/n5KtzX518de6rk6/OfXXy1bmvTr469xXkK7ivIF/BfQX5Cu4ryFdwX0G+gvsK8hXcV5Cv4L6CfAX3FeQruK8gX0G+ekWF8i0uGZfEJecB4gHO/cT9nPuI+zgvJ17OuZe4l3MPcQ/nOnGdc0Gc+0ryldxXkq/kvpJ8JfeV5Cu5ryRfyX0l+UruK8lXcl9JvpL7SvKV3FeSr73kfztjoUgkxP94jhNm6lmJfzy3AdxGUgWkCkk1kGokNUBqkNQCqUVSB6QOST2QeiQNQBqQNAJpRNIEpAlJM5BmJC1AWpC0AmlF0gakDUk7kHYkHUA6kHQC6UTSBaQLSTeQbiQ9QHqQ9ALpRdIHpA9JP5B+JANABpAMAhlEMgRkCIm4pd6Bwor/VO5O0s/ETFzkE+c//EzM1SVzZ8aMn8BHREbtq/F0LJb2QAblvdFImJe51LwRVbNEeOThRKjw9cNlmuefGDl/OVb+hdHxvxgPf3cEdAcidyByByK1dAcidyByByJ3IPp+IPL+qYFoOXlzvaOObieUMrb8dMRwj2736HaPbrV0j2736HaPbvfo/vbonv4K+TrlXkAbAAA=', + filter_def: {}, + detailUrl: '/voddetail/fyid.html', + play_parse: true, + sniffer: 1, + is_video: 'obj/tos-alisg-ve', + 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") + } + }); + }), + 图片替换: '&=>&' +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\350\215\220\347\211\207.js" "b/zyplayer/drpy_dz/drpy_js/\350\215\220\347\211\207.js" new file mode 100644 index 0000000..e962947 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\350\215\220\347\211\207.js" @@ -0,0 +1,156 @@ +/** + * 影视TV 超連結跳轉支持 + * https://t.me/fongmi_offical/ + * https://github.com/FongMi/Release/tree/main/apk + */ +var rule = { + title: '荐片', + // host: 'http://api2.rinhome.com', + //host: 'https://oiuzy.haitu33.com', + host: 'https://dns.alidns.com/resolve?name=jpmobile.jianpiandns.com&type=TXT', + hostJs:` + print(HOST); + let html=request(HOST,{headers:{"User-Agent":MOBILE_UA}}); + let json = dealJson(html); + let data = json.Answer[0].data.replace(/'|"/g,'').split(','); + HOST = data[0]; + if(!HOST.startsWith('http')){ + HOST = 'https://'+HOST; + } + // log(HOST); + `, + homeUrl: '/api/tag/hand?code=unknown601193cf375db73d&channel=wandoujia',//网站的首页链接,用于分类获取和推荐获取 + // url:'/api/crumb/list?area=0&category_id=fyclass&page=fypage&type=0&limit=24&fyfilter', + url: '/api/crumb/list?page=fypage&type=0&limit=24&fyfilter', + class_name: '全部&电影&电视剧&动漫&综艺', // 筛选 /api/term/ad_fenlei?limit=10&page=1 + class_url: '0&1&2&3&4', + detailUrl: '/api/node/detail?channel=wandoujia&token=&id=fyid',//二级详情拼接链接(json格式用) + searchUrl: '/api/video/search?key=**&page=fypage', + searchable: 2, + quickSearch: 0, + filterable: 1, + filter: 'H4sIAAAAAAAAA+2V3UrDMBiG7yXHO2jTrtu8A69BPCiuqKhT6hTGGEzmxiY4f5CqWPBA3So4tsHE/aBX06T2Lsxc2mR2FWHzrId5vpA03/e8NA8EsLSSB1taDiwBVddUEAMZdUcjK2R20GmRrA/V7QPte1tmjMuWW7LGmCwEUIhRfPduD5sUiz62+y1ScRu3uN+mRelHEZ118OCDFhW/6HzUSZHiuI/d+2eGxaTP8fUTNl8oh6CwOi5MnpXTVJ171qBnjx7++iwoQNm7TEzxWPJwXOIx9LAg8lj0D0nyWPCwwlFyz4QmeJhkb2MwEegpgYq3c7oN+7t6lrUB1y/R8CzQBqfUcq+9NmzsZv1zP9vHqFqhBV3NbmbWWe/vetjo0NrBXlrNauObV2NEBGbXGsHLaW4Q1YrTHf0+CNZDt2HguhXQAZ1Y9rsZkAcZJqo1A23E1Rt7WKOYc+foHBcNitmQyQm4VPbnycysdjnOPtFpXqDByOOQ/0bnyufS1FCiyEWRW2zk4JyRg7MjJ8oh3jFPiG9ErGB7iSdEIY9zaXx9Q48G51WUiygX/5YLac5cSCG5SM32GQohPoizPf3Rocj/yP/F+i/P6b88238ohfgsh+Qi5H8Blcj/yP9/87/wBY9Rx63qDgAA', + filter_url: 'area={{fl.area or "0"}}&sort={{fl.sort or "update"}}&year={{fl.year or "0"}}&category_id={{fl.cateId}}', + filter_def: { + 0:{cateId:'0'}, + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 3:{cateId:'3'}, + 4:{cateId:'4'} + }, + headers: { + 'User-Agent': 'jianpian-android/350', + 'JPAUTH': 'y261ow7kF2dtzlxh1GS9EB8nbTxNmaK/QQIAjctlKiEv' + }, + timeout: 5000, + limit: 8, + play_parse: true, + play_json: [{ + re: '*', + json: { + parse: 0, + jx: 0 + } + }], + lazy: '', + 图片来源: '@Referer=www.jianpianapp.com@User-Agent=jianpian-version353', + // 推荐:'json:.video;*;*;*;*', + 推荐: `js: + var d = []; + let html = request(input); + html = JSON.parse(html).data[0].video; + html.forEach(it => { + d.push({ + title: it.title, + img: it.path, + desc: it.playlist.title + ' ⭐' + it.score, + url: it.id + }) + }); + setResult(d); + `, + // 一级:'json:data;title;path;playlist.title;id', + 一级: `js: + cateObj.tid = cateObj.tid+''; + if (cateObj.tid.endsWith('_clicklink')) { + cateObj.tid = cateObj.tid.split('_')[0]; + input = HOST + '/api/video/search?key=' + cateObj.tid + '&page=' + + MY_PAGE; + } + var d = []; + let html = request(input); + html = JSON.parse(html).data; + html.forEach(it => { + d.push({ + title: it.title, + img: it.thumbnail||it.path, + desc: (it.mask || it.playlist.title) + ' ⭐' + it.score, + url: it.id + }) + }); + setResult(d); + `, + 二级: `js: + function getLink(data) { + let link = data.map(it => { + return '[a=cr:' + JSON.stringify({'id':it.name+'_clicklink','name':it.name}) + '/]' + it.name + '[/a]' + }).join(', '); + return link + } + try { + let html = request(input); + html = JSON.parse(html); + let node = html.data; + VOD = { + vod_id: node.id, + vod_name: node.title, + vod_pic: node.thumbnail, + type_name: node.types[0].name, + vod_year: node.year.title, + vod_area: node.area.title, + vod_remarks: node.score, + vod_actor: getLink(node.actors), + vod_director: getLink(node.directors), + vod_content: node.description.strip() + }; + if (typeof play_url === 'undefined') { + var play_url = '' + } + let playMap = {}; + if (node.have_ftp_ur == 1) { + playMap["边下边播超清版"] = node.new_ftp_list.map(it => { + return it.title + "$" + (/m3u8/.test(it.url) ? play_url + it.url : "tvbox-xg:" + it.url) + }).join('#'); + } + if (node.have_m3u8_ur == 1) { + playMap["在线点播普清版"] = node.new_m3u8_list.map(it => { + return it.title + "$" + (/m3u8/.test(it.url) ? play_url + it.url : "tvbox-xg:" + it.url) + }).join('#'); + } + let playFrom = []; + let playList = []; + Object.keys(playMap).forEach(key => { + playFrom.append(key); + playList.append(playMap[key]) + }); + VOD.vod_play_from = playFrom.join('$$$'); + VOD.vod_play_url = playList.join('$$$'); + } catch (e) { + log("获取二级详情页发生错误:" + e.message); + } + `, + // 搜索:'json:data;*;thumbnail;mask;*', + 搜索: `js: + var d = []; + let html = request(input); + html = JSON.parse(html).data; + html.forEach(it => { + d.push({ + title: it.title, + img: it.thumbnail, + desc: it.mask + ' ⭐' + it.score, + url: it.id + }) + }); + setResult(d); + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\350\217\234\347\213\227.js" "b/zyplayer/drpy_dz/drpy_js/\350\217\234\347\213\227.js" new file mode 100644 index 0000000..413bbdc --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\350\217\234\347\213\227.js" @@ -0,0 +1,66 @@ +var rule = { + title:'菜狗', + host:'https://waptv.sogou.com', + homeUrl:'', + searchUrl:'/film/result?ie=utf8&query=**', + searchable:2, + quickSearch:0, + filterable:1, + multi:1, + // 分类链接fypage参数支持1个()表达式 + url:'/napi/video/classlist?abtest=0&iploc=CN1304&spver=&listTab=fyclass&filter=&start=((fypage-1)*15)&len=15&fr=filter', + filter_url:'style={{fl.style}}&zone={{fl.zone}}&year={{fl.year}}&fee={{fl.fee}}&order={{fl.order}}', + headers:{ + 'User-Agent':'PC_UA' + }, + timeout:5000, + class_name:'电视剧&电影&动漫&综艺&纪录片', + class_url:'teleplay&film&cartoon&tvshow&documentary', + filter:{'teleplay': [{'key': 'style', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '爱情', 'v': '爱情'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '都市', 'v': '都市'}, {'n': '悬疑', 'v': '悬疑'}, {'n': '古装', 'v': '古装'}, {'n': '偶像', 'v': '偶像'}, {'n': '犯罪', 'v': '犯罪'}, {'n': '历史', 'v': '历史'}, {'n': '战争', 'v': '战争'}, {'n': '武侠', 'v': '武侠'}, {'n': '警匪', 'v': '警匪'}, {'n': '科幻', 'v': '科幻'}, {'n': '奇幻', 'v': '奇幻'}, {'n': '谍战', 'v': '谍战'}, {'n': '农村', 'v': '农村'}, {'n': '其他', 'v': '其他'}]}, {'key': 'zone', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': '内地'}, {'n': '香港', 'v': '香港'}, {'n': '台湾', 'v': '台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '泰国', 'v': '泰国'}, {'n': '日本', 'v': '日本'}, {'n': '美国', 'v': '美国'}, {'n': '英国', 'v': '英国'}, {'n': '新加坡', 'v': '新加坡'}, {'n': '其他', 'v': '其他'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '更早', 'v': '更早'}]}, {'key': 'fee', 'name': '资源', 'value': [{'n': '全部', 'v': ''}, {'n': '正片', 'v': '正片'}, {'n': '免费正片', 'v': '免费正片'}, {'n': '付费正片', 'v': '付费正片'}]}, {'key': 'order', 'name': '排序', 'value': [{'n': '全部', 'v': ''}, {'n': '最新', 'v': '最新'}, {'n': '好评', 'v': '好评'}]}], 'film': [{'key': 'style', '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': 'zone', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': '内地'}, {'n': '香港', 'v': '香港'}, {'n': '台湾', 'v': '台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '泰国', 'v': '泰国'}, {'n': '日本', 'v': '日本'}, {'n': '美国', 'v': '美国'}, {'n': '英国', 'v': '英国'}, {'n': '新加坡', 'v': '新加坡'}, {'n': '其他', 'v': '其他'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '更早', 'v': '更早'}]}, {'key': 'fee', 'name': '资源', 'value': [{'n': '全部', 'v': ''}, {'n': '正片', 'v': '正片'}, {'n': '免费正片', 'v': '免费正片'}, {'n': '付费正片', 'v': '付费正片'}]}, {'key': 'order', 'name': '排序', 'value': [{'n': '全部', 'v': ''}, {'n': '最新', 'v': '最新'}, {'n': '好评', 'v': '好评'}]}], 'cartoon': [{'key': 'style', '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': '其他'}]}, {'key': 'zone', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '日本', 'v': '日本'}, {'n': '欧美', 'v': '欧美'}, {'n': '国产', 'v': '国产'}, {'n': '其他', 'v': '其他'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '更早', 'v': '更早'}]}, {'key': 'fee', 'name': '资源', 'value': [{'n': '全部', 'v': ''}, {'n': '正片', 'v': '正片'}, {'n': '免费正片', 'v': '免费正片'}, {'n': '付费正片', 'v': '付费正片'}]}, {'key': 'order', 'name': '排序', 'value': [{'n': '全部', 'v': ''}, {'n': '最新', 'v': '最新'}, {'n': '好评', 'v': '好评'}]}], 'tvshow': [{'key': 'style', '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': 'zone', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': '内地'}, {'n': '台湾', 'v': '台湾'}, {'n': '日韩', 'v': '日韩'}, {'n': '欧美', 'v': '欧美'}, {'n': '其他', 'v': '其他'}]}, {'key': 'emcee', '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': 'order', 'name': '排序', 'value': [{'n': '全部', 'v': ''}, {'n': '最新', 'v': '最新'}, {'n': '好评', 'v': '好评'}]}], 'documentary': [{'key': 'style', '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': 'zone', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': '内地'}, {'n': '香港', 'v': '香港'}, {'n': '台湾', 'v': '台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '泰国', 'v': '泰国'}, {'n': '日本', 'v': '日本'}, {'n': '美国', 'v': '美国'}, {'n': '英国', 'v': '英国'}, {'n': '新加坡', 'v': '新加坡'}, {'n': '其他', 'v': '其他'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '更早', 'v': '更早'}]}, {'key': 'fee', 'name': '资源', 'value': [{'n': '全部', 'v': ''}, {'n': '正片', 'v': '正片'}, {'n': '免费正片', 'v': '免费正片'}, {'n': '付费正片', 'v': '付费正片'}]}, {'key': 'order', 'name': '排序', 'value': [{'n': '全部', 'v': ''}, {'n': '最新', 'v': '最新'}, {'n': '好评', 'v': '好评'}]}]}, + limit:20, + play_parse:true, + play_json:1, + // 手动调用解析请求json的url,此lazy不方便 + lazy:'', + lazy:`js: + print(input); + fetch_params.headers["User-Agent"]=MOBILE_UA; + print(fetch_params); + let html=request(input); + let rurl=html.match(/window\\.open\\('(.*?)',/)[1]; + rurl=urlDeal(rurl); + input={parse:1,jx:1,url:rurl}; + `, + // 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + 一级:'js:let d=[];let html=request(input);html=JSON.parse(html);let list=html.listData.results;list.forEach(function(it){let desc1=it.ipad_play_for_list.finish_episode?it.ipad_play_for_list.episode===it.ipad_play_for_list.finish_episode?"全集"+it.ipad_play_for_list.finish_episode:"连载"+it.ipad_play_for_list.episode+"/"+it.ipad_play_for_list.finish_episode:"";let desc2=it.score?"评分:"+it.score:"";let desc3=it.date?"更至:"+it.date:"";d.push({title:it.name,img:it.v_picurl,url:"https://v.sogou.com"+it.url.replace("teleplay","series").replace("cartoon","series"),desc:desc1||desc2||desc3})});setResult(d);', + 二级:'', + 二级:'js:VOD={};let html=request(input);function adhead(url){let hd="https://v.sogou.com";if(!url.startsWith(hd)){url=hd+url}return urlencode(url)}try{let json=JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]).detail.itemData;let key=json.dockey;let name=json.name;let zone=json.zone;let score=json.score?json.score:"暂无";let style=json.style;let emcee=json.emcee?"主持:"+json.emcee:json.name;let director=json.director?"导演:"+json.director:name;director=director.replace(/;/g,"\\t");let starring=json.starring?"演员:"+json.starring:"声优:"+json.shengyou;starring=starring.replace(/.*undefined/,"").replace(/;/g,"\\t");let update=json.update_wordstr?json.update_wordstr:"";let tv_station=json.tv_station?json.tv_station:zone;let introduction=json.introduction;let shengyou=json.shengyou;let shows=json.play_from_open_index;let plays=json.play.item_list;if(shows){VOD.vod_name=name;VOD.vod_area=emcee+","+tv_station;VOD.vod_director=director;VOD.vod_actor=starring;VOD.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");VOD.vod_remarks=style+" 评分:"+score+","+update;VOD.vod_content=introduction}else{VOD.vod_name=name;VOD.vod_director=director;VOD.vod_actor=starring;VOD.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");VOD.vod_content=introduction}let tp="&type=json";try{let tabs=[];let lists=[];plays.forEach(function(it){lists.push(it.info);let tbn=it.sitename[0]||it.site.replace(".com","");tbn=tbn.split("").join(" ");tabs.push(tbn)});VOD.vod_play_from=tabs.join("$$$");let vod_lists=[];print("play_url1:"+play_url);play_url=play_url.replace("&play_url=","&type=json&play_url=");print("play_url2:"+play_url);lists.forEach(function(item,idex){if(item||shows){if(item&&Array.isArray(item)&&item.length>1){let tmp=item.slice(1).map(function(its){return its.index+"$"+play_url+base64Encode(adhead(its.url))});vod_lists.push(tmp.join("#"))}if(shows){let arr=[];let tmp=[];let zy=shows.item_list[idex];zy.date.forEach(function(date){let day=date.day;for(let j=0;j=10?day[j][0]:"0"+day[j][0];let Tdate=date.year+date.month+dayy;arr.push(Tdate)}});for(let k=0;k0?img[0]:""}}catch(e){print("发生了错误:"+e.message)}', + // 二级:'js:var vod={vod_id:input};let html=request(input);function adhead(url){let hd="https://v.sogou.com";if(!url.startsWith(hd)){url=hd+url}return url}try{let json=JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]).detail.itemData;let key=json.dockey;let name=json.name;let zone=json.zone;let score=json.score?json.score:"暂无";let style=json.style;let emcee=json.emcee?"主持:"+json.emcee:json.name;let director=json.director?"导演:"+json.director:name;director=director.replace(/;/g,"\\t");let starring=json.starring?"演员:"+json.starring:"声优:"+json.shengyou;starring=starring.replace(/.*undefined/,"").replace(/;/g,"\\t");let update=json.update_wordstr?json.update_wordstr:"";let tv_station=json.tv_station?json.tv_station:zone;let introduction=json.introduction;let shengyou=json.shengyou;let shows=json.play_from_open_index;let plays=json.play.item_list;if(shows){vod.vod_name=name;vod.vod_area=emcee+","+tv_station;vod.vod_director=director;vod.vod_actor=starring;vod.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");vod.vod_remarks=style+" 评分:"+score+","+update;vod.vod_content=introduction}else{vod.vod_name=name;vod.vod_director=director;vod.vod_actor=starring;vod.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");vod.vod_content=introduction}let tp="&type=json";try{let tabs=[];let lists=[];plays.forEach(function(it){lists.push(it.info);let tbn=it.sitename[0]||it.site.replace(".com","");tbn=tbn.split("").join(" ");tabs.push(tbn)});vod.vod_play_from=tabs.join("$$$");vod_lists=[];play_url=play_url.replace("&play_url=","&type=json&play_url=");lists.forEach(function(item,idex){if(item||shows){if(item&&Array.isArray(item)&&item.length>1){let tmp=item.slice(1).map(function(its){return its.index+"$"+play_url+base64Encode(adhead(its.url))});vod_lists.push(tmp.join("#"))}if(shows){let arr=[];let tmp=[];let zy=shows.item_list[idex];zy.date.forEach(function(date){let day=date.day;for(let j=0;j=10?day[j][0]:"0"+day[j][0];let Tdate=date.year+date.month+dayy;arr.push(Tdate)}});for(let k=0;k0?img[0]:""}}catch(e){}', + 搜索:'', + 搜索:`js: +let d = []; +let html = request(input); +let jsonA = JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]); +print(jsonA); +jsonA = jsonA.result.resultData.searchData.results; +jsonA.forEach(function(it) { + let name = it.name; + let introduction = it.introduction; + let pic = it.v_picurl; + let url = it.tiny_url; + let zone = it.zone; + let score = it.score || "暂无"; + let style = it.style; + if (it.play_info && it.play_info.play_list) { + let r = {}; + r.title = name.replace(//, "").replace(//, ""); + r.url = "https://v.sogou.com" + url.replace(/teleplay|cartoon/g, 'series'); + r.desc = it.listCategory.join(","); + r.content = introduction; + r.pic_url = pic; + d.push(r) + } +}); +setResult(d);`, + +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\350\261\206\347\223\243.js" "b/zyplayer/drpy_dz/drpy_js/\350\261\206\347\223\243.js" new file mode 100644 index 0000000..43d7797 --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\350\261\206\347\223\243.js" @@ -0,0 +1,37 @@ +var rule = { + title:'drpy', + host:'https://frodo.douban.com', + apidoc:'https://www.doubanapi.com', + homeUrl:'', + searchUrl:'', + searchable:1, + quickSearch:1, + filterable:1, + // 分类链接fypage参数支持1个()表达式 + url:'/?pg=fypage&class=fyclass&douban=$douban', + filter_url:'fl={{fl}}', + 图片来源:'@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', + headers:{ + "Host": "frodo.douban.com", + // "Host": "api.douban.com", + "Connection": "Keep-Alive", + "Referer": "https://servicewechat.com/wx2f9b06c1de1ccfca/84/page-frame.html", + // "content-type": "application/json", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat" + }, + timeout:5000, + class_name:'我的豆瓣&热门电影&热播剧集&热播综艺&电影筛选&电视筛选&电影榜单&电视榜单', + class_url:'interests&hot_gaia&tv_hot&show_hot&movie&tv&rank_list_movie&rank_list_tv', + filter:{'interests': [{'key': 'status', 'name': '状态', 'value': [{'n': '想看', 'v': 'mark'}, {'n': '在看', 'v': 'doing'}, {'n': '看过', 'v': 'done'}]}, {'key': 'subtype_tag', 'name': '形式', 'value': [{'n': '全部', 'v': ''}, {'n': '电影', 'v': 'movie'}, {'n': '电视', 'v': 'tv'}]}, {'key': 'year_tag', 'name': '年代', 'value': [{'n': '全部', 'v': '全部'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2010年代', 'v': '2010年代'}, {'n': '2000年代', 'v': '2000年代'}, {'n': '90年代', 'v': '90年代'}, {'n': '80年代', 'v': '80年代'}, {'n': '70年代', 'v': '70年代'}, {'n': '60年代', 'v': '60年代'}, {'n': '更早', 'v': '更早'}]}], 'hot_gaia': [{'key': 'sort', 'name': '排序', 'value': [{'n': '热度', 'v': 'recommend'}, {'n': '最新', 'v': 'time'}, {'n': '评分', 'v': 'rank'}]}, {'key': 'area', 'name': '地区', 'value': [{'n': '全部', 'v': '全部'}, {'n': '华语', 'v': '华语'}, {'n': '欧美', 'v': '欧美'}, {'n': '韩国', 'v': '韩国'}, {'n': '日本', 'v': '日本'}]}], 'tv_hot': [{'key': 'type', 'name': '分类', 'value': [{'n': '综合', 'v': 'tv_hot'}, {'n': '国产剧', 'v': 'tv_domestic'}, {'n': '欧美剧', 'v': 'tv_american'}, {'n': '日剧', 'v': 'tv_japanese'}, {'n': '韩剧', 'v': 'tv_korean'}, {'n': '动画', 'v': 'tv_animation'}]}], 'show_hot': [{'key': 'type', 'name': '分类', 'value': [{'n': '综合', 'v': 'show_hot'}, {'n': '国内', 'v': 'show_domestic'}, {'n': '国外', 'v': 'show_foreign'}]}], 'movie': [{'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': '短片'}]}, {'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': '丹麦'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '近期热度', 'v': 'T'}, {'n': '首映时间', 'v': 'R'}, {'n': '高分优先', 'v': 'S'}]}, {'key': '年代', 'name': '年代', 'value': [{'n': '全部年代', 'v': ''}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2010年代', 'v': '2010年代'}, {'n': '2000年代', 'v': '2000年代'}, {'n': '90年代', 'v': '90年代'}, {'n': '80年代', 'v': '80年代'}, {'n': '70年代', 'v': '70年代'}, {'n': '60年代', 'v': '60年代'}, {'n': '更早', 'v': '更早'}]}], 'tv': [{'key': '类型', 'name': '类型', 'value': [{'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': '战争'}, {'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': '歌舞'}]}, {'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': '澳大利亚'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '近期热度', 'v': 'T'}, {'n': '首播时间', 'v': 'R'}, {'n': '高分优先', 'v': 'S'}]}, {'key': '年代', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2010年代', 'v': '2010年代'}, {'n': '2000年代', 'v': '2000年代'}, {'n': '90年代', 'v': '90年代'}, {'n': '80年代', 'v': '80年代'}, {'n': '70年代', 'v': '70年代'}, {'n': '60年代', 'v': '60年代'}, {'n': '更早', 'v': '更早'}]}, {'key': '平台', 'name': '平台', 'value': [{'n': '全部', 'v': ''}, {'n': '腾讯视频', 'v': '腾讯视频'}, {'n': '爱奇艺', 'v': '爱奇艺'}, {'n': '优酷', 'v': '优酷'}, {'n': '湖南卫视', 'v': '湖南卫视'}, {'n': 'Netflix', 'v': 'Netflix'}, {'n': 'HBO', 'v': 'HBO'}, {'n': 'BBC', 'v': 'BBC'}, {'n': 'NHK', 'v': 'NHK'}, {'n': 'CBS', 'v': 'CBS'}, {'n': 'NBC', 'v': 'NBC'}, {'n': 'tvN', 'v': 'tvN'}]}], 'rank_list_movie': [{'key': '榜单', 'name': '榜单', 'value': [{'n': '实时热门电影', 'v': 'movie_real_time_hotest'}, {'n': '一周口碑电影榜', 'v': 'movie_weekly_best'}, {'n': '豆瓣电影Top250', 'v': 'movie_top250'}]}], 'rank_list_tv': [{'key': '榜单', 'name': '榜单', 'value': [{'n': '实时热门电视', 'v': 'tv_real_time_hotest'}, {'n': '华语口碑剧集榜', 'v': 'tv_chinese_best_weekly'}, {'n': '全球口碑剧集榜', 'v': 'tv_global_best_weekly'}, {'n': '国内口碑综艺榜', 'v': 'show_chinese_best_weekly'}, {'n': '国外口碑综艺榜', 'v': 'show_global_best_weekly'}]}]}, + limit:20, + play_parse:false, + 推荐:'', + 推荐:'js:let d=[];let douban_api_host="http://api.douban.com/api/v2";let miniapp_apikey="0ac44ae016490db2204ce0a042db2916";const count=30;function miniapp_request(path,query){try{let url=douban_api_host+path;query.apikey=miniapp_apikey;fetch_params.headers=oheaders;url=buildUrl(url,query);let html=fetch(url,fetch_params);return JSON.parse(html)}catch(e){print("发生了错误:"+e.message);return{}}}function subject_real_time_hotest(){try{let res=miniapp_request("/subject_collection/subject_real_time_hotest/items",{});let lists=[];let arr=res.subject_collection_items||[];arr.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"暂无评分";let honnor=(item.honor_infos||[]).map(function(it){return it.title}).join("|");lists.append({vod_id:"msearch:"+TYPE,vod_name:item.title||"",vod_pic:item.pic.normal,vod_remarks:rating+" "+honnor})}});return lists}catch(e){print("发生了错误:"+e.message);return[]}}VODS=subject_real_time_hotest();print(VODS);', + // 手动调用解析请求json的url,此lazy不方便 + lazy:'', + // 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + 一级:'', + 一级:'js:let d=[];let douban=input.split("douban=")[1].split("&")[0];let douban_api_host="http://api.douban.com/api/v2";let miniapp_apikey="0ac44ae016490db2204ce0a042db2916";const count=30;function miniapp_request(path,query){try{let url=douban_api_host+path;query.apikey=miniapp_apikey;fetch_params.headers=oheaders;url=buildUrl(url,query);let html=fetch(url,fetch_params);if(/request_error/.test(html)){print(html)}return JSON.parse(html)}catch(e){print("发生了错误:"+e.message);return{}}}function cate_filter(d,douban){douban=douban||"";try{let res={};if(MY_CATE==="interests"){if(douban){let status=MY_FL.status||"mark";let subtype_tag=MY_FL.subtype_tag||"";let year_tag=MY_FL.year_tag||"全部";let path="/user/"+douban+"/interests";res=miniapp_request(path,{type:"movie",status:status,subtype_tag:subtype_tag,year_tag:year_tag,start:(MY_PAGE-1)*count,count:count})}else{return{}}}else if(MY_CATE==="hot_gaia"){let sort=MY_FL.sort||"recommend";let area=MY_FL.area||"全部";let path="/movie/"+MY_CATE;res=miniapp_request(path,{area:area,sort:sort,start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE==="tv_hot"||MY_CATE==="show_hot"){let stype=MY_FL.type||MY_CATE;let path="/subject_collection/"+stype+"/items";res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE.startsWith("rank_list")){let id=MY_CATE==="rank_list_movie"?"movie_real_time_hotest":"tv_real_time_hotest";id=MY_FL.榜单||id;let path="/subject_collection/"+id+"/items";res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else{let path="/"+MY_CATE+"/recommend";let selected_categories;let tags;let sort;if(Object.keys(MY_FL).length>0){sort=MY_FL.sort||"T";tags=Object.values(MY_FL).join(",");if(MY_CATE==="movie"){selected_categories={"类型":MY_FL.类型||"","地区":MY_FL.地区||""}}else{selected_categories={"类型":MY_FL.类型||"","形式":MY_FL.类型?MY_FL.类型+"地区":"","地区":MY_FL.地区||""}}}else{sort="T";tags="";if(MY_CATE==="movie"){selected_categories={"类型":"","地区":""}}else{selected_categories={"类型":"","形式":"","地区":""}}}let params={tags:tags,sort:sort,refresh:0,selected_categories:stringify(selected_categories),start:(MY_PAGE-1)*count,count:count};res=miniapp_request(path,params)}let result={page:MY_PAGE,pagecount:Math.ceil(res.total/count),limit:count,total:res.total};let items=[];if(/^rank_list|tv_hot|show_hot/.test(MY_CATE)){items=res["subject_collection_items"]}else if(MY_CATE==="interests"){res["interests"].forEach(function(it){items.push(it.subject)})}else{items=res.items}let lists=[];items.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"";let rat_str=rating||"暂无评分";let title=item.title;let honor=item.honor_infos||[];let honor_str=honor.map(function(it){return it.title}).join("|");let vod_obj={vod_name:title!=="未知电影"?title:"暂不支持展示",vod_pic:item.pic.normal,vod_remarks:rat_str+" "+honor_str};let vod_obj_d={url:item.type+"$"+item.id,title:title!=="未知电影"?title:"暂不支持展示",pic_url:item.pic.normal,desc:rat_str+" "+honor_str};lists.push(vod_obj);d.push(vod_obj_d)}});result.list=lists;return result}catch(e){print(e.message)}return{}}let res=cate_filter(d,douban);setResult2(res);', + 二级:'', + 搜索:'', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\351\205\267\344\272\22177.js" "b/zyplayer/drpy_dz/drpy_js/\351\205\267\344\272\22177.js" new file mode 100644 index 0000000..7e6f6bb --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\351\205\267\344\272\22177.js" @@ -0,0 +1,140 @@ +// 注意事项:此源仅支持tvbox的js1以及c#版drpy的js0,暂不支持drpy官方py版的js0 + +// 注入全局方法,方便 +globalThis.getTime = function(){ +let ts= Math.round(new Date().getTime()/1000).toString(); +log('获取时间戳:'+ts); +return ts +} + +globalThis.getHeaders= function(input,ts){ +let tkstr=input.split('?')[1].split('&').map(function(it){ + return it.split('=')[1] +}).join(''); +tkstr=input.split('?')[0].replace('https://api.tyun77.cn','')+tkstr+ts+'XSpeUFjJ'; +log('tk加密前:'+tkstr); +let TK=md5(tkstr); +log('tk加密后:'+TK); +let headers={ + "User-Agent":"okhttp/3.12.0", + "TK":TK +}; +return headers +} + +var rule = { + title:'酷云77', + host:'https://api.tyun77.cn', + hostJs:'let html=request(HOST+"/api.php/provide/getDomain");', + homeUrl:'/api.php/provide/homeBlock?type_id=0', + searchUrl:'/api.php/provide/searchVideo?searchName=**', + searchable:2, + quickSearch:0, + filterable:1, + multi:1, + // 分类链接fypage参数支持1个()表达式 + // url:'/api.php/provide/searchFilter?type_id=fyclass&pagesize=24&pagenum=fypage', // 旧的写法注释掉 + url:'/api.php/provide/searchFilter?devid=453CA5D864457C7DB4D0EAA93DE96E66&package=com.sevenVideo.app.android&pagenum=fypage&pagesize=24&version=&sj=$ts&type_id=fyclass', + // detailUrl:'/api.php/provide/videoDetail?devid=453CA5D864457C7DB4D0EAA93DE96E66&package=com.sevenVideo.app.android&version=&ids=fyid', //旧的写法注释掉 + detailUrl:'/api.php/provide/videoDetail?devid=453CA5D864457C7DB4D0EAA93DE96E66&ids=fyid&package=com.sevenVideo.app.android&version=', + filter_url:'year={{fl.y}}&category={{fl.scat}}&area={{fl.a}}', + filter:{0: [{'key': 'y', 'name': '年代', 'value': [{'n': '全部', 'v': ''},{'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v': 'lt|2015'}]}, {'key': 'a', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': '中国大陆'}, {'n': '美国', 'v': '美国'}, {'n': '日本', 'v': '日本'}, {'n': '中国香港', 'v': '中国香港'}, {'n': '中国台湾', 'v': '中国台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '欧洲', 'v': '欧洲'}, {'n': '其他', 'v': '泰国'}]}, {'key': 'scat', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '剧情', 'v': '剧情'}, {'n': '动作', 'v': '动作'}, {'n': '科幻', 'v': '科幻'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '战争', 'v': '战争'}, {'n': '爱情', 'v': '爱情'}, {'n': '恐怖', 'v': '恐怖'}, {'n': '伦理', 'v': '伦理'}]}], 1: [{'key': 'y', 'name': '年代', 'value': [{'n': '全部', 'v': ''},{'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v': 'lt|2015'}]}, {'key': 'a', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': '中国大陆'}, {'n': '美国', 'v': '美国'}, {'n': '日本', 'v': '日本'}, {'n': '中国香港', 'v': '中国香港'}, {'n': '中国台湾', 'v': '中国台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '欧洲', 'v': '欧洲'}, {'n': '其他', 'v': '泰国'}]}, {'key': 'scat', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '剧情', 'v': '剧情'}, {'n': '动作', 'v': '动作'}, {'n': '科幻', 'v': '科幻'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '战争', 'v': '战争'}, {'n': '爱情', 'v': '爱情'}, {'n': '恐怖', 'v': '恐怖'}, {'n': '伦理', 'v': '伦理'}]}], 2: [{'key': 'y', 'name': '年代', 'value': [{'n': '全部', 'v': ''},{'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v': 'lt|2015'}]}, {'key': 'a', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': '中国大陆'}, {'n': '美国', 'v': '美国'}, {'n': '日本', 'v': '日本'}, {'n': '中国香港', 'v': '中国香港'}, {'n': '中国台湾', 'v': '中国台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '欧洲', 'v': '欧洲'}, {'n': '其他', 'v': '泰国'}]}, {'key': 'scat', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '剧情', 'v': '剧情'}, {'n': '动作', 'v': '动作'}, {'n': '科幻', 'v': '科幻'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '战争', 'v': '战争'}, {'n': '爱情', 'v': '爱情'}, {'n': '恐怖', 'v': '恐怖'}, {'n': '伦理', 'v': '伦理'}]}], 3: [{'key': 'y', 'name': '年代', 'value': [{'n': '全部', 'v': ''},{'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v': 'lt|2015'}]}, {'key': 'a', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': '中国大陆'}, {'n': '美国', 'v': '美国'}, {'n': '日本', 'v': '日本'}, {'n': '中国香港', 'v': '中国香港'}, {'n': '中国台湾', 'v': '中国台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '欧洲', 'v': '欧洲'}, {'n': '其他', 'v': '泰国'}]}, {'key': 'scat', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '剧情', 'v': '剧情'}, {'n': '动作', 'v': '动作'}, {'n': '科幻', 'v': '科幻'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '战争', 'v': '战争'}, {'n': '爱情', 'v': '爱情'}, {'n': '恐怖', 'v': '恐怖'}, {'n': '伦理', 'v': '伦理'}]}], 4: [{'key': 'y', 'name': '年代', 'value': [{'n': '全部', 'v': ''},{'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2015之前', 'v': 'lt|2015'}]}, {'key': 'a', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': '中国大陆'}, {'n': '美国', 'v': '美国'}, {'n': '日本', 'v': '日本'}, {'n': '中国香港', 'v': '中国香港'}, {'n': '中国台湾', 'v': '中国台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '欧洲', 'v': '欧洲'}, {'n': '其他', 'v': '泰国'}]}, {'key': 'scat', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '剧情', 'v': '剧情'}, {'n': '动作', 'v': '动作'}, {'n': '科幻', 'v': '科幻'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '战争', 'v': '战争'}, {'n': '爱情', 'v': '爱情'}, {'n': '恐怖', 'v': '恐怖'}, {'n': '伦理', 'v': '伦理'}]}]}, + headers:{ + "User-Agent":"okhttp/3.12.0" + }, + timeout:5000, + class_name:'全部&电影&电视剧&综艺&动漫', + class_url:'0&1&2&3&4', + limit:20, + play_parse:true, + play_json:0, + // 手动调用解析请求json的url,此lazy不方便 + // lazy:'js:input={parse:1,url:input};', + lazy:'', + lazy:'js:function GetPlayUrl(playUrl){let realPlay={parse:0,url:playUrl};if(/mgtv|sohu/.test(playUrl)){realPlay.headers={"User-Agent":"Mozilla/5.0"}}else if(/bili/.test(playUrl)){realPlay.headers={"User-Agent":"Mozilla/5.0",Referer:"https://www.bilibili.com"}}else if(/ixigua/.test(playUrl)){realPlay.headers={"User-Agent":"Mozilla/5.0",Referer:"https://www.ixigua.com"}}return realPlay}if(/\\.m3u8|\\.mp4/.test(input)){input={parse:0,url:input}}else{try{let jxUrl="http://api.tyun77.cn/api.php/provide/parserUrl?url=";var t=Math.floor((new Date).getTime()/1e3).toString();let jxExt="&retryNum=0&pcode=010110002&version=2.1&devid=f9c9ce5bb5827a266829383718e6131a&package=com.sevenVideo.app.android&sys=android&sysver=12&brand=Xiaomi&model=Mi_10_Pro&sj="+t;let url=jxUrl+input+jxExt;let TK="/api.php/provide/parserUrl"+"Xiaomif9c9ce5bb5827a266829383718e6131aMi_10_Procom.sevenVideo.app.android010110002"+0+t+"android12"+encodeURIComponent(vipUrl)+"2.1"+t+"XSpeUFjJ";let html=request(url,{headers:{Referer:jxUrl,"User-Agent":"okhttp/3.12.0",TK:md5(TK)}});let urll=JSON.parse(html).data.url;let playhtml=request(urll);let playurl=JSON.parse(playhtml).url;input=GetPlayUrl(playurl)}catch(e){input={parse:1,jx:1,url:input}}}', + 推荐:'json:data.blocks;contents;title;videoCover;msg;id', + double:true, + // 一级:'json:data.result;title;videoCover;msg;id', 旧的写法注释掉 + 一级:`js: + var d=[]; + let ts= getTime(); + input=input.replace('$ts',ts); + let html = request(input,{ + headers:getHeaders(input,ts) + }); + //print(html); + html = JSON.parse(html); + html.data.result.forEach(function(it){ + d.push({ + title:it.title, + img:it.videoCover, + desc:it.msg, + url:it.id + }) + }); + setResult(d); + `, + 二级:`js: var d = []; + VOD = { + vod_id: input + }; + let ts= getTime(); +try { + input=input+'&sj='+ts; + let html = request(input,{ + headers:getHeaders(input,ts) + }); + //print(html); + html = JSON.parse(html); + let node = html.data; + VOD = { + vod_id: node["id"], + vod_name: node["videoName"], + vod_pic: node["videoCover"], + type_name: node["subCategory"], + vod_year: node["year"], + vod_area: node["area"], + vod_remarks: node["msg"], + vod_actor: node["actor"], + vod_director: node["director"], + vod_content: node["brief"].strip() + }; + let tid = input.split("ids=")[1].split('&')[0]; + let listUrl='https://api.tyun77.cn/api.php/provide/videoPlaylist?devid=453CA5D864457C7DB4D0EAA93DE96E66&ids='+tid+'&package=com.sevenVideo.app.android&version=&sj='+ts; + html = request(listUrl,{ + headers:getHeaders(listUrl,ts) + }); + html = JSON.parse(html); + let episodes = html.data.episodes; + let playMap = {}; + if (typeof play_url === "undefined") { + var play_url = "" + } + play_url = play_url.replace("&play_url=", "&type=json&play_url="); + episodes.forEach(function(ep) { + let playurls = ep["playurls"]; + playurls.forEach(function(playurl) { + let source = playurl["playfrom"]; + if (!playMap.hasOwnProperty(source)) { + playMap[source] = [] + } + playMap[source].append(playurl["title"].strip() + "$" + play_url + urlencode(playurl["playurl"])) + }) + }); + let playFrom = []; + let playList = []; + Object.keys(playMap) + .forEach(function(key) { + playFrom.append(key); + playList.append(playMap[key].join("#")) + }); + let vod_play_from = playFrom.join("$$$"); + let vod_play_url = playList.join("$$$"); + VOD["vod_play_from"] = vod_play_from; + VOD["vod_play_url"] = vod_play_url +} catch (e) { + log("获取二级详情页发生错误:" + e.message) +}`, + 搜索:'', + 搜索:'json:data;videoName;videoCover;msg;id', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dz/drpy_js/\351\207\217\345\255\220\345\275\261\350\247\206.js" "b/zyplayer/drpy_dz/drpy_js/\351\207\217\345\255\220\345\275\261\350\247\206.js" new file mode 100644 index 0000000..2336bbc --- /dev/null +++ "b/zyplayer/drpy_dz/drpy_js/\351\207\217\345\255\220\345\275\261\350\247\206.js" @@ -0,0 +1,50 @@ +muban.mxone5.二级.desc = ';;;.video-info-actor:eq(1)&&Text;.video-info-actor:eq(0)&&Text'; +muban.mxone5.二级.tab_text = 'body--small&&Text'; +var rule= { + title:'量子影视', + 模板:'mxone5', + host:'http://www.lzizy9.com', + // url:'/index.php/vod/show/id/fyclass/page/fypage.html', + url:'/index.php/vod/show/id/fyfilter.html', + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.cateId}}{{fl.area}}{{fl.by or "/by/time"}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}', + filter: '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', + filter_def:{ + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 3:{cateId:'3'}, + 4:{cateId:'4'}, + 39:{cateId:'39'}, + 40:{cateId:'40'} + }, + cate_exclude:'网址|演员', + lazy:`js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?)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', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/420\347\224\265\345\275\261\351\231\242.js" "b/zyplayer/drpy_dzlive/drpy_js/420\347\224\265\345\275\261\351\231\242.js" new file mode 100644 index 0000000..2ba4d7e --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/420\347\224\265\345\275\261\351\231\242.js" @@ -0,0 +1,37 @@ +var rule = { + title: '420电影院', + host: 'https://www.dapian1234.com', + url: '/sort/fyclass/fypage.html', + searchUrl: '/search-wd-**-p-fypage.html', + searchable: 2, + quickSearch: 0, + filterable: 1, + filter: '', + filter_url: '', + filter_def: {}, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + timeout: 5000, + class_parse: 'ul.nav&&li;a&&Text;a&&href;/sort/(\\d+)/', + cate_exclude: '最近更新', + play_parse: true, + lazy: $js.toString(() => { + input = {parse: 1, url: input, js: ''}; + }), + double: true, + 推荐: '.content&&.m-movies;article;*;*;*;*', + 一级: '.m-movies&&article;h2&&Text;img&&src;.zhuangtai&&Text;a&&href', + 二级: { + title: '.info-main-title&&a&&Text', + img: '.video-info-img&&style', + desc: '.video_info&&li:eq(1)&&Text', + content: '.abstract-content&&Text', + tabs: '#video_list_li h3', + lists: '.playlist:eq(#id)&&li', + tab_text: 'body&&Text', + list_text: 'body&&Text', + list_url: 'a&&href' + }, + 搜索: '*', +} \ No newline at end of file diff --git a/zyplayer/drpy_dzlive/drpy_js/4khdr.js b/zyplayer/drpy_dzlive/drpy_js/4khdr.js new file mode 100644 index 0000000..3392f53 --- /dev/null +++ b/zyplayer/drpy_dzlive/drpy_js/4khdr.js @@ -0,0 +1,185 @@ +var rule = { + title: '4KHDR[磁]', + host: 'https://www.4khdr.cn', + homeUrl: "/forum.php?mod=forumdisplay&fid=2&page=1", + url: '/forum.php?mod=forumdisplay&fid=2&filter=typeid&typeid=fyclass&page=fypage', + filter_url: '{{fl.class}}', + filter: {}, + searchUrl: '/search.php#searchsubmit=yes&srchtxt=**;post', + searchable: 2, + quickSearch: 1, + filterable: 0, + headers: { + 'User-Agent': 'PC_UA', + 'Cookie': 'http://127.0.0.1:9978/file:///tvbox/JS/lib/4khdr.txt', + }, + timeout: 5000, + class_name: "4K电影&4K美剧&4K华语&4K动画&4K纪录片&4K日韩印&蓝光电影&蓝光美剧&蓝光华语&蓝光动画&蓝光日韩印", + class_url: "3&8&15&6&11&4&29&31&33&32&34", + play_parse: true, + play_json: [{ + re: '*', + json: { + parse: 0, + jx: 0 + } + }], + lazy: '', + limit: 6, + 推荐: 'ul#waterfall li;a&&title;img&&src;div.auth.cl&&Text;a&&href', + 一级: 'ul#waterfall li;a&&title;img&&src;div.auth.cl&&Text;a&&href', + 二级: { + title: "#thead_subject&&Text", + img: "img.zoom&&src", + desc: 'td[id^="postmessage_"] font&&Text', + content: 'td[id^="postmessage_"] font&&Text', + tabs: `js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +TABS=[] +let d = pdfa(html, 'div.pcb table.t_table a'); +let tabsa = []; +let tabsq = []; +let tabsm = false; +let tabse = false; +d.forEach(function(it) { + let burl = pdfh(it, 'a&&href'); + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + tabsa.push("阿里雲盤"); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + tabsq.push("夸克網盤"); + }else if (burl.startsWith("magnet")){ + tabsm = true; + }else if (burl.startsWith("ed2k")){ + tabse = true; + } +}); +if (tabsm === true){ + TABS.push("磁力"); +} +if (tabse === true){ + TABS.push("電驢"); +} +if (false && tabsa.length + tabsq.length > 1){ + TABS.push("選擇右側綫路"); +} +let tmpIndex; +tmpIndex=1; +tabsa.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +tmpIndex=1; +tabsq.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +log('4khdr TABS >>>>>>>>>>>>>>>>>>' + TABS); +`, + lists: `js: +log(TABS); +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +LISTS = []; +let d = pdfa(html, 'div.pcb table.t_table a'); +let lista = []; +let listq = []; +let listm = []; +let liste = []; +d.forEach(function(it){ + let burl = pdfh(it, 'a&&href'); + let title = pdfh(it, 'a&&Text'); + log('4khdr title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title); + log('4khdr burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl); + let loopresult = title + '$' + burl; + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + lista.push(loopresult); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + listq.push(loopresult); + }else if (burl.startsWith("magnet")){ + listm.push(loopresult); + }else if (burl.startsWith("ed2k")){ + liste.push(loopresult); + } +}); +if (listm.length>0){ + LISTS.push(listm); +} +if (liste.length>0){ + LISTS.push(liste); +} +if (false && lista.length + listq.length > 1){ + LISTS.push(["選擇右側綫路,或3秒後自動跳過$http://127.0.0.1:10079/delay/"]); +} +lista.forEach(function(it){ + LISTS.push([it]); +}); +listq.forEach(function(it){ + LISTS.push([it]); +}); +`, + + }, + 搜索: `js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +if (rule_fetch_params.headers.Cookie.startsWith("http")){ + rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie); + let cookie = rule_fetch_params.headers.Cookie; + setItem(RULE_CK, cookie); +}; +log('4khdr search cookie>>>>>>>>>>>>>>>' + rule_fetch_params.headers.Cookie); +let new_host= HOST + '/search.php'; +let new_html=request(new_host); +let formhash = pdfh(new_html, 'input[name="formhash"]&&value'); +log("4khdr formhash>>>>>>>>>>>>>>>" + formhash); +let params = 'formhash=' + formhash + '&searchsubmit=yes&srchtxt=' + encodeURIComponent(KEY); +let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); +let postData = { + body: params +}; +Object.assign(_fetch_params, postData); +log("4khdr search postData>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params)); +let search_html = post( HOST + '/search.php?mod=forum', _fetch_params) +//log("4khdr search result>>>>>>>>>>>>>>>" + search_html); +let d=[]; +let dlist = pdfa(search_html, 'div#threadlist ul li'); +dlist.forEach(function(it){ + let title = pdfh(it, 'h3&&Text'); + if (searchObj.quick === true){ + if (title.includes(KEY)){ + title = KEY; + } + } + let img = ""; + let content = pdfh(it, 'p:eq(2)&&Text'); + let desc = pdfh(it, 'p:eq(3)&&Text'); + let url = pd(it, 'a&&href', HOST); + d.push({ + title:title, + img:img, + content:content, + desc:desc, + url:url + }) +}); +setResult(d); + `, +} diff --git "a/zyplayer/drpy_dzlive/drpy_js/555\345\275\261\350\247\206[\351\243\236].js" "b/zyplayer/drpy_dzlive/drpy_js/555\345\275\261\350\247\206[\351\243\236].js" new file mode 100644 index 0000000..b404622 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/555\345\275\261\350\247\206[\351\243\236].js" @@ -0,0 +1,25 @@ +// 搜索验证 +// 网址发布页 https://www.555dy.top +muban.mxpro.二级.desc = '.module-info-item:eq(-1)&&Text;;;.module-info-item-content:eq(2)&&Text;.module-info-item-content:eq(0)&&Text'; +var rule = { + title: '555影视[飞]', + 模板: 'mxpro', + host: 'https://www.555dyy.top', + hostJs: 'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src=jsp.pdfh(html,".row:eq(1)&&a&&href");print(src);HOST=src', + url: '/vodshow/fyfilter.html', + filterable: 1,//是否启用分类筛选, + filter_url: '{{fl.cateId}}-{{fl.area}}-{{fl.by}}-{{fl.class}}-{{fl.lang}}----fypage---{{fl.year}}', + filter: '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', + filter_def: { + 1: {cateId: '1', by: 'time'}, + 2: {cateId: '2', by: 'time'}, + 3: {cateId: '3', by: 'time'}, + 4: {cateId: '4', by: 'time'}, + 124: {cateId: '124', by: 'time'} + }, + class_parse: 'li.navbar-item;a&&Text;a&&href;.*/(\\d+)', + cate_exclude: 'Netflix|追剧周表|今日更新|专题|排行|地址', + searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50', + detailUrl: '/voddetail/fyid.html', //非必填,二级详情拼接链接 + 搜索: 'json:list;name;pic;;id', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/6V\346\226\260\347\211\210[\347\243\201].js" "b/zyplayer/drpy_dzlive/drpy_js/6V\346\226\260\347\211\210[\347\243\201].js" new file mode 100644 index 0000000..af57e87 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/6V\346\226\260\347\211\210[\347\243\201].js" @@ -0,0 +1,65 @@ +var rule = { + title:'6V新版[磁]', + host:'http://www.xb6v.com', + // host:'https://www.66s6.net', + // url: '/fyclass/index_fypage.html[/fyclass/index.html]', + url: '/fyclassfyfilter/index_fypage.html[/fyclassfyfilter/index.html]', + filter_url:'{{fl.class}}', + filter:{ + "dianshiju":[{"key":"class","name":"类型","value":[{"n":"全部","v":""},{"n":"国剧","v":"/guoju"},{"n":"日韩剧","v":"/rihanju"},{"n":"欧美剧","v":"/oumeiju"}]}] + }, + searchUrl: '/e/search/index.php#show=title&tempid=1&tbname=article&mid=1&dopost=search&submit=&keyboard=**;post', + searchable:2, + quickSearch:0, + filterable:1, + headers:{ + 'User-Agent': 'MOBILE_UA' + }, + timeout:5000, + class_parse:'#menus&&li:gt(1);a&&Text;a&&href;.*/(.*)/', + cate_exclude:'欧美剧|旧版6v', + play_parse:true, + limit:6, + 推荐: '*', + 一级: '#post_container&&li;h2&&Text;img&&src;.info_date&&Text;a&&href', + 二级: { + "title": "#content&&h1&&Text;.info_category&&Text", + "img": "#post_content&&img&&src", + "desc": ";;;#post_content&&p:eq(0)&&Text;#post_content&&p:eq(2)&&Text", + "content": "#post_content&&p:eq(1)&&Text", + "tabs": `js: + TABS = ["道长磁力"]; + let tabs = pdfa(html, '#content&&h3:not(:contains(网盘))'); + tabs.forEach((it) => { + TABS.push(pdfh(it, "body&&Text").replace('播放地址','道长在线').replace('(无插件 极速播放)','一').replace('(无需安装插件)','二')) + }); + `, + "lists": `js: + log(TABS); + pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; + LISTS = []; + let i = 1; + TABS.forEach(function(tab) { + if (/道长磁力/.test(tab)) { + var d = pdfa(html, '.context&&td'); + d = d.map(function(it) { + var title = pdfh(it, 'a&&Text'); + var burl = pd(it, 'a&&href'); + return title + '$' + burl + }); + LISTS.push(d) + } else if (/道长在线/.test(tab) && i <= TABS.length-1) { + var d = pdfa(html, '.context&&.widget:eq(list_idx)&&a'.replace("list_idx", i)); + d = d.map(function(it) { + var title = pdfh(it, 'a&&Text'); + var burl = pd(it, 'a&&href'); + return title + '$' + burl + }); + LISTS.push(d) + i = i + 1; + } + }); + `, + }, + 搜索: '*', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/777\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/777\345\275\261\350\247\206.js" new file mode 100644 index 0000000..80c2a69 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/777\345\275\261\350\247\206.js" @@ -0,0 +1,12 @@ +var rule = { + title: '777影视', + 模板:'mxpro', + host: '777ys.pro', + host: 'http://www.777ys.vip', + url: '/show/fyclassfyfilter', + searchUrl: '/search/page/fypage/wd/**/', + filterable: 1, + filter_url:'{{fl.地区}}{{fl.排序}}{{fl.剧情}}{{fl.字母}}/page/fypage{{fl.年份}}', + filter:'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', + class_parse: '.navbar-items&&.navbar-item;a&&Text;a&&href;type/(\\w+)/', +} \ No newline at end of file diff --git a/zyplayer/drpy_dzlive/drpy_js/HDmoli.js b/zyplayer/drpy_dzlive/drpy_js/HDmoli.js new file mode 100644 index 0000000..d6827d7 --- /dev/null +++ b/zyplayer/drpy_dzlive/drpy_js/HDmoli.js @@ -0,0 +1,12 @@ +/** + * 待补充lazy免嗅探,不然嗅探过程中遇到的这种地址不对 https://www.hdmoli.pro/js/player/videojs/videojs.html?v=1.61&videourl=/play/2203-0-0.html,https://v.damoli.pro/v/movie/Rebel.Moon.Part.Two.mp4,,2203,0,0 + */ +var rule = { + 模板: '首图', + title: 'HDmoli', + host: 'https://www.hdmoli.pro', + url: '/mlist/indexfyclass-fypage.html', + searchUrl: '/search.php?page=fypage&searchword=**&searchtype=', + class_parse: '.myui-header__menu li;a&&Text;a&&href;index(\\d+)\.html', + lazy: ``, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/LIBVIO[\344\274\230].js" "b/zyplayer/drpy_dzlive/drpy_js/LIBVIO[\344\274\230].js" new file mode 100644 index 0000000..c4ad6c8 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/LIBVIO[\344\274\230].js" @@ -0,0 +1,46 @@ +// 永久网址:https://libvio.app +Object.assign(muban.首图2.二级, { + title: 'h1&&Text;.data:eq(0)&&Text', + desc: '.data.hidden-xs&&Text;;;.data:eq(1)&&Text;.data:eq(4)&&Text', + content: '.detail-content&&Text', +}); +var rule = { + title: 'LIBVIO[优]', + 模板: '首图2', + host: 'https://www.libvio.app', + hostJs: 'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src=jsp.pdfh(html,"li:eq(0)&&a:eq(1)&&href");print(src);HOST=src', + // url:'/type/fyclass-fypage.html', + url: '/show/fyclassfyfilter.html', + filterable: 1,//是否启用分类筛选, + filter_url: '-{{fl.area}}-{{fl.by}}--{{fl.lang}}----fypage---{{fl.year}}', + filter: 'H4sIAAAAAAAAA+1YXU8TQRT9L/Pch5kFWuSvGB5Ws1EC1qSgSUOamAAGRWhClE0jRk34KAm1qxKEJS1/pjPt/gtnmY97V+NakqJtMm9zzrl3t2d27kl3Vwkjc/dXyWJQJXPErwQ+KZCy/ySQiO9H/E0s8XN/6VlwU1ZO6Y1mstZMaQlIraDY3kWLv+/wg+Ok8VJrGSpblxw1xEU7U6epX65Xj8RlN3s9RZm6fndHkrpCA6OJ7+9A08Bog62voGlg+8JDsX9q+hQwWvLxBPo0MBrv/gBNA/gtEf4tUaZvO+LxkelTwPat1+UO8s0T02qxdXJ43a+3+q8axozF9vqvP4mta9lmbmGxrdg4713tGVmB2nyqqoNRDfwKOhiXZ72rzpAHw6PetOZuloifAn4K8x7wHuYZ8AzzFHiKeHbP8nKJ+FngZzFfAr6E+SLwRczPAD+DefDLsF8Gfhn2y8Avw34Z+GXYLwO/cokf05JffgSPadBuDZovhnxM8jzKenMCFECzApoGdv6+HYCmgZ2VsMO3Q5ABo2lCsgJoCkHTAE020hRAU4icKIDOOf+yBuc8BXgDH1Rh+8TOLo/rv22fCM+T8ExfYmVBltrIimMRvdXK44WVZdjA9jrfNLG4/PBpJUjvOl8g3v8I37+H6rAhnReGeSGaH9p/Dsrc0N6LZK7xD59Nq8Uu5FzITWLIjVtYTY8yrDKxMlRoiNNjGRVGU8CN9uSPtuUp+KXYLwW/FPul4JdivxT8UuyXgl+K/VLwK5cuasYgauR5HEnW3PpNzmXGRGSGm9ExmNHiaGY072Ug7w9/3tcW98XDTb+b/jv9clFC0/9vb177CdukNH21FgAA', + headers: { + 'User-Agent': 'UC_UA' + }, + class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html', + pagecount: {"27": 1}, + lazy: `js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) { + rule.tab_exclude = '猜你喜欢'; + }), +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/TVB\344\272\221\346\222\255.js" "b/zyplayer/drpy_dzlive/drpy_js/TVB\344\272\221\346\222\255.js" new file mode 100644 index 0000000..a2039f4 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/TVB\344\272\221\346\222\255.js" @@ -0,0 +1,40 @@ +var rule = { + title: 'TVB云播', + //模板:'mxpro', + host: 'http://www.tvyb03.com', + url: 'vod/show/id/fyfilter.html', + filterable: 1,//是否启用分类筛选, + filter_url: '{{fl.cateId}}{{fl.area}}{{fl.by}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}', + class_name: '电影&电视剧&综艺&动漫&日韩剧&国产剧&欧美剧&港台剧', + class_url: '1&2&3&4&16&13&15&14', + filter: 'H4sIAAAAAAAAA+2Z7VIiRxSG74XfVjGDrh97B7mG1P5gN1SyFWOq1KTK2rJKRRDUCFouLgt+ZUXQiIIao0OQm5nuGe4iA92cPn3GWsbSpDYJP33O6+nutxv6ZeZdyAy9/Ppd6PvYXOhl6E10NvbVN6Gh0FT0h5j3t1NvsL017++fo5M/xbrCKQ+zRKUdr3Sw94cZmh+SeLViN4tOekVWRlUlV2TpsqqMQcVJ1Xk8oSrjqlLeZHcNVZmACl/M8oWcqpiGGihd1tqZanY89cG20qgUCc2/6hTl0iejMzNq5aLR51dOlidpuNspLJm+Tl0imb4sXSKZ7jAZSDDdNjKQYLpJpItgullkLoL1JG71mK2f6hLJYC6rF06TSCRDK3K2G74VdRhISiu+FUkG060e2/cHZLqCQZfkVjt/QroIBl32Tr01ki6CgWTpzMltEolgIImv8qWPRCIY+NLIsMQt8UWwnqS9u8U/lHSJZDBQbsVNW2QgwWDR9+fO9u+sWSfrBgzCzJH7iR4JwUCykWSZSyIRDI5EK+vtHTkSgqltKPLdTboNXQaS5ZbzG1m6ZGBgc9NpFB9amlbBn+/odCyKPt7FGlu3gn68j8rtfLI3TqdRWCLYreM8v73QFBIpg2v87l7vIRCs6X6DFZqaQiLY8Kv3VCERbMBanSokgh47JV4803sIBGvZP6E9JFKn6g+qkEjNtOafaU3r8UuNWcd6D4Ggx3LGc5mlTvQ2QGHNpZaTqTrpvL5soOqb5oCvtbx/1gcFCrrEjd3I6SKB8HGajE59q46Te1F1KwtBj1Oh6el7A3QahSVC20gVEsFhuTyiConQNlKFROgoUIVE6MD5FAKho+Bbi0DITnYe1xUCYTvnYtFp9Om8u7YbzYB2RozISK99p024C1B1mFaHcTVCqxFcNWnVxFWDVg1UNSdI1ZzA1XFaHcfVMVodw9VRWh3F1Re0+gJXqVcm9sqkXpnYK5N6ZWKvTOqVib0yqVcm9sqgXhnYK4N6ZWCvDOqVgb0yqFcG9sqgXhnYK4N65QF8aF/PqSPLN7aYlQl4ZPnOTXvnutf89Vx49q3XpFe1LYvXtlH1u7ezM+q74WKZpZKoOvPmx+lYZ16vhkKRJ2b5CP6Ssq2ySrXoIHjXmnd1odII/krp3BWqpOzkZ+XOdaZKo88Xv/uHlwBxii3esHiGdBHsETmfnd8wq0okgj0uFffL+QFScYCcHyDUBQir9t2hL9RJplJxgucvdIlkMJf3SV/8lgzlPt8GSPbw9S27+O/vp8TBZMLT6wFBoOAR6jkCY/8oFyRS9gtqASJlrualKLZ7qLcB+rhgNUgCgyTwr0sC/4tfA8GS/JcXioZxKHpCzGgvpJ3yAskQguFbbnnff8t5DKZ63nJrKV0iGXTZqvJVElYkU2Yl+C25lCVTW35l32XJdAVD90P7E5muZCCxTtn5HpEIBnMpXPqfQwkGXbb3+TV9KCmYSpW3PJWxrS3fEyStAjZe/+qFEGKjYNCxvuQurpNegv1jSUBkZf1iFEiPzPQW7yA9OesKgQZfQYOHCYMI8d+IEF/evTnyTPdmgEsxwEsrJ151D8ntKxkMtFFxskkykGAgye45Z/T9jWDqS73viyI3u+tukLdjksFAB4esQJ4DSPaIH/m8aPnfSAkGc+n/ziXAyzxW88y+JnMRDEtKV36Jx2CPju7tP8mrL8nUA4d9liqQLoKpI3vJqiS4SAYDFVZ5nkQOyZS7ddbaoe522cO3yd/yqKD7FE0PCAIF/xH/mev/UT+sBwFhEBAGAWEQEJ4rIMz/BZ2B9n47JAAA', + filter_def: { + 1: {cateId: '1'}, + 2: {cateId: '2'}, + 3: {cateId: '3'}, + 4: {cateId: '4'}, + 13: {cateId: '13'}, + 14: {cateId: '14'}, + 15: {cateId: '15'}, + 16: {cateId: '16'} + }, + searchUrl: '/vod/search.html?wd=**&submit=', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + play_parse: true, + lazy: '', + limit: 6, + tab_exclude: '热门资讯', + 推荐: 'ul.myui-vodlist;li;*;*;*;*', + double: true, // 推荐内容是否双层定位 + 一级: '.myui-vodlist__box;a&&title;.lazyload&&data-original;.tag&&Text;a&&href', + 二级: { + "title": "h1&&Text;.data:eq(0) a:eq(0)&&Text", + "img": ".lazyload&&data-original", + "desc": ";.data:eq(0) a:eq(2)&&Text;.data:eq(0) a:eq(1)&&Text;.data:eq(2)&&Text;.data:eq(3)&&Text", + "content": ".text-collapse span&&Text", + "tabs": ".myui-panel__head h3", + "lists": ".myui-content__list:eq(#id) li" + }, + 搜索: 'ul.myui-vodlist__media li;*;*;*;*', +} \ No newline at end of file diff --git a/zyplayer/drpy_dzlive/drpy_js/freeok.js b/zyplayer/drpy_dzlive/drpy_js/freeok.js new file mode 100644 index 0000000..fb565b2 --- /dev/null +++ b/zyplayer/drpy_dzlive/drpy_js/freeok.js @@ -0,0 +1,27 @@ +var rule={ + title: 'freeok', + host: 'https://www.freeok.pro', + url: '/vod-show/fyclass--------fypage---.html', + searchUrl: '/so1so/**----------fypage---.html', + searchable: 2, + quickSearch: 0, + filterable: 0, + headers: { + 'User-Agent': 'Mozilla/5.0', + }, + class_parse: '.navbar&&ul&&li;a&&Text;a&&href;/(\\d+).html', + class_exclude:'留言|首页|网盘|', + play_parse: true, + lazy: '', + limit: 6, + 推荐: 'body&&.scroll-box;.module-poster-item.module-item;.module-poster-item-title&&Text;img&&data-original;.module-item-note&&Text;a&&href', + double: true, + 一级: 'body&&.module-item;a&&title;img&&data-original;.module-item-note&&Text;a&&href', + 二级: { + "title": "h1&&Text;.module-info-tag&&Text", + "img": ".lazyload&&data-original", + "desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text", + "content": ".module-info-introduction&&Text", + "tabs": ".module-tab-item", + "lists": ".module-play-list:eq(#id) a"}, + 搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/ok\350\265\204\346\272\220[\350\265\204].js" "b/zyplayer/drpy_dzlive/drpy_js/ok\350\265\204\346\272\220[\350\265\204].js" new file mode 100644 index 0000000..798b5d1 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/ok\350\265\204\346\272\220[\350\265\204].js" @@ -0,0 +1,12 @@ +// https://api.okzy.org/api.php/provide/vod/from/okm3u8/at/xml +// https://api.okzy.org/api.php/provide/vod/?ac=list + +var rule = { + 模板: '采集1', + title: 'OK资源[资]', + host: 'https://api.okzy.org', + // homeTid: '13', + homeTid: '', + cate_exclude: '电影|电视剧|综艺|动漫|体育赛事|斯诺克', + parse_url: '', +} \ No newline at end of file diff --git a/zyplayer/drpy_dzlive/drpy_js/voflix.js b/zyplayer/drpy_dzlive/drpy_js/voflix.js new file mode 100644 index 0000000..c6806a6 --- /dev/null +++ b/zyplayer/drpy_dzlive/drpy_js/voflix.js @@ -0,0 +1,55 @@ +muban.mxpro.二级.desc = '.module-info-item:eq(4)&&Text;;;.module-info-item-content:eq(1)&&Text;.module-info-item-content:eq(0)&&Text'; +muban.mxpro.二级.tab_text = 'body--small&&Text'; +var rule = { + title: 'voflix', + 模板: 'mxpro', + host: 'https://www.voflix.me', + homeUrl: '/label/new.html', + // url:'/show/fyclass--------fypage---.html', + url: '/show/fyfilter.html', + filterable: 1,//是否启用分类筛选, + filter_url: '{{fl.cateId}}-{{fl.area}}-{{fl.by or "time"}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}', + filter: { + "1":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"1"},{"n":"动作","v":"6"},{"n":"喜剧","v":"7"},{"n":"爱情","v":"8"},{"n":"科幻","v":"9"},{"n":"恐怖","v":"10"},{"n":"剧情","v":"11"},{"n":"战争","v":"12"},{"n":"动画","v":"23"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"恐怖","v":"恐怖"},{"n":"动作","v":"动作"},{"n":"科幻","v":"科幻"},{"n":"剧情","v":"剧情"},{"n":"战争","v":"战争"},{"n":"警匪","v":"警匪"},{"n":"犯罪","v":"犯罪"},{"n":"动画","v":"动画"},{"n":"奇幻","v":"奇幻"},{"n":"武侠","v":"武侠"},{"n":"冒险","v":"冒险"},{"n":"枪战","v":"枪战"},{"n":"恐怖","v":"恐怖"},{"n":"悬疑","v":"悬疑"},{"n":"惊悚","v":"惊悚"},{"n":"经典","v":"经典"},{"n":"青春","v":"青春"},{"n":"文艺","v":"文艺"},{"n":"微电影","v":"微电影"},{"n":"古装","v":"古装"},{"n":"历史","v":"历史"},{"n":"运动","v":"运动"},{"n":"农村","v":"农村"},{"n":"儿童","v":"儿童"},{"n":"网络电影","v":"网络电影"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国香港","v":"中国香港"},{"n":"中国台湾","v":"中国台湾"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"德国","v":"德国"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"国产剧","v":"13"},{"n":"港台剧","v":"14"},{"n":"日韩剧","v":"15"},{"n":"欧美剧","v":"16"},{"n":"纪录片","v":"21"},{"n":"泰国剧","v":"24"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春偶像","v":"青春偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国台湾","v":"中国台湾"},{"n":"中国香港","v":"中国香港"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"},{"n":"少女","v":"少女"},{"n":"社会","v":"社会"},{"n":"原创","v":"原创"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国","v":"中国"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "3":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"选秀","v":"选秀"},{"n":"情感","v":"情感"},{"n":"访谈","v":"访谈"},{"n":"播报","v":"播报"},{"n":"旅游","v":"旅游"},{"n":"音乐","v":"音乐"},{"n":"美食","v":"美食"},{"n":"纪实","v":"纪实"},{"n":"曲艺","v":"曲艺"},{"n":"生活","v":"生活"},{"n":"游戏互动","v":"游戏互动"},{"n":"财经","v":"财经"},{"n":"求职","v":"求职"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "13":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"国产剧","v":"13"},{"n":"港台剧","v":"14"},{"n":"日韩剧","v":"15"},{"n":"欧美剧","v":"16"},{"n":"纪录片","v":"21"},{"n":"泰国剧","v":"24"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春偶像","v":"青春偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"惊悚","v":"惊悚"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2024"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "15":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"国产剧","v":"13"},{"n":"港台剧","v":"14"},{"n":"日韩剧","v":"15"},{"n":"欧美剧","v":"16"},{"n":"纪录片","v":"21"},{"n":"泰国剧","v":"24"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春偶像","v":"青春偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"惊悚","v":"惊悚"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "16":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"国产剧","v":"13"},{"n":"港台剧","v":"14"},{"n":"日韩剧","v":"15"},{"n":"欧美剧","v":"16"},{"n":"纪录片","v":"21"},{"n":"泰国剧","v":"24"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"古装","v":"古装"},{"n":"战争","v":"战争"},{"n":"青春偶像","v":"青春偶像"},{"n":"喜剧","v":"喜剧"},{"n":"家庭","v":"家庭"},{"n":"犯罪","v":"犯罪"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"剧情","v":"剧情"},{"n":"历史","v":"历史"},{"n":"经典","v":"经典"},{"n":"乡村","v":"乡村"},{"n":"情景","v":"情景"},{"n":"商战","v":"商战"},{"n":"网剧","v":"网剧"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"美国","v":"美国"},{"n":"英国","v":"英国"},{"n":"德国","v":"德国"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] + }, + filter_def: { + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 4:{cateId:'4'}, + 3:{cateId:'3'}, + 13:{cateId:'13'}, + 15:{cateId:'15'}, + 16:{cateId:'16'} + }, + tab_remove:['夸克网盘'], + class_parse: '.navbar-items&&li;a&&Text;a&&href;/(\\d+).html', + lazy: `js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?){ + input = {parse:1,url:input,js:''}; + }), + double:true, + 推荐:'.main&&.bgte1130;ul&&.sb-film-one;*;*;*;*', + 一级:'.sb-area-index&&ul&&.qcontainer;i&&Text;.lazy&&data-original;.other&&Text;a&&href', + 二级:{ + title:'.name&&Text;.ct&&dd&&Text', + img:'.lazy&&data-original', + desc:'.ct&&dd:eq(1)&&Text;.ct&&dd:eq(2)&&Text;.ct&&dt:eq(2)&&Text;.ct&&dt&&Text;', + content:'div.ee&&Text', + tabs:'.playfrom--sup&&li', + lists:'.playlist:eq(#id)&&ul&&li', + lists:$js.toString(()=>{ + //log(html); + LISTS = []; + pdfa(html,'body&&.playlist').forEach((it)=>{ + let lis = pdfa(it,'ul&&li'); + let lis1 = []; + lis.forEach((item,index)=>{ + let tt = pdfh(item,'body&&Text'); + //log('item:'+item); + let uu = pd(item,'a&&href',MY_URL); + if(!/дрр/.test(tt)){ + lis1.push(tt+'$'+uu); + } + }); + LISTS.push(lis1); + }); + }), + tab_text:'body&&Text', + list_text:'body&&Text', + list_url:'a&&href' + }, + 搜索:'列表;标题;图片;描述;链接;详情', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\344\270\203\345\271\264\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\344\270\203\345\271\264\345\275\261\350\247\206.js" new file mode 100644 index 0000000..222fd8b --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\344\270\203\345\271\264\345\275\261\350\247\206.js" @@ -0,0 +1,74 @@ +var rule = { + title:'七年影视', + 模板:'首图2', + host:'https://www.haying.tech', + // url:'/vodshow/fyclass--------fypage---.html', + url:'/vodshow/fyfilter.html', + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.cateId}}-{{fl.area}}-{{fl.by}}-{{fl.class}}-----fypage---{{fl.year}}', + filter:{ + "1":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"1"},{"n":"科幻片","v":"8"},{"n":"动作片","v":"5"},{"n":"福利片","v":"17"},{"n":"喜剧片","v":"6"},{"n":"爱情片","v":"7"},{"n":"恐怖片","v":"9"},{"n":"剧情片","v":"10"},{"n":"网络电影","v":"16"},{"n":"动画电影","v":"19"},{"n":"战争片","v":"11"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"新加坡","v":"新加坡"},{"n":"马拉西亚","v":"马拉西亚"},{"n":"印度","v":"印度"},{"n":"英国","v":"英国"},{"n":"法国","v":"法国"},{"n":"加拿大","v":"加拿大"},{"n":"西班牙","v":"西班牙"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "2":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"2"},{"n":"国产剧","v":"12"},{"n":"网剧","v":"20"},{"n":"欧美剧","v":"15"},{"n":"日韩剧","v":"14"},{"n":"港台剧","v":"13"},{"n":"海外剧","v":"18"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"新加坡","v":"新加坡"},{"n":"马来西亚","v":"马来西亚"},{"n":"印度","v":"印度"},{"n":"英国","v":"英国"},{"n":"法国","v":"法国"},{"n":"加拿大","v":"加拿大"},{"n":"西班牙","v":"西班牙"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"}]},{"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":"文化"},{"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":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"竞技","v":"竞技"},{"n":"热血","v":"热血"},{"n":"悬疑","v":"悬疑"},{"n":"推理","v":"推理"},{"n":"益智","v":"益智"},{"n":"机甲","v":"机甲"},{"n":"少女","v":"少女"},{"n":"恋爱","v":"恋爱"},{"n":"日常","v":"日常"},{"n":"校园","v":"校园"},{"n":"奇幻","v":"奇幻"},{"n":"玄幻","v":"玄幻"},{"n":"魔幻","v":"魔幻"},{"n":"科幻","v":"科幻"},{"n":"武侠","v":"武侠"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] + }, + filter_def:{ + 1:{cateId:'1',by:'time'}, + 2:{cateId:'2',by:'time'}, + 3:{cateId:'3',by:'time'}, + 4:{cateId:'4',by:'time'} + }, + class_parse: '.stui-header__menu li:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html', + tab_exclude:'影片|评论|榜单|网络|最新推荐', + parse: 'https://jx.lasi.fun/blue/index.php?url=', + lazy: $js.toString(() => { + let html = JSON.parse(request(input).match(/r player_.*?=(.*?) { + TABS = ['道长在线'] + }), + lists: '.module-blocklist:eq(#id)&&a', +}); +muban.mxone5.二级.title = '.title-link&&Text;.tag-link&&Text'; +var rule = { + 模板: 'mxone5', + title: '人人影视', + host: 'https://www.renren.pro', + url: '/list/fyclass?page=fypage', + searchUrl: '/search?wd=**', + class_parse: '.nav-menu-items&&li;a&&Text;a&&href;/list/(.*)', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\344\274\230\351\205\267[\345\256\230].js" "b/zyplayer/drpy_dzlive/drpy_js/\344\274\230\351\205\267[\345\256\230].js" new file mode 100644 index 0000000..223d9c4 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\344\274\230\351\205\267[\345\256\230].js" @@ -0,0 +1,175 @@ +var rule = { + title: '优酷[官]', + host: 'https://www.%79%6f%75%6b%75.com', + homeUrl: '', + searchUrl: 'https://search.%79%6f%75%6b%75.com/api/search?pg=fypage&keyword=**', + searchable: 2, + quickSearch: 0, + filterable: 1, + multi: 1, + url: '/category/data?optionRefresh=1&pageNo=fypage¶ms=fyfilter', + filter_url: '{{fl}}', + filter: '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', + headers: { + 'User-Agent': 'PC_UA', + 'Cookie': 'cna=VvNvGX3e0ywCAavVEXlnA2bg; __ysuid=1626676228345Rl1; __ayft=1652434048647; __arycid=dm-1-00; __arcms=dm-1-00; __ayvstp=85; __arpvid=1667204023100cWWdgM-1667204023112; __ayscnt=10; __aypstp=60; isg=BBwcqxvvk3BxkWQGugbLpUSf7TrOlcC_U7GAj_YdfYfvQbzLHqYGT4Hgp6m5TvgX; tfstk=c3JOByYUH20ilVucLOhh0pCtE40lZfGc-PjLHLLfuX7SWNyAiQvkeMBsIw7PWDC..; l=eBQguS-PjdJFGJT-BOfwourza77OSIRA_uPzaNbMiOCPOb1B5UxfW6yHp4T6C3GVhsGJR3rp2umHBeYBqQd-nxvOF8qmSVDmn', + 'Referer': 'https://www.youku.com', + }, + timeout: 5000, + class_name: '电视剧&电影&综艺&动漫&少儿&纪录片&文化&亲子&教育&搞笑&生活&体育&音乐&游戏', + class_url: '电视剧&电影&综艺&动漫&少儿&纪录片&文化&亲子&教育&搞笑&生活&体育&音乐&游戏', + limit: 20, + play_parse: true, + lazy: $js.toString(() => { + input = { + parse: 1, + jx: 1, + url: input + }; + }), + 一级: $js.toString(() => { + let d = []; + MY_FL.type = MY_CATE; + let fl = stringify(MY_FL); + fl = encodeUrl(fl); + input = input.split("{")[0] + fl; + if (MY_PAGE > 1) { + let old_session = getItem("yk_session_" + MY_CATE, "{}"); + if (MY_PAGE === 2) { + input = input.replace("optionRefresh=1", "session=" + encodeUrl(old_session)) + } else { + input = input.replace("optionRefresh=1", "session=" + encodeUrl(old_session)) + } + } + let html = fetch(input, fetch_params); + try { + html = JSON.parse(html); + let lists = html.data.filterData.listData; + let session = html.data.filterData.session; + session = stringify(session); + if (session !== getItem("yk_session_" + MY_CATE, "{}")) { + setItem("yk_session_" + MY_CATE, session) + } + lists.forEach(function (it) { + let vid; + if (it.videoLink.includes("id_")) { + vid = it.videoLink.split("id_")[1].split(".html")[0] + } else { + vid = "msearch:" + } + d.push({ + title: it.title, + img: it.img, + desc: it.summary, + url: "https://search.youku.com/api/search?appScene=show_episode&showIds=" + vid, + content: it.subTitle + }) + }) + } catch (e) { + log("一级列表解析发生错误:" + e.message) + } + setResult(d); + }), + 二级: $js.toString(() => { + var d = []; + VOD = {}; + let html = request(input); + let json = JSON.parse(html); + if (/keyword/.test(input)) { + input = "https://search.youku.com/api/search?appScene=show_episode&showIds=" + json.pageComponentList[0].commonData.showId; + json = JSON.parse(fetch(MY_URL, fetch_params)) + } + let video_lists = json.serisesList; + var name = json.sourceName; + if (/优酷/.test(name) && video_lists.length > 0) { + let ourl = "https://v.youku.com/v_show/id_" + video_lists[0].videoId + ".html"; + let _img = video_lists[0].thumbUrl; + let html = fetch(ourl, { + headers: { + Referer: "https://v.youku.com/", + "User-Agent": PC_UA + } + }); + let json = /__INITIAL_DATA__/.test(html) ? html.split("window.__INITIAL_DATA__ =")[1].split(";")[0] : "{}"; + if (json === "{}") { + log("触发了优酷人机验证"); + VOD.vod_remarks = ourl; + VOD.vod_pic = _img; + VOD.vod_name = video_lists[0].title.replace(/(\d+)/g, ""); + VOD.vod_content = "触发了优酷人机验证,本次未获取详情,但不影响播放(" + ourl + ")" + } else { + try { + json = JSON.parse(json); + let data = json.data.data; + let data_extra = data.data.extra; + let img = data_extra.showImgV; + let model = json.data.model; + let m = model.detail.data.nodes[0].nodes[0].nodes[0].data; + let _type = m.showGenre; + let _desc = m.updateInfo || m.subtitle; + let JJ = m.desc; + let _title = m.introTitle; + VOD.vod_pic = img; + VOD.vod_name = _title; + VOD.vod_type = _type; + VOD.vod_remarks = _desc; + VOD.vod_content = JJ + } catch (e) { + log("海报渲染发生错误:" + e.message); + print(json); + VOD.vod_remarks = name + } + } + } + if (!/优酷/.test(name)) { + VOD.vod_content = "非自家播放源,暂无视频简介及海报"; + VOD.vod_remarks = name + } + + function adhead(url) { + return urlencode(url) + } + + play_url = play_url.replace("&play_url=", "&type=json&play_url="); + video_lists.forEach(function (it) { + let url = "https://v.youku.com/v_show/id_" + it.videoId + ".html"; + if (it.thumbUrl) { + d.push({ + desc: it.showVideoStage ? it.showVideoStage.replace("期", "集") : it.displayName, + pic_url: it.thumbUrl, + title: it.title, + url: play_url + adhead(url) + }) + } else if (name !== "优酷") { + d.push({ + title: it.displayName ? it.displayName : it.title, + url: play_url + adhead(it.url) + }) + } + }); + VOD.vod_play_from = name; + VOD.vod_play_url = d.map(function (it) { + return it.title + "$" + it.url + }) + .join("#"); + }), + + 搜索: $js.toString(() => { + var d = []; + let html = request(input); + let json = JSON.parse(html); + json.pageComponentList.forEach(function (it) { + if (it.hasOwnProperty("commonData")) { + it = it.commonData; + d.push({ + title: it.titleDTO.displayName, + img: it.posterDTO.vThumbUrl, + desc: it.stripeBottom, + content: it.updateNotice + " " + it.feature, + url: "https://search.youku.com/api/search?appScene=show_episode&showIds=" + it.showId + "&appCaller=h5" + }) + } + }); + setResult(d) + }), +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\344\276\240\345\256\242\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\344\276\240\345\256\242\345\275\261\350\247\206.js" new file mode 100644 index 0000000..d874e1f --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\344\276\240\345\256\242\345\275\261\350\247\206.js" @@ -0,0 +1,56 @@ +muban.mxpro.二级.tabs = '.module-tab-items-box&&.module-tab-item'; +muban.mxpro.二级.tab_text = 'span&&Text'; +var rule = { + title: '侠客影视', + 模板: 'mxpro', + host: 'http://ys.xkys.link', + url: '/index.php/vod/show/id/fyclassfyfilter.html', + filter_url: '{{fl.地区}}{{fl.排序}}{{fl.剧情}}{{fl.类型}}{{fl.语言}}{{fl.字母}}/page/fypage{{fl.年份}}', + filter: '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', + searchUrl: '/index.php/vod/search/page/fypage/wd/**.html', + filterable: 1, + class_parse: '.navbar-items li;a&&Text;a&&href;/(\\d+).html', + cate_exclude: '直播', + lazy: $js.toString(() => { + let html = JSON.parse(request(input).match(/r player_.*?=(.*?) { + let init_js = `Object.defineProperties(navigator, {platform: {get: () => 'iPhone'}});`; + input = { + parse: 1, + url: input, + js: `try{location.href = document.querySelectorAll("iframe")[1].src;}catch(err) {}document.querySelector(".line").click()`, + parse_extra: '&init_script=' + encodeURIComponent(base64Encode(init_js)), + } + }), + limit: 6, + 推荐: '.globalPicList .resize_list;*;img&&data-src;*;*', + 一级: '.globalPicList li;.sTit&&Text;img&&src;.sBottom--em&&Text;a&&href', + 二级: { + "title": ".title&&Text;.type-title&&Text", + "img": ".page-hd&&img&&src", + "desc": ".desc_item:eq(3)&&Text;.desc_item:eq(4)--span&&Text;;.desc_item:eq(1)--span&&Text;.desc_item:eq(2)--span&&Text", + "content": ".detail-con p&&Text", + "tabs": ".hd", + "lists": ".numList:eq(#id) li" + }, + 搜索: '.ulPicTxt.clearfix li;*;img&&data-src;.sDes:eq(1)&&Text;*', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\215\203\347\245\236\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\345\215\203\347\245\236\345\275\261\350\247\206.js" new file mode 100644 index 0000000..3f208f6 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\215\203\347\245\236\345\275\261\350\247\206.js" @@ -0,0 +1,56 @@ +var rule = { + title: '千神影视', + host: 'https://www.56aq.com', + url: '/vodshow/fyfilter.html', + searchUrl: '/vodsearch/**----------fypage---.html', + searchable: 2, + quickSearch: 0, + filterable: 1, + filter: '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', + filter_url: '{{fl.类型}}-{{fl.地区}}-{{fl.排序}}-{{fl.剧情}}-{{fl.语言}}-{{fl.字母}}---fypage---{{fl.年份}}', + filter_def: { + "1": { + "类型": "1" + }, + "2": { + "类型": "2" + }, + "3": { + "类型": "3" + }, + "4": { + "类型": "4" + }, + "24": { + "类型": "24" + }, + "46": { + "类型": "46" + } + }, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + timeout: 5000, + class_parse: '.swiper-wrapper&&a;a&&Text;a&&href;/(\\w+).html', + cate_exclude: 'Netflix|今日更新|专题列表|排行榜|热榜', + play_parse: true, + lazy: $js.toString(() => { + input = {parse: 1, url: input, js: ''}; + }), + double: true, + 推荐: '.content&&.module;.module-main&&a;*;*;*;*', + 一级: '.module-items&&a;a&&title;img&&data-original;.module-item-note&&Text;a&&href', + 二级: { + title: 'h1&&Text;.module-info-tag-link:eq(-1)&&Text', + img: 'img.lazyload&&data-original', + desc: '.module-info-item-content&&Text;.module-info-tag-link&&Text;.module-info-tag-link:eq(1)&&Text', + content: '.module-info-introduction-content&&p&&Text', + tabs: '.module-tab-items-box&&.tab-item', + lists: '.tab-list:eq(#id)&&a', + tab_text: 'body&&Text', + list_text: 'body&&Text', + list_url: 'a&&href' + }, + 搜索: '.module-card-item;strong&&Text;*;*;*;.module-info-item-content&&Text', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\215\227\347\223\234\345\275\261\350\247\206[\344\274\230].js" "b/zyplayer/drpy_dzlive/drpy_js/\345\215\227\347\223\234\345\275\261\350\247\206[\344\274\230].js" new file mode 100644 index 0000000..71f75c3 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\215\227\347\223\234\345\275\261\350\247\206[\344\274\230].js" @@ -0,0 +1,189 @@ +// 注入全局方法 (仅支持tvbox的js1以及c#版drpy的js0,暂不支持drpy官方py版的js0) +// 注入全局方法 (仅支持tvbox的js1以及c#版drpy的js0,暂不支持drpy官方py版的js0) +// 注入全局方法 (仅支持tvbox的js1以及c#版drpy的js0,暂不支持drpy官方py版的js0) +globalThis.getHeaders= function(input){ + let t = new Date().getTime().toString(); + let headers = { + 'version_name': '1.0.6', + 'version_code': '6', + 'package_name': 'com.app.nanguatv', + 'sign': md5('c431ea542cee9679#uBFszdEM0oL0JRn@' + t).toUpperCase(), + 'imei': 'c431ea542cee9679', + 'timeMillis': t, + 'User-Agent': 'okhttp/4.6.0' + }; + return headers +} + +var rule = { + title:'南瓜影视[优]', + host:'http://ys.changmengyun.com', + homeUrl:'/api.php/provide/vod_rank?app=ylys&sort_type=month&imei=c431ea542cee9679&id=2&page=1', + url:'/api.php/provide/vod_list?app=ylys&id=fyclassfyfilter&page=fypage&imei=c431ea542cee9679', + detailUrl:'/api.php/provide/vod_detail?app=ylys&imei=c431ea542cee9679&id=fyid', + searchUrl:'/api.php/provide/search_result_more?app=ylys&video_name=**&pageSize=20&tid=0&imei=c431ea542cee9679&page=fypage', + searchable:2, + quickSearch:0, + filterable:1, + filter_url:'&area={{fl.area}}&year={{fl.year}}&type={{fl.class}}&total={{fl.total or "状态"}}&order={{fl.by or "新上线"}}', + filter:{ + "2":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"国产剧","v":"国产剧"},{"n":"港台剧","v":"港台剧"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"内地","v":"内地"},{"n":"香港地区","v":"香港地区"},{"n":"台湾地区","v":"台湾地区"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"好评榜","v":"好评榜"},{"n":"新上线","v":"新上线"}]}], + "1":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"动作片","v":"动作片"},{"n":"喜剧片","v":"喜剧片"},{"n":"爱情片","v":"爱情片"},{"n":"科幻片","v":"科幻片"},{"n":"恐怖片","v":"恐怖片"},{"n":"剧情片","v":"剧情片"},{"n":"战争片","v":"战争片"},{"n":"惊悚片","v":"惊悚片"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"华语","v":"华语"},{"n":"香港地区","v":"香港地区"},{"n":"美国","v":"美国"},{"n":"欧洲","v":"欧洲"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"台湾地区","v":"台湾地区"},{"n":"泰国","v":"泰国"},{"n":"台湾地区","v":"台湾地区"},{"n":"印度","v":"印度"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"好评榜","v":"好评榜"},{"n":"新上线","v":"新上线"}]}], + "4":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"国产漫","v":"国产漫"},{"n":"欧美漫","v":"欧美漫"},{"n":"日韩漫","v":"日韩漫"},{"n":"港台漫","v":"港台漫"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"中国大陆","v":"中国大陆"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"欧美","v":"欧美"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"新上线","v":"新上线"}]},{"key":"total","name":"状态","value":[{"n":"全部","v":"状态"},{"n":"连载","v":"连载"},{"n":"完结","v":"完结"}]}], + "3":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"大陆","v":"大陆"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"内地","v":"内地"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"新上线","v":"新上线"}]}], + "46":[{"key":"class","name":"类型","value":[{"n":"全部","v":"类型"},{"n":"日韩剧","v":"日韩剧"},{"n":"欧美剧","v":"欧美剧"},{"n":"海外剧","v":"海外剧"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":"地区"},{"n":"韩国","v":"韩国"},{"n":"美剧","v":"美剧"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":"年份"},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"10年代","v":"10年代"},{"n":"00年代","v":"00年代"},{"n":"90年代","v":"90年代"},{"n":"80年代","v":"80年代"}]},{"key":"by","name":"排序","value":[{"n":"热播榜","v":"热播榜"},{"n":"好评榜","v":"好评榜"},{"n":"新上线","v":"新上线"}]}] + }, + headers:{ + "User-Agent":"okhttp/4.6.0" + }, + timeout:5000, + class_name:'电视剧&电影&动漫&综艺&海外精选', // /api.php/provide/home_nav + class_url:'2&1&4&3&46', + limit:20, + play_parse:true, + lazy:`js: + try { + function getvideo(url) { + let jData = JSON.parse(request(url, { + headers: getHeaders(url) + })); + if (jData.code == 1) { + return jData.data.url + } else { + return 'http://43.154.104.152:1234/jhapi/cs.php?url=' + url.split('=')[1] + } + } + if (/,/.test(input)) { + let mjurl = input.split(',')[1] + let videoUrl = getvideo(mjurl); + input = { + jx: 0, + url: videoUrl, + parse: 0, + header: JSON.stringify({ + 'user-agent': 'Lavf/58.12.100' + }) + } + } else { + let videoUrl = getvideo(input); + if (/jhapi/.test(videoUrl)) { + videoUrl = getvideo(videoUrl); + input = { + jx: 0, + url: videoUrl, + parse: 0, + header: JSON.stringify({ + 'user-agent': 'Lavf/58.12.100' + }) + } + } else { + input = { + jx: 0, + url: videoUrl, + parse: 0 + } + } + } + } catch (e) { + log(e.toString()) + } + `, + 推荐:`js: + var d = []; + let html = request(input, { + headers: getHeaders(input) + }); + html = JSON.parse(html); + html.forEach(function(it) { + d.push({ + title: it.name, + img: it.img, + desc: it.remarks, + url: it.id + }) + }); + setResult(d); + `, + 一级:`js: + var d = []; + let html = request(input, { + headers: getHeaders(input) + }); + html = JSON.parse(html); + html.list.forEach(function(it) { + d.push({ + title: it.name, + img: it.img, + desc: it.msg, + url: it.id + }) + }); + setResult(d); + `, + 二级:`js: + var d = []; + VOD = { + vod_id: input.split('id=')[1] + }; + try { + let html = request(input, { + headers: getHeaders(input) + }); + html = JSON.parse(html); + let node = html.data; + VOD = { + vod_name: node['name'], + vod_pic: node['img'], + type_name: node['type'], + vod_year: node['year'], + vod_remarks: '更新至: ' + node['msg'] + ' / 评分: ' + node['score'], + vod_content: node['info'].strip() + }; + let episodes = node.player_info; + let playMap = {}; + if (typeof play_url === 'undefined') { + var play_url = '' + } + episodes.forEach(function(ep) { + let playurls = ep['video_info']; + playurls.forEach(function(playurl) { + let source = ep['show']; + if (!playMap.hasOwnProperty(source)) { + playMap[source] = [] + } + playMap[source].append(playurl['name'].strip() + '$' + play_url + urlencode(playurl['url'])) + }) + }); + let playFrom = []; + let playList = []; + Object.keys(playMap) + .forEach(function(key) { + playFrom.append(key); + playList.append(playMap[key].join('#')) + }); + let vod_play_from = playFrom.join('$$$'); + let vod_play_url = playList.join('$$$'); + VOD['vod_play_from'] = vod_play_from; + VOD['vod_play_url'] = vod_play_url + } catch (e) { + log('获取二级详情页发生错误:' + e.message) + } + `, + 搜索:`js: + var d = []; + let html = request(input, { + headers: getHeaders(input) + }); + html = JSON.parse(html); + html.data.forEach(function(it) { + d.push({ + title: it.video_name, + img: it.img, + desc: it.qingxidu + '/' + it.category, + url: it.id, + content: it.blurb + }) + }); + setResult(d); + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\215\232\347\234\213\345\220\254\344\271\246.js" "b/zyplayer/drpy_dzlive/drpy_js/\345\215\232\347\234\213\345\220\254\344\271\246.js" new file mode 100644 index 0000000..27b9a59 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\215\232\347\234\213\345\220\254\344\271\246.js" @@ -0,0 +1,51 @@ +var rule = { + title: '博看听书', + host: 'https://api.bookan.com.cn', + homeUrl: '/voice/book/list?instance_id=25304&page=1&category_id=1305&num=24', + url: '/voice/book/list?instance_id=25304&page=fypage&category_id=fyclass&num=24', + detailUrl: '/voice/album/units?album_id=fyid&page=1&num=200&order=1', + searchUrl: 'https://es.bookan.com.cn/api/v3/voice/book?instanceId=25304&keyword=**&pageNum=fypage&limitNum=20', + searchable: 2, + quickSearch: 0, + class_name: '少年读物&儿童文学&国学经典&文艺少年&育儿心经&心理哲学&青春励志&历史小说&故事会&音乐戏剧&相声评书', + class_url: '1305&1304&1320&1306&1309&1310&1307&1312&1303&1317&1319', + headers: {'User-Agent': 'MOBILE_UA'}, + 推荐: '*', + 一级: 'json:data.list;name;cover;extra.author;id', + 二级: `js: + let d = []; + VOD = { + vod_url: input, + vod_name: "", + vod_actor: "", + vod_year: "", + vod_director: "" + }; + let playlists = []; + let data = JSON.parse(request(input)).data; + VOD.vod_name = data.list[0].id; + VOD.vod_actor = "▶️创建于" + data.list[0].created_at; + VOD.vod_year = data.list[0].created_at.split("-")[0]; + VOD.vod_director = "▶️更新于" + data.list[0].updated_at; + let total = data.total; + playlists = data.list; + if (total > 200) { + for (let i = 2; i < total / 200 + 1; i++) { + let listUrl = input.split("&")[0] + "&page=" + i + "&num=200&order=1"; + let data = JSON.parse(request(listUrl)).data; + playlists = playlists.concat(data.list) + } + } + playlists.forEach(function(it) { + d.push({ + title: it.title, + url: it.file + }) + }); + VOD.vod_play_from = "bookan"; + VOD.vod_play_url = d.map(function(it) { + return it.title + "$" + it.url + }).join("#"); + `, + 搜索: '*', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\215\247\351\276\231\350\265\204\346\272\220[\350\265\204].js" "b/zyplayer/drpy_dzlive/drpy_js/\345\215\247\351\276\231\350\265\204\346\272\220[\350\265\204].js" new file mode 100644 index 0000000..e06c963 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\215\247\351\276\231\350\265\204\346\272\220[\350\265\204].js" @@ -0,0 +1,11 @@ +// https://collect.wolongzyw.com/api.php/provide/vod/?ac=list + +var rule = { + 模板: '采集1', + title: '卧龙资源[资]', + host: 'https://collect.wolongzyw.com', + // homeTid: '13', + homeTid: '', + cate_exclude: '电影片|连续剧|综艺片|动漫片|电影解说|体育|演员|新闻资讯', + parse_url: '', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\215\263\347\234\213\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\345\215\263\347\234\213\345\275\261\350\247\206.js" new file mode 100644 index 0000000..68a66d9 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\215\263\347\234\213\345\275\261\350\247\206.js" @@ -0,0 +1,31 @@ +var rule = { + title: '即看影视', + host: 'https://www.jkv.app', + url: '/show/fyclass--------fypage---.html', + searchUrl: '/search/**----------fypage---.html', + class_parse: '.nav_list&&li;a&&Text;a&&href;.*/(.*?)\.html', + class_name: '短剧', + class_url: '53', + cate_exclude: '排名|明星|专题', + searchable: 2, + quickSearch: 0, + filterable: 0, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + play_parse: true, + lazy: '', + limit: 6, + 推荐: '.cbox_list;*;*;*;*;*', + double: true, + 一级: 'ul.vodlist&&li;a&&title;a&&data-background-image;.text_right&&Text;a&&href', + 二级: { + title: 'h2&&Text;.content_detail:eq(1)&&ul&&li&&a:eq(2)&&Text', + img: '.vodlist_thumb&&data-background-image', + desc: ';.content_detail:eq(1)&&ul&&li&&a:eq(3)&&Text;.content_detail:eq(1)&&ul&&li&&a&&Text;;', + content: '.content_desc&&span&&Text', + tabs: '.play_source_tab&&a', + lists: '.content_playlist:eq(#id) li', + }, + 搜索: '*', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\216\202\351\225\277\350\265\204\346\272\220.js" "b/zyplayer/drpy_dzlive/drpy_js/\345\216\202\351\225\277\350\265\204\346\272\220.js" new file mode 100644 index 0000000..6cd80e8 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\216\202\351\225\277\350\265\204\346\272\220.js" @@ -0,0 +1,195 @@ +// 地址发布页 https://www.czzy.site +// 地址发布页 https://cz01.vip +var rule = { + title: '厂长资源', + //host: 'https://www.czzy88.com', + host:'https://www.czzy.site', + hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});HOST = html.match(/推荐访问 " + HOST)', + url: '/fyclassfyfilter', + filterable: 1,//是否启用分类筛选, + filter_url: '{{fl.cateId}}{{fl.class}}{{fl.area}}/page/fypage', + filter: { + "movie_bt": [ + { + "key": "area", + "name": "分类", + "value": [{"v": "", "n": "全部"}, { + "v": "/movie_bt_series/zhanchangtuijian", + "n": "站长推荐" + }, {"v": "/movie_bt_series/dyy", "n": "电影"}, { + "v": "/movie_bt_series/dianshiju", + "n": "电视剧" + }, {"v": "/movie_bt_series/dohua", "n": "动画"}, { + "v": "/movie_bt_series/guochanju", + "n": "国产剧" + }, {"v": "/movie_bt_series/mj", "n": "美剧"}, { + "v": "/movie_bt_series/rj", + "n": "日剧" + }, {"v": "/movie_bt_series/hj", "n": "韩剧"}, { + "v": "/movie_bt_series/hwj", + "n": "海外剧(其他)" + }, {"v": "/movie_bt_series/huayudianying", "n": "华语电影"}, { + "v": "/movie_bt_series/meiguodianying", + "n": "欧美电影" + }, {"v": "/movie_bt_series/ribendianying", "n": "日本电影"}, { + "v": "/movie_bt_series/hanguodianying", + "n": "韩国电影" + }, {"v": "/movie_bt_series/yingguodianying", "n": "英国电影"}, { + "v": "/movie_bt_series/faguodianying", + "n": "法国电影" + }, {"v": "/movie_bt_series/yindudianying", "n": "印度电影"}, { + "v": "/movie_bt_series/eluosidianying", + "n": "俄罗斯电影" + }, { + "v": "/movie_bt_series/jianadadianying", + "n": "加拿大电影" + }, {"v": "/movie_bt_series/huiyuanzhuanqu", "n": "会员专区"}] + }, + { + "key": "class", + "name": "类型", + "value": [{"n": "全部", "v": ""}, {"n": "传记", "v": "/movie_bt_tags/chuanji"}, { + "n": "儿童", + "v": "/movie_bt_tags/etet" + }, {"n": "冒险", "v": "/movie_bt_tags/maoxian"}, { + "n": "剧情", + "v": "/movie_bt_tags/juqing" + }, {"n": "动作", "v": "/movie_bt_tags/dozuo"}, {"n": "动漫", "v": "/movie_bt_tags/doman"}, { + "n": "动画", + "v": "/movie_bt_tags/dhh" + }, {"n": "历史", "v": "/movie_bt_tags/lishi"}, { + "n": "古装", + "v": "/movie_bt_tags/guzhuang" + }, {"n": "同性", "v": "/movie_bt_tags/tongxing"}, { + "n": "喜剧", + "v": "/movie_bt_tags/xiju" + }, {"n": "奇幻", "v": "/movie_bt_tags/qihuan"}, { + "n": "家庭", + "v": "/movie_bt_tags/jiating" + }, {"n": "恐怖", "v": "/movie_bt_tags/kubu"}, {"n": "悬疑", "v": "/movie_bt_tags/xuanyi"}, { + "n": "情色", + "v": "/movie_bt_tags/qingse" + }, {"n": "惊悚", "v": "/movie_bt_tags/kingsong"}, { + "n": "战争", + "v": "/movie_bt_tags/zhanzhen" + }, {"n": "歌舞", "v": "/movie_bt_tags/gw"}, {"n": "武侠", "v": "/movie_bt_tags/wuxia"}, { + "n": "灾难", + "v": "/movie_bt_tags/zainan" + }, {"n": "爱情", "v": "/movie_bt_tags/aiqing"}, { + "n": "犯罪", + "v": "/movie_bt_tags/fanzui" + }, {"n": "短片", "v": "/movie_bt_tags/dp"}, {"n": "科幻", "v": "/movie_bt_tags/kh"}, { + "n": "纪录片", + "v": "/movie_bt_tags/jlpp" + }, {"n": "西部", "v": "/movie_bt_tags/xb"}, {"n": "运动", "v": "/movie_bt_tags/yd"}, { + "n": "音乐", + "v": "/movie_bt_tags/yy" + }] + } + ] + }, + searchUrl: '/xsseanmch?q=**&p=fypage', + searchable: 2, + filterable: 0, + headers: { + 'User-Agent': 'PC_UA', + // 'Cookie': 'esc_search_captcha=1' + }, + class_name: '全部&豆瓣电影Top250&高分影视&最新电影&热映中&站长推荐&电影&电视剧&动画&国产剧&日剧&韩剧&美剧&海外剧&俄罗斯电影&加拿大电影&华语电影&印度电影&日本电影&欧美电影&法国电影&英国电影&韩国电影&纪录片', + class_url: 'movie_bt&dbtop250&gaofenyingshi&zuixindianying&reyingzhong&/movie_bt_series/zhanchangtuijian&/movie_bt_series/dyy&/movie_bt_series/dianshiju&/movie_bt_series/dohua&/movie_bt_series/guochanju&/movie_bt_series/rj&/movie_bt_series/hj&/movie_bt_series/mj&/movie_bt_series/hwj&/movie_bt_series/eluosidianying&/movie_bt_series/jianadadianying&/movie_bt_series/huayudianying&/movie_bt_series/yindudianying&/movie_bt_series/ribendianying&/movie_bt_series/meiguodianying&/movie_bt_series/faguodianying&/movie_bt_series/yingguodianying&/movie_bt_series/hanguodianying&movie_bt//movie_bt_tags/jlpp', + play_parse: true, + + // lazy代码:源于海阔香雅情大佬 / 小程序:香情影视 https://pastebin.com/L4tHdvFn + lazy: `js: + pdfh = jsp.pdfh; + var html = request(input); + var ohtml = pdfh(html, '.videoplay&&Html'); + var url = pdfh(ohtml, "body&&iframe&&src"); + if (url) { + var _obj={}; + eval(pdfh(request(url),'body&&script&&Html')+'\\n_obj.player=player;_obj.rand=rand'); + function js_decrypt(str, tokenkey, tokeniv) { + eval(getCryptoJS()); + var key = CryptoJS.enc.Utf8.parse(tokenkey); + var iv = CryptoJS.enc.Utf8.parse(tokeniv); + return CryptoJS.AES.decrypt(str, key, {iv: iv,padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8); + }; + let config = JSON.parse(js_decrypt(_obj.player,'VFBTzdujpR9FWBhe', _obj.rand)); + input = { + jx: 0, + url: config.url, + parse: 0 + }; + }else if (/decrypted/.test(ohtml)) { + var phtml = pdfh(ohtml, "body&&script:not([src])&&Html"); + eval(getCryptoJS()); + var script = phtml.match(/var.*?\\)\\);/g)[0]; + var data = []; + eval(script.replace(/md5/g, 'CryptoJS').replace('eval', 'data = ')); + input = { + jx: 0, + url: data.match(/url:.*?['"](.*?)['"]/)[1], + parse: 0 + } + + + } + `, + 推荐: '.bt_img;ul&&li;*;*;*;*', + double: true, + 一级: '.bt_img&&ul&&li;h3.dytit&&Text;img.lazy&&data-original;.jidi&&Text;a&&href', + 二级: { + "title": "h1&&Text;.moviedteail_list li&&a&&Text", + "img": "div.dyimg img&&src", + "desc": ".moviedteail_list li:eq(3) a&&Text;.moviedteail_list li:eq(2) a&&Text;.moviedteail_list li:eq(1) a&&Text;.moviedteail_list li:eq(7)&&Text;.moviedteail_list li:eq(5)&&Text", + "content": ".yp_context&&Text", + "tabs": ".mi_paly_box span", + "lists": ".paly_list_btn:eq(#id) a" + }, + 搜索: `js: + let cookie = getItem(RULE_CK,''); + // let cookie = ''; + log('储存的cookie:'+cookie); + let hhtml=request(input,{withHeaders:true,headers:{Cookie:cookie}}); + let json = JSON.parse(hhtml); + let html = json.body; + let setCk = Object.keys(json).find(it=>it.toLowerCase()==='set-cookie'); + cookie = setCk ? json[setCk] : cookie; + // 3个set-Cookie + if (Array.isArray(cookie)) { + cookie = cookie.join(';'); + } + cookie = cookie.split(';')[0]; + log('set-cookie:'+cookie); + let code=''; + if(/erphp-search-captcha/.test(html)){ + code = jsp.pdfh(html,'.erphp-search-captcha--button&&Text'); + if(code.includes('=')){ + let a = code.replace('=','').replace(/ /g,''); + code = eval(a); + log('回答验证码:'+a+' 答案:'+code); + } + let key = jsp.pdfh(html,'.erphp-search-captcha&&input&&name'); + let body = key+'='+code; + post(input,{body:body,headers:{Cookie:cookie}}); + setItem(RULE_CK,cookie); + html = getHtml(input); + } + // log(html); + VODS = []; + let lis=pdfa(html,'.search_list&&ul&&li'); + log(lis.length); + lis.forEach(function(it){ + VODS.push({ + vod_id: pd(it,'a&&href',input), + vod_name: pdfh(it,'h3.dytit&&Text'), + vod_pic: pd(it,'img.lazy&&data-original',input), + vod_remarks: pdfh(html,'.jidi&&Text') + }); + + }); + + `, + // 搜索: '.search_list&&ul&&li;*;*;*;*', + // 预处理:'rule_fetch_params.headers.Cookie="68148872828e9f4d64e7a296f6c6b6d7=5429da9a54375db451f7f9e4f16ce0ea;esc_search_captcha=1";let new_host="https://czspp.com";let new_html=request(new_host);if(/正在进行人机识别/.test(new_html)){let new_src=pd(new_html,"script&&src",new_host);log(new_src);let hhtml=request(new_src,{withHeaders:true});let json=JSON.parse(hhtml);let html=json.body;let key=html.match(new RegExp(\'var key="(.*?)"\'))[1];let avalue=html.match(new RegExp(\'value="(.*?)"\'))[1];let c="";for(let i=0;ihttps://vres.a357899.cn', + filter:'H4sIAAAAAAAAA+2Zz08bRxTH/xefOdgGtTi3HlqpUpVLe6hURREHV4qa0kN/qFWEZLANxhBsEDFx7AIpGEyCf0CQY9bY/md2Ztf/RWf95r0ZR+3LtqGRqviC+LzvzOzs7Nt531k/isQid755FPku+VvkTsS76In9jchMZHHh+6TNvyw8/Dk5briowiJbH6XrQVhBZGkGoneTP3378MGvOnz3068+++Lzr0kV66cyndWiBtJKVRVBDYC0fN3tV1EDQM3LXZgxNaAml4syVdKaBtLSebnyDDUAGjPf8vovcEwA0k63xXUPNQAac+XcK23jmAB0D7U1008Daas7o/IZagA0Zu6p66zjmADUb2tVFC6xHwBphWP/iNYagLRmRzgN1ABQc28O/WZbaxpoLo0Td3CIcwEw2qaf2ydtDLRmBw1vfQ3XDMB6tt5uzzzbAEjLDL2XNdQAUPOXN0XV0ZqGpXuBCmksqm2x6Zg0Jg6TxuL4dFRexUXoNkSlr0PYYnRSlt3WRAsdMg+gLa8Hk2NAiJZlsKWCuCwAtJx7NVk9x+UEoGsfnJl+GmhZNi6MpoHGfPXEaBpotoPXRtNA2uO2cE5QAzBjtu0x23Y/t3s9on4a6N6390W2i/cOQNd7feXXhng9AJMuh3JjqB4GZQwyXXWY8fp7skQPh5jmnCmoDiKHb5xhatHaVSj3OtiC2Np2RHtXZPFNMUxPojb0CirVy/gwiOkqg1dwXdehjcgO0T1nO24PtzENdqr7rYZfT5lUJw6V6pW+ao+DA9BNXh4bTYOVaEbTYCWv0TRYyWs0DVaCWv0Awi6CuL5ye33rfUcOswjxaHxOx8b/WvFZE5+143ETj9vxmInH7HjUxKMUj0XH0zwiLRa9r/4kqEH0zQbRoEHUNEhMNoglEtH76o9pMP9mg/mgwbxpICtXcg9fhUD7ODGxsHJrRzgFs7DEkwvr9W5EMYdXMaNXU7KEL0ncDntpfNJmXf1WRuRw350LpnFvRvX6b8yJpjDmhDMZnHHhjARrFrjizZghrrBzhoczJ0FhovvTEMYMceaEMzVBQaPraQhjQNSWZ56RhjBGkDNfo3RfdFdwLgC3bUAoHLllA8LZhH9rPTgLwVkP1l681ShxJoMzJ9PCOS2cH3DhnH1PhTNfl6llefNy4hxnQqFO/9wpkPsywGzebKHkCh5X1JgTqSzue+dU0AFCGQimaHMnZ5UH/vMUagCkVfKyjFVFQxjj4fUK1rEMgPodPhcV2mQAUPtk8YFKK5Dgf8rMYVGtPW53AHRUcy5Fo4g7PwBtd7/vyKe40hpMOd9Qa0jlfAxhLMJfWqDb+mbAlc23l/N3+1rwbmZg+s1g+s1gan1snlqf/7n1mbst6+M5L0T/CaYzAGnVA9dxvFOqwcQ0t2bb9NZAWuZCFI5Mb8OhDBP36Z8xTNznfa/SFUe0OQHQbPMrXqWJUwUwJffvP/1zBo2zBl8mF378YVFrGmie3M8zjGHiDJosP3NvaEcFmP6cMC0j0zLyIZeRj/55GTFh+ymPUqv+H5R6AJTqu1XRxBOLBppVuajON5jqANTvbOh38tgPgK639tjbPcDrAYQpK+yv28zJij3fMudw9tdt7myf7Yhm2rySAbz3zFEpsvQnK+G0IDwhAAA=', + 一级f:`js: + let urls = [ + 'https://keke5.app/show/1-----1-1.html', + 'https://keke5.app/show/2-----1-1.html', + 'https://keke5.app/show/3-----1-1.html', + 'https://keke5.app/show/4-----1-1.html', + 'https://keke5.app/show/6-----1-1.html', + ]; + let filters = {}; + pdfa = jsp.pdfa; + pdfh = jsp.pdfh; + for(let url of urls){ + let fclass = url.match(/show\\/(\\d+)-/)[1]; + console.log(fclass); + let html = request(url); + let tabs = pdfa(html, '.filter-row'); + let data = []; + for (let tab of tabs) { + let title = pdfh(tab, 'strong&&Text').replace(':',''); + let lis = pdfa(tab, 'a'); + let _map = {key: title, name: title}; + let value = []; + for (let li of lis) { + let n = pdfh(li, 'a&&Text').trim(); + let v=n; + if(/全部|地区|类型/.test(n)){ + v = ''; + }else if(/综合/.test(n)){ + v = '1'; + }else{ + v = pdfh(li,'a&&href'); + try { + v = v.match(/-(.*?)1-1\.html/)[1].replace(/-/g,''); + }catch (e) { + v = v.match(/-(.*?)-1\.html/)[1].replace(/-/g,''); + } + v = decodeURIComponent(v); + } + value.push({ + 'n': n, 'v': v + }); + } + _map['value'] = value; + data.push(_map); + } + filters[fclass] = data; + } + VODS = [filters]; + console.log(gzip(JSON.stringify(filters))); + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\217\257\350\276\276\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\345\217\257\350\276\276\345\275\261\350\247\206.js" new file mode 100644 index 0000000..46d6bb5 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\217\257\350\276\276\345\275\261\350\247\206.js" @@ -0,0 +1,88 @@ +var rule = { + title: '可达影视', + host: 'https://kedays.org', + // url:'/shaixuan/fyclass--------fypage---.html', + url: '/shaixuan/fyclass-fyfilter.html', + searchUrl: '/so/**----------fypage---.html', + searchable: 2, + quickSearch: 0, + filterable: 1, + filter: 'H4sIAAAAAAAAA+2a2U7bUBCG38XXXByHspQ7yr7va8VFVCJIC0FiqUoREhWLoBQoCJIGQkslAqEiEFq6EBTyMrET3qIGz5kZ7vwAc5f/G/vYv3MMnxBzxnDQH5oNhkaMipdzxpvArFFhWLGU9SltFBkh/3iA57f+sZnA44GhB7ycuF9MPGAnGPNFQI9P76MrQCHo2f1J1P53CTMIeN5Wyr650+e5Qc/yd5vWQQZmEHDNb2c0g6BndiRux85hBgFnv1J0HgSchVPWxyPr8LseY8arnp3bh/FCPJtL7+trc4StNlJW+kS3coOeFdav6A4g0N3t8bvb4zPnVuz1rPNo9bKYceV4Nr+VzK9F9eKY9RG57FI+E7HD+sugjFdZ/mNdLOpLuGF+6GEKm2Tt1F5cZptEZy+bJL96BQdToHqJXCaG3R4DzsIx5zp65gZ8ZKtfcuk1/cjcgNc73bZubvX13IBr4o1TwDWTJ7m7I72mG/C8lZ376Jk+zw143tcfzh3o89yAsw+f7YWwnrkB17y7yO/+tjJXelnMXr+WwmWykFigrwWzp3f3IOMcrxd3A9utNIOAj/fnMc0g4JsSyVgbERpTZm8wG7uBvcE0g8DeETZzAz3Iv6yJGzzv7Jvr3G2G7WydvTxCn/I9A/b4kfFi4sWc+4j7ODeJm5wr4opx8zly5yPj5cTLOS8jXsZ5KfFSzkuIl3BOfU3e16S+Ju9rUl+T9zWpr8n7mtTX5H0V9VW8r6K+ivdV1Ffxvor6Kt5XUV/F+yrqq3hfRX0V76uor+J9FfVVvK+ivs7HJxszGbEvN9jG1NnLxqwEUInkBZAXSKqAVCGpBlKNpAZIDZJaILVI6oDUIakHUo+kAUgDkkYgjUiagDQhaQbSjKQFSAuSViCtSNqAtCFpB9KOpANIB5JOIJ1IuoB0IekG0o2kB0gPkl4gvUj6gPQh6QfSj2QAyACSQSCDTzaFvbljpbdoU2B+uins2EIhu20fXDsuA+tMB50T8IdpbME63rd3kvaulrDR4PTUk3nc+YWwBMOpVxOTgYcbGSoyxhyFfDfzekYUUhRSFFIUUhRSFFIUUhRSFFIU0qNCvp8IjcwGRSBFIEUgRSBFIEUgRSBFIEUgRSA9CuSwI5Dj/pAYpBikGKQYpBikGKQYpBikGKQYpEeDnBr1TwQmRSBFIEUgRSBFIEUgRSBFIEUgRSC9/glyxh+Sf4IUgRSBFIEUgRSBFIE0RCBFIEUgvQnk/H9dz0+3jD0AAA==', + filter_url: '{{fl.地区}}-{{fl.排序 or "time"}}-{{fl.剧情}}-{{fl.语言}}-{{fl.字母}}---fypage---{{fl.年份}}', + headers: { + 'User-Agent': 'MOBILE_UA', + }, + timeout: 5000, + class_parse: '.nav-m-box&&li;a&&Text;a&&href;/.*\/(.*?)\.html', + cate_exclude: '最近|排行', + play_parse: true, + lazy: $js.toString(() => { + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存 + * Cookie设置方法2: 手动替换Cookie + * 底下代码 headers的 + * "Cookie":"$bili_cookie" + * 手动替换为 + * "Cookie":"将获取的Cookie黏贴在这" + * 客户端长期Cookie设置教程: + * 抓包哔哩手机端搜索access_key,取任意链接里的access_key和appkey在drpy环境变量中增加同名的环境变量即可 + * 此时哔哩.js这个解析可用于此源的解析线路用 + */ + +var rule = { + title:'哔哩影视[官]', + host:'https://api.bilibili.com', + url:'/fyclass-fypage&vmid=$vmid', + detailUrl:'/pgc/view/web/season?season_id=fyid', + filter_url:'fl={{fl}}', + vmid获取教程:'登录后访问https://api.bilibili.com/x/web-interface/nav,搜索mid就是,cookie需要 bili_jct,DedeUserID,SESSDATA参数', + searchUrl:'/x/web-interface/search/type?keyword=**&page=fypage&search_type=', + searchable:1, + filterable:1, + quickSearch:0, + headers:{ + 'User-Agent':'PC_UA', + "Referer": "https://www.bilibili.com", + "Cookie":"$bili_cookie" + }, + tab_order:['bilibili','B站'],//线路顺序,按里面的顺序优先,没写的依次排后面 + timeout:5000, + class_name:'番剧&国创&电影&电视剧&纪录片&综艺&全部&追番&追剧&时间表', + class_url:'1&4&2&5&3&7&全部&追番&追剧&时间表', + filter:{"全部":[{"key":"tid","name":"分类","value":[{"n":"番剧","v":"1"},{"n":"国创","v":"4"},{"n":"电影","v":"2"},{"n":"电视剧","v":"5"},{"n":"记录片","v":"3"},{"n":"综艺","v":"7"}]},{"key":"order","name":"排序","value":[{"n":"播放数量","v":"2"},{"n":"更新时间","v":"0"},{"n":"最高评分","v":"4"},{"n":"弹幕数量","v":"1"},{"n":"追看人数","v":"3"},{"n":"开播时间","v":"5"},{"n":"上映时间","v":"6"}]},{"key":"season_status","name":"付费","value":[{"n":"全部","v":"-1"},{"n":"免费","v":"1"},{"n":"付费","v":"2%2C6"},{"n":"大会员","v":"4%2C6"}]}],"时间表":[{"key":"tid","name":"分类","value":[{"n":"番剧","v":"1"},{"n":"国创","v":"4"}]}]}, + play_parse:true, + // play_json:[{re:'*', json:{jx:1, parse:0,header:JSON.stringify({"user-agent":"PC_UA"})}}], + pagecount:{"1":1,"2":1,"3":1,"4":1,"5":1,"7":1,"时间表":1}, + lazy:'', + limit:5, + 推荐:'', + 推荐:'js:let d=[];function get_result(url){let videos=[];let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let vodList=jo.result?jo.result.list:jo.data.list;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod.new_ep?vod["new_ep"]["index_show"]:vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})})}return videos}function get_rank(tid,pg){return get_result("https://api.bilibili.com/pgc/web/rank/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_rank2(tid,pg){return get_result("https://api.bilibili.com/pgc/season/rank/web/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function home_video(){let videos=get_rank(1).slice(0,5);[4,2,5,3,7].forEach(function(i){videos=videos.concat(get_rank2(i).slice(0,5))});return videos}VODS=home_video();', + 一级:'', + 一级:'js:let d=[];let vmid=input.split("vmid=")[1].split("&")[0];function get_result(url){let videos=[];let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let vodList=jo.result?jo.result.list:jo.data.list;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod.new_ep?vod["new_ep"]["index_show"]:vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})})}return videos}function get_rank(tid,pg){return get_result("https://api.bilibili.com/pgc/web/rank/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_rank2(tid,pg){return get_result("https://api.bilibili.com/pgc/season/rank/web/list?season_type="+tid+"&pagesize=20&page="+pg+"&day=3")}function get_zhui(pg,mode){let url="https://api.bilibili.com/x/space/bangumi/follow/list?type="+mode+"&follow_status=0&pn="+pg+"&ps=10&vmid="+vmid;return get_result(url)}function get_all(tid,pg,order,season_status){let url="https://api.bilibili.com/pgc/season/index/result?order="+order+"&pagesize=20&type=1&season_type="+tid+"&page="+pg+"&season_status="+season_status;return get_result(url)}function get_timeline(tid,pg){let videos=[];let url="https://api.bilibili.com/pgc/web/timeline/v2?season_type="+tid+"&day_before=2&day_after=4";let html=request(url);let jo=JSON.parse(html);if(jo["code"]===0){let videos1=[];let vodList=jo.result.latest;vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let remark=vod["pub_index"]+" "+vod["follows"].replace("系列","");videos1.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});let videos2=[];for(let i=0;i<7;i++){let vodList=jo["result"]["timeline"][i]["episodes"];vodList.forEach(function(vod){if(vod["published"]+""==="0"){let aid=(vod["season_id"]+"").trim();let title=vod["title"].trim();let img=vod["cover"].trim();let date=vod["pub_ts"];let remark=date+" "+vod["pub_index"];videos2.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})}})}videos=videos2.concat(videos1)}return videos}function cate_filter(d,cookie){if(MY_CATE==="1"){return get_rank(MY_CATE,MY_PAGE)}else if(["2","3","4","5","7"].includes(MY_CATE)){return get_rank2(MY_CATE,MY_PAGE)}else if(MY_CATE==="全部"){let tid=MY_FL.tid||"1";let order=MY_FL.order||"2";let season_status=MY_FL.season_status||"-1";return get_all(tid,MY_PAGE,order,season_status)}else if(MY_CATE==="追番"){return get_zhui(MY_PAGE,1)}else if(MY_CATE==="追剧"){return get_zhui(MY_PAGE,2)}else if(MY_CATE==="时间表"){let tid=MY_FL.tid||"1";return get_timeline(tid,MY_PAGE)}else{return[]}}VODS=cate_filter();', + 二级:{ + is_json:true, + title:".result.title;.result.share_sub_title", + img:".result.cover", + desc:".result.new_ep.desc;.result.publish.pub_time;.result.subtitle", + content:".result.evaluate", + tabs:"js:pdfa=jsp.pdfa;TABS=['B站']", + lists:".result.episodes", + list_text:'title', + list_url:'cid', + }, + 二级:'', + 二级:'js:function zh(num){let p="";if(Number(num)>1e8){p=(num/1e8).toFixed(2)+"亿"}else if(Number(num)>1e4){p=(num/1e4).toFixed(2)+"万"}else{p=num}return p}let html=request(input);let jo=JSON.parse(html).result;let id=jo["season_id"];let title=jo["title"];let pic=jo["cover"];let areas=jo["areas"][0]["name"];let typeName=jo["share_sub_title"];let date=jo["publish"]["pub_time"].substr(0,4);let dec=jo["evaluate"];let remark=jo["new_ep"]["desc"];let stat=jo["stat"];let status="弹幕: "+zh(stat["danmakus"])+" 点赞: "+zh(stat["likes"])+" 投币: "+zh(stat["coins"])+" 追番追剧: "+zh(stat["favorites"]);let score=jo.hasOwnProperty("rating")?"评分: "+jo["rating"]["score"]+" "+jo["subtitle"]:"暂无评分"+" "+jo["subtitle"];let vod={vod_id:id,vod_name:title,vod_pic:pic,type_name:typeName,vod_year:date,vod_area:areas,vod_remarks:remark,vod_actor:status,vod_director:score,vod_content:dec};let ja=jo["episodes"];let playurls1=[];let playurls2=[];ja.forEach(function(tmpJo){let eid=tmpJo["id"];let cid=tmpJo["cid"];let link=tmpJo["link"];let part=tmpJo["title"].replace("#","-")+" "+tmpJo["long_title"];playurls1.push(part+"$"+eid+"_"+cid);playurls2.push(part+"$"+link)});let playUrl=playurls1.join("#")+"$$$"+playurls2.join("#");vod["vod_play_from"]="B站$$$bilibili";vod["vod_play_url"]=playUrl;VOD=vod;', + 搜索:'', + 搜索:'js:let url1=input+"media_bangumi";let url2=input+"media_ft";let html=request(url1);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let jo1=JSON.parse(html).data;html=request(url2);let jo2=JSON.parse(html).data;let videos=[];let vodList=[];if(jo1["numResults"]===0){vodList=jo2["result"]}else if(jo2["numResults"]===0){vodList=jo1["result"]}else{vodList=jo1["result"].concat(jo2["result"])}vodList.forEach(function(vod){let aid=(vod["season_id"]+"").trim();let title=KEY+"➢"+vod["title"].trim().replace(\'\',"").replace("","");let img=vod["cover"].trim();let remark=vod["index_show"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}', + lazy:'', + lazy:`js: + if (/^http/.test(input)) { + input = { + jx: 1, + url: input, + parse: 0, + header: JSON.stringify({ + "user-agent": "Mozilla/5.0" + }) + } + } else { + let ids = input.split("_"); + let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + ids[1]; + let result = {}; + let url = "https://api.bilibili.com/pgc/player/web/playurl?qn=116&ep_id=" + ids[0] + "&cid=" + ids[1]; + let html = request(url); + let jRoot = JSON.parse(html); + if (jRoot["message"] !== "success") { + print("需要大会员权限才能观看"); + input = "" + } else { + let jo = jRoot["result"]; + let ja = jo["durl"]; + let maxSize = -1; + let position = -1; + ja.forEach(function(tmpJo, i) { + if (maxSize < Number(tmpJo["size"])) { + maxSize = Number(tmpJo["size"]); + position = i + } + }); + let url = ""; + if (ja.length > 0) { + if (position === -1) { + position = 0 + } + url = ja[position]["url"] + } + result["parse"] = 0; + result["playUrl"] = ""; + result["url"] = url; + result["header"] = { + Referer: "https://www.bilibili.com", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36" + }; + result["contentType"] = "video/x-flv"; + result["danmaku"] = dan; + input = result + } + } + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\223\224\345\223\251\347\233\264\346\222\255.js" "b/zyplayer/drpy_dzlive/drpy_js/\345\223\224\345\223\251\347\233\264\346\222\255.js" new file mode 100644 index 0000000..746ce09 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\223\224\345\223\251\347\233\264\346\222\255.js" @@ -0,0 +1,118 @@ +/** + * 影视TV 弹幕支持 + * https://t.me/fongmi_offical/ + * https://github.com/FongMi/Release/tree/main/apk + * 皮皮虾DMBox 弹幕支持 + * 设置 > 窗口预览 > 开启 + * https://t.me/pipixiawerun + * vod_area:'bililivedanmu' + * Cookie设置 + * Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md + * Cookie设置方法1: DR-PY 后台管理界面 + * CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存 + * Cookie设置方法2: 手动替换Cookie + * 底下代码 headers的 + * "Cookie":"$bili_cookie" + * 手动替换为 + * "Cookie":"将获取的Cookie黏贴在这" + */ + +var rule = { + title: '哔哩直播', + host: 'https://api.live.bilibili.com', + homeUrl: '/xlive/web-interface/v1/second/getUserRecommend?page=1&page_size=30&platform=web',//用于"分类获取"和"推荐获取" + url: '/xlive/web-interface/v1/second/getList?platform=web&parent_area_id=fyclass&area_id=fyfilter&sort_type=online&page=fypage', + class_name: '生活&网游&手游&单机游戏&娱乐&电台&虚拟主播&聊天室&知识&赛事&帮我玩&互动玩法&购物', + class_url: '10&2&3&6&1&5&9&14&11&13&301&15&300', + filterable: 1, + filter_url: '{{fl.area}}', + filter_def: { + 10: {area: '624'}, + 2: {area: '86'}, + 3: {area: '35'}, + 6: {area: '236'}, + 1: {area: '21'}, + 5: {area: '190'}, + 9: {area: '744'}, + 14: {area: '818'}, + 11: {area: '376'}, + 13: {area: '562'}, + 301: {area: '301000'}, + 15: {area: ''}, + 300: {area: '300000'} + }, + filter: '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', + detailUrl: 'https://live.bilibili.com/fyid',//二级详情拼接链接(json格式用) + // detailUrl:'https://api.live.bilibili.com/xlive/web-room/v1/playUrl/playUrl?cid=fyid&platform=h5&otype=json&quality=0',//二级详情拼接链接(json格式用) + // searchUrl:'/x/web-interface/search/type?__refresh__=true&page=fypage&page_size=42&order=online&platform=pc&highlight=1&single_column=0&keyword=**&search_type=live&dynamic_offset=0&preload=true', + searchUrl: 'https://api.bilibili.com/x/web-interface/search/type?search_type=live&keyword=**&page=fypage', + searchable: 2, + quickSearch: 0, + headers: { + "User-Agent": "PC_UA", + "Referer": "https://www.bilibili.com", + // "Cookie":"$bili_cookie" + "Cookie": "https://ghproxy.net/https://raw.githubusercontent.com/FongMi/CatVodSpider/main/txt/cookie.txt" + }, + timeout: 5000, + limit: 8, + play_parse: true, + // play_json:[{re:'*', json:{jx:0, parse:1,header:JSON.stringify({"user-agent":"Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36"})}}], + // play_json:[{re:'*', json:{jx:0, parse:1,header:JSON.stringify({"user-agent":"uc_ua"})}}], + // play_json:0, + lazy: `js: + let ids = input.split('_'); + let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + ids[1]; + let result = {}; + let iurl = 'https://api.live.bilibili.com/room/v1/Room/playUrl?cid=' + ids[1] + '&' + ids[0]; + let html = request(iurl); + let jRoot = JSON.parse(html); + let jo = jRoot['data']; + let ja = jo['durl']; + let purl = ''; + if (ja.length > 0) { + purl = ja[0]['url'] + } + result['parse'] = 0; + result['playUrl'] = ''; + result['url'] = unescape(purl); + result['header'] = { + Referer: 'https://live.bilibili.com', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' + }; + result['danmaku'] = dan; + if (/h5/.test(ids[0])) { + result['contentType'] = ''; + input = result + } else { + result['contentType'] = 'video/x-flv'; + input = result + } + `, + double: false, + 推荐: '*', + // 一级:'json:data.list;title;system_cover;uname;roomid', + 一级: `js: + var d = []; + let html = request(input); + html = JSON.parse(html).data.list; + html.forEach(it => { + let pic = it.system_cover; + if (pic.startsWith('/')) { + pic = urljoin2(input, pic) + } + d.push({ + title: it.title, + img: pic, + desc: '👁' + it.watched_show.text_small + ' 🆙' + it.uname, + url: it.roomid + }) + }); + setResult(d); + `, + // 二级:'*', + 二级: "js:let aid=input.match(/\\/(\\d+)/)[1];log(aid);let html=request('https://api.live.bilibili.com/room/v1/Room/get_info?room_id='+aid);let jo=JSON.parse(html).data;let title=jo['title'];let pic=jo['keyframe'];let desc=jo['description'];let dire=jo['uid'];let typeName=jo['area_name'];let remark='在线人数:'+jo['online'];let vod={vod_id:aid,vod_name:title,vod_pic:pic,type_name:typeName,vod_area:'bililivedanmu',vod_remarks:remark,vod_actor:'直播间id-'+aid,vod_director:dire,vod_content:desc};vod['vod_play_from']='B站';vod['vod_play_url']='flv线路原画$platform=web&quality=4_'+aid+'#flv线路高清$platform=web&quality=3_'+aid+'#h5线路原画$platform=h5&quality=4_'+aid+'#h5线路高清$platform=h5&quality=3_'+aid;VOD=vod;", + // 搜索:'json:data.result.live_room;title;cover;uname;roomid', + 搜索: `js:let html=request(input);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result.live_room;vodList.forEach(function(vod){let aid=vod["roomid"];let title="直播间:"+vod["title"].replace(\'\',"").replace("","");let img="https:"+vod["user_cover"];let remark=vod["watched_show"]["text_small"]+" "+vod["uname"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}`, + // 预处理:'if(rule_fetch_params.headers.Cookie.startsWith("http")){rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie);setItem(RULE_CK,cookie)};log(rule_fetch_params.headers.Cookie)', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\234\250\347\272\277\344\271\213\345\256\266.js" "b/zyplayer/drpy_dzlive/drpy_js/\345\234\250\347\272\277\344\271\213\345\256\266.js" new file mode 100644 index 0000000..1a6c780 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\234\250\347\272\277\344\271\213\345\256\266.js" @@ -0,0 +1,62 @@ +// 在线之家地址发布页 https://www.zxzj.site + +muban.首图2.二级.desc = '.data:eq(3)&&Text;;;.data:eq(1)&&Text;.data:eq(2)&&Text'; +var rule = { + title:'在线之家', + 模板:'首图2', + host:'https://www.zxzj.site', + hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src=jsp.pdfh(html,"li:eq(0)&&a:eq(2)&&href");print(src);HOST=src', + url:'/vodshow/fyclassfyfilter.html', + filterable:1,//是否启用分类筛选, + filter_url:'-{{fl.area}}-{{fl.by}}-{{fl.class}}-----fypage---{{fl.year}}', + 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":"冒险"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"欧美","v":"欧美"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"}]},{"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":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"}]},{"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":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"剧情","v":"剧情"},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"动作","v":"动作"},{"n":"悬疑","v":"悬疑"},{"n":"恐怖","v":"恐怖"},{"n":"奇幻","v":"奇幻"},{"n":"惊悚","v":"惊悚"},{"n":"犯罪","v":"犯罪"},{"n":"科幻","v":"科幻"},{"n":"音乐","v":"音乐"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "5":[{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "6":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] + }, + tab_exclude:'夸克网盘|迅雷云盘|百度网盘', + // 搜索:muban.首图2.搜索1, + 搜索: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href', + 图片来源:'@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', + + /* + lazy代码:源于海阔香雅情大佬 / 小程序:香情影视 https://pastebin.com/L4tHdvFn + */ + lazy:`js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) { + input = {parse: 1, url: input, js: ''}; + }), + double: true, + 推荐: ".mo-cols-lays&&ul.mo-cols-rows;*;*;*;*;*", + 一级: ".mo-cols-lg2;.mo-situ-name&&Text;a&&data-original;.mo-situ-rema&&Text;a&&href", + 二级: { + title: "h1&&Text;li.mo-cols-info.mo-ptxs-5px:eq(2)&&Text;li.mo-cols-info.mo-ptxs-5px:eq(0)&&Text", + img: ".mo-deta-info&&a&&data-original", + desc: "li.mo-cols-info.mo-ptxs-5px:eq(3)&&Text;li.mo-cols-info.mo-ptxs-5px:eq(1)&&Text", + content: ".mo-word-info&&Text", + tabs: ".mo-sort-head&&h2&&a", + lists: "ul.mo-movs-item:eq(#id)&&li", + tab_text: "a&&Text", + list_text: "body&&Text", + list_url: "a&&href", + url: "meta[property=og:url]&&.videoURL&&value||meta[property=og:url]&&content" + }, + 搜索: ".mo-deta-info.mo-cols-rows;h1&&Text;*;*;a&&href;.module-info-item-content&&Text" +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\244\232\345\244\232\350\277\275\345\211\247.js" "b/zyplayer/drpy_dzlive/drpy_js/\345\244\232\345\244\232\350\277\275\345\211\247.js" new file mode 100644 index 0000000..0a0a813 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\244\232\345\244\232\350\277\275\345\211\247.js" @@ -0,0 +1,24 @@ +var rule = { + title: '多多追剧', + 模板: '首图', + host: 'https://www.ddkk.tv', + url: '/channel/fyclass-fypage.html', + //searchUrl: '/search/-------------.html?wd=**', + detailUrl: '/detail/fyid.html', + searchUrl: '/index.php/ajax/suggest?mid=1&wd=**', + 搜索: 'json:list;name;pic;en;id', + searchable: 1, + headers: { + 'User-Agent': 'PC_UA', + }, + class_parse: '.myui-header__menu li;a&&Text;a&&href;/(\\d+).html', + lazy: $js.toString(() => { + input = { + parse: 1, + url: input, + header: { + 'User-Agent': PC_UA + } + } + }), +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\244\247\347\261\263\346\230\237\347\220\203.js" "b/zyplayer/drpy_dzlive/drpy_js/\345\244\247\347\261\263\346\230\237\347\220\203.js" new file mode 100644 index 0000000..eec2577 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\244\247\347\261\263\346\230\237\347\220\203.js" @@ -0,0 +1,29 @@ +// 地址发布页 https://www.dmxq.vip +muban.mxpro.二级.desc = '.module-info-item:(3)&&Text;;;.module-info-item-content:eq(1)&&Text;.module-info-item-content:eq(0)&&Text'; +muban.mxpro.二级.img = '.lazyload&&src'; +var rule = { + title:'大米星球', + 模板:'mxpro', + host:'https://www.dmxq.vip', + hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src=jsp.pdfh(html,"ul&&li:eq(1)&&a&&href");print(src);HOST=src', + // url:'/vodshow/fyclass--------fypage---/pjax/YES.html', + url:'/vodshow/fyclassfyfilter.html', + filterable:1,//是否启用分类筛选, + filter_url:'-{{fl.area}}-{{fl.by}}-{{fl.class}}-{{fl.lang}}----fypage---{{fl.year}}', + filter: { + "20":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"Netflix","v":"Netflix"},{"n":"仙侠","v":"仙侠"},{"n":"剧情","v":"剧情"},{"n":"科幻","v":"科幻"},{"n":"动作","v":"动作"},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"冒险","v":"冒险"},{"n":"儿童","v":"儿童"},{"n":"歌舞","v":"歌舞"},{"n":"音乐","v":"音乐"},{"n":"奇幻","v":"奇幻"},{"n":"动画","v":"动画"},{"n":"恐怖","v":"恐怖"},{"n":"惊悚","v":"惊悚"},{"n":"丧尸","v":"丧尸"},{"n":"战争","v":"战争"},{"n":"传记","v":"传记"},{"n":"纪录","v":"纪录"},{"n":"犯罪","v":"犯罪"},{"n":"悬疑","v":"悬疑"},{"n":"西部","v":"西部"},{"n":"灾难","v":"灾难"},{"n":"古装","v":"古装"},{"n":"武侠","v":"武侠"},{"n":"家庭","v":"家庭"},{"n":"短片","v":"短片"},{"n":"校园","v":"校园"},{"n":"文艺","v":"文艺"},{"n":"运动","v":"运动"},{"n":"青春","v":"青春"},{"n":"同性","v":"同性"},{"n":"励志","v":"励志"},{"n":"人性","v":"人性"},{"n":"美食","v":"美食"},{"n":"女性","v":"女性"},{"n":"治愈","v":"治愈"},{"n":"历史","v":"历史"},{"n":"真人秀","v":"真人秀"},{"n":"脱口秀","v":"脱口秀"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"英国","v":"英国"},{"n":"法国","v":"法国"},{"n":"德国","v":"德国"},{"n":"印度","v":"印度"},{"n":"泰国","v":"泰国"},{"n":"丹麦","v":"丹麦"},{"n":"瑞典","v":"瑞典"},{"n":"巴西","v":"巴西"},{"n":"加拿大","v":"加拿大"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"意大利","v":"意大利"},{"n":"比利时","v":"比利时"},{"n":"爱尔兰","v":"爱尔兰"},{"n":"西班牙","v":"西班牙"},{"n":"澳大利亚","v":"澳大利亚"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"英语","v":"英语"},{"n":"法语","v":"法语"},{"n":"国语","v":"国语"},{"n":"粤语","v":"粤语"},{"n":"日语","v":"日语"},{"n":"韩语","v":"韩语"},{"n":"泰语","v":"泰语"},{"n":"德语","v":"德语"},{"n":"俄语","v":"俄语"},{"n":"闽南语","v":"闽南语"},{"n":"丹麦语","v":"丹麦语"},{"n":"波兰语","v":"波兰语"},{"n":"瑞典语","v":"瑞典语"},{"n":"印地语","v":"印地语"},{"n":"挪威语","v":"挪威语"},{"n":"意大利语","v":"意大利语"},{"n":"西班牙语","v":"西班牙语"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "21":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"Netflix","v":"Netflix"},{"n":"剧情","v":"剧情"},{"n":"丧尸","v":"丧尸"},{"n":"仙侠","v":"仙侠"},{"n":"穿越","v":"穿越"},{"n":"惊悚","v":"惊悚"},{"n":"恐怖","v":"恐怖"},{"n":"言情","v":"言情"},{"n":"科幻","v":"科幻"},{"n":"动作","v":"动作"},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"偶像","v":"偶像"},{"n":"都市","v":"都市"},{"n":"军旅","v":"军旅"},{"n":"谍战","v":"谍战"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"冒险","v":"冒险"},{"n":"儿童","v":"儿童"},{"n":"歌舞","v":"歌舞"},{"n":"音乐","v":"音乐"},{"n":"奇幻","v":"奇幻"},{"n":"动画","v":"动画"},{"n":"战争","v":"战争"},{"n":"传记","v":"传记"},{"n":"记录","v":"记录"},{"n":"犯罪","v":"犯罪"},{"n":"悬疑","v":"悬疑"},{"n":"西部","v":"西部"},{"n":"灾难","v":"灾难"},{"n":"古装","v":"古装"},{"n":"武侠","v":"武侠"},{"n":"家庭","v":"家庭"},{"n":"短片","v":"短片"},{"n":"校园","v":"校园"},{"n":"文艺","v":"文艺"},{"n":"运动","v":"运动"},{"n":"青春","v":"青春"},{"n":"同性","v":"同性"},{"n":"励志","v":"励志"},{"n":"人性","v":"人性"},{"n":"美食","v":"美食"},{"n":"女性","v":"女性"},{"n":"治愈","v":"治愈"},{"n":"历史","v":"历史"},{"n":"真人秀","v":"真人秀"},{"n":"脱口秀","v":"脱口秀"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"英国","v":"英国"},{"n":"法国","v":"法国"},{"n":"德国","v":"德国"},{"n":"印度","v":"印度"},{"n":"泰国","v":"泰国"},{"n":"丹麦","v":"丹麦"},{"n":"瑞典","v":"瑞典"},{"n":"巴西","v":"巴西"},{"n":"加拿大","v":"加拿大"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"意大利","v":"意大利"},{"n":"比利时","v":"比利时"},{"n":"爱尔兰","v":"爱尔兰"},{"n":"西班牙","v":"西班牙"},{"n":"澳大利亚","v":"澳大利亚"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"英语","v":"英语"},{"n":"法语","v":"法语"},{"n":"国语","v":"国语"},{"n":"粤语","v":"粤语"},{"n":"日语","v":"日语"},{"n":"韩语","v":"韩语"},{"n":"泰语","v":"泰语"},{"n":"德语","v":"德语"},{"n":"俄语","v":"俄语"},{"n":"闽南语","v":"闽南语"},{"n":"丹麦语","v":"丹麦语"},{"n":"波兰语","v":"波兰语"},{"n":"瑞典语","v":"瑞典语"},{"n":"印地语","v":"印地语"},{"n":"挪威语","v":"挪威语"},{"n":"意大利语","v":"意大利语"},{"n":"西班牙语","v":"西班牙语"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "22":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"Netflix","v":"Netflix"},{"n":"热血","v":"热血"},{"n":"科幻","v":"科幻"},{"n":"美少女","v":"美少女"},{"n":"魔幻","v":"魔幻"},{"n":"经典","v":"经典"},{"n":"励志","v":"励志"},{"n":"少儿","v":"少儿"},{"n":"冒险","v":"冒险"},{"n":"搞笑","v":"搞笑"},{"n":"推理","v":"推理"},{"n":"恋爱","v":"恋爱"},{"n":"治愈","v":"治愈"},{"n":"幻想","v":"幻想"},{"n":"校园","v":"校园"},{"n":"动物","v":"动物"},{"n":"机战","v":"机战"},{"n":"亲子","v":"亲子"},{"n":"儿歌","v":"儿歌"},{"n":"运动","v":"运动"},{"n":"悬疑","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":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "23":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"YouTube","v":"YouTube"},{"n":"脱口秀","v":"脱口秀"},{"n":"真人秀","v":"真人秀"},{"n":"选秀","v":"选秀"},{"n":"八卦","v":"八卦"},{"n":"访谈","v":"访谈"},{"n":"情感","v":"情感"},{"n":"生活","v":"生活"},{"n":"晚会","v":"晚会"},{"n":"搞笑","v":"搞笑"},{"n":"音乐","v":"音乐"},{"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":"其它"}]},{"key":"lang","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":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "35":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] + }, + class_parse:'li.swiper-slide.navbar-item;span&&Text;a&&href;/(\\d+).html', + cate_exclude:'福利', + 一级:'a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href', + 推荐:'.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href', + + // searchUrl:'/vodsearch/**----------fypage---/pjax/NO.html', + searchUrl:'/index.php/ajax/suggest?mid=1&wd=**&limit=50', + detailUrl:'/voddetail/fyid.html', //非必填,二级详情拼接链接 + 搜索:'json:list;name;pic;;id', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\244\247\347\261\263\346\230\237\347\220\203[V2].js" "b/zyplayer/drpy_dzlive/drpy_js/\345\244\247\347\261\263\346\230\237\347\220\203[V2].js" new file mode 100644 index 0000000..38c4886 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\244\247\347\261\263\346\230\237\347\220\203[V2].js" @@ -0,0 +1,304 @@ +var rule = { + title: '大米星球[V2]', // csp_AppYsV2 + host:'https://www.dmxq.vip', + hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src=jsp.pdfh(html,"ul&&li:eq(1)&&a&&href");print(src);HOST=src+"/api.php/app/"', + url: 'video?tid=fyclassfyfilter&limit=20&pg=fypage', + filter_url:'&class={{fl.class}}&area={{fl.area}}&lang={{fl.lang}}&letter={{fl.letter}}&year={{fl.year}}&by={{fl.by}}', + filter: { + "20":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"Netflix","v":"Netflix"},{"n":"仙侠","v":"仙侠"},{"n":"剧情","v":"剧情"},{"n":"科幻","v":"科幻"},{"n":"动作","v":"动作"},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"冒险","v":"冒险"},{"n":"儿童","v":"儿童"},{"n":"歌舞","v":"歌舞"},{"n":"音乐","v":"音乐"},{"n":"奇幻","v":"奇幻"},{"n":"动画","v":"动画"},{"n":"恐怖","v":"恐怖"},{"n":"惊悚","v":"惊悚"},{"n":"丧尸","v":"丧尸"},{"n":"战争","v":"战争"},{"n":"传记","v":"传记"},{"n":"纪录","v":"纪录"},{"n":"犯罪","v":"犯罪"},{"n":"悬疑","v":"悬疑"},{"n":"西部","v":"西部"},{"n":"灾难","v":"灾难"},{"n":"古装","v":"古装"},{"n":"武侠","v":"武侠"},{"n":"家庭","v":"家庭"},{"n":"短片","v":"短片"},{"n":"校园","v":"校园"},{"n":"文艺","v":"文艺"},{"n":"运动","v":"运动"},{"n":"青春","v":"青春"},{"n":"同性","v":"同性"},{"n":"励志","v":"励志"},{"n":"人性","v":"人性"},{"n":"美食","v":"美食"},{"n":"女性","v":"女性"},{"n":"治愈","v":"治愈"},{"n":"历史","v":"历史"},{"n":"真人秀","v":"真人秀"},{"n":"脱口秀","v":"脱口秀"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"英国","v":"英国"},{"n":"法国","v":"法国"},{"n":"德国","v":"德国"},{"n":"印度","v":"印度"},{"n":"泰国","v":"泰国"},{"n":"丹麦","v":"丹麦"},{"n":"瑞典","v":"瑞典"},{"n":"巴西","v":"巴西"},{"n":"加拿大","v":"加拿大"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"意大利","v":"意大利"},{"n":"比利时","v":"比利时"},{"n":"爱尔兰","v":"爱尔兰"},{"n":"西班牙","v":"西班牙"},{"n":"澳大利亚","v":"澳大利亚"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"英语","v":"英语"},{"n":"法语","v":"法语"},{"n":"国语","v":"国语"},{"n":"粤语","v":"粤语"},{"n":"日语","v":"日语"},{"n":"韩语","v":"韩语"},{"n":"泰语","v":"泰语"},{"n":"德语","v":"德语"},{"n":"俄语","v":"俄语"},{"n":"闽南语","v":"闽南语"},{"n":"丹麦语","v":"丹麦语"},{"n":"波兰语","v":"波兰语"},{"n":"瑞典语","v":"瑞典语"},{"n":"印地语","v":"印地语"},{"n":"挪威语","v":"挪威语"},{"n":"意大利语","v":"意大利语"},{"n":"西班牙语","v":"西班牙语"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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"}]}], + "21":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"Netflix","v":"Netflix"},{"n":"剧情","v":"剧情"},{"n":"丧尸","v":"丧尸"},{"n":"仙侠","v":"仙侠"},{"n":"穿越","v":"穿越"},{"n":"惊悚","v":"惊悚"},{"n":"恐怖","v":"恐怖"},{"n":"言情","v":"言情"},{"n":"科幻","v":"科幻"},{"n":"动作","v":"动作"},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"偶像","v":"偶像"},{"n":"都市","v":"都市"},{"n":"军旅","v":"军旅"},{"n":"谍战","v":"谍战"},{"n":"罪案","v":"罪案"},{"n":"宫廷","v":"宫廷"},{"n":"冒险","v":"冒险"},{"n":"儿童","v":"儿童"},{"n":"歌舞","v":"歌舞"},{"n":"音乐","v":"音乐"},{"n":"奇幻","v":"奇幻"},{"n":"动画","v":"动画"},{"n":"战争","v":"战争"},{"n":"传记","v":"传记"},{"n":"记录","v":"记录"},{"n":"犯罪","v":"犯罪"},{"n":"悬疑","v":"悬疑"},{"n":"西部","v":"西部"},{"n":"灾难","v":"灾难"},{"n":"古装","v":"古装"},{"n":"武侠","v":"武侠"},{"n":"家庭","v":"家庭"},{"n":"短片","v":"短片"},{"n":"校园","v":"校园"},{"n":"文艺","v":"文艺"},{"n":"运动","v":"运动"},{"n":"青春","v":"青春"},{"n":"同性","v":"同性"},{"n":"励志","v":"励志"},{"n":"人性","v":"人性"},{"n":"美食","v":"美食"},{"n":"女性","v":"女性"},{"n":"治愈","v":"治愈"},{"n":"历史","v":"历史"},{"n":"真人秀","v":"真人秀"},{"n":"脱口秀","v":"脱口秀"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"英国","v":"英国"},{"n":"法国","v":"法国"},{"n":"德国","v":"德国"},{"n":"印度","v":"印度"},{"n":"泰国","v":"泰国"},{"n":"丹麦","v":"丹麦"},{"n":"瑞典","v":"瑞典"},{"n":"巴西","v":"巴西"},{"n":"加拿大","v":"加拿大"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"意大利","v":"意大利"},{"n":"比利时","v":"比利时"},{"n":"爱尔兰","v":"爱尔兰"},{"n":"西班牙","v":"西班牙"},{"n":"澳大利亚","v":"澳大利亚"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"英语","v":"英语"},{"n":"法语","v":"法语"},{"n":"国语","v":"国语"},{"n":"粤语","v":"粤语"},{"n":"日语","v":"日语"},{"n":"韩语","v":"韩语"},{"n":"泰语","v":"泰语"},{"n":"德语","v":"德语"},{"n":"俄语","v":"俄语"},{"n":"闽南语","v":"闽南语"},{"n":"丹麦语","v":"丹麦语"},{"n":"波兰语","v":"波兰语"},{"n":"瑞典语","v":"瑞典语"},{"n":"印地语","v":"印地语"},{"n":"挪威语","v":"挪威语"},{"n":"意大利语","v":"意大利语"},{"n":"西班牙语","v":"西班牙语"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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"}]}], + "22":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"Netflix","v":"Netflix"},{"n":"热血","v":"热血"},{"n":"科幻","v":"科幻"},{"n":"美少女","v":"美少女"},{"n":"魔幻","v":"魔幻"},{"n":"经典","v":"经典"},{"n":"励志","v":"励志"},{"n":"少儿","v":"少儿"},{"n":"冒险","v":"冒险"},{"n":"搞笑","v":"搞笑"},{"n":"推理","v":"推理"},{"n":"恋爱","v":"恋爱"},{"n":"治愈","v":"治愈"},{"n":"幻想","v":"幻想"},{"n":"校园","v":"校园"},{"n":"动物","v":"动物"},{"n":"机战","v":"机战"},{"n":"亲子","v":"亲子"},{"n":"儿歌","v":"儿歌"},{"n":"运动","v":"运动"},{"n":"悬疑","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":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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":"更早"}]}], + "23":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"YouTube","v":"YouTube"},{"n":"脱口秀","v":"脱口秀"},{"n":"真人秀","v":"真人秀"},{"n":"选秀","v":"选秀"},{"n":"八卦","v":"八卦"},{"n":"访谈","v":"访谈"},{"n":"情感","v":"情感"},{"n":"生活","v":"生活"},{"n":"晚会","v":"晚会"},{"n":"搞笑","v":"搞笑"},{"n":"音乐","v":"音乐"},{"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":"其它"}]},{"key":"lang","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":"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"}]}] + }, + detailUrl:'/detail?vod_id=fyid', + searchUrl: '/search?text=**&pg=fypage', + searchable: 2, + quickSearch: 0, + filterable:1,//是否启用分类筛选, + // headers:{'User-Agent':'Dart/2.14 (dart:io)'}, + headers:{'User-Agent':'okhttp/4.1.0'}, + timeout:5000, + // 分类筛选 /api.php/app/nav || /xgapp.php/v1/nav || /api.php/v1.vod/types + class_name:'电影&电视剧&动漫&综艺', + class_url:'20&21&22&23', + play_parse:true, + lazy:`js: + let play_Url = ''; + if (/\\.m3u8|\\.mp4/.test(input)) { + input = { + jx: 0, + url: input, + parse: 0 + } + } else if (/,/.test(input) && /url=/.test(input)) { + input = input.split('url='); + play_Url = input[0].split(',')[0]; + input = { + jx: 0, + url: input[1], + playUrl: play_Url, + parse: 1 + } + } else if (/url=|id=/.test(input)) { + input = { + jx: 0, + url: JSON.parse(request(input)).url, + parse: 0 + } + } else if (/youku|iqiyi|v\\.qq\\.com|pptv|sohu|le\\.com|1905\\.com|mgtv|bilibili|ixigua/.test(input)) { + play_Url = /bilibili/.test(input) ? 'https://jx.xmflv.com/?url=' : 'https://jx.777jiexi.com/player/?url='; // type0的parse + // play_Url = /bilibili/.test(input) ? 'https://jx.xmflv.com/?url=' : 'json:http://pandown.pro/app/kkdy.php?url='; // type1的parse可加'json:'直接解析url (除了蜂蜜的'影视TV',其它的壳皆可用) + input = { + jx: 0, + url: input, + playUrl: play_Url, + parse: 1, + header: JSON.stringify({ + 'user-agent': 'Mozilla/5.0', + }), + } + } else { + input + } + `, + 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', + 推荐:`js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + if(HOST.endsWith('/')){ + jsondata = JSON.parse(request(HOST + 'vodPhbAll')); + } else { + jsondata = JSON.parse(request(HOST + '/vodPhbAll')); + } + videoList = jsondata.data.list[0].vod_list; + } else { + if(HOST.endsWith('/')){ + jsondata = JSON.parse(request(HOST + 'index_video')); + } else { + jsondata = JSON.parse(request(HOST + '/index_video')); + } + videoList = /xgapp/.test(HOST)?jsondata.data[0].vlist:jsondata.list[0].vlist; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('https') ? it.vod_pic : it.vod_pic.startsWith('http') ? it.vod_pic.replace('http','https') : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, + 一级:`js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + input = input.replace('video','v1.vod').replace('tid','type').replace('pg=','page='); + jsondata = JSON.parse(request(input)); + videoList = jsondata.data.list; + } else { + input = HOST + '/'+ input.split('/')[4]; + jsondata = JSON.parse(request(input)); + videoList = jsondata.list || jsondata.data; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('https') ? it.vod_pic : it.vod_pic.startsWith('http') ? it.vod_pic.replace('http','https') : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, + + 二级:`js: + if (/v1\\.vod/.test(HOST)) { + input = HOST + '/'+ input.split('/')[3]; + } else { + input = HOST + '/'+ input.split('/')[3].replace('detail','video_detail').replace('vod_id','id'); + } + try { + let html = request(input); + html = JSON.parse(html); + let node = /xgapp/.test(HOST) ? html.data.vod_info : html.data; + VOD = { + vod_id: node.vod_id, + vod_name: node.vod_name, + vod_pic: node.vod_pic, + type_name: node.vod_class, + vod_year: node.vod_year, + vod_area: node.vod_area, + vod_remarks: node.vod_remarks, + vod_actor: node.vod_actor, + vod_director: node.vod_director, + vod_content: node.vod_content.strip() + }; + if (typeof play_url === 'undefined') { + var play_url = '' + } + var name = { + 'bfzym3u8': '暴风', + '1080zyk': '优质', + 'kuaikan': '快看', + 'lzm3u8': '量子', + 'ffm3u8': '非凡', + 'haiwaikan': '海外看', + 'gsm3u8': '光速', + 'zuidam3u8': '最大', + 'bjm3u8': '八戒', + 'snm3u8': '索尼', + 'wolong': '卧龙', + 'xlm3u8': '新浪', + 'yhm3u8': '樱花', + 'tkm3u8': '天空', + 'jsm3u8': '极速', + 'wjm3u8': '无尽', + 'sdm3u8': '闪电', + 'kcm3u8': '快车', + 'jinyingm3u8': '金鹰', + 'fsm3u8': '飞速', + 'tpm3u8': '淘片', + 'lem3u8': '鱼乐', + 'dbm3u8': '百度', + 'tomm3u8': '番茄', + 'ukm3u8': 'U酷', + 'ikm3u8': '爱坤', + 'hnzym3u8': '红牛资源', + 'hnm3u8': '红牛', + '68zy_m3u8': '68', + 'kdm3u8': '酷点', + 'bdxm3u8': '北斗星', + 'qhm3u8': '奇虎', + 'hhm3u8': '豪华', + 'kbm3u8': '快播' + }; + let episodes = /v1\\.vod/.test(HOST)?node.vod_play_list:node.vod_url_with_player; + if (episodes != '') { + let playMap = {}; + let arr = []; + episodes.forEach(ep => { + let from = []; + if (/v1\\.vod/.test(HOST)) { + from = ep.player_info.from||ep.player_info.show||ep.from||ep.show; + } else { + from = ep.code||ep.name; + } + if (!playMap.hasOwnProperty(from)) { + playMap[from] = [] + } + let parse_api = ''; + if (/v1\\.vod/.test(HOST)) { + parse_api = ep.player_info.parse != null ? ep.player_info.parse : ep.player_info.parse2; + // parse_api = /,/.test(parse_api) ? parse_api.split(',')[1] : parse_api; + } else { + parse_api = ep.parse_api; + } + log('parse_api =========> '+parse_api); + if (parse_api != null && !/\\.m3u8|\\.mp4/.test(ep.url)) { + parse_api = parse_api.replaceAll('..','.') ; + ep.url = ep.url.replaceAll('$','$'+parse_api); + } + if (from != null) playMap[from].push(ep.url) + }); + for (var key in playMap) { + if ('bfzym3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 1 + }) + } else if ('1080zyk' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 2 + }) + } else if ('kuaikan' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 3 + }) + } else if ('lzm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 4 + }) + } else if ('ffm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 5 + }) + } else if ('snm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 6 + }) + } else if ('qhm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 7 + }) + } else { + arr.push({ + flag: name[key] ? name[key] : key, + url: playMap[key], + sort: 8 + }) + } + } + arr.sort((a, b) => a.sort - b.sort); + let playFrom = []; + let playList = []; + arr.map(val => { + if (!/undefined/.test(val.flag)) { + playFrom.push(val.flag); + playList.push(val.url); + } + }) + VOD.vod_play_from = playFrom.join('$$$'); + VOD.vod_play_url = playList.join('$$$'); + } else { + VOD.vod_play_from = node.vod_play_from; + VOD.vod_play_url = node.vod_play_url; + } + } catch (e) { + log("获取二级详情页发生错误:" + e.message); + } + `, + 搜索:`js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + input = (HOST + '/'+ input.split('/')[3]).replace('/search','').replace('text=','wd=').replace('pg=','page='); + jsondata = JSON.parse(request(input)); + videoList = jsondata.data.list; + } else { + input = HOST + '/'+ input.split('/')[3] + jsondata = JSON.parse(request(input)); + videoList = jsondata.list || jsondata.data; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('https') ? it.vod_pic : it.vod_pic.startsWith('http') ? it.vod_pic.replace('http','https') : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\245\207\347\217\215\345\274\202\345\205\275[\345\256\230].js" "b/zyplayer/drpy_dzlive/drpy_js/\345\245\207\347\217\215\345\274\202\345\205\275[\345\256\230].js" new file mode 100644 index 0000000..5c0b816 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\245\207\347\217\215\345\274\202\345\205\275[\345\256\230].js" @@ -0,0 +1,39 @@ +var rule = { + title:'奇珍异兽[官]', + host:'https://www.iqiyi.com', + homeUrl:'', + // detailUrl:'https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid=fyid&size=2000&page=1', + detailUrl:'https://pcw-api.iqiyi.com/video/video/videoinfowithuser/fyid?agent_type=1&authcookie=&subkey=fyid&subscribe=1', + searchUrl:'https://search.video.iqiyi.com/o?if=html5&key=**&pageNum=fypage&pos=1&pageSize=24&site=iqiyi', + searchable:2, + multi:1, + filterable:1, + filter:{'1': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': 'three_category_id', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '华语', 'v': 1}, {'n': '香港地区', 'v': 28997}, {'n': '美国', 'v': 2}, {'n': '欧洲', 'v': 3}, {'n': '韩国', 'v': 4}, {'n': '日本', 'v': 308}, {'n': '泰国', 'v': 1115}, {'n': '印度', 'v': 28999}, {'n': '其它', 'v': 5}]}, {'key': '18001', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '喜剧', 'v': 8}, {'n': '爱情', 'v': 6}, {'n': '动作', 'v': 11}, {'n': '枪战', 'v': 131}, {'n': '犯罪', 'v': 291}, {'n': '惊悚', 'v': 128}, {'n': '恐怖', 'v': 10}, {'n': '悬疑', 'v': 289}, {'n': '动画', 'v': 12}, {'n': '家庭', 'v': 27356}, {'n': '奇幻', 'v': 1284}, {'n': '魔幻', 'v': 129}, {'n': '科幻', 'v': 9}, {'n': '战争', 'v': 7}, {'n': '青春', 'v': 130}]}, {'key': '27396', 'name': '规格', 'value': [{'n': '全部', 'v': ''}, {'n': '巨制', 'v': 27397}, {'n': '院线', 'v': 27815}, {'n': '独播', 'v': 30149}, {'n': '网络电影', 'v': 27401}]}], '2': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': 'three_category_id', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': 15}, {'n': '港剧', 'v': 16}, {'n': '韩剧', 'v': 17}, {'n': '美剧', 'v': 18}, {'n': '日剧', 'v': 309}, {'n': '泰剧', 'v': 1114}, {'n': '台湾地区', 'v': 1117}, {'n': '英剧', 'v': 28916}, {'n': '其它', 'v': 19}]}, {'key': '18003', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '自制', 'v': 11992}, {'n': '古装', 'v': 24}, {'n': '言情', 'v': 20}, {'n': '武侠', 'v': 23}, {'n': '偶像', 'v': 30}, {'n': '家庭', 'v': 1654}, {'n': '青春', 'v': 1653}, {'n': '都市', 'v': 24064}, {'n': '喜剧', 'v': 135}, {'n': '战争', 'v': 27916}, {'n': '军旅', 'v': 1655}, {'n': '谍战', 'v': 290}, {'n': '悬疑', 'v': 32}, {'n': '罪案', 'v': 149}, {'n': '穿越', 'v': 148}, {'n': '宫廷', 'v': 139}, {'n': '历史', 'v': 21}, {'n': '神话', 'v': 145}, {'n': '科幻', 'v': 34}, {'n': '年代', 'v': 27}, {'n': '农村', 'v': 29}, {'n': '商战', 'v': 140}, {'n': '剧情', 'v': 24063}, {'n': '奇幻', 'v': 27881}, {'n': '网剧', 'v': 24065}, {'n': '竖短片', 'v': 32839}]}], '3': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': 'three_category_id', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '国内', 'v': 20323}, {'n': '国外', 'v': 20324}]}, {'key': '18004', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '人文', 'v': 70}, {'n': '美食', 'v': 33908}, {'n': '医疗', 'v': 33924}, {'n': '自然', 'v': 33933}, {'n': '萌宠', 'v': 33945}, {'n': '财经', 'v': 33953}, {'n': '罪案', 'v': 33960}, {'n': '竞技', 'v': 33967}, {'n': '灾难', 'v': 33974}, {'n': '军事', 'v': 72}, {'n': '历史', 'v': 74}, {'n': '探险', 'v': 73}, {'n': '社会', 'v': 71}, {'n': '科技', 'v': 28119}, {'n': '旅游', 'v': 310}]}, {'key': '28467', 'name': '出品方', 'value': [{'n': '全部', 'v': ''}, {'n': 'BBC', 'v': 28468}, {'n': '美国历史频道', 'v': 28470}, {'n': '探索频道', 'v': 28471}, {'n': '央视记录', 'v': 28472}, {'n': '北京纪实频道', 'v': 28473}, {'n': '上海纪实频道', 'v': 28474}, {'n': '朗思文化', 'v': 28476}, {'n': 'CNEX', 'v': 28477}, {'n': '五星传奇', 'v': 28478}, {'n': 'IMG', 'v': 28479}, {'n': 'NHK', 'v': 28480}, {'n': '爱奇艺出品', 'v': 31283}, {'n': 'Netflix', 'v': 31286}]}, {'key': '29076', 'name': '片种', 'value': [{'n': '全部', 'v': ''}, {'n': '纪录电影', 'v': 29077}, {'n': '系列纪录片', 'v': 29078}, {'n': '网络纪录片', 'v': 29082}, {'n': '纪实栏目', 'v': 29083}]}, {'key': '31294', 'name': '时长', 'value': [{'n': '全部', 'v': ''}, {'n': '微纪录', 'v': 29079}, {'n': '长纪录', 'v': 29080}, {'n': '短纪录', 'v': 29081}]}], '4': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': 'three_category_id', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '中国大陆', 'v': 37}, {'n': '日本', 'v': 38}, {'n': '韩国', 'v': 1106}, {'n': '欧美', 'v': 30218}, {'n': '其它', 'v': 40}]}, {'key': '30219', 'name': '版本', 'value': [{'n': '全部', 'v': ''}, {'n': '动画', 'v': 30220}, {'n': '特摄', 'v': 30223}, {'n': '布袋戏', 'v': 30224}, {'n': '特别篇', 'v': 32782}, {'n': '动态漫画', 'v': 32783}, {'n': '动画电影', 'v': 32784}, {'n': '竖版视频', 'v': 32785}, {'n': '轻动画', 'v': 33482}, {'n': '短剧', 'v': 33483}]}, {'key': '30225', 'name': '风格', 'value': [{'n': '全部', 'v': ''}, {'n': '搞笑', 'v': 30230}, {'n': '热血', 'v': 30232}, {'n': '催泪', 'v': 30233}, {'n': '治愈', 'v': 30234}, {'n': '励志', 'v': 30237}, {'n': '机战', 'v': 30241}, {'n': '恋爱', 'v': 30243}, {'n': '科幻', 'v': 30245}, {'n': '奇幻', 'v': 30247}, {'n': '推理', 'v': 30248}, {'n': '校园', 'v': 30249}, {'n': '日常', 'v': 30252}, {'n': '历史', 'v': 30254}, {'n': '美食', 'v': 30255}, {'n': '职场', 'v': 30256}, {'n': '偶像', 'v': 30258}, {'n': '泡面', 'v': 30265}, {'n': '冒险', 'v': 30267}, {'n': '竞技', 'v': 30268}, {'n': '合家欢', 'v': 30270}, {'n': '武侠', 'v': 32792}, {'n': '玄幻', 'v': 32793}]}, {'key': '32795', 'name': '新类型', 'value': [{'n': '全部', 'v': ''}, {'n': '轻小说改编', 'v': 32796}, {'n': '漫画改编', 'v': 32797}, {'n': '游戏改编', 'v': 32798}, {'n': '原创', 'v': 32799}]}], '6': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': 'three_category_id', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': 151}, {'n': '港台', 'v': 152}, {'n': '韩国', 'v': 33306}, {'n': '欧美', 'v': 154}, {'n': '其它', 'v': 1113}]}, {'key': '18014', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '播报', 'v': 155}, {'n': '访谈', 'v': 156}, {'n': '游戏', 'v': 158}, {'n': '晚会', 'v': 292}, {'n': '曲艺', 'v': 293}, {'n': '脱口秀', 'v': 2118}, {'n': '真人秀', 'v': 2224}, {'n': '竞技', 'v': 30278}, {'n': '爱奇艺出品', 'v': 30279}, {'n': '竞演', 'v': 33860}]}, {'key': '33162', 'name': '题材', 'value': [{'n': '全部', 'v': ''}, {'n': '音乐', 'v': 33163}, {'n': '舞蹈', 'v': 33172}, {'n': '文化', 'v': 33173}, {'n': '美食', 'v': 33182}, {'n': '伦理', 'v': 33184}, {'n': '相亲', 'v': 33193}, {'n': '纪实', 'v': 33195}, {'n': '生活', 'v': 33196}, {'n': '亲子', 'v': 33197}, {'n': '少儿', 'v': 33198}, {'n': '财经', 'v': 33199}, {'n': '健康', 'v': 33200}, {'n': '时尚', 'v': 33203}, {'n': '旅游', 'v': 33205}, {'n': '教育', 'v': 33206}, {'n': '其它', 'v': 33220}, {'n': '爱情', 'v': 33316}, {'n': '搞笑', 'v': 33317}, {'n': '益智', 'v': 33318}, {'n': '职场', 'v': 33319}, {'n': '语言', 'v': 33530}, {'n': '辩论', 'v': 33531}, {'n': '演讲', 'v': 33843}]}], '5': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': 'three_category_id', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': 221}, {'n': '港台', 'v': 220}, {'n': '欧美', 'v': 219}, {'n': '日韩', 'v': 218}, {'n': '拉美', 'v': 217}, {'n': '亚洲地区', 'v': 216}, {'n': '非洲', 'v': 215}]}, {'key': '18009', 'name': '语种', 'value': [{'n': '全部', 'v': ''}, {'n': '普通话', 'v': 91}, {'n': '粤语', 'v': 92}, {'n': '闽南语', 'v': 93}, {'n': '英语', 'v': 94}, {'n': '日语', 'v': 95}, {'n': '韩语', 'v': 96}, {'n': '其它', 'v': 97}]}, {'key': '23554', 'name': '音乐类型', 'value': [{'n': '全部', 'v': ''}, {'n': '单曲MV', 'v': 23556}, {'n': '单曲现场', 'v': 23557}, {'n': '演唱会', 'v': 23558}, {'n': '新闻', 'v': 23559}, {'n': '访谈', 'v': 23560}, {'n': '音乐记录', 'v': 23561}, {'n': '音乐周边', 'v': 23562}, {'n': '音乐节目', 'v': 23563}, {'n': '影视原声', 'v': 23564}, {'n': '音乐短片', 'v': 23565}, {'n': '其他', 'v': 23566}]}], '16': [{'key': 'mode', 'name': '综合排序', 'value': [{'n': '全部', 'v': ''}, {'n': '热播榜', 'v': 11}, {'n': '好评榜', 'v': 8}, {'n': '新上线', 'v': 4}]}, {'key': 'year', 'name': '全部年份', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': 2023}, {'n': '2022', 'v': 2022}, {'n': '2021', 'v': 2021}, {'n': '2020', 'v': 2020}, {'n': '2019', 'v': 2019}, {'n': '2018', 'v': 2018}, {'n': '2017', 'v': 2017}, {'n': '2016-2011', 'v': '2011_2016'}, {'n': '2010-2000', 'v': '2000_2010'}, {'n': '90年代', 'v': '1990_1999'}, {'n': '80年代', 'v': '1980_1989'}, {'n': '更早', 'v': '1964_1979'}]}, {'key': 'is_purchase', 'name': '全部资费', 'value': [{'n': '全部', 'v': ''}, {'n': '免费', 'v': 0}, {'n': '会员', 'v': 1}, {'n': '付费', 'v': 2}]}, {'key': '18061', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '喜剧', 'v': 1296}, {'n': '爱情', 'v': 1297}, {'n': '动作', 'v': 1298}, {'n': '奇幻', 'v': 1299}, {'n': '惊悚', 'v': 1300}, {'n': '悬疑', 'v': 1301}, {'n': '青春', 'v': 1302}]}]}, + // url:'https://pcw-api.iqiyi.com/search/recommend/list?channel_id=fyclass&data_type=1&is_purchase=&mode=24&page_id=fypage&ret_num=48&three_category_id=', + url:'https://pcw-api.iqiyi.com/search/recommend/list?channel_id=fyclass&data_type=1&page_id=fypage&ret_num=48', + filter_url:'is_purchase={{fl.is_purchase}}&mode={{fl.mode}}&three_category_id={{fl.three_category_id}}&market_release_date_level={{fl.year}}', + // url:'https://pcw-api.iqiyi.com/search/video/videolists?channel_id=fyclass&pageNum=fypage&pageSize=24&data_type=1&site=iqiyi', + headers:{ + 'User-Agent':'MOBILE_UA' + }, + timeout:5000, + class_name:'电影&电视剧&纪录片&动漫&综艺&音乐&网络电影', + class_url:'1&2&3&4&6&5&16', + limit:20, + // play_parse:true, + // 手动调用解析请求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', + // 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + // 一级:'json:.data.list;.name;.imageUrl;.latestOrder;.albumId', + 推荐:'', + // 推荐:'js:let d=[];fetch_params.headers["user-agent"]=PC_UA;pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;let html=fetch(HOST,fetch_params);let lists=pdfa(html,".qy-mod-li");lists.forEach(function(it){try{let title=pdfh(it,"p.sub&&title");let desc=pdfh(it,".qy-mod-label&&Text");let pic_url=pd(it,"img&&src");d.push({title:title,desc:desc,img:pic_url})}catch(e){}});res=setResult(d);', + 一级:'js:let d=[];if(MY_CATE==="16"){input=input.replace("channel_id=16","channel_id=1").split("three_category_id")[0];input+="three_category_id=27401"}else if(MY_CATE==="5"){input=input.replace("data_type=1","data_type=2")}let html=request(input);let json=JSON.parse(html);if(json.code==="A00003"){fetch_params.headers["user-agent"]=PC_UA;json=JSON.parse(fetch(input,fetch_params))}json.data.list.forEach(function(data){if(data.channelId===1){desc=data.hasOwnProperty("score")?data.score+"分\\t":""}else if(data.channelId===2||data.channelId===4){if(data.latestOrder===data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"集全"}else{if(data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"/"+data.videoCount+"集"}else{desc="更新至 "+data.latestOrder+"集"}}}else if(data.channelId===6){desc=data.period+"期"}else if(data.channelId===5){desc=data.focus}else{if(data.latestOrder){desc="更新至 第"+data.latestOrder+"期"}else if(data.period){desc=data.period}else{desc=data.focus}}url=MY_CATE+"$"+data.albumId;d.push({url:url,title:data.name,desc:desc,pic_url:data.imageUrl.replace(".jpg","_390_520.jpg?caplist=jpg,webp")})});setResult(d);', + // 一级:'js:let d=[];if(MY_CATE==="16"){input=input.replace("channel_id=16","channel_id=1").split("three_category_id")[0];input+="three_category_id=27401"}else if(MY_CATE==="5"){input=input.replace("data_type=1","data_type=2")}let html=fetch(input,fetch_params);let json=JSON.parse(html);if(json.code==="A00003"){fetch_params.headers["user-agent"]=PC_UA;json=JSON.parse(fetch(input,fetch_params))}json.data.list.forEach(function(data){if(data.channelId===1){desc=data.hasOwnProperty("score")?data.score+"分\\t":""}else if(data.channelId===2||data.channelId===4){if(data.latestOrder===data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"集全"}else{if(data.videoCount){desc=(data.hasOwnProperty("score")?data.score+"分\\t":"")+data.latestOrder+"/"+data.videoCount+"集"}else{desc="更新至 "+data.latestOrder+"集"}}}else if(data.channelId===6){desc=data.period+"期"}else if(data.channelId===5){desc=data.focus}else{if(data.latestOrder){desc="更新至 第"+data.latestOrder+"期"}else if(data.period){desc=data.period}else{desc=data.focus}}url=MY_CATE+"$"+data.albumId;d.push({url:url,title:data.name,desc:desc,pic_url:data.imageUrl.replace(".jpg","_390_520.jpg?caplist=jpg,webp")})});setResult(d);', + // 一级:'json:.data.list;.name;.imageUrl;.playUrl;.latestOrder', + // 二级:{is_json:1,"title":"data.title;data.moviecategory[0]+data.moviecategory[1]","img":"data.cdncover","desc":"data.area[0];data.director[0]","content":"data.description","tabs":"data.playlink_sites;data.playlinksdetail.#idv.quality","lists":"data.playlinksdetail.#idv.default_url"}, + // 二级:{is_json:1,"title":"data.name+data.subtitle;data.latestOrder","img":"data.imageUrl","desc":"data.categories;data.areas","content":"data.description","tabs":"data.name","lists":"data.playlinksdetail.#idv.default_url"}, + 二级:'', + 二级:'js:let d=[];let html=request(input);let json=JSON.parse(html).data;VOD={vod_id:"",vod_url:input,vod_name:"",type_name:"",vod_actor:"",vod_year:"",vod_director:"",vod_area:"",vod_content:"",vod_remarks:"",vod_pic:""};VOD.vod_name=json.name;try{if(json.latestOrder){VOD.vod_remarks="类型: "+(json.categories[0].name||"")+"\\t"+(json.categories[1].name||"")+"\\t"+(json.categories[2].name||"")+"\\t"+"评分:"+(json.score||"")+"\\n更新至:第"+json.latestOrder+"集(期)/共"+json.videoCount+"集(期)"}else{VOD.vod_remarks="类型: "+(json.categories[0].name||"")+"\\t"+(json.categories[1].name||"")+"\\t"+(json.categories[2].name||"")+"\\t"+"评分:"+(json.score||"")+json.period}}catch(e){VOD.vod_remarks=json.subtitle}VOD.vod_area=(json.focus||"")+"\\n资费:"+(json.payMark===1?"VIP":"免费")+"\\n地区:"+(json.areas||"");let vsize="579_772";try{vsize=json.imageSize[12]}catch(e){}VOD.vod_pic=json.imageUrl.replace(".jpg","_"+vsize+".jpg?caplist=jpg,webp");VOD.type_name=json.categories.map(function(it){return it.name}).join(",");if(json.people.main_charactor){let vod_actors=[];json.people.main_charactor.forEach(function(it){vod_actors.push(it.name)});VOD.vod_actor=vod_actors.join(",")}VOD.vod_content=json.description;let playlists=[];if(json.channelId===1||json.channelId===5){playlists=[{playUrl:json.playUrl,imageUrl:json.imageUrl,shortTitle:json.shortTitle,focus:json.focus,period:json.period}]}else{if(json.channelId===6){let qs=json.period.split("-")[0];let listUrl="https://pcw-api.iqiyi.com/album/source/svlistinfo?cid=6&sourceid="+json.albumId+"&timelist="+qs;let playData=JSON.parse(request(listUrl)).data[qs];playData.forEach(function(it){playlists.push({playUrl:it.playUrl,imageUrl:it.imageUrl,shortTitle:it.shortTitle,focus:it.focus,period:it.period})})}else{let listUrl="https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid="+json.albumId+"&size=200&page=1";let data=JSON.parse(request(listUrl)).data;let total=data.total;playlists=data.epsodelist;if(total>200){for(let i=2;i200){for(let i=2;i { + input = {parse: 0, url: input, js: ''}; + }), + double: true, + 推荐: '.main&&.globalPadding;.picTxtA&&li;*;img&&src;*;*', + 一级: '.picTxtA&&li;.sTit&&Text;img&&data-original;.emScore&&Text;a&&href', + 二级: { + title: 'h1&&Text;.ulTxt&&li&&Text', + img: '.posterPic&&img&&src', + desc: ';.ulTxt&&li:eq(1)&&Text;.ulTxt&&li:eq(2)&&Text;.zpmy&&Text', + content: '', + tabs: '.tabt3&&span', + //lists:'dd.ulNumList:eq(#id)&&li', + lists: $js.toString(() => { + LISTS = []; + //let tabs = pdfa(html,rule.二级.tabs); + let tabs = pdfa(html, 'dd.ulNumList'); + // log(tabs.length); + //log(tabs[0]); + for (let tab of tabs) { + let lists = pdfa(tab, 'ul&&li'); + // log(lists.length); + let list1 = []; + for (let ls of lists) { + let tt = pdfh(ls, 'a&&Text'); + let href = pd(ls, 'a&&href', MY_URL); + if (!tt.includes('展开')) { + list1.push(tt + '$' + href); + } else { + let script = pdfh(ls, 'script&&Html'); + //log(script); + let a = script.match(/window.*=(.*?);/)[1]; + //log(a); + let b = eval(a); + //log(b.length); + let c = b.map(it => it.t + '$' + urljoin(MY_URL, it.l)); + // log(c); + list1 = list1.concat(c); + } + + } + LISTS.push(list1); + } + + }), + tab_text: 'body&&Text', + list_text: 'body&&Text', + list_url: 'a&&href' + }, + 搜索: $js.toString(() => { + function encodeWd(t) { + var n; + return t.length < 7 && (t = t + " ".substr(0, 7 - t.length)), + t.length > 15 && (t = t.substr(0, 15)), + n = base64Encode(t), + n = n.replace(/\//g, "_").replace(/\+/g, "-").replace(/=/g, ""), + n = n.slice(0, 6) + "j" + n.slice(6); + } + + let wd = encodeWd(KEY); + input = input.replace('$wd', wd); + input = urljoin(HOST, input); + let html = request(input); + let d = []; + let p = rule.一级.split(';'); + pdfa(html, p[0]).forEach(it => { + d.push({ + title: pdfh(it, p[1]), + img: pdfh(it, p[2]), + desc: pdfh(it, p[3]), + url: pd(it, p[4], input), + }); + + }); + setResult(d); + }), +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\345\277\253\347\234\213\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\345\277\253\347\234\213\345\275\261\350\247\206.js" new file mode 100644 index 0000000..a9389ac --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\345\277\253\347\234\213\345\275\261\350\247\206.js" @@ -0,0 +1,11 @@ +/** + * 有筛选验证 + */ +var rule = { + 模板: 'mxpro', + title: '快看影视', + host: 'https://www.kkvod.org', + url: '/vodshow/fyclass--------fypage---.html', + searchUrl: '/vodsearch/**----------fyclass---.html', + class_parse: '.navbar-items li;a&&Text;a&&href;/(\\d+).html', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\200\235\345\217\244\345\275\261\350\247\206[V2].js" "b/zyplayer/drpy_dzlive/drpy_js/\346\200\235\345\217\244\345\275\261\350\247\206[V2].js" new file mode 100644 index 0000000..69b039e --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\200\235\345\217\244\345\275\261\350\247\206[V2].js" @@ -0,0 +1,299 @@ +var rule = { + title: '思古影视[V2]', // csp_AppYsV2 + host: 'https://siguyy.cc/api.php/app/', + url: 'video?tid=fyclassfyfilter&limit=20&pg=fypage', + filter_url: '&class={{fl.class}}&area={{fl.area}}&lang={{fl.lang}}&letter={{fl.letter}}&year={{fl.year}}&by={{fl.by}}', + filter: 'H4sIAAAAAAAAA+2X3U4aQRTH32WvvXDxs75K48Wm4arWC02bGGOCohRoq2D8otCiUQRbUT6sKWuBl9mZZd+iy54558xNN9uGSNJwt7//2TMzZ5jzn2XTMI2ll5vG6/iGsWS8WrHW140pY9V6E/dRZKoyuefzO2vlbTx4b3Uo79W8ZG0o+2BsTSn1pOS/r1QFGHPTTTUQA8bkdk4mTlRMAY2ZrTndEo4JQGNW86LzhGMCUB4tnIHmS585dgbnA6Axs/du9xuOCaCtxT164rUMgWKV97wWBTRf/drpneN8AJSXOvQKN5gHEGVf5M6te5LHGADFklm58xljADRf7849+iG6TZySmN44uBpc0s4BUGw/JQ5aGAOg2G7f/V7BGMDW8jAKJ8tai1vawSo1xEc76sG6qnqFFA4NgDHvuiB/3quYAi6lITs9KiUA+qF7+6LYxR8agDawfcwxBRgbfGhyTAHlnVZk6RbzAGid5RvOU0Dr/NQQ9jWuE0Dfuo24taZtXefBeepG3LrYdGxWacGjps+wPqPrMdZjum6ybur6NOvTmm6+IN1/1PRF1hd1fYH1BV2fZ31e1+dYn9N1rtfU6zW5XlOv1+R6/Ud/25enjNioHDGkl7wvh/IM+0UB5W0/iuQB5gFEcVlx9yjsOsYAIjrbH102zEnD/MB/TxawMRVQ3nHK913MA6B1dvNcn4Ln8JGQ/vxXjwnzg3D/aej+E8DED8boBzMj8gMvkXGrCTxIAHq/7Ja1fvGBLp27/qCRxksHgA9u2+nk6OAGoB0y77LMh2wINF+xNcjYOB8A5R2V5QN9WQGM+S4P68+wPvvrb4BJn42vz2ZH1Gdh/wzcZH1wgT2ogA7Sfs3N4eFUQLHcV/eWvrgBIn3Fn1+IIt7JCqLcu7Jk8x2pgPygn/PfRj8AoDEbeVFp45gAVPtVz/mF/wwU8F1eFuki3eUBYMyxW6KOHqOAxixmZQF9RAHX1xT9U6ovgGfwkYkf/Bd+sPUbU7HRkZsQAAA=', + detailUrl: '/detail?vod_id=fyid', + searchUrl: '/search?text=**&pg=fypage', + searchable: 2, + quickSearch: 0, + filterable: 1,//是否启用分类筛选, + headers: {'User-Agent': 'okhttp/4.1.0'}, + timeout: 5000, + // 分类筛选 /api.php/app/nav || /xgapp.php/v1/nav || /api.php/v1.vod/types + class_name: '短剧&电影&电视剧&综艺&动漫', + class_url: '24&1&2&3&4', + play_parse: true, + lazy: `js: + let play_Url = ''; + if (/\\.m3u8|\\.mp4/.test(input)) { + input = { + jx: 0, + url: input, + parse: 0 + } + // } else if (/,/.test(input) && /url=/.test(input)) { + // input = input.split('url='); + // play_Url = input[0].split(',')[0]; + // input = { + // jx: 0, + // url: input[1], + // playUrl: play_Url, + // parse: 1 + // } + // } else if (/url=|id=/.test(input)) { + // input = { + // jx: 0, + // url: JSON.parse(request(input)).url, + // parse: 0 + // } + } else if (/youku|iqiyi|v\\.qq\\.com|pptv|sohu|le\\.com|1905\\.com|mgtv|bilibili|ixigua/.test(input)) { + play_Url = /bilibili/.test(input) ? 'https://jx.xmflv.com/?url=' : 'https://jx.777jiexi.com/player/?url='; // type0的parse + // play_Url = /bilibili/.test(input) ? 'https://jx.xmflv.com/?url=' : 'json:http://pandown.pro/app/kkdy.php?url='; // type1的parse可加'json:'直接解析url (除了蜂蜜的'影视TV',其它的壳皆可用) + input = { + jx: 0, + url: input, + playUrl: play_Url, + parse: 1, + header: JSON.stringify({ + 'user-agent': 'Mozilla/5.0', + }), + } + } else { + input + } + `, + 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', + 推荐: `js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + if(HOST.endsWith('/')){ + jsondata = JSON.parse(request(HOST + 'vodPhbAll')); + } else { + jsondata = JSON.parse(request(HOST + '/vodPhbAll')); + } + videoList = jsondata.data.list; + } else { + if(HOST.endsWith('/')){ + jsondata = JSON.parse(request(HOST + 'index_video')); + } else { + jsondata = JSON.parse(request(HOST + '/index_video')); + } + videoList = /xgapp/.test(HOST) ? jsondata.data : jsondata.list; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach((it,idex) => { + let vlist = /v1\\.vod/.test(HOST) ? videoList[idex].vod_list : videoList[idex].vlist ; + vlist.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + }); + setResult(d); + `, + 一级: `js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + input = input.replace('video','v1.vod').replace('tid','type').replace('pg=','page='); + jsondata = JSON.parse(request(input)); + videoList = jsondata.data.list; + } else { + input = HOST + '/'+ input.split('/')[4]; + jsondata = JSON.parse(request(input)); + videoList = jsondata.list || jsondata.data; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, + 二级: `js: + if (/v1\\.vod/.test(HOST)) { + input = HOST + '/'+ input.split('/')[3]; + } else { + input = HOST + '/'+ input.split('/')[3].replace('detail','video_detail').replace('vod_id','id'); + } + try { + let html = request(input); + html = JSON.parse(html); + let node = /xgapp/.test(HOST) ? html.data.vod_info : html.data; + VOD = { + vod_id: node.vod_id, + vod_name: node.vod_name, + vod_pic: node.vod_pic, + type_name: node.vod_class, + vod_year: node.vod_year, + vod_area: node.vod_area, + vod_remarks: node.vod_remarks, + vod_actor: node.vod_actor, + vod_director: node.vod_director, + vod_content: node.vod_content.strip() + }; + if (typeof play_url === 'undefined') { + var play_url = '' + } + var name = { + 'bfzym3u8': '暴风', + '1080zyk': '优质', + 'kuaikan': '快看', + 'lzm3u8': '量子', + 'ffm3u8': '非凡', + 'haiwaikan': '海外看', + 'gsm3u8': '光速', + 'zuidam3u8': '最大', + 'bjm3u8': '八戒', + 'snm3u8': '索尼', + 'wolong': '卧龙', + 'xlm3u8': '新浪', + 'yhm3u8': '樱花', + 'tkm3u8': '天空', + 'jsm3u8': '极速', + 'wjm3u8': '无尽', + 'sdm3u8': '闪电', + 'kcm3u8': '快车', + 'jinyingm3u8': '金鹰', + 'fsm3u8': '飞速', + 'tpm3u8': '淘片', + 'lem3u8': '鱼乐', + 'dbm3u8': '百度', + 'tomm3u8': '番茄', + 'ukm3u8': 'U酷', + 'ikm3u8': '爱坤', + 'hnzym3u8': '红牛资源', + 'hnm3u8': '红牛', + '68zy_m3u8': '68', + 'kdm3u8': '酷点', + 'bdxm3u8': '北斗星', + 'qhm3u8': '奇虎', + 'hhm3u8': '豪华', + 'kbm3u8': '快播' + }; + let episodes = /v1\\.vod/.test(HOST)?node.vod_play_list:node.vod_url_with_player; + if (episodes != '') { + let playMap = {}; + let arr = []; + episodes.forEach(ep => { + let from = []; + if (/v1\\.vod/.test(HOST)) { + from = ep.player_info.from||ep.player_info.show||ep.from||ep.show; + } else { + from = ep.code||ep.name; + } + if (!playMap.hasOwnProperty(from)) { + playMap[from] = [] + } + // let parse_api = ''; + // if (/v1\\.vod/.test(HOST)) { + // parse_api = ep.player_info.parse != null ? ep.player_info.parse : ep.player_info.parse2; + // // parse_api = /,/.test(parse_api) ? parse_api.split(',')[1] : parse_api; + // } else { + // parse_api = ep.parse_api; + // } + // log('parse_api =========> '+parse_api); + // if (parse_api != null && !/\\.m3u8|\\.mp4/.test(ep.url)) { + // parse_api = parse_api.replaceAll('..','.') ; + // ep.url = ep.url.replaceAll('$','$'+parse_api); + // } + if (from != null) playMap[from].push(ep.url) + }); + for (var key in playMap) { + if ('bfzym3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 1 + }) + } else if ('1080zyk' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 2 + }) + } else if ('kuaikan' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 3 + }) + } else if ('lzm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 4 + }) + } else if ('ffm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 5 + }) + } else if ('snm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 6 + }) + } else if ('qhm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 7 + }) + } else { + arr.push({ + flag: name[key] ? name[key] : key, + url: playMap[key], + sort: 8 + }) + } + } + arr.sort((a, b) => a.sort - b.sort); + let playFrom = []; + let playList = []; + arr.map(val => { + if (!/undefined/.test(val.flag)) { + playFrom.push(val.flag); + playList.push(val.url); + } + }) + VOD.vod_play_from = playFrom.join('$$$'); + VOD.vod_play_url = playList.join('$$$'); + } else { + VOD.vod_play_from = node.vod_play_from; + VOD.vod_play_url = node.vod_play_url; + } + } catch (e) { + log("获取二级详情页发生错误:" + e.message); + } + `, + 搜索: `js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + input = (HOST + '/'+ input.split('/')[3]).replace('/search','').replace('text=','wd=').replace('pg=','page='); + jsondata = JSON.parse(request(input)); + videoList = jsondata.data.list; + } else { + input = HOST + '/'+ input.split('/')[3] + jsondata = JSON.parse(request(input)); + videoList = jsondata.list || jsondata.data; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251[\345\256\230].js" "b/zyplayer/drpy_dzlive/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251[\345\256\230].js" new file mode 100644 index 0000000..9635d5b --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251[\345\256\230].js" @@ -0,0 +1,443 @@ +/** + * 已知问题: + * [推荐]页面:'雷电模拟器'播放部份影片会出错,'播放器'改成'ijk' & '解码方式'改成'软解',即可正常播放 + * 影视TV 超連結跳轉支持 + * 影视TV 弹幕支持 + * https://t.me/fongmi_offical/ + * https://github.com/FongMi/Release/tree/main/apk + * 皮皮虾DMBox 弹幕支持 + * 设置 > 窗口预览 > 开启 + * https://t.me/pipixiawerun + * vod_area:'bilidanmu' + * Cookie设置 + * Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md + * Cookie设置方法1: DR-PY 后台管理界面 + * CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存 + * Cookie设置方法2: 手动替换Cookie + * 底下代码 headers的 + * "Cookie":"$bili_cookie" + * 手动替换为 + * "Cookie":"将获取的Cookie黏贴在这" + * 客户端长期Cookie设置教程: + * 抓包哔哩手机端搜索access_key,取任意链接里的access_key和appkey在drpy环境变量中增加同名的环境变量即可 + * 此时哔哩.js这个解析可用于此源的解析线路用 + */ +var rule = { + title:'我的哔哩[官]', + host:'https://api.bilibili.com', + homeUrl:'/x/web-interface/ranking/v2?rid=0&type=origin', + url:'/x/web-interface/search/type?search_type=video&keyword=fyclass&page=fypage', + class_parse:`js: + let html=request('{{host}}/files/json/小学教育.json'); + let json = dealJson(html); + input=json.classes; + homeObj.filter = json.filter; + // log(input); + `, + filterable: 1, + detailUrl:'/x/web-interface/view/detail?aid=fyid', + searchUrl:'/x/web-interface/search/type?search_type=video&keyword=**&page=fypage', + searchable:2, + quickSearch:0, + headers:{ + "User-Agent":"PC_UA", + "Referer": "https://www.bilibili.com", + "Cookie": "buvid3=666" + }, + timeout:5000, + limit:8, + play_parse:true, + double:false, + lazy:`js: + let ids = input.split('_'); + let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + ids[1]; + let result = {}; + let iurl = 'https://api.bilibili.com:443/x/player/playurl?avid=' + ids[0] + '&cid=' + ids[1] + '&qn=116'; + let html = request(iurl); + let jRoot = JSON.parse(html); + let jo = jRoot.data; + let ja = jo.durl; + let maxSize = -1; + let position = -1; + ja.forEach(function(tmpJo, i) { + if (maxSize < Number(tmpJo.size)) { + maxSize = Number(tmpJo.size); + position = i + } + }); + let purl = ''; + if (ja.length > 0) { + if (position === -1) { + position = 0 + } + purl = ja[position].url + } + result.parse = 0; + result.playUrl = ''; + result.url = unescape(purl); + result.header = { + 'Referer': 'https://live.bilibili.com', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' + }; + if (/\\.flv/.test(purl)) { + result.contentType = 'video/x-flv'; + } else { + result.contentType = ''; + } + result.danmaku = dan; + input = result + `, + 推荐:`js: + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + min = Math.floor(duration / 60); + sec = duration % 60; + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + function ConvertNum(num) { + let _ws = Math.pow(10, 1); + let _b = 1e4; + if (num < _b) { + return num.toString(); + } + let _r = ''; + let _strArg = ['', '万', '亿', '万亿']; + let _i = Math.floor(Math.log(num) / Math.log(_b)); + if (_i > 3) { + _i = 3; + } + _r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i]; + return _r; + } + let html = request(input); + let vodList = JSON.parse(html).data.list; + let videos = []; + vodList.forEach(function(vod) { + let aid = vod.aid; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let remark = turnDHM(vod.duration) + ' ▶' + ConvertNum(vod.stat.view) + ' 🆙' + vod.owner.name; + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, + 一级:`js: + if (cateObj.tid.endsWith('_clicklink')) { + cateObj.tid = cateObj.tid.split('_')[0]; + input = HOST + '/x/web-interface/search/type?search_type=video&keyword=' + cateObj.tid + '&page=' + MY_PAGE; + } + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + min = Math.floor(duration / 60); + sec = duration % 60; + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + function ConvertNum(num) { + let _ws = Math.pow(10, 1); + let _b = 1e4; + if (num < _b) { + return num.toString(); + } + let _r = ''; + let _strArg = ['', '万', '亿', '万亿']; + let _i = Math.floor(Math.log(num) / Math.log(_b)); + if (_i > 3) { + _i = 3; + } + _r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i]; + return _r; + } + let data = []; + let vodList = []; + if (MY_CATE === '推荐') { + input = HOST + '/x/web-interface/index/top/rcmd?ps=14&fresh_idx=' + MY_PAGE + '&fresh_idx_1h=' + MY_PAGE; + data = JSON.parse(request(input)).data; + vodList = data.item; + } else if (MY_CATE === '历史记录') { + input = HOST + '/x/v2/history?pn=' + MY_PAGE; + data = JSON.parse(request(input)).data; + vodList = data; + } else { + data = JSON.parse(request(input)).data; + vodList = data.result; + } + let videos = []; + vodList.forEach(function(vod) { + let aid = vod.aid?vod.aid:vod.id; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let play = ''; + let danmaku = ''; + if (MY_CATE === '推荐') { + play = ConvertNum(vod.stat.view); + danmaku = vod.stat.danmaku; + } else if (MY_CATE === '历史记录') { + play = ConvertNum(vod.stat.view); + danmaku = vod.stat.danmaku; + } else { + play = ConvertNum(vod.play); + danmaku = vod.video_review; + } + let remark = turnDHM(vod.duration) + ' ▶' + play + ' 💬' + danmaku; + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, + 二级:`js: + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + let html = request(input); + let jo = JSON.parse(html).data.View; + // 历史记录 + let cookies = rule_fetch_params.headers.Cookie.split(';'); + let bili_jct = ''; + cookies.forEach(cookie => { + if (cookie.includes('bili_jct')) { + bili_jct = cookie.split('=')[1]; + } + }); + if (bili_jct !== '') { + let historyReport = 'https://api.bilibili.com/x/v2/history/report'; + let dataPost = { + aid: jo.aid, + cid: jo.cid, + csrf: bili_jct, + }; + post(historyReport, dataPost, 'form'); + } + + let stat = jo.stat; + let up_info = JSON.parse(html).data.Card; + let relation = up_info.following ? '已关注' : '未关注'; + let aid = jo.aid; + let title = stripHtmlTag(jo.title); + let pic = jo.pic; + let desc = jo.desc; + + let date = new Date(jo.pubdate * 1000); + let yy = date.getFullYear().toString(); + let mm = date.getMonth()+1; + mm = mm < 10 ? ('0' + mm) : mm; + let dd = date.getDate(); + dd = dd < 10 ? ('0' + dd) : dd; + + let up_name = jo.owner.name; + let typeName = jo.tname; + // let remark = jo.duration; + let vod = { + vod_id: aid, + vod_name: title, + vod_pic: pic, + type_name: typeName, + vod_year: yy+mm+dd, + vod_area: 'bilidanmu', + // vod_remarks: remark, + vod_tags: 'mv', + // vod_director: '🆙 ' + up_name + ' 👥 ' + up_info.follower + ' ' + relation, + vod_director: '🆙 ' + '[a=cr:' + JSON.stringify({'id':up_name + '_clicklink','name':up_name}) + '/]' + up_name + '[/a]' + ' 👥 ' + up_info.follower + ' ' + relation, + vod_actor: '▶' + stat.view + ' ' + '💬' + stat.danmaku + ' ' + '👍' + stat.like + ' ' + '💰' + stat.coin + ' ' + '⭐' + stat.favorite, + vod_content: desc + }; + let ja = jo.pages; + let treeMap = {}; + let playurls = []; + ja.forEach(function(tmpJo) { + let cid = tmpJo.cid; + let part = tmpJo.part.replaceAll('#', '﹟').replaceAll('$', '﹩'); + playurls.push( + part + '$' + aid + '_' + cid + ) + }); + treeMap['B站'] = playurls.join('#'); + let relatedData = JSON.parse(html).data.Related; + playurls = []; + relatedData.forEach(function(rd) { + let ccid = rd.cid; + let title = rd.title.replaceAll('#', '﹟').replaceAll('$', '﹩'); + let aaid = rd.aid; + playurls.push( + title + '$' + aaid + '_' + ccid + ) + }); + treeMap['相关推荐'] = playurls.join('#'); + vod.vod_play_from = Object.keys(treeMap).join("$$$"); + vod.vod_play_url = Object.values(treeMap).join("$$$"); + VOD = vod; + `, + 搜索:`js: + let html = request(input); + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + min = Math.floor(duration / 60); + sec = duration % 60; + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + let videos = []; + let vodList = JSON.parse(html).data.result; + vodList.forEach(function(vod) { + let aid = vod.aid; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let remark = turnDHM(vod.duration); + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, +} diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251\344\274\240\345\217\202.js" "b/zyplayer/drpy_dzlive/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251\344\274\240\345\217\202.js" new file mode 100644 index 0000000..79fdf5f --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\210\221\347\232\204\345\223\224\345\223\251\344\274\240\345\217\202.js" @@ -0,0 +1,445 @@ +/** + * 已知问题: + * [推荐]页面:'雷电模拟器'播放部份影片会出错,'播放器'改成'ijk' & '解码方式'改成'软解',即可正常播放 + * 影视TV 超連結跳轉支持 + * 影视TV 弹幕支持 + * https://t.me/fongmi_offical/ + * https://github.com/FongMi/Release/tree/main/apk + * 皮皮虾DMBox 弹幕支持 + * 设置 > 窗口预览 > 开启 + * https://t.me/pipixiawerun + * vod_area:'bilidanmu' + * Cookie设置 + * Cookie获取方法 https://ghproxy.net/https://raw.githubusercontent.com/UndCover/PyramidStore/main/list.md + * Cookie设置方法1: DR-PY 后台管理界面 + * CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存 + * Cookie设置方法2: 手动替换Cookie + * 底下代码 headers的 + * "Cookie":"$bili_cookie" + * 手动替换为 + * "Cookie":"将获取的Cookie黏贴在这" + * 客户端长期Cookie设置教程: + * 抓包哔哩手机端搜索access_key,取任意链接里的access_key和appkey在drpy环境变量中增加同名的环境变量即可 + * 此时哔哩.js这个解析可用于此源的解析线路用 + * 传参 ?type=url¶ms=../json/小学教育.json + */ +var rule = { + title:'我的哔哩-小学教育', + host:'https://api.bilibili.com', + homeUrl:'/x/web-interface/ranking/v2?rid=0&type=origin', + url:'/x/web-interface/search/type?search_type=video&keyword=fyclass&page=fypage', + class_parse:`js: + log('rule.params:'+rule.params); + let html=request(rule.params); + let json = dealJson(html); + input=json.classes; + homeObj.filter = json.filter; + // log(input); + `, + filterable: 1, + detailUrl:'/x/web-interface/view/detail?aid=fyid', + searchUrl:'/x/web-interface/search/type?search_type=video&keyword=**&page=fypage', + searchable:2, + quickSearch:0, + headers:{ + "User-Agent":"PC_UA", + "Referer": "https://www.bilibili.com", + "Cookie": "buvid3=666" + }, + timeout:5000, + limit:8, + play_parse:true, + double:false, + lazy:`js: + let ids = input.split('_'); + let dan = 'https://api.bilibili.com/x/v1/dm/list.so?oid=' + ids[1]; + let result = {}; + let iurl = 'https://api.bilibili.com:443/x/player/playurl?avid=' + ids[0] + '&cid=' + ids[1] + '&qn=116'; + let html = request(iurl); + let jRoot = JSON.parse(html); + let jo = jRoot.data; + let ja = jo.durl; + let maxSize = -1; + let position = -1; + ja.forEach(function(tmpJo, i) { + if (maxSize < Number(tmpJo.size)) { + maxSize = Number(tmpJo.size); + position = i + } + }); + let purl = ''; + if (ja.length > 0) { + if (position === -1) { + position = 0 + } + purl = ja[position].url + } + result.parse = 0; + result.playUrl = ''; + result.url = unescape(purl); + result.header = { + 'Referer': 'https://live.bilibili.com', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' + }; + if (/\\.flv/.test(purl)) { + result.contentType = 'video/x-flv'; + } else { + result.contentType = ''; + } + result.danmaku = dan; + input = result + `, + 推荐:`js: + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + min = Math.floor(duration / 60); + sec = duration % 60; + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + function ConvertNum(num) { + let _ws = Math.pow(10, 1); + let _b = 1e4; + if (num < _b) { + return num.toString(); + } + let _r = ''; + let _strArg = ['', '万', '亿', '万亿']; + let _i = Math.floor(Math.log(num) / Math.log(_b)); + if (_i > 3) { + _i = 3; + } + _r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i]; + return _r; + } + let html = request(input); + let vodList = JSON.parse(html).data.list; + let videos = []; + vodList.forEach(function(vod) { + let aid = vod.aid; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let remark = turnDHM(vod.duration) + ' ▶' + ConvertNum(vod.stat.view) + ' 🆙' + vod.owner.name; + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, + 一级:`js: + if (cateObj.tid.endsWith('_clicklink')) { + cateObj.tid = cateObj.tid.split('_')[0]; + input = HOST + '/x/web-interface/search/type?search_type=video&keyword=' + cateObj.tid + '&page=' + MY_PAGE; + } + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + min = Math.floor(duration / 60); + sec = duration % 60; + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + function ConvertNum(num) { + let _ws = Math.pow(10, 1); + let _b = 1e4; + if (num < _b) { + return num.toString(); + } + let _r = ''; + let _strArg = ['', '万', '亿', '万亿']; + let _i = Math.floor(Math.log(num) / Math.log(_b)); + if (_i > 3) { + _i = 3; + } + _r = Math.floor(num / Math.pow(_b, _i) * _ws) / _ws + _strArg[_i]; + return _r; + } + let data = []; + let vodList = []; + if (MY_CATE === '推荐') { + input = HOST + '/x/web-interface/index/top/rcmd?ps=14&fresh_idx=' + MY_PAGE + '&fresh_idx_1h=' + MY_PAGE; + data = JSON.parse(request(input)).data; + vodList = data.item; + } else if (MY_CATE === '历史记录') { + input = HOST + '/x/v2/history?pn=' + MY_PAGE; + data = JSON.parse(request(input)).data; + vodList = data; + } else { + data = JSON.parse(request(input)).data; + vodList = data.result; + } + let videos = []; + vodList.forEach(function(vod) { + let aid = vod.aid?vod.aid:vod.id; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let play = ''; + let danmaku = ''; + if (MY_CATE === '推荐') { + play = ConvertNum(vod.stat.view); + danmaku = vod.stat.danmaku; + } else if (MY_CATE === '历史记录') { + play = ConvertNum(vod.stat.view); + danmaku = vod.stat.danmaku; + } else { + play = ConvertNum(vod.play); + danmaku = vod.video_review; + } + let remark = turnDHM(vod.duration) + ' ▶' + play + ' 💬' + danmaku; + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, + 二级:`js: + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + let html = request(input); + let jo = JSON.parse(html).data.View; + // 历史记录 + let cookies = rule_fetch_params.headers.Cookie.split(';'); + let bili_jct = ''; + cookies.forEach(cookie => { + if (cookie.includes('bili_jct')) { + bili_jct = cookie.split('=')[1]; + } + }); + if (bili_jct !== '') { + let historyReport = 'https://api.bilibili.com/x/v2/history/report'; + let dataPost = { + aid: jo.aid, + cid: jo.cid, + csrf: bili_jct, + }; + post(historyReport, dataPost, 'form'); + } + + let stat = jo.stat; + let up_info = JSON.parse(html).data.Card; + let relation = up_info.following ? '已关注' : '未关注'; + let aid = jo.aid; + let title = stripHtmlTag(jo.title); + let pic = jo.pic; + let desc = jo.desc; + + let date = new Date(jo.pubdate * 1000); + let yy = date.getFullYear().toString(); + let mm = date.getMonth()+1; + mm = mm < 10 ? ('0' + mm) : mm; + let dd = date.getDate(); + dd = dd < 10 ? ('0' + dd) : dd; + + let up_name = jo.owner.name; + let typeName = jo.tname; + // let remark = jo.duration; + let vod = { + vod_id: aid, + vod_name: title, + vod_pic: pic, + type_name: typeName, + vod_year: yy+mm+dd, + vod_area: 'bilidanmu', + // vod_remarks: remark, + vod_tags: 'mv', + // vod_director: '🆙 ' + up_name + ' 👥 ' + up_info.follower + ' ' + relation, + vod_director: '🆙 ' + '[a=cr:' + JSON.stringify({'id':up_name + '_clicklink','name':up_name}) + '/]' + up_name + '[/a]' + ' 👥 ' + up_info.follower + ' ' + relation, + vod_actor: '▶' + stat.view + ' ' + '💬' + stat.danmaku + ' ' + '👍' + stat.like + ' ' + '💰' + stat.coin + ' ' + '⭐' + stat.favorite, + vod_content: desc + }; + let ja = jo.pages; + let treeMap = {}; + let playurls = []; + ja.forEach(function(tmpJo) { + let cid = tmpJo.cid; + let part = tmpJo.part.replaceAll('#', '﹟').replaceAll('$', '﹩'); + playurls.push( + part + '$' + aid + '_' + cid + ) + }); + treeMap['B站'] = playurls.join('#'); + let relatedData = JSON.parse(html).data.Related; + playurls = []; + relatedData.forEach(function(rd) { + let ccid = rd.cid; + let title = rd.title.replaceAll('#', '﹟').replaceAll('$', '﹩'); + let aaid = rd.aid; + playurls.push( + title + '$' + aaid + '_' + ccid + ) + }); + treeMap['相关推荐'] = playurls.join('#'); + vod.vod_play_from = Object.keys(treeMap).join("$$$"); + vod.vod_play_url = Object.values(treeMap).join("$$$"); + VOD = vod; + `, + 搜索:`js: + let html = request(input); + function stripHtmlTag(src) { + return src.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&.{1,5};/g, '').replace(/\\s{2,}/g, ' '); + } + function turnDHM(duration) { + let min = ''; + let sec = ''; + try { + min = duration.split(':')[0]; + sec = duration.split(':')[1]; + } catch (e) { + min = Math.floor(duration / 60); + sec = duration % 60; + } + if (isNaN(parseInt(duration))) { + return '无效输入'; + } + if (min == 0) { + return sec + '秒' + } else if (0 < min && min < 60) { + return min + '分' + } else if (60 <= min && min < 1440) { + if (min % 60 == 0) { + let h = min / 60; + return h + '小时' + } else { + let h = min / 60; + h = (h + '').split('.')[0]; + let m = min % 60; + return h + '小时' + m + '分'; + } + } else if (min >= 1440) { + let d = min / 60 / 24; + d = (d + '').split('.')[0]; + let h = min / 60 % 24; + h = (h + '').split('.')[0]; + let m = min % 60; + let dhm = ''; + if (d > 0) { + dhm = d + '天' + } + if (h >= 1) { + dhm = dhm + h + '小时' + } + if (m > 0) { + dhm = dhm + m + '分' + } + return dhm + } + return null + } + let videos = []; + let vodList = JSON.parse(html).data.result; + vodList.forEach(function(vod) { + let aid = vod.aid; + let title = stripHtmlTag(vod.title); + let img = vod.pic; + if (img.startsWith('//')) { + img = 'https:' + img; + } + let remark = turnDHM(vod.duration); + videos.push({ + vod_id: aid, + vod_name: title, + vod_pic: img, + vod_remarks: remark + }) + }); + VODS = videos + `, +} diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\216\214\345\277\203\344\270\226\347\225\214.js" "b/zyplayer/drpy_dzlive/drpy_js/\346\216\214\345\277\203\344\270\226\347\225\214.js" new file mode 100644 index 0000000..c6d7c55 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\216\214\345\277\203\344\270\226\347\225\214.js" @@ -0,0 +1,86 @@ +var rule = { + title: '掌心世界', + host: 'https://www.zhangxindy.com', + url: '/index.php/vod/show/id/fyclass/page/fypage.html', + searchUrl: '/index.php/vod/search/page/fypage/wd/**.html', + searchable: 2, + quickSearch: 0, + filterable: 1, + filter: '', + filter_url: '', + filter_def: {}, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + timeout: 5000, + class_parse: '.menu&&li;a&&Text;a&&href;/id/(\\d+)', + cate_exclude: '热播榜', + play_parse: true, + lazy: $js.toString(() => { + input = {parse: 1, url: input, js: ''}; + }), + double: true, + 推荐: 'ul.shoutu-vodlist;ul&&li;*;*;*;*', + 一级: '.shoutu-vodlist&&li;a:eq(-1)&&Text;img&&data-original;.text&&Text;a&&href', + // 二级访问前: $js.toString(() => { + // log(MY_URL); + // let html = request(MY_URL); + // MY_URL = pd(html, '.playbtn&&a&&href', MY_URL); + // log(MY_URL); + // }), + 二级: { + //title: 'h1&&Text;.hidden-sm&&p&&a&&Text', + title: 'h1&&Text;.shoutu-content&&a&&Text', + img: '.shoutu-content&&img&&data-original', + //desc: ';.hidden-sm&&p&&a:eq(1)&&Text;.hidden-sm&&p&&a:eq(2)&&Text', + desc: '.shoutu-content&&p.data:eq(2)&&Text;.shoutu-content&&a:eq(2)&&Text;.shoutu-content&&a:eq(3)&&Text', + content: '', + //tabs: 'ul.shoutu-playlist.col-flex&&li', + 重定向: $js.toString(() => { + log('执行重定向:' + MY_URL); + // let html = request(MY_URL); + MY_URL = pd(html, '.playbtn&&a&&href', MY_URL); + log('二级重定向到:' + MY_URL); + html = request(MY_URL); + }), + tabs: $js.toString(() => { + log('tabs:MY_URL:' + MY_URL); + TABS = []; + let tabs = pdfa(html, 'ul.shoutu-playlist.col-flex&&li'); + log(tabs); + tabs.forEach(it => { + let _tt = pdfh(it, 'body&&Text'); + TABS.push(_tt); + }); + }), + lists: $js.toString(() => { + LISTS = []; + //log(input); + let lists1 = pdfa(html, '.shoutu-playlist&&li').map(it => { + let _tt = pdfh(it, 'a&&Text'); + let _uu = pd(it, 'a&&href', MY_URL); + return _tt + '$' + _uu + }); + + LISTS.push(lists1); + let _urls = pdfa(html, '.shoutu-playlist:eq(-1)&&li').map(it => { + return pd(it, 'a&&href', MY_URL); + }); + _urls = _urls.filter(it => it != MY_URL); + _urls.forEach((_url) => { + let html = request(_url); + let lists1 = pdfa(html, '.shoutu-playlist&&li').map(it => { + let _tt = pdfh(it, 'a&&Text'); + let _uu = pd(it, 'a&&href', MY_URL); + return _tt + '$' + _uu + }); + LISTS.push(lists1); + }); + }), + //lists:'.shoutu-playlist:eq(#id)&&a', + tab_text: 'body&&Text', + list_text: 'body&&Text', + list_url: 'a&&href' + }, + 搜索: '*', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\226\227\351\261\274\347\233\264\346\222\255.js" "b/zyplayer/drpy_dzlive/drpy_js/\346\226\227\351\261\274\347\233\264\346\222\255.js" new file mode 100644 index 0000000..2b55b96 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\226\227\351\261\274\347\233\264\346\222\255.js" @@ -0,0 +1,188 @@ +var rule = { + title: '斗鱼直播', + host: 'https://m.douyu.com', + homeUrl: '/api/home/mix',//网站的首页链接,用于分类获取和推荐获取 + url: '/api/room/list?page=fypage&type=fyfilter', + filterable: 1,//是否启用分类筛选, + filter_url: '{{fl.cateId}}', + filter: 'H4sIAAAAAAAAA519aVPb2pruX+Huz923z0n2Oad7fyPMCUOCyXirq0tYwpaRLZDseOg6VThswIQ5IQwxcyAQRhMIg81Qde8/ueUlyZ/6L9x3SV5a73L2/XC6KlVBg6U1vMPzjvrPX9LaL7/9r//8pV9J//LbL0EprrTJv/zTLzEpqsAxyY3apyU4fitpCcW9MUZPT6+TXL7tKb0Ah+rAL3//J+9K+WrI+XFpr0xUL6UH+/m14qR1uElGhqvXlGDav1ZZPytfz1YvRBOmGvQvWblLsr1QvdT60j9v301Xvqyzn5j+eXI/TN7vWed35OS6ejUlD8j4VZXsmJWdKBeLbJRqLJ3gL1xat3eH2E/VWCilJmqe3txRvSzHU+jNe6cwCWt6z5liU0lr8Qh/8EKhMjTOH5xKSLFf/v7vf//3f/rlaUPIXfF/dCecidNK/ncnO2/n2VK0d7XzNRo+qizuWVdXVm6metmIplP8+rd75+K9nT2wi/fV6w3NfKXGpuz5defu2r5ZYlcDj16j51uLG/anGbIzZxe/Vu94Ud/e1V3f2ePf09Dc2ug/G/70V2vu1rmftRaunZw/dN2M1xucYho7m6tX6F/+2a6e+gfsvPu3T2G39/BUMnNI5rfZK7v4G+134zbQ2c2Gc3LO6ElP8oEG2FMb9EQsrhiBuKH2K/51TdfKxbnK5kX5eoLc5NgOy5kwouOjeTJyWy6OV1aufNLM9NZct4aGrMVda2WqektSTwY1ycRUT0b2rMKcs7lonxxX7xqMRjT/ujO27/woWF8Yo8l6XHpgDIT4WtxskJ2x6tXgIP/h5Rz8I1Ob5ausc8t27ak+0C8Zcb5Ut3PW0keBcJJpRDjAI5XlEWGegQY++OOctZInI7nKPBtf11vFSErxYFjYRrSLtUt4tWB/mqxef9nF2Z6Mz8HgHlavPH71UPjhOiOlpoSsRPWY2RXT1BjfQys3Z3/+XXh4Bx+3czFi3Q9ZC4vW1leyxeRUMCJHOROT0Q+V5W/ke55tb4qLlvLVOMnfWqtMeJhSLJTQzbDE3w8Pvi45O/ewtOz9ra8wS5Htb9bFibU0ba3kSI49Ka5KsTR/DNAF2T4H0rBn2SgjcY1vcuej+gdPutoZPfuH7PqzZ5Uva7D79sEJH8jgYF9QTqOlWiIrBaB1e5ptYv2LerQO+XJxQqCQiIkp5MuEPT7piUT2AnVAUv0bmhvqujrb2zqbqlebG34SXJQK/eEZ0SQfHNCvNTFObm/KV0w09Wu9iMpP8uXSsrDPmZSJdnFqmMxsV75MWz+ybHShPm2AM2D906ZXbNr0T39eP7LW/B0si3N58rSLDf6pFA/rfU0pVVNqKRWEJ6hERq8vH75+xil2aNQqnJOTD9WrMZOzBx3b53NPvjNh1dUTEH6bY3PvfMPfuvqVjEwIM+95EniMt9XJFYTryb4kUmKXB+QqB/Ozlkbt8WvYQ3aXmemPc01PZqas7Kz9/Q6GWGUypiL4uz4vVkpz9sY5WZ2xd9YYt7fVP2rvwizh8Q2j1qgZQiLdFWPCcIODJtapVH/8181n0FTkaMm5z5NJBhb6MmYwwlcURmAdff3Vnv/h/D5njzMBbiblGBfQ9t02LHhlaLZyzTTiYCrD5S7Z2CRrH6gG2F6pXu/VMohrFjcqy7PW2SeSW2aEq3OaqCweV7Ifa4eQlPEQQDqQ01NyOiIwV0CRzESMv2dlyC7lQJZYw2d//pWxUDP8iTba+p39+uXrN68Fwsz+qF55pEmyEtATfIqebIef2/Pf2c8lo8+gQMSfx90yZYECo+tGQwrpsU7F5Cqk8jELD4DFJCPsXfFIqhcR0DYMBDbXKRwBn9ilFb4gochgPKmhJbn95tx9ElTaq9cNz/DWVobm2YaGlVgcwTmQ6LklRlwtCVWTYTomJ7HKwZJzd2ctjAHlkEmGCUNyOsXlCbmfcoZGrNU5sr2LnmZkgnKGP6n7aYsnsspXH/mTQCsn05la2cQ0WCacSIFw52rMPpwj775bp+vW9QJIxCpalCJhHVEhU0JsIB2vGvkwQI2RsZK9nwXOY9STGFCMp4o+gOQTkCop3FIx7w/15eM3zxBrLVIi8PlWznApYRWurKzLBpts2evbujo5216vVpbO7ZV1u8RI8PHrN1wKNT8N2KUbMpsTRDycxZrw/Xcnt0byW0y9JDlxgZYsXzG1RJVjCmkW62wT/pGNd9XrAwP8hyAByncb5Wt2LZmqNUIErutoweidDH0jO2fk+rZyxH5fVWFoXE7hE1bayHS4ywKRPvD3XYmF4gmsk+13BzBhXxunkmhGhXLxM5n57pwssoenTbQdQ/v2+Dd7chpsGiATBiwQxVjjE+Ryh5o2PmIwQ4jA4QqlhPEpkGsgTa3lPSvPwGHTCz5BUMzO5pDHifS+lUOryPS7kQoOhiNmiPOttbYPxoVnR7B5hYNI2QBfL19zMNWA7YO7TZAyZGUP1rR6+XX7G25XUNV49I6SYI7N6HXrm26MkO35UwEjvXndjsj7PE+Fj6tgYT7MBHn2+hVSpoUsmSoA5zMCfY2uzeYqY3Pk5hqQGFPQjxt7ML14DyfX5+XSF19svQo04lUnhSXBInnVgBSonc87F19EPQADxO/wNgTe5Jzus0d0v3rdyu/5vmznP4jPaMXPQJAYdpRivqsJsj7NqAiNNjtbObyxF5kIftLCV6OyNUp/WSzynW5v7EZQAIDv5nxliWmUHsD8TxDb7Donqx4sZgwih1Npzh0ebVcvaUYNPXrSUscwxEiJEhMA3/U5E7qDSN5WhqYq2R1reIRbuan0IIKa9wcgFQTI3q9hqXF9X7mZdo4LbHCyYPFbm8PO+1NgEn5HKh5O83vshTvAeh4d1wKDSF/G+DOWXUDxD35CD+EHCLdSmr6/9raTAobqhCNmBMMH0LxUDLp3/fTACCBl/Ehr4RsXeJkwftn2Lpmf9Xcsjn/lrAwBjKEUlVu1Dxh/mWYwg26yJ25gW8nJNRk9E1SBZsgRPISjr9baIoAzOmqfWZMaYDN0V+XLEsBzAEXceBvQwvg5FItS1TEEC8DuiKPNIPk8IFGwbbhlbQIYEZQAotWHPsFwenK+jADuAWEK1jFbs0gmg0DxeSW/7/GjpwMZ4viPXk3l91U+3ZPC3a+V4T1n+bM1sU5yo1xRB5O/9qZifXxg9tinchHM+iwZOSJfGKW9bG3qbnrZ1tkY6Ghq4qKpp7Wprrmts749wLixtal6LFiQdQKwr1qRfK025+25NWvhRDQ2JEM1NSnGreIajwPVGjfv7N0SkyKSEe9WZcVoNNQ+rqg9FePhDKaH4ooRk7R2JaSgx5ORPdhukNSV+SyjxJ6w0qi+VU1VjyER4gpTAUSag8gzQt1guVEQKJwKw71Guua68PtwL/2968GTI3DrP+y/K1+VrJWiIJx7XoQw0ia5IjneKt9vWqubv4GYB+RuHTPTpJ77LirfDitjk2Rnh+QuKkOMQzpgN3Qk6obtryW6b7sAZA/YsjZzyvCccj6qfM1XD4S/NbQgjLRVNwydi2Jn6kNlbBrYo/JpAYbMligt9/ajNfwBosQ+urY3mN2thYNRPsL9OZhI+Wra3pjifpQO6o+rj8murYIMiH0QH0y1I6fkxg2FrnikzT0cx1V2dmCkzG7RY/FAXDLeKn9IT7707MNYy3Xe4cfXOu9cTsFcgx5+ABartTjClVkXgjRUk21Skbm9AgqhXNonN+wdjzRdR54mULSnJeptP9+xLt6B6mV7kohKXMzb0yJzdqvRl7qhIeYBI2zrY/nqltyeMjEU1ZByO7yxzhh2aUSuMnIHq7BTvpoio8yL+bL7EccDYOF41p0gsJ/WIxfPzpq9C/L6kjvtnseCYZAGChrf5hopzIN5Zp+VSI5h3552HeGw4R+kcOVN07PO2Hhe8pucizOAgcKmIYvM+rZMRpiwDiIfanEUZkgDGgCQ7o9hTtbeJhXFy3s+A3KRCaYBzIncvKsslsgtMwKe/gXbZXZx12dUBsY6uC/Ec4SQ+0VhugEpFtL7E2YYmTjI/PeNf/SYI7Ky7kM6TxdRhOFvcocqy5rSBIvN/SOeZ4uauesnZIq9vEGPIYLyBgh6GCQR39ZAfWcLcugsArAo0df5VPkIi4m7WVJgLi3EV4GG5yyqEggmuEgAw9xaYmi04UUbIrEsd012tnVxyGvfFK3Crm+htWHerqxukdnhytVm7Vb21D/6Q9+E7zh4LJrpn8fs8Un7W5ETXHign6vv8u1HB8x4THFxwYMOhP89DwRbLrIRhGUZeau2duGWSmmOXI36sDMsI0t2ewpsPo/iPR74DYAmyR952y1Q0NO3JuKFlSUnnwe+ZKs9oGKpOjFGSQAEaPYC7C8qjEpFUChw0g+6PHuEvCfZRcCb1AGXBVvkULD1uhW+jVS2+Zbio0eIWorA3iDxyeUeGfYtFD3OZY11VCoXN63ZrPWDGWKNyLJw91GwPAIqigfSLTpfA8VCvjCN1/qE/9wZ3qwsXpPpPSvHtCqNVQR1vR/LoZVC5WP2N6o9pxlw6UBW8fw6DNKeWCZjJbZKphmJxJN6DetQj0qRGWpmKINsBVevNDdUrylyEsVH7dIMGbkiU58ALTCULiNDw7M0gfMsX9a36h0daPUXa3FGJIKo0TNmAbqSbYZtOpS4pLUoErK1ilvO+HcHoHiO6c8wTBIhVqq1hHhhh4l8IxP35H4JzE1OHdzDQcHV7wW7eA2mgkC6zaqhNEV7NURK1EG58t0pXAL9OyeMQakalxXxie8OqRjyRXuPbgTDmhoKcy5yfuTJ1GdrBe6aePCnv/2NyZl0r2IMJGIoeg0yFUTzzQw5vgBozu57yt/3/Q7QDTleJTMnYO2K/AfEFNWR+VW4AbXm+k+K1hZMe5+HxTtVpRtxxwZQtnV5ClTMrndw4m160dXT1tnQQ11vVTCHzrC7WnpgloC82eRaEOJwVRKMAuQgNcSw/gx086ibc79sLZ14rgLBtOl5qXMqA8Rm5Y5JYYF7BU0tgrx2owXr9NZavOD+kGZDN+PCQpOrVcon+KZ6vantRY04gAWpLDKniZnsRzbc2Ik9t27PnjUnNK3ukS6n2WY1P0ITp4AA2MqeZeK1WdfjvZLGfQaV/B7dddfXymhW53tTLt6Xr8Y80cvkmqppYHMgsHj0ldqD+1lni9FpvRHlUTR7/cz6fi1ogS4Vee0Od63z72A6we79pK+MRBAB67tpWDUA+LA0yF+VCKlxFYFb6+YA/lHT0g9fRKNIznj2lnN7TPLMERlIGG9VsFr4+h5tg+ayht9zp0CzZDQgS6kyfEuu3rk49ltleYQnFwT609SgRMI5v+ic39Bokx8iC8sZFCSW0hkm8qU012F//ZO9y2TQX//EGaJ8/7t9uwg2aeXDx8opMw66OTTy/EgwNM9aAXIW0gXiYaXVjf3X2D2V0jQHIS0opWBlgsYpJxij90dD6Np6VeYvbpAZJpYbOVPRCM3Cor2xQFYXyfgu8UX7I+RFPCtYE+NgZ5eLn9nGK4YBZh2PBgPkpI7Eyx0yzTckGNex6ffcVyz0L/+XxU/2+DW5m/iNzCxxk6RRiRu6iqAGQAEaXPdRmGTGNeWtFEODsE6ydpZiD65mG3WdC20QxwA/vTgKRQvfLqy1rHfohTqZeJOMRJyPm6wCMDinsd7tfWB553iT+MrniWL0IroEtGLPbNCtvRghx2PkmAXgGh9xb6ePvj2RiM3kJzgBAjivsjxKHXNFpq+annMyu14rX83WcmSr3qv36IlQuF3tQ4CqMEOylz9xb1hV+gCnJDQpjsBxZWjUuT10vmRJjpFkfVDh8gKm5ly8B41WGWJgp7kHmb4/YUIfAHLe8VAAuRkiM3NcVLS0IDm+MkRmKW/YpXuQP9U7UMyW+v1OJu17ZiB3q8FwBzITcHCYIf3+CBcQ1bSleyZj0ikk8wpX5P0BjaP64r0TIfPcagVk5sq+tbpD9efRJNk9FKiio+0J3yjqPZu9pejy5oRnUzxqf/2S87CXswbrASTq+qfYrJ7HDEnVEAqsrHx0lq9BG1tX79nQ6tFzqC+HjIDiEv0kXS2Y5Qm953dyw/bvTcMrFPRYKdgTp9btCt+YxtfP3uDrgndeTnGvA/AvLJn3BLYvjxt52DeuROEfE3TeARch1+WrK+e4yEOGclLj0X6wdgD3CCl3rY8RECHrxfLtIdVj16cg0xjE1GTsa3AJ0pMTIKzsPWa7RcxwNIScymAWnd5X4/n+MoAaQjji0FrcEXZdNlCkn+Tz1LzCq2yGUZ4OyeWpcTw7CtZz+XqTSTVD6ovrA1imgSG8R8NhFNvtrFE1tcnM9idKDEng61vAfqDn4N7y1Uq5eOhDLc40AV2TjLp6M8wYG2V7PHreEuisZwkn7AiZFzQ2PXUK9PUrWFgkd8G99d2KCfZbLN70FgGHFkNPxGRFZsNgh/5YaDxYU6NqTNL8BUan2H1d0ZjOqJj+yc53/5+LftXHRP3cMfE8JidiIUWP+TzEjv3JnC04p6Nc2TQD5GpJpBFmutqkviHfSmrRZX6xXtE11awDMWtQz2oszhbTPY/UfJ7m2eEk0PqYGpU0fkuXpkYkNjf3b3alwVCkftOnCvfAH9znRVBjnm3B2bC5LcBVdmXpHsC9dTJvZRlsrNd6VbQEzw0p5IdmqgdcQpxbX2jMUiDvxgA3NDoSplLXKPl0RI/dQwxZhoETJ7gEbQY7zkwYLhmg8CtCcn8VoNxfkVnKQ8vshYBwASJ5QKlbNVFaSGkOts45WaWi+d06N1oeaVKwvyMdD79MPNFjyMPm+nD8PDVVD6PUH9HX9K++5lR6woaiPFFjIVmPmv9a8wNyv+gnxPS0djc1PWnrbGns6gi8wjYEWCrjEyx806rGo9i3A2iNWl25WWeTwTY1Hpf6FRMb9IGgIQ3EpAQjQX7sU+HuupW7p+4Nf+3o6EFyxOKIVl23AQyHAmZXkHgoykurZWsTiKnAnw16LG4AtkPpK55PSzTKdDDdX0rGy/ru1vqOjiZus5DtqfLtRz6WBj06oCnIK+U+xrMHPc+htXICCKayxAQp9QiYPTAEFcXxQdraJdf2PXa3/mSe7IyRjU0Kr7H59EiKA3Ds041Har8a41KDRke+Mr9Ko2qqQFkhQ4pjpqFP/LpsTW/B42A4fq5uAqBbwmxKDSiyGhcCPjh0Qtd2Z4fcXQLuY0wvp01TSSPy2QX9RPLnwNeMgBoVSe6m4wmhxCo3icIDWfSx41PcwKlO0IBt4vyq6wAk0j7zeEccF9OIiBARCAyohhoHRgR5HEaxbuq6PGbi7IVqSiHOeTSZc+fKni4AvPjJSR0MuhqCv3PjHKwWZ2iSjOw8oFOYBJPpGiyBSvYL32mA78YTNdiv4GQp38CCH4DZYn3KkSJ1ZACWs6aZbuwB+0E1m/r6lCB/aaDRS7Rqoaq3uE9/8+OSuwQDjS0gm6RoC9qPFZrd54pBV69OUc/K0KpzfEzpyvV9c+0NGqFV58k2zVJc+ZemVz1N7e31vmSLK+wMf8e5XcrB06u57ief7HfMamx8DYKjW+nVDU6EXiiWLvMxwIFZkmdW/YtuN7DCWcKZmLLvbyqlJXu7SG4/URABknGXJqxYW8zuaFAoO2vNalAgdWv5sz3DntwOww6EcWiUHM0CXhOspkcJTVPiJpgSCNNdbjpH7E2PFCneoHNA5wyVnLtTOphFtmtgYOt9bbE+KZqukU0ekP9VkERNmhpXOFN4eRieQ87PIqmJPb0F+aXG091SzESGoZfVVBU8NZTrsdMfmEkfL6zvZ9b7bTJ1gERTQjJkVULul/LVe+rKn7p0bs8pCeHYLYhrXdNML5rMf1JZ3AcM66K9WTqRwhzZOSuXDoHkKkPj1gQTZQEF2Dj2BHS3UYsDQWuQ93u+j4GNLqyb8W4lqMdeqoCLcYTcXr51xr9bw1QGOO+ZDf8yDCvciESFs//ROiqR1c/kmIG/57G4qr1UGlUFbdk7upg4p6hH0hRT73sEnKwIjoOZSSu3D3azL+70RK+meMmcfG+9zXQ+Z0G7clinGCFDT6L4ETkBJXZHtr/xzLs+NSYPSIYkY5Bgz5fKV0cCbbTohh7S+cCAwcqlL4JO69DhjTHQV70SEmSlE7u4ZZc+2mdMewQa6rvbm3o6m149R3lUt/tW9sJzb8O+BHq62140+VSjavG04Oi2LkbIyATIOefDMkgsV1TNVMbmBBTU2aoaityCoJsXY/BsBV89hanvzECZTN2JmFL3JEa90Axj0lPsjD/k4pYzdgbc6Qro6yvBGALN3a3IKLVhZd2LPjq3hyDGGK4BsRHrUEJSVMXpTuuV5SkAXcjCVMygQjcUZ4HvlK8+k/M8T12nQK8N0LwZR54+mjB4N1TdToTYO0AZK9hpWG+ozBhx//Q59OY92Z0QgoWuf6sTGTM0qRuEEMj8S+qkZktbD5As2K/HetS4hLS+VwZCw+fXvvDT9X69T1awheSlB3q+QLDWKQLD5NYMCBNH0ikkY568v7DlBYgF4MMw/4IEzpTzNUsW3oGdbE+eg6Rm1KLHmxVFBujcryBbBwcaH/oESSONg3RWCJKOo/gV2J5mWH3M6bulu42l8rh//tHj6TwB3vh+31AiQvNTAY2nkX/Y8//iEE6THFLczBsQ3dxeVTQ96asWDVVRVVM6VzcAW1RvaAMw0Iwd62RxBZQFmfLDwzS3IR0YUPA9tIyqSO5HKpslkHpscbqMoAnSDsVhkYZ60f2zinrBwW8lu0julyitccNNN0J6vAFPrV0y43WBOOhKpn/NuHvoUw6szqdJtwSAVRp0JeJ6XzsuNCqXpskoQ5oRHQBtGCQM1qzrZ/Y7Rm3w/JhCb0DiFOQ4Var3s87dRz+vCVSOOaAbQEugTFFyzkrRyzkDGmHU2aEEw1UC5fT5tK2hq+5pfTfLTqHH7iFf9nFriWYzkvtRSjFuOQPbJoOKqKgS1XFW1O5S5euovTDnXDH2b1Wkt0qsMYGKAcp3G3Z+kYwckhnmkuzWQwnX/gAiRKipmo4LystNHczTiOLtnnPPcG+rFAE73lA7u56AQEKeB69eSQi7VdG4qiCyYgkl/B3b38BOpds5PudXKgb600kAE4GkbiC3UWGJrA+Tm3dkZolzGwoD00u3W24s/IC8z3t2k+AFpdHMuCJFXdL0f/fnB2AAVT4wHNOTVLS3SocaS8RRqKR8vVpN75u5hIV0Lk/8hZTkf+MGe3NXd1NDe1egic0FnfB1kNoRqOuWgmDX+NK9I1A94bPLh63KxyxdmMKdDyRUDYBEm6HXppKSPLuHCq9XqtSDEt8phN+m/oihVcZUgIUiCTkUxWaJF/nzHAjV+6JpWlelRMEiQkvhAMwozNvLJevskz3N1qGpvbGpsxswOyeJtSxQr32wBkrPA6Xk+gyMtb9w7s9IrbqhZvQYkuGoilQgp4b69vau5sbnPa+FqtLbOTK7W4tc26hvJKbEUX4QKO26+pgUNBKmyjQ/nOOnuDX9jbw/cHPxP/H7AAk+oqYzEtYLY+RITHQDI0RuwemD1kUOVp3qzpFx5/0HP4UjDTvdTtkZCRGUt8PE7SN4HlihAFbNh5jTYJMoKjq5opU3pd+tJTaAFl3W+0DsdEuhmGTo/WhSl4DGvXxfntnXaICB3Uo9hAaWFeXrdwCiqfz5sQ+s79VEVn/yqq3+ddsrYZtRMtRPZmVPd31nS1N3VzOIufrGtgDn1lY6twa6oFXJ4h8jfAwaHOx9ytL5vFWYJ2OTHAG+1mHgtHSKbx0AJFUx/+/Qcl07/O/TAj3pnmD3NSrB/jq9j3qD/dvoOb3PO4N9Db4TjWY4UGHGJVKbljZV5sSsHvii3tAjYH/XPWOi3jvmBRBPE9GootU9Ba3DnBPeKe8MXyZNp2yq+8vEjtkdNF9mwFCjbCH5sT+NL8fW2iIlLR8QBWhxbh/QNTAhLhsjN7lyaZmXHaZVWh6FC0cBwliLMwI2feH5aBBPLla+HZLtKTLCbKBuHeBctxKTVNOUYkHkOZndpu7c/SzACCSd2oU0kVY4qtNjdW5kjzkNQ2E9Job6Jq+dk6KVvwZ+cwrTzh4jc7r3eh934baZeizDFrR64I8dtnzhgKun43HqH8qzKFy3MphQcTLMzTvr7L09vmsd+eXSEgXzsB4vVE3DTqKflR/YASByqRvgjGnvnqb67kDVZ4o9RvbWNArkh0G10nABgjxkatdLGHMmptzAPw29+XJJw25fMrVJih+d+xUKUN0aG4Zs61HwjraZOJqlVHPPkmPq43pUDbYqOFQL0iZMAYc/++ohVz/VlBw33+b0X+xzhqMDQcnQFMDZ8gtVhz/8nzS5GWCGUteqGLrPoOxs9aTowQM8V2uluaKBIjsvhUI3sGOCxgpru2VkIrhfhr19Vy5ul4sfaDsLoXzncWsjKuDxsjW8/FSOCrRwCgVVaTa8a3bqIGN8j7V31j/JTaMz6/OitXhBcr5PVjL6YZnof0hSgw0FotyDOXRxV4cAqVtHX8rX40JLiic9j3mM+lUjIDLJD9z4h2g7NZeA+X5Wj31PImybWVffq79V0Eaa3glfugGY6VODdY2G6t9WPeed+iPt8Wc/CkKjYM0wLMlMv0I5p17hfWXlimeeBuJgKsabqbhAY+wJhn3B7P3NxdcuRcMHQNWLPIWW0pRZL7+lpauGMDgaicf5YdQeaRrQUScFsHgt10VKPnwiy8y+a9E1DaXRPgUjrCrA6hgK8M4JIqwtRnOwY3E/dIhOcC9XCawzcvWp8j3rr6yWFBLL3ff0putAR/oysE/pTb9GPtomEPxpn7m8A759qbpGRfUfn6IH/uIqhvRWZRTEjtjVBklTe33yYUf+irrlcDQjYPzEWjl0xdUpmRgTXBDubrRjFx3gAlWWfSHjH7Lrz2OGEqTGAvOPVQ+5wpcTwbjuL331GBXtemVDG1cg7P5K93Jr2E1o/wbKyXecgOWlyAJEeSmlqZMNcQs75t6TS3vpHEioXGQk26FKZlRqCAOMV4MaEmVgc6i0+qSuQ5Jjimn693un2VkuxXYqSz/KpR1yx2ReN+C5tG506sj2Q05Yv6AZFH+TBsOsemGR+r8m158E37Yc7UNV40dfaYrz2u/AreT4wuf/sK5rrYBLDJxz5GMJa3yCF/W8VsE8ifG7HidMLo4ePw/g5jXW7Qrt0DC3ZOXOecVMY/2Lpp7Wpsa2Fyi01vK6vYexHv3TF+PnWyT3zVo4IRssVgGQJx4Q4tU9elIxaKSBiSp0gt3z8GFdWxQoIE6j2N5dDx/yMz5FqJocVTBJ8BMc0yXrHtQ1mUFpgKPf5IPqCX/kW7vOx1UfV3croO77/X12DzgKOSB7WT+z3C8gopU1mptgbkSxkw7Ep7U6DFzoueF8ogCKVIDt2inLxnG7j8/k7tKNaO/5pkkLt0g8/xTyqKITtXiYtRSqHvPUwEeSJndIsboGTY32mnXPmQOoet47/Zz7gZobHviNF+if7Hzno/q6B0/8a24BELpsfR+3vm8K4iaQiPUrMSEkUL4adutrkJN80EB9Lyr5u8p81oNv1etJMxmqFqOZ6VTqv9HWa2SYNuOgrT+Y5n7d8eYV3jQAN87UF2eIAdtkBrmC2rvaBUaDY44gyfk3sjpDUQI1aa4rH7OVLAtE94ZTg3GkXz5MUjsd+03CAyh7jOZgTBYpYs8zGSENxrkL0slPlEvzQvKHnMEdwA6WnOFbobVKKIaT4a9LPIEZGQE4hZFdTRu85KOhq1GYvxnNhE0+bE3X7Pkf9sGakHXc1FKPPEiNnc3CI6JyrI+Pe2yu8vE7/KNb5KdpPxYeQMMvuSHhGXEZDQIwNe/okE5IMdotg69cbp+G8qcnqlXluX0O+VtbX3a/akWZlKx5jfCyzkBrByLiMSBPZ3e8MsoSWZKhCF/oytU9ydNeOryXQzieQdkIh1vl69lKsUQKbLla2zse1xCk53rhCwI0iftguXn7zukmr+h90/LqGV4wp/BJXLA0XrDLEXJW8LrqMPHfjErXaYk3bfhxxI2UVBrNodqCDT9/AOxGBPHcllDirodRfTnr1cSkwGBfEA3PPjwsF+epT2WDxa3lpBGqWUJrYdEN4jE4H9ZkmdOtF6YUMvfCaYTlKkvnlaUzcuW3PEvj5BXRodOOav4fP659LyoWqU57oeC1Q+EzR2sHaBugtlcdzp7Qi8vrV4pgG3nZ5tWsqzPmMYvIsikpfYgOhmCgAq0B7yKm3/4M/2rbqmVQlaAnwZj6AZmFUo/dPGHyPe+Ffqu39KVl3BysOFdTNKonZKHU1yuUFijh6dMnjQ2B14jix2hlH/B/ib3FjKP+cnZ20j45BgEHT2GiTQuh7aJ5nNtCpCtsouJ0T7j9FHUxMr0p5ACsdlIShV3yYe3e1vBlNByNoTcdr5HRH14ZBntEP17t8TkKD+5XyB0zMiLpNCJaJqqoF2Ns2B7etX6fAZOKzSqcNEx0Oy32cJN2yoDo/CENDspo8tUiKp+W06i3oxdVJDNfnK0JnnsZTffLuKMRvUoFwuIIz2590viqvQFPizYFo3pwcowUFrzOFWyCyYeZCMpj9bKXyeh30HWM7DSUUuOtEcBgnocSSWNFuVDA3YSYeKLNhPjCTB6AvnWGshXfFo2GEZz0Yt7CVmsGSkqineoAqACcmWVBtaiBKjhAY9IQjt+3Jo26CAFb06jNNSD5cZ4zG8kMSAjoHL2jRRK3i+T2g7Xq56q0t7Zwl4Jzvk9mh538WO3+xoMm3mCy8oVKpC8HFIOsswp1UzZrNvp9nhyvOuerolDWenuxXviYo7D+bMsep9WP1AY/+ySoulbJMNJP9bhQTeI+0ZreI357MSOKngqPoUVkuCQlqqHVrHxddt5tiM1NgwjagLFXvt0Q+xt2ou5vnqgXpFQ4jTOjcSOWWmp3O7Jggm9u8PhXeF9zw5tn+I24hSVqYOn5vmBHralx8pXRZlodVDVJzYQTelrSa4hM6BUaNfoQ57pWhGepCJuWSYdT+JUgmQReSEcxK0zTloWecKQM6hYe03TrWeZUS0ZRvwhyPGnfTXtzF16ajJoRtKfWxBmI3X/7V9/27df7/o1nrdIKxMI8mWG+bNPAzDkN9C9QlRZGAIpW2W8NC7k+qQjKy6wMDdPWG7O7NI3pmt0SH+g1UT72+hlZ3hPq7cxBE5EU6rNUSxFplHQ8MW6XPsJM2DgjyDOM+mYJKzUYS2OETOXBwqIXoGcmZETOBGvbAQrPCA7itXbhDpkas4us/huEGTabhnjVWocUMXHjO79BsfB8JSjAwe1vtCvVyAHIZqHfEG32RX3cvVJvQhebjlYbf4mEGX9g4tTTMSA+r9fmQxa3TSYzyYeo+5LbAodsL+D+N0nUVyY3R2YOOnqY3Un/8kcAcyrMCzXQFPsPArfhrgI05+joa40VF47oGl7hn0qMhLvfvGx8gxJT/D6BogLJhPCS5vKVIZBZ054MZdsaTEc5evO8Yf9Mi6wBe7g9Wn1IaZoRJMDc9kcCxwxGEMfQ0qms3/6lPx1CM/Na8riIwqPEysc7ntSaTiUjsobKTF3DwGunyQRkH6rntkurIBvgOie4iJkR0uU47k0lYjTMJZhxYJhgqyUeR+3aPMNf8AuDZZXG605jZLg/BKgRtAweDPEwCAXYfj/jSNLMRGSc4UXD+157LDcVbXzOOprkifE0iQiGPqjGQunET50iAEzZuyVQNlxmBFoCGNCCYr8apiaKnxvQrfdqOjICvNYdAvMILL+SIyujQkdOwIlpvFS+VGdLNYBAgb37FYSf13BX9LeY0TQSHfbEoX0wIYxDxoxBI+FgiWyvUO3qt/8w5XSNnUAHSmsLmZGQkdH1sTlyuiYaPCYu83f7YMIWwP46uTVqc5wyF0kqHdGSOLXs7pguq9uGt3rLy/ZnPAbp9eGg0CV7X/l8Z40PCd2e+szemFkjyDxd7ktmDeUOrGVpggEuWYmEkGqleXHjJwAkffNJM1BO4qcxyvv57+IuRzm94zawtdJf0LVu/prAF+kw4gswculDcPajZmIh+qlgb2Q99OcG/a+QtIj29iK73Otww6RtKjKYyvyKZnQPmBb4j76txOBoUAqjMh2vNaEoGDFhe713/tmTM4LLJzQIkgbB2sLvNAXuVHQiDMaxjPWarbvVkr7tEkLCzE37EggzFEWE6XXyhV20Vpi7UVYl4FO16n8WbA7gBEDR+GEpEz+NjByWr0rO/Roghm7lt0YeoQtlkIT163lowsmnHdSyN5TJoO6wVFiuFMj7A6+ABsADGZ0qX/lwBzFQo2q6GS3MjGCH/qPGrsnYlSAGpDgSAsBxNJyxTtmYB9zTZjCDuwbN06wRX3AnsVWbP0cXUAciwKUAXd3ucnzVoqmUrP28HJ5Y9+6kU4aTuTx5v0FuisIahVPCmu/RojKM/AcHEfL33DAiA6YwBX11Qy6np7xSP5nC/ardCnlP8XrtmHmrEi2KnX4MEjyoxQQYEZHiaPl2mWPWZ695P4tqx8q7Dd5lLCmnUDAiT9s5Cf5dM4S/eiAW5vMW9hkzlDQxXXFjSJT7YAjhsbqoWGg93S/jctSbIXI/bF3k4B/vht6fwgH6av3D0Acyy/x4mUwMPeN+iVyugv4gU9NcuySDfWGB9bC2FoaciqQG8Zi9ehe7NOoMM29w0ETdma3TcXJ8IdhKrY8fo66iXvuinTHe3TksD6IPHbjJg2BJV8ZmmMIIxTWkMmo6hNGOwX6thCtNI4JZTNbXRXNcROW0D6W3neJOxZMmvs9t4wMmUWXk0r9joB/vgt8cvbK47yWFs+2gLTQjCDdMvLM+n1PMfs92rL8X4Q6Pbqjd8/s9D9Kk0jEF5cG4ZpnP2IxYY8C8eCXt2XPufQ0NovSwvX1r/ID2NvVzjcPmIMIL79+RnRlYHdrY8B1blEhG7kXaY+EHDU7eH8CysLU1+3Gj90metWUiVemKLG+tHopbkzIjyFno9sWhsMdvyhnRMrhr0Bi1cTcX3XL+rzT9s8js7UwY4Cjuvuk6gpjgo4c7a4Ksl2nFuZnR/r8/cVuoCuYB/UkSG9X4Jw88FA/EVVncQz94EDHjUUw2bnEXemrGxGb69Sq5XPMIHki99S/+RqQimTBqEOeG1igxb38r3/oOorSMwpjOx1UKVHElk5bGXomxTerndrOB4C5r8h1NDh/P+S/tM1KpTCjSi97rCVQv/da/LynLIXQPTd/e+mgfzvM+tnK0FyEIz1+LO8dE0hryD1xeWt8nhdxMEBgiC7uz9jKxfe40cYsst2GKV5IlMHFGNmOIjb1No6H/ad5jALXTpv1fc7SJNdzFVLiMy1kRBaBN58/foC1ced/pgRRHEI8fC1Yb2J5obwCo7B7y7PF4pBevnz393Z6Z83kEvc/9QI8YEE1h8Ti0AdzoCRzfy5SJptK4AfLODpW1rqtI4FZpMIhFZHWNZ2kuH+r6K/eivaRy+2YI1pczRaQ/hfjBLUewc4C1b8tXq/5S4DQF3PmX0bEhxHaEpF4yMUbTb2dPvHLKOhqjvT0VAxlp7Ms/X6VVyH5n8d5eBHXmDpz3X8nesNAhIqwlERzCS/orWlEUxz+Zp71zcG10bxw9wfqRdfaGyndfrektn1EzyHnvkrFQPWzGBhFOyo45u8ztj1oU4yYktRUasbCZTiLTeXjTmT711MtDf5pm6CGmCmtinMf7JQ27SnI0slkTtqLZ5aglXOnemfxRvt8sl/z+12lkJHlNoK3pSU4ppplBXYHcsIyQLDg4qKHrbgqKF4cWqBbIEaPTh3/6U63vH05h3z8NlF4NCy305UGUy+RniVK2z4+CZVK9q9q77XlnWw8Ps9NOe2tZygH+ZyeSkRRqH3Q6bq0cALIsX7G2TeFoLx9v04um2o77ixv28CE9+Z3xg/JWSWUG0/Dg8B9SzQO37vrWmmelF+bgg0wflhqAv5yJGWv843/d5Hoe/teN3yAAxep+8uf5XyhIyoB5HtTuFYbVg4O4o+W7DWr2ZsesFbaX6SDunQ1r9m6e4tdt/5tSYQM5pezJA6E4K5pBTWG29rjPL6rLKI2wJqrjanmagiq4xd0gTwYFBK2VfXL8uVycKJcu7ALjwKRsRlDXm2Xqz/F8G4zu0hEUXBfBBYhLgGmCSKNqI4w9OLjhrp+F7dxf8uop2n83aEbRSOfv7NtjGujDYaE+mAyyvhb37eGs0OzQTCOb1BnKktEVe3fK2mAKRotlcCafaw/dzMO6UWk7u0aWD92vuzEbFyyodNxMoplkL8jwjBfqtXeOGNXoqWg4gnowTG3Szt/3q/ZnBlf6+3uREyT7g26779LW0MRBjcNiwqDsEiOJiJyudU1WESi7QcCe3orRpZvNWTm/r3UmnA4HBUuEZuRSATHkLTYD6yk5jaJM5OajfXxEv6RRI2pCESHMaE3uVXbuheJvSUEfiXNOiuXiZyGvPYZTRmAzAQZanxfgn7+ZMVSL6tUarU97TfYAvVlLJzQFwm9LGY0FTTB8UGf8sSnnft5DeMzc65NRrRfzV3F/cVDCrImaadYqnXAkE0JKh5xMOqf7lcUTj6YYuYaDJmIcsJ2WmYDtE16Dm8RVv7qzUHDRHItO0ZwrI5NCISqr9Jm6mAHCurV8bFdkOY5Mu4XCH8C6lIjrlkugrYTOcDJeRZwoAxLVGblzjk8AW3PBSvNm4vgjR4UZ+s/tqesTVTojXB8twD8B0Kd6exGix41jRZ8J7R+LfLCsOycPSFAJjq9TOgHavVrhqbNJE/eR9UsYyNQpF8SpYCaJvsXweRHs8crWKM/rkaIampP3caKRQ3v7rsYuRJkoXoM9D8D9he41pk1dy2T+gsiTOnTvf9hbc9RtxDg91ou+E0Z9NW5GiNcgRugMK4fD8VQSQ9w5srL3N7C8aW790bi9OlS+9WNqmb/FwnKmNifO7TfGljUcNrCXcsiaOHMuRqq15IB4bmiekT3PrJP0YNDIDGZwW3a36uZ+lUwdwAowfJkM9SaRD5lMvfdkm9ulg5FPrxnJCKgeQKiVv/EaHgrKWYpH0xmsnykfiR8oTJloR8jOBVllKhbl9tpHCzQAjLk5GEbM7I/BK5b0DRB4f0rDnyA63wcGEtp5h8NJ3CGa1lYIGUGROPadztLaO9D23lAAWgLK4pojbpgwm3BQ2ObsZ7J9QBvjvftSLua5OzGZ6TNiqVgNn1LPrfudGJ9Vk4O4johmLNF0h5vPQgqn2T8YRpkN1uIFCCGhV4TZL2TM0O+rCd/vS0VQZlS7/lZpV98q/6POS3b3FC2oWKYi4boG18G8SyGzoDRHe4h8X7bA6Bfit4pZk2Hi57e4khw1HqIpLvjbOm5uZrUheG6WzE55jWysH/uWryNlwCHBqKYF//ANQtIOfXwIdWBwvR0+VfrejhSmLS/Iupbl/S7lvgi21At/4JhIiZ4Jty6NzPoto5IaasfhhdUri995Q/SklkJcc7lkn56JfdzxJ3RBR1fyDLslJSNqxlA3BIp5V9YB3yE7YTCKPpI3NEpDL7crvFtCLDTIt6BBTAduaEahUzdawLMRRHdvXMxWolDObWCIvvqIPSuksARg1/6aRZ+Y6Y3Uxt+Er641POvhycDe52qpo9FNQGTmQVRG+40/BiYMtiUR61MNpabVkocFan2jof8Ip01c6Em/U0tGLsjxsF3ys7n/I5kexAUoXIH+pD/xIq1//N+XlQ/r1s6NU1jhH5571NXDE/goKJ0sVvJMf0YGNYHyR27JzS7saS1GBNII0gaTRoI2M68BZg1djezbB91N7gF/Hf1CkBiWwSkzbU8F0lQH0ji9+gvnU/SRFS8mLPzu2VNUUEidAq7vhPK66+WlW+B/4VnqlUGTI1fJx2EyUhDcdpqWiSQz4QEZf6lz+cLa8F3Q4SBq9wMSkZLmxjkHhXJ4APkx3BQpIbps4n6fgfYW4UtKcIzA/Rcyc+k2f1ou3zDJ3tjagnrKMr8jShwUkmKBuJemYZA0/j07LGTfhXV9ICzWg+IPw1HjDruF3ab6AS2BKHj51pkaJfk1UmI9ZR89bm2vIV4vCOpuHP9cFA2D4pDL9Ujl6sjrbIiYS9dNpRG3Cvc6KXMQ4Db+DCRMvB6+VKE+hsqXNZpPklviX+Kj4uVBn4bcWQ5YPJuTwGF19tgwdxymUhGUzwaGsTO84gl1RgkJhZYghGjjrj4F1wizb1xSKlyjngHBoO+QBjQlEBdakaBMttqFpylt2Mfv9vDz+r7x9L4U/hyUl5xqT+dRTnkGpSTxbDHMSE0NrzEnrXyh+Xn4M5kA34SPXFF37NknciXyeEOgGWfJVD5ske+ffRqiX8mRcOIW6OhagyuN7S27dALggBLZR/a1nj4znAr11ZAZXbXCBDn+LEh6MxQFo6ZaWtQfSYb/8dIiL6/C3p2z3vsfx46inv0U4N9+sseZBRRBvYcp9Lg+tz4tO+9YEXxElXT0ZU2aoLwwBuYGvKB6h/sdJDXu9lxwx50e+G+MGnP6gKTKCbTk98NgczZ3/E8mUdpw3WC1snua8QvNa03S7Ch3LG91Naj848MBi4Z+orS4TWb8Egac7u19v5RSm/8BuDROt3bu1yrFr15BORPUtBJSUsMJWSjPd7/aTW6GAFSyB2n9YXf0f/9/GBKlkTOCAAA=', + filter_def: { + yl: {cateId: 'yqk'}, + PCgame: {cateId: 'LOL'}, + djry: {cateId: 'TVgame'}, + syxx: {cateId: 'wzry'}, + yz: {cateId: 'yz'}, + kjwh: {cateId: 'smkj'}, + yp: {cateId: 'yiqiwan'}, + voice: {cateId: 'yyzs'}, + znl: {cateId: 'znl'} + }, + class_name: '娱乐天地&网游竞技&单机热游&手游休闲&颜值&科技文化&语音互动&语音直播&正能量',// /api/cate/list + class_url: 'yl&PCgame&djry&syxx&yz&kjwh&yp&voice&znl', + detailUrl: 'http://live.yj1211.work/api/live/getRoomInfo?uid=&platform=douyu&roomId=fyid',// JustLive + searchUrl: '/api/search/liveRoom?#did=10000000000000000000000000001501&limit=20&offset=0&sk=**;post', + searchable: 2, + quickSearch: 0, + headers: { + 'User-Agent': 'MOBILE_UA' + }, + timeout: 5000, + limit: 8, + play_parse: true, + lazy: '', + 推荐: `js: + let d = []; + let jo = JSON.parse(request(input)).data; + jo.forEach((it,idex) => { + let slist = jo[idex].list ; + slist.forEach(it => { + d.push({ + url: it.rid, + title: it.roomName, + img: it.roomSrc, + desc: '👁' + it.hn + ' 🆙' + it.nickname, + }) + }); + }); + setResult(d); + `, + 一级: `js: + let d = []; + let jo = JSON.parse(request(input)).data.list; + jo.forEach(it => { + d.push({ + url: it.rid, + title: it.roomName, + img: it.roomSrc, + desc: '👁' + it.hn + ' 🆙' + it.nickname, + }) + }); + setResult(d); + `, + 二级: `js: + try { + if (typeof play_url === "undefined") { + var play_url = "" + } + var jo = JSON.parse(request(input)).data; + VOD = { + vod_id: jo.roomId, + vod_name: jo.roomName, + vod_pic: jo.roomPic, + type_name: "斗鱼." + jo.categoryName, + vod_director: '🆙 ' + jo.ownerName, + vod_content: "🏷分区:斗鱼" + "·" + jo.categoryName + " 🏷UP主:" + jo.ownerName + " 🏷人气:" + jo.online + (jo.isLive === 1 ? " 🏷状态:正在直播" : "状态:未开播") + }; + let episodes = JSON.parse(request("http://live.yj1211.work/api/live/getRealUrlMultiSource?platform=" + jo.platForm + "&roomId=" + jo.roomId)).data; //多线路 + if (Object.keys(episodes).length !== 0) { + let playFrom = []; + let playList = []; + let kplayList = []; + Object.keys(episodes).forEach(function(key) { + playFrom.append(key); + kplayList = episodes[key].map(function(it) { + let title = it.qualityName; + let playUrl = it.playUrl + return title + "$" + play_url + urlencode(playUrl) + }).join("#") + playList.append(kplayList); + }); + let vod_play_from = playFrom.join("$$$"); + let vod_play_url = playList.join("$$$"); + VOD["vod_play_from"] = vod_play_from; + VOD["vod_play_url"] = vod_play_url; + } else { + var d = []; + episodes = JSON.parse(request("http://live.yj1211.work/api/live/getRealUrl?platform=" + jo.platForm + "&roomId=" + jo.roomId)).data; //单线路 + var name = { + "OD": "原画", + "FD": "流畅", + "LD": "标清", + "SD": "高清", + "HD": "超清", + "2K": "2K", + "4K": "4K", + "FHD": "全高清", + "XLD": "极速", + "SQ": "普通音质", + "HQ": "高音质" + }; + Object.keys(episodes).forEach(function(key) { + if (!/ayyuid|to/.test(key)) { + d.push({ + title: name[key], + url: episodes[key] + }) + } + }); + d.push( + { + title: "解析1", + url: "http://epg.112114.xyz/huya/" + jo.roomId + }, + { + title: "解析2", + url: "https://www.aois.eu.org/live/huya/" + jo.roomId + }, + { + title: "解析3", + url: "https://www.goodiptv.club/huya/" + jo.roomId + }, + { + title: "解析4", + url: "http://maomao.kandiantv.cn/huya1.php?id=" + jo.roomId + }, + { + title: "解析5", + url: "http://43.138.170.29:35455/huya/" + jo.roomId + }, + { + title: "解析6", + url: "http://8.210.232.168/php/huya.php?id=" + jo.roomId + }, + ); + VOD["vod_play_from"] = "播放源"; + VOD["vod_play_url"] = d.map(function(it) { + return it.title + "$" + it.url + }).join("#"); + setResult(d); + } + } catch (e) { + log("获取二级详情页发生错误:" + e.message); + } + `, + // 搜索:'json:data.list;roomName;roomSrc;nickname;roomId', + 搜索: `js: + var d = []; + let rurls = input.split(';')[0].split('#'); + let rurl = rurls[0]; + let params = rurls.length > 1 ?rurls[1]:''; + let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); + let postData = {body:params}; + Object.assign(_fetch_params,postData); + let jo = JSON.parse(post(rurl,_fetch_params)).data.list; + jo.forEach(it => { + d.push({ + url: it.roomId, + title: it.roomName, + img: it.roomSrc, + desc: '👁' + it.hn + ' 🆙' + it.nickname, + }) + }); + setResult(d); + `, + + //是否启用辅助嗅探: 1,0 + sniffer: 1, + // 辅助嗅探规则js写法 + isVideo: `js: + log(input); + if(/\\/huya/.test(input)) { + input = true + } else if(/\\.flv?|\\.m3u8?|\\.mp4?/.test(input)){ + input = true + }else{ + input = false + } + `, +} diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\226\260\350\214\266\346\235\257\347\213\220.js" "b/zyplayer/drpy_dzlive/drpy_js/\346\226\260\350\214\266\346\235\257\347\213\220.js" new file mode 100644 index 0000000..d4b3447 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\226\260\350\214\266\346\235\257\347\213\220.js" @@ -0,0 +1,160 @@ +/** + * 原创诺临风 + * 原创时间:2024-05-07 + * 转载请不要删除此版权声明 + */ + + +var rule = { + title: "新茶杯狐", + host: "https://www.cbhfox.com/", + url: "/chbys/fyfilter.html", + searchable: 2, + quickSearch: 0, + filterable: 1, + detailUrl: "/cbhtv/fyid.html", + homeUrl: "/label/hot.html", + filter_url: "{{fl.cateId}}{{fl.area}}{{fl.by}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}", + filter: 'H4sIAAAAAAAAA+2ZW1MaSRiG/wvXbjFjNse7nM/nc7ZyQbJUQtaQLdGtYlNWeYKgUVFKIa4Yk43nFUHjugiF/hlmgH+xDd180/MOVYyb1F71pe/z+k331+3wfvjW83PAFwwHgi88p3566/nFH/ac8jzv8oVCng5P0Pfaz340RlbMoQj7+TdfV6+/4QvW5chqbWi1LrMfPH0dQk2mmV+o3kYlr9CalkpsS9SzLEJrWsyBSbM/abcIjR40uloupeFBXKMHrUwZe0V4ENeoCu1NqsI1WkvsQ7kwAmvhWtNSzSwbY+t2i9BoLaPZSgksQpN2VJkuOnZU18iy9M6xI6HRcjPL5f1PsFyuUZVooja7BlW4RlU+rrM9QhWuHeKMzMGNSnIKLFwjy9CoOfgHWLhGrSvGjUgeWse1pqU2nzA/LNktQqMHJd9VRwrwIK5RX/Y3K9N/G6UtaA3JZIwvVr/greEaWSaiRnwbLFyjW3MwyY4Xbg3XrJNKm/NTeFINjSzDB5W/YOtCowaWpirFdKut2Ujf0/ov8FeAr9vvk94A6ZwxVnD7Blhcqc1Gm8+pF/KW8xljriQAndnyrJnPtvAJYDU7Z+7tt6rHAe1yf4KJNp+Q6IkLa+gQEh3J+y10CImuUWrJTG/YHEKybtE/WENIVONrDh1CohrjOaOwbK/BJavGjLPGjO0pw3HWcSO2ZjeRSnteOqjEM5WRWfu2SbVeT5/M9wfsl+3LIpV8kd1yMWk3cUm+YF0+9pFDF6yazVRX+91esLkS8zcfUC/kFZJ0jOgQEl2W7UV0CIkuS6pkjKfQZKnSpXKYuCRdGXQISTpMh4NL0qVy7JlLUtuNzSG7g0ty28N+X7f0d723Uy6WXLa9U+v8sVm+XsbbECR6BOkRmXYi7ZSpjlSXqYZUk6h+EigTJHoC6QmZHkd6XKbHkB6T6VGkR2WKvdLlXunYK13ulY690uVe6dgrXe6Vjr3S5V5p2CtN7pWGvdLkXmnYDU3uhobd0ORuaNgNJtjeBv6eHr98MTMpMzvu8mKepkvfqOI9TeQMkDNEzgI5S+QckHNEzgM5T+QCkAtELgK5SOQSkEtELgO5TOQKkCtErgK5SuQakGtErgO5TuQGkBtEbgK5SeQWkFtEbgO5TeQOkDtE7gK5S+QekHtE7gO5T+QBkAdEHgJ5SOQRkEdEHgN5TOQJkCdEtB9OAqsr8p/As7B1/c2JhFGIO66/mdqtpXaadZ6FvT0BZm8+olwomLlpib4M9ISsj8TssBGLSjT0/E23v76Cpx2NGTD0MvCq93sNge3zsYupigd4Y2DXGIq3ivaCHGLyNDZ3jUIGLFw73JzWbvJ0Mae5mDxdzBAuZqPy3mfHDCE0awiLmLNZOAyu0Vpmoo6BUGjSmOE4AKG1zoaiijMcfsv0EY0wvz19csn9FNBiMmk/k8A00n5OaD+vtJ8TXMwryRyL6Mb8Z3sZUlVq/8+pXSVulbhV4laJWyVulbgPm7h/fxN8EQ58W9y2XmC1/pHKSj9kZK7JEW94wRnxmEYL3jyo5mJ2i9CoSiJjjsKXzUKzPjcjZh4SqdCsD9+v5b1JWC7XpHBU+wLLFRpZCuvG5kewcI3WMrft/M6fa1RlesHcwf8RcY2q5PNmLF4uJBzf1tsItXHnT5bAoY1co4pbg9WBMajFtf8tBrM4yyKrPRVySUpALBNhhK1L5NhYYYdid3BJhUYVGlVoVKFRhUYVGlVo/F5f07LQ+Drok1KjSggqIaiEoBKCSggqIaiEoBLCq0BX768BX1BFBBURVERQEUFFBI+KCCoiqIjQjAh9/wLqgnhI8TMAAA==', + filter_def: { + dianying: {cateId: "dianying"}, + dianshiju: {cateId: "dianshiju"}, + zongyi: {cateId: "zongyi"}, + dongmna: {cateId: "dongmna"}, + jilupian: {cateId: "jilupian"}, + }, + class_name: "电影&剧集&动漫&综艺&记录片", + class_url: "dianying&dianshiju&dongmna&zongyi&jilupian", + headers: { + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/" + }, + play_parse: true, + lazy: `js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [array[i], array[j]] = [array[j], array[i]]; + } + return array; + } + const shuffledArray = shuffleArray(items); + shuffledArray.forEach(it => { + d.push({ + url:pdfh(it,"div.module-card-item-title&&a&&href"), + title:pdfh(it,"div.module-card-item-title&&a&&Text"), + img:pdfh(it,"div.module-item-pic&&img&&data-original"), + desc:pdfh(it,"div.module-card-item-class&&Text") + "/" + pdfh(it,"div.module-item-note&&Text") + }) + }); + setResult(d); + `, + 一级: `js: + var d = []; + pdfh = jsp.pdfh;pdfa = jsp.pdfa;pd = jsp.pd; + var html = request(input); + let items = pdfa(html, "a.module-item"); + items.forEach(it => { + d.push({ + url:pdfh(it,"a&&href"), + title:pdfh(it,"a&&title"), + img:pdfh(it,"div.module-item-pic&&img&&data-original"), + desc:pdfh(it,"div.module-item-note&&Text") + }) + }); + setResult(d) + `, + 二级: $js.toString(() => { + VOD = {}; + let html = request(input); + VOD.vod_name = pdfh(html, "h1&&Text"); + VOD.vod_pic = pd(html, ".module-item-pic&&img&&data-original"); + VOD.vod_year = pdfh(html, ".module-info-tag-link:eq(0)&&Text"); + VOD.vod_area = pdfh(html, ".module-info-tag-link:eq(1)&&Text"); + VOD.type_name = pdfh(html, ".module-info-tag-link:eq(2)&&Text"); + VOD.vod_actor = pdfh(html, ".module-info-item-content:eq(1)&&Text"); + VOD.vod_director = pdfh(html, ".module-info-item-content:eq(0)&&Text"); + VOD.vod_remarks = "不信广告就你赢了"; + VOD.vod_content = pdfh(html, ".module-info-introduction-content&&Text"); + if (typeof play_url === "undefined") { + var play_url = "" + } + let playFrom = []; + let playUrl = []; + let tabs = pdfa(html, "div.module-tab-item"); + tabs.forEach((it, index) => { + playFrom.push('諾临風-' + pdfh(it, 'span&&Text') + "[" + pdfh(it, 'small&&Text') + "]"); + let playTag = "div.module-play-list:eq(" + index + ") a"; + let tags = pdfa(html, playTag); + let mapUrl = tags.map((tag) => { + let title = pdfh(tag, "a&&Text").trim(); + let purl = pd(tag, "a&&href"); + return title + "$" + play_url + urlencode(purl); + }); + playUrl.push(mapUrl.join("#")) + }); + VOD.vod_play_from = playFrom.join("$$$"); + VOD.vod_play_url = playUrl.join("$$$"); + }), + double: false, + searchUrl: "/index.php/vod/search/wd/**.html", + 搜索: `js: + var d = []; + pdfh = jsp.pdfh;pdfa = jsp.pdfa;pd = jsp.pd; + var html = request(input); + let list = pdfa(html, "div.module-item"); + list.forEach(it => { + d.push({ + title: pdfh(it, "div.module-card-item-title&&Text"), + desc: pdfh(it, "div.module-item-note&&Text"), + pic_url: pdfh(it, "div.module-item-pic&&img&&data-original"), + url: pdfh(it, "div.module-card-item-title&&a&&href") + }) + }); + setResult(d) + ` +}; diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\227\266\345\205\211\345\275\261\351\231\242.js" "b/zyplayer/drpy_dzlive/drpy_js/\346\227\266\345\205\211\345\275\261\351\231\242.js" new file mode 100644 index 0000000..0f69210 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\227\266\345\205\211\345\275\261\351\231\242.js" @@ -0,0 +1,7 @@ +var rule = { + 模板: 'mxone5', + title: '时光影院', + host: 'https://www.time-chicken.com', + url: '/vod/show/id/fyclass/page/fypage.html', + searchUrl: '/vod/search/page/fypage/wd/**.html', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\230\223\347\234\213\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\346\230\223\347\234\213\345\275\261\350\247\206.js" new file mode 100644 index 0000000..70b7e15 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\230\223\347\234\213\345\275\261\350\247\206.js" @@ -0,0 +1,9 @@ +var rule = { + 模板: 'mxpro', + title: '易看影视', + host: 'http://tv.ykzj6.cn', + url: '/index.php/vod/show/id/fyclass/page/fypage.html', + tab_exclude: '排序', + searchUrl: '/index.php/vod/search/page/fypage/wd/**.html', + class_parse: '.navbar-items li:gt(0):lt(9);a&&Text;a&&href;/(\\d+).html', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\230\237\344\272\221\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\346\230\237\344\272\221\345\275\261\350\247\206.js" new file mode 100644 index 0000000..c2bef14 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\230\237\344\272\221\345\275\261\350\247\206.js" @@ -0,0 +1,11 @@ +Object.assign(muban.首图2.二级, { + tabs: '.stui-pannel__head h3', +}); +var rule = { + 模板: '首图2', + title: '星云影视', + host: 'https://www.szxmdjj.com', + url: '/vodshow/fyclass--------fypage---.html', + searchUrl: '/vodsearch/**----------fypage---.html', + tab_exclude: '剧情简介|猜你喜欢|影片评论|榜单', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\230\237\347\251\272\345\275\261\351\231\242.js" "b/zyplayer/drpy_dzlive/drpy_js/\346\230\237\347\251\272\345\275\261\351\231\242.js" new file mode 100644 index 0000000..221860b --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\230\237\347\251\272\345\275\261\351\231\242.js" @@ -0,0 +1,9 @@ +var rule = { + 模板: 'mxpro', + title: '星空影院', + host: 'https://xkyy9.com', + url: '/vodshow/fyclass--------fypage---.html', + searchUrl: '/vodsearch/**----------fypage---.html', + class_parse: '.navbar-items li;a&&Text;a&&href;/(\\d+).html', + tab_exclude: '排序', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\230\237\350\276\260.js" "b/zyplayer/drpy_dzlive/drpy_js/\346\230\237\350\276\260.js" new file mode 100644 index 0000000..dd81420 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\230\237\350\276\260.js" @@ -0,0 +1,45 @@ +Object.assign(muban.首图2.二级, { + desc: '.data:eq(0)&&Text;;;.data--span:eq(2)&&Text;.data--span:eq(1)&&Text', + tabs: '.stui-pannel__head h3', +}); +var rule = { + title: '星辰', + 模板: '首图2', + host: 'http://www.xingchenwu.com', + // url:'/fyclass/indexfypage.html[/fyclass/index.html]', + url: '/fyfilter/indexfypage.html[/fyfilter/index.html]', + filterable: 1,//是否启用分类筛选, + filter_url: '{{fl.cateId}}', + tab_exclude: '本周热门|最近更新', + filter: 'H4sIAAAAAAAAA6tWSslMzKvMzEtXsoquVspOrVSyUkpOLEn1TFHSUcpLzE0F8p92tD3fuBvIL0vMKU0FK8wDCbeueNm8AiQM5MCNqdWBynateLJ3zvPOdpiC/Lz0qtL8AqA6uJrnHRufNbci1CRmFgKNQFWyfOLTnbsRSrJTM0oT81CUPGuc8KxhGpISoE1JpShKnk6b87RzOUJJRWYWmoLO5SguySpFuCS2NlYH7L/iDKA2KoQTxBy41bP3Ptm1HOgAqIr00vzkjMQ8JBXPdqx/2r8BoaIkMS+9JBHZjGdrlj/f14dQkV+am4oiP33py/krEfJFmVAbgH6rBQBoO0UaBAIAAA==', + filter_def: { + dianying: {cateId: 'dianying'}, + dianshiju: {cateId: 'dianshiju'}, + zongyi: {cateId: 'zongyi'}, + dongman: {cateId: 'dongman'} + }, + lazy: $js.toString(() => { + // 屏蔽图片onerror无限请求问题 + // let init_js = ` + // var imgTimer = setInterval(function(){ + // if(typeof($)!='undefined'){ + // let css = $('.lazyload[alt="成人深夜福利"]'); + // if(css.length > 0){ + // css.attr('onerror','this.onerror=null'); + // clearInterval(imgTimer); + // } + // } + // },200); + // `; + let init_js = `Object.defineProperties(navigator, {platform: {get: () => 'iPhone'}});`; + input = { + parse: 1, + url: input, + js: '', + parse_extra: '&init_script=' + encodeURIComponent(base64Encode(init_js)), + } + }), + // searchUrl:'/search.php?page=fypage&searchword=**&searchtype=', + searchUrl: '/search.php#searchword=**;post', + class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?)/.*html', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\232\264\351\243\216\350\265\204\346\272\220[\350\265\204].js" "b/zyplayer/drpy_dzlive/drpy_js/\346\232\264\351\243\216\350\265\204\346\272\220[\350\265\204].js" new file mode 100644 index 0000000..b719625 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\232\264\351\243\216\350\265\204\346\272\220[\350\265\204].js" @@ -0,0 +1,11 @@ +// https://bfzyapi.com/api.php/provide/vod/?ac=list + +var rule = { + 模板: '采集1', + title: '暴风资源[资]', + host: 'https://bfzyapi.com', + // homeTid: '13', + homeTid: '', + cate_exclude: '电影片|连续剧|综艺片|动漫片|电影解说|体育|演员|新闻资讯', + parse_url: '', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\236\201\345\256\242\350\265\204\346\272\220[\350\265\204].js" "b/zyplayer/drpy_dzlive/drpy_js/\346\236\201\345\256\242\350\265\204\346\272\220[\350\265\204].js" new file mode 100644 index 0000000..958fb91 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\236\201\345\256\242\350\265\204\346\272\220[\350\265\204].js" @@ -0,0 +1,11 @@ +// https://www.jkdy.cc/api.php/provide/vod/?ac=list + +var rule = { + 模板: '采集1', + title: '极客资源[资]', + host: 'https://www.jkdy.cc', + // homeTid: '13', + homeTid: '', + cate_exclude: '', + parse_url: 'https://www.jkdy.cc/jx/vid.php?url=', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\236\201\351\200\237\350\265\204\346\272\220[\350\265\204].js" "b/zyplayer/drpy_dzlive/drpy_js/\346\236\201\351\200\237\350\265\204\346\272\220[\350\265\204].js" new file mode 100644 index 0000000..34e892a --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\236\201\351\200\237\350\265\204\346\272\220[\350\265\204].js" @@ -0,0 +1,8 @@ +var rule = { + 模板: '采集1', + title: '极速资源[资]', + host: 'https://jszyapi.com', + cate_exclude: '电影片|连续剧|综艺片|动漫片|电影解说|演员|新闻资讯|电视剧|电影|综艺|动漫', + // parse_url: 'https://jisjiexi.com/play/?url=' + parse_url: '' +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\246\234\344\270\200\347\237\255\345\211\247.js" "b/zyplayer/drpy_dzlive/drpy_js/\346\246\234\344\270\200\347\237\255\345\211\247.js" new file mode 100644 index 0000000..22f7388 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\246\234\344\270\200\347\237\255\345\211\247.js" @@ -0,0 +1,25 @@ +var rule ={ + title: '榜一短剧', + host: 'https://duanjuu.com', + url: '/vodshow/fyclass--------fypage---.html', + searchUrl: '/vodsearch/-------------.html?wd=**&submit=', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + filterable: 0,//是否启用分类筛选, + class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html', + play_parse: true, + lazy: '', + limit: 6, + 推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href', + double: true, // 推荐内容是否双层定位 + 一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href', + 二级: { + "title": "h1&&Text;.tag-link&&Text", + "img": ".module-item-pic&&img&&data-src", + "desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text", + "content": ".vod_content&&Text", + "tabs": ".module-tab-item", + "lists": ".module-player-list:eq(#id)&&.scroll-content&&a" + }, + 搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href', + } \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\251\231\346\261\201\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\346\251\231\346\261\201\345\275\261\350\247\206.js" new file mode 100644 index 0000000..8789d59 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\251\231\346\261\201\345\275\261\350\247\206.js" @@ -0,0 +1,41 @@ +var rule = { + title: '橙汁影视', + host: 'https://www.orangek.cn', + url: '/show/fyclass--------fypage---.html', + searchUrl: '', + searchable: 0, + quickSearch: 0, + filterable: 1, + filter: '', + filter_url: '', + filter_def: {}, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + timeout: 5000, + class_parse: '.hl-nav&&li;a&&Text;a&&href;.*\/(.*?)\.html', + cate_exclude: '', + play_parse: true, + lazy: $js.toString(() => { + input = { + parse: 1, + url: input, + // js: "try{location.href = document.querySelectorAll('iframe')[0].src;}catch(err) {}document.querySelector('.ec-no').click()", + }; + }), + double: false, + 推荐: 'li.hl-list-item;*;*;;*', + 一级: '.hl-vod-list&&li;a&&title;.hl-lazy&&data-original;;a&&href', + 二级: { + title: '.hl-mob-name&&Text', + img: '.hl-lazy&&data-original', + desc: '.hl-text-conch&&Text', + content: '.hl-text-muted&&Text', + tabs: 'body&&.hl-notice-box&&.hl-text-site', + lists: '.hl-plays-list:eq(#id)&&li', + tab_text: 'body&&Text', + list_text: 'body&&Text', + list_url: 'a&&href' + }, + 搜索: '列表;标题;图片;描述;链接;详情', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\346\265\267\345\244\226\345\211\247\346\261\207.js" "b/zyplayer/drpy_dzlive/drpy_js/\346\265\267\345\244\226\345\211\247\346\261\207.js" new file mode 100644 index 0000000..baf5c14 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\346\265\267\345\244\226\345\211\247\346\261\207.js" @@ -0,0 +1,37 @@ +var rule = { + title: '海外剧汇', + host: 'https://www.hwjh.cc', + url: '/vodshow/fyclass--------fypage---.html', + searchUrl: '/vodsearch/**----------fypage---.html', + searchable: 2, + quickSearch: 0, + filterable: 1, + filter: '', + filter_url: '', + filter_def: {}, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + timeout: 5000, + class_parse: '.hl-menus li;a&&span&&Text;a&&href;.*/(.*?)\.html', + cate_exclude: '最新|排行', + play_parse: true, + lazy: $js.toString(() => { + input = {parse: 1, url: input, js: ''}; + }), + double: true, + 推荐: 'body&&.container;*;*;*;*;*', + 一级: '.hl-vod-list&&li;.hl-item-title&&Text;.hl-lazy&&data-original;.remarks&&Text;a&&href', + 二级: { + title: 'h2&&Text', + img: '.hl-lazy&&data-original', + desc: '.hl-dc-sub&&Text;.hl-data-menu&&span&&Text', + content: '.hl-content-text&&Text', + tabs: '.hl-plays-from&&a', + lists: '.hl-plays-list:eq(#id)&&li', + tab_text: 'body&&Text', + list_text: 'body&&Text', + list_url: 'a&&href' + }, + 搜索: '.hl-one-list&&li;.hl-item-title&&Text;*;*;*', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\203\247\347\201\253\345\275\261\350\247\206[\344\274\230].js" "b/zyplayer/drpy_dzlive/drpy_js/\347\203\247\347\201\253\345\275\261\350\247\206[\344\274\230].js" new file mode 100644 index 0000000..c14bce3 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\203\247\347\201\253\345\275\261\350\247\206[\344\274\230].js" @@ -0,0 +1,81 @@ +// 搜索验证 -> drpy_ocr自动过搜索验证失败 +var rule={ + title:'烧火影视[优]', + // host:'https://shdy3.com', + host:'http://shapp.us', + hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src=jsp.pdfh(html,"a:eq(2)&&href");print(src);HOST=src', + // url:'/list/fyclass-fypage.html', + url:'/list/fyfilter-fypage.html', + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.cateId}}', + filter: { + "1":[{"key":"cateId","name":"类型","value":[{"v":"1","n":"全部"},{"v":"6","n":"喜剧"},{"v":"7","n":"爱情"},{"v":"8","n":"恐怖"},{"v":"9","n":"动作"},{"v":"10","n":"科幻"},{"v":"11","n":"战争"},{"v":"12","n":"犯罪"},{"v":"13","n":"动画"},{"v":"14","n":"奇幻"},{"v":"15","n":"剧情"},{"v":"16","n":"冒险"},{"v":"17","n":"悬疑"},{"v":"18","n":"惊悚"},{"v":"19","n":"其它"}]}], + "2":[{"key":"cateId","name":"类型","value":[{"v":"2","n":"全部"},{"v":"20","n":"大陆"},{"v":"21","n":"TVB"},{"v":"22","n":"韩剧"},{"v":"23","n":"美剧"},{"v":"24","n":"日剧"},{"v":"25","n":"英剧"},{"v":"26","n":"台剧"},{"v":"27","n":"其它"}]}], + "4":[{"key":"cateId","name":"类型","value":[{"v":"4","n":"全部"},{"v":"38","n":"搞笑"},{"v":"39","n":"恋爱"},{"v":"40","n":"热血"},{"v":"41","n":"格斗"},{"v":"42","n":"美少女"},{"v":"43","n":"魔法"},{"v":"44","n":"机战"},{"v":"45","n":"校园"},{"v":"46","n":"亲子"},{"v":"47","n":"童话"},{"v":"48","n":"冒险"},{"v":"49","n":"真人"},{"v":"50","n":"LOLI"},{"v":"51","n":"其它"}]}], + // "28":[{"key":"cateId","name":"综艺","value":[{"v":"28","n":"脱口秀"},{"v":"29","n":"真人秀"},{"v":"30","n":"选秀"},{"v":"31","n":"美食"},{"v":"32","n":"旅游"},{"v":"33","n":"汽车"},{"v":"34","n":"访谈"},{"v":"35","n":"纪实"},{"v":"36","n":"搞笑"},{"v":"37","n":"其它"}]}] + }, + filter_def:{ + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 4:{cateId:'4'} + // 28:{cateId:'28'} + }, + searchUrl:'/search.php?page=fypage&searchword=**&searchtype=', + searchable:0, + quickSearch:0, + headers:{'User-Agent':'MOBILE_UA', }, + timeout:5000,//网站的全局请求超时,默认是3000毫秒 + class_name:'电影&电视剧&动漫', + class_url:'1&2&4', + play_parse:true, + lazy:`js: + pdfh = jsp.pdfh;pdfa = jsp.pdfa;pd = jsp.pd; + var html = pd(request(input), 'iframe&&src'); + var apiurl = ''; + if (/api\\.hhplayer/.test(html)) { + apiurl = 'https://api.hhplayer.com/api.php'; + } else if (/hkjx\\.hhplayer/.test(html)) { + apiurl = 'https://hkjx.hhplayer.com/api.php'; + } else if (/hhjx\\.hhplayer/.test(html)) { + apiurl = 'https://hhjx.hhplayer.com/api.php'; + } else if (/play\\.hhplayer/.test(html)) { + apiurl = 'https://play.hhplayer.com/hhjx/api.php'; + } + var url = ''; + var t = ''; + var key = ''; + eval(pdfh(request(html), 'body&&script,0&&Html').split('var act')[0].replaceAll('var ', '')); + var purl = JSON.parse(request(apiurl, { + headers: { + 'User-Agent': MOBILE_UA, + 'referer': html + }, + body: 'url=' + url + '&t=' + t + '&key=' + key + '&act=0&play=1', + method: 'POST' + })).url; + if (/obj\\/tos/.test(purl)) { + input = { + jx: 0, + url: purl, + parse: 0 + } + } else { + input = { + jx: 0, + url: /http/.test(purl) ? purl: 'https://api.hhplayer.com' + purl, + parse: 0 + } + } + `, + 推荐:'.v_list,0&&li;*;*;*;*', + 一级:'.v_list li;a&&title;.lazyload&&data-original;.v_note&&Text;a&&href', + 二级:{ + "title":"h1&&Text;", + "img":".m_background&&style", + "desc":";;;.v_info_box&&p&&Text", + "content":".p_txt.show_part&&Text", + "tabs":".from_list&&li", + "lists":"#play_link&&li:eq(#id)&&a" + }, + 搜索:'*', +} diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\203\255\346\222\255\344\271\213\345\256\266.js" "b/zyplayer/drpy_dzlive/drpy_js/\347\203\255\346\222\255\344\271\213\345\256\266.js" new file mode 100644 index 0000000..a56631b --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\203\255\346\222\255\344\271\213\345\256\266.js" @@ -0,0 +1,13 @@ +/** + * 搜索有验证 + */ +var rule = { + 模板: '首图2', + title: '热播之家', + host: 'https://rebozj.pro/', + cate_exclude: '专题', + url: '/show/fyclass--------fypage---.html', + //searchUrl: '/search/**----------fypage---.html', + searchUrl: '', + searchable: 0, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\210\261\347\234\213\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\347\210\261\347\234\213\345\275\261\350\247\206.js" new file mode 100644 index 0000000..6de9e0d --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\210\261\347\234\213\345\275\261\350\247\206.js" @@ -0,0 +1,9 @@ +var rule = { + 模板: 'mxpro', + title: '爱看影院', + host: 'https://92kyy.com', + class_parse: '.navbar-items li:gt(0):lt(8);a&&Text;a&&href;/(\\d+).html', + tab_exclude: '排序', + url: '/vodshow/fyclass--------fypage---.html', + searchUrl: '/vod-s/**----------fypage---.html', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\210\261\347\234\213\346\234\272\345\231\250\344\272\272[\350\231\253].js" "b/zyplayer/drpy_dzlive/drpy_js/\347\210\261\347\234\213\346\234\272\345\231\250\344\272\272[\350\231\253].js" new file mode 100644 index 0000000..3fb766f --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\210\261\347\234\213\346\234\272\345\231\250\344\272\272[\350\231\253].js" @@ -0,0 +1,67 @@ +var rule = { + title:'爱看机器人[虫]', + host:'https://v.ikanbot.com', + url:'/hot/index-fyclass-fyfilter-p-fypage.html[/hot/index-fyclass-fyfilter.html]', + //https://www.ikanbot.com/search?q=%E6%96%97%E7%BD%97%E5%A4%A7&p=2 + // searchUrl:'/search?q=**&p=fypage', + searchUrl:'/search?q=**&p=fypage[/search?q=**]', + searchable:2, + quickSearch:0, + filterable:1, + filter_url:'{{fl.tag}}', + 图片来源:'@Referer=https://v.ikanbot.com/@User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36', + filter:{ + "movie":[{"key":"tag","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":"豆瓣top250","v":"豆瓣top250"}]}] + ,"tv":[{"key":"tag","name":"标签","value":[{"n":"热门","v":"热门"},{"n":"美剧","v":"美剧"},{"n":"英剧","v":"英剧"},{"n":"韩剧","v":"韩剧"},{"n":"日剧","v":"日剧"},{"n":"国产剧","v":"国产剧"},{"n":"港剧","v":"港剧"},{"n":"日本动画","v":"日本动画"},{"n":"综艺","v":"综艺"},{"n":"纪录片","v":"纪录片"}]}] + }, + filter_def:{ + movie:{tag:'热门'}, + tv:{tag:'国产剧'}, + }, + filter获取方法:` + let value = []; + $('ul').eq(2).find('li').each(function() { + // console.log($(this).text()); + let n = $(this).text().trim(); + value.push({ + 'n': n, 'v': n + }); + }); + // 电影执行: + let data = {'movie': [{'key': 'tag', 'name': '标签', 'value': value}]}; + console.log(JSON.stringify(data)); + + //剧集执行: + let data = {'tv': [{'key': 'tag', 'name': '标签', 'value': value}]}; + console.log(JSON.stringify(data)); + `, + headers:{'User-Agent':'PC_UA',}, + class_name:'电影&剧集', + class_url:'movie&tv', + play_parse:true, + double:true, + tab_remove:['wjm3u8','ikm3u8','sdm3u8','M3U8','jinyingm3u8','fsm3u8','ukm3u8'],//移除某个线路及相关的选集 + tab_order:['bfzym3u8','1080zyk','kuaikan','lzm3u8','ffm3u8','snm3u8','qhm3u8','gsm3u8','zuidam3u8','bjm3u8','wolong','xlm3u8','yhm3u8'],//线路顺序,按里面的顺序优先,没写的依次排后面 + tab_rename:{'bfzym3u8':'暴风','1080zyk':'优质','kuaikan':'快看','lzm3u8':'量子','ffm3u8':'非凡','snm3u8':'索尼','qhm3u8':'奇虎','haiwaikan':'海外看','gsm3u8':'光速','zuidam3u8':'最大','bjm3u8':'八戒','wolong':'卧龙','xlm3u8':'新浪','yhm3u8':'樱花','tkm3u8':'天空','jsm3u8':'极速','wjm3u8':'无尽','sdm3u8':'闪电','kcm3u8':'快车','jinyingm3u8':'金鹰','fsm3u8':'飞速','tpm3u8':'淘片','lem3u8':'鱼乐','dbm3u8':'百度','tomm3u8':'番茄','ukm3u8':'U酷','ikm3u8':'爱坤','hnzym3u8':'红牛资源','hnm3u8':'红牛','68zy_m3u8':'68','kdm3u8':'酷点','bdxm3u8':'北斗星','hhm3u8':'豪华','kbm3u8':'快播'},//线路名替换如:lzm3u8替换为量子资源 + 推荐:'.v-list;div.item;*;*;*;*', //这里可以为空,这样点播不会有内容 + // 一级:'.v-list&&div.item;p&&Text;img&&src;;a&&href', //一级的内容是推荐或者点播时候的一级匹配 + 一级:'.v-list&&div.item;p&&Text;img&&data-src;;a&&href', //一级的内容是推荐或者点播时候的一级匹配 + // 二级:二级, + 二级:'js:eval(unescape(base64Decode("anM6CiAgICAgICAgcGRmaCA9IGpzcC5wZGZoOwogICAgICAgIGZ1bmN0aW9uIGdldFRva2VuKGh0bWwxKSB7CiAgICAgICAgICAgIGxldCBjdXJyZW50SWQgPSBwZGZoKGh0bWwxLCAnI2N1cnJlbnRfaWQmJnZhbHVlJyk7CiAgICAgICAgICAgIGxldCBlVG9rZW4gPSBwZGZoKGh0bWwxLCAnI2VfdG9rZW4mJnZhbHVlJyk7CiAgICAgICAgICAgIGlmICghY3VycmVudElkIHx8ICFlVG9rZW4pIHJldHVybiAnJzsKICAgICAgICAgICAgbGV0IGlkTGVuZ3RoID0gY3VycmVudElkLmxlbmd0aDsKICAgICAgICAgICAgbGV0IHN1YklkID0gY3VycmVudElkLnN1YnN0cmluZyhpZExlbmd0aCAtIDQsIGlkTGVuZ3RoKTsKICAgICAgICAgICAgbGV0IGtleXMgPSBbXTsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJJZC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgbGV0IGN1ckludCA9IHBhcnNlSW50KHN1YklkW2ldKTsKICAgICAgICAgICAgICAgIGxldCBzcGxpdFBvcyA9IGN1ckludCAlIDMgKyAxOwogICAgICAgICAgICAgICAga2V5c1tpXSA9IGVUb2tlbi5zdWJzdHJpbmcoc3BsaXRQb3MsIHNwbGl0UG9zICsgOCk7CiAgICAgICAgICAgICAgICBlVG9rZW4gPSBlVG9rZW4uc3Vic3RyaW5nKHNwbGl0UG9zICsgOCwgZVRva2VuLmxlbmd0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGtleXMuam9pbignJyk7CiAgICAgICAgfQogICAgICAgIHRyeSB7CiAgICAgICAgICAgIFZPRD17fTsKICAgICAgICAgICAgbGV0IGh0bWwxID0gcmVxdWVzdChpbnB1dCk7CiAgICAgICAgICAgIFZPRC52b2RfaWQgPSBwZGZoKGh0bWwxLCAnI2N1cnJlbnRfaWQmJnZhbHVlJyk7CiAgICAgICAgICAgIFZPRC52b2RfbmFtZSA9IHBkZmgoaHRtbDEsICdoMiYmVGV4dCcpOwogICAgICAgICAgICBWT0Qudm9kX3BpYyA9IHBkZmgoaHRtbDEsICcuaXRlbS1yb290JiZpbWcmJmRhdGEtc3JjJyk7CiAgICAgICAgICAgIFZPRC52b2RfYWN0b3IgPSBwZGZoKGh0bWwxLCAnLm1ldGE6ZXEoNCkmJlRleHQnKTsKICAgICAgICAgICAgVk9ELnZvZF9hcmVhID0gcGRmaChodG1sMSwgJy5tZXRhOmVxKDMpJiZUZXh0Jyk7CiAgICAgICAgICAgIFZPRC52b2RfeWVhciA9IHBkZmgoaHRtbDEsICcubWV0YTplcSgyKSYmVGV4dCcpOwogICAgICAgICAgICBWT0Qudm9kX3JlbWFya3MgPSAnJzsKICAgICAgICAgICAgVk9ELnZvZF9kaXJlY3RvciA9ICcnOwogICAgICAgICAgICBWT0Qudm9kX2NvbnRlbnQgPSBwZGZoKGh0bWwxLCAnI2xpbmUtdGlwcyYmVGV4dCcpOwogICAgICAgICAgICAvLyBsb2coVk9EKTsKICAgICAgICAgICAgdmFyIHZfdGtzID0gZ2V0VG9rZW4oaHRtbDEpOwogICAgICAgICAgICBsb2coJ3ZfdGtzID09PT4gJyArIHZfdGtzKTsKICAgICAgICAgICAgaW5wdXQgPSBIT1NUICsgJy9hcGkvZ2V0UmVzTj92aWRlb0lkPScgKyBpbnB1dC5zcGxpdCgnLycpLnBvcCgpICsgJyZtdHlwZT0yJnRva2VuPScrdl90a3M7CiAgICAgICAgICAgIGxldCBodG1sID0gcmVxdWVzdChpbnB1dCwgewogICAgICAgICAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzonTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM18yXzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzEzLjAuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMScsCiAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiBNWV9VUkwsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBwcmludChodG1sKTsKICAgICAgICAgICAgaHRtbCA9IEpTT04ucGFyc2UoaHRtbCk7CiAgICAgICAgICAgIGxldCBlcGlzb2RlcyA9IGh0bWwuZGF0YS5saXN0OwogICAgICAgICAgICBsZXQgcGxheU1hcCA9IHt9OwogICAgICAgICAgICBpZiAodHlwZW9mIHBsYXlfdXJsID09PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICAgICAgdmFyIHBsYXlfdXJsID0gJycKICAgICAgICAgICAgfQogICAgICAgICAgICBsZXQgbWFwID0ge30KICAgICAgICAgICAgbGV0IGFyciA9IFtdCiAgICAgICAgICAgIGxldCBuYW1lID0gewogICAgICAgICAgICAgICAgJ2JmenltM3U4JzogJ+aatOmjjicsCiAgICAgICAgICAgICAgICAnMTA4MHp5ayc6ICfkvJjotKgnLAogICAgICAgICAgICAgICAgJ2t1YWlrYW4nOiAn5b+r55yLJywKICAgICAgICAgICAgICAgICdsem0zdTgnOiAn6YeP5a2QJywKICAgICAgICAgICAgICAgICdmZm0zdTgnOiAn6Z2e5YehJywKICAgICAgICAgICAgICAgICdoYWl3YWlrYW4nOiAn5rW35aSW55yLJywKICAgICAgICAgICAgICAgICdnc20zdTgnOiAn5YWJ6YCfJywKICAgICAgICAgICAgICAgICd6dWlkYW0zdTgnOiAn5pyA5aSnJywKICAgICAgICAgICAgICAgICdiam0zdTgnOiAn5YWr5oiSJywKICAgICAgICAgICAgICAgICdzbm0zdTgnOiAn57Si5bC8JywKICAgICAgICAgICAgICAgICd3b2xvbmcnOiAn5Y2n6b6ZJywKICAgICAgICAgICAgICAgICd4bG0zdTgnOiAn5paw5rWqJywKICAgICAgICAgICAgICAgICd5aG0zdTgnOiAn5qix6IqxJywKICAgICAgICAgICAgICAgICd0a20zdTgnOiAn5aSp56m6JywKICAgICAgICAgICAgICAgICdqc20zdTgnOiAn5p6B6YCfJywKICAgICAgICAgICAgICAgICd3am0zdTgnOiAn5peg5bC9JywKICAgICAgICAgICAgICAgICdzZG0zdTgnOiAn6Zeq55S1JywKICAgICAgICAgICAgICAgICdrY20zdTgnOiAn5b+r6L2mJywKICAgICAgICAgICAgICAgICdqaW55aW5nbTN1OCc6ICfph5HpubAnLAogICAgICAgICAgICAgICAgJ2ZzbTN1OCc6ICfpo57pgJ8nLAogICAgICAgICAgICAgICAgJ3RwbTN1OCc6ICfmt5jniYcnLAogICAgICAgICAgICAgICAgJ2xlbTN1OCc6ICfpsbzkuZAnLAogICAgICAgICAgICAgICAgJ2RibTN1OCc6ICfnmb7luqYnLAogICAgICAgICAgICAgICAgJ3RvbW0zdTgnOiAn55Wq6IyEJywKICAgICAgICAgICAgICAgICd1a20zdTgnOiAnVemFtycsCiAgICAgICAgICAgICAgICAnaWttM3U4JzogJ+eIseWdpCcsCiAgICAgICAgICAgICAgICAnaG56eW0zdTgnOiAn57qi54mb6LWE5rqQJywKICAgICAgICAgICAgICAgICdobm0zdTgnOiAn57qi54mbJywKICAgICAgICAgICAgICAgICc2OHp5X20zdTgnOiAnNjgnLAogICAgICAgICAgICAgICAgJ2tkbTN1OCc6ICfphbfngrknLAogICAgICAgICAgICAgICAgJ2JkeG0zdTgnOiAn5YyX5paX5pifJywKICAgICAgICAgICAgICAgICdxaG0zdTgnOiAn5aWH6JmOJywKICAgICAgICAgICAgICAgICdoaG0zdTgnOiAn6LGq5Y2OJwogICAgICAgICAgICB9OwogICAgICAgICAgICBlcGlzb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKGVwKSB7CiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UoZXBbJ3Jlc0RhdGEnXSk7CiAgICAgICAgICAgICAgICBkYXRhLm1hcCh2YWwgPT4gewogICAgICAgICAgICAgICAgICAgIGlmKCFtYXBbdmFsLmZsYWddKXsKICAgICAgICAgICAgICAgICAgICAgICAgbWFwW3ZhbC5mbGFnXSA9IFt2YWwudXJsLnJlcGxhY2VBbGwoJyMjJywnIycpXQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1hcFt2YWwuZmxhZ10ucHVzaCh2YWwudXJsLnJlcGxhY2VBbGwoJyMjJywnIycpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gbWFwKSB7CiAgICAgICAgICAgICAgICBpZiAoJ2JmenltM3U4JyA9PSBrZXkpIHsKICAgICAgICAgICAgICAgICAgICBhcnIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWc6IG5hbWVba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBtYXBba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgc29ydDogMQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCcxMDgwenlrJyA9PSBrZXkpIHsKICAgICAgICAgICAgICAgICAgICBhcnIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWc6IG5hbWVba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBtYXBba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgc29ydDogMgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCdrdWFpa2FuJyA9PSBrZXkpIHsKICAgICAgICAgICAgICAgICAgICBhcnIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWc6IG5hbWVba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBtYXBba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgc29ydDogMwogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCdsem0zdTgnID09IGtleSkgewogICAgICAgICAgICAgICAgICAgIGFyci5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgZmxhZzogbmFtZVtrZXldLAogICAgICAgICAgICAgICAgICAgICAgICB1cmw6IG1hcFtrZXldLAogICAgICAgICAgICAgICAgICAgICAgICBzb3J0OiA0CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJ2ZmbTN1OCcgPT0ga2V5KSB7CiAgICAgICAgICAgICAgICAgICAgYXJyLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICBmbGFnOiBuYW1lW2tleV0sCiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogbWFwW2tleV0sCiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQ6IDUKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgnc25tM3U4JyA9PSBrZXkpIHsKICAgICAgICAgICAgICAgICAgICBhcnIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWc6IG5hbWVba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBtYXBba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgc29ydDogNgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCdxaG0zdTgnID09IGtleSkgewogICAgICAgICAgICAgICAgICAgIGFyci5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgZmxhZzogbmFtZVtrZXldLAogICAgICAgICAgICAgICAgICAgICAgICB1cmw6IG1hcFtrZXldLAogICAgICAgICAgICAgICAgICAgICAgICBzb3J0OiA3CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgYXJyLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICBmbGFnOiAobmFtZVtrZXldKSA/IG5hbWVba2V5XSA6IGtleSwKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBtYXBba2V5XSwKICAgICAgICAgICAgICAgICAgICAgICAgc29ydDogOAogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYXJyLnNvcnQoKGEsIGIpID0+IGEuc29ydCAtIGIuc29ydCk7CiAgICAgICAgICAgIGxldCBwbGF5RnJvbSA9IFtdOwogICAgICAgICAgICBsZXQgcGxheUxpc3QgPSBbXTsKICAgICAgICAgICAgYXJyLm1hcCh2YWwgPT4gewogICAgICAgICAgICAgICAgaWYgKCEvdW5kZWZpbmVkLy50ZXN0KHZhbC5mbGFnKSkgewogICAgICAgICAgICAgICAgICAgIHBsYXlGcm9tLnB1c2godmFsLmZsYWcpOwogICAgICAgICAgICAgICAgICAgIHBsYXlMaXN0LnB1c2godmFsLnVybCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIGxldCB2b2RfcGxheV9mcm9tID0gcGxheUZyb20uam9pbignJCQkJyk7CiAgICAgICAgICAgIGxldCB2b2RfcGxheV91cmwgPSBwbGF5TGlzdC5qb2luKCckJCQnKTsKICAgICAgICAgICAgVk9EWyd2b2RfcGxheV9mcm9tJ10gPSB2b2RfcGxheV9mcm9tOwogICAgICAgICAgICBWT0RbJ3ZvZF9wbGF5X3VybCddID0gdm9kX3BsYXlfdXJsOwogICAgICAgICAgICAvLyBsb2coVk9EKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGxvZygn6I635Y+W5LqM57qn6K+m5oOF6aG15Y+R55Sf6ZSZ6K+vOicgKyBlLm1lc3NhZ2UpCiAgICAgICAgfQ==")))', + // 搜索:'#search-result&&.media;h5&&a&&Text;a&&img&&data-src;.label&&Text;a&&href',//第三个是描述,一般显示更新或者完结 + 搜索:'.col-md-8&&.media;h5&&a&&Text;a&&img&&data-src;.label&&Text;a&&href',//第三个是描述,一般显示更新或者完结 + lazy:` + if(/\\.m3u8$/.test(input)){ + input = { + parse:0, + url:getProxyUrl()+'&url='+input, + jx:0 + } + } + `, + proxy_rule: `js: + let url = input.url; + let m3u8 = fixAdM3u8Ai(url); + input = [200,'application/vnd.apple.mpegurl',m3u8] + ` +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\210\261\350\275\246MV.js" "b/zyplayer/drpy_dzlive/drpy_js/\347\210\261\350\275\246MV.js" new file mode 100644 index 0000000..456995b --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\210\261\350\275\246MV.js" @@ -0,0 +1,23 @@ +var rule = { + title:'爱车MV', + host:'https://www.ichemv.com', + homeUrl:'/mv/', + url:'/mv/fyclass_fypage.html', + searchUrl:'/search.php?key=**&pages=fypage', + searchable:2, + quickSearch:0, + class_parse:'.lei_fl&&li;a&&Text;a&&href;.*/(\\d+)_1.html', + headers:{ + 'User-Agent':'MOBILE_UA' + }, + timeout:5000, + play_parse:true, + lazy:'', + limit:6, + double:false, + 图片来源:'@Referer=https://www.ichemv.com/', + 推荐:'*', + 一级: '.mv_list&&li;a&&title;img&&data-src;;a&&href', + 二级:'*', + 搜索:'.sp_list&&li;a&&title;img&&data-src;.singer&&Text;a&&href;.hits&&Text', +} diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\216\251\345\201\266\345\223\245\345\223\245[\347\233\230].js" "b/zyplayer/drpy_dzlive/drpy_js/\347\216\251\345\201\266\345\223\245\345\223\245[\347\233\230].js" new file mode 100644 index 0000000..f433f49 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\216\251\345\201\266\345\223\245\345\223\245[\347\233\230].js" @@ -0,0 +1,34 @@ +Object.assign(muban.mxone5.二级,{ + //tabs: '.module-tab-item', + lists: '.module-row-one:eq(#id)&&a.module-row-text', + list_text:'h4&&Text', + list_url:'a&&data-clipboard-text', +}); +var rule = { + title: '玩偶哥哥[盘]', + 模板: 'mxone5', + host: 'https://www.wogg.net', + //url: '/index.php/vod/show/fyclass--------fypage---.html', + url: '/index.php/vodshow/fyclass-fyfilter.html', + filter_url: '{{fl.area}}-{{fl.by or "time"}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}', + searchUrl: '/index.php/vod/search/page/fypage/wd/**.html', + filter: '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', + class_parse: '.grid-box&&ul&&li;a&&Text;a&&href;.*/(.*?).html', + cate_exclude: '全部影片', + 一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href', + lazy: ` + if (/(pan.quark.cn|www.aliyundrive.com|www.alipan.com)/.test(input)){ +let type="ali"; +if (input.includes("pan.quark.cn")){ +type="quark"; +} else if (input.includes("www.aliyundrive.com") || input.includes("www.alipan.com")){ +type="ali"; +} +let confirm=""; +//let confirm="&confirm=0"; +input = getProxyUrl().replace('js',type)+'&type=push'+confirm+'&url='+encodeURIComponent(input); +//input={parse:0,url:input} +} + + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\231\275\345\253\226\350\200\205\350\201\224\347\233\237.js" "b/zyplayer/drpy_dzlive/drpy_js/\347\231\275\345\253\226\350\200\205\350\201\224\347\233\237.js" new file mode 100644 index 0000000..30837c4 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\231\275\345\253\226\350\200\205\350\201\224\347\233\237.js" @@ -0,0 +1,10 @@ +var rule = { + title: '白嫖者联盟', + 模板: '首图', + host: 'https://www.qyzf88.com', + url: '/qyvodshow/fyclass--------fypage---.html', + searchUrl: '/qyvodsearch/**----------fypage---.html', + searchable: 2, + filterable: 0, + class_parse: '.myui-header__menu li:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\231\276\345\277\231\346\227\240\346\236\234[\345\256\230].js" "b/zyplayer/drpy_dzlive/drpy_js/\347\231\276\345\277\231\346\227\240\346\236\234[\345\256\230].js" new file mode 100644 index 0000000..3060e2e --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\231\276\345\277\231\346\227\240\346\236\234[\345\256\230].js" @@ -0,0 +1,168 @@ +var rule = { + title: '百忙无果[官]', + host: 'https://pianku.api.%6d%67%74%76.com', + homeUrl: '', + searchUrl: 'https://mobileso.bz.%6d%67%74%76.com/pc/search/v1?q=**&pn=fypage&pc=10', + detailUrl: 'https://pcweb.api.mgtv.com/episode/list?page=1&size=50&video_id=fyid', + searchable: 2, + quickSearch: 0, + filterable: 1, + multi: 1, + // 分类链接fypage参数支持1个()表达式 + // https://www.mgtv.com/lib/3?lastp=list_index&kind=a1&year=all&chargeInfo=a1&sort=c2 + url: '/rider/list/pcweb/v3?platform=pcweb&channelId=fyclass&pn=fypage&pc=80&hudong=1&_support=10000000&kind=a1&area=a1', + filter_url: 'year={{fl.year or "all"}}&sort={{fl.sort or "all"}}&chargeInfo={{fl.chargeInfo or "all"}}', + headers: { + 'User-Agent': 'PC_UA' + }, + timeout: 5000, + class_name: '电视剧&电影&综艺&动漫&纪录片&教育&少儿', + class_url: '2&3&1&50&51&115&10', + filter: 'H4sIAAAAAAAAA+2XvUrDUBSA3+XOHc65adraN+jm5CIdYok/GFupWiilIBalIFYoIh1EBxEKIih0MOZ1msS+hbc1yTni4mKms6XfIbnnC/mG9hSq6mZP7btdVVWNXae949aa2y1VUE3nwDVsHkw+Z378FoT3l4Z2HO/EXd3SNMPwfLoYTJfY/HA8T/UL6eDK3JUMtjDjnb3DFOoMbtTW45tpOHxPR1Y2Sk4/86PxSzotqn59Of/e+ajVPqZto9E4/Lj+tWd0dxrdviYPaNA6hseD9MEN2ih+eJr7o8XzJBxepNOfx3Zdp03Hhv5sHjz+/fVo0MUEry4Zt4hbnGvimnMkjpwDcWAc1zJuLhmvEK9wXiZe5rxEvMS5TdzmnHyR+yL5IvdF8kXui+SL3BfJF7kvkC9wXyBf4L5AvsB9gXyB+wL5AvcF8oXVl1MvKC2pSWqSWh6pWZKapCap5ZGaDdKatCat5dKa/FuT1qS1XFpD80YkNolNYvv32PpfCLkneIcUAAA=', + limit: 20, + play_parse: true, + // 手动调用解析请求json的url,此lazy不方便 + // lazy:'js:print(input);fetch_params.headers["user-agent"]=MOBILE_UA;let html=request(input);let rurl=html.match(/window\\.open\\(\'(.*?)\',/)[1];rurl=urlDeal(rurl);input={parse:1,url:rurl};', + // 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + 一级: 'json:data.hitDocs;title;img;updateInfo||rightCorner.text;playPartId', + // 一级:'json:data.hitDocs;title;img;updateInfo;playPartId', + 二级: $js.toString(() => { + fetch_params.headers.Referer = "https://www.mgtv.com"; + fetch_params.headers["User-Agent"] = UA; + pdfh = jsp.pdfh; + pdfa = jsp.pdfa; + pd = jsp.pd; + VOD = {}; + let d = []; + let html = request(input); + let json = JSON.parse(html); + let host = "https://www.mgtv.com"; + let ourl = json.data.list.length > 0 ? json.data.list[0].url : json.data.series[0].url; + if (!/^http/.test(ourl)) { + ourl = host + ourl + } + fetch_params.headers["User-Agent"] = MOBILE_UA; + html = request(ourl); + if (html.includes("window.location =")) { + print("开始获取ourl"); + ourl = pdfh(html, "meta[http-equiv=refresh]&&content").split("url=")[1]; + print("获取到ourl:" + ourl); + html = request(ourl) + } + try { + let details = pdfh(html, ".m-details&&Html").replace(/h1>/, "h6>").replace(/div/g, "br"); + print(details); + let actor = "", + director = "", + time = ""; + if (/播出时间/.test(details)) { + actor = pdfh(html, "p:eq(5)&&Text").substr(0, 25); + director = pdfh(html, "p:eq(4)&&Text"); + time = pdfh(html, "p:eq(3)&&Text") + } else { + actor = pdfh(html, "p:eq(4)&&Text").substr(0, 25); + director = pdfh(html, "p:eq(3)&&Text"); + time = "已完结" + } + let _img = pd(html, ".video-img&&img&&src"); + let JJ = pdfh(html, ".desc&&Text").split("简介:")[1]; + let _desc = time; + VOD.vod_name = pdfh(html, ".vt-txt&&Text"); + VOD.type_name = pdfh(html, "p:eq(0)&&Text").substr(0, 6); + VOD.vod_area = pdfh(html, "p:eq(1)&&Text"); + VOD.vod_actor = actor; + VOD.vod_director = director; + VOD.vod_remarks = _desc; + VOD.vod_pic = _img; + VOD.vod_content = JJ; + if (!VOD.vod_name) { + VOD.vod_name = VOD.type_name; + } + } catch (e) { + log("获取影片信息发生错误:" + e.message) + } + + function getRjpg(imgUrl, xs) { + xs = xs || 3; + let picSize = /jpg_/.test(imgUrl) ? imgUrl.split("jpg_")[1].split(".")[0] : false; + let rjpg = false; + if (picSize) { + let a = parseInt(picSize.split("x")[0]) * xs; + let b = parseInt(picSize.split("x")[1]) * xs; + rjpg = a + "x" + b + ".jpg" + } + let img = /jpg_/.test(imgUrl) && rjpg ? imgUrl.replace(imgUrl.split("jpg_")[1], rjpg) : imgUrl; + return img + } + + if (json.data.total === 1 && json.data.list.length === 1) { + let data = json.data.list[0]; + let url = "https://www.mgtv.com" + data.url; + d.push({ + title: data.t4, + desc: data.t2, + pic_url: getRjpg(data.img), + url: url + }) + } else if (json.data.list.length > 1) { + for (let i = 1; i <= json.data.total_page; i++) { + if (i > 1) { + json = JSON.parse(fetch(input.replace("page=1", "page=" + i), {})) + } + json.data.list.forEach(function (data) { + let url = "https://www.mgtv.com" + data.url; + if (data.isIntact == "1") { + d.push({ + title: data.t4, + desc: data.t2, + pic_url: getRjpg(data.img), + url: url + }) + } + }) + } + } else { + print(input + "暂无片源") + } + VOD.vod_play_from = "mgtv"; + VOD.vod_play_url = d.map(function (it) { + return it.title + "$" + it.url + }).join("#"); + setResult(d); + }), + + 搜索: $js.toString(() => { + fetch_params.headers.Referer = "https://www.mgtv.com"; + fetch_params.headers["User-Agent"] = UA; + let d = []; + let html = request(input); + let json = JSON.parse(html); + json.data.contents.forEach(function (data) { + if (data.data.sourceList || data.data.yearList) { + let list = data.data.sourceList ? data.data.sourceList : data.data.yearList[0].sourceList; + let desc = ""; + list.forEach(function (it) { + desc += it.name + "\t" + }); + let fyclass = ''; + if (list[0].source === "imgo") { + let img = data.data.pic ? data.data.pic : data.data.yearList[0].pic; + try { + fyclass = data.data.desc.find(it => it.label === '类型').url.match(/lib\/(\d+)/)[1] + '$'; + } catch (e) { + fyclass = ''; + } + log(fyclass); + d.push({ + title: data.data.title ? data.data.title : data.data.yearList[0].title, + img: img, + content: data.data.story ? data.data.story : data.data.yearList[0].story, + desc: data.data.playTime, + url: fyclass + list[0].vid + }) + } + } + }); + setResult(d); + }), +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\232\256\347\232\256\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\347\232\256\347\232\256\345\275\261\350\247\206.js" new file mode 100644 index 0000000..edaff02 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\232\256\347\232\256\345\275\261\350\247\206.js" @@ -0,0 +1,9 @@ +var rule = { + 模板: 'mxpro', + title: '皮皮影视', + host: 'https://www.pptv06.com', + class_parse: '.navbar-items li:gt(0):lt(8);a&&Text;a&&href;/(\\d+).html', + tab_exclude: '排序', + url: '/vodshow/fyclass--------fypage---.html', + searchUrl: '/vodsearch/**----------fypage---.html', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\234\21357.js" "b/zyplayer/drpy_dzlive/drpy_js/\347\234\21357.js" new file mode 100644 index 0000000..e4f5917 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\234\21357.js" @@ -0,0 +1,26 @@ +Object.assign(muban.短视2.二级, { + img: '.detail-pic&&img&&data-src', + tab_text: 'a--span&&Text', +}); +var rule = { + 模板: '短视2', + title: '看57', + host: 'https://www.kan57.net', + class_name: '电影&电视剧&综艺&动漫&短视频', + class_url: '1&2&3&4&56', + detailUrl: '/voddetail/fyid.html', + 一级: $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; + fetch_params.body = body; + let html = post(url, fetch_params); + let data = JSON.parse(html); + VODS = data.list; + VODS.forEach(it => { + it.vod_pic = urljoin(input, it.vod_pic).replace('mac:', 'https:') + }) + }), +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\234\213\347\234\213\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\347\234\213\347\234\213\345\275\261\350\247\206.js" new file mode 100644 index 0000000..e3244e1 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\234\213\347\234\213\345\275\261\350\247\206.js" @@ -0,0 +1,28 @@ +var rule = { + title: '看看影视', + host: 'https://www.kkys.pro', + url: '/vodshow/fyclass--------fypage---/', + searchUrl: '/vodsearch/**----------fypage---/', + class_parse: '.top_nav li;a&&Text;a&&href;.*/(.*?)/', + searchable: 2, + quickSearch: 0, + filterable: 0, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + play_parse: true, + lazy: '', + limit: 6, + 推荐: '.cbox_list;*;*;*;*;*', + double: true, + 一级: 'ul.vodlist li;a&&title;a&&data-original;.pic_text&&Text;a&&href', + 二级: { + title: 'h2&&Text;.detail_list&&ul:eq(1)&&li&&a:eq(2)&&Text', + img: '.vodlist_thumb&&data-original', + desc: '.content_detail&&li:eq(1)&&Text;.detail_list&&ul:eq(1)&&li&&a&&Text;.detail_list&&ul:eq(1)&&li&&a:eq(1)&&Text;.detail_list&&ul:eq(1)&&li:eq(2)&&Text;.detail_list&&ul:eq(1)&&li:eq(3)&&Text', + content: '.content_desc&&span&&Text', + tabs: '.play_source_tab&&a', + lists: '.content_playlist:eq(#id) li', + }, + 搜索: '*', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\243\201\345\212\233\347\206\212[\347\243\201].js" "b/zyplayer/drpy_dzlive/drpy_js/\347\243\201\345\212\233\347\206\212[\347\243\201].js" new file mode 100644 index 0000000..ba22280 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\243\201\345\212\233\347\206\212[\347\243\201].js" @@ -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', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\245\236\351\251\254\347\224\265\345\275\261[\346\220\234].js" "b/zyplayer/drpy_dzlive/drpy_js/\347\245\236\351\251\254\347\224\265\345\275\261[\346\220\234].js" new file mode 100644 index 0000000..b86dd11 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\245\236\351\251\254\347\224\265\345\275\261[\346\220\234].js" @@ -0,0 +1,11 @@ +var rule = { + 模板: 'mxone5', + title: '神马电影[搜]', + host: 'https://www.375km.com', + url: '/vodshow/fyclass--------fypage---.html', + class_parse: 'ul.grid-items&&li;a&&Text;a&&href;(\\d+).html', + detailUrl: '/voddetail/fyid.html', + // searchUrl: '/vodsearch/-------------.html?wd=**', + searchUrl: '/index.php/ajax/suggest?mid=1&wd=**', + 搜索: 'json:list;name;pic;en;id', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\264\240\347\231\275\347\231\275[\344\274\230].js" "b/zyplayer/drpy_dzlive/drpy_js/\347\264\240\347\231\275\347\231\275[\344\274\230].js" new file mode 100644 index 0000000..c7d6446 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\264\240\347\231\275\347\231\275[\344\274\230].js" @@ -0,0 +1,75 @@ +// 地址发布页 https://subaibai.vip/ +// 搜索数字验证 +var rule = { + title: '素白白[优]', + // host:'https://www.subaibaiys.com', + host: 'https://subaibai.vip', + hostJs: $js.toString(() => { + 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; + }), + url: '/fyclassfyfilter', + filterable: 1,//是否启用分类筛选, + filter_url: '{{fl.area}}{{fl.year}}{{fl.class}}{{fl.cateId}}/page/fypage', + filter: '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', + // searchUrl:'/search?q=**', + searchUrl: '/page/fypage?s=**', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + headers: { + 'User-Agent': 'UC_UA', + }, + // class_parse:'.navlist&&li;a&&Text;a&&href;.*/(\\w+)', + class_name: '影视筛选&电影&电视剧&热门电影&高分电影&动漫电影&香港经典电影&国产剧&欧美剧&韩剧&动漫剧&漫威宇宙电影系列&速度与激情电影系列&007系列(25部正传+2部外传)',//静态分类名称拼接 + class_url: 'movie_bt&new-movie&tv-drama&hot-month&high-movie&cartoon-movie&hongkong-movie&domestic-drama&american-drama&korean-drama&anime-drama&marvel-movies&fastfurious&zero-zero-seven',//静态分类标识拼接 + play_parse: true, + lazy: $js.toString(() => { + 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 + } + }), + lazy: '', + 推荐: 'body&&.mi_btcon;ul&&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", + "lists": ".paly_list_btn:eq(#id) a" + }, + 搜索: '.search_list&&li;*;*;*;*', + 图片来源: '@Referer=https://www.subaibaiys.com@User-Agent=Mozilla/5.0 (Linux; Android 11; PEHT00 Build/RKQ1.201217.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\264\242\345\260\274\350\265\204\346\272\220[\350\265\204].js" "b/zyplayer/drpy_dzlive/drpy_js/\347\264\242\345\260\274\350\265\204\346\272\220[\350\265\204].js" new file mode 100644 index 0000000..c431fbd --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\264\242\345\260\274\350\265\204\346\272\220[\350\265\204].js" @@ -0,0 +1,12 @@ +// https://suoniapi.com/api.php/provide/vod/?ac=list +// https://suoniapi.com/api.php/provide/vod/from/snm3u8/?ac=list + +var rule = { + 模板: '采集1', + title: '索尼资源[资]', + host: 'https://suoniapi.com', + // homeTid: '13', + homeTid: '', + cate_exclude: '电影|电视剧|综艺|动漫|电影解说|体育|演员|新闻资讯|诺克|女频', + parse_url: '', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\275\221\351\243\236\347\214\253[\344\274\230].js" "b/zyplayer/drpy_dzlive/drpy_js/\347\275\221\351\243\236\347\214\253[\344\274\230].js" new file mode 100644 index 0000000..bafa2eb --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\275\221\351\243\236\347\214\253[\344\274\230].js" @@ -0,0 +1,84 @@ +var rule = { + title: '网飞猫[优]', + host: 'https://www.ncat1.app', + // url: '/show/fyclass-----2-fypage.html', + url: '/show/fyclass-fyfilter-fypage.html', + filter_url:'{{fl.类型}}-{{fl.地区}}-{{fl.语言}}-{{fl.年份}}-{{fl.排序}}', + searchUrl: '/search?k=**&page=fypage', + searchable: 2, + quickSearch: 0, + filterable: 1, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + class_parse: '#nav-swiper&&.nav-swiper-slide;a&&Text;a&&href;/(\\w+).html', + cate_exclude:'Netflix|今日更新|专题列表|排行榜', + tab_order:['超清', '蓝光', '极速蓝光'], + play_parse: true, + lazy: '', + limit: 20, + 推荐: '.section-box:eq(2)&&.module-box-inner&&.module-item;*;*;*;*', + double: false, + 一级: '.module-box-inner&&.module-item;.v-item-title:eq(-1)&&Text;img&&data-original;.v-item-bottom&&span&&Text;a&&href', + 二级: { + title: '.detail-title&&Text;.detail-tags&&a:eq(-2)&&Text', + img: '.detail-pic&&img&&data-original', + desc: '.detail-info-row-main:eq(-2)&&Text;.detail-tags&&a&&Text;.detail-tags&&a:eq(1)&&Text;.detail-info-row-main:eq(1)&&Text;.detail-info-row-main&&Text', + content: '.detail-desc&&Text', + tabs: '.source-item-label', + lists: '.episode-list:eq(#id) a', + }, + 搜索: '.search-result-list&&a;.title&&Text;*;.search-result-item-header&&Text;a&&href;.desc&&Text', + 图片替换:'https://www.ncat1.app=>https://vres.a357899.cn', + filter:'H4sIAAAAAAAAA+2Zz08bRxTH/xefOdgGtTi3HlqpUpVLe6hURREHV4qa0kN/qFWEZLANxhBsEDFx7AIpGEyCf0CQY9bY/md2Ztf/RWf95r0ZR+3LtqGRqviC+LzvzOzs7Nt531k/isQid755FPku+VvkTsS76In9jchMZHHh+6TNvyw8/Dk5briowiJbH6XrQVhBZGkGoneTP3378MGvOnz3068+++Lzr0kV66cyndWiBtJKVRVBDYC0fN3tV1EDQM3LXZgxNaAml4syVdKaBtLSebnyDDUAGjPf8vovcEwA0k63xXUPNQAac+XcK23jmAB0D7U1008Daas7o/IZagA0Zu6p66zjmADUb2tVFC6xHwBphWP/iNYagLRmRzgN1ABQc28O/WZbaxpoLo0Td3CIcwEw2qaf2ydtDLRmBw1vfQ3XDMB6tt5uzzzbAEjLDL2XNdQAUPOXN0XV0ZqGpXuBCmksqm2x6Zg0Jg6TxuL4dFRexUXoNkSlr0PYYnRSlt3WRAsdMg+gLa8Hk2NAiJZlsKWCuCwAtJx7NVk9x+UEoGsfnJl+GmhZNi6MpoHGfPXEaBpotoPXRtNA2uO2cE5QAzBjtu0x23Y/t3s9on4a6N6390W2i/cOQNd7feXXhng9AJMuh3JjqB4GZQwyXXWY8fp7skQPh5jmnCmoDiKHb5xhatHaVSj3OtiC2Np2RHtXZPFNMUxPojb0CirVy/gwiOkqg1dwXdehjcgO0T1nO24PtzENdqr7rYZfT5lUJw6V6pW+ao+DA9BNXh4bTYOVaEbTYCWv0TRYyWs0DVaCWv0Awi6CuL5ye33rfUcOswjxaHxOx8b/WvFZE5+143ETj9vxmInH7HjUxKMUj0XH0zwiLRa9r/4kqEH0zQbRoEHUNEhMNoglEtH76o9pMP9mg/mgwbxpICtXcg9fhUD7ODGxsHJrRzgFs7DEkwvr9W5EMYdXMaNXU7KEL0ncDntpfNJmXf1WRuRw350LpnFvRvX6b8yJpjDmhDMZnHHhjARrFrjizZghrrBzhoczJ0FhovvTEMYMceaEMzVBQaPraQhjQNSWZ56RhjBGkDNfo3RfdFdwLgC3bUAoHLllA8LZhH9rPTgLwVkP1l681ShxJoMzJ9PCOS2cH3DhnH1PhTNfl6llefNy4hxnQqFO/9wpkPsywGzebKHkCh5X1JgTqSzue+dU0AFCGQimaHMnZ5UH/vMUagCkVfKyjFVFQxjj4fUK1rEMgPodPhcV2mQAUPtk8YFKK5Dgf8rMYVGtPW53AHRUcy5Fo4g7PwBtd7/vyKe40hpMOd9Qa0jlfAxhLMJfWqDb+mbAlc23l/N3+1rwbmZg+s1g+s1gan1snlqf/7n1mbst6+M5L0T/CaYzAGnVA9dxvFOqwcQ0t2bb9NZAWuZCFI5Mb8OhDBP36Z8xTNznfa/SFUe0OQHQbPMrXqWJUwUwJffvP/1zBo2zBl8mF378YVFrGmie3M8zjGHiDJosP3NvaEcFmP6cMC0j0zLyIZeRj/55GTFh+ymPUqv+H5R6AJTqu1XRxBOLBppVuajON5jqANTvbOh38tgPgK639tjbPcDrAYQpK+yv28zJij3fMudw9tdt7myf7Yhm2rySAbz3zFEpsvQnK+G0IDwhAAA=', + 一级f:`js: + let urls = [ + 'https://www.ncat1.app/show/1-----1-1.html', + 'https://www.ncat1.app/show/2-----1-1.html', + 'https://www.ncat1.app/show/3-----1-1.html', + 'https://www.ncat1.app/show/4-----1-1.html', + 'https://www.ncat1.app/show/6-----1-1.html', + ]; + let filters = {}; + pdfa = jsp.pdfa; + pdfh = jsp.pdfh; + for(let url of urls){ + let fclass = url.match(/show\\/(\\d+)-/)[1]; + console.log(fclass); + let html = request(url); + let tabs = pdfa(html, '.filter-row'); + let data = []; + for (let tab of tabs) { + let title = pdfh(tab, 'strong&&Text').replace(':',''); + let lis = pdfa(tab, 'a'); + let _map = {key: title, name: title}; + let value = []; + for (let li of lis) { + let n = pdfh(li, 'a&&Text').trim(); + let v=n; + if(/全部|地区|类型/.test(n)){ + v = ''; + }else if(/综合/.test(n)){ + v = '1'; + }else{ + v = pdfh(li,'a&&href'); + try { + v = v.match(/-(.*?)1-1\.html/)[1].replace(/-/g,''); + }catch (e) { + v = v.match(/-(.*?)-1\.html/)[1].replace(/-/g,''); + } + v = decodeURIComponent(v); + } + value.push({ + 'n': n, 'v': v + }); + } + _map['value'] = value; + data.push(_map); + } + filters[fclass] = data; + } + VODS = [filters]; + console.log(gzip(JSON.stringify(filters))); + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\276\216\345\211\247\346\230\237\347\220\203.js" "b/zyplayer/drpy_dzlive/drpy_js/\347\276\216\345\211\247\346\230\237\347\220\203.js" new file mode 100644 index 0000000..a2f8985 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\276\216\345\211\247\346\230\237\347\220\203.js" @@ -0,0 +1,51 @@ +var rule = { + title: '美剧星球', + host: 'https://www.kmeiju.cc', + url: '/fyclass/page/fypage', + searchUrl: '/page/fypage?s=**', + searchable: 2, + quickSearch: 0, + filterable: 1, + filter: '', + filter_url: '', + filter_def: {}, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + timeout: 5000, + class_parse: '.navlist&&li;a&&Text;a&&href;.*\/(.*)', + cate_exclude: '排行|网站', + play_parse: true, + lazy: $js.toString(() => { + function getrandom(str) { + let string = str.substring(8, str.length); + let substr = atob(string); + return decodeURIComponent(substr.substring(8, substr.length - 8)) + } + + var src = jsp.pdfh(request(input), 'iframe&&src') + log(src) + var pconfig = jsp.pdfh(request(HOST + src), 'body&&script,0&&Html').match(/config = {[\s\S]*?}/)[0]; + log(pconfig) + var config = {}; + eval(pconfig); + var purl = config.url + log(purl) + input = {parse: 0, url: purl, js: 0}; + }), + double: true, + 推荐: '.bt_img;ul&&li;*;*;.qb&&Text;*', + 一级: '.bt_img&&li;.dytit&&Text;img&&data-original;.jidi&&Text;a&&href', + 二级: { + title: '.moviedteail_tt&&Text;.moviedteail_list&&li&&Text', + img: '.dyimg&&img&&src', + desc: '.moviedteail_list&&li:eq(4)&&Text;.moviedteail_list&&li:eq(2)&&Text;.moviedteail_list&&li:eq(1)&&Text', + content: '.yp_context&&Text', + tabs: '.mi_paly_box&&.ypxingq_t', + lists: '.paly_list_btn:eq(#id)&&a', + tab_text: 'span&&Text', + list_text: 'body&&Text', + list_url: 'a&&href' + }, + 搜索: '.search_list&&li;*;*;div.jidi&&Text;*', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\347\276\216\347\233\212\350\276\276.js" "b/zyplayer/drpy_dzlive/drpy_js/\347\276\216\347\233\212\350\276\276.js" new file mode 100644 index 0000000..0b50f73 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\347\276\216\347\233\212\350\276\276.js" @@ -0,0 +1,37 @@ +var rule = { + title: "美益达", + host: "https://myd02.com", + url: "/vodshow/fyclassfyfilter.html", + searchUrl: "/vodsearch/**----------fypage---.html", + searchable: 2, + quickSearch: 0, + filterable: 1, + filter: "H4sIAAAAAAAAA+2ZaU9bRxSG/4u/NpUwWZtv2fd9T5UPUYXUqG0qNWmlKorEHuMAJtTBOJgtbA5gMCQhxgv8Gc9c+1/k2nPOe+ZG7Yi2NGrV++0+77ln7uzzevwkEo0c/vpJ5Lu2XyOHI6pvQXf1RPZEHt7/oc3mX+5//3Nb88WHDbknW+/KNmQfIk/3kBrPVisZUgkQG8n4ZXHMAMe82Bp9RACxhRdqs8QxAxzTHUO6fYRiBPgeKi6AvNhotdjHeQaQt7KhijnOM4DY3DOpCwHH6rmkxAiQ1ztcT7/hPAOoS66/FpvguhhAmenXXnGbyzSAvM5lb+QF5xlArCuuO19xzAD6M77qVRa5Pw1wrJabV/0cI0CZE4t+T3GZBlBm5YVXynjJ96qyxiXbEvohMVubwZgYQBkdW/VXW5xtgGPV8lRtJU8xApQ5MFhbxXgZQJnFRbXCfUuAvh0f1qNz3LcGUOZgr0qsc5kGnt5rRGmRZPKqv2gtEuYdLZLZhXq6lws3gErNp3VhlStlQDovrze30HlNQEO3BtVYhRtqAAP39qXECDDgz9ckRoC81JzOLHOeAdRz8o3kEaCeWx8kRiB1ydt1yQfyBvKqOI+BbALyuhN+T6kYryFhtGRu20vkvL40NwYsm9OUfr7tp2F/YsYbPRvVEm8nBPaw+1Orlm2XYQfvaNjHKtY8NWANg8QIMLTrsxIjwDCkKmogJWFha6CssAFrgCVGYE0aK2bAGmCrJQasLlQrXdKFDQisnM131VLFWjnMO+nC1pbWvaQ1Hy29VfRWW4+KHrX1FtFbLD36FXT/0dIPiX7I1g+KftDWD4h+wNb3i77f1veJvs/Wpb1Ru71RaW/Ubm9U2hu12xuV9vqPgQHJpfTqgDUgzJ8MCGR7QI6QcATKUVKOQjlGyjEox0k5DuUEKSegnCTlJJRTpJyCcpqU01DOkHIGyllSzkI5R8o5KOdJOQ/lAikXoFwk5SKUS6RcgnKZlMtQrpByBcpVUq5CuUbKNSjXSbkO5QYpN6DcJOUmlFuk3IJym5TbUO6QcgfKXVLuQmn5ktdA48meKnpwWBUTMlXAwamiUxv11DsJ+tLjB34CDvNiUeeTgfi3Dx4/ks1wtVvFegPxR9/8+FNboy739kRad82sjlWqRRwGBv7uOew6F13nqetc1O8/qFmYXAOILS/4pz3HDOzEyLrMo8sgOo2lw8S7zLjTiDkMo9OMd1VUoZPLNCBt6NHdk2hDEzD3su1STwK0b7Db+iFiAHnxYT2RUc+K6rcOzrYlfHtqWo3hWDUg/mRNbadgTpogPyAyepzHi+DzGFLHhP6ri8S1ENxG9o8XidPIjuR9r6fGpzkV/D81d6FJi4QmLRKatNCk/VMmbe+umbTmceSVyrW+YuCEIgnbXWHVP2UC7wUka1v0N8rge7YUNFbB92wJG3hm0u8qb6Gd93Aw3hgrqBm+uyJAL3avqcSMZAuj/Y5bUz004S3DxBlAySvbtXyMizWwEwOkR56pfphNA4iNDupR5BmQfu3RhQJ6tAmIvUzXOvk2jUDm2brKDVGMwPIC9Rn+HoGMd0HHEhjpJsjxVtIxLpNAjsy31U2OEeB7yUn9DgbPAGJLE7qc5JgB1CX9qlqGKTbwr74tdJm63zVgoU0KbVJok0KbFNqk3bVJ+3b3LkvFs7q8JNurSEGbFHgvIAVtUvA9WwrapOB7toQNvCtXm4ZHMoC623+OfvHJv6OuSxedm69uTfFnDaDQQFcEK+P8lzqe9ZIliTUAMceFk+uiyuXTXJc+rosx10WS7njuxfh/WALEykt+k3Ry0yvD5dkS1u1Nr4/to3lGCesl3c0hAkz3jn6VYb9MYE0pZTnEJohHjus05xGgh4ZiamVDL7/mTgJ/Fo/1py+rQq8UeqXQK4VeKfRKu+uV9tteKZy84eT970zepx8BmfA972MpAAA=", + filter_url: "-{{fl.地区}}-{{fl.排序}}-{{fl.剧情}}-{{fl.语言}}-{{fl.字母}}---fypage---{{fl.年份}}", + filter_def: "", + headers: { + "User-Agent": "MOBILE_UA" + }, + timeout: 5000, + class_parse: ".swiper-wrapper&&a;a&&Text;a&&href;(\\w+).html", + cate_exclude: "Netflix|日更新|专题|排行榜|热搜|留言", + play_parse: true, + lazy: $js.toString(() => { + input = {parse: 1, url: input, js: ''}; + }), + double: true, + 推荐: "body&&.module:eq(1);body&&a.module-poster-item.module-item;a&&title;.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&&Text", + img: ".lazyload&&data-original", + desc: ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text", + content: ".module-info-introduction-content&&Text", + tabs: ".module-tab-item.tab-item", + lists: "body&&.module-play-list:eq(#id)&&a", + tab_text: "body&&Text", + list_text: "body&&Text", + list_url: "a&&href" + }, + 搜索: "body&&.module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text" +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\350\200\220\347\234\213.js" "b/zyplayer/drpy_dzlive/drpy_js/\350\200\220\347\234\213.js" new file mode 100644 index 0000000..666268e --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\350\200\220\347\234\213.js" @@ -0,0 +1,26 @@ +var rule={ + title: '耐看', + host: 'https://nkvod.com', + url: '/show/fyclass--------fypage---.html', + searchUrl: '/nk/-------------.html?wd=**', + searchable: 2, + quickSearch: 0, + filterable: 0, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + class_parse: '.navbar&&ul&&li;a&&Text;a&&href;/(\\d+).html', + play_parse: false, + lazy: '', + limit: 6, + 推荐: '.module-items;a;a&&title;img&&data-original;.module-item-note&&Text;a&&href', + double: true, + 一级: 'a.module-poster-item.module-item;a&&title;img&&data-original;.module-item-note&&Text;a&&href', + 二级: { + "title": "h1&&Text;.module-info-tag&&Text", + "img": ".lazyload&&data-original", + "desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text", + "content": ".module-info-introduction&&Text", + "tabs": ".hisSwiper&&span", + "lists": ".his-tab-list:eq(#id) a"}, + 搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\350\205\276\344\272\221\351\251\276\351\233\276[\345\256\230].js" "b/zyplayer/drpy_dzlive/drpy_js/\350\205\276\344\272\221\351\251\276\351\233\276[\345\256\230].js" new file mode 100644 index 0000000..62c059c --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\350\205\276\344\272\221\351\251\276\351\233\276[\345\256\230].js" @@ -0,0 +1,151 @@ +var rule = { + title: '腾云驾雾[官]', + host: 'https://v.%71%71.com', + homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18', + detailUrl: 'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid', + searchUrl: '/x/search/?q=**&stag=fypage', + searchable: 2, + filterable: 1, + multi: 1, + // url:'/channel/fyclass?listpage=fypage&channel=fyclass&sort=18&_all=1', + url: '/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1', + filter_url: 'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}', + filter: 'H4sIAAAAAAAAA+2UzUrDQBCA32XOEZLUJrGvIj0saaDBNisxBkIJCG3Fi4oepIg3EQoieqiH+vM23Zq+hRuaZLZ4ce9z2/lmd2d2+NgR+H0e+gF0DkdwFGTQgRMeJ2BAxIaSwvrqVnxcyzhlg9PttqjED2c/45cSy8DyIDcavr57q/lBw8XTd/E6qbnT8M3zTFyc72RtC/Jumd+2c8wy7KZ4nxSL5Z9uxHS+Gc+r83sWVp1eVttl4Dluk1h93YubWZVwduplAYuxoFguVp+P/y5om/Z+/YxyqfAW8pbKbeS2yi3kO/ebyE2Fy1nXXBm7DDzknspd5K7KHeSOytvI2+XAugYkKWlD2mhrM+RpSB8OmaNvTsriMEgycofc0XbHZ3HCeUTukDv67vTDQY/MIXO0zelxn5M4JI6mOPkvgswSEpgPAAA=', + headers: { + 'User-Agent': 'PC_UA' + }, + timeout: 5000, + // class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)', + cate_exclude: '会员|游戏|全部', + class_name: '精选&电视剧&电影&综艺&动漫&少儿&纪录片', + class_url: 'choice&tv&movie&variety&cartoon&child&doco', + limit: 20, + // play_parse:true, + // 手动调用解析请求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', + 推荐: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + 一级: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + 二级: $js.toString(() => { + VOD = {}; + let d = []; + let video_list = []; + let video_lists = []; + let list = []; + let QZOutputJson; + let html = fetch(input, fetch_params); + let sourceId = /get_playsource/.test(input) ? input.match(/id=(\d*?)&/)[1] : input.split("cid=")[1]; + let cid = sourceId; + let detailUrl = "https://v.%71%71.com/detail/m/" + cid + ".html"; + log("详情页:" + detailUrl); + pdfh = jsp.pdfh; + pd = jsp.pd; + try { + let json = JSON.parse(html); + VOD = { + vod_url: input, + vod_name: json.c.title, + type_name: json.typ.join(","), + vod_actor: json.nam.join(","), + vod_year: json.c.year, + vod_content: json.c.description, + vod_remarks: json.rec, + vod_pic: urljoin2(input, json.c.pic) + } + } catch (e) { + log("解析片名海报等基础信息发生错误:" + e.message) + } + if (/get_playsource/.test(input)) { + eval(html); + let indexList = QZOutputJson.PlaylistItem.indexList; + indexList.forEach(function (it) { + let dataUrl = "https://s.video.qq.com/get_playsource?id=" + sourceId + "&plat=2&type=4&data_type=3&range=" + it + "&video_type=10&plname=qq&otype=json"; + eval(fetch(dataUrl, fetch_params)); + let vdata = QZOutputJson.PlaylistItem.videoPlayList; + vdata.forEach(function (item) { + d.push({ + title: item.title, + pic_url: item.pic, + desc: item.episode_number + "\t\t\t播放量:" + item.thirdLine, + url: item.playUrl + }) + }); + video_lists = video_lists.concat(vdata) + }) + } else { + let json = JSON.parse(html); + video_lists = json.c.video_ids; + let url = "https://v.qq.com/x/cover/" + sourceId + ".html"; + if (video_lists.length === 1) { + let vid = video_lists[0]; + url = "https://v.qq.com/x/cover/" + cid + "/" + vid + ".html"; + d.push({ + title: "在线播放", + url: url + }) + } else if (video_lists.length > 1) { + for (let i = 0; i < video_lists.length; i += 30) { + video_list.push(video_lists.slice(i, i + 30)) + } + video_list.forEach(function (it, idex) { + let o_url = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + it.join(","); + let o_html = fetch(o_url, fetch_params); + eval(o_html); + QZOutputJson.results.forEach(function (it1) { + it1 = it1.fields; + let url = "https://v.qq.com/x/cover/" + cid + "/" + it1.vid + ".html"; + d.push({ + title: it1.title, + pic_url: it1.pic160x90.replace("/160", ""), + desc: it1.video_checkup_time, + url: url, + type: it1.category_map && it1.category_map.length > 1 ? it1.category_map[1] : "" + }) + }) + }) + } + } + let yg = d.filter(function (it) { + return it.type && it.type !== "正片" + }); + let zp = d.filter(function (it) { + return !(it.type && it.type !== "正片") + }); + VOD.vod_play_from = yg.length < 1 ? "qq" : "qq$$$qq 预告及花絮"; + VOD.vod_play_url = yg.length < 1 ? d.map(function (it) { + return it.title + "$" + it.url + }).join("#") : [zp, yg].map(function (it) { + return it.map(function (its) { + return its.title + "$" + its.url + }).join("#") + }).join("$$$"); + }), + 搜索: $js.toString(() => { + let d = []; + pdfa = jsp.pdfa; + pdfh = jsp.pdfh; + pd = jsp.pd; + let html = request(input); + let baseList = pdfa(html, "body&&.result_item_v"); + baseList.forEach(function (it) { + let longText = pdfh(it, ".result_title&&a&&Text"); + let shortText = pdfh(it, ".type&&Text"); + let fromTag = pdfh(it, ".result_source&&Text"); + let score = pdfh(it, ".figure_info&&Text"); + let content = pdfh(it, ".desc_text&&Text"); + let url = pdfh(it, ".result_title&&a&&href"); + let img = pd(it, ".figure_pic&&src"); + url = "https://node.video.qq.com/x/api/float_vinfo2?cid=" + url.match(/.*\/(.*?)\.html/)[1]; + log(shortText + "|" + url); + if (fromTag.match(/腾讯/)) { + d.push({ + title: longText.split(shortText)[0], + img: img, + url: url, + content: content, + desc: shortText + " " + score + }) + } + }); + setResult(d); + }), +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\350\212\261\345\255\220\345\212\250\346\274\253[\346\274\253].js" "b/zyplayer/drpy_dzlive/drpy_js/\350\212\261\345\255\220\345\212\250\346\274\253[\346\274\253].js" new file mode 100644 index 0000000..52af9a6 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\350\212\261\345\255\220\345\212\250\346\274\253[\346\274\253].js" @@ -0,0 +1,72 @@ +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: 'H4sIAAAAAAAAA+2W204TURSG32WuMdnT0nbDnZzP57PhopImEhETWk0IIUFOloNQDLSigGJCLCIWhJCWgr4MM9O+hdPO2mstDzE10cSYudv/989u55t0uteUpmuVd6a0+6FJrVIbGQuGw1qZNh58ELKjdZo19lbs/Dg49ihUvG7cxsZCMj+XLGA7aNNlQK9mb9Jxa2sVCsrqCmv7sxGLQg0Bd8fWjI9HaqsTcN/ccW5/Ru1zAnaXKSt6qjonYHf4JXexrDon4PcdPDUyWfV9TlCdGX1hxhPQQSjlPs3YnvVhQ+1zAnaJAyOdVp0T8D7fbdC9QMB9n7LmvHpmELB7s2+8OladE7B7skLPBQI6LD7Pbx8qByfgvrWkFVtU+5yA3c6l/TRU5wTV5V+f3WRi0EFQXS62m1tbgg4C3WfMnInjfRYDdnPL5uxL1TkBu7P9/O5ba+u9qjHjFem0GV03NzPqCsz4HE7Wc6lzuoIyfsbVkbWZZZ+BGd0WlHRhNT1c4M67NBkKTtCrZGTOb7LXJb5KHuEpB1ZcMu4l7uXcQ9zDuU5c51wQF4zrFcjtJeOSuOQ8QDzAuZ+4n3MfcR/n5KtzX518de6rk6/OfXXy1bmvTr469xXkK7ivIF/BfQX5Cu4ryFdwX0G+gvsK8hXcV5Cv4L6CfAX3FeQruK8gX0G+ekWF8i0uGZfEJecB4gHO/cT9nPuI+zgvJ17OuZe4l3MPcQ/nOnGdc0Gc+0ryldxXkq/kvpJ8JfeV5Cu5ryRfyX0l+UruK8lXcl9JvpL7SvKV3FeSr73kfztjoUgkxP94jhNm6lmJfzy3AdxGUgWkCkk1kGokNUBqkNQCqUVSB6QOST2QeiQNQBqQNAJpRNIEpAlJM5BmJC1AWpC0AmlF0gakDUk7kHYkHUA6kHQC6UTSBaQLSTeQbiQ9QHqQ9ALpRdIHpA9JP5B+JANABpAMAhlEMgRkCIm4pd6Bwor/VO5O0s/ETFzkE+c//EzM1SVzZ8aMn8BHREbtq/F0LJb2QAblvdFImJe51LwRVbNEeOThRKjw9cNlmuefGDl/OVb+hdHxvxgPf3cEdAcidyByByK1dAcidyByByJ3IPp+IPL+qYFoOXlzvaOObieUMrb8dMRwj2736HaPbrV0j2736HaPbvfo/vbonv4K+TrlXkAbAAA=', + 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") + } + }); + }), + 图片替换: '&=>&' +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\350\215\220\347\211\207[\344\274\230].js" "b/zyplayer/drpy_dzlive/drpy_js/\350\215\220\347\211\207[\344\274\230].js" new file mode 100644 index 0000000..94effbe --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\350\215\220\347\211\207[\344\274\230].js" @@ -0,0 +1,156 @@ +/** + * 影视TV 超連結跳轉支持 + * https://t.me/fongmi_offical/ + * https://github.com/FongMi/Release/tree/main/apk + */ +var rule = { + title: '荐片[优]', + // host: 'http://api2.rinhome.com', + //host: 'https://oiuzy.haitu33.com', + host: 'https://dns.alidns.com/resolve?name=jpmobile.jianpiandns.com&type=TXT', + hostJs:` + print(HOST); + let html=request(HOST,{headers:{"User-Agent":MOBILE_UA}}); + let json = dealJson(html); + let data = json.Answer[0].data.replace(/'|"/g,'').split(','); + HOST = data[0]; + if(!HOST.startsWith('http')){ + HOST = 'https://'+HOST; + } + // log(HOST); + `, + homeUrl: '/api/tag/hand?code=unknown601193cf375db73d&channel=wandoujia',//网站的首页链接,用于分类获取和推荐获取 + // url:'/api/crumb/list?area=0&category_id=fyclass&page=fypage&type=0&limit=24&fyfilter', + url: '/api/crumb/list?page=fypage&type=0&limit=24&fyfilter', + class_name: '全部&电影&电视剧&动漫&综艺', // 筛选 /api/term/ad_fenlei?limit=10&page=1 + class_url: '0&1&2&3&4', + detailUrl: '/api/node/detail?channel=wandoujia&token=&id=fyid',//二级详情拼接链接(json格式用) + searchUrl: '/api/video/search?key=**&page=fypage', + searchable: 2, + quickSearch: 0, + filterable: 1, + filter: 'H4sIAAAAAAAAA+2V3UrDMBiG7yXHO2jTrtu8A69BPCiuqKhT6hTGGEzmxiY4f5CqWPBA3So4tsHE/aBX06T2Lsxc2mR2FWHzrId5vpA03/e8NA8EsLSSB1taDiwBVddUEAMZdUcjK2R20GmRrA/V7QPte1tmjMuWW7LGmCwEUIhRfPduD5sUiz62+y1ScRu3uN+mRelHEZ118OCDFhW/6HzUSZHiuI/d+2eGxaTP8fUTNl8oh6CwOi5MnpXTVJ171qBnjx7++iwoQNm7TEzxWPJwXOIx9LAg8lj0D0nyWPCwwlFyz4QmeJhkb2MwEegpgYq3c7oN+7t6lrUB1y/R8CzQBqfUcq+9NmzsZv1zP9vHqFqhBV3NbmbWWe/vetjo0NrBXlrNauObV2NEBGbXGsHLaW4Q1YrTHf0+CNZDt2HguhXQAZ1Y9rsZkAcZJqo1A23E1Rt7WKOYc+foHBcNitmQyQm4VPbnycysdjnOPtFpXqDByOOQ/0bnyufS1FCiyEWRW2zk4JyRg7MjJ8oh3jFPiG9ErGB7iSdEIY9zaXx9Q48G51WUiygX/5YLac5cSCG5SM32GQohPoizPf3Rocj/yP/F+i/P6b88238ohfgsh+Qi5H8Blcj/yP9/87/wBY9Rx63qDgAA', + filter_url: 'area={{fl.area or "0"}}&sort={{fl.sort or "update"}}&year={{fl.year or "0"}}&category_id={{fl.cateId}}', + filter_def: { + 0:{cateId:'0'}, + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 3:{cateId:'3'}, + 4:{cateId:'4'} + }, + headers: { + 'User-Agent': 'jianpian-android/350', + 'JPAUTH': 'y261ow7kF2dtzlxh1GS9EB8nbTxNmaK/QQIAjctlKiEv' + }, + timeout: 5000, + limit: 8, + play_parse: true, + play_json: [{ + re: '*', + json: { + parse: 0, + jx: 0 + } + }], + lazy: '', + 图片来源: '@Referer=www.jianpianapp.com@User-Agent=jianpian-version361', + // 推荐:'json:.video;*;*;*;*', + 推荐: `js: + var d = []; + let html = request(input); + html = JSON.parse(html).data[0].video; + html.forEach(it => { + d.push({ + title: it.title, + img: it.path, + desc: it.playlist.title + ' ⭐' + it.score, + url: it.id + }) + }); + setResult(d); + `, + // 一级:'json:data;title;path;playlist.title;id', + 一级: `js: + cateObj.tid = cateObj.tid+''; + if (cateObj.tid.endsWith('_clicklink')) { + cateObj.tid = cateObj.tid.split('_')[0]; + input = HOST + '/api/video/search?key=' + cateObj.tid + '&page=' + + MY_PAGE; + } + var d = []; + let html = request(input); + html = JSON.parse(html).data; + html.forEach(it => { + d.push({ + title: it.title, + img: it.thumbnail||it.path, + desc: (it.mask || it.playlist.title) + ' ⭐' + it.score, + url: it.id + }) + }); + setResult(d); + `, + 二级: `js: + function getLink(data) { + let link = data.map(it => { + return '[a=cr:' + JSON.stringify({'id':it.name+'_clicklink','name':it.name}) + '/]' + it.name + '[/a]' + }).join(', '); + return link + } + try { + let html = request(input); + html = JSON.parse(html); + let node = html.data; + VOD = { + vod_id: node.id, + vod_name: node.title, + vod_pic: node.thumbnail, + type_name: node.types[0].name, + vod_year: node.year.title, + vod_area: node.area.title, + vod_remarks: node.score, + vod_actor: getLink(node.actors), + vod_director: getLink(node.directors), + vod_content: node.description.strip() + }; + if (typeof play_url === 'undefined') { + var play_url = '' + } + let playMap = {}; + if (node.have_ftp_ur == 1) { + playMap["边下边播超清版"] = node.new_ftp_list.map(it => { + return it.title + "$" + (/m3u8/.test(it.url) ? play_url + it.url : "tvbox-xg:" + it.url) + }).join('#'); + } + if (node.have_m3u8_ur == 1) { + playMap["在线点播普清版"] = node.new_m3u8_list.map(it => { + return it.title + "$" + (/m3u8/.test(it.url) ? play_url + it.url : "tvbox-xg:" + it.url) + }).join('#'); + } + let playFrom = []; + let playList = []; + Object.keys(playMap).forEach(key => { + playFrom.append(key); + playList.append(playMap[key]) + }); + VOD.vod_play_from = playFrom.join('$$$'); + VOD.vod_play_url = playList.join('$$$'); + } catch (e) { + log("获取二级详情页发生错误:" + e.message); + } + `, + // 搜索:'json:data;*;thumbnail;mask;*', + 搜索: `js: + var d = []; + let html = request(input); + html = JSON.parse(html).data; + html.forEach(it => { + d.push({ + title: it.title, + img: it.thumbnail, + desc: it.mask + ' ⭐' + it.score, + url: it.id + }) + }); + setResult(d); + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\350\217\234\347\213\227[\345\256\230].js" "b/zyplayer/drpy_dzlive/drpy_js/\350\217\234\347\213\227[\345\256\230].js" new file mode 100644 index 0000000..3d4d244 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\350\217\234\347\213\227[\345\256\230].js" @@ -0,0 +1,66 @@ +var rule = { + title:'菜狗[官]', + host:'https://waptv.sogou.com', + homeUrl:'', + searchUrl:'/film/result?ie=utf8&query=**', + searchable:2, + quickSearch:0, + filterable:1, + multi:1, + // 分类链接fypage参数支持1个()表达式 + url:'/napi/video/classlist?abtest=0&iploc=CN1304&spver=&listTab=fyclass&filter=&start=((fypage-1)*15)&len=15&fr=filter', + filter_url:'style={{fl.style}}&zone={{fl.zone}}&year={{fl.year}}&fee={{fl.fee}}&order={{fl.order}}', + headers:{ + 'User-Agent':'PC_UA' + }, + timeout:5000, + class_name:'电视剧&电影&动漫&综艺&纪录片', + class_url:'teleplay&film&cartoon&tvshow&documentary', + filter:{'teleplay': [{'key': 'style', 'name': '类型', 'value': [{'n': '全部', 'v': ''}, {'n': '爱情', 'v': '爱情'}, {'n': '喜剧', 'v': '喜剧'}, {'n': '都市', 'v': '都市'}, {'n': '悬疑', 'v': '悬疑'}, {'n': '古装', 'v': '古装'}, {'n': '偶像', 'v': '偶像'}, {'n': '犯罪', 'v': '犯罪'}, {'n': '历史', 'v': '历史'}, {'n': '战争', 'v': '战争'}, {'n': '武侠', 'v': '武侠'}, {'n': '警匪', 'v': '警匪'}, {'n': '科幻', 'v': '科幻'}, {'n': '奇幻', 'v': '奇幻'}, {'n': '谍战', 'v': '谍战'}, {'n': '农村', 'v': '农村'}, {'n': '其他', 'v': '其他'}]}, {'key': 'zone', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': '内地'}, {'n': '香港', 'v': '香港'}, {'n': '台湾', 'v': '台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '泰国', 'v': '泰国'}, {'n': '日本', 'v': '日本'}, {'n': '美国', 'v': '美国'}, {'n': '英国', 'v': '英国'}, {'n': '新加坡', 'v': '新加坡'}, {'n': '其他', 'v': '其他'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '更早', 'v': '更早'}]}, {'key': 'fee', 'name': '资源', 'value': [{'n': '全部', 'v': ''}, {'n': '正片', 'v': '正片'}, {'n': '免费正片', 'v': '免费正片'}, {'n': '付费正片', 'v': '付费正片'}]}, {'key': 'order', 'name': '排序', 'value': [{'n': '全部', 'v': ''}, {'n': '最新', 'v': '最新'}, {'n': '好评', 'v': '好评'}]}], 'film': [{'key': 'style', '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': 'zone', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': '内地'}, {'n': '香港', 'v': '香港'}, {'n': '台湾', 'v': '台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '泰国', 'v': '泰国'}, {'n': '日本', 'v': '日本'}, {'n': '美国', 'v': '美国'}, {'n': '英国', 'v': '英国'}, {'n': '新加坡', 'v': '新加坡'}, {'n': '其他', 'v': '其他'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '更早', 'v': '更早'}]}, {'key': 'fee', 'name': '资源', 'value': [{'n': '全部', 'v': ''}, {'n': '正片', 'v': '正片'}, {'n': '免费正片', 'v': '免费正片'}, {'n': '付费正片', 'v': '付费正片'}]}, {'key': 'order', 'name': '排序', 'value': [{'n': '全部', 'v': ''}, {'n': '最新', 'v': '最新'}, {'n': '好评', 'v': '好评'}]}], 'cartoon': [{'key': 'style', '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': '其他'}]}, {'key': 'zone', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '日本', 'v': '日本'}, {'n': '欧美', 'v': '欧美'}, {'n': '国产', 'v': '国产'}, {'n': '其他', 'v': '其他'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '更早', 'v': '更早'}]}, {'key': 'fee', 'name': '资源', 'value': [{'n': '全部', 'v': ''}, {'n': '正片', 'v': '正片'}, {'n': '免费正片', 'v': '免费正片'}, {'n': '付费正片', 'v': '付费正片'}]}, {'key': 'order', 'name': '排序', 'value': [{'n': '全部', 'v': ''}, {'n': '最新', 'v': '最新'}, {'n': '好评', 'v': '好评'}]}], 'tvshow': [{'key': 'style', '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': 'zone', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': '内地'}, {'n': '台湾', 'v': '台湾'}, {'n': '日韩', 'v': '日韩'}, {'n': '欧美', 'v': '欧美'}, {'n': '其他', 'v': '其他'}]}, {'key': 'emcee', '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': 'order', 'name': '排序', 'value': [{'n': '全部', 'v': ''}, {'n': '最新', 'v': '最新'}, {'n': '好评', 'v': '好评'}]}], 'documentary': [{'key': 'style', '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': 'zone', 'name': '地区', 'value': [{'n': '全部', 'v': ''}, {'n': '内地', 'v': '内地'}, {'n': '香港', 'v': '香港'}, {'n': '台湾', 'v': '台湾'}, {'n': '韩国', 'v': '韩国'}, {'n': '泰国', 'v': '泰国'}, {'n': '日本', 'v': '日本'}, {'n': '美国', 'v': '美国'}, {'n': '英国', 'v': '英国'}, {'n': '新加坡', 'v': '新加坡'}, {'n': '其他', 'v': '其他'}]}, {'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2018', 'v': '2018'}, {'n': '2017', 'v': '2017'}, {'n': '2016', 'v': '2016'}, {'n': '2015', 'v': '2015'}, {'n': '2014', 'v': '2014'}, {'n': '更早', 'v': '更早'}]}, {'key': 'fee', 'name': '资源', 'value': [{'n': '全部', 'v': ''}, {'n': '正片', 'v': '正片'}, {'n': '免费正片', 'v': '免费正片'}, {'n': '付费正片', 'v': '付费正片'}]}, {'key': 'order', 'name': '排序', 'value': [{'n': '全部', 'v': ''}, {'n': '最新', 'v': '最新'}, {'n': '好评', 'v': '好评'}]}]}, + limit:20, + play_parse:true, + play_json:1, + // 手动调用解析请求json的url,此lazy不方便 + lazy:'', + lazy:`js: + print(input); + fetch_params.headers["User-Agent"]=MOBILE_UA; + print(fetch_params); + let html=request(input); + let rurl=html.match(/window\\.open\\('(.*?)',/)[1]; + rurl=urlDeal(rurl); + input={parse:1,jx:1,url:rurl}; + `, + // 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + 一级:'js:let d=[];let html=request(input);html=JSON.parse(html);let list=html.listData.results;list.forEach(function(it){let desc1=it.ipad_play_for_list.finish_episode?it.ipad_play_for_list.episode===it.ipad_play_for_list.finish_episode?"全集"+it.ipad_play_for_list.finish_episode:"连载"+it.ipad_play_for_list.episode+"/"+it.ipad_play_for_list.finish_episode:"";let desc2=it.score?"评分:"+it.score:"";let desc3=it.date?"更至:"+it.date:"";d.push({title:it.name,img:it.v_picurl,url:"https://v.sogou.com"+it.url.replace("teleplay","series").replace("cartoon","series"),desc:desc1||desc2||desc3})});setResult(d);', + 二级:'', + 二级:'js:VOD={};let html=request(input);function adhead(url){let hd="https://v.sogou.com";if(!url.startsWith(hd)){url=hd+url}return urlencode(url)}try{let json=JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]).detail.itemData;let key=json.dockey;let name=json.name;let zone=json.zone;let score=json.score?json.score:"暂无";let style=json.style;let emcee=json.emcee?"主持:"+json.emcee:json.name;let director=json.director?"导演:"+json.director:name;director=director.replace(/;/g,"\\t");let starring=json.starring?"演员:"+json.starring:"声优:"+json.shengyou;starring=starring.replace(/.*undefined/,"").replace(/;/g,"\\t");let update=json.update_wordstr?json.update_wordstr:"";let tv_station=json.tv_station?json.tv_station:zone;let introduction=json.introduction;let shengyou=json.shengyou;let shows=json.play_from_open_index;let plays=json.play.item_list;if(shows){VOD.vod_name=name;VOD.vod_area=emcee+","+tv_station;VOD.vod_director=director;VOD.vod_actor=starring;VOD.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");VOD.vod_remarks=style+" 评分:"+score+","+update;VOD.vod_content=introduction}else{VOD.vod_name=name;VOD.vod_director=director;VOD.vod_actor=starring;VOD.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");VOD.vod_content=introduction}let tp="&type=json";try{let tabs=[];let lists=[];plays.forEach(function(it){lists.push(it.info);let tbn=it.sitename[0]||it.site.replace(".com","");tbn=tbn.split("").join(" ");tabs.push(tbn)});VOD.vod_play_from=tabs.join("$$$");let vod_lists=[];print("play_url1:"+play_url);play_url=play_url.replace("&play_url=","&type=json&play_url=");print("play_url2:"+play_url);lists.forEach(function(item,idex){if(item||shows){if(item&&Array.isArray(item)&&item.length>1){let tmp=item.slice(1).map(function(its){return its.index+"$"+play_url+base64Encode(adhead(its.url))});vod_lists.push(tmp.join("#"))}if(shows){let arr=[];let tmp=[];let zy=shows.item_list[idex];zy.date.forEach(function(date){let day=date.day;for(let j=0;j=10?day[j][0]:"0"+day[j][0];let Tdate=date.year+date.month+dayy;arr.push(Tdate)}});for(let k=0;k0?img[0]:""}}catch(e){print("发生了错误:"+e.message)}', + // 二级:'js:var vod={vod_id:input};let html=request(input);function adhead(url){let hd="https://v.sogou.com";if(!url.startsWith(hd)){url=hd+url}return url}try{let json=JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]).detail.itemData;let key=json.dockey;let name=json.name;let zone=json.zone;let score=json.score?json.score:"暂无";let style=json.style;let emcee=json.emcee?"主持:"+json.emcee:json.name;let director=json.director?"导演:"+json.director:name;director=director.replace(/;/g,"\\t");let starring=json.starring?"演员:"+json.starring:"声优:"+json.shengyou;starring=starring.replace(/.*undefined/,"").replace(/;/g,"\\t");let update=json.update_wordstr?json.update_wordstr:"";let tv_station=json.tv_station?json.tv_station:zone;let introduction=json.introduction;let shengyou=json.shengyou;let shows=json.play_from_open_index;let plays=json.play.item_list;if(shows){vod.vod_name=name;vod.vod_area=emcee+","+tv_station;vod.vod_director=director;vod.vod_actor=starring;vod.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");vod.vod_remarks=style+" 评分:"+score+","+update;vod.vod_content=introduction}else{vod.vod_name=name;vod.vod_director=director;vod.vod_actor=starring;vod.vod_pic=jsp.pd(html,"#thumb_img&&img&&src");vod.vod_content=introduction}let tp="&type=json";try{let tabs=[];let lists=[];plays.forEach(function(it){lists.push(it.info);let tbn=it.sitename[0]||it.site.replace(".com","");tbn=tbn.split("").join(" ");tabs.push(tbn)});vod.vod_play_from=tabs.join("$$$");vod_lists=[];play_url=play_url.replace("&play_url=","&type=json&play_url=");lists.forEach(function(item,idex){if(item||shows){if(item&&Array.isArray(item)&&item.length>1){let tmp=item.slice(1).map(function(its){return its.index+"$"+play_url+base64Encode(adhead(its.url))});vod_lists.push(tmp.join("#"))}if(shows){let arr=[];let tmp=[];let zy=shows.item_list[idex];zy.date.forEach(function(date){let day=date.day;for(let j=0;j=10?day[j][0]:"0"+day[j][0];let Tdate=date.year+date.month+dayy;arr.push(Tdate)}});for(let k=0;k0?img[0]:""}}catch(e){}', + 搜索:'', + 搜索:`js: +let d = []; +let html = request(input); +let jsonA = JSON.parse(html.match(/INITIAL_STATE.*?({.*});/)[1]); +print(jsonA); +jsonA = jsonA.result.resultData.searchData.results; +jsonA.forEach(function(it) { + let name = it.name; + let introduction = it.introduction; + let pic = it.v_picurl; + let url = it.tiny_url; + let zone = it.zone; + let score = it.score || "暂无"; + let style = it.style; + if (it.play_info && it.play_info.play_list) { + let r = {}; + r.title = name.replace(//, "").replace(//, ""); + r.url = "https://v.sogou.com" + url.replace(/teleplay|cartoon/g, 'series'); + r.desc = it.listCategory.join(","); + r.content = introduction; + r.pic_url = pic; + d.push(r) + } +}); +setResult(d);`, + +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\350\223\235\345\205\211\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\350\223\235\345\205\211\345\275\261\350\247\206.js" new file mode 100644 index 0000000..7e4ee53 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\350\223\235\345\205\211\345\275\261\350\247\206.js" @@ -0,0 +1,9 @@ +var rule = { + 模板: 'mxpro', + title: '蓝光影视', + host: 'https://lgysw.cn', + url: '/vodshow/fyclass--------fypage---.html', + searchUrl: '/vodsearch/**----------fypage---/', + class_parse: '.navbar-items li;a&&Text;a&&href;.*/(.*?)/', + cate_exclude: '今日更新|热榜', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\350\231\216\347\211\231\347\233\264\346\222\255.js" "b/zyplayer/drpy_dzlive/drpy_js/\350\231\216\347\211\231\347\233\264\346\222\255.js" new file mode 100644 index 0000000..35c0f12 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\350\231\216\347\211\231\347\233\264\346\222\255.js" @@ -0,0 +1,189 @@ +var rule = { + title: '虎牙直播', + host: 'https://www.huya.com', + homeUrl: '/cache.php?m=LiveList&do=getLiveListByPage&gameId=2168&tagAll=0&page=1',//用于"分类获取"和"推荐获取" + url: '/cache.php?m=LiveList&do=getLiveListByPage&gameId=fyfilter&tagAll=0&page=fypage', + class_name: '娱乐&网游&单机&手游', + class_url: '8&1&2&3', + // detailUrl:'https://m.huya.com/fyid',//二级详情拼接链接(json格式用) + detailUrl: 'http://live.yj1211.work/api/live/getRoomInfo?uid=&platform=huya&roomId=fyid',//二级详情拼接链接(json格式用) + filterable: 1, + filter_url: '{{fl.cateId}}', + filter_def: { + 8: {cateId: '2135'}, + 1: {cateId: '1'}, + 2: {cateId: '1732'}, + 3: {cateId: '2336'} + }, + filter: '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', + searchUrl: 'https://search.cdn.huya.com/?m=Search&do=getSearchContent&q=**&uid=0&v=4&typ=-5&livestate=0&rows=40&start=0', + searchable: 2, + quickSearch: 0, + headers: { + 'User-Agent': 'MOBILE_UA' + }, + timeout: 5000, + limit: 8, + play_parse: true, + lazy: '', + lazy: `js: + if (/m\\.huya/.test(input)) { + rule.sniffer = 0 + } + `, + 推荐: `js: + let d = []; + let jo = JSON.parse(request(input)).data.datas; + jo.forEach(it => { + d.push({ + url: it.profileRoom, + title: it.introduction, + img: it.screenshot, + desc: '👁' + it.totalCount + ' 🆙' + it.nick, + }) + }); + setResult(d); + `, + 一级: `js: + let d = []; + let jo = JSON.parse(request(input)).data.datas; + jo.forEach(it => { + d.push({ + url: it.profileRoom, + title: it.introduction, + img: it.screenshot, + desc: '👁' + it.totalCount + ' 🆙' + it.nick, + }) + }); + setResult(d); + `, + // 二级:'*', + 二级: `js: + try { + if (typeof play_url === "undefined") { + var play_url = "" + } + var jo = JSON.parse(request(input)).data; + VOD = { + vod_id: jo.roomId, + vod_name: jo.roomName, + vod_pic: jo.roomPic, + type_name: "虎牙." + jo.categoryName, + vod_director: '🆙 ' + jo.ownerName, + vod_content: "🏷分区:虎牙" + "·" + jo.categoryName + " 🏷UP主:" + jo.ownerName + " 🏷人气:" + jo.online + (jo.isLive === 1 ? " 🏷状态:正在直播" : "状态:未开播") + }; + let episodes = JSON.parse(request("http://live.yj1211.work/api/live/getRealUrlMultiSource?platform=" + jo.platForm + "&roomId=" + jo.roomId)).data; //多线路 + if (Object.keys(episodes).length !== 0) { + let playFrom = []; + let playList = []; + let kplayList = []; + Object.keys(episodes).forEach(function(key) { + playFrom.append(key); + kplayList = episodes[key].map(function(it) { + let title = it.qualityName; + let playUrl = it.playUrl + return title + "$" + play_url + urlencode(playUrl) + }).join("#") + playList.append(kplayList); + }); + let vod_play_from = playFrom.join("$$$"); + let vod_play_url = playList.join("$$$"); + VOD["vod_play_from"] = vod_play_from; + VOD["vod_play_url"] = vod_play_url; + } else { + var d = []; + episodes = JSON.parse(request("http://live.yj1211.work/api/live/getRealUrl?platform=" + jo.platForm + "&roomId=" + jo.roomId)).data; //单线路 + var name = { + "OD": "原画", + "FD": "流畅", + "LD": "标清", + "SD": "高清", + "HD": "超清", + "2K": "2K", + "4K": "4K", + "FHD": "全高清", + "XLD": "极速", + "SQ": "普通音质", + "HQ": "高音质" + }; + Object.keys(episodes).forEach(function(key) { + if (!/ayyuid|to/.test(key)) { + d.push({ + title: name[key], + url: episodes[key] + }) + } + }); + d.push( + { + title: "虎牙解析", + url: "http://cfss.cc/cdn/hy/" + jo.roomId + ".flv" + }, + { + title: "解析1", + url: "http://epg.112114.xyz/huya/" + jo.roomId + }, + { + title: "解析2", + url: "https://www.aois.eu.org/live/huya/" + jo.roomId + }, + { + title: "解析3", + url: "https://www.goodiptv.club/huya/" + jo.roomId + }, + // { + // title: "解析4", + // url: "http://maomao.kandiantv.cn/huya1.php?id=" + jo.roomId + // }, + { + title: "解析5", + url: "http://43.138.170.29:35455/huya/" + jo.roomId + }, + { + title: "解析6", + url: "http://8.210.232.168/php/huya.php?id=" + jo.roomId + }, + { + title: "原址嗅探", + url: "https://m.huya.com/" + jo.roomId + }, + ); + VOD["vod_play_from"] = "播放源"; + VOD["vod_play_url"] = d.map(function(it) { + return it.title + "$" + it.url + }).join("#"); + setResult(d); + } + } catch (e) { + log("获取二级详情页发生错误:" + e.message); + } + `, + // 搜索:'json:response.3.docs;game_roomName;game_screenshot;game_nick;room_id', + 搜索: `js: + var d = []; + let jo = JSON.parse(request(input)).response[3].docs; + jo.forEach(it => { + d.push({ + url: it.room_id, + title: it.game_roomName, + img: it.game_screenshot, + desc: '👁' + it.game_total_count + ' 🆙' + it.game_nick, + }) + }); + setResult(d); + `, + + //是否启用辅助嗅探: 1,0 + sniffer: 1, + // 辅助嗅探规则js写法 + isVideo: `js: + log(input); + if(/\\/huya/.test(input)) { + input = true + } else if(/\\.flv?|\\.m3u8?|\\.mp4?/.test(input)){ + input = true + }else{ + input = false + } + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\350\233\213\350\233\213\345\211\247.js" "b/zyplayer/drpy_dzlive/drpy_js/\350\233\213\350\233\213\345\211\247.js" new file mode 100644 index 0000000..411d91e --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\350\233\213\350\233\213\345\211\247.js" @@ -0,0 +1,61 @@ +// 地址发布页 https://www.dandanju.vip +// 搜索安全验证 > 通过drpy_ocr验证码接口过验证OK +var rule = { + title: '蛋蛋剧', + // host:'https://www.dandanju.cc', + host: 'https://www.dandanju.vip', + hostJs: 'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src=jsp.pdfh(html,"a:eq(0)&&href");print(src);HOST=src', + // url:'/show/fyclass--------fypage---.html', + url: '/show/fyclassfyfilter.html', + filterable: 1,//是否启用分类筛选, + filter_url: '-{{fl.area}}-{{fl.by}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}', + filter: 'H4sIAAAAAAAAA+2Y3W4aRxTHXyXaa1/s4nw1rxLlgkZIiZqmkp1GsiJLtjEEiAsYOTgE/NUY4zjGXmzHgaXAy+zMwlt02Dkfg1qvUGOlSuQ7fufMzJ5zhvmf2X1lOdaDh6+sXxIL1gPr8bP4/Lw1Yz2P/5pQKLINmUwpfhl/9nsiHPd8bE4djpKHY7MCa3EGrOWaGg9WAPQFmRYsxIC+W3K5KJfK4ASgRXOHfq+Gi2qgRRvrotPFRTXQPIqcAX0y8873svg8DegbNg/E2hH4AOh5udOghz4AI85go8txjoF89dccJwDF0jzw+7sYiwaaly6NKh9xngaat32kIsd5GsgXUU+5chyU19GngXzJnFx5jz4NlHu3IFJtzF0D+kZbJfmuDj4AWrP8epj1cE0NlF//JNj4LHotTJGYRhT2hx9oFzWQL58WhTP0aaBdHBTVHuAuauCq1uTWOlU1BPKtDoJPmAkAVaC3HnRrEwFPmBYfjUfqYxSfS8SNU1RzxZo37Snab4wqaQxBAxX6oCLbp1hoDVwqV3b6VKoQKPR+XlR7GLQG2qDzt+wDoDK+abEPgOZt1mXtGOdpoDh3PvI8AN70L+wD4FhcMxZ3Yt4frvAOcJ4GmrdaUJUSGTwrzJRJfRAUmkG2gskQ8wHelW8GahqdYWQakbr0u3isAMxNX0jE54xN71z43d6Umx6zY7fBFv407LNsnzXtMbbHTLvDdse022y3DbvzE9nVT8N+n+33Tfs9tt8z7XfZfte032H7HdPO+Tpmvg7n65j5OpyvY+brcL6Oma/D+aqf5jb9vMCbJPMl4RX+sUly83K0eQELvHiqhuLCvudJdwM8T56+mOd/2OmqyOC5nX/821xi/NRHM1bsutprhBZGdTQtyGL5UiQLExoNpmnatzi5FF4TfRqm7IpXdu+orhjVvaN0P6pL+Z091n0A7nwpWUFhBaDnvU1zpwUwegLXDGBaufiaHpFOqfHUwkKYRnv/a/+I0vro3nK1nkf2lrKr5Fds7dG9AflGi79/LSa7zfnaZr4252ub+dqcl23mZXNetpmXzXmpn/9nD5i9ph4wWsoGjSU8wBpMDVvdMTRMAQV2Mhi6GTxsGmheqSlzeOcF4IOfkm3UUwAWmnO/UyShCcEQhdEHjAWAfN6RONlGnwZ6XvXMeFvQQPM2duQFve1poHnttswUfK/Et/4JE9Xh4k/VFbAOGmiN1spweQ1na/gGeq00WKktBR2CobtKwVl3x0C+44YqLPo03Cjgj66AnK9t5vv9KuPta1LGKPWL+k4UJJvDPVRUAFozfxgUMWgA8hW3g2P6jqKBj/vV322Gxa1hHm/qALTm7p6o4i0bYJqbtKx5xrcgDfS8iC8hUW8NwlVlwk0GMH31c8OngOq53/f/wm9IAHxz3xGZKt3cQ+C/zploYjcBoDWrOVnBrgDAdWmJwSbVJYRvcQOv9nyPXpY0THNb/lfVvrnT3ij6j6Loi38DX/yg2lAYAAA=', + searchUrl: '/search/**----------fypage---.html', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + headers: { + 'User-Agent': 'MOBILE_UA' + }, + timeout: 5000,//网站的全局请求超时,默认是3000毫秒 + class_parse: 'ul.swiper-wrapper&&li;a&&Text;a&&href;.*/(.*?).html', + play_parse: true, + lazy: `js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?)0){sort=MY_FL.sort||"T";tags=Object.values(MY_FL).join(",");if(MY_CATE==="movie"){selected_categories={"类型":MY_FL.类型||"","地区":MY_FL.地区||""}}else{selected_categories={"类型":MY_FL.类型||"","形式":MY_FL.类型?MY_FL.类型+"地区":"","地区":MY_FL.地区||""}}}else{sort="T";tags="";if(MY_CATE==="movie"){selected_categories={"类型":"","地区":""}}else{selected_categories={"类型":"","形式":"","地区":""}}}let params={tags:tags,sort:sort,refresh:0,selected_categories:stringify(selected_categories),start:(MY_PAGE-1)*count,count:count};res=miniapp_request(path,params)}let result={page:MY_PAGE,pagecount:Math.ceil(res.total/count),limit:count,total:res.total};let items=[];if(/^rank_list|tv_hot|show_hot/.test(MY_CATE)){items=res["subject_collection_items"]}else if(MY_CATE==="interests"){res["interests"].forEach(function(it){items.push(it.subject)})}else{items=res.items}let lists=[];items.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"";let rat_str=rating||"暂无评分";let title=item.title;let honor=item.honor_infos||[];let honor_str=honor.map(function(it){return it.title}).join("|");let vod_obj={vod_name:title!=="未知电影"?title:"暂不支持展示",vod_pic:item.pic.normal,vod_remarks:rat_str+" "+honor_str};let vod_obj_d={url:item.type+"$"+item.id,title:title!=="未知电影"?title:"暂不支持展示",pic_url:item.pic.normal,desc:rat_str+" "+honor_str};lists.push(vod_obj);d.push(vod_obj_d)}});result.list=lists;return result}catch(e){print(e.message)}return{}}let res=cate_filter(d,douban);setResult2(res);', + 二级:'', + 搜索:'', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\351\205\267\345\256\242\345\275\261\350\247\206.js" "b/zyplayer/drpy_dzlive/drpy_js/\351\205\267\345\256\242\345\275\261\350\247\206.js" new file mode 100644 index 0000000..36a1f1d --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\351\205\267\345\256\242\345\275\261\350\247\206.js" @@ -0,0 +1,11 @@ +Object.assign(muban.首图2.二级, { + tabs: '.stui-pannel__head h3', +}); +var rule = { + 模板: '首图2', + title: '酷客影视', + host: 'https://www.kkeyys.com', + url: '/vodshow/fyclass--------fypage---.html', + searchUrl: '/vodsearch/**----------fypage---.html', + tab_exclude: '本周热门|最新更新', +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_js/\351\207\217\345\255\220\345\275\261\350\247\206[\350\265\204].js" "b/zyplayer/drpy_dzlive/drpy_js/\351\207\217\345\255\220\345\275\261\350\247\206[\350\265\204].js" new file mode 100644 index 0000000..9c986b5 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_js/\351\207\217\345\255\220\345\275\261\350\247\206[\350\265\204].js" @@ -0,0 +1,50 @@ +muban.mxone5.二级.desc = ';;;.video-info-actor:eq(1)&&Text;.video-info-actor:eq(0)&&Text'; +muban.mxone5.二级.tab_text = 'body--small&&Text'; +var rule= { + title:'量子影视[资]', + 模板:'mxone5', + host:'http://www.lzizy9.com', + // url:'/index.php/vod/show/id/fyclass/page/fypage.html', + url:'/index.php/vod/show/id/fyfilter.html', + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.cateId}}{{fl.area}}{{fl.by or "/by/time"}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}', + filter: 'H4sIAAAAAAAAA+2bW1MTSRTHv0ue3cpMggq+eb/rer9s+RDd1K61rlsl7FZRllUoJCZBSaAwkSWAKBBUcuEiQkLgy6Rnkm+xk3Rz+vQZyowLeymrH/n/Tk73nO7pnH9meOwzfYd+eOz7JdzrO+S7F+oJn/7Rt8/3MPRr2PnbXqywyUHn7z9CD34PtwIfOjKLzDf655uy84fpe7JPyIn5WjVrx58LckCSdJbFc5IcBGLnhtl6RZJOINbTlNWXlqRLfia2aPVHJDENOVA8pyI5Oyv2ulaOIxQAVNuYs1NRiQLyU/VCiVVfISTHarwdYMMJiTr2+57caUJRyweh7m5ZSj6zL5eS1Euo/lYmv9DUIqghQlMrqIYITV0yMhDX1BUiA3FNrTrJwjW1+mQuXINS5+fYiw9qiNBgLomiXSUhQkNXZI9WXFfU1CBk9rnrioQG083P1TbfkOlyDbJERxpj70kWrkGWyQ/ONZIsXPuKNbKeLdjpYRLCNQjpT1jP/iQhXIPSVZIsskZKxzXY0BMj1utZNURoMFD6eT1eJgNxDeqyWbBHP7HqIikNyBCYnKm/o7uGaxAyFGXJJRLCNdg1Wylnecmu4Zpcqaw1MUxXqqVByMCW/ZFcutCggNVhu5Ld6dIUgo+A0KNwCJ0A2RJ7UfZ6AszkGmPR7XGaifxCgtWaG7PWikqEkGSBS9b6ppqDS3BNm0NsvKpECAkWfPkVjRASLMDgIo0QEuTIzFrZBTUHl+Bapt7THEKSu+ozjRCSnGnJPdOSkuNliZXn1BxcghwDSafKLPZeTQMqXPPslp3M2/Ex9bJBlYfRG2twy/mwOiioEBdZrVXSahCX8HZ6EHr4k9xO9WK+Pt/ndTuNV5347QGaifxCQstII4QEm2VphkYICZYxU2UvMzRIqmi5XUFcQluGRggJbUxXBJfQlnFdM5dQ2VmhX43gEi57bzj0SJbdyqw2Miseyx4wAh3b6Ztp/C0B0SClQUwDlAYwNSk1MTUoNRA1uwg1uzDtpLQT04OUHsT0AKUHMN1P6X5Maa1MXCuT1srEtTJprUxcK5PWysS1MmmtTFwrg9bKwLUyaK0MXCuD1srAtTJorQxcK4PWysC1MmitDFwrg9bKwLUyaK0MXCuD1srAtTJorRxBOaPCPT1hdLuwfMYqvvR4uxyGW7GVxX8YyBFCjgA5SshRIMcIOQbkOCHHgZwg5ASQk4ScBHKKkFNAThNyGsgZQs4AOUvIWSDnCDkH5Dwh54FcIOQCkIuEXATyPSHfA7lEyCUglwm5DOQKIVeAXCXkKpBrhFwDcp2Q60BuEHIDyE1CbgK5RcgtILcJuQ3E+K6LsKaCb4G7vejbYmiElZOu7S+/RJp57vb6e+474WBHy2WrNIroz/d7uuUXdXGAxaKIdt/77VG4OYM7+3yBXZp5eRA47UGtnJMuFJ221kKu2SVKJI8e3oEiJM8s3tAhJA873g1KhL4FecOKkJwh7+4QkmNZnz6zmTRCcob2VF7qwc69s+zt3YwHD8ztFnu6yvqTOxkxQb7idwJWWGXlPAnh2te56na/E3hw1R5+J/Dg+Dw42dr6tMvxCU1a5og1ViSLwTWYy6uoy74LDZlC1wIIbefeXmRxN/e78YrRiBOvugcuefdXe+Em2/s8L36znYvz4DfTJcdisYlpNQ2o2nX9bdelHZN2TNoxacekHZN2TN+GYwru0jEhq8IdU2Le2vi47TsUj9NsuRQqjzZhqRSKHoU6lipZUqk8UoXZwTRo7JmvafTF7Vwf8SJcw630wJS7lXY0WILCVr0UU0OEBllG8laCPIIRmqxhxFojnb/QZJOzXFtPkelyDTWhjXdkukKDkPIHVpgkIVyDuYwvuZ+EcQ2yjE5ZK/TJKdfkyq5ZsWStPOJ6hqUQKOPKW8fpkDJyDTIuPqs/fUFyce1fsxt8v6rdN5fUu4Fahaak3hFqBJd0c66bc92c6+ZcN+e6OdfN+TfdnHfssjmXhwh/ecaubMimLYjeDWz1HiqlzztUKjPzzkalgT1rvz301h5e0LP78/Vp0sQLDQYamrdTUTIQ1yAkNWkv0BfRuCZ7w7YvxdVTE/Uh8hREaDDQm2k2Tp5ZCA0Gav9AwsqW3W/fcQ3m0v7lMQ8PbVjJKfYKmQvXcMjssjvE0WCNZjZrG+QdPqFBlqEpFhsnWbgmb7Yllif+R2gw0HjCGiPORWiyuotsK0Or29JQs/lPP9Zo+WnVZ3AJ3bZtHjh8wUXseB36IYD2GdpnaJ+hfYb2GYhon/Ft+4xgFzIa+l7U96K+F/87z2/s1vTLNqS+umyntjvVDvmFbBcLSJdf483/5JE6+gUgXawXyywyuI069Le3PjH0ifF/ODGe/AUmq8OFwzwAAA==', + filter_def:{ + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 3:{cateId:'3'}, + 4:{cateId:'4'}, + 39:{cateId:'39'}, + 40:{cateId:'40'} + }, + cate_exclude:'网址|演员', + lazy:`js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) { + input = { + parse: 1, url: rule.parse_url + input, + js: "$('.player-btn').click()", + parse_extra: '&is_pc=1&custom_regex=' + rule.is_video + }; + }), + double: true, + 推荐: '', + 一级: 'json:data;title;img;remark;url;desc', + 二级: $js.toString(() => { + VOD = {}; + log(input); + let ctid = input.match(/.*\/(\d+)/)[1]; + // log(ctid); + let detailUrl = 'https://mqtv.cc/libs/VodInfo.api.php?ctid=' + ctid; + log('detailUrl:' + detailUrl); + let html = request(detailUrl); + let json = JSON.parse(html); + // log(json); + VOD.vod_name = json.data.title; + VOD.vod_id = input; + VOD.vod_pic = json.data.img; + VOD.vod_year = json.data.year; + VOD.vod_area = json.data.area; + VOD.vod_remarks = json.data.remark; + VOD.vod_play_from = json.data.playinfo.map(it => it.cnsite).join('$$$'); + let playUrls = []; + json.data.playinfo.forEach((it) => { + let plist = it.player.map(it => it.no + '$' + it.url).join('#'); + playUrls.push(plist); + }); + VOD.vod_play_url = playUrls.join('$$$'); + }), + 搜索: 'json:data.vod_all[0].show;title;img;remark;url;desc', +} \ No newline at end of file diff --git a/zyplayer/drpy_dzlive/drpy_libs/drpy2.js b/zyplayer/drpy_dzlive/drpy_libs/drpy2.js new file mode 100644 index 0000000..65eb364 --- /dev/null +++ b/zyplayer/drpy_dzlive/drpy_libs/drpy2.js @@ -0,0 +1,3199 @@ +import cheerio from 'assets://js/lib/cheerio.min.js'; +import 'assets://js/lib/crypto-js.js'; +import './jsencrypt.js'; +import './node-rsa.js'; +import './pako.min.js'; +// import JSEncrypt from './jsencrypt.js'; // 会导致壳子崩溃的 +import 模板 from './模板.js' +import {gbkTool} from './gbk.js' + +// import cheerio from "https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/libs/cheerio.min.js"; +// import "https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/libs/crypto-js.js"; +// import 模板 from"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/js/模板.js"; +// import {gbkTool} from 'https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/libs/gbk.js' + +function init_test(){ + // console.log(typeof(CryptoJS)); + console.log("init_test_start"); + // print(模板); + // print(typeof(模板.getMubans)); + console.log("当前版本号:"+VERSION); + console.log('本地代理地址:'+getProxyUrl()); + console.log(RKEY); + + // rsa_demo_test(); + + // console.log('Uint8Array:'+typeof(Uint8Array)+' '+'Uint16Array:'+typeof(Uint16Array)); + // console.log('encodeURIComponent:'+typeof(encodeURIComponent)+' '+'decodeURIComponent:'+typeof(decodeURIComponent)); + // console.log('atob:'+typeof(atob)+' '+'btoa:'+typeof(btoa)); + // log('typeof (JSEncrypt):'+typeof (JSEncrypt)); + // log('typeof (pako):'+typeof (pako)); + // let b64_str = btoa('hello hipy'); + // let str = atob(b64_str); + // console.log(`btoa加密文本:${b64_str},atob解密文本:${str}`) + // let gzip_str = gzip('{"a":"电影","b":"电影","c":"电影","d":"电影","e":"电影","f":"电影"}'); + // let ungzip_str = ungzip(gzip_str); + // console.log(`gzip加密文本:${gzip_str},长度:${gzip_str.length},ungzip解密文本:${ungzip_str},长度:${ungzip_str.length}`); + // let a = {"1":[{"key":"类型","name":"类型","value":[{"n":"全部","v":""},{"n":"Netflix","v":"NETFLIX"},{"n":"剧情","v":"剧情"},{"n":"喜剧","v":"喜剧"},{"n":"动作","v":"动作"},{"n":"爱情","v":"爱情"},{"n":"恐怖","v":"恐怖"},{"n":"惊悚","v":"惊悚"},{"n":"犯罪","v":"犯罪"},{"n":"科幻","v":"科幻"},{"n":"悬疑","v":"悬疑"},{"n":"奇幻","v":"奇幻"},{"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":"丹麦"},{"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":"其他"}]},{"key":"年份","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"10年代","v":"2010_2019"},{"n":"00年代","v":"2000_2009"},{"n":"90年代","v":"1990_1999"},{"n":"80年代","v":"1980_1989"},{"n":"更早","v":"0_1979"}]},{"key":"排序","name":"排序","value":[{"n":"综合","v":""},{"n":"最新","v":"2"},{"n":"最热","v":"3"},{"n":"评分","v":"4"}]}],"2":[{"key":"类型","name":"类型","value":[{"n":"全部","v":""},{"n":"Netflix","v":"Netflix"},{"n":"剧情","v":"剧情"},{"n":"爱情","v":"爱情"},{"n":"喜剧","v":"喜剧"},{"n":"犯罪","v":"犯罪"},{"n":"悬疑","v":"悬疑"},{"n":"古装","v":"古装"},{"n":"动作","v":"动作"},{"n":"家庭","v":"家庭"},{"n":"惊悚","v":"惊悚"},{"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":"国语","v":"国语"},{"n":"粤语","v":"粤语"},{"n":"英语","v":"英语"},{"n":"日语","v":"日语"},{"n":"韩语","v":"韩语"},{"n":"法语","v":"法语"},{"n":"其他","v":"其他"}]},{"key":"年份","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"10年代","v":"2010_2019"},{"n":"00年代","v":"2000_2009"},{"n":"90年代","v":"1990_1999"},{"n":"80年代","v":"1980_1989"},{"n":"更早","v":"0_1979"}]},{"key":"排序","name":"排序","value":[{"n":"综合","v":""},{"n":"最新","v":"2"},{"n":"最热","v":"3"},{"n":"评分","v":"4"}]}],"3":[{"key":"类型","name":"类型","value":[{"n":"全部","v":""},{"n":"Netflix","v":"Netflix"},{"n":"动态漫画","v":"动态漫画"},{"n":"剧情","v":"剧情"},{"n":"动画","v":"动画"},{"n":"喜剧","v":"喜剧"},{"n":"冒险","v":"冒险"},{"n":"动作","v":"动作"},{"n":"奇幻","v":"奇幻"},{"n":"科幻","v":"科幻"},{"n":"儿童","v":"儿童"},{"n":"搞笑","v":"搞笑"},{"n":"爱情","v":"爱情"},{"n":"家庭","v":"家庭"},{"n":"短片","v":"短片"},{"n":"热血","v":"热血"},{"n":"益智","v":"益智"},{"n":"悬疑","v":"悬疑"},{"n":"经典","v":"经典"},{"n":"校园","v":"校园"},{"n":"Anime","v":"Anime"},{"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":"丹麦"},{"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":"其他"}]},{"key":"年份","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"10年代","v":"2010_2019"},{"n":"00年代","v":"2000_2009"},{"n":"90年代","v":"1990_1999"},{"n":"80年代","v":"1980_1989"},{"n":"更早","v":"0_1979"}]},{"key":"排序","name":"排序","value":[{"n":"综合","v":""},{"n":"最新","v":"2"},{"n":"最热","v":"3"},{"n":"评分","v":"4"}]}],"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":"Season","v":"Season"},{"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":"其他"}]},{"key":"语言","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"粤语","v":"粤语"},{"n":"英语","v":"英语"},{"n":"日语","v":"日语"},{"n":"韩语","v":"韩语"},{"n":"法语","v":"法语"},{"n":"其他","v":"其他"}]},{"key":"年份","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"10年代","v":"2010_2019"},{"n":"00年代","v":"2000_2009"},{"n":"90年代","v":"1990_1999"},{"n":"80年代","v":"1980_1989"},{"n":"更早","v":"0_1979"}]},{"key":"排序","name":"排序","value":[{"n":"综合","v":""},{"n":"最新","v":"2"},{"n":"最热","v":"3"},{"n":"评分","v":"4"}]}],"6":[{"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":"其它"}]},{"key":"排序","name":"排序","value":[{"n":"综合","v":""},{"n":"最新","v":"2"},{"n":"最热","v":"3"}]}]}; + // log(gzip(JSON.stringify(a))); + + console.log(JSON.stringify(rule)); + console.log("init_test_end"); + + + // log('typeof (JSEncrypt):'+typeof (JSEncrypt)); + // let publicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwEc7wBMtYKkxvrQNI3+ITBZwAkPkGvsv4TsAHFskKGZWz9eYl3scivhmlEfWHlEkdyb0m82CmB1qAgef+pD4cZu+Cdmm2e9lnExhLwm8cBgpkAen9QRNdjojZgxM0W+JcReH4W6pw+uFXiLRn4AIQkDftWGNLg6wlNS+39Z/RvP9zyATJLZ9AKDdHp62XMxEK1KZvWBuIg+Oa5UzgA9jy+2XyIqwhBtO8tPbUl21t2pvTzHoLUjSkPNm2LurcUk6+jQ2r6aiS2CN1NXIucPJU6mkuIQ821SjvkYPtIdRMntW4y2u4cyiqVEEQwlzWVMHh+/vfrWAQr9fgjDuYYtvPQIDAQAB'; + // let privateKey = 'MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDARzvAEy1gqTG+tA0jf4hMFnACQ+Qa+y/hOwAcWyQoZlbP15iXexyK+GaUR9YeUSR3JvSbzYKYHWoCB5/6kPhxm74J2abZ72WcTGEvCbxwGCmQB6f1BE12OiNmDEzRb4lxF4fhbqnD64VeItGfgAhCQN+1YY0uDrCU1L7f1n9G8/3PIBMktn0AoN0enrZczEQrUpm9YG4iD45rlTOAD2PL7ZfIirCEG07y09tSXbW3am9PMegtSNKQ82bYu6txSTr6NDavpqJLYI3U1ci5w8lTqaS4hDzbVKO+Rg+0h1Eye1bjLa7hzKKpUQRDCXNZUweH7+9+tYBCv1+CMO5hi289AgMBAAECggEBAIRbRJUWXmEwdq64kGbELlV6CIZ2p3mvOSlIjO34Cy7IK7AMz9xOgbpj/XDK9miOIJTouu7ZC7GcZdGZ4BUCYBMMS0fKjGFuurpZlXhkslNTPqEHtCUkXhIpOR7RDrwIlErGEOIsZC4aXQcM3tF1t7mroJLh4OY4dHMu82lv5NM4hhFMNvHzXVvrPXeTzw26gddHVG/ke0WUYOcB5j3cPp8xaVp7JV8bdxtGtkqIfBLY/dIczzJu/3F3cBpU2nNwt8uVUF/w/HKlr7j8FqqFHXWh182beU0n5AIdRyRJBrRUAEhdtsUnvJOVBDqzZa+9DJ5395F7V8KRlQptxETdhCECgYEA4x/2HM9fnVIhG6wTbEt1LhGTKYb/igMAHLqquEMfRsB44tobI8gVNwR3qJQY/nKXxcQemQV29PcdqpENCKyXUXGD8SI1UPg15rHFBI8CIqlCXfzJybdHjmzlhaA9I5lofIVh+5MW7WkvHZoRy7NeDMhHUuaiveuqC4OJ8n+dD2kCgYEA2LkmUVef3WkBBwUBRdkyoog3DMwR+/ubb0ncJVYy3ItYVJltQ4HqmrRiJc8xBAoFnG8rbiqDnmTnDR3WbuxU1G2hml09fqId+rQds2UfESswCXHU43A4f77m1XyA6PprBxpozVIcmK69N4rR9jOXflLWo3O+p2ipUbmNpId7+rUCgYBSpcbBJRT+AmzZzPwkZDD32p1ady114zGfQq3s7z/qVw+mPQezNZPCuXVxerK9pKVl6b/Ynwxyh5nb/3xms6c8k7oXfQM5u5ihof63cfKs+jqUSPCE3pTDVw0OWwjkc2Z6KW9GRHgLXEMw2mevYE3RCPArUpHV2nO+TNddzuIwQQKBgQDOZwdnUNygMfEYjlu3+jOPN8u2FGTMZ8SRKPbRWFb4VH27lKPLN2AIFuOivsEf56uQYRAry7GumMq0Y0ZmPg5Mglz2dvaqNBv5OLFQuW3tHAST+iWWtroYb+fISts7B8QG79AAO8OgZksvKrbslBYj6SEiaomZRsR7YQzVNXOOQQKBgQCovElZ50c8ZJ6m9D9fw3Nes7u9vshpyyac5tt4tZ7yfU4l5pWGrIUqCE703qZp4NAqEvlZUCJbj9kkysaj/2MfFb2b9jSvdNB+V/YW9Cwg+5TziYoOcQzN1z2u4p4goTAv0S+pTNSr3qWaTUI4TXUXQajif45Fexv+MrP5AAXQyw==' + // // let text = '你好'; + // let text = '[{"vod_name":"兔小贝原创儿歌","vod_pic":"https://resource-cdn.tuxiaobei.com/video-album/FnQ8ieJHgsbgCKWXNBg4uoOmKgG5.jpg","vod_remarks":"共229首","vod_content":"","vod_id":"/subject/17@@兔小贝原创儿歌@@https://resource-cdn.tuxiaobei.com/video-album/FnQ8ieJHgsbgCKWXNBg4uoOmKgG5.jpg"},{"vod_name":"英文儿歌","vod_pic":"https://resource-cdn.tuxiaobei.com/video-album/Fqjpx2H_-QaYNAYn2MekRuDpeyUv.jpg","vod_remarks":"共10首","vod_content":"","vod_id":"/subject/23@@英文儿歌@@https://resource-cdn.tuxiaobei.com/video-album/Fqjpx2H_-QaYNAYn2MekRuDpeyUv.jpg"}]'; + // let str = RSA.encode(text, publicKey); + // console.log("加密数据:" + str); + // let str1 = 'Wa2c/868VOm0PgpGG2s2aMrDbGOlJRdZXlSGswjFgywd3nZNB7ND8kVMdNB/OsNFoQXJXSJMvPaE73BH7rs8fz54JGdYQK+qTgfQRqQZvomCjbzseSR4bm4NOrtIOOslL3WqxlzOuU0M1P1eERmkLEVU2WSyc3RGtJro3b3MOWYCNdKMoZdncfOHJndkl4wm9V3GGc3uH98hs6OxLvBWgXoW9jZQ3n0vR2FtS2KYrPGuSuKGkxlt9Kw5TD6nri142NOimz05WK55Xe04YUQ1VZd51t0wzJGXolWgfzIQaK2zzhk5Zjlm+IQJxXqEWiJ2+O6TJ+lIttvsDSaUflcDXQ=='; + // let str2 = 'R86mW9DzBw05pxBSh9ECh1stXxINmnudgZBbzU/cz1EcFgrEgdk0Zk4ruAiJZB2fP5c7d3gMmN8+Dv19IfARWSzw85xCEjUhpdcMJ0jn6ZE5H+muadND9LzjeVisojqwYxot3YVdKof7HMhPFN8QR0jfzqhjmnGFTlY1jMXzJK0MSOLNRLDar480CdKNb/cxALC8+xKIlhM9E4B31t8J4rNMUWSCAr49lbZ3jx3PxieBpTQUdDJz96AttR93Pc+c51wrxh0Ch/Mt4Rs09HGMXwIpNV+CxsGwSGRQUlyJo2k3d0WqsVzpz6S8A4VGEMTRLGI3IjEt+eWt7wM3nAXarg=='; + // let str3 = 'D4eOsRqua+jYA5+ZOR9PLI2PExKjKfArQfv9/wGeG50bQSjWypShJPY6RQfO+rghyf0juzHIUSxqH91OxinhCFkONaF2Vod2QVyphyn9eh73dAcEFKIFFKGXoPCjbMWrr3p4d+hgVrHzrFeGqkRq8JFOvG2L5XDxVfWbV8KmUA0DKuz6QwWg7P4kesy+C7BbLALy5W/wfZchD3gnsBvx/pjFoe11VfAify9isLxg9a15jj52xr6lzQ9kge9C2JcV8yq85bFKaUpJWgobzz+BSIv3lVMU6vgcldmOrhkyiETpFGFGGF00DphGCEoK6uAyyNDh7+Jn8P17zf/DW1wV3A=='; + // let uncrypted = RSA.decode(str, privateKey); + // log('解密数据:'+uncrypted); + // uncrypted = RSA.decode(str1, privateKey); + // log('解密数据1:'+uncrypted); + // uncrypted = RSA.decode(str2, privateKey); + // log('解密数据2:'+uncrypted); + // uncrypted = RSA.decode(str3, privateKey); + // log('解密数据3:'+uncrypted); + + // log('rsax:'+typeof(rsax)); + // log('rsaX:'+typeof(rsaX)); + // let data = base64Encode('你好'); + // let publicKey = 'dzyyds'; + // console.log(typeof (RSA.encode)); + // let encryptBase64Data = RSA.encode(data,publicKey); + // log('encryptBase64Data:'+encryptBase64Data); + // let str = RSA.decode(data,publicKey); + // log('str:'+str); +} + +/** + * rsa加解密的全方位测试案例 + */ +function rsa_demo_test() { + let t1 = new Date().getTime(); + let pkcs1_public = ` +-----BEGIN RSA PUBLIC KEY----- +MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy +lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE= +-----END RSA PUBLIC KEY----- +`.trim(); + + let pkcs1_public_pem = ` +MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy +lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE= +`.trim(); + + let pkcs8_public = ` +-----BEGIN PUBLIC KEY----- +MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/ +nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ== +-----END PUBLIC KEY-----`.trim(); + + let pkcs8_public_pem = ` +MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/ +nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ== +`.trim(); + + let pkcs1_private = ` +-----BEGIN RSA PRIVATE KEY----- +MIIBOAIBAAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/nas61fIPGUUrkPenokm7 +ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQI/b6OV1z65UokQaMvSeRXt +0Yv6wiYtduQI9qpq5nzy/ytaqsbBfClNTi/HifKPKxlRouWFkc518EQI8LBxoarJ +AiEA4DaONMplV8PQNa3TKn2F+SDEvLOCjdL0kHKdN90Ti28CIQDDZnTBaHgZwZbA +hS7Bbf5yvwjWMhO6Y7l04/Qm7R+35QIgPuQuqXIoUSD080mp1N5WyRW++atksIF+ +5lGv9e6GP/MCICnj8y/rl6Pd7tXDN6zcSeqLrfdNsREKhB3dKOCXgW9JAiAFYtFS +EJNBXVRTK42SNsZ2hJ/9xLwOwnH2epT8Q43s3Q== +-----END RSA PRIVATE KEY----- +`.trim() + + let pkcs8_private = ` +-----BEGIN PRIVATE KEY----- +MIIBUgIBADANBgkqhkiG9w0BAQEFAASCATwwggE4AgEAAkEAqyNKUPxEUaSdzrtf +dFyXnRavOOpw2D+dqzrV8g8ZRSuQ96eiSbtkcLCsMpbEPcWNMWD6UWVGSjBHke3v +YJkTSwIDAQABAj9vo5XXPrlSiRBoy9J5Fe3Ri/rCJi125Aj2qmrmfPL/K1qqxsF8 +KU1OL8eJ8o8rGVGi5YWRznXwRAjwsHGhqskCIQDgNo40ymVXw9A1rdMqfYX5IMS8 +s4KN0vSQcp033ROLbwIhAMNmdMFoeBnBlsCFLsFt/nK/CNYyE7pjuXTj9CbtH7fl +AiA+5C6pcihRIPTzSanU3lbJFb75q2SwgX7mUa/17oY/8wIgKePzL+uXo93u1cM3 +rNxJ6out902xEQqEHd0o4JeBb0kCIAVi0VIQk0FdVFMrjZI2xnaEn/3EvA7CcfZ6 +lPxDjezd +-----END PRIVATE KEY----- +`.trim() + + let data = ` +NodeRsa +这是node-rsa 现在修改集成在drpy里使用`.trim(); + + let encryptedWithPublic = NODERSA.encryptRSAWithPublicKey(data, pkcs1_public, { + // PublicFormat: "pkcs1-public-pem", + outputEncoding: "base64", + options: {environment: "browser", encryptionScheme: 'pkcs1_oaep'}, + }); + console.log("公钥加密"); + console.log(encryptedWithPublic); + + + let decryptedWithPrivate = NODERSA.decryptRSAWithPrivateKey(encryptedWithPublic, pkcs1_private, { + // PublicFormat: "pkcs1-private", + // outEncoding: "hex" + options: {environment: "browser", encryptionScheme: 'pkcs1_oaep'}, + }); + console.log("私钥解密"); + console.log(decryptedWithPrivate); + + +// https://www.btool.cn/rsa-sign + let pkcs1_sha256_sign = NODERSA.sign("1", pkcs1_private, { + outputEncoding: "base64", + options: {environment: "browser", encryptionScheme: 'pkcs1', signingScheme: "pkcs1-sha256"}, + }); + console.log("pkcs1_sha256_sign"); + console.log(pkcs1_sha256_sign); + + let pkcs1_sha256_sign_verify = NODERSA.verify("1", "Oulx2QrgeipKYBtqEDqFb2s/+ndk2cGQxO4CkhU7iBM1vyNmmvqubpsmeoUuN3waGrYZLknSEdwBkfv0tUMpFQ==", pkcs1_private, { + options: {environment: "browser", encryptionScheme: 'pkcs1', signingScheme: "pkcs1-sha256"}, + }); + console.log("pkcs1_sha256_sign_verify"); + console.log(pkcs1_sha256_sign_verify); + + let pkcs1_oaep_sha256 = NODERSA.encryptRSAWithPublicKey(data, `-----BEGIN RSA PUBLIC KEY----- +MIIBCgKCAQEA5KOq1gRNyllLNWKQy8sGpZE3Q1ULLSmzZw+eaAhj9lvqn7IsT1du +SYn08FfoOA2qMwtz+1O2l1mgzNoSVCyVpVabnTG+C9XKeZXAnJHd8aYA7l7Sxhdm +kte+iymYZ0ZBPzijo8938iugtVvqi9UgDmnY3u/NlQDqiL5BGqSxSTd/Sgmy3zD8 +PYzEa3wD9vehQ5fZZ45vKIq8GNVh2Z8+IGO85FF1OsN7+b2yGJa/FmDDNn0+HP+m +PfI+kYBqEVpo0Ztbc3UdxgFwGC8O1n8AQyriwHnSOtIiuBH62J/7qyC/3LEAApRb +Dd9YszqzmODjQUddZKHmvc638VW+azc0EwIDAQAB +-----END RSA PUBLIC KEY----- +`, { + outputEncoding: "base64", + options: { + environment: "browser", encryptionScheme: { + scheme: "pkcs1_oaep", + hash: "sha256", + }, + } + // options: { environment: "browser", encryptionScheme: 'pkcs1' }, + }); + console.log("pkcs1_oaep_sha256"); + console.log(pkcs1_oaep_sha256); + + decryptedWithPrivate = NODERSA.decryptRSAWithPrivateKey("kSZesAAyYh2hdsQnYMdGqb6gKAzTauBKouvBzWcc4+F8RvGd0nwO6mVkUMVilPgUuNxjEauHayHiY8gI3Py45UI3+km0rSGyHrS6dHiHgCkMejXHieglYzAB0IxX3Jkm4z/66bdB/D+GFy0oct5fGCMI1UHPjEAYOsazJDa8lBFNbjiWFeb/qiZtIx3vGM7KYPAZzyRf/zPbbQ8zy9xOmRuOl5nnIxgo0Okp3KO/RIPO4GZOSBA8f2lx1UtNwwrXAMpcNavtoqHVcjJ/9lcotXYQFrn5b299pSIRf2gVm8ZJ31SK6Z8cc14nKtvgnmsgClDzIXJ1o1RcDK+knVAySg==", `-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA5KOq1gRNyllLNWKQy8sGpZE3Q1ULLSmzZw+eaAhj9lvqn7Is +T1duSYn08FfoOA2qMwtz+1O2l1mgzNoSVCyVpVabnTG+C9XKeZXAnJHd8aYA7l7S +xhdmkte+iymYZ0ZBPzijo8938iugtVvqi9UgDmnY3u/NlQDqiL5BGqSxSTd/Sgmy +3zD8PYzEa3wD9vehQ5fZZ45vKIq8GNVh2Z8+IGO85FF1OsN7+b2yGJa/FmDDNn0+ +HP+mPfI+kYBqEVpo0Ztbc3UdxgFwGC8O1n8AQyriwHnSOtIiuBH62J/7qyC/3LEA +ApRbDd9YszqzmODjQUddZKHmvc638VW+azc0EwIDAQABAoIBADZ/QGgUzInvsLp/ +zO2WbfYm39o/uhNAvk9RbLt1TIZbMFhyOpeKynHi3Swwd9xsfWX/U9zS/lGi/m31 +iKrhmaW4OA1G3vqpMcK7TBbFufYwUEaA+ZJX344euH8pIfdzyneMQ4z3Far2dS7l +QsmjuilVV2kEFadveXewiYoVOWCu00w6bN8wy2SIHlQn+kIL6HQhWz12iKKflIKu +eGRdzLHsKmBt6WbY1Wuhx7HU0fAKdlBDPxCHNlI+kybUYE9o5C2vJiaVM5wqJBgZ +8Dz8kt1QbLJ910JoLXkLVQ8uC8NJKQwFtqQjTGPnEq0+wbgz6Ij599rKZkwW/xq9 +l6KoUiECgYEA6Ah42tVdkNW047f03xVYXFH96RgorHRS36mR8Y+ONUq1fwKidovC +WjwVujt4OPf3l1W6iyn/F6cu/bsmvPrSc3HTN0B1V31QK4OjgetxQ2PSbTldH02J +NPzkt+v+cPxXpx/P5mgt7Weefw5txU547KubGrHUV5rBKFtIx9pj16MCgYEA/EF0 +o19+D24DZAPwlDS5VbEd7FStnwY4oQ5PqbuNOSbSJLMWU0AqzXcRokp8UTyCZ0X3 +ATkS1REq97kShCuR+npTR6a6DlY7sdpPI1SMLNajgB2tkx0EOzX+PfNIbHUd4jpJ +I0ZMAHv/OOtkzQHDaeTWBTrzsWm6/nTiykfduNECgYEA46AMD4HpPECqKAs66e5i +tI6q7JSKskObWVdcmQEfnSAhVOwcvPb2Ptda6UuV8S0xcwDi88rLOUUFUFzc79+P +vTkY38cYVi/VChsluDpk7ptqv0PbGu5Rf+3n4pZdEjI7OvR2W64wAAn67uIUxc7p +yiO/ET0K9rYWb6S9jXGtKMkCgYEA2kPAqoO7zZoBMQ7/oR0lp/HC1HRIbiqx4RlC +8Lgpb+QZPEwA6zPAVVvLVENi4d+bbcRp/xLlKpraNNJcJSSWAMbLPFoU7sbKjA87 +HnTPfRSTEA2d3Ibk3F7Rh8TzS3Ti0JZiJjVzGZAwu41iAMifzwaD8K6boUy80eNN +QH2CaaECgYBUsLYvC/MiYg3w+LGOONuQongoVUXjGqnw2bjVa9RK7lwRdXPUqJ51 +MpVO98IkoLvGSI/0sGNP3GKNhC+eMGjJAVwFyEuOn+JsmMv9Y9uStIVi5tIHIhKw +m7mp8il0kaftHdSxTbspG3tZ2fjIiFIZkLEOmRpd7ogWumgOajzUdA== +-----END RSA PRIVATE KEY-----`, { + // PublicFormat: "pkcs1-private", + // outEncoding: "hex" + options: {environment: "browser", encryptionScheme: 'pkcs1_oaep'}, + }); + console.log('decryptedWithPrivate'); + console.log(decryptedWithPrivate); + + + (() => { + let key = new NODERSA.NodeRSA({b: 1024}); + key.setOptions({encryptionScheme: 'pkcs1'}) + let text = `你好drpy node-ras`; + let encrypted = key.encrypt(text, 'base64'); + console.log('encrypted: ', encrypted); + const decrypted = key.decrypt(encrypted, 'utf8'); + console.log('decrypted: ', decrypted); + })(); + let t2 = new Date().getTime(); + console.log('rsa_demo_test 测试耗时:'+(t2-t1)+'毫秒'); +} + + +/** + * 执行预处理代码 + */ +function pre(){ + if(typeof(rule.预处理) === 'string' && rule.预处理 && rule.预处理.trim()){ + let code = rule.预处理.trim(); + console.log("执行预处理代码:"+code); + if(code.startsWith('js:')){ + code = code.replace('js:',''); + } + try { + // code里可以进行get 或者 post请求cookie并改变rule.headers 里的cookie + // 直接操作 rule_fetch_params 这个变量 .headers.Cookie + eval(code); + }catch (e) { + console.log('预处理执行失败:'+e.message); + } + } +} + +let rule = {}; +let vercode = typeof(pdfl) ==='function'?'drpy2.1':'drpy2'; +const VERSION = vercode+' 3.9.50beta12 202400514'; +/** 已知问题记录 + * 1.影魔的jinjia2引擎不支持 {{fl}}对象直接渲染 (有能力解决的话尽量解决下,支持对象直接渲染字符串转义,如果加了|safe就不转义)[影魔牛逼,最新的文件发现这问题已经解决了] + * Array.prototype.append = Array.prototype.push; 这种js执行后有毛病,for in 循环列表会把属性给打印出来 (这个大毛病需要重点排除一下) + * 2.import es6py.js但是里面的函数没有被装载进来.比如drpy规则报错setResult2 is undefiend(合并文件了可以不管了) + * 3.无法重复导入cheerio(怎么解决drpy和parseTag里都需要导入cheerio的问题) 无法在副文件导入cheerio (现在是全部放在drpy一个文件里了,凑合解决?) + * 4.有个错误不知道哪儿来的 executeScript: com.quickjs.JSObject$Undefined cannot be cast to java.lang.String 在 点击选集播放打印init_test_end后面打印(貌似不影响使用) + * 5.需要实现 stringify 函数,比起JSON.strifngify函数,它会原封不动保留中文不会编码unicode + * 6.base64Encode,base64Decode,md5函数还没有实现 (抄影魔代码实现了) + * 7.eval(getCryptoJS());还没有实现 (可以空实现了,以后遇到能忽略) + * done: jsp:{pdfa,pdfh,pd},json:{pdfa,pdfh,pd},jq:{pdfa,pdfh,pd} + * 8.req函数不支持传递字符串的data参数 {'content-type':'text/plain'} 类型数据,因此无法直接调用alist的ocr接口 + * * 电脑看日志调试 + adb tcpip 5555 + adb connect 192.168.10.192 + adb devices -l + adb logcat -c + adb logcat | grep -i QuickJS + adb logcat -c -b events + adb logcat -c -b main -b events -b radio -b system + adb logcat > 2.log DRPY:E | grep -i QuickJS + * **/ + + +/*** 以下是内置变量和解析方法 **/ +const MOBILE_UA = 'Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36'; +const PC_UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'; +const UA = 'Mozilla/5.0'; +const UC_UA = 'Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36'; +const IOS_UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'; +const RULE_CK = 'cookie'; // 源cookie的key值 +// const KEY = typeof(key)!=='undefined'&&key?key:'drpy_' + (rule.title || rule.host); // 源的唯一标识 +const CATE_EXCLUDE = '首页|留言|APP|下载|资讯|新闻|动态'; +const TAB_EXCLUDE = '猜你|喜欢|下载|剧情|热播'; +const OCR_RETRY = 3;//ocr验证重试次数 +// const OCR_API = 'http://dm.mudery.com:10000';//ocr在线识别接口 +// const OCR_API = 'http://192.168.3.239:5705/parse/ocr';//ocr在线识别接口 +// const OCR_API = 'http://cms.nokia.press/parse/ocr';//ocr在线识别接口 +// const OCR_API = 'http://cms.nokia.press:5707/parse/ocr';//ocr在线识别接口 +const OCR_API = 'http://drpy.nokia.press:8028/ocr/drpy/text';//ocr在线识别接口 +if(typeof(MY_URL)==='undefined'){ + var MY_URL; // 全局注入变量,pd函数需要 +} +var HOST; +var RKEY; // 源的唯一标识 +var fetch; +var print; +var log; +var rule_fetch_params; +var fetch_params; // 每个位置单独的 +var oheaders; +// var play_url; // 二级详情页注入变量,为了适配js模式0 (不在这里定义了,直接二级里定义了个空字符串) +var _pdfh; +var _pdfa; +var _pd; +// const DOM_CHECK_ATTR = ['url', 'src', 'href', 'data-original', 'data-src']; +const DOM_CHECK_ATTR = /(url|src|href|-original|-src|-play|-url|style)$/; +// 过滤特殊链接,不走urlJoin +const SPECIAL_URL = /^(ftp|magnet|thunder|ws):/; +const NOADD_INDEX = /:eq|:lt|:gt|:first|:last|^body$|^#/; // 不自动加eq下标索引 +const URLJOIN_ATTR = /(url|src|href|-original|-src|-play|-url|style)$/; // 需要自动urljoin的属性 +const SELECT_REGEX = /:eq|:lt|:gt|#/g; +const SELECT_REGEX_A = /:eq|:lt|:gt/g; + +// 增加$js工具,支持$js.toString(()=>{}); +const $js = { + toString(func) { + let strfun = func.toString(); + return strfun.replace(/^\(\)(\s+)?=>(\s+)?\{/, "js:").replace(/\}$/,''); + } +}; + +function window_b64(){ +let b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +let base64DecodeChars = new Array(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 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, -1, -1, -1, -1, -1); +function btoa(str) { + var out, i, len; + var c1, c2, c3; + len = str.length; + i = 0; + out = ""; + while (i < len) { + c1 = str.charCodeAt(i++) & 0xff; + if (i == len) { + out += b64map.charAt(c1 >> 2); + out += b64map.charAt((c1 & 0x3) << 4); + out += "=="; + break; + } + c2 = str.charCodeAt(i++); + if (i == len) { + out += b64map.charAt(c1 >> 2); + out += b64map.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); + out += b64map.charAt((c2 & 0xF) << 2); + out += "="; + break; + } + c3 = str.charCodeAt(i++); + out += b64map.charAt(c1 >> 2); + out += b64map.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); + out += b64map.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6)); + out += b64map.charAt(c3 & 0x3F); + } + return out; +} + +function atob(str) { + var c1, c2, c3, c4; + var i, len, out; + len = str.length; + i = 0; + out = ""; + while (i < len) { + do { + c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff]; + } while (i < len && c1 == -1); + if (c1 == -1) break; + do { + c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff]; + } while (i < len && c2 == -1); + if (c2 == -1) break; + out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4)); + do { + c3 = str.charCodeAt(i++) & 0xff; + if (c3 == 61) return out; + c3 = base64DecodeChars[c3]; + } while (i < len && c3 == -1); + if (c3 == -1) break; + out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2)); + do { + c4 = str.charCodeAt(i++) & 0xff; + if (c4 == 61) return out; + c4 = base64DecodeChars[c4]; + } while (i < len && c4 == -1); + if (c4 == -1) break; + out += String.fromCharCode(((c3 & 0x03) << 6) | c4); + } + return out; +} + return { + atob, + btoa + } +} +/** + es6py扩展 + */ +if(typeof atob != 'function' || typeof btoa!='function'){ + var {atob,btoa} = window_b64(); +} + +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; + }; +} +if (!String.prototype.includes) { + String.prototype.includes = function (search, start) { + if (typeof start !== 'number') { + start = 0; + } + + if (start + search.length > this.length) { + return false; + } else { + return this.indexOf(search, start) !== -1; + } + }; +} + +if (!Array.prototype.includes) { + Object.defineProperty(Array.prototype, 'includes', { + value: function (searchElement, fromIndex) { + + if (this == null) {//this是空或者未定义,抛出错误 + throw new TypeError('"this" is null or not defined'); + } + + var o = Object(this);//将this转变成对象 + var len = o.length >>> 0;//无符号右移0位,获取对象length属性,如果未定义就会变成0 + + if (len === 0) {//length为0直接返回false未找到目标值 + return false; + } + + var n = fromIndex | 0;//查找起始索引 + var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);//计算正确起始索引,因为有可能是负值 + + while (k < len) {//从起始索引处开始循环 + if (o[k] === searchElement) {//如果某一位置与寻找目标相等,返回true,找到了 + return true; + } + k++; + } + return false;//未找到,返回false + } + }); +} +if (typeof String.prototype.startsWith != 'function') { + String.prototype.startsWith = function (prefix){ + return this.slice(0, prefix.length) === prefix; + }; +} +if (typeof String.prototype.endsWith != 'function') { + String.prototype.endsWith = function(suffix) { + return this.indexOf(suffix, this.length - suffix.length) !== -1; + }; +} +Object.prototype.myValues=function(obj){ + if(obj ==null) { + throw new TypeError("Cannot convert undefined or null to object"); + } + var res=[] + for(var k in obj){ + if(obj.hasOwnProperty(k)){//需判断是否是本身的属性 + res.push(obj[k]); + } + } + return res; +} +if (typeof Object.prototype.values != 'function') { + Object.prototype.values=function(obj){ + if(obj ==null) { + throw new TypeError("Cannot convert undefined or null to object"); + } + var res=[] + for(var k in obj){ + if(obj.hasOwnProperty(k)){//需判断是否是本身的属性 + res.push(obj[k]); + } + } + return res; + } +} +if (typeof Array.prototype.join != 'function') { + Array.prototype.join = function (emoji) { + // emoji = emoji||','; + emoji = emoji||''; + let self = this; + let str = ""; + let i = 0; + if (!Array.isArray(self)) {throw String(self)+'is not Array'} + if(self.length===0){return ''} + if (self.length === 1){return String(self[0])} + i = 1; + str = this[0]; + for (; i < self.length; i++) { + str += String(emoji)+String(self[i]); + } + return str; + }; +} +if (typeof Array.prototype.toReversed != 'function') { + Array.prototype.toReversed = function () { + const clonedList = this.slice(); + // 倒序新数组 + const reversedList = clonedList.reverse(); + return reversedList; + }; +} + +String.prototype.rstrip = function (chars) { + let regex = new RegExp(chars + "$"); + return this.replace(regex, ""); +}; + +Array.prototype.append = Array.prototype.push; +String.prototype.strip = String.prototype.trim; +function 是否正版(vipUrl){ + let flag = new RegExp('qq\.com|iqiyi\.com|youku\.com|mgtv\.com|bilibili\.com|sohu\.com|ixigua\.com|pptv\.com|miguvideo\.com|le\.com|1905\.com|fun\.tv'); + return flag.test(vipUrl); +} +function urlDeal(vipUrl){ + if(!vipUrl){ + return '' + } + if(!是否正版(vipUrl)){ + return vipUrl + } + if(!/miguvideo/.test(vipUrl)){ + vipUrl=vipUrl.split('#')[0].split('?')[0]; + } + return vipUrl +} +function setResult(d){ + if(!Array.isArray(d)){ + return [] + } + VODS = []; + // print(d); + d.forEach(function (it){ + let obj = { + vod_id:it.url||'', + vod_name: it.title||'', + vod_remarks: it.desc||'', + vod_content: it.content||'', + vod_pic: it.pic_url||it.img||'', + }; + let keys = Object.keys(it); + if(keys.includes('tname')){ + obj.type_name = it.tname||''; + } + if(keys.includes('tid')){ + obj.type_id = it.tid||''; + } + if(keys.includes('year')){ + obj.vod_year = it.year||''; + } + if(keys.includes('actor')){ + obj.vod_actor = it.actor||''; + } + if(keys.includes('director')){ + obj.vod_director = it.director||''; + } + if(keys.includes('area')){ + obj.vod_area = it.area||''; + } + VODS.push(obj); + }); + return VODS +} +function setResult2(res){ + VODS = res.list||[]; + return VODS +} +function setHomeResult(res){ + if(!res||typeof(res)!=='object'){ + return [] + } + return setResult(res.list); +} +// 猫了个咪 +function rc(js) { + if (js === 'maomi_aes.js') { + var a = CryptoJS.enc.Utf8.parse("625222f9149e961d"); + var t = CryptoJS.enc.Utf8.parse("5efdtf6060e2o330"); + return { + De: function (word) { + word = CryptoJS.enc.Hex.parse(word) + return CryptoJS.AES.decrypt(CryptoJS.enc.Base64.stringify(word), a, { + iv: t, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }).toString(CryptoJS.enc.Utf8) + }, + En: function (word) { + // print(a); + // print(word); + var Encrypted = CryptoJS.AES.encrypt(word, a, { + iv: t, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }); + return Encrypted.ciphertext.toString(); + } + }; + } + return {}; +} + +// 千万不要用for in 推荐 forEach (for in 会打乱顺序) +//猫函数 +function maoss(jxurl, ref, key) { + fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); + eval(getCryptoJS()); + try { + var getVideoInfo = function (text) { + return CryptoJS.AES.decrypt(text, key, {iv: iv, padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8); + }; + var token_key = key == undefined ? 'dvyYRQlnPRCMdQSe' : key; + if (ref) { + var html = request(jxurl, { + headers: { + 'Referer': ref + } + }); + } else { + var html = request(jxurl); + } + // print(html); + if (html.indexOf('&btwaf=') != -1) { + html = request(jxurl + '&btwaf' + html.match(/&btwaf(.*?)"/)[1], { + headers: { + 'Referer': ref + } + }) + } + var token_iv = html.split('_token = "')[1].split('"')[0]; + var key = CryptoJS.enc.Utf8.parse(token_key); + var iv = CryptoJS.enc.Utf8.parse(token_iv); + // log("iv:"+iv); + // log(html); + // print(key); + // print(iv); + eval(html.match(/var config = {[\s\S]*?}/)[0] + ''); + // config.url = config.url.replace(/,/g,''); + // print(config.url); + if (!config.url.startsWith('http')) { + //config.url = decodeURIComponent(AES(config.url, key, iv)); + config.url = CryptoJS.AES.decrypt(config.url, key, { + iv: iv, + padding: CryptoJS.pad.Pkcs7 + }).toString(CryptoJS.enc.Utf8) + } + return config.url; + } catch (e) { + return ''; + } +} + +function urlencode (str) { + str = (str + '').toString(); + return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28'). + replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+'); +} + +function base64Encode(text){ + return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(text)); + // return text +} + +function base64Decode(text){ + return CryptoJS.enc.Utf8.stringify(CryptoJS.enc.Base64.parse(text)); + // return text +} + +function md5(text) { + return CryptoJS.MD5(text).toString(); +} + +function uint8ArrayToBase64(uint8Array) { + let binaryString = String.fromCharCode.apply(null, Array.from(uint8Array)); + return btoa(binaryString); +} + +function Utf8ArrayToStr(array) { + var out, i, len, c; + var char2, char3; + out = ""; + len = array.length; + i = 0; + while (i < len) { + c = array[i++]; + switch (c >> 4) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + out += String.fromCharCode(c); + break; + case 12: + case 13: + char2 = array[i++]; + out += String.fromCharCode(((c & 0x1f) << 6) | (char2 & 0x3f)); + break; + case 14: + char2 = array[i++]; + char3 = array[i++]; + out += String.fromCharCode( + ((c & 0x0f) << 12) | ((char2 & 0x3f) << 6) | ((char3 & 0x3f) << 0) + ); + break; + } + } + return out; +} + +/** + * gzip压缩base64|压缩率80%+ + * @param str + * @returns {string} + */ +function gzip(str) { + let arr = pako.gzip(str, { + to: 'string' + }); + return uint8ArrayToBase64(arr) +} + +/** + * gzip解压base64数据 + * @param b64Data + * @returns {string} + */ +function ungzip(b64Data) { + let strData = atob(b64Data); + const charData = strData.split('').map(function(x) { + return x.charCodeAt(0); + }); + const binData = new Uint8Array(charData); + const data = pako.inflate(binData); + return Utf8ArrayToStr(data); +} + +/** + * 字符串按指定编码 + * @param input + * @param encoding + * @returns {*} + */ +function encodeStr(input,encoding){ + encoding = encoding||'gbk'; + if(encoding.startsWith('gb')){ + const strTool = gbkTool(); + input = strTool.encode(input); + } + return input +} + +/** + * 字符串指定解码 + * @param input + * @param encoding + * @returns {*} + */ +function decodeStr(input,encoding){ + encoding = encoding||'gbk'; + if(encoding.startsWith('gb')){ + const strTool = gbkTool(); + input = strTool.decode(input); + } + return input +} + +function getCryptoJS(){ + // return request('https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/libs/crypto-hiker.js'); + return 'console.log("CryptoJS已装载");' +} + +// 封装的RSA加解密类 +const RSA = { + decode: function (data, key, option) { + option = option || {}; + if (typeof (JSEncrypt) === 'function') { + let chunkSize = option.chunkSize || 117; // 默认分段长度为117 + let privateKey = this.getPrivateKey(key); // 获取私钥 + const decryptor = new JSEncrypt(); //创建解密对象实例 + decryptor.setPrivateKey(privateKey); //设置秘钥 + let uncrypted = ''; + // uncrypted = decryptor.decrypt(data); + uncrypted = decryptor.decryptUnicodeLong(data); + return uncrypted; + } else { + return false + } + }, + encode: function (data, key, option) { + option = option || {}; + if (typeof (JSEncrypt) === 'function') { + let chunkSize = option.chunkSize || 117; // 默认分段长度为117 + let publicKey = this.getPublicKey(key); // 获取公钥 + const encryptor = new JSEncrypt(); + encryptor.setPublicKey(publicKey); // 设置公钥 + let encrypted = ''; // 加密结果 + // const textLen = data.length; // 待加密文本长度 + // let offset = 0; // 分段偏移量 + // // 分段加密 + // while (offset < textLen) { + // let chunk = data.slice(offset, chunkSize); // 提取分段数据 + // let enc = encryptor.encrypt(chunk); // 加密分段数据 + // encrypted += enc; // 连接加密结果 + // offset += chunkSize; // 更新偏移量 + // } + encrypted = encryptor.encryptUnicodeLong(data); + return encrypted + } else { + return false + } + }, + fixKey(key, prefix, endfix) { + if (!key.includes(prefix)) { + key = prefix + key; + } + if (!key.includes(endfix)) { + key += endfix + } + return key + }, + getPrivateKey(key) { + let prefix = '-----BEGIN RSA PRIVATE KEY-----'; + let endfix = '-----END RSA PRIVATE KEY-----'; + return this.fixKey(key, prefix, endfix); + }, + getPublicKey(key) { + let prefix = '-----BEGIN PUBLIC KEY-----'; + let endfix = '-----END PUBLIC KEY-----'; + return this.fixKey(key, prefix, endfix); + } +}; + +/** + * 获取壳子返回的代理地址 + * @returns {string|*} + */ +function getProxyUrl(){ + if(typeof(getProxy)==='function'){//判断壳子里有getProxy函数就执行取返回结果。否则取默认的本地 + return getProxy(true) + }else{ + return 'http://127.0.0.1:9978/proxy?do=js' + } +} + +/** + * 根据正则处理原始m3u8里的广告ts片段,自动修复相对链接 + * @param m3u8_text m3u8原始文本,里面是最末级的只含ts片段的。不支持嵌套m3u8链接 + * @param m3u8_url m3u8原始地址 + * @param ad_remove 正则表达式如: reg:/video/adjump(.*?)ts + * @returns {string|DocumentFragment|*|string} + */ +function fixAdM3u8(m3u8_text, m3u8_url, ad_remove) { + if ((!m3u8_text && !m3u8_url) || (!m3u8_text && m3u8_url && !m3u8_url.startsWith('http'))) { + return '' + } + if (!m3u8_text) { + log('m3u8_url:' + m3u8_url); + m3u8_text = request(m3u8_url); + } + log('len(m3u8_text):' + m3u8_text.length); + if (!ad_remove) { + return m3u8_text + } + if (ad_remove.startsWith('reg:')) { + ad_remove = ad_remove.slice(4) + } else if (ad_remove.startsWith('js:')) { + ad_remove = ad_remove.slice(3) + } + let m3u8_start = m3u8_text.slice(0, m3u8_text.indexOf('#EXTINF')).trim(); + let m3u8_body = m3u8_text.slice(m3u8_text.indexOf('#EXTINF'), m3u8_text.indexOf('#EXT-X-ENDLIST')).trim(); + let m3u8_end = m3u8_text.slice(m3u8_text.indexOf('#EXT-X-ENDLIST')).trim(); + let murls = []; + let m3_body_list = m3u8_body.split('\n'); + let m3_len = m3_body_list.length; + let i = 0; + while (i < m3_len) { + let mi = m3_body_list[i]; + let mi_1 = m3_body_list[i + 1]; + if (mi.startsWith('#EXTINF')) { + murls.push([mi, mi_1].join('&')); + i += 2 + } else if (mi.startsWith('#EXT-X-DISCONTINUITY')) { + let mi_2 = m3_body_list[i + 2]; + murls.push([mi, mi_1, mi_2].join('&')); + i += 3 + } else { + break; + } + } + let new_m3u8_body = []; + for (let murl of murls) { + if (ad_remove && new RegExp(ad_remove).test(murl)) { + + } else { + let murl_list = murl.split('&'); + if (!murl_list[murl_list.length - 1].startsWith('http') && m3u8_url.startsWith('http')) { + murl_list[murl_list.length - 1] = urljoin(m3u8_url, murl_list[murl_list.length - 1]); + } + murl_list.forEach((it) => { + new_m3u8_body.push(it); + }); + } + + } + new_m3u8_body = new_m3u8_body.join('\n').trim(); + m3u8_text = [m3u8_start, new_m3u8_body, m3u8_end].join('\n').trim(); + return m3u8_text +} + +/** + * 智能对比去除广告。支持嵌套m3u8。只需要传入播放地址 + * @param m3u8_url m3u8播放地址 + * @param headers 自定义访问m3u8的请求头,可以不传 + * @returns {string} + */ +function fixAdM3u8Ai(m3u8_url,headers) { + let ts = new Date().getTime(); + let option = headers ? {headers:headers}:{}; + + function b(s1, s2) { + let i = 0; + while (i < s1.length) { + if (s1[i] !== s2[i]) { + break + } + i++ + } + return i; + } + + function reverseString(str) { + return str.split('').reverse().join(''); + } + + //log('播放的地址:' + m3u8_url); + let m3u8 = request(m3u8_url, option); + //log('m3u8处理前:' + m3u8); + m3u8 = m3u8.trim().split('\n').map(it => it.startsWith('#') ? it : urljoin(m3u8_url, it)).join('\n'); + //log('m3u8处理后:============:' + m3u8); + // 获取嵌套m3u8地址 + m3u8=m3u8.replace(/\n\n/ig,'\n');//删除多余的换行符 + let last_url= m3u8.split('\n').slice(-1)[0]; + if (last_url.length<5){ + last_url= m3u8.split('\n').slice(-2)[0]; + } + + if (last_url.includes('.m3u8') && last_url !== m3u8_url) { + m3u8_url = urljoin2(m3u8_url,last_url); + log('嵌套的m3u8_url:' + m3u8_url); + m3u8 = request(m3u8_url, option); + } + //log('----处理有广告的地址----'); + let s = m3u8.trim().split('\n').filter(it => it.trim()).join('\n'); + let ss = s.split('\n') + //找出第一条播放地址 + let firststr = ss.find(x => !x.startsWith('#')); + let maxl = 0;//最大相同字符 + let firststrlen = firststr.length; + //log('字符串长度:' + firststrlen); + let ml = Math.round(ss.length / 2).toString().length;//取数据的长度的位数 + //log('数据条数的长度:' + ml); + //找出最后一条播放地址 + let maxc=0; + let laststr = ss.toReversed().find((x) => { + if (!x.startsWith('#')) { + let k = b(reverseString(firststr), reverseString(x)); + maxl = b(firststr, x); + maxc++; + if (firststrlen - maxl <= ml + k || maxc>10) { + return true + } + } + return false + }); + log('最后一条切片:' + laststr); + //log('最小相同字符长度:' + maxl); + let ad_urls = []; + for (let i = 0; i < ss.length; i++) { + let s = ss[i]; + if (!s.startsWith('#')) { + if (b(firststr, s) < maxl) { + ad_urls.push(s); // 广告地址加入列表 + ss.splice(i - 1, 2); + i = i - 2; + } else { + ss[i] = urljoin(m3u8_url, s); + } + } else { + ss[i] = s.replace(/URI=\"(.*)\"/, 'URI=\"' + urljoin(m3u8_url, '$1') + '\"'); + } + } + log('处理的m3u8地址:' + m3u8_url); + log('----广告地址----'); + log(ad_urls); + m3u8 = ss.join('\n'); + //log('处理完成'); + log('处理耗时:' + (new Date().getTime() - ts).toString()); + return m3u8 +} + + +/** + * 强制正序算法 + * @param lists 待正序列表 + * @param key 正序键 + * @param option 单个元素处理函数 + * @returns {*} + */ +function forceOrder(lists,key,option){ + let start = Math.floor(lists.length/2); + let end = Math.min(lists.length-1,start+1); + if(start >= end){ + return lists; + } + let first = lists[start]; + let second = lists[end]; + if(key){ + try { + first = first[key]; + second = second[key]; + }catch (e) {} + } + if(option && typeof(option)==='function'){ + try { + first = option(first); + second = option(second); + }catch (e) {} + } + first+=''; + second+=''; + // console.log(first,second); + if(first.match(/(\d+)/)&&second.match(/(\d+)/)){ + let num1 = Number(first.match(/(\d+)/)[1]); + let num2 = Number(second.match(/(\d+)/)[1]); + if (num1 > num2){ + lists.reverse(); + } + } + return lists +} + +let VODS = [];// 一级或者搜索需要的数据列表 +let VOD = {};// 二级的单个数据 +let TABS = [];// 二级的自定义线路列表 如: TABS=['道长在线','道长在线2'] +let LISTS = [];// 二级的自定义选集播放列表 如: LISTS=[['第1集$http://1.mp4','第2集$http://2.mp4'],['第3集$http://1.mp4','第4集$http://2.mp4']] +globalThis.encodeUrl = urlencode; +globalThis.urlencode = urlencode; + + +/** + * 获取链接的query请求转为js的object字典对象 + * @param url + * @returns {{}} + */ +function getQuery(url) { + try { + if(url.indexOf('?')>-1){ + url = url.slice(url.indexOf('?')+1); + } + let arr = url.split("#")[0].split("&"); + const resObj = {}; + arr.forEach(item => { + let arr1 = item.split("="); + let key = arr1[0]; + let value = arr1.slice(1).join('='); + resObj[key] = value; + }); + return resObj; + } catch (err) { + log('getQuery发生错误:'+e.message) + return {}; + } +} + +/** + * url拼接 + * @param fromPath 初始当前页面url + * @param nowPath 相对当前页面url + * @returns {*} + */ +function urljoin(fromPath, nowPath) { + fromPath = fromPath||''; + nowPath = nowPath||''; + return joinUrl(fromPath, nowPath); + // try { + // // import Uri from './uri.min.js'; + // // var Uri = require('./uri.min.js'); + // // eval(request('https://cdn.bootcdn.net/ajax/libs/URI.js/1.19.11/URI.min.js')); + // // let new_uri = URI(nowPath, fromPath); + + // let new_uri = Uri(nowPath, fromPath); + // new_uri = new_uri.toString(); + // // console.log(new_uri); + // // return fromPath + nowPath + // return new_uri + // } + // catch (e) { + // console.log('urljoin发生错误:'+e.message); + // if(nowPath.startsWith('http')){ + // return nowPath + // }if(nowPath.startsWith('/')){ + // return getHome(fromPath)+nowPath + // } + // return fromPath+nowPath + // } +} +var urljoin2 = urljoin; + +// 内置 pdfh,pdfa,pd +const defaultParser = { + pdfh:pdfh, + pdfa:pdfa, + pd:pd, +}; + + +/** + * pdfh原版优化,能取style属性里的图片链接 + * @param html 源码 + * @param parse 解析表达式 + * @returns {string|*} + */ +function pdfh2(html,parse){ + let html2 = html; + try { + if(typeof(html)!=='string'){ + html2 = html.rr(html.ele).toString(); + } + }catch (e) { + print('html对象转文本发生了错误:'+e.message); + } + let result = defaultParser.pdfh(html2,parse); + let option = parse.includes('&&')?parse.split('&&').slice(-1)[0]:parse.split(' ').slice(-1)[0]; + if(/style/.test(option.toLowerCase())&&/url\(/.test(result)){ + try { + result = result.match(/url\((.*?)\)/)[1]; + // 2023/07/28新增 style取内部链接自动去除首尾单双引号 + result = result.replace(/^['|"](.*)['|"]$/, "$1"); + }catch (e) {} + } + return result +} + +/** + * pdfa原版优化,可以转换jq的html对象 + * @param html + * @param parse + * @returns {*} + */ +function pdfa2(html,parse){ + let html2 = html; + try { + if(typeof(html)!=='string'){ + html2 = html.rr(html.ele).toString(); + } + }catch (e) { + print('html对象转文本发生了错误:'+e.message); + } + return defaultParser.pdfa(html2,parse); +} + +/** + * pd原版方法重写-增加自动urljoin + * @param html + * @param parse + * @param uri + * @returns {*} + */ +function pd2(html,parse,uri){ + let ret = pdfh2(html,parse); + if(typeof(uri)==='undefined'||!uri){ + uri = ''; + } + if(DOM_CHECK_ATTR.test(parse) && !SPECIAL_URL.test(ret)){ + if(/http/.test(ret)){ + ret = ret.slice(ret.indexOf('http')); + }else{ + ret = urljoin(MY_URL,ret) + } + } + // MY_URL = getItem('MY_URL',MY_URL); + // console.log(`规则${RKEY}打印MY_URL:${MY_URL},uri:${uri}`); + return ret +} + +const parseTags = { + jsp:{ + pdfh:pdfh2, + pdfa:pdfa2, + pd:pd2, + }, + json:{ + pdfh(html, parse) { + if (!parse || !parse.trim()){ + return ''; + } + if (typeof(html) === 'string'){ + // print('jsonpath:pdfh字符串转dict'); + html = JSON.parse(html); + } + parse = parse.trim(); + if (!parse.startsWith('$.')){ + parse = '$.' + parse; + } + parse = parse.split('||'); + for (let ps of parse) { + let ret = cheerio.jp(ps, html); + if (Array.isArray(ret)){ + ret = ret[0] || ''; + } else{ + ret = ret || '' + } + if (ret && typeof (ret) !== 'string'){ + ret = ret.toString(); + } + if(ret){ + return ret + } + } + return ''; + }, + pdfa(html, parse) { + if (!parse || !parse.trim()){ + return ''; + } + if (typeof(html) === 'string'){ + // print('jsonpath:pdfa字符串转dict'); + html = JSON.parse(html); + } + parse = parse.trim() + if (!parse.startsWith('$.')){ + parse = '$.' + parse; + } + let ret = cheerio.jp(parse, html); + if (Array.isArray(ret) && Array.isArray(ret[0]) && ret.length === 1){ + return ret[0] || [] + } + return ret || [] + }, + pd(html,parse){ + let ret = parseTags.json.pdfh(html,parse); + if(ret){ + return urljoin(MY_URL,ret); + } + return ret + }, + }, + jq:{ + pdfh(html, parse) { + if (!html||!parse || !parse.trim()) { + return '' + } + parse = parse.trim(); + let result = defaultParser.pdfh(html,parse); + // print(`pdfh解析${parse}=>${result}`); + return result; + }, + pdfa(html, parse) { + if (!html||!parse || !parse.trim()) { + return []; + } + parse = parse.trim(); + let result = defaultParser.pdfa(html,parse); + // print(result); + print(`pdfa解析${parse}=>${result.length}`); + return result; + }, + pd(html,parse,base_url){ + if (!html||!parse || !parse.trim()) { + return '' + } + parse = parse.trim(); + base_url = base_url||MY_URL; + return defaultParser.pd(html, parse, base_url); + }, + }, + getParse(p0){//非js开头的情况自动获取解析标签 + if(p0.startsWith('jsp:')){ + return this.jsp + }else if(p0.startsWith('json:')){ + return this.json + }else if(p0.startsWith('jq:')){ + return this.jq + }else { + return this.jq + } + } +}; + +const stringify = JSON.stringify; +const jsp = parseTags.jsp; +const jq = parseTags.jq; + +/*** 后台需要实现的java方法并注入到js中 ***/ + +/** + * 读取本地文件->应用程序目录 + * @param filePath + * @returns {string} + */ +function readFile(filePath){ + filePath = filePath||'./uri.min.js'; + var fd = os.open(filePath); + var buffer = new ArrayBuffer(1024); + var len = os.read(fd, buffer, 0, 1024); + console.log(len); + let text = String.fromCharCode.apply(null, new Uint8Array(buffer)); + console.log(text); + return text +} + +/** + * 处理返回的json数据 + * @param html + * @returns {*} + */ +function dealJson(html) { + try { + // html = html.match(/[\w|\W|\s|\S]*?(\{[\w|\W|\s|\S]*\})/).group[1]; + html = html.trim(); + if(!((html.startsWith('{') && html.endsWith('}'))||(html.startsWith('[') && html.endsWith(']')))){ + html = '{'+html.match(/.*?\{(.*)\}/m)[1]+'}'; + } + } catch (e) { + } + try { + html = JSON.parse(html); + }catch (e) {} + // console.log(typeof(html)); + return html; +} + +/** + * 验证码识别逻辑,需要java实现(js没有bytes类型,无法调用后端的传递图片二进制获取验证码文本的接口) + * @type {{api: string, classification: (function(*=): string)}} + */ +var OcrApi={ + api:OCR_API, + classification:function (img){ // img是byte类型,这里不方便搞啊 + let code = ''; + try { + // let html = request(this.api,{data:{img:img},headers:{'User-Agent':PC_UA},'method':'POST'},true); + // html = JSON.parse(html); + // code = html.url||''; + log('通过drpy_ocr验证码接口过验证...'); + let html = request(OCR_API,{data:{img:img},headers:{'User-Agent':PC_UA},'method':'POST'},true); + code = html||''; + }catch (e) { + log(`OCR识别验证码发生错误:${e.message}`) + } + return code + } +}; +/** + * 验证码识别,暂未实现 + * @param url 验证码图片链接 + * @returns {string} 验证成功后的cookie + */ +function verifyCode(url){ + let cnt = 0; + let host = getHome(url); + let cookie = ''; + while (cnt < OCR_RETRY){ + try{ + // let obj = {headers:headers,timeout:timeout}; + let yzm_url = `${host}/index.php/verify/index.html`; + console.log(`验证码链接:${yzm_url}`); + let hhtml = request(yzm_url,{withHeaders:true,toBase64:true},true); + let json = JSON.parse(hhtml); + if(!cookie){ + // print(json); + let setCk = Object.keys(json).find(it=>it.toLowerCase()==='set-cookie'); + // cookie = json['set-cookie']?json['set-cookie'].split(';')[0]:''; + cookie = setCk?json[setCk].split(';')[0]:''; + } + // console.log(hhtml); + console.log('cookie:'+cookie); + let img = json.body; + // console.log(img); + let code = OcrApi.classification(img); + console.log(`第${cnt+1}次验证码识别结果:${code}`); + let submit_url = `${host}/index.php/ajax/verify_check?type=search&verify=${code}`; + console.log(submit_url); + let html = request(submit_url,{headers:{Cookie:cookie,'User-Agent':MOBILE_UA},'method':'POST'}); + // console.log(html); + html = JSON.parse(html); + if(html.msg === 'ok'){ + console.log(`第${cnt+1}次验证码提交成功`); + return cookie // 需要返回cookie + }else if(html.msg!=='ok'&&cnt+1>=OCR_RETRY){ + cookie = ''; // 需要清空返回cookie + } + }catch (e) { + console.log(`第${cnt+1}次验证码提交失败:${e.message}`); + if(cnt+1>=OCR_RETRY){ + cookie = ''; + } + } + cnt+=1 + } + return cookie +} + +/** + * 存在数据库配置表里, key字段对应值value,没有就新增,有就更新,调用此方法会清除key对应的内存缓存 + * @param k 键 + * @param v 值 + */ +function setItem(k,v){ + local.set(RKEY,k,v); + console.log(`规则${RKEY}设置${k} => ${v}`) +} + +/** + * 获取数据库配置表对应的key字段的value,没有这个key就返回value默认传参.需要有缓存,第一次获取后会存在内存里 + * @param k 键 + * @param v 值 + * @returns {*} + */ +function getItem(k,v){ + return local.get(RKEY,k) || v; +} + +/** + * 删除数据库key对应的一条数据,并清除此key对应的内存缓存 + * @param k + */ +function clearItem(k){ + local.delete(RKEY,k); +} + +/*** js自封装的方法 ***/ + +/** + * 获取链接的host(带http协议的完整链接) + * @param url 任意一个正常完整的Url,自动提取根 + * @returns {string} + */ +function getHome(url){ + if(!url){ + return '' + } + let tmp = url.split('//'); + url = tmp[0] + '//' + tmp[1].split('/')[0]; + try { + url = decodeURIComponent(url); + }catch (e) {} + return url +} + +/** + * get参数编译链接,类似python params字典自动拼接 + * @param url 访问链接 + * @param obj 参数字典 + * @returns {*} + */ +function buildUrl(url,obj){ + obj = obj||{}; + if(url.indexOf('?')<0){ + url += '?' + } + let param_list = []; + let keys = Object.keys(obj); + keys.forEach(it=>{ + param_list.push(it+'='+obj[it]) + }); + let prs = param_list.join('&'); + if(keys.length > 0 && !url.endsWith('?')){ + url += '&' + } + url+=prs; + return url +} + +/** + * 远程依赖执行函数 + * @param url 远程js地址 + */ +function $require(url){ + eval(request(url)); +} +/** + * 海阔网页请求函数完整封装 + * @param url 请求链接 + * @param obj 请求对象 {headers:{},method:'',timeout:5000,body:'',withHeaders:false} + * @param ocr_flag 标识此flag是用于请求ocr识别的,自动过滤content-type指定编码 + * @returns {string|string|DocumentFragment|*} + */ +function request(url,obj,ocr_flag){ + ocr_flag = ocr_flag||false; + if(typeof(obj)==='undefined'||!obj||obj==={}){ + if(!fetch_params||!fetch_params.headers){ + let headers = { + 'User-Agent':MOBILE_UA, + }; + if(rule.headers){ + Object.assign(headers,rule.headers); + } + if(!fetch_params){ + fetch_params = {}; + } + fetch_params.headers = headers; + } + if(!fetch_params.headers.Referer){ + fetch_params.headers.Referer = getHome(url) + } + obj = fetch_params; + }else{ + let headers = obj.headers||{}; + let keys = Object.keys(headers).map(it=>it.toLowerCase()); + if(!keys.includes('user-agent')){ + headers['User-Agent'] = MOBILE_UA; + }if(!keys.includes('referer')){ + headers['Referer'] = getHome(url); + } + obj.headers = headers; + } + if(rule.encoding&&rule.encoding!=='utf-8'&&!ocr_flag){ + if(!obj.headers.hasOwnProperty('Content-Type')&&!obj.headers.hasOwnProperty('content-type')){ // 手动指定了就不管 + obj.headers["Content-Type"] = 'text/html; charset='+rule.encoding; + } + } + if(typeof(obj.body)!='undefined'&&obj.body&&typeof (obj.body)==='string'){ + // let data = {}; + // obj.body.split('&').forEach(it=>{ + // data[it.split('=')[0]] = it.split('=')[1] + // }); + // obj.data = data; + // delete obj.body + + // 传body加 "Content-Type":"application/x-www-form-urlencoded;" 即可post form + if(!obj.headers.hasOwnProperty('Content-Type')&&!obj.headers.hasOwnProperty('content-type')){ // 手动指定了就不管 + obj.headers["Content-Type"] = 'application/x-www-form-urlencoded; charset='+rule.encoding; + } + }else if(typeof(obj.body)!='undefined'&&obj.body&&typeof (obj.body)==='object'){ + obj.data = obj.body; + delete obj.body + } + if(!url){ + return obj.withHeaders?'{}':'' + } + if(obj.toBase64){ // 返回base64,用于请求图片 + obj.buffer = 2; + delete obj.toBase64 + } + if(obj.redirect===false){ + obj.redirect = 0; + } + console.log(JSON.stringify(obj.headers)); + // console.log('request:'+url+' obj:'+JSON.stringify(obj)); + console.log('request:'+url+`|method:${obj.method||'GET'}|body:${obj.body||''}`); + let res = req(url, obj); + let html = res.content||''; + // console.log(html); + if(obj.withHeaders){ + let htmlWithHeaders = res.headers; + htmlWithHeaders.body = html; + return JSON.stringify(htmlWithHeaders); + }else{ + return html + } +} + +/** + * 快捷post请求 + * @param url 地址 + * @param obj 对象 + * @returns {string|DocumentFragment|*} + */ +function post(url,obj){ + obj.method = 'POST'; + return request(url,obj); +} + +fetch = request; +print = function (data){ + data = data||''; + if(typeof(data)=='object'&&Object.keys(data).length>0){ + try { + data = JSON.stringify(data); + console.log(data); + }catch (e) { + // console.log('print:'+e.message); + console.log(typeof(data)+':'+data.length); + return + } + }else if(typeof(data)=='object'&&Object.keys(data).length<1){ + console.log('null object'); + }else{ + console.log(data); + } +} +log = print; +/** + * 检查宝塔验证并自动跳过获取正确源码 + * @param html 之前获取的html + * @param url 之前的来源url + * @param obj 来源obj + * @returns {string|DocumentFragment|*} + */ +function checkHtml(html,url,obj){ + if(/\?btwaf=/.test(html)){ + let btwaf = html.match(/btwaf(.*?)"/)[1]; + url = url.split('#')[0]+'?btwaf'+btwaf; + print('宝塔验证访问链接:'+url); + html = request(url,obj); + } + return html +} + +/** + * 带一次宝塔验证的源码获取 + * @param url 请求链接 + * @param obj 请求参数 + * @returns {string|DocumentFragment} + */ +function getCode(url,obj){ + let html = request(url,obj); + html = checkHtml(html,url,obj); + return html +} + +/** + * 源rule专用的请求方法,自动注入cookie + * @param url 请求链接 + * @returns {string|DocumentFragment} + */ +function getHtml(url){ + let obj = {}; + if(rule.headers){ + obj.headers = rule.headers; + } + let cookie = getItem(RULE_CK,''); + if(cookie){ + // log('有cookie:'+cookie); + if(obj.headers && ! Object.keys(obj.headers).map(it=>it.toLowerCase()).includes('cookie')){ + log('历史无cookie,新增过验证后的cookie'); + obj.headers['Cookie'] = cookie; + }else if(obj.headers && obj.headers.cookie && obj.headers.cookie!==cookie){ + obj.headers['Cookie'] = cookie; + log('历史有小写过期的cookie,更新过验证后的cookie'); + }else if(obj.headers && obj.headers.Cookie && obj.headers.Cookie!==cookie){ + obj.headers['Cookie'] = cookie; + log('历史有大写过期的cookie,更新过验证后的cookie'); + }else if(!obj.headers){ + obj.headers = {Cookie:cookie}; + log('历史无headers,更新过验证后的含cookie的headers'); + } + } + let html = getCode(url,obj); + return html +} + +/** + * 首页分类解析,筛选暂未实现 + * @param homeObj 首页传参对象 + * @returns {string} + */ +function homeParse(homeObj) { + fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); + let classes = []; + if (homeObj.class_name && homeObj.class_url) { + let names = homeObj.class_name.split('&'); + let urls = homeObj.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] + }); + } + } + + if (homeObj.class_parse) { + if(homeObj.class_parse.startsWith('js:')) { + var input = homeObj.MY_URL; + try { + eval(homeObj.class_parse.replace('js:', '')); + if (Array.isArray(input)) { + classes = input; + } + }catch(e){ + log('通过js动态获取分类发生了错误:'+e.message); + } + }else { + let p = homeObj.class_parse.split(';'); + let p0 = p[0]; + let _ps = parseTags.getParse(p0); + let is_json = p0.startsWith('json:'); + _pdfa = _ps.pdfa; + _pdfh = _ps.pdfh; + _pd = _ps.pd; + MY_URL = rule.url; + if(is_json){ + try { + let cms_cate_url = homeObj.MY_URL.replace('ac=detail','ac=list'); + let html = getHtml(cms_cate_url); + if (html) { + if(cms_cate_url === homeObj.MY_URL){ + homeHtmlCache = html; + } + let list = _pdfa(html, p0.replace('json:','')); + if (list && list.length > 0) { + classes = list; + } + } + } catch (e) { + console.log(e.message); + } + } else if(p.length >= 3 && !is_json) { // 可以不写正则 + try { + let html = getHtml(homeObj.MY_URL); + if (html) { + homeHtmlCache = html; + let list = _pdfa(html, p0); + if (list && list.length > 0) { + list.forEach((it, idex) => { + try { + let name = _pdfh(it, p[1]); + if (homeObj.cate_exclude && (new RegExp(homeObj.cate_exclude).test(name))) { + return; + } + // let url = pdfh(it, p[2]); + let url = _pd(it, p[2]); + if (p.length > 3 && p[3]) { + let exp = new RegExp(p[3]); + url = url.match(exp)[1]; + } + + classes.push({ + 'type_id': url.trim(), + 'type_name': name.trim() + }); + } catch (e) { + console.log(`分类列表定位第${idex}个元素正常报错:${e.message}`); + } + }); + } + } + } catch (e) { + console.log(e.message); + } + + } + } + } + // 排除分类 + classes = classes.filter(it=>!homeObj.cate_exclude || !(new RegExp(homeObj.cate_exclude).test(it.type_name))); + let resp = { + 'class': classes + }; + if(homeObj.filter){ + resp.filters = homeObj.filter; + } + console.log(JSON.stringify(resp)); + return JSON.stringify(resp); + +} + +/** + * 推荐和搜索单字段继承一级 + * @param p 推荐或搜索的解析分割;列表 + * @param pn 自身列表序号 + * @param pp 一级解析分割;列表 + * @param ppn 继承一级序号 + * @returns {*} + */ +function getPP(p, pn, pp, ppn){ + try { + let ps = p[pn] === '*' && pp.length > ppn ?pp[ppn]:p[pn] + return ps + }catch (e) { + return '' + } +} + +/** + * 首页推荐列表解析 + * @param homeVodObj + * @returns {string} + */ +function homeVodParse(homeVodObj){ + fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); + let d = []; + MY_URL = homeVodObj.homeUrl; + // setItem('MY_URL',MY_URL); + console.log(MY_URL); + let t1 = (new Date()).getTime(); + let p = homeVodObj.推荐; + print('p:'+p); + if(p==='*' && rule.一级){ + p = rule.一级; + homeVodObj.double = false; + } + if(!p||typeof(p)!=='string'){ + return '{}' + } + p = p.trim(); + let pp = rule.一级.split(';'); + if(p.startsWith('js:')){ + const TYPE = 'home'; + var input = MY_URL; + HOST = rule.host; + eval(p.replace('js:','')); + d = VODS; + }else { + p = p.split(';'); + if (!homeVodObj.double && p.length < 5) { + return '{}' + } else if (homeVodObj.double && p.length < 6) { + return '{}' + } + let p0 = getPP(p,0,pp,0) + let _ps = parseTags.getParse(p0); + _pdfa = _ps.pdfa; + _pdfh = _ps.pdfh; + _pd = _ps.pd; + let is_json = p0.startsWith('json:'); + p0 = p0.replace(/^(jsp:|json:|jq:)/,''); + // print(p[0]); + let html = homeHtmlCache || getHtml(MY_URL); + homeHtmlCache = undefined; + if(is_json){ + // print('是json,开始处理'); + html = dealJson(html); + } + try { + console.log('double:' + homeVodObj.double); + if (homeVodObj.double) { + let items = _pdfa(html, p0); + // console.log(items.length); + let p1 = getPP(p,1,pp,0); + let p2 = getPP(p,2,pp,1); + let p3 = getPP(p,3,pp,2); + let p4 = getPP(p,4,pp,3); + let p5 = getPP(p,5,pp,4); + let p6 = getPP(p,6,pp,5); + for (let item of items) { + // console.log(p[1]); + let items2 = _pdfa(item, p1); + // console.log(items2.length); + for (let item2 of items2) { + try { + let title = _pdfh(item2, p2); + let img = ''; + try { + img = _pd(item2, p3); + } catch (e) {} + let desc = ''; + try { + desc = _pdfh(item2, p4); + }catch (e) {} + let links = []; + for (let _p5 of p5.split('+')) { + let link = !homeVodObj.detailUrl ? _pd(item2, _p5, MY_URL) : _pdfh(item2, _p5); + links.push(link); + } + let content; + if(p.length > 6 && p[6]){ + content = _pdfh(item2, p6); + } else{ + content = ''; + } + let vid = links.join('$'); + if(rule.二级==='*'){ + vid = vid+'@@'+title+'@@'+img; + } + let vod = { + vod_name: title, + vod_pic: img, + vod_remarks: desc, + vod_content: content, + vod_id: vid + }; + // print(vod); + d.push(vod); + } catch (e) { + console.log('首页列表双层定位处理发生错误:'+e.message); + } + + } + + + } + + + } else { + let items = _pdfa(html, p0); + let p1 = getPP(p,1,pp,1); + let p2 = getPP(p,2,pp,2); + let p3 = getPP(p,3,pp,3); + let p4 = getPP(p,4,pp,4); + let p5 = getPP(p,5,pp,5); + + for (let item of items) { + try { + let title = _pdfh(item, p1); + let img = ''; + try { + img = _pd(item, p2, MY_URL); + } catch (e) {} + let desc = ''; + try { + desc = _pdfh(item, p3); + }catch (e) {} + let links = []; + for (let _p5 of p4.split('+')) { + let link = !homeVodObj.detailUrl ? _pd(item, _p5, MY_URL) : _pdfh(item, _p5); + links.push(link); + } + let content; + if(p.length > 5 && p[5]){ + content = _pdfh(item, p5); + }else{ + content = '' + } + let vid = links.join('$'); + if(rule.二级==='*'){ + vid = vid+'@@'+title+'@@'+img; + } + let vod = { + vod_name: title, + vod_pic: img, + vod_remarks: desc, + vod_content: content, + vod_id: vid + }; + d.push(vod); + + } catch (e) { + console.log('首页列表单层定位处理发生错误:'+e.message); + } + + } + + } + + } catch (e) { + + } + } + let t2 = (new Date()).getTime(); + console.log('加载首页推荐耗时:'+(t2-t1)+'毫秒'); + // console.log(JSON.stringify(d)); + if(rule.图片替换 && rule.图片替换.includes('=>')){ + let replace_from = rule.图片替换.split('=>')[0]; + let replace_to = rule.图片替换.split('=>')[1]; + d.forEach(it=>{ + if(it.vod_pic&&it.vod_pic.startsWith('http')){ + it.vod_pic = it.vod_pic.replace(replace_from,replace_to); + } + }); + } + if(rule.图片来源){ + d.forEach(it=>{ + if(it.vod_pic&&it.vod_pic.startsWith('http')){ + it.vod_pic = it.vod_pic + rule.图片来源; + } + }); + } + if(d.length>0){ + print(d.slice(0,2)); + } + return JSON.stringify({ + list:d + }) +} + +/** + * 一级分类页数据解析 + * @param cateObj + * @returns {string} + */ +function categoryParse(cateObj) { + fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); + let p = cateObj.一级; + if(!p||typeof(p)!=='string'){ + return '{}' + } + let d = []; + // let url = cateObj.url.replaceAll('fyclass', cateObj.tid).replaceAll('fypage', cateObj.pg); + let url = cateObj.url.replaceAll('fyclass', cateObj.tid); + if(cateObj.pg === 1 && url.includes('[')&&url.includes(']')){ + url = url.split('[')[1].split(']')[0]; + }else if(cateObj.pg > 1 && url.includes('[')&&url.includes(']')){ + url = url.split('[')[0]; + } + if(rule.filter_url){ + if(!/fyfilter/.test(url)){ + if(!url.endsWith('&')&&!rule.filter_url.startsWith('&')){ + url+='&' + } + url+=rule.filter_url; + }else{ + url = url.replace('fyfilter', rule.filter_url); + } + // filter_url支持fyclass + url = url.replaceAll('fyclass', cateObj.tid); + // console.log('filter:'+cateObj.filter); + let fl = cateObj.filter?cateObj.extend:{}; + // 自动合并 不同分类对应的默认筛选 + if(rule.filter_def && typeof(rule.filter_def)==='object'){ + try { + if(Object.keys(rule.filter_def).length>0 && rule.filter_def.hasOwnProperty(cateObj.tid)){ + let self_fl_def = rule.filter_def[cateObj.tid]; + if(self_fl_def && typeof(self_fl_def)==='object'){ + // 引用传递转值传递,避免污染self变量 + let fl_def = JSON.parse(JSON.stringify(self_fl_def)); + fl = Object.assign(fl_def,fl); + } + } + }catch (e) { + print('合并不同分类对应的默认筛选出错:'+e.message); + } + } + let new_url; + new_url = cheerio.jinja2(url,{fl:fl}); + // console.log('jinjia2执行后的new_url类型为:'+typeof(new_url)); + url = new_url; + } + if(/fypage/.test(url)){ + if(url.includes('(')&&url.includes(')')){ + let url_rep = url.match(/.*?\((.*)\)/)[1]; + // console.log(url_rep); + let cnt_page = url_rep.replaceAll('fypage', cateObj.pg); + // console.log(cnt_page); + let cnt_pg = eval(cnt_page); + // console.log(cnt_pg); + url = url.replaceAll(url_rep,cnt_pg).replaceAll('(','').replaceAll(')',''); + }else{ + url = url.replaceAll('fypage',cateObj.pg); + } + } + + MY_URL = url; + // setItem('MY_URL',MY_URL); + console.log(MY_URL); + p = p.trim(); + const MY_CATE = cateObj.tid; + if(p.startsWith('js:')){ + var MY_FL = cateObj.extend; + const TYPE = 'cate'; + var input = MY_URL; + const MY_PAGE = cateObj.pg; + var desc = ''; + eval(p.trim().replace('js:','')); + d = VODS; + }else { + p = p.split(';'); + if (p.length < 5) { + return '{}' + } + let _ps = parseTags.getParse(p[0]); + _pdfa = _ps.pdfa; + _pdfh = _ps.pdfh; + _pd = _ps.pd; + let is_json = p[0].startsWith('json:'); + p[0] = p[0].replace(/^(jsp:|json:|jq:)/,''); + try { + let html = getHtml(MY_URL); + if (html) { + if(is_json){ + html = dealJson(html); + } + let list = _pdfa(html, p[0]); + list.forEach(it => { + let links = p[4].split('+').map(p4=>{ + return !rule.detailUrl?_pd(it, p4,MY_URL):_pdfh(it, p4); + }); + let link = links.join('$'); + let vod_id = rule.detailUrl?MY_CATE+'$'+link:link; + + let vod_name = _pdfh(it, p[1]).replace(/\n|\t/g,'').trim(); + let vod_pic = _pd(it, p[2],MY_URL); + + if(rule.二级==='*'){ + vod_id = vod_id+'@@'+vod_name+'@@'+vod_pic; + } + d.push({ + 'vod_id': vod_id, + 'vod_name': vod_name, + 'vod_pic': vod_pic, + 'vod_remarks': _pdfh(it, p[3]).replace(/\n|\t/g,'').trim(), + }); + }); + } + } catch (e) { + console.log(e.message); + } + } + if(rule.图片替换 && rule.图片替换.includes('=>')){ + let replace_from = rule.图片替换.split('=>')[0]; + let replace_to = rule.图片替换.split('=>')[1]; + d.forEach(it=>{ + if(it.vod_pic&&it.vod_pic.startsWith('http')){ + it.vod_pic = it.vod_pic.replace(replace_from,replace_to); + } + }); + } + if(rule.图片来源){ + d.forEach(it=>{ + if(it.vod_pic&&it.vod_pic.startsWith('http')){ + it.vod_pic = it.vod_pic + rule.图片来源; + } + }); + } + // print(d); + if(d.length>0){ + print(d.slice(0,2)); + } + let pagecount = 0; + if(rule.pagecount && typeof(rule.pagecount) === 'object' && rule.pagecount.hasOwnProperty(MY_CATE)){ + print(`MY_CATE:${MY_CATE},pagecount:${JSON.stringify(rule.pagecount)}`); + pagecount = parseInt(rule.pagecount[MY_CATE]); + } + let nodata = { + list:[{vod_name:'无数据,防无限请求',vod_id:'no_data',vod_remarks:'不要点,会崩的',vod_pic:'https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg'}], + total:1,pagecount:1,page:1,limit:1 + }; + let vod = d.length<1?JSON.stringify(nodata):JSON.stringify({ + 'page': parseInt(cateObj.pg), + 'pagecount': pagecount||999, + 'limit': 20, + 'total': 999, + 'list': d, + }); + // print(vod); + return vod +} + +/** + * 搜索列表数据解析 + * @param searchObj + * @returns {string} + */ +function searchParse(searchObj) { + fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); + let d = []; + if(!searchObj.searchUrl){ + return '{}' + } + let p = searchObj.搜索==='*'&&rule.一级 ? rule.一级 : searchObj.搜索; + if(!p||typeof(p)!=='string'){ + return '{}' + } + p = p.trim(); + let pp = rule.一级.split(';'); + let url = searchObj.searchUrl.replaceAll('**', searchObj.wd); + if(searchObj.pg === 1 && url.includes('[')&&url.includes(']')&&!url.includes('#')){ + url = url.split('[')[1].split(']')[0]; + }else if(searchObj.pg > 1 && url.includes('[')&&url.includes(']')&&!url.includes('#')){ + url = url.split('[')[0]; + } + + if(/fypage/.test(url)){ + if(url.includes('(')&&url.includes(')')){ + let url_rep = url.match(/.*?\((.*)\)/)[1]; + // console.log(url_rep); + let cnt_page = url_rep.replaceAll('fypage', searchObj.pg); + // console.log(cnt_page); + let cnt_pg = eval(cnt_page); + // console.log(cnt_pg); + url = url.replaceAll(url_rep,cnt_pg).replaceAll('(','').replaceAll(')',''); + }else{ + url = url.replaceAll('fypage',searchObj.pg); + } + } + + MY_URL = url; + console.log(MY_URL); + // log(searchObj.搜索); + // setItem('MY_URL',MY_URL); + if(p.startsWith('js:')){ + const TYPE = 'search'; + const MY_PAGE = searchObj.pg; + const KEY = searchObj.wd; + var input = MY_URL; + var detailUrl = rule.detailUrl||''; + eval(p.trim().replace('js:','')); + d = VODS; + }else{ + p = p.split(';'); + if (p.length < 5) { + return '{}' + } + let p0 = getPP(p,0,pp,0); + let _ps = parseTags.getParse(p0); + _pdfa = _ps.pdfa; + _pdfh = _ps.pdfh; + _pd = _ps.pd; + let is_json = p0.startsWith('json:'); + p0 = p0.replace(/^(jsp:|json:|jq:)/,''); + // print('1381 p0:'+p0); + try { + let req_method = MY_URL.split(';').length>1?MY_URL.split(';')[1].toLowerCase():'get'; + let html; + if(req_method==='post'){ + let rurls = MY_URL.split(';')[0].split('#') + let rurl = rurls[0] + let params = rurls.length > 1 ?rurls[1]:''; + print(`post=》rurl:${rurl},params:${params}`); + // let new_dict = {}; + // let new_tmp = params.split('&'); + // new_tmp.forEach(i=>{ + // new_dict[i.split('=')[0]] = i.split('=')[1]; + // }); + // html = post(rurl,{body:new_dict}); + let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); + let postData = {body:params}; + Object.assign(_fetch_params,postData); + html = post(rurl,_fetch_params); + }else if(req_method==='postjson'){ + let rurls = MY_URL.split(';')[0].split('#') + let rurl = rurls[0] + let params = rurls.length > 1 ?rurls[1]:''; + print(`postjson-》rurl:${rurl},params:${params}`); + try{ + params = JSON.parse(params); + }catch (e) { + params = '{}' + } + let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); + let postData = {body:params}; + Object.assign(_fetch_params,postData); + html = post(rurl,_fetch_params); + }else{ + html = getHtml(MY_URL); + } + if (html) { + if(/系统安全验证|输入验证码/.test(html)){ + let cookie = verifyCode(MY_URL); + if(cookie){ + console.log(`本次成功过验证,cookie:${cookie}`); + setItem(RULE_CK,cookie); + }else{ + console.log(`本次自动过搜索验证失败,cookie:${cookie}`); + } + // obj.headers['Cookie'] = cookie; + html = getHtml(MY_URL); + } + if(!html.includes(searchObj.wd)){ + console.log('搜索结果源码未包含关键字,疑似搜索失败,正为您打印结果源码'); + console.log(html); + } + if(is_json){ + // console.log(html); + html = dealJson(html); + // console.log(JSON.stringify(html)); + } + // console.log(html); + let list = _pdfa(html, p0); + // print(list.length); + // print(list); + let p1 = getPP(p, 1, pp, 1); + let p2 = getPP(p, 2, pp, 2); + let p3 = getPP(p, 3, pp, 3); + let p4 = getPP(p, 4, pp, 4); + let p5 = getPP(p,5,pp,5); + list.forEach(it => { + let links = p4.split('+').map(_p4=>{ + return !rule.detailUrl?_pd(it, _p4,MY_URL):_pdfh(it, _p4) + }); + let link = links.join('$'); + let content; + if(p.length > 5 && p[5]){ + content = _pdfh(it, p5); + }else{ + content = ''; + } + let vod_id = link; + let vod_name = _pdfh(it, p1).replace(/\n|\t/g,'').trim(); + let vod_pic = _pd(it, p2,MY_URL); + if(rule.二级==='*'){ + vod_id = vod_id+'@@'+vod_name+'@@'+vod_pic; + } + let ob = { + 'vod_id': vod_id, + 'vod_name': vod_name, + 'vod_pic': vod_pic, + 'vod_remarks': _pdfh(it, p3).replace(/\n|\t/g,'').trim(), + 'vod_content': content.replace(/\n|\t/g,'').trim(), + }; + d.push(ob); + }); + + } + } catch (e) { + print('搜索发生错误:'+e.message); + return '{}' + } + } + if(rule.图片替换 && rule.图片替换.includes('=>')){ + let replace_from = rule.图片替换.split('=>')[0]; + let replace_to = rule.图片替换.split('=>')[1]; + d.forEach(it=>{ + if(it.vod_pic&&it.vod_pic.startsWith('http')){ + it.vod_pic = it.vod_pic.replace(replace_from,replace_to); + } + }); + } + if(rule.图片来源){ + d.forEach(it=>{ + if(it.vod_pic&&it.vod_pic.startsWith('http')){ + it.vod_pic = it.vod_pic + rule.图片来源; + } + }); + } + // print(d); + return JSON.stringify({ + 'page': parseInt(searchObj.pg), + 'pagecount': 10, + 'limit': 20, + 'total': 100, + 'list': d, + }); +} + +/** + * 二级详情页数据解析 + * @param detailObj + * @returns {string} + */ +function detailParse(detailObj){ + let t1 = (new Date()).getTime(); + fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); + let orId = detailObj.orId; + let vod_name = '片名'; + let vod_pic = ''; + let vod_id = orId; + if(rule.二级==='*'){ + // vod_id = orId.split('@@')[0]; // 千万不能分割 + let extra = orId.split('@@'); + vod_name = extra.length>1?extra[1]:vod_name; + vod_pic = extra.length>2?extra[2]:vod_pic; + } + // print(vod_pic); + let vod = { + vod_id: vod_id, //"id", + vod_name: vod_name, + vod_pic: vod_pic, + type_name: "类型", + vod_year: "年份", + vod_area: "地区", + vod_remarks: "更新信息", + vod_actor: "主演", + vod_director: "导演", + vod_content: "简介" + }; + let p = detailObj.二级; + let url = detailObj.url; + let detailUrl = detailObj.detailUrl; + let fyclass = detailObj.fyclass; + let tab_exclude = detailObj.tab_exclude; + let html = detailObj.html||''; + MY_URL = url; + if(detailObj.二级访问前){ + try { + print(`尝试在二级访问前执行代码:${detailObj.二级访问前}`); + eval(detailObj.二级访问前.trim().replace('js:','')); + }catch (e) { + print(`二级访问前执行代码出现错误:${e.message}`) + } + } + // console.log(MY_URL); + // setItem('MY_URL',MY_URL); + if(p==='*'){ + vod.vod_play_from = '道长在线'; + vod.vod_remarks = detailUrl; + vod.vod_actor = '没有二级,只有一级链接直接嗅探播放'; + vod.vod_content = MY_URL; + vod.vod_play_url = '嗅探播放$' + MY_URL.split('@@')[0]; + }else if(typeof(p)==='string'&&p.trim().startsWith('js:')){ + const TYPE = 'detail'; + var input = MY_URL; + var play_url = ''; + eval(p.trim().replace('js:','')); + vod = VOD; + console.log(JSON.stringify(vod)); + }else if(p&&typeof(p)==='object'){ + let tt1 = (new Date()).getTime(); + if(!html){ + html = getHtml(MY_URL); + } + print(`二级${MY_URL}仅获取源码耗时:${(new Date()).getTime()-tt1}毫秒`); + let _ps; + if(p.is_json){ + print('二级是json'); + _ps = parseTags.json; + html = dealJson(html); + }else if(p.is_jsp){ + print('二级是jsp'); + _ps = parseTags.jsp; + }else if(p.is_jq){ + print('二级是jq'); + _ps = parseTags.jq; + }else{ + print('二级默认jq'); + _ps = parseTags.jq; + // print('二级默认jsp'); + // _ps = parseTags.jsp; + } + let tt2 = (new Date()).getTime(); + print(`二级${MY_URL}获取并装载源码耗时:${tt2-tt1}毫秒`); + _pdfa = _ps.pdfa; + _pdfh = _ps.pdfh; + _pd = _ps.pd; + if(p.title){ + let p1 = p.title.split(';'); + vod.vod_name = _pdfh(html, p1[0]).replace(/\n|\t/g,'').trim(); + let type_name = p1.length > 1 ? _pdfh(html, p1[1]).replace(/\n|\t/g,'').replace(/ /g,'').trim():''; + vod.type_name = type_name||vod.type_name; + } + if(p.desc){ + try{ + let p1 = p.desc.split(';'); + vod.vod_remarks = _pdfh(html, p1[0]).replace(/\n|\t/g,'').trim(); + vod.vod_year = p1.length > 1 ? _pdfh(html, p1[1]).replace(/\n|\t/g,'').trim():''; + vod.vod_area = p1.length > 2 ? _pdfh(html, p1[2]).replace(/\n|\t/g,'').trim():''; + // vod.vod_actor = p1.length > 3 ? _pdfh(html, p1[3]).replaceAll('\n', ' ').trim():''; + vod.vod_actor = p1.length > 3 ? _pdfh(html, p1[3]).replace(/\n|\t/g,'').trim():''; + vod.vod_director = p1.length > 4 ? _pdfh(html, p1[4]).replace(/\n|\t/g,'').trim():''; + } + catch (e) { + + } + } + if(p.content){ + try{ + let p1 = p.content.split(';'); + vod.vod_content = _pdfh(html, p1[0]).replace(/\n|\t/g,'').trim(); + } + catch (e) {} + } + if(p.img){ + try{ + let p1 = p.img.split(';'); + vod.vod_pic = _pd(html, p1[0],MY_URL); + } + catch (e) {} + } + + let vod_play_from = '$$$'; + let playFrom = []; + if(p.重定向&&p.重定向.startsWith('js:')){ + print('开始执行重定向代码:'+p.重定向); + html = eval(p.重定向.replace('js:','')); + } + +// console.log(2); + if(p.tabs){ + if(p.tabs.startsWith('js:')){ + print('开始执行tabs代码:'+p.tabs); + var input = MY_URL; + eval(p.tabs.replace('js:','')); + playFrom = TABS; + }else{ + let p_tab = p.tabs.split(';')[0]; + // console.log(p_tab); + let vHeader = _pdfa(html, p_tab); + console.log(vHeader.length); + let tab_text = p.tab_text||'body&&Text'; + // print('tab_text:'+tab_text); + let new_map = {}; + for(let v of vHeader){ + let v_title = _pdfh(v,tab_text).trim(); + if(!v_title){ + v_title = '线路空' + } + console.log(v_title); + if(tab_exclude&& (new RegExp(tab_exclude)).test(v_title)){ + continue; + } + if(!new_map.hasOwnProperty(v_title)){ + new_map[v_title] = 1; + }else{ + new_map[v_title] += 1; + } + if(new_map[v_title]>1){ + v_title+=Number(new_map[v_title]-1); + } + playFrom.push(v_title); + } + } + console.log(JSON.stringify(playFrom)); + }else{ + playFrom = ['道长在线'] + } + vod.vod_play_from = playFrom.join(vod_play_from); + +// console.log(3); + let vod_play_url = '$$$'; + let vod_tab_list = []; + if(p.lists){ + if(p.lists.startsWith('js:')){ + print('开始执行lists代码:'+p.lists); + try { + var input = MY_URL; + var play_url = ''; + eval(p.lists.replace('js:','')); + for(let i in LISTS){ + if(LISTS.hasOwnProperty(i)){ + // print(i); + try { + LISTS[i] = LISTS[i].map(it=>it.split('$').slice(0,2).join('$')); + }catch (e) { + print('格式化LISTS发生错误:'+e.message); + } + } + } + vod_play_url = LISTS.map(it=>it.join('#')).join(vod_play_url); + }catch (e) { + print('js执行lists: 发生错误:'+e.message); + } + + }else{ + let list_text = p.list_text||'body&&Text'; + let list_url = p.list_url||'a&&href'; + // print('list_text:'+list_text); + // print('list_url:'+list_url); + // print('list_parse:'+p.lists); + let is_tab_js = p.tabs.trim().startsWith('js:'); + for(let i=0;i 1 && !is_tab_js ? p.tabs.split(';')[1] : ''; + let p1 = p.lists.replaceAll('#idv', tab_name).replaceAll('#id', i); + tab_ext = tab_ext.replaceAll('#idv', tab_name).replaceAll('#id', i); + let tabName = tab_ext?_pdfh(html, tab_ext):tab_name; + console.log(tabName); + // print('tab_ext:'+tab_ext); + let new_vod_list = []; + let tt1 = (new Date()).getTime(); + // print('pdfl:'+typeof (pdfl)); + if(typeof (pdfl) ==='function'){ + new_vod_list = pdfl(html, p1, list_text, list_url, MY_URL); + }else { + let vodList = []; + try { + vodList = _pdfa(html, p1); + console.log('len(vodList):'+vodList.length); + }catch (e) { + // console.log(e.message); + } + for (let i = 0; i < vodList.length; i++) { + let it = vodList[i]; + new_vod_list.push(_pdfh(it, list_text).trim() + '$' + _pd(it, list_url, MY_URL)); + } + } + if(new_vod_list.length>0){ + new_vod_list = forceOrder(new_vod_list,'',x=>x.split('$')[0]); + console.log(`drpy影响性能代码共计列表数循环次数:${new_vod_list.length},耗时:${(new Date()).getTime()-tt1}毫秒`); + } + // print(new_vod_list); + let vlist = new_vod_list.join('#'); + vod_tab_list.push(vlist); + } + vod_play_url = vod_tab_list.join(vod_play_url); + } + } + vod.vod_play_url = vod_play_url; + } + if(rule.图片替换 && rule.图片替换.includes('=>')){ + let replace_from = rule.图片替换.split('=>')[0]; + let replace_to = rule.图片替换.split('=>')[1]; + vod.vod_pic = vod.vod_pic.replace(replace_from,replace_to); + } + if(rule.图片来源 && vod.vod_pic && vod.vod_pic.startsWith('http')){ + vod.vod_pic = vod.vod_pic + rule.图片来源; + } + if(!vod.vod_id||(vod_id.includes('$')&&vod.vod_id!==vod_id)){ + vod.vod_id = vod_id; + } + let t2 = (new Date()).getTime(); + console.log(`加载二级界面${MY_URL}耗时:${t2-t1}毫秒`); + // print(vod); + try { + vod = vodDeal(vod); + }catch (e) { + console.log(`vodDeal发生错误:${e.message}`); + } + // print(vod); + return JSON.stringify({ + list: [vod] + }) +} + +/** + * 获取二级待返回的播放线路没处理时的索引关系 + * @param vod + * @returns {{}} + */ +function get_tab_index(vod){ + let obj = {}; + vod.vod_play_from.split('$$$').forEach((it,index)=>{ + obj[it] = index; + }); + return obj +} + +/** + * 处理待返回的vod数据|线路去除,排序,重命名 + * @param vod + * @returns {*} + */ +function vodDeal(vod){ + let vod_play_from = vod.vod_play_from.split('$$$'); + let vod_play_url = vod.vod_play_url.split('$$$'); + + // 移除指定线路后的列表 + let tab_removed_list = vod_play_from; + // 排序后的线路列表 + let tab_ordered_list = vod_play_from; + // 线路重命名后的列表 + let tab_renamed_list = vod_play_from; + // 定义实际要返回线路 + let tab_list = vod_play_from; + // 选集列表根据线路排序 + let play_ordered_list = vod_play_url; + + // 判断有移除线路或者线路排序 + if((rule.tab_remove&&rule.tab_remove.length>0)||(rule.tab_order&&rule.tab_order.length>0)){ + // 获取原来线路的索引下标 + let tab_index_dict = get_tab_index(vod); + + if(rule.tab_remove&&rule.tab_remove.length>0){ + tab_removed_list = vod_play_from.filter(it=>!rule.tab_remove.includes(it)); + tab_list = tab_removed_list; + } + + if(rule.tab_order&&rule.tab_order.length>0){ + let tab_order = rule.tab_order; + tab_ordered_list = tab_removed_list.sort((a, b) => { + return (tab_order.indexOf(a)===-1?9999:tab_order.indexOf(a)) - (tab_order.indexOf(b)===-1?9999:tab_order.indexOf(b)) + }); + tab_list = tab_ordered_list; + } + play_ordered_list = tab_list.map(it=>vod_play_url[tab_index_dict[it]]); + } + + if(rule.tab_rename&&typeof(rule.tab_rename)==='object'&Object.keys(rule.tab_rename).length>0){ + tab_renamed_list = tab_list.map(it=>rule.tab_rename[it]||it); + tab_list = tab_renamed_list; + } + vod.vod_play_from = tab_list.join('$$$'); + vod.vod_play_url = play_ordered_list.join('$$$'); + return vod +} + +/** + * 判断是否需要解析 + * @param url + * @returns {number|number} + */ +function tellIsJx(url){ + try { + let is_vip = !/\.(m3u8|mp4|m4a)$/.test(url.split('?')[0]) && 是否正版(url); + return is_vip?1:0 + }catch (e) { + return 1 + } +} +/** + * 选集播放点击事件解析 + * @param playObj + * @returns {string} + */ +function playParse(playObj){ + fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); + MY_URL = playObj.url; + var MY_FLAG = playObj.flag; + if(!/http/.test(MY_URL)){ + try { + MY_URL = base64Decode(MY_URL); + }catch (e) {} + } + MY_URL = decodeURIComponent(MY_URL); + var input = MY_URL;//注入给免嗅js + var flag = MY_FLAG;//注入播放线路名称给免嗅js + let common_play = { + parse:1, + url:input, + flag:flag, + // url:urlencode(input), + jx:tellIsJx(input) + }; + let lazy_play; + if(!rule.play_parse||!rule.lazy){ + lazy_play = common_play; + }else if(rule.play_parse&&rule.lazy&&typeof(rule.lazy)==='string'){ + try { + let lazy_code = rule.lazy.trim(); + if(lazy_code.startsWith('js:')){ + lazy_code = lazy_code.replace('js:','').trim(); + } + print('开始执行js免嗅=>'+lazy_code); + eval(lazy_code); + lazy_play = typeof(input) === 'object'?input:{ + parse:1, + jx:tellIsJx(input), + url:input + }; + }catch (e) { + print('js免嗅错误:'+e.message); + lazy_play = common_play; + } + }else{ + lazy_play = common_play; + } + // print('play_json:'+typeof(rule.play_json)); + // console.log(Array.isArray(rule.play_json)); + if(Array.isArray(rule.play_json) && rule.play_json.length >0){ // 数组情况判断长度大于0 + let web_url = lazy_play.url; + for(let pjson of rule.play_json){ + if(pjson.re && (pjson.re==='*'||web_url.match(new RegExp(pjson.re)))){ + if(pjson.json && typeof(pjson.json)==='object'){ + let base_json = pjson.json; + // print('开始合并:'); + // print(base_json); + lazy_play = Object.assign(lazy_play,base_json); + break; + } + } + } + }else if(rule.play_json && !Array.isArray(rule.play_json)){ // 其他情况 非[] 判断true/false + let base_json = { + jx:1, + parse:1, + }; + lazy_play = Object.assign(lazy_play,base_json); + }else if(!rule.play_json){ // 不解析传0 + let base_json = { + jx:0, + parse:1, + }; + lazy_play = Object.assign(lazy_play,base_json); + } + console.log(JSON.stringify(lazy_play)); + return JSON.stringify(lazy_play); +} + +/** + * 本地代理解析规则 + * @param params + */ +function proxyParse(proxyObj){ + var input = proxyObj.params; + if(proxyObj.proxy_rule){ + log('准备执行本地代理规则:\n'+proxyObj.proxy_rule); + try { + eval(proxyObj.proxy_rule); + if(input && input!== proxyObj.params && Array.isArray(input) &&input.length===3){ + return input + }else{ + return [404,'text/plain','Not Found'] + } + }catch (e) { + return [500,'text/plain','代理规则错误:'+e.message] + } + + }else{ + return [404,'text/plain','Not Found'] + } +} + +/** + * 辅助嗅探解析规则 + * @param isVideoObj + * @returns {boolean} + */ +function isVideoParse(isVideoObj){ + var input = isVideoObj.url; + if(!isVideoObj.t){ // t为假代表默认传的正则字符串 + let re_matcher = new RegExp(isVideoObj.isVideo,'i'); // /g匹配多个,/i不区分大小写,/m匹配多行 + return re_matcher.test(input); + }else{ + // 执行js + try { + eval(isVideoObj.isVideo); + if(typeof(input)==='boolean'){ + return input + }else{ + return false + } + }catch (e) { + log('执行嗅探规则发生错误:'+e.message); + return false + } + } +} + +/** + * js源预处理特定返回对象中的函数 + * @param ext + */ +function init(ext) { + console.log('init'); + try { + // make shared jsContext happy muban不能import,不然会造成换源继承后变量被篡改 + // if (typeof (globalThis.mubanJs) === 'undefined') { + // let mubanJs = request('https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/js/模板.js', { 'User-Agent': MOBILE_UA }); + // mubanJs = mubanJs.replace('export default', '(function() {return muban;}()) // export default'); + // // console.log(mubanJs); + // globalThis.mubanJs = mubanJs; + // } + // let muban = eval(globalThis.mubanJs); + + let muban = 模板.getMubans(); + // print(typeof (muban)); + // print(muban); + if (typeof ext == 'object'){ + rule = ext; + } else if (typeof ext == 'string') { + if (ext.startsWith('http')) { + let query = getQuery(ext); // 获取链接传参 + let js = request(ext,{'method':'GET'}); + if (js){ + eval(js.replace('var rule', 'rule')); + } + if(query.type==='url' && query.params){ // 指定type是链接并且传了params支持简写如 ./xx.json + rule.params = urljoin(ext,query.params); + }else if(query.params){ // 没指定type直接视为字符串 + rule.params = query.params; + } + } else { + eval(ext.replace('var rule', 'rule')); + } + } + if (rule.模板 && muban.hasOwnProperty(rule.模板)) { + print('继承模板:'+rule.模板); + rule = Object.assign(muban[rule.模板], rule); + } + /** 处理一下 rule规则关键字段没传递的情况 **/ + let rule_cate_excludes = (rule.cate_exclude||'').split('|').filter(it=>it.trim()); + let rule_tab_excludes = (rule.tab_exclude||'').split('|').filter(it=>it.trim()); + rule_cate_excludes = rule_cate_excludes.concat(CATE_EXCLUDE.split('|').filter(it=>it.trim())); + rule_tab_excludes = rule_tab_excludes.concat(TAB_EXCLUDE.split('|').filter(it=>it.trim())); + + rule.cate_exclude = rule_cate_excludes.join('|'); + rule.tab_exclude = rule_tab_excludes.join('|'); + rule.host = (rule.host||'').rstrip('/'); + HOST = rule.host; + if(rule.hostJs){ + console.log(`检测到hostJs,准备执行...`); + try { + eval(rule.hostJs); + rule.host = HOST.rstrip('/'); + }catch (e) { + console.log(`执行${rule.hostJs}获取host发生错误:`+e.message); + } + } + rule.url = rule.url||''; + rule.double = rule.double||false; + rule.homeUrl = rule.homeUrl||''; + rule.detailUrl = rule.detailUrl||''; + rule.searchUrl = rule.searchUrl||''; + rule.homeUrl = rule.host&&rule.homeUrl?urljoin(rule.host,rule.homeUrl):(rule.homeUrl||rule.host); + rule.homeUrl = cheerio.jinja2(rule.homeUrl,{rule:rule}); + rule.detailUrl = rule.host&&rule.detailUrl?urljoin(rule.host,rule.detailUrl):rule.detailUrl; + rule.二级访问前 = rule.二级访问前||''; + if(rule.url.includes('[')&&rule.url.includes(']')){ + let u1 = rule.url.split('[')[0] + let u2 = rule.url.split('[')[1].split(']')[0] + rule.url = rule.host && rule.url?urljoin(rule.host,u1)+'['+urljoin(rule.host,u2)+']':rule.url; + }else{ + rule.url = rule.host && rule.url ? urljoin(rule.host,rule.url) : rule.url; + } + if(rule.searchUrl.includes('[')&&rule.searchUrl.includes(']')&&!rule.searchUrl.includes('#')){ + let u1 = rule.searchUrl.split('[')[0] + let u2 = rule.searchUrl.split('[')[1].split(']')[0] + rule.searchUrl = rule.host && rule.searchUrl?urljoin(rule.host,u1)+'['+urljoin(rule.host,u2)+']':rule.searchUrl; + }else{ + rule.searchUrl = rule.host && rule.searchUrl ? urljoin(rule.host,rule.searchUrl) : rule.searchUrl; + } + + rule.timeout = rule.timeout||5000; + rule.encoding = rule.编码||rule.encoding||'utf-8'; + rule.search_encoding = rule.搜索编码||rule.search_encoding||''; + rule.图片来源 = rule.图片来源||''; + rule.图片替换 = rule.图片替换||''; + rule.play_json = rule.hasOwnProperty('play_json')?rule.play_json:[]; + rule.pagecount = rule.hasOwnProperty('pagecount')?rule.pagecount:{}; + rule.proxy_rule = rule.hasOwnProperty('proxy_rule')?rule.proxy_rule:''; + rule.sniffer = rule.hasOwnProperty('sniffer')?rule.sniffer:''; + rule.sniffer = !!(rule.sniffer && rule.sniffer!=='0' && rule.sniffer!=='false'); + + rule.isVideo = rule.hasOwnProperty('isVideo')?rule.isVideo:''; + + rule.tab_remove = rule.hasOwnProperty('tab_remove')?rule.tab_remove:[]; + rule.tab_order = rule.hasOwnProperty('tab_order')?rule.tab_order:[]; + rule.tab_rename = rule.hasOwnProperty('tab_rename')?rule.tab_rename:{}; + + if(rule.headers && typeof(rule.headers) === 'object'){ + try { + let header_keys = Object.keys(rule.headers); + for(let k of header_keys){ + if(k.toLowerCase() === 'user-agent'){ + let v = rule.headers[k]; + console.log(v); + if(['MOBILE_UA','PC_UA','UC_UA','IOS_UA','UA'].includes(v)){ + rule.headers[k] = eval(v); + } + }else if(k.toLowerCase() === 'cookie'){ + let v = rule.headers[k]; + if(v && v.startsWith('http')){ + console.log(v); + try { + v = fetch(v); + console.log(v); + rule.headers[k] = v; + }catch (e) { + console.log(`从${v}获取cookie发生错误:`+e.message); + } + } + } + } + }catch (e) { + console.log('处理headers发生错误:'+e.message); + } + } + // print(rule.headers); + rule_fetch_params = {'headers': rule.headers||false, 'timeout': rule.timeout, 'encoding': rule.encoding}; + oheaders = rule.headers||{}; + RKEY = typeof(key)!=='undefined'&&key?key:'drpy_' + (rule.title || rule.host); + pre(); // 预处理 + init_test(); + }catch (e) { + console.log('init_test发生错误:'+e.message); + } +} + +let homeHtmlCache = undefined; + +/** + * js源获取首页分类和筛选特定返回对象中的函数 + * @param filter 筛选条件字典对象 + * @returns {string} + */ +function home(filter) { + console.log("home"); + if(typeof(rule.filter) === 'string' && rule.filter.trim().length > 0){ + try { + let filter_json = ungzip(rule.filter.trim()); + rule.filter = JSON.parse(filter_json); + }catch (e) { + rule.filter = {}; + } + } + let homeObj = { + filter:rule.filter||false, + MY_URL: rule.homeUrl, + class_name: rule.class_name || '', + class_url: rule.class_url || '', + class_parse: rule.class_parse || '', + cate_exclude: rule.cate_exclude, + }; + return homeParse(homeObj); +} + +/** + * js源获取首页推荐数据列表特定返回对象中的函数 + * @param params + * @returns {string} + */ +function homeVod(params) { + console.log("homeVod"); + let homeVodObj = { + 推荐:rule.推荐, + double:rule.double, + homeUrl:rule.homeUrl, + detailUrl:rule.detailUrl + }; + return homeVodParse(homeVodObj) + // return "{}"; +} + +/** + * js源获取分类页一级数据列表特定返回对象中的函数 + * @param tid 分类id + * @param pg 页数 + * @param filter 当前选中的筛选条件 + * @param extend 扩展 + * @returns {string} + */ +function category(tid, pg, filter, extend) { + let cateObj = { + url: rule.url, + 一级: rule.一级, + tid: tid, + pg: parseInt(pg), + filter: filter, + extend: extend + }; + // console.log(JSON.stringify(extend)); + return categoryParse(cateObj) +} + +/** + * js源获取二级详情页数据特定返回对象中的函数 + * @param vod_url 一级列表中的vod_id或者是带分类的自拼接 vod_id 如 fyclass$vod_id + * @returns {string} + */ +function detail(vod_url) { + let orId = vod_url; + let fyclass = ''; + log('orId:'+orId); + if(vod_url.indexOf('$')>-1){ + let tmp = vod_url.split('$'); + fyclass = tmp[0]; + vod_url = tmp[1]; + } + let detailUrl = vod_url.split('@@')[0]; + let url; + if(!detailUrl.startsWith('http')&&!detailUrl.includes('/')){ + url = rule.detailUrl.replaceAll('fyid', detailUrl).replaceAll('fyclass',fyclass); + }else if(detailUrl.includes('/')){ + url = urljoin(rule.homeUrl,detailUrl); + }else{ + url = detailUrl + } + let detailObj = { + orId: orId, + url:url, + 二级:rule.二级, + 二级访问前:rule.二级访问前, + detailUrl:detailUrl, + fyclass:fyclass, + tab_exclude:rule.tab_exclude, + } + return detailParse(detailObj) +} + +/** + * js源选集按钮播放点击事件特定返回对象中的函数 + * @param flag 线路名 + * @param id 播放按钮的链接 + * @param flags 全局配置的flags是否需要解析的标识列表 + * @returns {string} + */ +function play(flag, id, flags) { + let playObj = { + url:id, + flag:flag, + flags:flags + } + return playParse(playObj); +} + +/** + * js源搜索返回的数据列表特定返回对象中的函数 + * @param wd 搜索关键字 + * @param quick 是否来自快速搜索 + * @returns {string} + */ +function search(wd, quick, pg) { + if(rule.search_encoding){ + if(rule.search_encoding.toLowerCase()!=='utf-8'){ + // 按搜索编码进行编码 + wd = encodeStr(wd,rule.search_encoding); + } + }else if(rule.encoding && rule.encoding.toLowerCase()!=='utf-8'){ + // 按全局编码进行编码 + wd = encodeStr(wd,rule.encoding); + } + let searchObj = { + searchUrl: rule.searchUrl, + 搜索: rule.搜索, + wd: wd, + //pg: pg, + pg: pg||1, + quick: quick, + }; + // console.log(JSON.stringify(searchObj)); + return searchParse(searchObj) +} + +/** + * js源本地代理返回的数据列表特定返回对象中的函数 + * @param params 代理链接参数比如 /proxy?do=js&url=https://wwww.baidu.com => params就是 {do:'js','url':'https://wwww.baidu.com'} + * @returns {*} + */ +function proxy(params){ + if(rule.proxy_rule&&rule.proxy_rule.trim()){ + rule.proxy_rule = rule.proxy_rule.trim(); + } + if(rule.proxy_rule.startsWith('js:')){ + rule.proxy_rule = rule.proxy_rule.replace('js:',''); + } + let proxyObj = { + params:params, + proxy_rule:rule.proxy_rule + }; + return proxyParse(proxyObj) +} + + +/** + * 是否启用辅助嗅探功能,启用后可以根据isVideo函数进行手动识别为视频的链接地址。默认为false + * @returns {*|boolean|boolean} + */ +function sniffer(){ + let enable_sniffer = rule.sniffer || false; + if(enable_sniffer){ + // log('准备执行辅助嗅探代理规则:\n'+rule.isVideo); + log('开始执行辅助嗅探代理规则...'); + } + return enable_sniffer +} + +/** + * 启用辅助嗅探功能后根据次函数返回的值识别地址是否为视频,返回true/false + * @param url + */ +function isVideo(url){ + let t = 0; + let is_video; + if(rule.isVideo &&rule.isVideo.trim()){ + is_video = rule.isVideo.trim(); + } + if(is_video.startsWith('js:')){ + is_video = is_video.replace('js:',''); + t = 1; + } + let isVideoObj = { + url:url, + isVideo:is_video, + t:t, + }; + let result = isVideoParse(isVideoObj); + if(result){ + log('成功执行辅助嗅探规则并检测到视频地址:\n'+rule.isVideo); + } + return result +} + +function DRPY(){//导出函数 + return { + init: init, + home: home, + homeVod: homeVod, + category: category, + detail: detail, + play: play, + search: search, + proxy:proxy, + sniffer:sniffer, + isVideo:isVideo, + fixAdM3u8Ai:fixAdM3u8Ai, + } +} + +/** + * 导出函数无法简写成下面的形式: + + export default { + ...DRPY, + DRPY + } + + */ + +// 导出函数对象 +export default { + init, + home, + homeVod, + category, + detail, + play, + search, + proxy, + sniffer, + isVideo, + fixAdM3u8Ai, + DRPY, +} \ No newline at end of file diff --git a/zyplayer/drpy_dzlive/drpy_libs/drpy2.min.js b/zyplayer/drpy_dzlive/drpy_libs/drpy2.min.js new file mode 100644 index 0000000..5940a44 --- /dev/null +++ b/zyplayer/drpy_dzlive/drpy_libs/drpy2.min.js @@ -0,0 +1,73 @@ +import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import"./jsencrypt.js";import"./node-rsa.js";import"./pako.min.js";import 模板 from"./模板.js";import{gbkTool}from"./gbk.js";function init_test(){console.log("init_test_start");console.log("当前版本号:"+VERSION);console.log("本地代理地址:"+getProxyUrl());console.log(RKEY);console.log(JSON.stringify(rule));console.log("init_test_end")}function rsa_demo_test(){let t1=(new Date).getTime();let pkcs1_public=` +-----BEGIN RSA PUBLIC KEY----- +MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy +lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE= +-----END RSA PUBLIC KEY----- +`.trim();let pkcs1_public_pem=` +MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy +lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE= +`.trim();let pkcs8_public=` +-----BEGIN PUBLIC KEY----- +MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/ +nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ== +-----END PUBLIC KEY-----`.trim();let pkcs8_public_pem=` +MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/ +nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ== +`.trim();let pkcs1_private=` +-----BEGIN RSA PRIVATE KEY----- +MIIBOAIBAAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/nas61fIPGUUrkPenokm7 +ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQI/b6OV1z65UokQaMvSeRXt +0Yv6wiYtduQI9qpq5nzy/ytaqsbBfClNTi/HifKPKxlRouWFkc518EQI8LBxoarJ +AiEA4DaONMplV8PQNa3TKn2F+SDEvLOCjdL0kHKdN90Ti28CIQDDZnTBaHgZwZbA +hS7Bbf5yvwjWMhO6Y7l04/Qm7R+35QIgPuQuqXIoUSD080mp1N5WyRW++atksIF+ +5lGv9e6GP/MCICnj8y/rl6Pd7tXDN6zcSeqLrfdNsREKhB3dKOCXgW9JAiAFYtFS +EJNBXVRTK42SNsZ2hJ/9xLwOwnH2epT8Q43s3Q== +-----END RSA PRIVATE KEY----- +`.trim();let pkcs8_private=` +-----BEGIN PRIVATE KEY----- +MIIBUgIBADANBgkqhkiG9w0BAQEFAASCATwwggE4AgEAAkEAqyNKUPxEUaSdzrtf +dFyXnRavOOpw2D+dqzrV8g8ZRSuQ96eiSbtkcLCsMpbEPcWNMWD6UWVGSjBHke3v +YJkTSwIDAQABAj9vo5XXPrlSiRBoy9J5Fe3Ri/rCJi125Aj2qmrmfPL/K1qqxsF8 +KU1OL8eJ8o8rGVGi5YWRznXwRAjwsHGhqskCIQDgNo40ymVXw9A1rdMqfYX5IMS8 +s4KN0vSQcp033ROLbwIhAMNmdMFoeBnBlsCFLsFt/nK/CNYyE7pjuXTj9CbtH7fl +AiA+5C6pcihRIPTzSanU3lbJFb75q2SwgX7mUa/17oY/8wIgKePzL+uXo93u1cM3 +rNxJ6out902xEQqEHd0o4JeBb0kCIAVi0VIQk0FdVFMrjZI2xnaEn/3EvA7CcfZ6 +lPxDjezd +-----END PRIVATE KEY----- +`.trim();let data=` +NodeRsa +这是node-rsa 现在修改集成在drpy里使用`.trim();let encryptedWithPublic=NODERSA.encryptRSAWithPublicKey(data,pkcs1_public,{outputEncoding:"base64",options:{environment:"browser",encryptionScheme:"pkcs1_oaep"}});console.log("公钥加密");console.log(encryptedWithPublic);let decryptedWithPrivate=NODERSA.decryptRSAWithPrivateKey(encryptedWithPublic,pkcs1_private,{options:{environment:"browser",encryptionScheme:"pkcs1_oaep"}});console.log("私钥解密");console.log(decryptedWithPrivate);let pkcs1_sha256_sign=NODERSA.sign("1",pkcs1_private,{outputEncoding:"base64",options:{environment:"browser",encryptionScheme:"pkcs1",signingScheme:"pkcs1-sha256"}});console.log("pkcs1_sha256_sign");console.log(pkcs1_sha256_sign);let pkcs1_sha256_sign_verify=NODERSA.verify("1","Oulx2QrgeipKYBtqEDqFb2s/+ndk2cGQxO4CkhU7iBM1vyNmmvqubpsmeoUuN3waGrYZLknSEdwBkfv0tUMpFQ==",pkcs1_private,{options:{environment:"browser",encryptionScheme:"pkcs1",signingScheme:"pkcs1-sha256"}});console.log("pkcs1_sha256_sign_verify");console.log(pkcs1_sha256_sign_verify);let pkcs1_oaep_sha256=NODERSA.encryptRSAWithPublicKey(data,`-----BEGIN RSA PUBLIC KEY----- +MIIBCgKCAQEA5KOq1gRNyllLNWKQy8sGpZE3Q1ULLSmzZw+eaAhj9lvqn7IsT1du +SYn08FfoOA2qMwtz+1O2l1mgzNoSVCyVpVabnTG+C9XKeZXAnJHd8aYA7l7Sxhdm +kte+iymYZ0ZBPzijo8938iugtVvqi9UgDmnY3u/NlQDqiL5BGqSxSTd/Sgmy3zD8 +PYzEa3wD9vehQ5fZZ45vKIq8GNVh2Z8+IGO85FF1OsN7+b2yGJa/FmDDNn0+HP+m +PfI+kYBqEVpo0Ztbc3UdxgFwGC8O1n8AQyriwHnSOtIiuBH62J/7qyC/3LEAApRb +Dd9YszqzmODjQUddZKHmvc638VW+azc0EwIDAQAB +-----END RSA PUBLIC KEY----- +`,{outputEncoding:"base64",options:{environment:"browser",encryptionScheme:{scheme:"pkcs1_oaep",hash:"sha256"}}});console.log("pkcs1_oaep_sha256");console.log(pkcs1_oaep_sha256);decryptedWithPrivate=NODERSA.decryptRSAWithPrivateKey("kSZesAAyYh2hdsQnYMdGqb6gKAzTauBKouvBzWcc4+F8RvGd0nwO6mVkUMVilPgUuNxjEauHayHiY8gI3Py45UI3+km0rSGyHrS6dHiHgCkMejXHieglYzAB0IxX3Jkm4z/66bdB/D+GFy0oct5fGCMI1UHPjEAYOsazJDa8lBFNbjiWFeb/qiZtIx3vGM7KYPAZzyRf/zPbbQ8zy9xOmRuOl5nnIxgo0Okp3KO/RIPO4GZOSBA8f2lx1UtNwwrXAMpcNavtoqHVcjJ/9lcotXYQFrn5b299pSIRf2gVm8ZJ31SK6Z8cc14nKtvgnmsgClDzIXJ1o1RcDK+knVAySg==",`-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA5KOq1gRNyllLNWKQy8sGpZE3Q1ULLSmzZw+eaAhj9lvqn7Is +T1duSYn08FfoOA2qMwtz+1O2l1mgzNoSVCyVpVabnTG+C9XKeZXAnJHd8aYA7l7S +xhdmkte+iymYZ0ZBPzijo8938iugtVvqi9UgDmnY3u/NlQDqiL5BGqSxSTd/Sgmy +3zD8PYzEa3wD9vehQ5fZZ45vKIq8GNVh2Z8+IGO85FF1OsN7+b2yGJa/FmDDNn0+ +HP+mPfI+kYBqEVpo0Ztbc3UdxgFwGC8O1n8AQyriwHnSOtIiuBH62J/7qyC/3LEA +ApRbDd9YszqzmODjQUddZKHmvc638VW+azc0EwIDAQABAoIBADZ/QGgUzInvsLp/ +zO2WbfYm39o/uhNAvk9RbLt1TIZbMFhyOpeKynHi3Swwd9xsfWX/U9zS/lGi/m31 +iKrhmaW4OA1G3vqpMcK7TBbFufYwUEaA+ZJX344euH8pIfdzyneMQ4z3Far2dS7l +QsmjuilVV2kEFadveXewiYoVOWCu00w6bN8wy2SIHlQn+kIL6HQhWz12iKKflIKu +eGRdzLHsKmBt6WbY1Wuhx7HU0fAKdlBDPxCHNlI+kybUYE9o5C2vJiaVM5wqJBgZ +8Dz8kt1QbLJ910JoLXkLVQ8uC8NJKQwFtqQjTGPnEq0+wbgz6Ij599rKZkwW/xq9 +l6KoUiECgYEA6Ah42tVdkNW047f03xVYXFH96RgorHRS36mR8Y+ONUq1fwKidovC +WjwVujt4OPf3l1W6iyn/F6cu/bsmvPrSc3HTN0B1V31QK4OjgetxQ2PSbTldH02J +NPzkt+v+cPxXpx/P5mgt7Weefw5txU547KubGrHUV5rBKFtIx9pj16MCgYEA/EF0 +o19+D24DZAPwlDS5VbEd7FStnwY4oQ5PqbuNOSbSJLMWU0AqzXcRokp8UTyCZ0X3 +ATkS1REq97kShCuR+npTR6a6DlY7sdpPI1SMLNajgB2tkx0EOzX+PfNIbHUd4jpJ +I0ZMAHv/OOtkzQHDaeTWBTrzsWm6/nTiykfduNECgYEA46AMD4HpPECqKAs66e5i +tI6q7JSKskObWVdcmQEfnSAhVOwcvPb2Ptda6UuV8S0xcwDi88rLOUUFUFzc79+P +vTkY38cYVi/VChsluDpk7ptqv0PbGu5Rf+3n4pZdEjI7OvR2W64wAAn67uIUxc7p +yiO/ET0K9rYWb6S9jXGtKMkCgYEA2kPAqoO7zZoBMQ7/oR0lp/HC1HRIbiqx4RlC +8Lgpb+QZPEwA6zPAVVvLVENi4d+bbcRp/xLlKpraNNJcJSSWAMbLPFoU7sbKjA87 +HnTPfRSTEA2d3Ibk3F7Rh8TzS3Ti0JZiJjVzGZAwu41iAMifzwaD8K6boUy80eNN +QH2CaaECgYBUsLYvC/MiYg3w+LGOONuQongoVUXjGqnw2bjVa9RK7lwRdXPUqJ51 +MpVO98IkoLvGSI/0sGNP3GKNhC+eMGjJAVwFyEuOn+JsmMv9Y9uStIVi5tIHIhKw +m7mp8il0kaftHdSxTbspG3tZ2fjIiFIZkLEOmRpd7ogWumgOajzUdA== +-----END RSA PRIVATE KEY-----`,{options:{environment:"browser",encryptionScheme:"pkcs1_oaep"}});console.log("decryptedWithPrivate");console.log(decryptedWithPrivate);(()=>{let key=new NODERSA.NodeRSA({b:1024});key.setOptions({encryptionScheme:"pkcs1"});let text=`你好drpy node-ras`;let encrypted=key.encrypt(text,"base64");console.log("encrypted: ",encrypted);const decrypted=key.decrypt(encrypted,"utf8");console.log("decrypted: ",decrypted)})();let t2=(new Date).getTime();console.log("rsa_demo_test 测试耗时:"+(t2-t1)+"毫秒")}function pre(){if(typeof rule.预处理==="string"&&rule.预处理&&rule.预处理.trim()){let code=rule.预处理.trim();console.log("执行预处理代码:"+code);if(code.startsWith("js:")){code=code.replace("js:","")}try{eval(code)}catch(e){console.log("预处理执行失败:"+e.message)}}}let rule={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.50beta12 202400514";const MOBILE_UA="Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36";const PC_UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36";const UA="Mozilla/5.0";const UC_UA="Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36";const IOS_UA="Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1";const RULE_CK="cookie";const CATE_EXCLUDE="首页|留言|APP|下载|资讯|新闻|动态";const TAB_EXCLUDE="猜你|喜欢|下载|剧情|热播";const OCR_RETRY=3;const OCR_API="http://drpy.nokia.press:8028/ocr/drpy/text";if(typeof MY_URL==="undefined"){var MY_URL}var HOST;var RKEY;var fetch;var print;var log;var rule_fetch_params;var fetch_params;var oheaders;var _pdfh;var _pdfa;var _pd;const DOM_CHECK_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/;const SPECIAL_URL=/^(ftp|magnet|thunder|ws):/;const NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/;const SELECT_REGEX=/:eq|:lt|:gt|#/g;const SELECT_REGEX_A=/:eq|:lt|:gt/g;const $js={toString(func){let strfun=func.toString();return strfun.replace(/^\(\)(\s+)?=>(\s+)?\{/,"js:").replace(/\}$/,"")}};function window_b64(){let b64map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let base64DecodeChars=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,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,-1,-1,-1,-1,-1);function btoa(str){var out,i,len;var c1,c2,c3;len=str.length;i=0;out="";while(i>2);out+=b64map.charAt((c1&3)<<4);out+="==";break}c2=str.charCodeAt(i++);if(i==len){out+=b64map.charAt(c1>>2);out+=b64map.charAt((c1&3)<<4|(c2&240)>>4);out+=b64map.charAt((c2&15)<<2);out+="=";break}c3=str.charCodeAt(i++);out+=b64map.charAt(c1>>2);out+=b64map.charAt((c1&3)<<4|(c2&240)>>4);out+=b64map.charAt((c2&15)<<2|(c3&192)>>6);out+=b64map.charAt(c3&63)}return out}function atob(str){var c1,c2,c3,c4;var i,len,out;len=str.length;i=0;out="";while(i>4);do{c3=str.charCodeAt(i++)&255;if(c3==61)return out;c3=base64DecodeChars[c3]}while(i>2);do{c4=str.charCodeAt(i++)&255;if(c4==61)return out;c4=base64DecodeChars[c4]}while(ithis.length){return false}else{return this.indexOf(search,start)!==-1}}}if(!Array.prototype.includes){Object.defineProperty(Array.prototype,"includes",{value:function(searchElement,fromIndex){if(this==null){throw new TypeError('"this" is null or not defined')}var o=Object(this);var len=o.length>>>0;if(len===0){return false}var n=fromIndex|0;var k=Math.max(n>=0?n:len-Math.abs(n),0);while(k>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:out+=String.fromCharCode(c);break;case 12:case 13:char2=array[i++];out+=String.fromCharCode((c&31)<<6|char2&63);break;case 14:char2=array[i++];char3=array[i++];out+=String.fromCharCode((c&15)<<12|(char2&63)<<6|(char3&63)<<0);break}}return out}function gzip(str){let arr=pako.gzip(str,{to:"string"});return uint8ArrayToBase64(arr)}function ungzip(b64Data){let strData=atob(b64Data);const charData=strData.split("").map(function(x){return x.charCodeAt(0)});const binData=new Uint8Array(charData);const data=pako.inflate(binData);return Utf8ArrayToStr(data)}function encodeStr(input,encoding){encoding=encoding||"gbk";if(encoding.startsWith("gb")){const strTool=gbkTool();input=strTool.encode(input)}return input}function decodeStr(input,encoding){encoding=encoding||"gbk";if(encoding.startsWith("gb")){const strTool=gbkTool();input=strTool.decode(input)}return input}function getCryptoJS(){return'console.log("CryptoJS已装载");'}const RSA={decode:function(data,key,option){option=option||{};if(typeof JSEncrypt==="function"){let chunkSize=option.chunkSize||117;let privateKey=this.getPrivateKey(key);const decryptor=new JSEncrypt;decryptor.setPrivateKey(privateKey);let uncrypted="";uncrypted=decryptor.decryptUnicodeLong(data);return uncrypted}else{return false}},encode:function(data,key,option){option=option||{};if(typeof JSEncrypt==="function"){let chunkSize=option.chunkSize||117;let publicKey=this.getPublicKey(key);const encryptor=new JSEncrypt;encryptor.setPublicKey(publicKey);let encrypted="";encrypted=encryptor.encryptUnicodeLong(data);return encrypted}else{return false}},fixKey(key,prefix,endfix){if(!key.includes(prefix)){key=prefix+key}if(!key.includes(endfix)){key+=endfix}return key},getPrivateKey(key){let prefix="-----BEGIN RSA PRIVATE KEY-----";let endfix="-----END RSA PRIVATE KEY-----";return this.fixKey(key,prefix,endfix)},getPublicKey(key){let prefix="-----BEGIN PUBLIC KEY-----";let endfix="-----END PUBLIC KEY-----";return this.fixKey(key,prefix,endfix)}};function getProxyUrl(){if(typeof getProxy==="function"){return getProxy(true)}else{return"http://127.0.0.1:9978/proxy?do=js"}}function fixAdM3u8(m3u8_text,m3u8_url,ad_remove){if(!m3u8_text&&!m3u8_url||!m3u8_text&&m3u8_url&&!m3u8_url.startsWith("http")){return""}if(!m3u8_text){log("m3u8_url:"+m3u8_url);m3u8_text=request(m3u8_url)}log("len(m3u8_text):"+m3u8_text.length);if(!ad_remove){return m3u8_text}if(ad_remove.startsWith("reg:")){ad_remove=ad_remove.slice(4)}else if(ad_remove.startsWith("js:")){ad_remove=ad_remove.slice(3)}let m3u8_start=m3u8_text.slice(0,m3u8_text.indexOf("#EXTINF")).trim();let m3u8_body=m3u8_text.slice(m3u8_text.indexOf("#EXTINF"),m3u8_text.indexOf("#EXT-X-ENDLIST")).trim();let m3u8_end=m3u8_text.slice(m3u8_text.indexOf("#EXT-X-ENDLIST")).trim();let murls=[];let m3_body_list=m3u8_body.split("\n");let m3_len=m3_body_list.length;let i=0;while(i{new_m3u8_body.push(it)})}}new_m3u8_body=new_m3u8_body.join("\n").trim();m3u8_text=[m3u8_start,new_m3u8_body,m3u8_end].join("\n").trim();return m3u8_text}function fixAdM3u8Ai(m3u8_url,headers){let ts=(new Date).getTime();let option=headers?{headers:headers}:{};function b(s1,s2){let i=0;while(iit.startsWith("#")?it:urljoin(m3u8_url,it)).join("\n");m3u8=m3u8.replace(/\n\n/gi,"\n");let last_url=m3u8.split("\n").slice(-1)[0];if(last_url.length<5){last_url=m3u8.split("\n").slice(-2)[0]}if(last_url.includes(".m3u8")&&last_url!==m3u8_url){m3u8_url=urljoin2(m3u8_url,last_url);log("嵌套的m3u8_url:"+m3u8_url);m3u8=request(m3u8_url,option)}let s=m3u8.trim().split("\n").filter(it=>it.trim()).join("\n");let ss=s.split("\n");let firststr=ss.find(x=>!x.startsWith("#"));let maxl=0;let firststrlen=firststr.length;let ml=Math.round(ss.length/2).toString().length;let maxc=0;let laststr=ss.toReversed().find(x=>{if(!x.startsWith("#")){let k=b(reverseString(firststr),reverseString(x));maxl=b(firststr,x);maxc++;if(firststrlen-maxl<=ml+k||maxc>10){return true}}return false});log("最后一条切片:"+laststr);let ad_urls=[];for(let i=0;i=end){return lists}let first=lists[start];let second=lists[end];if(key){try{first=first[key];second=second[key]}catch(e){}}if(option&&typeof option==="function"){try{first=option(first);second=option(second)}catch(e){}}first+="";second+="";if(first.match(/(\d+)/)&&second.match(/(\d+)/)){let num1=Number(first.match(/(\d+)/)[1]);let num2=Number(second.match(/(\d+)/)[1]);if(num1>num2){lists.reverse()}}return lists}let VODS=[];let VOD={};let TABS=[];let LISTS=[];globalThis.encodeUrl=urlencode;globalThis.urlencode=urlencode;function getQuery(url){try{if(url.indexOf("?")>-1){url=url.slice(url.indexOf("?")+1)}let arr=url.split("#")[0].split("&");const resObj={};arr.forEach(item=>{let arr1=item.split("=");let key=arr1[0];let value=arr1.slice(1).join("=");resObj[key]=value});return resObj}catch(err){log("getQuery发生错误:"+e.message);return{}}}function urljoin(fromPath,nowPath){fromPath=fromPath||"";nowPath=nowPath||"";return joinUrl(fromPath,nowPath)}var urljoin2=urljoin;const defaultParser={pdfh:pdfh,pdfa:pdfa,pd:pd};function pdfh2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print("html对象转文本发生了错误:"+e.message)}let result=defaultParser.pdfh(html2,parse);let option=parse.includes("&&")?parse.split("&&").slice(-1)[0]:parse.split(" ").slice(-1)[0];if(/style/.test(option.toLowerCase())&&/url\(/.test(result)){try{result=result.match(/url\((.*?)\)/)[1];result=result.replace(/^['|"](.*)['|"]$/,"$1")}catch(e){}}return result}function pdfa2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print("html对象转文本发生了错误:"+e.message)}return defaultParser.pdfa(html2,parse)}function pd2(html,parse,uri){let ret=pdfh2(html,parse);if(typeof uri==="undefined"||!uri){uri=""}if(DOM_CHECK_ATTR.test(parse)&&!SPECIAL_URL.test(ret)){if(/http/.test(ret)){ret=ret.slice(ret.indexOf("http"))}else{ret=urljoin(MY_URL,ret)}}return ret}const parseTags={jsp:{pdfh:pdfh2,pdfa:pdfa2,pd:pd2},json:{pdfh(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}parse=parse.split("||");for(let ps of parse){let ret=cheerio.jp(ps,html);if(Array.isArray(ret)){ret=ret[0]||""}else{ret=ret||""}if(ret&&typeof ret!=="string"){ret=ret.toString()}if(ret){return ret}}return""},pdfa(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}let ret=cheerio.jp(parse,html);if(Array.isArray(ret)&&Array.isArray(ret[0])&&ret.length===1){return ret[0]||[]}return ret||[]},pd(html,parse){let ret=parseTags.json.pdfh(html,parse);if(ret){return urljoin(MY_URL,ret)}return ret}},jq:{pdfh(html,parse){if(!html||!parse||!parse.trim()){return""}parse=parse.trim();let result=defaultParser.pdfh(html,parse);return result},pdfa(html,parse){if(!html||!parse||!parse.trim()){return[]}parse=parse.trim();let result=defaultParser.pdfa(html,parse);print(`pdfa解析${parse}=>${result.length}`);return result},pd(html,parse,base_url){if(!html||!parse||!parse.trim()){return""}parse=parse.trim();base_url=base_url||MY_URL;return defaultParser.pd(html,parse,base_url)}},getParse(p0){if(p0.startsWith("jsp:")){return this.jsp}else if(p0.startsWith("json:")){return this.json}else if(p0.startsWith("jq:")){return this.jq}else{return this.jq}}};const stringify=JSON.stringify;const jsp=parseTags.jsp;const jq=parseTags.jq;function readFile(filePath){filePath=filePath||"./uri.min.js";var fd=os.open(filePath);var buffer=new ArrayBuffer(1024);var len=os.read(fd,buffer,0,1024);console.log(len);let text=String.fromCharCode.apply(null,new Uint8Array(buffer));console.log(text);return text}function dealJson(html){try{html=html.trim();if(!(html.startsWith("{")&&html.endsWith("}")||html.startsWith("[")&&html.endsWith("]"))){html="{"+html.match(/.*?\{(.*)\}/m)[1]+"}"}}catch(e){}try{html=JSON.parse(html)}catch(e){}return html}var OcrApi={api:OCR_API,classification:function(img){let code="";try{log("通过drpy_ocr验证码接口过验证...");let html=request(OCR_API,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true);code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.toLowerCase()==="set-cookie");cookie=setCk?json[setCk].split(";")[0]:""}console.log("cookie:"+cookie);let img=json.body;let code=OcrApi.classification(img);console.log(`第${cnt+1}次验证码识别结果:${code}`);let submit_url=`${host}/index.php/ajax/verify_check?type=search&verify=${code}`;console.log(submit_url);let html=request(submit_url,{headers:{Cookie:cookie,"User-Agent":MOBILE_UA},method:"POST"});html=JSON.parse(html);if(html.msg==="ok"){console.log(`第${cnt+1}次验证码提交成功`);return cookie}else if(html.msg!=="ok"&&cnt+1>=OCR_RETRY){cookie=""}}catch(e){console.log(`第${cnt+1}次验证码提交失败:${e.message}`);if(cnt+1>=OCR_RETRY){cookie=""}}cnt+=1}return cookie}function setItem(k,v){local.set(RKEY,k,v);console.log(`规则${RKEY}设置${k} => ${v}`)}function getItem(k,v){return local.get(RKEY,k)||v}function clearItem(k){local.delete(RKEY,k)}function getHome(url){if(!url){return""}let tmp=url.split("//");url=tmp[0]+"//"+tmp[1].split("/")[0];try{url=decodeURIComponent(url)}catch(e){}return url}function buildUrl(url,obj){obj=obj||{};if(url.indexOf("?")<0){url+="?"}let param_list=[];let keys=Object.keys(obj);keys.forEach(it=>{param_list.push(it+"="+obj[it])});let prs=param_list.join("&");if(keys.length>0&&!url.endsWith("?")){url+="&"}url+=prs;return url}function $require(url){eval(request(url))}function request(url,obj,ocr_flag){ocr_flag=ocr_flag||false;if(typeof obj==="undefined"||!obj||obj==={}){if(!fetch_params||!fetch_params.headers){let headers={"User-Agent":MOBILE_UA};if(rule.headers){Object.assign(headers,rule.headers)}if(!fetch_params){fetch_params={}}fetch_params.headers=headers}if(!fetch_params.headers.Referer){fetch_params.headers.Referer=getHome(url)}obj=fetch_params}else{let headers=obj.headers||{};let keys=Object.keys(headers).map(it=>it.toLowerCase());if(!keys.includes("user-agent")){headers["User-Agent"]=MOBILE_UA}if(!keys.includes("referer")){headers["Referer"]=getHome(url)}obj.headers=headers}if(rule.encoding&&rule.encoding!=="utf-8"&&!ocr_flag){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="text/html; charset="+rule.encoding}}if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="string"){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="application/x-www-form-urlencoded; charset="+rule.encoding}}else if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="object"){obj.data=obj.body;delete obj.body}if(!url){return obj.withHeaders?"{}":""}if(obj.toBase64){obj.buffer=2;delete obj.toBase64}if(obj.redirect===false){obj.redirect=0}console.log(JSON.stringify(obj.headers));console.log("request:"+url+`|method:${obj.method||"GET"}|body:${obj.body||""}`);let res=req(url,obj);let html=res.content||"";if(obj.withHeaders){let htmlWithHeaders=res.headers;htmlWithHeaders.body=html;return JSON.stringify(htmlWithHeaders)}else{return html}}function post(url,obj){obj.method="POST";return request(url,obj)}fetch=request;print=function(data){data=data||"";if(typeof data=="object"&&Object.keys(data).length>0){try{data=JSON.stringify(data);console.log(data)}catch(e){console.log(typeof data+":"+data.length);return}}else if(typeof data=="object"&&Object.keys(data).length<1){console.log("null object")}else{console.log(data)}};log=print;function checkHtml(html,url,obj){if(/\?btwaf=/.test(html)){let btwaf=html.match(/btwaf(.*?)"/)[1];url=url.split("#")[0]+"?btwaf"+btwaf;print("宝塔验证访问链接:"+url);html=request(url,obj)}return html}function getCode(url,obj){let html=request(url,obj);html=checkHtml(html,url,obj);return html}function getHtml(url){let obj={};if(rule.headers){obj.headers=rule.headers}let cookie=getItem(RULE_CK,"");if(cookie){if(obj.headers&&!Object.keys(obj.headers).map(it=>it.toLowerCase()).includes("cookie")){log("历史无cookie,新增过验证后的cookie");obj.headers["Cookie"]=cookie}else if(obj.headers&&obj.headers.cookie&&obj.headers.cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有小写过期的cookie,更新过验证后的cookie")}else if(obj.headers&&obj.headers.Cookie&&obj.headers.Cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有大写过期的cookie,更新过验证后的cookie")}else if(!obj.headers){obj.headers={Cookie:cookie};log("历史无headers,更新过验证后的含cookie的headers")}}let html=getCode(url,obj);return html}function homeParse(homeObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let classes=[];if(homeObj.class_name&&homeObj.class_url){let names=homeObj.class_name.split("&");let urls=homeObj.class_url.split("&");let cnt=Math.min(names.length,urls.length);for(let i=0;i0){classes=list}}}catch(e){console.log(e.message)}}else if(p.length>=3&&!is_json){try{let html=getHtml(homeObj.MY_URL);if(html){homeHtmlCache=html;let list=_pdfa(html,p0);if(list&&list.length>0){list.forEach((it,idex)=>{try{let name=_pdfh(it,p[1]);if(homeObj.cate_exclude&&new RegExp(homeObj.cate_exclude).test(name)){return}let url=_pd(it,p[2]);if(p.length>3&&p[3]){let exp=new RegExp(p[3]);url=url.match(exp)[1]}classes.push({type_id:url.trim(),type_name:name.trim()})}catch(e){console.log(`分类列表定位第${idex}个元素正常报错:${e.message}`)}})}}}catch(e){console.log(e.message)}}}}classes=classes.filter(it=>!homeObj.cate_exclude||!new RegExp(homeObj.cate_exclude).test(it.type_name));let resp={class:classes};if(homeObj.filter){resp.filters=homeObj.filter}console.log(JSON.stringify(resp));return JSON.stringify(resp)}function getPP(p,pn,pp,ppn){try{let ps=p[pn]==="*"&&pp.length>ppn?pp[ppn]:p[pn];return ps}catch(e){return""}}function homeVodParse(homeVodObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];MY_URL=homeVodObj.homeUrl;console.log(MY_URL);let t1=(new Date).getTime();let p=homeVodObj.推荐;print("p:"+p);if(p==="*"&&rule.一级){p=rule.一级;homeVodObj.double=false}if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级.split(";");if(p.startsWith("js:")){const TYPE="home";var input=MY_URL;HOST=rule.host;eval(p.replace("js:",""));d=VODS}else{p=p.split(";");if(!homeVodObj.double&&p.length<5){return"{}"}else if(homeVodObj.double&&p.length<6){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");let html=homeHtmlCache||getHtml(MY_URL);homeHtmlCache=undefined;if(is_json){html=dealJson(html)}try{console.log("double:"+homeVodObj.double);if(homeVodObj.double){let items=_pdfa(html,p0);let p1=getPP(p,1,pp,0);let p2=getPP(p,2,pp,1);let p3=getPP(p,3,pp,2);let p4=getPP(p,4,pp,3);let p5=getPP(p,5,pp,4);let p6=getPP(p,6,pp,5);for(let item of items){let items2=_pdfa(item,p1);for(let item2 of items2){try{let title=_pdfh(item2,p2);let img="";try{img=_pd(item2,p3)}catch(e){}let desc="";try{desc=_pdfh(item2,p4)}catch(e){}let links=[];for(let _p5 of p5.split("+")){let link=!homeVodObj.detailUrl?_pd(item2,_p5,MY_URL):_pdfh(item2,_p5);links.push(link)}let content;if(p.length>6&&p[6]){content=_pdfh(item2,p6)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){console.log("首页列表双层定位处理发生错误:"+e.message)}}}}else{let items=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);for(let item of items){try{let title=_pdfh(item,p1);let img="";try{img=_pd(item,p2,MY_URL)}catch(e){}let desc="";try{desc=_pdfh(item,p3)}catch(e){}let links=[];for(let _p5 of p4.split("+")){let link=!homeVodObj.detailUrl?_pd(item,_p5,MY_URL):_pdfh(item,_p5);links.push(link)}let content;if(p.length>5&&p[5]){content=_pdfh(item,p5)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){console.log("首页列表单层定位处理发生错误:"+e.message)}}}}catch(e){}}let t2=(new Date).getTime();console.log("加载首页推荐耗时:"+(t2-t1)+"毫秒");if(rule.图片替换&&rule.图片替换.includes("=>")){let replace_from=rule.图片替换.split("=>")[0];let replace_to=rule.图片替换.split("=>")[1];d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic.replace(replace_from,replace_to)}})}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}return JSON.stringify({list:d})}function categoryParse(cateObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let p=cateObj.一级;if(!p||typeof p!=="string"){return"{}"}let d=[];let url=cateObj.url.replaceAll("fyclass",cateObj.tid);if(cateObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(cateObj.pg>1&&url.includes("[")&&url.includes("]")){url=url.split("[")[0]}if(rule.filter_url){if(!/fyfilter/.test(url)){if(!url.endsWith("&")&&!rule.filter_url.startsWith("&")){url+="&"}url+=rule.filter_url}else{url=url.replace("fyfilter",rule.filter_url)}url=url.replaceAll("fyclass",cateObj.tid);let fl=cateObj.filter?cateObj.extend:{};if(rule.filter_def&&typeof rule.filter_def==="object"){try{if(Object.keys(rule.filter_def).length>0&&rule.filter_def.hasOwnProperty(cateObj.tid)){let self_fl_def=rule.filter_def[cateObj.tid];if(self_fl_def&&typeof self_fl_def==="object"){let fl_def=JSON.parse(JSON.stringify(self_fl_def));fl=Object.assign(fl_def,fl)}}}catch(e){print("合并不同分类对应的默认筛选出错:"+e.message)}}let new_url;new_url=cheerio.jinja2(url,{fl:fl});url=new_url}if(/fypage/.test(url)){if(url.includes("(")&&url.includes(")")){let url_rep=url.match(/.*?\((.*)\)/)[1];let cnt_page=url_rep.replaceAll("fypage",cateObj.pg);let cnt_pg=eval(cnt_page);url=url.replaceAll(url_rep,cnt_pg).replaceAll("(","").replaceAll(")","")}else{url=url.replaceAll("fypage",cateObj.pg)}}MY_URL=url;console.log(MY_URL);p=p.trim();const MY_CATE=cateObj.tid;if(p.startsWith("js:")){var MY_FL=cateObj.extend;const TYPE="cate";var input=MY_URL;const MY_PAGE=cateObj.pg;var desc="";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let _ps=parseTags.getParse(p[0]);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p[0].startsWith("json:");p[0]=p[0].replace(/^(jsp:|json:|jq:)/,"");try{let html=getHtml(MY_URL);if(html){if(is_json){html=dealJson(html)}let list=_pdfa(html,p[0]);list.forEach(it=>{let links=p[4].split("+").map(p4=>{return!rule.detailUrl?_pd(it,p4,MY_URL):_pdfh(it,p4)});let link=links.join("$");let vod_id=rule.detailUrl?MY_CATE+"$"+link:link;let vod_name=_pdfh(it,p[1]).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p[2],MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}d.push({vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p[3]).replace(/\n|\t/g,"").trim()})})}}catch(e){console.log(e.message)}}if(rule.图片替换&&rule.图片替换.includes("=>")){let replace_from=rule.图片替换.split("=>")[0];let replace_to=rule.图片替换.split("=>")[1];d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic.replace(replace_from,replace_to)}})}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}let pagecount=0;if(rule.pagecount&&typeof rule.pagecount==="object"&&rule.pagecount.hasOwnProperty(MY_CATE)){print(`MY_CATE:${MY_CATE},pagecount:${JSON.stringify(rule.pagecount)}`);pagecount=parseInt(rule.pagecount[MY_CATE])}let nodata={list:[{vod_name:"无数据,防无限请求",vod_id:"no_data",vod_remarks:"不要点,会崩的",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}],total:1,pagecount:1,page:1,limit:1};let vod=d.length<1?JSON.stringify(nodata):JSON.stringify({page:parseInt(cateObj.pg),pagecount:pagecount||999,limit:20,total:999,list:d});return vod}function searchParse(searchObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];if(!searchObj.searchUrl){return"{}"}let p=searchObj.搜索==="*"&&rule.一级?rule.一级:searchObj.搜索;if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级.split(";");let url=searchObj.searchUrl.replaceAll("**",searchObj.wd);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")&&!url.includes("#")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&url.includes("[")&&url.includes("]")&&!url.includes("#")){url=url.split("[")[0]}if(/fypage/.test(url)){if(url.includes("(")&&url.includes(")")){let url_rep=url.match(/.*?\((.*)\)/)[1];let cnt_page=url_rep.replaceAll("fypage",searchObj.pg);let cnt_pg=eval(cnt_page);url=url.replaceAll(url_rep,cnt_pg).replaceAll("(","").replaceAll(")","")}else{url=url.replaceAll("fypage",searchObj.pg)}}MY_URL=url;console.log(MY_URL);if(p.startsWith("js:")){const TYPE="search";const MY_PAGE=searchObj.pg;const KEY=searchObj.wd;var input=MY_URL;var detailUrl=rule.detailUrl||"";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");try{let req_method=MY_URL.split(";").length>1?MY_URL.split(";")[1].toLowerCase():"get";let html;if(req_method==="post"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`post=》rurl:${rurl},params:${params}`);let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else if(req_method==="postjson"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`postjson-》rurl:${rurl},params:${params}`);try{params=JSON.parse(params)}catch(e){params="{}"}let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else{html=getHtml(MY_URL)}if(html){if(/系统安全验证|输入验证码/.test(html)){let cookie=verifyCode(MY_URL);if(cookie){console.log(`本次成功过验证,cookie:${cookie}`);setItem(RULE_CK,cookie)}else{console.log(`本次自动过搜索验证失败,cookie:${cookie}`)}html=getHtml(MY_URL)}if(!html.includes(searchObj.wd)){console.log("搜索结果源码未包含关键字,疑似搜索失败,正为您打印结果源码");console.log(html)}if(is_json){html=dealJson(html)}let list=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);list.forEach(it=>{let links=p4.split("+").map(_p4=>{return!rule.detailUrl?_pd(it,_p4,MY_URL):_pdfh(it,_p4)});let link=links.join("$");let content;if(p.length>5&&p[5]){content=_pdfh(it,p5)}else{content=""}let vod_id=link;let vod_name=_pdfh(it,p1).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p2,MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}let ob={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p3).replace(/\n|\t/g,"").trim(),vod_content:content.replace(/\n|\t/g,"").trim()};d.push(ob)})}}catch(e){print("搜索发生错误:"+e.message);return"{}"}}if(rule.图片替换&&rule.图片替换.includes("=>")){let replace_from=rule.图片替换.split("=>")[0];let replace_to=rule.图片替换.split("=>")[1];d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic.replace(replace_from,replace_to)}})}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}return JSON.stringify({page:parseInt(searchObj.pg),pagecount:10,limit:20,total:100,list:d})}function detailParse(detailObj){let t1=(new Date).getTime();fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let orId=detailObj.orId;let vod_name="片名";let vod_pic="";let vod_id=orId;if(rule.二级==="*"){let extra=orId.split("@@");vod_name=extra.length>1?extra[1]:vod_name;vod_pic=extra.length>2?extra[2]:vod_pic}let vod={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,type_name:"类型",vod_year:"年份",vod_area:"地区",vod_remarks:"更新信息",vod_actor:"主演",vod_director:"导演",vod_content:"简介"};let p=detailObj.二级;let url=detailObj.url;let detailUrl=detailObj.detailUrl;let fyclass=detailObj.fyclass;let tab_exclude=detailObj.tab_exclude;let html=detailObj.html||"";MY_URL=url;if(detailObj.二级访问前){try{print(`尝试在二级访问前执行代码:${detailObj.二级访问前}`);eval(detailObj.二级访问前.trim().replace("js:",""))}catch(e){print(`二级访问前执行代码出现错误:${e.message}`)}}if(p==="*"){vod.vod_play_from="道长在线";vod.vod_remarks=detailUrl;vod.vod_actor="没有二级,只有一级链接直接嗅探播放";vod.vod_content=MY_URL;vod.vod_play_url="嗅探播放$"+MY_URL.split("@@")[0]}else if(typeof p==="string"&&p.trim().startsWith("js:")){const TYPE="detail";var input=MY_URL;var play_url="";eval(p.trim().replace("js:",""));vod=VOD;console.log(JSON.stringify(vod))}else if(p&&typeof p==="object"){let tt1=(new Date).getTime();if(!html){html=getHtml(MY_URL)}print(`二级${MY_URL}仅获取源码耗时:${(new Date).getTime()-tt1}毫秒`);let _ps;if(p.is_json){print("二级是json");_ps=parseTags.json;html=dealJson(html)}else if(p.is_jsp){print("二级是jsp");_ps=parseTags.jsp}else if(p.is_jq){print("二级是jq");_ps=parseTags.jq}else{print("二级默认jq");_ps=parseTags.jq}let tt2=(new Date).getTime();print(`二级${MY_URL}获取并装载源码耗时:${tt2-tt1}毫秒`);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;if(p.title){let p1=p.title.split(";");vod.vod_name=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();let type_name=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").replace(/ /g,"").trim():"";vod.type_name=type_name||vod.type_name}if(p.desc){try{let p1=p.desc.split(";");vod.vod_remarks=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();vod.vod_year=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").trim():"";vod.vod_area=p1.length>2?_pdfh(html,p1[2]).replace(/\n|\t/g,"").trim():"";vod.vod_actor=p1.length>3?_pdfh(html,p1[3]).replace(/\n|\t/g,"").trim():"";vod.vod_director=p1.length>4?_pdfh(html,p1[4]).replace(/\n|\t/g,"").trim():""}catch(e){}}if(p.content){try{let p1=p.content.split(";");vod.vod_content=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim()}catch(e){}}if(p.img){try{let p1=p.img.split(";");vod.vod_pic=_pd(html,p1[0],MY_URL)}catch(e){}}let vod_play_from="$$$";let playFrom=[];if(p.重定向&&p.重定向.startsWith("js:")){print("开始执行重定向代码:"+p.重定向);html=eval(p.重定向.replace("js:",""))}if(p.tabs){if(p.tabs.startsWith("js:")){print("开始执行tabs代码:"+p.tabs);var input=MY_URL;eval(p.tabs.replace("js:",""));playFrom=TABS}else{let p_tab=p.tabs.split(";")[0];let vHeader=_pdfa(html,p_tab);console.log(vHeader.length);let tab_text=p.tab_text||"body&&Text";let new_map={};for(let v of vHeader){let v_title=_pdfh(v,tab_text).trim();if(!v_title){v_title="线路空"}console.log(v_title);if(tab_exclude&&new RegExp(tab_exclude).test(v_title)){continue}if(!new_map.hasOwnProperty(v_title)){new_map[v_title]=1}else{new_map[v_title]+=1}if(new_map[v_title]>1){v_title+=Number(new_map[v_title]-1)}playFrom.push(v_title)}}console.log(JSON.stringify(playFrom))}else{playFrom=["道长在线"]}vod.vod_play_from=playFrom.join(vod_play_from);let vod_play_url="$$$";let vod_tab_list=[];if(p.lists){if(p.lists.startsWith("js:")){print("开始执行lists代码:"+p.lists);try{var input=MY_URL;var play_url="";eval(p.lists.replace("js:",""));for(let i in LISTS){if(LISTS.hasOwnProperty(i)){try{LISTS[i]=LISTS[i].map(it=>it.split("$").slice(0,2).join("$"))}catch(e){print("格式化LISTS发生错误:"+e.message)}}}vod_play_url=LISTS.map(it=>it.join("#")).join(vod_play_url)}catch(e){print("js执行lists: 发生错误:"+e.message)}}else{let list_text=p.list_text||"body&&Text";let list_url=p.list_url||"a&&href";let is_tab_js=p.tabs.trim().startsWith("js:");for(let i=0;i1&&!is_tab_js?p.tabs.split(";")[1]:"";let p1=p.lists.replaceAll("#idv",tab_name).replaceAll("#id",i);tab_ext=tab_ext.replaceAll("#idv",tab_name).replaceAll("#id",i);let tabName=tab_ext?_pdfh(html,tab_ext):tab_name;console.log(tabName);let new_vod_list=[];let tt1=(new Date).getTime();if(typeof pdfl==="function"){new_vod_list=pdfl(html,p1,list_text,list_url,MY_URL)}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){new_vod_list=forceOrder(new_vod_list,"",x=>x.split("$")[0]);console.log(`drpy影响性能代码共计列表数循环次数:${new_vod_list.length},耗时:${(new Date).getTime()-tt1}毫秒`)}let vlist=new_vod_list.join("#");vod_tab_list.push(vlist)}vod_play_url=vod_tab_list.join(vod_play_url)}}vod.vod_play_url=vod_play_url}if(rule.图片替换&&rule.图片替换.includes("=>")){let replace_from=rule.图片替换.split("=>")[0];let replace_to=rule.图片替换.split("=>")[1];vod.vod_pic=vod.vod_pic.replace(replace_from,replace_to)}if(rule.图片来源&&vod.vod_pic&&vod.vod_pic.startsWith("http")){vod.vod_pic=vod.vod_pic+rule.图片来源}if(!vod.vod_id||vod_id.includes("$")&&vod.vod_id!==vod_id){vod.vod_id=vod_id}let t2=(new Date).getTime();console.log(`加载二级界面${MY_URL}耗时:${t2-t1}毫秒`);try{vod=vodDeal(vod)}catch(e){console.log(`vodDeal发生错误:${e.message}`)}return JSON.stringify({list:[vod]})}function get_tab_index(vod){let obj={};vod.vod_play_from.split("$$$").forEach((it,index)=>{obj[it]=index});return obj}function vodDeal(vod){let vod_play_from=vod.vod_play_from.split("$$$");let vod_play_url=vod.vod_play_url.split("$$$");let tab_removed_list=vod_play_from;let tab_ordered_list=vod_play_from;let tab_renamed_list=vod_play_from;let tab_list=vod_play_from;let play_ordered_list=vod_play_url;if(rule.tab_remove&&rule.tab_remove.length>0||rule.tab_order&&rule.tab_order.length>0){let tab_index_dict=get_tab_index(vod);if(rule.tab_remove&&rule.tab_remove.length>0){tab_removed_list=vod_play_from.filter(it=>!rule.tab_remove.includes(it));tab_list=tab_removed_list}if(rule.tab_order&&rule.tab_order.length>0){let tab_order=rule.tab_order;tab_ordered_list=tab_removed_list.sort((a,b)=>{return(tab_order.indexOf(a)===-1?9999:tab_order.indexOf(a))-(tab_order.indexOf(b)===-1?9999:tab_order.indexOf(b))});tab_list=tab_ordered_list}play_ordered_list=tab_list.map(it=>vod_play_url[tab_index_dict[it]])}if(rule.tab_rename&&typeof rule.tab_rename==="object"&Object.keys(rule.tab_rename).length>0){tab_renamed_list=tab_list.map(it=>rule.tab_rename[it]||it);tab_list=tab_renamed_list}vod.vod_play_from=tab_list.join("$$$");vod.vod_play_url=play_ordered_list.join("$$$");return vod}function tellIsJx(url){try{let is_vip=!/\.(m3u8|mp4|m4a)$/.test(url.split("?")[0])&&是否正版(url);return is_vip?1:0}catch(e){return 1}}function playParse(playObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));MY_URL=playObj.url;var MY_FLAG=playObj.flag;if(!/http/.test(MY_URL)){try{MY_URL=base64Decode(MY_URL)}catch(e){}}MY_URL=decodeURIComponent(MY_URL);var input=MY_URL;var flag=MY_FLAG;let common_play={parse:1,url:input,flag:flag,jx:tellIsJx(input)};let lazy_play;if(!rule.play_parse||!rule.lazy){lazy_play=common_play}else if(rule.play_parse&&rule.lazy&&typeof rule.lazy==="string"){try{let lazy_code=rule.lazy.trim();if(lazy_code.startsWith("js:")){lazy_code=lazy_code.replace("js:","").trim()}print("开始执行js免嗅=>"+lazy_code);eval(lazy_code);lazy_play=typeof input==="object"?input:{parse:1,jx:tellIsJx(input),url:input}}catch(e){print("js免嗅错误:"+e.message);lazy_play=common_play}}else{lazy_play=common_play}if(Array.isArray(rule.play_json)&&rule.play_json.length>0){let web_url=lazy_play.url;for(let pjson of rule.play_json){if(pjson.re&&(pjson.re==="*"||web_url.match(new RegExp(pjson.re)))){if(pjson.json&&typeof pjson.json==="object"){let base_json=pjson.json;lazy_play=Object.assign(lazy_play,base_json);break}}}}else if(rule.play_json&&!Array.isArray(rule.play_json)){let base_json={jx:1,parse:1};lazy_play=Object.assign(lazy_play,base_json)}else if(!rule.play_json){let base_json={jx:0,parse:1};lazy_play=Object.assign(lazy_play,base_json)}console.log(JSON.stringify(lazy_play));return JSON.stringify(lazy_play)}function proxyParse(proxyObj){var input=proxyObj.params;if(proxyObj.proxy_rule){log("准备执行本地代理规则:\n"+proxyObj.proxy_rule);try{eval(proxyObj.proxy_rule);if(input&&input!==proxyObj.params&&Array.isArray(input)&&input.length===3){return input}else{return[404,"text/plain","Not Found"]}}catch(e){return[500,"text/plain","代理规则错误:"+e.message]}}else{return[404,"text/plain","Not Found"]}}function isVideoParse(isVideoObj){var input=isVideoObj.url;if(!isVideoObj.t){let re_matcher=new RegExp(isVideoObj.isVideo,"i");return re_matcher.test(input)}else{try{eval(isVideoObj.isVideo);if(typeof input==="boolean"){return input}else{return false}}catch(e){log("执行嗅探规则发生错误:"+e.message);return false}}}function init(ext){console.log("init");try{let muban=模板.getMubans();if(typeof ext=="object"){rule=ext}else if(typeof ext=="string"){if(ext.startsWith("http")){let query=getQuery(ext);let js=request(ext,{method:"GET"});if(js){eval(js.replace("var rule","rule"))}if(query.type==="url"&&query.params){rule.params=urljoin(ext,query.params)}else if(query.params){rule.params=query.params}}else{eval(ext.replace("var rule","rule"))}}if(rule.模板&&muban.hasOwnProperty(rule.模板)){print("继承模板:"+rule.模板);rule=Object.assign(muban[rule.模板],rule)}let rule_cate_excludes=(rule.cate_exclude||"").split("|").filter(it=>it.trim());let rule_tab_excludes=(rule.tab_exclude||"").split("|").filter(it=>it.trim());rule_cate_excludes=rule_cate_excludes.concat(CATE_EXCLUDE.split("|").filter(it=>it.trim()));rule_tab_excludes=rule_tab_excludes.concat(TAB_EXCLUDE.split("|").filter(it=>it.trim()));rule.cate_exclude=rule_cate_excludes.join("|");rule.tab_exclude=rule_tab_excludes.join("|");rule.host=(rule.host||"").rstrip("/");HOST=rule.host;if(rule.hostJs){console.log(`检测到hostJs,准备执行...`);try{eval(rule.hostJs);rule.host=HOST.rstrip("/")}catch(e){console.log(`执行${rule.hostJs}获取host发生错误:`+e.message)}}rule.url=rule.url||"";rule.double=rule.double||false;rule.homeUrl=rule.homeUrl||"";rule.detailUrl=rule.detailUrl||"";rule.searchUrl=rule.searchUrl||"";rule.homeUrl=rule.host&&rule.homeUrl?urljoin(rule.host,rule.homeUrl):rule.homeUrl||rule.host;rule.homeUrl=cheerio.jinja2(rule.homeUrl,{rule:rule});rule.detailUrl=rule.host&&rule.detailUrl?urljoin(rule.host,rule.detailUrl):rule.detailUrl;rule.二级访问前=rule.二级访问前||"";if(rule.url.includes("[")&&rule.url.includes("]")){let u1=rule.url.split("[")[0];let u2=rule.url.split("[")[1].split("]")[0];rule.url=rule.host&&rule.url?urljoin(rule.host,u1)+"["+urljoin(rule.host,u2)+"]":rule.url}else{rule.url=rule.host&&rule.url?urljoin(rule.host,rule.url):rule.url}if(rule.searchUrl.includes("[")&&rule.searchUrl.includes("]")&&!rule.searchUrl.includes("#")){let u1=rule.searchUrl.split("[")[0];let u2=rule.searchUrl.split("[")[1].split("]")[0];rule.searchUrl=rule.host&&rule.searchUrl?urljoin(rule.host,u1)+"["+urljoin(rule.host,u2)+"]":rule.searchUrl}else{rule.searchUrl=rule.host&&rule.searchUrl?urljoin(rule.host,rule.searchUrl):rule.searchUrl}rule.timeout=rule.timeout||5e3;rule.encoding=rule.编码||rule.encoding||"utf-8";rule.search_encoding=rule.搜索编码||rule.search_encoding||"";rule.图片来源=rule.图片来源||"";rule.图片替换=rule.图片替换||"";rule.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};rule.proxy_rule=rule.hasOwnProperty("proxy_rule")?rule.proxy_rule:"";rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";rule.tab_remove=rule.hasOwnProperty("tab_remove")?rule.tab_remove:[];rule.tab_order=rule.hasOwnProperty("tab_order")?rule.tab_order:[];rule.tab_rename=rule.hasOwnProperty("tab_rename")?rule.tab_rename:{};if(rule.headers&&typeof rule.headers==="object"){try{let header_keys=Object.keys(rule.headers);for(let k of header_keys){if(k.toLowerCase()==="user-agent"){let v=rule.headers[k];console.log(v);if(["MOBILE_UA","PC_UA","UC_UA","IOS_UA","UA"].includes(v)){rule.headers[k]=eval(v)}}else if(k.toLowerCase()==="cookie"){let v=rule.headers[k];if(v&&v.startsWith("http")){console.log(v);try{v=fetch(v);console.log(v);rule.headers[k]=v}catch(e){console.log(`从${v}获取cookie发生错误:`+e.message)}}}}}catch(e){console.log("处理headers发生错误:"+e.message)}}rule_fetch_params={headers:rule.headers||false,timeout:rule.timeout,encoding:rule.encoding};oheaders=rule.headers||{};RKEY=typeof key!=="undefined"&&key?key:"drpy_"+(rule.title||rule.host);pre();init_test()}catch(e){console.log("init_test发生错误:"+e.message)}}let homeHtmlCache=undefined;function home(filter){console.log("home");if(typeof rule.filter==="string"&&rule.filter.trim().length>0){try{let filter_json=ungzip(rule.filter.trim());rule.filter=JSON.parse(filter_json)}catch(e){rule.filter={}}}let homeObj={filter:rule.filter||false,MY_URL:rule.homeUrl,class_name:rule.class_name||"",class_url:rule.class_url||"",class_parse:rule.class_parse||"",cate_exclude:rule.cate_exclude};return homeParse(homeObj)}function homeVod(params){console.log("homeVod");let homeVodObj={"推荐":rule.推荐,double:rule.double,homeUrl:rule.homeUrl,detailUrl:rule.detailUrl};return homeVodParse(homeVodObj)}function category(tid,pg,filter,extend){let cateObj={url:rule.url,"一级":rule.一级,tid:tid,pg:parseInt(pg),filter:filter,extend:extend};return categoryParse(cateObj)}function detail(vod_url){let orId=vod_url;let fyclass="";log("orId:"+orId);if(vod_url.indexOf("$")>-1){let tmp=vod_url.split("$");fyclass=tmp[0];vod_url=tmp[1]}let detailUrl=vod_url.split("@@")[0];let url;if(!detailUrl.startsWith("http")&&!detailUrl.includes("/")){url=rule.detailUrl.replaceAll("fyid",detailUrl).replaceAll("fyclass",fyclass)}else if(detailUrl.includes("/")){url=urljoin(rule.homeUrl,detailUrl)}else{url=detailUrl}let detailObj={orId:orId,url:url,"二级":rule.二级,"二级访问前":rule.二级访问前,detailUrl:detailUrl,fyclass:fyclass,tab_exclude:rule.tab_exclude};return detailParse(detailObj)}function play(flag,id,flags){let playObj={url:id,flag:flag,flags:flags};return playParse(playObj)}function search(wd,quick,pg){if(rule.search_encoding){if(rule.search_encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.search_encoding)}}else if(rule.encoding&&rule.encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.encoding)}let searchObj={searchUrl:rule.searchUrl,"搜索":rule.搜索,wd:wd,pg:pg||1,quick:quick};return searchParse(searchObj)}function proxy(params){if(rule.proxy_rule&&rule.proxy_rule.trim()){rule.proxy_rule=rule.proxy_rule.trim()}if(rule.proxy_rule.startsWith("js:")){rule.proxy_rule=rule.proxy_rule.replace("js:","")}let proxyObj={params:params,proxy_rule:rule.proxy_rule};return proxyParse(proxyObj)}function sniffer(){let enable_sniffer=rule.sniffer||false;if(enable_sniffer){log("开始执行辅助嗅探代理规则...")}return enable_sniffer}function isVideo(url){let t=0;let is_video;if(rule.isVideo&&rule.isVideo.trim()){is_video=rule.isVideo.trim()}if(is_video.startsWith("js:")){is_video=is_video.replace("js:","");t=1}let isVideoObj={url:url,isVideo:is_video,t:t};let result=isVideoParse(isVideoObj);if(result){log("成功执行辅助嗅探规则并检测到视频地址:\n"+rule.isVideo)}return result}function DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,fixAdM3u8Ai:fixAdM3u8Ai}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,fixAdM3u8Ai:fixAdM3u8Ai,DRPY:DRPY}; \ No newline at end of file diff --git a/zyplayer/drpy_dzlive/drpy_libs/gbk.js b/zyplayer/drpy_dzlive/drpy_libs/gbk.js new file mode 100644 index 0000000..796d53a --- /dev/null +++ b/zyplayer/drpy_dzlive/drpy_libs/gbk.js @@ -0,0 +1,68 @@ +/*** + * gbk编码解码函数 + * strTool = gbkTool() strTool.encode(key) + * @returns {{encode: (function(*): *), decode: (function(*): *)}} + */ +export function gbkTool(){ + var data=function(zipData){ + var re=zipData + .replace(/#(\d+)\$/g,function(a,b){ + return Array(+b+3).join('#'); + }) + .replace(/#/g,'####') + .replace(/(\w\w):([\w#]+)(?:,|$)/g,function(a,hd,dt){ + return dt.replace(/../g,function(a){ + if(a!='##'){ + return hd+a; + }else{ + return a; + } + }); + }); + return re; + }('4e:020405060f12171f20212326292e2f313335373c40414244464a5155575a5b6263646567686a6b6c6d6e6f727475767778797a7b7c7d7f808182838485878a#909697999c9d9ea3aaafb0b1b4b6b7b8b9bcbdbec8cccfd0d2dadbdce0e2e6e7e9edeeeff1f4f8f9fafcfe,4f:00020304050607080b0c12131415161c1d212328292c2d2e31333537393b3e3f40414244454748494a4b4c525456616266686a6b6d6e7172757778797a7d8081828586878a8c8e909293959698999a9c9e9fa1a2a4abadb0b1b2b3b4b6b7b8b9babbbcbdbec0c1c2c6c7c8c9cbcccdd2d3d4d5d6d9dbe0e2e4e5e7ebecf0f2f4f5f6f7f9fbfcfdff,50:000102030405060708090a#0b0e1011131516171b1d1e20222324272b2f303132333435363738393b3d3f404142444546494a4b4d5051525354565758595b5d5e5f6061626364666768696a6b6d6e6f70717273747578797a7c7d818283848687898a8b8c8e8f909192939495969798999a9b9c9d9e9fa0a1a2a4a6aaabadaeafb0b1b3b4b5b6b7b8b9bcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdced0d1d2d3d4d5d7d8d9dbdcdddedfe0e1e2e3e4e5e8e9eaebeff0f1f2f4f6f7f8f9fafcfdfeff,51:00010203040508#090a0c0d0e0f1011131415161718191a1b1c1d1e1f2022232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e42474a4c4e4f5052535758595b5d5e5f606163646667696a6f727a7e7f838486878a8b8e8f90919394989a9d9e9fa1a3a6a7a8a9aaadaeb4b8b9babebfc1c2c3c5c8cacdced0d2d3d4d5d6d7d8d9dadcdedfe2e3e5e6e7e8e9eaeceef1f2f4f7fe,52:0405090b0c0f101314151c1e1f2122232526272a2c2f313234353c3e4445464748494b4e4f5253555758#595a5b5d5f6062636466686b6c6d6e7071737475767778797a7b7c7e808384858687898a8b8c8d8e8f91929495969798999a9ca4a5a6a7aeafb0b4b5b6b7b8b9babbbcbdc0c1c2c4c5c6c8cacccdcecfd1d3d4d5d7d9dadbdcdddee0e1e2e3e5e6e7e8e9eaebecedeeeff1f2f3f4f5f6f7f8fbfcfd,53:0102030407090a0b0c0e11121314181b1c1e1f2224252728292b2c2d2f3031323334353637383c3d404244464b4c4d505458595b5d65686a6c6d7276797b7c7d7e80818387888a8e8f#90919293949697999b9c9ea0a1a4a7aaabacadafb0b1b2b3b4b5b7b8b9babcbdbec0c3c4c5c6c7cecfd0d2d3d5dadcdddee1e2e7f4fafeff,54:000205070b1418191a1c2224252a303336373a3d3f4142444547494c4d4e4f515a5d5e5f6061636567696a6b6c6d6e6f7074797a7e7f8183858788898a8d919397989c9e9fa0a1a2a5aeb0b2b5b6b7b9babcbec3c5cacbd6d8dbe0e1e2e3e4ebeceff0f1f4f5f6f7f8f9fbfe,55:0002030405080a0b0c0d0e121315161718191a1c1d1e1f212526#28292b2d3234353638393a3b3d40424547484b4c4d4e4f515253545758595a5b5d5e5f60626368696b6f7071727374797a7d7f85868c8d8e9092939596979a9b9ea0a1a2a3a4a5a6a8a9aaabacadaeafb0b2b4b6b8babcbfc0c1c2c3c6c7c8cacbcecfd0d5d7d8d9dadbdee0e2e7e9edeef0f1f4f6f8f9fafbfcff,56:0203040506070a0b0d1011121314151617191a1c1d202122252628292a2b2e2f30333537383a3c3d3e404142434445464748494a4b4f5051525355565a5b5d5e5f6061#636566676d6e6f70727374757778797a7d7e7f80818283848788898a8b8c8d9091929495969798999a9b9c9d9e9fa0a1a2a4a5a6a7a8a9aaabacadaeb0b1b2b3b4b5b6b8b9babbbdbebfc0c1c2c3c4c5c6c7c8c9cbcccdcecfd0d1d2d3d5d6d8d9dce3e5e6e7e8e9eaeceeeff2f3f6f7f8fbfc,57:00010205070b0c0d0e0f101112131415161718191a1b1d1e202122242526272b313234353637383c3d3f414344454648494b52535455565859626365676c6e707172747578797a7d7e7f80#818788898a8d8e8f90919495969798999a9c9d9e9fa5a8aaacafb0b1b3b5b6b7b9babbbcbdbebfc0c1c4c5c6c7c8c9cacccdd0d1d3d6d7dbdcdee1e2e3e5e6e7e8e9eaebeceef0f1f2f3f5f6f7fbfcfeff,58:0103040508090a0c0e0f101213141617181a1b1c1d1f222325262728292b2c2d2e2f31323334363738393a3b3c3d3e3f4041424345464748494a4b4e4f505253555657595a5b5c5d5f6061626364666768696a6d6e6f707172737475767778797a7b7c7d7f82848687888a8b8c#8d8e8f909194959697989b9c9da0a1a2a3a4a5a6a7aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbdbebfc0c2c3c4c6c7c8c9cacbcccdcecfd0d2d3d4d6d7d8d9dadbdcdddedfe0e1e2e3e5e6e7e8e9eaedeff1f2f4f5f7f8fafbfcfdfeff,59:000103050608090a0b0c0e1011121317181b1d1e2021222326282c30323335363b3d3e3f404345464a4c4d505253595b5c5d5e5f616364666768696a6b6c6d6e6f70717275777a7b7c7e7f8085898b8c8e8f90919495989a9b9c9d9fa0a1a2a6#a7acadb0b1b3b4b5b6b7b8babcbdbfc0c1c2c3c4c5c7c8c9cccdcecfd5d6d9dbdedfe0e1e2e4e6e7e9eaebedeeeff0f1f2f3f4f5f6f7f8fafcfdfe,5a:00020a0b0d0e0f101214151617191a1b1d1e2122242627282a2b2c2d2e2f3033353738393a3b3d3e3f414243444547484b4c4d4e4f5051525354565758595b5c5d5e5f60616364656668696b6c6d6e6f7071727378797b7c7d7e808182838485868788898a8b8c8d8e8f9091939495969798999c9d9e9fa0a1a2a3a4a5a6a7a8a9abac#adaeafb0b1b4b6b7b9babbbcbdbfc0c3c4c5c6c7c8cacbcdcecfd0d1d3d5d7d9dadbdddedfe2e4e5e7e8eaecedeeeff0f2f3f4f5f6f7f8f9fafbfcfdfeff,5b:0001020304050607080a0b0c0d0e0f10111213141518191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303133353638393a3b3c3d3e3f4142434445464748494a4b4c4d4e4f52565e606167686b6d6e6f7274767778797b7c7e7f82868a8d8e90919294969fa7a8a9acadaeafb1b2b7babbbcc0c1c3c8c9cacbcdcecf#d1d4d5d6d7d8d9dadbdce0e2e3e6e7e9eaebecedeff1f2f3f4f5f6f7fdfe,5c:0002030507080b0c0d0e10121317191b1e1f2021232628292a2b2d2e2f303233353637434446474c4d5253545657585a5b5c5d5f62646768696a6b6c6d70727374757677787b7c7d7e808384858687898a8b8e8f9293959d9e9fa0a1a4a5a6a7a8aaaeafb0b2b4b6b9babbbcbec0c2c3c5c6c7c8c9cacccdcecfd0d1d3d4d5d6d7d8dadbdcdddedfe0e2e3e7e9ebeceeeff1f2f3f4f5f6f7f8f9fafcfdfeff,5d:00#01040508090a0b0c0d0f10111213151718191a1c1d1f2021222325282a2b2c2f3031323335363738393a3b3c3f4041424344454648494d4e4f5051525354555657595a5c5e5f6061626364656667686a6d6e7071727375767778797a7b7c7d7e7f8081838485868788898a8b8c8d8e8f9091929394959697989a9b9c9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b8b9babbbcbdbebfc0c1c2c3c4c6c7c8c9cacbcccecfd0d1d2d3d4d5d6d7d8d9dadcdfe0e3e4eaeced#f0f5f6f8f9fafbfcff,5e:000407090a0b0d0e1213171e1f20212223242528292a2b2c2f303233343536393a3e3f404143464748494a4b4d4e4f50515253565758595a5c5d5f60636465666768696a6b6c6d6e6f70717577797e8182838588898c8d8e92989b9da1a2a3a4a8a9aaabacaeafb0b1b2b4babbbcbdbfc0c1c2c3c4c5c6c7c8cbcccdcecfd0d4d5d7d8d9dadcdddedfe0e1e2e3e4e5e6e7e9ebecedeeeff0f1f2f3f5f8f9fbfcfd,5f:050607090c0d0e10121416191a1c1d1e21222324#282b2c2e30323334353637383b3d3e3f4142434445464748494a4b4c4d4e4f5154595a5b5c5e5f60636567686b6e6f72747576787a7d7e7f83868d8e8f919394969a9b9d9e9fa0a2a3a4a5a6a7a9abacafb0b1b2b3b4b6b8b9babbbebfc0c1c2c7c8cacbced3d4d5dadbdcdedfe2e3e5e6e8e9eceff0f2f3f4f6f7f9fafc,60:0708090b0c10111317181a1e1f2223242c2d2e3031323334363738393a3d3e404445464748494a4c4e4f5153545657585b5c5e5f606165666e71727475777e80#8182858687888a8b8e8f909193959798999c9ea1a2a4a5a7a9aaaeb0b3b5b6b7b9babdbebfc0c1c2c3c4c7c8c9cccdcecfd0d2d3d4d6d7d9dbdee1e2e3e4e5eaf1f2f5f7f8fbfcfdfeff,61:02030405070a0b0c1011121314161718191b1c1d1e21222528292a2c2d2e2f303132333435363738393a3b3c3d3e4041424344454647494b4d4f50525354565758595a5b5c5e5f606163646566696a6b6c6d6e6f717273747678797a7b7c7d7e7f808182838485868788898a8c8d8f9091929395#969798999a9b9c9e9fa0a1a2a3a4a5a6aaabadaeafb0b1b2b3b4b5b6b8b9babbbcbdbfc0c1c3c4c5c6c7c9cccdcecfd0d3d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e7e8e9eaebecedeeeff0f1f2f3f4f6f7f8f9fafbfcfdfe,62:00010203040507091314191c1d1e2023262728292b2d2f303132353638393a3b3c424445464a4f50555657595a5c5d5e5f6061626465687172747577787a7b7d818283858687888b8c8d8e8f9094999c9d9ea3a6a7a9aaadaeafb0b2b3b4b6b7b8babec0c1#c3cbcfd1d5dddee0e1e4eaebf0f2f5f8f9fafb,63:00030405060a0b0c0d0f10121314151718191c2627292c2d2e30313334353637383b3c3e3f40414447484a51525354565758595a5b5c5d60646566686a6b6c6f707273747578797c7d7e7f81838485868b8d9193949597999a9b9c9d9e9fa1a4a6abafb1b2b5b6b9bbbdbfc0c1c2c3c5c7c8cacbccd1d3d4d5d7d8d9dadbdcdddfe2e4e5e6e7e8ebeceeeff0f1f3f5f7f9fafbfcfe,64:0304060708090a0d0e111215161718191a1d1f222324#252728292b2e2f3031323335363738393b3c3e404243494b4c4d4e4f505153555657595a5b5c5d5f60616263646566686a6b6c6e6f70717273747576777b7c7d7e7f8081838688898a8b8c8d8e8f90939497989a9b9c9d9fa0a1a2a3a5a6a7a8aaabafb1b2b3b4b6b9bbbdbebfc1c3c4c6c7c8c9cacbcccfd1d3d4d5d6d9dadbdcdddfe0e1e3e5e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,65:01020304050607080a0b0c0d0e0f10111314151617191a1b1c1d1e1f2021#222324262728292a2c2d30313233373a3c3d404142434446474a4b4d4e5052535457585a5c5f606164656768696a6d6e6f7173757678797a7b7c7d7e7f8081828384858688898a8d8e8f92949596989a9d9ea0a2a3a6a8aaacaeb1b2b3b4b5b6b7b8babbbebfc0c2c7c8c9cacdd0d1d3d4d5d8d9dadbdcdddedfe1e3e4eaebf2f3f4f5f8f9fbfcfdfeff,66:0104050708090b0d1011121617181a1b1c1e2122232426292a2b2c2e3032333738393a3b3d3f40424445464748494a4d4e505158#595b5c5d5e6062636567696a6b6c6d7172737578797b7c7d7f808183858688898a8b8d8e8f909293949598999a9b9c9e9fa0a1a2a3a4a5a6a9aaabacadafb0b1b2b3b5b6b7b8babbbcbdbfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8dadedfe0e1e2e3e4e5e7e8eaebecedeeeff1f5f6f8fafbfd,67:010203040506070c0e0f1112131618191a1c1e20212223242527292e303233363738393b3c3e3f414445474a4b4d5254555758595a5b5d62636466676b6c6e717476#78797a7b7d8082838586888a8c8d8e8f9192939496999b9fa0a1a4a6a9acaeb1b2b4b9babbbcbdbebfc0c2c5c6c7c8c9cacbcccdced5d6d7dbdfe1e3e4e6e7e8eaebedeef2f5f6f7f8f9fafbfcfe,68:01020304060d1012141518191a1b1c1e1f20222324252627282b2c2d2e2f30313435363a3b3f474b4d4f52565758595a5b5c5d5e5f6a6c6d6e6f707172737578797a7b7c7d7e7f8082848788898a8b8c8d8e90919294959698999a9b9c9d9e9fa0a1a3a4a5a9aaabacaeb1b2b4b6b7b8#b9babbbcbdbebfc1c3c4c5c6c7c8cacccecfd0d1d3d4d6d7d9dbdcdddedfe1e2e4e5e6e7e8e9eaebecedeff2f3f4f6f7f8fbfdfeff,69:00020304060708090a0c0f11131415161718191a1b1c1d1e21222325262728292a2b2c2e2f313233353637383a3b3c3e4041434445464748494a4b4c4d4e4f50515253555658595b5c5f616264656768696a6c6d6f7072737475767a7b7d7e7f8183858a8b8c8e8f909192939697999a9d9e9fa0a1a2a3a4a5a6a9aaacaeafb0b2b3b5b6b8b9babcbd#bebfc0c2c3c4c5c6c7c8c9cbcdcfd1d2d3d5d6d7d8d9dadcdddee1e2e3e4e5e6e7e8e9eaebeceeeff0f1f3f4f5f6f7f8f9fafbfcfe,6a:000102030405060708090b0c0d0e0f10111213141516191a1b1c1d1e20222324252627292b2c2d2e30323334363738393a3b3c3f40414243454648494a4b4c4d4e4f515253545556575a5c5d5e5f60626364666768696a6b6c6d6e6f70727374757677787a7b7d7e7f81828385868788898a8b8c8d8f929394959698999a9b9c9d9e9fa1a2a3a4a5a6#a7a8aaadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,6b:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f252628292a2b2c2d2e2f303133343536383b3c3d3f4041424445484a4b4d4e4f5051525354555657585a5b5c5d5e5f606168696b6c6d6e6f7071727374757677787a7d7e7f808588#8c8e8f909194959798999c9d9e9fa0a2a3a4a5a6a7a8a9abacadaeafb0b1b2b6b8b9babbbcbdbec0c3c4c6c7c8c9caccced0d1d8dadcdddedfe0e2e3e4e5e6e7e8e9ecedeef0f1f2f4f6f7f8fafbfcfeff,6c:000102030408090a0b0c0e12171c1d1e2023252b2c2d31333637393a3b3c3e3f434445484b4c4d4e4f5152535658595a62636566676b6c6d6e6f71737577787a7b7c7f8084878a8b8d8e9192959697989a9c9d9ea0a2a8acafb0b4b5b6b7bac0c1c2c3c6c7c8cbcdcecfd1d2d8#d9dadcdddfe4e6e7e9ecedf2f4f9ff,6d:000203050608090a0d0f101113141516181c1d1f20212223242628292c2d2f30343637383a3f404244494c50555657585b5d5f6162646567686b6c6d707172737576797a7b7d7e7f8081838486878a8b8d8f9092969798999a9ca2a5acadb0b1b3b4b6b7b9babbbcbdbec1c2c3c8c9cacdcecfd0d2d3d4d5d7dadbdcdfe2e3e5e7e8e9eaedeff0f2f4f5f6f8fafdfeff,6e:0001020304060708090b0f12131518191b1c1e1f222627282a2c2e30313335#3637393b3c3d3e3f40414245464748494a4b4c4f5051525557595a5c5d5e606162636465666768696a6c6d6f707172737475767778797a7b7c7d8081828487888a8b8c8d8e91929394959697999a9b9d9ea0a1a3a4a6a8a9abacadaeb0b3b5b8b9bcbebfc0c3c4c5c6c8c9cacccdced0d2d6d8d9dbdcdde3e7eaebecedeeeff0f1f2f3f5f6f7f8fafbfcfdfeff,6f:000103040507080a0b0c0d0e101112161718191a1b1c1d1e1f212223252627282c2e303234353738393a3b3c3d3f404142#43444548494a4c4e4f5051525354555657595a5b5d5f60616364656768696a6b6c6f707173757677797b7d7e7f808182838586878a8b8f909192939495969798999a9b9d9e9fa0a2a3a4a5a6a8a9aaabacadaeafb0b1b2b4b5b7b8babbbcbdbebfc1c3c4c5c6c7c8cacbcccdcecfd0d3d4d5d6d7d8d9dadbdcdddfe2e3e4e5e6e7e8e9eaebecedf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,70:000102030405060708090a0b0c0d0e0f1012131415161718191c1d1e1f2021222425262728292a#2b2c2d2e2f30313233343637383a3b3c3d3e3f404142434445464748494a4b4d4e505152535455565758595a5b5c5d5f606162636465666768696a6e7172737477797a7b7d818283848687888b8c8d8f90919397989a9b9e9fa0a1a2a3a4a5a6a7a8a9aab0b2b4b5b6babebfc4c5c6c7c9cbcccdcecfd0d1d2d3d4d5d6d7dadcdddee0e1e2e3e5eaeef0f1f2f3f4f5f6f8fafbfcfeff,71:0001020304050607080b0c0d0e0f111214171b1c1d1e1f2021222324252728292a2b2c2d2e323334#353738393a3b3c3d3e3f4041424344464748494b4d4f505152535455565758595a5b5d5f6061626365696a6b6c6d6f707174757677797b7c7e7f8081828385868788898b8c8d8e909192939596979a9b9c9d9ea1a2a3a4a5a6a7a9aaabadaeafb0b1b2b4b6b7b8babbbcbdbebfc0c1c2c4c5c6c7c8c9cacbcccdcfd0d1d2d3d6d7d8d9dadbdcdddedfe1e2e3e4e6e8e9eaebecedeff0f1f2f3f4f5f6f7f8fafbfcfdfeff,72:0001020304050708090a0b0c0d0e0f101112131415161718191a#1b1c1e1f2021222324252627292b2d2e2f3233343a3c3e40414243444546494a4b4e4f505153545557585a5c5e60636465686a6b6c6d707173747677787b7c7d828385868788898c8e9091939495969798999a9b9c9d9ea0a1a2a3a4a5a6a7a8a9aaabaeb1b2b3b5babbbcbdbebfc0c5c6c7c9cacbcccfd1d3d4d5d6d8dadb#95$,30:000102,00b702:c9c7,00a830:0305,2014ff5e20:162618191c1d,30:141508090a0b0c0d0e0f16171011,00:b1d7f7,22:362728110f2a2908371aa52520,231222:992b2e614c483d1d606e6f64651e3534,26:4240,00b020:3233,2103ff0400a4ff:e0e1,203000a7211626:0605,25:cbcfcec7c6a1a0b3b2,203b21:92909193,30:13#95$,21:70717273747576777879#4$,24:88898a8b8c8d8e8f909192939495969798999a9b7475767778797a7b7c7d7e7f808182838485868760616263646566676869##,32:20212223242526272829##,21:606162636465666768696a6b#97$,ff:010203e505060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5de3#95$,30:4142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f90919293#106$a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6#103$,03:9192939495969798999a9b9c9d9e9fa0a1a3a4a5a6a7a8a9#6$b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c3c4c5c6c7c8c9#5$,fe:3536393a3f403d3e41424344##3b3c373831#3334#104$,04:10111213141501161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f#13$30313233343551363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f#11$,02:cacbd9,20:13152535,21:050996979899,22:151f23526667bf,25:505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727381828384858687#88898a8b8c8d8e8f939495bcbde2e3e4e5,2609229530:121d1e#9$,010100e101ce00e0011300e9011b00e8012b00ed01d000ec014d00f301d200f2016b00fa01d400f901:d6d8dadc,00:fcea,0251e7c701:4448,e7c802:61#2$,31:05060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223242526272829#19$,30:212223242526272829,32a333:8e8f9c9d9ea1c4ced1d2d5,fe30ff:e2e4#,212132:31#,20:10#1$,30:fc9b9cfdfe069d9e,fe:494a4b4c4d4e4f50515254555657595a5b5c5d5e5f6061#626364656668696a6b,e7:e7e8e9eaebecedeeeff0f1f2f3,30:07#11$,25:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b#13$,72:dcdddfe2e3e4e5e6e7eaebf5f6f9fdfeff,73:00020405060708090b0c0d0f1011121418191a1f2023242627282d2f30323335363a3b3c3d404142434445464748#494a4b4c4e4f515354555658595a5b5c5d5e5f6162636465666768696a6b6e7071#92$72737475767778797a7b7c7d7f808182838586888a8c8d8f90929394959798999a9c9d9ea0a1a3a4a5a6a7a8aaacadb1b4b5b6b8b9bcbdbebfc1c3c4c5c6c7#cbccced2d3d4d5d6d7d8dadbdcdddfe1e2e3e4e6e8eaebeceeeff0f1f3f4f5f6f7#92$f8f9fafbfcfdfeff,74:0001020407080b0c0d0e1112131415161718191c1d1e1f2021232427292b2d2f31323738393a3b3d3e3f4042434445464748494a4b4c4d#4e4f505152535456585d606162636465666768696a6b6c6e6f717273747578797a#92$7b7c7d7f8284858688898a8c8d8f9192939495969798999a9b9d9fa0a1a2a3a4a5a6aaabacadaeafb0b1b2b3b4b5b6b7b8b9bbbcbdbebfc0c1c2c3c4c5c6c7#c8c9cacbcccdcecfd0d1d3d4d5d6d7d8d9dadbdddfe1e5e7e8e9eaebecedf0f1f2#92$f3f5f8f9fafbfcfdfe,75:0001020305060708090a0b0c0e1012141516171b1d1e202122232426272a2e3436393c3d3f414243444647494a4d5051525355565758#5d5e5f60616263646768696b6c6d6e6f7071737576777a7b7c7d7e808182848587#92$88898a8c8d8e909395989b9c9ea2a6a7a8a9aaadb6b7babbbfc0c1c6cbcccecfd0d1d3d7d9dadcdddfe0e1e5e9ecedeeeff2f3f5f6f7f8fafbfdfe,76:02040607#08090b0d0e0f11121314161a1c1d1e212327282c2e2f31323637393a3b3d414244#92$45464748494a4b4e4f50515253555758595a5b5d5f6061626465666768696a6c6d6e7071727374757677797a7c7f80818385898a8c8d8f9092949597989a9b#9c9d9e9fa0a1a2a3a5a6a7a8a9aaabacadafb0b3b5b6b7b8b9babbbcbdbec0c1c3,554a963f57c3632854ce550954c076:914c,853c77ee827e788d72319698978d6c285b894ffa630966975cb880fa684880ae660276ce51f9655671ac7ff1888450b2596561ca6fb382ad634c625253ed54277b06516b75a45df462d48dcb9776628a8019575d97387f627238767d67cf767e64464f708d2562dc7a17659173ed642c6273822c9881677f724862:6ecc,4f3474e3534a529e7eca90a65e2e6886699c81807ed168d278c5868c9551508d8c2482de80de53058912526576:c4c7c9cbccd3d5d9dadcdddee0e1e2e3e4e6e7e8e9eaebecedf0f3f5f6f7fafbfdff,77:00020305060a0c0e0f1011121314151617181b1c1d1e21232425272a2b#2c2e3031323334393b3d3e3f4244454648494a4b4c4d4e4f52535455565758595c,858496f94fdd582199715b9d62:b1a5,66b48c799c8d7206676f789160b253:5117,8f8880cc8d1d94a1500d72c8590760eb711988ab595482ef672c7b285d297ef7752d6cf58e668ff8903c9f3b6bd491197b145f7c78a784d6853d6b:d5d9d6,5e:0187,75f995ed655d5f:0ac5,8f9f58c181c2907f965b97ad8fb97f168d2c62414fbf53:d85e,8f:a8a9ab,904d68075f6a819888689cd6618b522b762a5f6c658c6fd26ee85bbe644851:75b0,67c44e1979c9997c70b377:5d5e5f606467696a6d6e6f7071727374757677787a7b7c818283868788898a8b8f90939495969798999a9b9c9d9ea1a3a4a6a8abadaeafb1b2b4b6b7b8b9ba#bcbec0c1c2c3c4c5c6c7c8c9cacbcccecfd0d1d2d3d4d5d6d8d9dadddedfe0e1e4,75c55e7673bb83e064ad62e894b56ce2535a52c3640f94c27b944f2f5e1b823681:168a,6e246cca9a736355535c54fa886557e04e0d5e036b657c3f90e8601664e6731c88c16750624d8d22776c8e2991c75f6983dc8521991053c286956b8b60:ede8,707f82:cd31,4ed36ca785cf64cd7cd969fd66f9834953957b564fa7518c6d4b5c428e6d63d253c983:2c36,67e578b4643d5bdf5c945dee8be762c667f48c7a640063ba8749998b8c177f2094f24ea7961098a4660c731677:e6e8eaeff0f1f2f4f5f7f9fafbfc,78:0304050607080a0b0e0f101315191b1e20212224282a2b2e2f31323335363d3f414243444648494a4b4d4f51535458595a#5b5c5e5f606162636465666768696f7071727374757678797a7b7d7e7f80818283,573a5c1d5e38957f507f80a05382655e7545553150218d856284949e671d56326f6e5de2543570928f66626f64a463a35f7b6f8890f481e38fb05c1866685ff16c8996488d81886c649179f057ce6a59621054484e587a0b60e96f848bda627f901e9a8b79e4540375f4630153196c608fdf5f1b9a70803b9f7f4f885c3a8d647fc565a570bd51:45b2,866b5d075ba062bd916c75748e0c7a2061017b794ec77ef877854e1181ed521d51fa6a7153a88e87950496cf6ec19664695a78:848586888a8b8f9092949596999d9ea0a2a4a6a8a9aaabacadaeafb5b6b7b8babbbcbdbfc0c2c3c4c6c7c8cccdcecfd1d2d3d6d7d8dadbdcdddedfe0e1e2e3#e4e5e6e7e9eaebedeeeff0f1f3f5f6f8f9fbfcfdfeff,79:00020304060708090a0b0c,784050a877d7641089e6590463e35ddd7a7f693d4f20823955984e3275ae7a975e:628a,95ef521b5439708a6376952457826625693f918755076df37eaf882262337ef075b5832878c196cc8f9e614874f78bcd6b64523a8d506b21806a847156f153064e:ce1b,51d17c97918b7c074fc38e7f7be17a9c64675d1450ac810676017cb96dec7fe067515b:58f8,78cb64:ae13,63:aa2b,9519642d8fbe7b5476296253592754466b7950a362345e266b864ee38d37888b5f85902e79:0d0e0f1011121415161718191a1b1c1d1f2021222325262728292a2b2c2d2e2f3031323335363738393d3f42434445474a4b4c4d4e4f505152545558596163#6466696a6b6c6e70717273747576797b7c7d7e7f8283868788898b8c8d8e909192,6020803d62c54e39535590f863b880c665e66c2e4f4660ee6de18bde5f3986cb5f536321515a83616863520063638e4850125c9b79775bfc52307a3b60bc905376d75f:b797,76848e6c706f767b7b4977aa51f3909358244f4e6ef48fea654c7b1b72c46da47fdf5ae162b55e95573084827b2c5e1d5f1f90127f1498a063826ec7789870b95178975b57ab75354f4375385e9760e659606dc06bbf788953fc96d551cb52016389540a94938c038dcc7239789f87768fed8c0d53e079:939495969798999b9c9d9e9fa0a1a2a3a4a5a6a8a9aaabacadaeafb0b1b2b4b5b6b7b8bcbfc2c4c5c7c8cacccecfd0d3d4d6d7d9dadbdcdddee0e1e2e5e8ea#eceef1f2f3f4f5f6f7f9fafcfeff,7a:0104050708090a0c0f10111213151618191b1c,4e0176ef53ee948998769f0e952d5b9a8ba24e:221c,51ac846361c252a8680b4f97606b51bb6d1e515c6296659796618c46901775d890fd77636bd272:8aec,8bfb583577798d4c675c9540809a5ea66e2159927aef77ed953b6bb565ad7f0e58065151961f5bf958a954288e726566987f56e4949d76fe9041638754c659:1a3a,579b8eb267358dfa8235524160f0581586fe5ce89e454fc4989d8bb95a2560765384627c904f9102997f6069800c513f80335c1499756d314e8c7a:1d1f21222425262728292a2b2c2d2e2f303132343536383a3e4041424344454748494a4b4c4d4e4f50525354555658595a5b5c5d5e5f606162636465666768#696a6b6c6d6e6f717273757b7c7d7e828587898a8b8c8e8f909394999a9b9ea1a2,8d3053d17f5a7b4f4f104e4f96006cd573d085e95e06756a7ffb6a0a77fe94927e4151e170e653cd8fd483038d2972af996d6cdb574a82b365b980aa623f963259a84eff8bbf7eba653e83f2975e556198de80a5532a8bfd542080ba5e9f6cb88d3982ac915a54296c1b52067eb7575f711a6c7e7c89594b4efd5fff61247caa4e305c0167ab87025cf0950b98ce75af70fd902251af7f1d8bbd594951e44f5b5426592b657780a45b7562:76c2,8f905e456c1f7b264f:0fd8,670d7a:a3a4a7a9aaabaeafb0b1b2b4b5b6b7b8b9babbbcbdbec0c1c2c3c4c5c6c7c8c9cacccdcecfd0d1d2d3d4d5d7d8dadbdcdde1e2e4e7e8e9eaebeceef0f1f2f3#f4f5f6f7f8fbfcfe,7b:0001020507090c0d0e1012131617181a1c1d1f21222327292d,6d:6eaa,798f88b15f17752b629a8f854fef91dc65a781:2f51,5e9c81508d74526f89868d4b590d50854ed8961c723681798d1f5bcc8ba3964459877f1a549056:760e,8be565396982949976d66e895e72751867:46d1,7aff809d8d76611f79c665628d635188521a94a27f38809b7eb25c976e2f67607bd9768b9ad8818f7f947cd5641e95507a3f54:4ae5,6b4c640162089e3d80f3759952729769845b683c86e496:0194,94ec4e2a54047ed968398ddf801566f45e9a7fb97b:2f303234353637393b3d3f404142434446484a4d4e535557595c5e5f61636465666768696a6b6c6d6f70737476787a7c7d7f81828384868788898a8b8c8e8f#9192939698999a9b9e9fa0a3a4a5aeafb0b2b3b5b6b7b9babbbcbdbebfc0c2c3c4,57c2803f68975de5653b529f606d9f9a4f9b8eac516c5bab5f135de96c5e62f18d21517194a952fe6c9f82df72d757a267848d2d591f8f9c83c754957b8d4f306cbd5b6459d19f1353e486ca9aa88c3780a16545987e56fa96c7522e74dc52505be1630289024e5662d0602a68fa51735b9851a089c27ba199867f5060ef704c8d2f51495e7f901b747089c4572d78455f529f9f95fa8f689b3c8be17678684267dc8d:ea35,523d8f8a6eda68cd950590ed56fd679c88f98fc754c87b:c5c8c9cacbcdcecfd0d2d4d5d6d7d8dbdcdedfe0e2e3e4e7e8e9ebecedeff0f2f3f4f5f6f8f9fafbfdff,7c:0001020304050608090a0d0e101112131415171819#1a1b1c1d1e20212223242528292b2c2d2e2f3031323334353637393a3b3c3d3e42,9ab85b696d776c264ea55bb39a87916361a890af97e9542b6db55bd251fd558a7f:55f0,64bc634d65f161be608d710a6c:5749,592f676d822a58d5568e8c6a6beb90dd597d801753f76d695475559d83:77cf,683879be548c4f55540876d28c8996026cb36db88d6b89109e648d3a563f9ed175d55f8872e0606854fc4ea86a2a886160528f7054c470d886799e3f6d2a5b8f5f187ea255894faf7334543c539a501954:0e7c,4e4e5ffd745a58f6846b80e1877472d07cca6e567c:434445464748494a4b4c4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f70717275767778797a7e7f8081828384858687#888a8b8c8d8e8f90939496999a9ba0a1a3a6a7a8a9abacadafb0b4b5b6b7b8babb,5f27864e552c62a44e926caa623782b154d7534e733e6ed1753b521253168bdd69d05f8a60006dee574f6b2273af68538fd87f13636260a3552475ea8c6271156da35ba65e7b8352614c9ec478fa87577c27768751f060f6714c66435e4c604d8c0e707063258f895fbd606286d456de6bc160946167534960e066668d3f79fd4f1a70e96c478b:b3f2,7ed88364660f5a5a9b426d:51f7,8c416d3b4f19706b83b7621660d1970d8d27797851fb57:3efa,673a75787a3d79ef7b957c:bfc0c2c3c4c6c9cbcecfd0d1d2d3d4d8dadbdddee1e2e3e4e5e6e7e9eaebecedeef0f1f2f3f4f5f6f7f9fafcfdfeff,7d:000102030405060708090b0c0d0e0f10#1112131415161718191a1b1c1d1e1f212324252628292a2c2d2e30313233343536,808c99658ff96fc08ba59e2159ec7ee97f095409678168d88f917c4d96c653ca602575be6c7253735ac97ea7632451e0810a5df184df628051805b634f0e796d524260b86d4e5b:c4c2,8b:a1b0,65e25fcc964559937e:e7aa,560967b759394f735bb652a0835a988a8d3e753294be50477a3c4ef767b69a7e5ac16b7c76d1575a5c167b3a95f4714e517c80a9827059787f04832768c067ec78:b177,62e363617b804fed526a51cf835069db92748d:f531,89c1952e7bad4ef67d:3738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6f70717273747576#78797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798,506582305251996f6e:1085,6da75efa50f559dc5c066d466c5f7586848b686859568bb253209171964d854969127901712680f64ea490ca6d479a845a0756bc640594f077eb4fa5811a72e189d2997a7f347ede527f655991758f:7f83,53eb7a9663:eda5,768679f888579636622a52ab8282685467706377776b7aed6d017ed389e359d0621285c982a5754c501f4ecb75a58beb5c4a5dfe7b4b65a491d14eca6d25895f7d2795264ec58c288fdb9773664b79818fd170ec6d787d:999a9b9c9d9e9fa0a1a2a3a4a5a7a8a9aaabacadafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9#dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fa,5c3d52b283465162830e775b66769cb84eac60ca7c:beb3,7ecf4e958b66666f988897595883656c955c5f8475c997567a:dfde,51c070af7a9863ea7a767ea0739697ed4e4570784e5d915253a965:51e7,81fc8205548e5c31759a97a062d872d975bd5c459a7983ca5c40548077e94e3e6cae805a62d2636e5de851778ddd8e1e952f4ff153e560e770ac526763509e435a1f5026773753777ee26485652b628963985014723589c951b38bc07edd574783cc94a7519b541b5cfb7d:fbfcfdfeff,7e:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233343536373839#3a3c3d3e3f40424344454648494a4b4c4d4e4f505152535455565758595a5b5c5d,4fca7ae36d5a90e19a8f55805496536154af5f0063e9697751ef6168520a582a52d8574e780d770b5eb761777ce062:5b97,4ea27095800362f770e49760577782db67ef68f578d5989779d158f354b353ef6e34514b523b5ba28bfe80af554357a660735751542d7a7a60505b5463a762a053e362635bc767af54ed7a9f82e691775e9388e4593857ae630e8de880ef57577b774fa95feb5bbd6b3e53217b5072c2684677:ff36,65f751b54e8f76d45cbf7aa58475594e9b4150807e:5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081838485868788898a8b8c8d8e8f909192939495969798999a9c9d9e#aeb4bbbcd6e4ecf9,7f:0a101e37393b3c3d3e3f404143464748494a4b4c4d4e4f5253,998861276e8357646606634656f062:ec69,5ed39614578362c955878721814a8fa3556683b167658d5684dd5a6a680f62e67bee961151706f9c8c3063fd89c861d27f0670c26ee57405699472fc5eca90ce67176d6a635e52b3726280014f6c59e5916a70d96d9d52d24e5096f7956d857e78ca7d2f5121579264c2808b7c7b6cea68f1695e51b7539868a872819ece7bf172f879bb6f137406674e91cc9ca4793c83:8954,540f68174e3d538952b1783e5386522950884f:8bd0,7f:56595b5c5d5e6063646566676b6c6d6f7073757677787a7b7c7d7f8082838485868788898b8d8f9091929395969798999b9ca0a2a3a5a6a8a9aaabacadaeb1#b3b4b5b6b7babbbec0c2c3c4c6c7c8c9cbcdcfd0d1d2d3d6d7d9dadbdcdddee2e3,75e27acb7c926ca596b6529b748354e94fe9805483b28fde95705ec9601c6d9f5e18655b813894fe604b70bc7ec37cae51c968817cb1826f4e248f8691cf667e4eae8c0564a9804a50da759771ce5be58fbd6f664e86648295635ed66599521788c270c852a3730e7433679778f797164e3490bb9cde6dcb51db8d41541d62ce73b283f196f69f8494c34f367f9a51cc707596755cad988653e64ee46e9c740969b4786b998f7559521876246d4167f3516d9f99804b54997b3c7abf7f:e4e7e8eaebecedeff2f4f5f6f7f8f9fafdfeff,80:020708090a0e0f11131a1b1d1e1f2123242b2c2d2e2f303234393a3c3e404144454748494e4f505153555657#595b5c5d5e5f6061626364656667686b6c6d6e6f7072737475767778797a7b7c7d,9686578462e29647697c5a0464027bd36f0f964b82a6536298855e90708963b35364864f9c819e93788c97328d:ef42,9e7f6f5e79845f559646622e9a74541594dd4fa365c55c:6561,7f1586516c2f5f8b73876ee47eff5ce6631b5b6a6ee653754e7163a0756562a18f6e4f264ed16ca67eb68bba841d87ba7f57903b95237ba99aa188f8843d6d1b9a867edc59889ebb739b780186829a:6c82,561b541757cb4e709ea653568fc881097792999286ee6ee1851366fc61626f2b80:7e818285888a8d8e8f909192949597999ea3a6a7a8acb0b3b5b6b8b9bbc5c7c8c9cacbcfd0d1d2d3d4d5d8dfe0e2e3e6eef5f7f9fbfeff,81:000103040507080b#0c1517191b1c1d1f202122232425262728292a2b2d2e3033343537393a3b3c3d3f,8c298292832b76f26c135fd983bd732b8305951a6bdb77db94c6536f830251925e3d8c8c8d384e4873ab679a68859176970971646ca177095a9295416bcf7f8e66275bd059b95a9a95:e8f7,4eec84:0c99,6aac76df9530731b68a65b5f772f919a97617cdc8ff78c1c5f257c7379d889c56ccc871c5bc65e4268c977207ef551:954d,52c95a297f05976282d763cf778485d079d26e3a5e9959998511706d6c1162bf76bf654f60af95fd660e879f9e2394ed54:0d7d,8c2c647881:40414243444547494d4e4f525657585b5c5d5e5f6162636466686a6b6c6f727375767778818384858687898b8c8d8e90929394959697999a9e9fa0a1a2a4a5#a7a9abacadaeafb0b1b2b4b5b6b7b8b9bcbdbebfc4c5c7c8c9cbcdcecfd0d1d2d3,647986116a21819c78e864699b5462b9672b83ab58a89ed86cab6f205bde964c8c0b725f67d062c772614ea959c66bcd589366ae5e5552df6155672876ee776672677a4662ff54:ea50,94a090a35a1c7eb36c164e435976801059485357753796be56ca63208111607c95f96dd65462998151855ae980fd59ae9713502a6ce55c3c62df4f60533f817b90066eba852b62c85e7478be64b5637b5ff55a18917f9e1f5c3f634f80425b7d556e95:4a4d,6d8560a867e072de51dd5b8181:d4d5d6d7d8d9dadbdcdddedfe0e1e2e4e5e6e8e9ebeeeff0f1f2f5f6f7f8f9fafdff,82:030708090a0b0e0f111315161718191a1d2024252627292e323a3c3d3f#404142434546484a4c4d4e5051525354555657595b5c5d5e606162636465666769,62e76cde725b626d94ae7ebd81136d53519c5f04597452aa6012597366968650759f632a61e67cef8bfa54e66b279e256bb485d5545550766ca4556a8db4722c5e156015743662cd6392724c5f986e436d3e65006f5876d878d076fc7554522453db4e535e9e65c180:2ad6,629b5486522870ae888d8dd16ce1547880da57f988f48d54966a914d4f696c9b55b776c6783062a870f96f8e5f6d84ec68da787c7bf781a8670b9e4f636778b0576f7812973962:79ab,528874356bd782:6a6b6c6d71757677787b7c808183858687898c90939495969a9b9ea0a2a3a7b2b5b6babbbcbfc0c2c3c5c6c9d0d6d9dadde2e7e8e9eaecedeef0f2f3f5f6f8#fafcfdfeff,83:000a0b0d1012131618191d1e1f20212223242526292a2e3032373b3d,5564813e75b276ae533975de50fb5c418b6c7bc7504f72479a9798d86f0274e27968648777a562fc98918d2b54c180584e52576a82f9840d5e7351ed74f68bc45c4f57616cfc98875a4678349b448feb7c955256625194fa4ec68386846183e984b257d467345703666e6d668c3166dd7011671f6b3a6816621a59bb4e0351c46f0667d26c8f517668cb59476b6775665d0e81109f5065d779:4841,9a918d775c824e5e4f01542f5951780c56686c148fc45f036c:7de3,8bab639083:3e3f41424445484a4b4c4d4e5355565758595d6270717273747576797a7e7f808182838487888a8b8c8d8f909194959697999a9d9fa1a2a3a4a5a6a7acadae#afb5bbbebfc2c3c4c6c8c9cbcdced0d1d2d3d5d7d9dadbdee2e3e4e6e7e8ebeced,60706d3d7275626694:8ec5,53438fc17b7e4edf8c264e7e9ed494:b1b3,524d6f5c90636d458c3458115d4c6b:2049,67aa545b81547f8c589985375f3a62a26a47953965726084686577a74e544fa85de7979864ac7fd85ced4fcf7a8d520783044e14602f7a8394a64fb54eb279e6743452e482b964d279bd5bdd6c8197528f7b6c22503e537f6e0564ce66746c3060c598778bf75e86743c7a7779cb4e1890b174036c4256da914b6cc58d8b533a86c666f28eaf5c489a716e2083:eeeff3f4f5f6f7fafbfcfeff,84:0002050708090a10121314151617191a1b1e1f20212223292a2b2c2d2e2f30323334353637393a3b3e3f404142434445474849#4a4b4c4d4e4f505253545556585d5e5f606264656667686a6e6f70727477797b7c,53d65a369f8b8da353bb570898a76743919b6cc9516875ca62f372ac52:389d,7f3a7094763853749e4a69b7786e96c088d97fa471:36c3,518967d374e458e4651856b78ba9997662707ed560f970ed58ec4e:c1ba,5fcd97e74efb8ba45203598a7eab62544ecd65e5620e833884c98363878d71946eb65bb97ed2519763c967d480898339881551125b7a59828fb14e736c5d516589258f6f962e854a745e95:10f0,6da682e55f3164926d128428816e9cc3585e8d5b4e0953c184:7d7e7f8081838485868a8d8f90919293949596989a9b9d9e9fa0a2a3a4a5a6a7a8a9aaabacadaeb0b1b3b5b6b7bbbcbec0c2c3c5c6c7c8cbcccecfd2d4d5d7#d8d9dadbdcdee1e2e4e7e8e9eaebedeeeff1f2f3f4f5f6f7f8f9fafbfdfe,85:000102,4f1e6563685155d34e2764149a9a626b5ac2745f82726da968ee50e7838e7802674052396c997eb150bb5565715e7b5b665273ca82eb67495c715220717d886b95ea965564c58d6181b355846c5562477f2e58924f2455468d4f664c4e0a5c1a88f368a2634e7a0d70e7828d52fa97f65c1154e890b57ecd59628d4a86c782:0c0d,8d6664445c0461516d89793e8bbe78377533547b4f388eab6df15a207ec5795e6c885ba15a76751a80be614e6e1758f075:1f25,727253477ef385:030405060708090a0b0d0e0f101214151618191b1c1d1e2022232425262728292a2d2e2f303132333435363e3f404142444546474b4c4d4e4f505152535455#57585a5b5c5d5f60616263656667696a6b6c6d6e6f707173757677787c7d7f8081,770176db526980dc57235e08593172ee65bd6e7f8bd75c388671534177f362fe65f64ec098df86805b9e8bc653f277e24f7f5c4e9a7659cb5f0f793a58eb4e1667ff4e8b62ed8a93901d52bf662f55dc566c90024ed54f8d91ca99706c0f5e0260435ba489c68bd56536624b99965b:88ff,6388552e53d77626517d852c67a268b36b8a62928f9353d482126dd1758f4e668d4e5b70719f85af66:91d9,7f7287009ecd9f205c5e672f8ff06811675f620d7ad658855eb665706f3185:82838688898a8b8c8d8e909192939495969798999a9d9e9fa0a1a2a3a5a6a7a9abacadb1b2b3b4b5b6b8babbbcbdbebfc0c2c3c4c5c6c7c8cacbcccdced1d2#d4d6d7d8d9dadbdddedfe0e1e2e3e5e6e7e8eaebecedeeeff0f1f2f3f4f5f6f7f8,60555237800d6454887075295e05681362f4971c53cc723d8c016c3477617a0e542e77ac987a821c8bf47855671470c165af64955636601d79c153f84e1d6b7b80865bfa55e356db4f:3a3c,99725df3677e80386002988290015b8b8b:bcf5,641c825864de55fd82cf91654fd77d20901f7c9f50f358516eaf5bbf8bc980839178849c7b97867d96:8b8f,7ee59ad3788e5c817a57904296a7795f5b59635f7b0b84d168ad55067f2974107d2295016240584c4ed65b835979585485:f9fafcfdfe,86:0001020304060708090a0b0c0d0e0f10121314151718191a1b1c1d1e1f20212223242526282a2b2c2d2e2f3031323334353637393a3b3d3e3f40#4142434445464748494a4b4c525355565758595b5c5d5f6061636465666768696a,736d631e8e:4b0f,80ce82d462ac53f06cf0915e592a60016c70574d644a8d2a762b6ee9575b6a8075f06f6d8c:2d08,57666bef889278b363a253f970ad6c645858642a580268e0819b55107cd650188eba6dcc8d9f70eb638f6d9b6ed47ee68404684390036dd896768ba85957727985e4817e75bc8a8a68af52548e22951163d098988e44557c4f5366ff568f60d56d9552435c4959296dfb586b75:301c,606c82148146631167618fe2773a8d:f334,94c15e165385542c70c386:6d6f7072737475767778838485868788898e8f90919294969798999a9b9e9fa0a1a2a5a6abadaeb2b3b7b8b9bbbcbdbebfc1c2c3c5c8cccdd2d3d5d6d7dadc#dde0e1e2e3e5e6e7e8eaebeceff5f6f7fafbfcfdff,87:010405060b0c0e0f10111416,6c405ef7505c4ead5ead633a8247901a6850916e77b3540c94dc5f647ae5687663457b527edf75db507762955934900f51f879c37a8156fe5f9290146d825c60571f541051546e4d56e263a89893817f8715892a9000541e5c6f81c062:d658,81319e3596409a:6e7c,692d59a562d3553e631654c786d96d3c5a0374e6889c6b6a59168c4c5f2f6e7e73a9987d4e3870f75b8c7897633d665a769660cb5b9b5a494e0781556c6a738b4ea167897f515f8065fa671b5fd859845a0187:191b1d1f20242627282a2b2c2d2f303233353638393a3c3d404142434445464a4b4d4f505152545556585a5b5c5d5e5f6162666768696a6b6c6d6f71727375#7778797a7f8081848687898a8c8e8f90919294959698999a9b9c9d9ea0a1a2a3a4,5dcd5fae537197e68fdd684556f4552f60df4e3a6f4d7ef482c7840e59d44f:1f2a,5c3e7eac672a851a5473754f80c355829b4f4f4d6e2d8c135c096170536b761f6e29868a658795fb7eb9543b7a337d0a95ee55e17fc174ee631d87176da17a9d621165a1536763e16c835deb545c94a84e4c6c618bec5c4b65e0829c68a754:3e34,6b:cb66,4e9463425348821e4f:0dae,575e620a96fe6664726952:ffa1,609f8bef661471996790897f785277fd6670563b54389521727a87:a5a6a7a9aaaeb0b1b2b4b6b7b8b9bbbcbebfc1c2c3c4c5c7c8c9cccdcecfd0d4d5d6d7d8d9dadcdddedfe1e2e3e4e6e7e8e9ebecedeff0f1f2f3f4f5f6f7f8#fafbfcfdff,88:0001020405060708090b0c0d0e0f101112141718191a1c1d1e1f2023,7a00606f5e0c6089819d591560dc718470ef6eaa6c5072806a8488ad5e2d4e605ab3559c94e36d177cfb9699620f7ec6778e867e5323971e8f9666875ce14fa072ed4e0b53a6590f54136380952851484ed99c9c7ea454b88d248854823795f26d8e5f265acc663e966973:b02e,53bf817a99857fa15baa96:7750,7ebf76f853a2957699997bb189446e584e617fd479658be660f354cd4eab98795df76a6150cf54118c618427785d9704524a54ee56a395006d885bb56dc6665388:2425262728292a2b2c2d2e2f30313334353637383a3b3d3e3f414243464748494a4b4e4f505152535556585a5b5c5d5e5f6066676a6d6f717374757678797a#7b7c80838687898a8c8e8f90919394959798999a9b9d9e9fa0a1a3a5a6a7a8a9aa,5c0f5b5d6821809655787b11654869544e9b6b47874e978b534f631f643a90aa659c80c18c10519968b0537887f961c86c:c4fb,8c225c5185aa82af950c6b238f9b65b05f:fbc3,4fe18845661f8165732960fa51745211578b5f6290a2884c91925e78674f602759d351:44f6,80f853086c7996c4718a4f:11ee,7f9e673d55c5950879c088967ee3589f620c9700865a5618987b5f908bb884c4915753d965ed5e8f755c60647d6e5a7f7e:eaed,8f6955a75ba360ac65cb738488:acaeafb0b2b3b4b5b6b8b9babbbdbebfc0c3c4c7c8cacbcccdcfd0d1d3d6d7dadbdcdddee0e1e6e7e9eaebecedeeeff2f5f6f7fafbfdff,89:0001030405060708#090b0c0d0e0f1114151617181c1d1e1f20222324262728292c2d2e2f3132333537,9009766377297eda9774859b5b667a7496ea884052cb718f5faa65ec8be25bfb9a6f5de16b896c5b8b:adaf,900a8fc5538b62bc9e:262d,54404e2b82bd7259869c5d1688596daf96c554d14e9a8bb6710954bd960970df6df976d04e25781487125ca95ef68a00989c960e708e6cbf594463a9773c884d6f148273583071d5538c781a96c155015f6671305bb48c1a9a8c6b83592e9e2f79e76768626c4f6f75a17f8a6d0b96336c274ef075d2517b68376f3e908081705996747689:38393a3b3c3d3e3f40424345464748494a4b4c4d4e4f505152535455565758595a5b5c5d6061626364656768696a6b6c6d6e6f707172737475767778797a7c#7d7e808284858788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1,64475c2790657a918c2359da54ac8200836f898180006930564e8036723791ce51b64e5f987563964e1a53f666f3814b591c6db24e0058f9533b63d694f14f:9d0a,886398905937905779fb4eea80f075916c825b9c59e85f5d69058681501a5df24e5977e34ee5827a6291661390915c794ebf5f7981c69038808475ab4ea688d4610f6bc55fc64e4976ca6ea28b:e3ae,8c0a8bd15f027f:fccc,7ece83:356b,56e06bb797f3963459fb541f94f66deb5bc5996e5c395f15969089:a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c3cdd3d4d5d7d8d9dbdddfe0e1e2e4e7e8e9eaecedeef0f1f2f4f5f6f7f8f9fa#fbfcfdfeff,8a:01020304050608090a0b0c0d0e0f101112131415161718191a1b1c1d,537082f16a315a749e705e947f2883b984:2425,836787478fce8d6276c85f719896786c662054df62e54f6381c375c85eb896cd8e0a86f9548f6cf36d8c6c38607f52c775285e7d4f1860a05fe75c24753190ae94c072b96cb96e389149670953:cbf3,4f5191c98bf153c85e7c8fc26de44e8e76c26986865e611a82064f:59de,903e9c7c61096e:1d14,96854e885a3196e84e0e5c7f79b95b878bed7fbd738957df828b90c15401904755bb5cea5fa161086b3272f180b28a:891e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3f4041424344454647494a4b4c4d4e4f505152535455565758595a5b5c5d5e#5f606162636465666768696a6b6c6d6e6f7071727374757677787a7b7c7d7e7f80,6d745bd388d598848c6b9a6d9e336e0a51:a443,57a38881539f63f48f9556ed54585706733f6e907f188fdc82d1613f6028966266f07ea68d:8ac3,94a55cb37ca4670860a6960580184e9190e75300966851418fd08574915d665597f55b55531d78386742683d54c9707e5bb08f7d518d572854b1651266828d:5e43,810f846c906d7cdf51ff85fb67a365e96fa186a48e81566a90207682707671e58d2362e952196cfd8d3c600e589e618e66fe8d60624e55b36e23672d8f678a:81828384858687888b8c8d8e8f9091929495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2#c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3,94e195f87728680569a8548b4e4d70b88bc86458658b5b857a84503a5be877bb6be18a797c986cbe76cf65a98f975d2d5c5586386808536062187ad96e5b7efd6a1f7ae05f706f335f20638c6da867564e085e108d264ed780c07634969c62db662d627e6cbc8d7571677f695146808753ec906e629854f286f08f998005951785178fd96d5973cd659f771f7504782781fb8d1e94884fa6679575b98bca9707632f9547963584b8632377415f8172f04e896014657462ef6b63653f8a:e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,8b:0001020304050608090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223#24252728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445,5e2775c790d18bc1829d679d652f5431871877e580a281026c414e4b7ec7804c76f4690d6b966267503c4f84574063076b628dbe53ea65e87eb85fd763:1ab7,81:f3f4,7f6e5e1c5cd95236667a79e97a1a8d28709975d46ede6cbb7a924e2d76c55fe0949f88777ec879cd80bf91cd4ef24f17821f54685dde6d328bcc7ca58f7480985e1a549276b15b99663c9aa473e0682a86db6731732a8b:f8db,90107af970db716e62c477a956314e3b845767f152a986c08d2e94f87b518b:464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364656768696a6b6d6e6f707172737475767778797a7b7c7d7e7f80818283848586#8788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9facb1bbc7d0ea,8c:091e,4f4f6ce8795d9a7b6293722a62fd4e1378168f6c64b08d5a7bc668695e8488c55986649e58ee72b6690e95258ffd8d5857607f008c0651c6634962d95353684c74228301914c55447740707c6d4a517954a88d4459ff6ecb6dc45b5c7d2b4ed47c7d6ed35b5081ea6e0d5b579b0368d58e2a5b977efc603b7eb590b98d70594f63cd79df8db3535265cf79568bc5963b7ec494bb7e825634918967007f6a5c0a907566285de64f5067de505a4f5c57505e:a7#3$,8c:38393a3b3c3d3e3f4042434445484a4b4d4e4f5051525354565758595b5c5d5e5f60636465666768696c6d6e6f707172747576777b7c7d7e7f808183848687#888b8d8e8f90919293959697999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacad,4e:8d0c,51404e105eff53454e:15981e,9b325b6c56694e2879ba4e3f53154e47592d723b536e6c1056df80e499976bd3777e9f174e:369f,9f104e:5c6993,82885b5b556c560f4ec453:8d9da3a5ae,97658d5d53:1af5262e3e,8d5c53:6663,52:02080e2d333f404c5e615c,84af52:7d82819093,51827f544e:bbc3c9c2e8e1ebde,4f1b4ef34f:2264,4ef54f:2527092b5e67,65384f:5a5d,8c:aeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebec#edeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,8d:000102030405060708090a0b0c0d,4f:5f57323d76749189838f7e7baa7cac94e6e8eac5dae3dcd1dff8,50:294c,4ff350:2c0f2e2d,4ffe50:1c0c25287e4355484e6c7ba5a7a9bad6,510650:edece6ee,51:070b,4edd6c3d4f:5865ce,9fa06c467c74516e5dfd9ec999985181591452f9530d8a07531051eb591951554ea051564eb388:6ea4,4eb5811488d279805b3488037fb851:abb1bdbc,8d:0e0f101112131415161718191a1b1c205152575f6568696a6c6e6f717278797a7b7c7d7e7f808283868788898c8d8e8f90929395969798999a9b9c9d9ea0a1#a2a4a5a6a7a8a9aaabacadaeafb0b2b6b7b9bbbdc0c1c2c5c7c8c9cacdd0d2d3d4,51:c796a2a5,8b:a0a6a7aab4b5b7c2c3cbcfced2d3d4d6d8d9dcdfe0e4e8e9eef0f3f6f9fcff,8c:000204070c0f1112141516191b181d1f202125272a2b2e2f32333536,53:697a,96:1d2221312a3d3c4249545f676c7274888d97b0,90:979b9d99aca1b4b3b6ba,8d:d5d8d9dce0e1e2e5e6e7e9edeef0f1f2f4f6fcfeff,8e:00010203040607080b0d0e1011121315161718191a1b1c202124252627282b2d303233343637383b3c3e#3f4345464c4d4e4f505354555657585a5b5c5d5e5f60616263646567686a6b6e71,90:b8b0cfc5bed0c4c7d3e6e2dcd7dbebeffe,91:04221e23312f394346,520d594252:a2acadbe,54ff52:d0d6f0,53df71ee77cd5ef451:f5fc,9b2f53b65f01755a5def57:4ca9a1,58:7ebcc5d1,57:292c2a33392e2f5c3b4269856b867c7b686d7673ada48cb2cfa7b493a0d5d8dad9d2b8f4eff8e4dd,8e:73757778797a7b7d7e808283848688898a8b8c8d8e91929395969798999a9b9d9fa0a1a2a3a4a5a6a7a8a9aaadaeb0b1b3b4b5b6b7b8b9bbbcbdbebfc0c1c2#c3c4c5c6c7c8c9cacbcccdcfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4,58:0b0d,57:fded,58:001e194420656c81899a80,99a89f1961ff82:797d7f8f8aa8848e919799abb8beb0c8cae398b7aecbccc1a9b4a1aa9fc4cea4e1,830982:f7e4,83:0f07,82:dcf4d2d8,830c82:fbd3,83:111a061415,82:e0d5,83:1c515b5c08923c34319b5e2f4f47435f4017602d3a336665,8e:e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,8f:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223#2425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f4041424344,83:681b696c6a6d6eb078b3b4a0aa939c857cb6a97db87b989ea8babcc1,840183:e5d8,580784:180b,83:ddfdd6,84:1c381106,83:d4df,84:0f03,83:f8f9eac5c0,842683:f0e1,84:5c515a597387887a89783c4669768c8e316dc1cdd0e6bdd3cabfbae0a1b9b497e5e3,850c750d853884f085:391f3a,8f:45464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364656a808c929da0a1a2a4a5a6a7aaacadaeafb2b3b4b5b7b8babbbcbfc0c3c6#c9cacbcccdcfd2d6d7dae0e1e3e7eceff1f2f4f5f6fafbfcfeff,90:07080c0e131518,85:563b,84:fffc,85:594868645e7a,77a285:43727ba4a8878f79ae9c85b9b7b0d3c1dcff,86:270529163c,5efe5f0859:3c41,803759:555a58,530f5c:22252c34,62:4c6a9fbbcadad7ee,632262f663:394b43adf6717a8eb46dac8a69aebcf2f8e0ffc4dece,645263:c6be,64:45410b1b200c26215e846d96,90:191c2324252728292a2b2c303132333437393a3d3f4043454648494a4b4c4e545556595a5c5d5e5f6061646667696a6b6c6f70717273767778797a7b7c7e81#84858687898a8c8d8e8f90929496989a9c9e9fa0a4a5a7a8a9abadb2b7bcbdbfc0,64:7ab7b899bac0d0d7e4e2,65:09252e,5f:0bd2,75195f1153:5ff1fde9e8fb,54:1216064b5253545643215759233282947771649a9b8476669dd0adc2b4d2a7a6d3d472a3d5bbbfccd9dadca9aaa4ddcfde,551b54e7552054fd551454f355:22230f11272a678fb5496d41553f503c,90:c2c3c6c8c9cbcccdd2d4d5d6d8d9dadedfe0e3e4e5e9eaeceef0f1f2f3f5f6f7f9fafbfcff,91:00010305060708090a0b0c0d0e0f1011121314151617181a1b1c#1d1f20212425262728292a2b2c2d2e30323334353637383a3b3c3d3e3f40414244,55:375675767733305c8bd283b1b988819f7ed6917bdfbdbe9499eaf7c9,561f55:d1ebecd4e6ddc4efe5f2f3cccde8f5e4,8f9456:1e080c012423,55fe56:00272d5839572c4d62595c4c548664716b7b7c8593afd4d7dde1f5ebf9ff,57:040a091c,5e:0f191411313b3c,91:454748515354555658595b5c5f606667686b6d737a7b7c808182838486888a8e8f939495969798999c9d9e9fa0a1a4a5a6a7a8a9abacb0b1b2b3b6b7b8b9bb#bcbdbebfc0c1c2c3c4c5c6c8cbd0d2d3d4d5d6d7d8d9dadbdddedfe0e1e2e3e4e5,5e:3744545b5e61,5c:8c7a8d9096889899919a9cb5a2bdacabb1a3c1b7c4d2e4cbe5,5d:020327262e241e061b583e343d6c5b6f5d6b4b4a697482999d,8c735d:b7c5,5f:73778287898c95999ca8adb5bc,88625f6172:adb0b4b7b8c3c1cecdd2e8efe9f2f4f7,730172f3730372fa91:e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,92:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324#25262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445,72fb73:1713210a1e1d152239252c3831504d57606c6f7e,821b592598e759:2402,99:636768696a6b6c74777d8084878a8d9091939495,5e:80918b96a5a0b9b5beb3,8d535e:d2d1dbe8ea,81ba5f:c4c9d6cf,60035fee60045f:e1e4fe,60:0506,5f:eaedf8,60:1935261b0f0d292b0a3f2178797b7a42,92:464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727375767778797a7b7c7d7e7f808182838485#868788898a8b8c8d8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7,60:6a7d969aad9d83928c9becbbb1ddd8c6dab4,61:20261523,60f461:000e2b4a75ac94a7b7d4f5,5fdd96b395:e9ebf1f3f5f6fcfe,96:030406080a0b0c0d0f12151617191a,4e2c723f62156c:35545c4aa38590948c6869747686a9d0d4adf7f8f1d7b2e0d6faebeeb1d3effe,92:a8a9aaabacadafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8#e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,93:00010203040506070809,6d:39270c43480704190e2b4d2e351a4f525433916f9ea05e93945c607c63,6e1a6d:c7c5de,6e0e6d:bfe0,6e116d:e6ddd9,6e166dab6e0c6dae6e:2b6e4e6bb25f865354322544dfb198e0,6f2d6e:e2a5a7bdbbb7d7b4cf8fc29f,6f:6246472415,6ef96f:2f364b742a0929898d8c78727c7ad1,93:0a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3f40414243444546474849#4a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696b,6f:c9a7b9b6c2e1eedee0ef,70:1a231b39354f5e,5b:80849593a5b8,752f9a9e64345b:e4ee,89305bf08e478b078f:b6d3d5e5eee4e9e6f3e8,90:05040b26110d162135362d2f445152506858625b,66b990:747d8288838b,5f:50575658,5c3b54ab5c:5059,5b715c:6366,7fbc5f:2a292d,82745f3c9b3b5c6e59:81838da9aaa3,93:6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaab#acadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cbcccd,59:97caab9ea4d2b2afd7be,5a:0506,59dd5a0859:e3d8f9,5a:0c09323411231340674a553c6275,80ec5a:aa9b777abeebb2d2d4b8e0e3f1d6e6d8dc,5b:091716323740,5c:151c,5b:5a6573515362,9a:7577787a7f7d808185888a90929396989b9c9d9fa0a2a3a5a7,7e:9fa1a3a5a8a9,93:cecfd0d1d2d3d4d5d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,94:000102030405060708090a0b0c0d#0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e,7e:adb0bec0c1c2c9cbccd0d4d7dbe0e1e8ebeeeff1f2,7f0d7e:f6fafbfe,7f:01020307080b0c0f111217191c1b1f212223242526272a2b2c2d2f3031323335,5e7a757f5ddb753e909573:8e91aea29fcfc2d1b7b3c0c9c8e5d9,987c740a73:e9e7debaf2,74:0f2a5b262528302e2c,94:2f303132333435363738393a3b3c3d3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6c6d6e6f#707172737475767778797a7b7c7d7e7f8081828384919698c7cfd3d4dae6fb,95:1c20,74:1b1a415c575559776d7e9c8e8081878b9ea8a990a7d2ba,97:eaebec,67:4c535e4869a5876a7398a775a89ead8b777cf0,680967d8680a67:e9b0,680c67:d9b5dab3dd,680067:c3b8e2,680e67:c1fd,68:323360614e624464831d55664167403e4a4929b58f7477936bc2,696e68fc69:1f20,68f995:27333d43484b555a606e74757778797a7b7c7d7e808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aa#abacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacb,692468f069:0b0157,68e369:10713960425d846b80987834cc8788ce896663799ba7bbabadd4b1c1cadf95e08dff,6a2f69ed6a:171865,69f26a:443ea0505b358e793d28587c9190a997ab,73:3752,6b:8182878492938d9a9ba1aa,8f:6b6d71727375767877797a7c7e818284878b,95:cccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7ecff,96:0713181b1e20232425262728292b2c2d2f303738393a3e41434a4e4f5152535657#58595a5c5d5e606365666b6d6e6f70717378797a7b7c7d7e7f808182838487898a,8f:8d8e8f989a,8ece62:0b171b1f222125242c,81e774:eff4ff,75:0f1113,65:34eeeff0,66:0a19,677266:031500,708566:f71d34313635,800666:5f54414f56615777848ca79dbedbdce6e9,8d:3233363b3d4045464849474d5559,89:c7cacbcccecfd0d1,72:6e9f5d666f7e7f848b8d8f92,63:0832b0,96:8c8e91929395969a9b9d9e9fa0a1a2a3a4a5a6a8a9aaabacadaeafb1b2b4b5b7b8babbbfc2c3c8cacbd0d1d3d4d6d7d8d9dadbdcdddedfe1e2e3e4e5e6e7eb#ecedeef0f1f2f4f5f8fafbfcfdff,97:0203050a0b0c10111214151718191a1b1d1f20,64:3fd8,80046b:eaf3fdf5f9,6c:0507060d1518191a2129242a32,65:35556b,72:4d525630,8662521680:9f9c93bc,670a80:bdb1abadb4b7e7e8e9eadbc2c4d9cdd7,671080:ddebf1f4ed,81:0d0e,80:f2fc,671581128c5a81:361e2c1832484c5374595a7160697c7d6d67,584d5ab581:888291,6ed581:a3aacc,672681:cabb,97:2122232425262728292b2c2e2f3133343536373a3b3c3d3f404142434445464748494a4b4c4d4e4f5051545557585a5c5d5f63646667686a6b6c6d6e6f7071#72757778797a7b7d7e7f8081828384868788898a8c8e8f9093959697999a9b9c9d,81:c1a6,6b:243739434659,98:d1d2d3d5d9da,6bb35f406bc289f365909f5165:93bcc6c4c3ccced2d6,70:809c969dbbc0b7abb1e8ca,71:1013162f31735c6845724a787a98b3b5a8a0e0d4e7f9,72:1d28,706c71:1866b9,62:3e3d434849,79:3b4046495b5c535a6257606f677a858a9aa7b3,5f:d1d0,97:9e9fa1a2a4a5a6a7a8a9aaacaeb0b1b3b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3#e4e5e8eeeff0f1f2f4f7f8f9fafbfcfdfeff,98:000102030405060708090a0b0c0d0e,60:3c5d5a67415963ab,61:060d5da99dcbd1,620680:807f,6c:93f6,6dfc77:f6f8,78:0009171811,65ab78:2d1c1d393a3b1f3c252c23294e6d56572650474c6a9b939a879ca1a3b2b9a5d4d9c9ecf2,790578f479:13241e34,9f9b9e:f9fbfc,76f177:040d,76f977:07081a22192d263538505147435a68,98:0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d#4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e,77:62657f8d7d808c919fa0b0b5bd,75:3a404e4b485b727983,7f:58615f,8a487f:68747179817e,76:cde5,883294:8586878b8a8c8d8f909497959a9b9ca3a4abaaadacafb0b2b4b6b7b8b9babcbdbfc4c8c9cacbcccdced0d1d2d5d6d7d9d8dbdedfe0e2e4e5e7e8ea,98:6f70717273748b8e929599a3a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcfd0d4d6d7dbdcdde0e1e2e3e4#e5e6e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,99:0001020304050607,94:e9ebeeeff3f4f5f7f9fcfdff,95:03020607090a0d0e0f1213141516181b1d1e1f222a2b292c3132343637383c3e3f4235444546494c4e4f525354565758595b5e5f5d61626465666768696a6b6c6f7172733a,77:e7ec,96c979:d5ede3eb,7a065d477a:03021e14,99:08090a0b0c0e0f1112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2f303132333435363738393a3b3c3d3e3f40414243444546474849#4a4b4c4d4e4f50515253565758595a5b5c5d5e5f60616264667378797b7e828389,7a:393751,9ecf99a57a7076:888e9399a4,74:dee0,752c9e:202228292a2b2c3231363837393a3e414244464748494b4c4e5155575a5b5c5e63666768696a6b6c716d73,75:929496a09daca3b3b4b8c4b1b0c3c2d6cde3e8e6e4ebe7,760375:f1fcff,76:1000050c170a25181519,99:8c8e9a9b9c9d9e9fa0a1a2a3a4a6a7a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8#d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9,76:1b3c2220402d303f35433e334d5e545c566b6f,7fca7a:e6787980868895a6a0aca8adb3,88:6469727d7f82a2c6b7bcc9e2cee3e5f1,891a88:fce8fef0,89:2119131b0a342b3641667b,758b80e576:b2b4,77dc80:1214161c20222526272928310b3543464d526971,898398:788083,99:fafbfcfdfeff,9a:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738#393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f50515253545556575859,98:898c8d8f949a9b9e9fa1a2a5a6,86:4d546c6e7f7a7c7ba88d8bac9da7a3aa93a9b6c4b5ceb0bab1afc9cfb4e9f1f2edf3d0,871386:def4dfd8d1,87:0307,86f887:080a0d09233b1e252e1a3e48343129373f82227d7e7b60704c6e8b53637c64596593afa8d2,9a:5a5b5c5d5e5f606162636465666768696a6b7283898d8e949599a6a9aaabacadaeafb2b3b4b5b9bbbdbebfc3c4c6c7c8c9cacdcecfd0d2d4d5d6d7d9dadbdc#dddee0e2e3e4e5e7e8e9eaeceef0f1f2f3f4f5f6f7f8fafcfdfeff,9b:000102040506,87:c68885ad9783abe5acb5b3cbd3bdd1c0cadbeae0ee,88:1613,87fe88:0a1b21393c,7f:36424445,82107a:fafd,7b:080304150a2b0f47382a192e31202524333e1e585a45754c5d606e7b62727190a6a7b8ac9da885aa9ca2abb4d1c1ccdddae5e6ea,7c0c7b:fefc,7c:0f160b,9b:07090a0b0c0d0e1011121415161718191a1b1c1d1e2021222425262728292a2b2c2d2e3031333435363738393a3d3e3f40464a4b4c4e50525355565758595a#5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b,7c:1f2a26384140,81fe82:010204,81ec884482:2122232d2f282b383b33343e44494b4f5a5f68,88:7e8588d8df,895e7f:9d9fa7afb0b2,7c7c65497c:919d9c9ea2b2bcbdc1c7cccdc8c5d7e8,826e66a87f:bfced5e5e1e6e9eef3,7cf87d:77a6ae,7e:479b,9e:b8b4,8d:73849491b1676d,8c:4749,91:4a504e4f64,9b:7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9ba#bbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadb,91:626170696f7d7e7274798c85908d91a2a3aaadaeafb5b4ba,8c559e7e8d:b8eb,8e:055969,8d:b5bfbcbac4d6d7dadececfdbc6ecf7f8e3f9fbe4,8e098dfd8e:141d1f2c2e232f3a4039353d3149414251524a70767c6f74858f94909c9e,8c:78828a859894,659b89:d6dedadc,9b:dcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,9c:000102030405060708090a0b0c0d0e0f101112131415161718191a#1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b,89:e5ebef,8a3e8b26975396:e9f3ef,97:0601080f0e2a2d303e,9f:808385868788898a8c,9efe9f:0b0d,96:b9bcbdced2,77bf96e092:8eaec8,93:3e6aca8f,94:3e6b,9c:7f8285868788,7a239c:8b8e90919294959a9b9e9fa0a1a2a3a5a6a7a8a9abadaeb0b1b2b3b4b5b6b7babbbcbdc4c5c6c7cacb3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a#7b7d7e808384898a8c8f93969798999daaacafb9bebfc0c1c2c8c9d1d2dadbe0e1cccdcecfd0d3d4d5d7d8d9dcdddfe2,97:7c85919294afaba3b2b4,9a:b1b0b7,9e589a:b6babcc1c0c5c2cbccd1,9b:45434749484d51,98e899:0d2e5554,9a:dfe1e6efebfbedf9,9b:080f131f23,9e:bdbe,7e3b9e:8287888b92,93d69e:9d9fdbdcdde0dfe2e9e7e5eaef,9f:222c2f39373d3e44,9c:e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,9d:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021#22232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142#92$434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081#82838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2#92$a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1#e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,9e:000102#92$030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e24272e30343b3c404d5052535456595d5f606162656e6f727475767778797a7b7c7d80#8183848586898a8c8d8e8f90919495969798999a9b9c9ea0a1a2a3a4a5a7a8a9aa#92$abacadaeafb0b1b2b3b5b6b7b9babcbfc0c1c2c3c5c6c7c8cacbccd0d2d3d5d6d7d9dadee1e3e4e6e8ebecedeef0f1f2f3f4f5f6f7f8fafdff,9f:000102030405#060708090a0c0f1112141516181a1b1c1d1e1f21232425262728292a2b2d2e3031#92$3233343536383a3c3f4041424345464748494a4b4c4d4e4f52535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778#797a7b7c7d7e81828d8e8f9091929394959697989c9d9ea1a2a3a4a5,f9:2c7995e7f1#92$,fa:0c0d0e0f111314181f20212324272829,e8:15161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f40414243#4445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364'), + U2Ghash={}, + G2Uhash={}; + !function(data){ + var k=0; + data=data.match(/..../g); + for(var i=0x81;i<=0xfe;i++){ + for(var j=0x40;j<=0xFE;j++){ + U2Ghash[data[k++]]=('%'+i.toString(16)+'%'+j.toString(16)) + .toUpperCase(); + } + } + for(var key in U2Ghash){ + G2Uhash[U2Ghash[key]]=key; + } + }(data); + function isAscii(unicode) { + return ((unicode == 0x20AC) || (unicode <= 0x007F && unicode >= 0x0000)); + } + return{ + encode:function(str){ + return str.replace(/./g,function(a){ + var code=a.charCodeAt(0); + if(isAscii(code)){ + return encodeURIComponent(a); + }else{ + var key=code.toString(16); + if(key.length!=4)key=('000'+key).match(/....$/)[0]; + return U2Ghash[key]||a; + } + }); + }, + decode:function(str){ + return str.replace(/%[0-9A-F]{2}%[0-9A-F]{2}/g,function(a){ + if(a in G2Uhash){ + return String.fromCharCode('0x'+G2Uhash[a]); + }else{ + return a; + } + }).replace(/%[\w]{2}/g,function(a){ + return decodeURIComponent(a); + + }); + } + }; +} \ No newline at end of file diff --git a/zyplayer/drpy_dzlive/drpy_libs/jsencrypt.js b/zyplayer/drpy_dzlive/drpy_libs/jsencrypt.js new file mode 100644 index 0000000..fa3006c --- /dev/null +++ b/zyplayer/drpy_dzlive/drpy_libs/jsencrypt.js @@ -0,0 +1,265 @@ +/* + * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(function webpackUniversalModuleDefinition(root, factory) { + if (typeof exports === 'object' && typeof module === 'object') { + // CommonJS + module.exports = exports = factory(); + } else if (typeof define === 'function' && define.amd) { + // AMD + define([], factory); + } else { + // Global (browser) + globalThis.JSEncrypt = factory(); + } +})(this, () => { +return /******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./lib/JSEncrypt.js": +/*!**************************!*\ + !*** ./lib/JSEncrypt.js ***! + \**************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncrypt\": () => (/* binding */ JSEncrypt)\n/* harmony export */ });\n/* harmony import */ var _lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/jsbn/base64 */ \"./lib/lib/jsbn/base64.js\");\n/* harmony import */ var _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./JSEncryptRSAKey */ \"./lib/JSEncryptRSAKey.js\");\n/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \"./node_modules/process/browser.js\");\nvar _a;\n\n\nvar version = typeof process !== 'undefined'\n ? (_a = process.env) === null || _a === void 0 ? void 0 : \"3.3.2\"\n : undefined;\n/**\n *\n * @param {Object} [options = {}] - An object to customize JSEncrypt behaviour\n * possible parameters are:\n * - default_key_size {number} default: 1024 the key size in bit\n * - default_public_exponent {string} default: '010001' the hexadecimal representation of the public exponent\n * - log {boolean} default: false whether log warn/error or not\n * @constructor\n */\nvar JSEncrypt = /** @class */ (function () {\n function JSEncrypt(options) {\n if (options === void 0) { options = {}; }\n options = options || {};\n this.default_key_size = options.default_key_size\n ? parseInt(options.default_key_size, 10)\n : 1024;\n this.default_public_exponent = options.default_public_exponent || \"010001\"; // 65537 default openssl public exponent for rsa key type\n this.log = options.log || false;\n // The private and public key.\n this.key = null;\n }\n /**\n * Method to set the rsa key parameter (one method is enough to set both the public\n * and the private key, since the private key contains the public key paramenters)\n * Log a warning if logs are enabled\n * @param {Object|string} key the pem encoded string or an object (with or without header/footer)\n * @public\n */\n JSEncrypt.prototype.setKey = function (key) {\n if (this.log && this.key) {\n console.warn(\"A key was already set, overriding existing.\");\n }\n this.key = new _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__.JSEncryptRSAKey(key);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPrivateKey = function (privkey) {\n // Create the key.\n this.setKey(privkey);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPublicKey = function (pubkey) {\n // Sets the public key.\n this.setKey(pubkey);\n };\n /**\n * Proxy method for RSAKey object's decrypt, decrypt the string using the private\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str base64 encoded crypted string to decrypt\n * @return {string} the decrypted string\n * @public\n */\n JSEncrypt.prototype.decrypt = function (str) {\n // Return the decrypted string.\n try {\n return this.getKey().decrypt((0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.b64tohex)(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's encrypt, encrypt the string using the public\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str the string to encrypt\n * @return {string} the encrypted string encoded in base64\n * @public\n */\n JSEncrypt.prototype.encrypt = function (str) {\n // Return the encrypted string.\n try {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getKey().encrypt(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's sign.\n * @param {string} str the string to sign\n * @param {function} digestMethod hash method\n * @param {string} digestName the name of the hash algorithm\n * @return {string} the signature encoded in base64\n * @public\n */\n JSEncrypt.prototype.sign = function (str, digestMethod, digestName) {\n // return the RSA signature of 'str' in 'hex' format.\n try {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getKey().sign(str, digestMethod, digestName));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's verify.\n * @param {string} str the string to verify\n * @param {string} signature the signature encoded in base64 to compare the string to\n * @param {function} digestMethod hash method\n * @return {boolean} whether the data and signature match\n * @public\n */\n JSEncrypt.prototype.verify = function (str, signature, digestMethod) {\n // Return the decrypted 'digest' of the signature.\n try {\n return this.getKey().verify(str, (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.b64tohex)(signature), digestMethod);\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Getter for the current JSEncryptRSAKey object. If it doesn't exists a new object\n * will be created and returned\n * @param {callback} [cb] the callback to be called if we want the key to be generated\n * in an async fashion\n * @returns {JSEncryptRSAKey} the JSEncryptRSAKey object\n * @public\n */\n JSEncrypt.prototype.getKey = function (cb) {\n // Only create new if it does not exist.\n if (!this.key) {\n // Get a new private key.\n this.key = new _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__.JSEncryptRSAKey();\n if (cb && {}.toString.call(cb) === \"[object Function]\") {\n this.key.generateAsync(this.default_key_size, this.default_public_exponent, cb);\n return;\n }\n // Generate the key.\n this.key.generate(this.default_key_size, this.default_public_exponent);\n }\n return this.key;\n };\n /**\n * Returns the pem encoded representation of the private key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the private key WITH header and footer\n * @public\n */\n JSEncrypt.prototype.getPrivateKey = function () {\n // Return the private representation of this key.\n return this.getKey().getPrivateKey();\n };\n /**\n * Returns the pem encoded representation of the private key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the private key WITHOUT header and footer\n * @public\n */\n JSEncrypt.prototype.getPrivateKeyB64 = function () {\n // Return the private representation of this key.\n return this.getKey().getPrivateBaseKeyB64();\n };\n /**\n * Returns the pem encoded representation of the public key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the public key WITH header and footer\n * @public\n */\n JSEncrypt.prototype.getPublicKey = function () {\n // Return the private representation of this key.\n return this.getKey().getPublicKey();\n };\n /**\n * Returns the pem encoded representation of the public key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the public key WITHOUT header and footer\n * @public\n */\n JSEncrypt.prototype.getPublicKeyB64 = function () {\n // Return the private representation of this key.\n return this.getKey().getPublicBaseKeyB64();\n };\nvar b64map=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";var b64pad=\"=\";var base64DecodeChars=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,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,-1,-1,-1,-1,-1);function btoa(str){var out,i,len;var c1,c2,c3;len=str.length;i=0;out=\"\";while(i>2);out+=b64map.charAt((c1&3)<<4);out+=\"==\";break}c2=str.charCodeAt(i++);if(i==len){out+=b64map.charAt(c1>>2);out+=b64map.charAt((c1&3)<<4|(c2&240)>>4);out+=b64map.charAt((c2&15)<<2);out+=\"=\";break}c3=str.charCodeAt(i++);out+=b64map.charAt(c1>>2);out+=b64map.charAt((c1&3)<<4|(c2&240)>>4);out+=b64map.charAt((c2&15)<<2|(c3&192)>>6);out+=b64map.charAt(c3&63)}return out}function atob(str){var c1,c2,c3,c4;var i,len,out;len=str.length;i=0;out=\"\";while(i>4);do{c3=str.charCodeAt(i++)&255;if(c3==61)return out;c3=base64DecodeChars[c3]}while(i>2);do{c4=str.charCodeAt(i++)&255;if(c4==61)return out;c4=base64DecodeChars[c4]}while(i>6)+b64map.charAt(c&63)}if(i+1==h.length){c=parseInt(h.substring(i,i+1),16);ret+=b64map.charAt(c<<2)}else if(i+2==h.length){c=parseInt(h.substring(i,i+2),16);ret+=b64map.charAt(c>>2)+b64map.charAt((c&3)<<4)}while((ret.length&3)>0)ret+=b64pad;return ret}function hexToBytes(hex){for(var bytes=[],c=0;c>>4).toString(16));hex.push((bytes[i]&15).toString(16))}return hex.join(\"\")}function b64tohex(str){for(var i=0,bin=atob(str.replace(/[ \\r\\n]+$/,\"\")),hex=[];i>3};JSEncrypt.prototype.decryptUnicodeLong=function(string){var k=this.getKey();var maxLength=(k.n.bitLength()+7>>3)*2;try{var hexString=b64tohex(string);var decryptedString=\"\";var rexStr=\".{1,\"+maxLength+\"}\";var rex=new RegExp(rexStr,\"g\");var subStrArray=hexString.match(rex);if(subStrArray){subStrArray.forEach(function(entry){decryptedString+=k.decrypt(entry)});return decryptedString}}catch(ex){console.log(\"加密错误:\"+ex.message);return false}};JSEncrypt.prototype.encryptUnicodeLong=function(string){var k=this.getKey();var maxLength=(k.n.bitLength()+7>>3)-11;try{var subStr=\"\",encryptedString=\"\";var subStart=0,subEnd=0;var bitLen=0,tmpPoint=0;for(var i=0,len=string.length;imaxLength){subStr=string.substring(subStart,subEnd);encryptedString+=k.encrypt(subStr);subStart=subEnd;bitLen=bitLen-tmpPoint}else{subEnd=i;tmpPoint=bitLen}}subStr=string.substring(subStart,len);encryptedString+=k.encrypt(subStr);return hex2b64(encryptedString)}catch(ex){console.log(\"解密错误:\"+ex.message);return false}}; JSEncrypt.version = version;\n return JSEncrypt;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/JSEncrypt.js?"); + +/***/ }), + +/***/ "./lib/JSEncryptRSAKey.js": +/*!********************************!*\ + !*** ./lib/JSEncryptRSAKey.js ***! + \********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncryptRSAKey\": () => (/* binding */ JSEncryptRSAKey)\n/* harmony export */ });\n/* harmony import */ var _lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/jsbn/base64 */ \"./lib/lib/jsbn/base64.js\");\n/* harmony import */ var _lib_asn1js_hex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/asn1js/hex */ \"./lib/lib/asn1js/hex.js\");\n/* harmony import */ var _lib_asn1js_base64__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/asn1js/base64 */ \"./lib/lib/asn1js/base64.js\");\n/* harmony import */ var _lib_asn1js_asn1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/asn1js/asn1 */ \"./lib/lib/asn1js/asn1.js\");\n/* harmony import */ var _lib_jsbn_rsa__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/jsbn/rsa */ \"./lib/lib/jsbn/rsa.js\");\n/* harmony import */ var _lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/jsbn/jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/jsrsasign/asn1-1.0 */ \"./lib/lib/jsrsasign/asn1-1.0.js\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\n\n\n/**\n * Create a new JSEncryptRSAKey that extends Tom Wu's RSA key object.\n * This object is just a decorator for parsing the key parameter\n * @param {string|Object} key - The key in string format, or an object containing\n * the parameters needed to build a RSAKey object.\n * @constructor\n */\nvar JSEncryptRSAKey = /** @class */ (function (_super) {\n __extends(JSEncryptRSAKey, _super);\n function JSEncryptRSAKey(key) {\n var _this = _super.call(this) || this;\n // Call the super constructor.\n // RSAKey.call(this);\n // If a key key was provided.\n if (key) {\n // If this is a string...\n if (typeof key === \"string\") {\n _this.parseKey(key);\n }\n else if (JSEncryptRSAKey.hasPrivateKeyProperty(key) ||\n JSEncryptRSAKey.hasPublicKeyProperty(key)) {\n // Set the values for the key.\n _this.parsePropertiesFrom(key);\n }\n }\n return _this;\n }\n /**\n * Method to parse a pem encoded string containing both a public or private key.\n * The method will translate the pem encoded string in a der encoded string and\n * will parse private key and public key parameters. This method accepts public key\n * in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1).\n *\n * @todo Check how many rsa formats use the same format of pkcs #1.\n *\n * The format is defined as:\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * it's possible to examine the structure of the keys obtained from openssl using\n * an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/\n * @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer\n * @private\n */\n JSEncryptRSAKey.prototype.parseKey = function (pem) {\n try {\n var modulus = 0;\n var public_exponent = 0;\n var reHex = /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/;\n var der = reHex.test(pem) ? _lib_asn1js_hex__WEBPACK_IMPORTED_MODULE_1__.Hex.decode(pem) : _lib_asn1js_base64__WEBPACK_IMPORTED_MODULE_2__.Base64.unarmor(pem);\n var asn1 = _lib_asn1js_asn1__WEBPACK_IMPORTED_MODULE_3__.ASN1.decode(der);\n // Fixes a bug with OpenSSL 1.0+ private keys\n if (asn1.sub.length === 3) {\n asn1 = asn1.sub[2].sub[0];\n }\n if (asn1.sub.length === 9) {\n // Parse the private key.\n modulus = asn1.sub[1].getHexStringValue(); // bigint\n this.n = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(modulus, 16);\n public_exponent = asn1.sub[2].getHexStringValue(); // int\n this.e = parseInt(public_exponent, 16);\n var private_exponent = asn1.sub[3].getHexStringValue(); // bigint\n this.d = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(private_exponent, 16);\n var prime1 = asn1.sub[4].getHexStringValue(); // bigint\n this.p = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(prime1, 16);\n var prime2 = asn1.sub[5].getHexStringValue(); // bigint\n this.q = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(prime2, 16);\n var exponent1 = asn1.sub[6].getHexStringValue(); // bigint\n this.dmp1 = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(exponent1, 16);\n var exponent2 = asn1.sub[7].getHexStringValue(); // bigint\n this.dmq1 = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(exponent2, 16);\n var coefficient = asn1.sub[8].getHexStringValue(); // bigint\n this.coeff = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(coefficient, 16);\n }\n else if (asn1.sub.length === 2) {\n if (asn1.sub[0].sub) {\n // Parse ASN.1 SubjectPublicKeyInfo type as defined by X.509\n var bit_string = asn1.sub[1];\n var sequence = bit_string.sub[0];\n modulus = sequence.sub[0].getHexStringValue();\n this.n = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(modulus, 16);\n public_exponent = sequence.sub[1].getHexStringValue();\n this.e = parseInt(public_exponent, 16);\n }\n else {\n // Parse ASN.1 RSAPublicKey type as defined by PKCS #1\n modulus = asn1.sub[0].getHexStringValue();\n this.n = (0,_lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__.parseBigInt)(modulus, 16);\n public_exponent = asn1.sub[1].getHexStringValue();\n this.e = parseInt(public_exponent, 16);\n }\n }\n else {\n return false;\n }\n return true;\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Translate rsa parameters in a hex encoded string representing the rsa key.\n *\n * The translation follow the ASN.1 notation :\n * RSAPrivateKey ::= SEQUENCE {\n * version Version,\n * modulus INTEGER, -- n\n * publicExponent INTEGER, -- e\n * privateExponent INTEGER, -- d\n * prime1 INTEGER, -- p\n * prime2 INTEGER, -- q\n * exponent1 INTEGER, -- d mod (p1)\n * exponent2 INTEGER, -- d mod (q-1)\n * coefficient INTEGER, -- (inverse of q) mod p\n * }\n * @returns {string} DER Encoded String representing the rsa private key\n * @private\n */\n JSEncryptRSAKey.prototype.getPrivateBaseKey = function () {\n var options = {\n array: [\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ int: 0 }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.n }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ int: this.e }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.d }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.p }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.q }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.dmp1 }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.dmq1 }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.coeff }),\n ],\n };\n var seq = new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERSequence(options);\n return seq.getEncodedHex();\n };\n /**\n * base64 (pem) encoded version of the DER encoded representation\n * @returns {string} pem encoded representation without header and footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPrivateBaseKeyB64 = function () {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getPrivateBaseKey());\n };\n /**\n * Translate rsa parameters in a hex encoded string representing the rsa public key.\n * The representation follow the ASN.1 notation :\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * @returns {string} DER Encoded String representing the rsa public key\n * @private\n */\n JSEncryptRSAKey.prototype.getPublicBaseKey = function () {\n var first_sequence = new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERSequence({\n array: [\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERObjectIdentifier({ oid: \"1.2.840.113549.1.1.1\" }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERNull(),\n ],\n });\n var second_sequence = new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERSequence({\n array: [\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ bigint: this.n }),\n new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERInteger({ int: this.e }),\n ],\n });\n var bit_string = new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERBitString({\n hex: \"00\" + second_sequence.getEncodedHex(),\n });\n var seq = new _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__.KJUR.asn1.DERSequence({\n array: [first_sequence, bit_string],\n });\n return seq.getEncodedHex();\n };\n /**\n * base64 (pem) encoded version of the DER encoded representation\n * @returns {string} pem encoded representation without header and footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPublicBaseKeyB64 = function () {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getPublicBaseKey());\n };\n /**\n * wrap the string in block of width chars. The default value for rsa keys is 64\n * characters.\n * @param {string} str the pem encoded string without header and footer\n * @param {Number} [width=64] - the length the string has to be wrapped at\n * @returns {string}\n * @private\n */\n JSEncryptRSAKey.wordwrap = function (str, width) {\n width = width || 64;\n if (!str) {\n return str;\n }\n var regex = \"(.{1,\" + width + \"})( +|$\\n?)|(.{1,\" + width + \"})\";\n return str.match(RegExp(regex, \"g\")).join(\"\\n\");\n };\n /**\n * Retrieve the pem encoded private key\n * @returns {string} the pem encoded private key with header/footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPrivateKey = function () {\n var key = \"-----BEGIN RSA PRIVATE KEY-----\\n\";\n key += JSEncryptRSAKey.wordwrap(this.getPrivateBaseKeyB64()) + \"\\n\";\n key += \"-----END RSA PRIVATE KEY-----\";\n return key;\n };\n /**\n * Retrieve the pem encoded public key\n * @returns {string} the pem encoded public key with header/footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPublicKey = function () {\n var key = \"-----BEGIN PUBLIC KEY-----\\n\";\n key += JSEncryptRSAKey.wordwrap(this.getPublicBaseKeyB64()) + \"\\n\";\n key += \"-----END PUBLIC KEY-----\";\n return key;\n };\n /**\n * Check if the object contains the necessary parameters to populate the rsa modulus\n * and public exponent parameters.\n * @param {Object} [obj={}] - An object that may contain the two public key\n * parameters\n * @returns {boolean} true if the object contains both the modulus and the public exponent\n * properties (n and e)\n * @todo check for types of n and e. N should be a parseable bigInt object, E should\n * be a parseable integer number\n * @private\n */\n JSEncryptRSAKey.hasPublicKeyProperty = function (obj) {\n obj = obj || {};\n return obj.hasOwnProperty(\"n\") && obj.hasOwnProperty(\"e\");\n };\n /**\n * Check if the object contains ALL the parameters of an RSA key.\n * @param {Object} [obj={}] - An object that may contain nine rsa key\n * parameters\n * @returns {boolean} true if the object contains all the parameters needed\n * @todo check for types of the parameters all the parameters but the public exponent\n * should be parseable bigint objects, the public exponent should be a parseable integer number\n * @private\n */\n JSEncryptRSAKey.hasPrivateKeyProperty = function (obj) {\n obj = obj || {};\n return (obj.hasOwnProperty(\"n\") &&\n obj.hasOwnProperty(\"e\") &&\n obj.hasOwnProperty(\"d\") &&\n obj.hasOwnProperty(\"p\") &&\n obj.hasOwnProperty(\"q\") &&\n obj.hasOwnProperty(\"dmp1\") &&\n obj.hasOwnProperty(\"dmq1\") &&\n obj.hasOwnProperty(\"coeff\"));\n };\n /**\n * Parse the properties of obj in the current rsa object. Obj should AT LEAST\n * include the modulus and public exponent (n, e) parameters.\n * @param {Object} obj - the object containing rsa parameters\n * @private\n */\n JSEncryptRSAKey.prototype.parsePropertiesFrom = function (obj) {\n this.n = obj.n;\n this.e = obj.e;\n if (obj.hasOwnProperty(\"d\")) {\n this.d = obj.d;\n this.p = obj.p;\n this.q = obj.q;\n this.dmp1 = obj.dmp1;\n this.dmq1 = obj.dmq1;\n this.coeff = obj.coeff;\n }\n };\n return JSEncryptRSAKey;\n}(_lib_jsbn_rsa__WEBPACK_IMPORTED_MODULE_4__.RSAKey));\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/JSEncryptRSAKey.js?"); + +/***/ }), + +/***/ "./lib/index.js": +/*!**********************!*\ + !*** ./lib/index.js ***! + \**********************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncrypt\": () => (/* reexport safe */ _JSEncrypt__WEBPACK_IMPORTED_MODULE_0__.JSEncrypt),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _JSEncrypt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./JSEncrypt */ \"./lib/JSEncrypt.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_JSEncrypt__WEBPACK_IMPORTED_MODULE_0__.JSEncrypt);\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/index.js?"); + +/***/ }), + +/***/ "./lib/lib/asn1js/asn1.js": +/*!********************************!*\ + !*** ./lib/lib/asn1js/asn1.js ***! + \********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ASN1\": () => (/* binding */ ASN1),\n/* harmony export */ \"ASN1Tag\": () => (/* binding */ ASN1Tag),\n/* harmony export */ \"Stream\": () => (/* binding */ Stream)\n/* harmony export */ });\n/* harmony import */ var _int10__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./int10 */ \"./lib/lib/asn1js/int10.js\");\n// ASN.1 JavaScript decoder\n// Copyright (c) 2008-2014 Lapo Luchini \n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\n/*global oids */\n\nvar ellipsis = \"\\u2026\";\nvar reTimeS = /^(\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nvar reTimeL = /^(\\d\\d\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nfunction stringCut(str, len) {\n if (str.length > len) {\n str = str.substring(0, len) + ellipsis;\n }\n return str;\n}\nvar Stream = /** @class */ (function () {\n function Stream(enc, pos) {\n this.hexDigits = \"0123456789ABCDEF\";\n if (enc instanceof Stream) {\n this.enc = enc.enc;\n this.pos = enc.pos;\n }\n else {\n // enc should be an array or a binary string\n this.enc = enc;\n this.pos = pos;\n }\n }\n Stream.prototype.get = function (pos) {\n if (pos === undefined) {\n pos = this.pos++;\n }\n if (pos >= this.enc.length) {\n throw new Error(\"Requesting byte offset \".concat(pos, \" on a stream of length \").concat(this.enc.length));\n }\n return (\"string\" === typeof this.enc) ? this.enc.charCodeAt(pos) : this.enc[pos];\n };\n Stream.prototype.hexByte = function (b) {\n return this.hexDigits.charAt((b >> 4) & 0xF) + this.hexDigits.charAt(b & 0xF);\n };\n Stream.prototype.hexDump = function (start, end, raw) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n if (raw !== true) {\n switch (i & 0xF) {\n case 0x7:\n s += \" \";\n break;\n case 0xF:\n s += \"\\n\";\n break;\n default:\n s += \" \";\n }\n }\n }\n return s;\n };\n Stream.prototype.isASCII = function (start, end) {\n for (var i = start; i < end; ++i) {\n var c = this.get(i);\n if (c < 32 || c > 176) {\n return false;\n }\n }\n return true;\n };\n Stream.prototype.parseStringISO = function (start, end) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += String.fromCharCode(this.get(i));\n }\n return s;\n };\n Stream.prototype.parseStringUTF = function (start, end) {\n var s = \"\";\n for (var i = start; i < end;) {\n var c = this.get(i++);\n if (c < 128) {\n s += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n s += String.fromCharCode(((c & 0x1F) << 6) | (this.get(i++) & 0x3F));\n }\n else {\n s += String.fromCharCode(((c & 0x0F) << 12) | ((this.get(i++) & 0x3F) << 6) | (this.get(i++) & 0x3F));\n }\n }\n return s;\n };\n Stream.prototype.parseStringBMP = function (start, end) {\n var str = \"\";\n var hi;\n var lo;\n for (var i = start; i < end;) {\n hi = this.get(i++);\n lo = this.get(i++);\n str += String.fromCharCode((hi << 8) | lo);\n }\n return str;\n };\n Stream.prototype.parseTime = function (start, end, shortYear) {\n var s = this.parseStringISO(start, end);\n var m = (shortYear ? reTimeS : reTimeL).exec(s);\n if (!m) {\n return \"Unrecognized time: \" + s;\n }\n if (shortYear) {\n // to avoid querying the timer, use the fixed range [1970, 2069]\n // it will conform with ITU X.400 [-10, +40] sliding window until 2030\n m[1] = +m[1];\n m[1] += (+m[1] < 70) ? 2000 : 1900;\n }\n s = m[1] + \"-\" + m[2] + \"-\" + m[3] + \" \" + m[4];\n if (m[5]) {\n s += \":\" + m[5];\n if (m[6]) {\n s += \":\" + m[6];\n if (m[7]) {\n s += \".\" + m[7];\n }\n }\n }\n if (m[8]) {\n s += \" UTC\";\n if (m[8] != \"Z\") {\n s += m[8];\n if (m[9]) {\n s += \":\" + m[9];\n }\n }\n }\n return s;\n };\n Stream.prototype.parseInteger = function (start, end) {\n var v = this.get(start);\n var neg = (v > 127);\n var pad = neg ? 255 : 0;\n var len;\n var s = \"\";\n // skip unuseful bits (not allowed in DER)\n while (v == pad && ++start < end) {\n v = this.get(start);\n }\n len = end - start;\n if (len === 0) {\n return neg ? -1 : 0;\n }\n // show bit length of huge integers\n if (len > 4) {\n s = v;\n len <<= 3;\n while (((+s ^ pad) & 0x80) == 0) {\n s = +s << 1;\n --len;\n }\n s = \"(\" + len + \" bit)\\n\";\n }\n // decode the integer\n if (neg) {\n v = v - 256;\n }\n var n = new _int10__WEBPACK_IMPORTED_MODULE_0__.Int10(v);\n for (var i = start + 1; i < end; ++i) {\n n.mulAdd(256, this.get(i));\n }\n return s + n.toString();\n };\n Stream.prototype.parseBitString = function (start, end, maxLength) {\n var unusedBit = this.get(start);\n var lenBit = ((end - start - 1) << 3) - unusedBit;\n var intro = \"(\" + lenBit + \" bit)\\n\";\n var s = \"\";\n for (var i = start + 1; i < end; ++i) {\n var b = this.get(i);\n var skip = (i == end - 1) ? unusedBit : 0;\n for (var j = 7; j >= skip; --j) {\n s += (b >> j) & 1 ? \"1\" : \"0\";\n }\n if (s.length > maxLength) {\n return intro + stringCut(s, maxLength);\n }\n }\n return intro + s;\n };\n Stream.prototype.parseOctetString = function (start, end, maxLength) {\n if (this.isASCII(start, end)) {\n return stringCut(this.parseStringISO(start, end), maxLength);\n }\n var len = end - start;\n var s = \"(\" + len + \" byte)\\n\";\n maxLength /= 2; // we work in bytes\n if (len > maxLength) {\n end = start + maxLength;\n }\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n }\n if (len > maxLength) {\n s += ellipsis;\n }\n return s;\n };\n Stream.prototype.parseOID = function (start, end, maxLength) {\n var s = \"\";\n var n = new _int10__WEBPACK_IMPORTED_MODULE_0__.Int10();\n var bits = 0;\n for (var i = start; i < end; ++i) {\n var v = this.get(i);\n n.mulAdd(128, v & 0x7F);\n bits += 7;\n if (!(v & 0x80)) { // finished\n if (s === \"\") {\n n = n.simplify();\n if (n instanceof _int10__WEBPACK_IMPORTED_MODULE_0__.Int10) {\n n.sub(80);\n s = \"2.\" + n.toString();\n }\n else {\n var m = n < 80 ? n < 40 ? 0 : 1 : 2;\n s = m + \".\" + (n - m * 40);\n }\n }\n else {\n s += \".\" + n.toString();\n }\n if (s.length > maxLength) {\n return stringCut(s, maxLength);\n }\n n = new _int10__WEBPACK_IMPORTED_MODULE_0__.Int10();\n bits = 0;\n }\n }\n if (bits > 0) {\n s += \".incomplete\";\n }\n return s;\n };\n return Stream;\n}());\n\nvar ASN1 = /** @class */ (function () {\n function ASN1(stream, header, length, tag, sub) {\n if (!(tag instanceof ASN1Tag)) {\n throw new Error(\"Invalid tag value.\");\n }\n this.stream = stream;\n this.header = header;\n this.length = length;\n this.tag = tag;\n this.sub = sub;\n }\n ASN1.prototype.typeName = function () {\n switch (this.tag.tagClass) {\n case 0: // universal\n switch (this.tag.tagNumber) {\n case 0x00:\n return \"EOC\";\n case 0x01:\n return \"BOOLEAN\";\n case 0x02:\n return \"INTEGER\";\n case 0x03:\n return \"BIT_STRING\";\n case 0x04:\n return \"OCTET_STRING\";\n case 0x05:\n return \"NULL\";\n case 0x06:\n return \"OBJECT_IDENTIFIER\";\n case 0x07:\n return \"ObjectDescriptor\";\n case 0x08:\n return \"EXTERNAL\";\n case 0x09:\n return \"REAL\";\n case 0x0A:\n return \"ENUMERATED\";\n case 0x0B:\n return \"EMBEDDED_PDV\";\n case 0x0C:\n return \"UTF8String\";\n case 0x10:\n return \"SEQUENCE\";\n case 0x11:\n return \"SET\";\n case 0x12:\n return \"NumericString\";\n case 0x13:\n return \"PrintableString\"; // ASCII subset\n case 0x14:\n return \"TeletexString\"; // aka T61String\n case 0x15:\n return \"VideotexString\";\n case 0x16:\n return \"IA5String\"; // ASCII\n case 0x17:\n return \"UTCTime\";\n case 0x18:\n return \"GeneralizedTime\";\n case 0x19:\n return \"GraphicString\";\n case 0x1A:\n return \"VisibleString\"; // ASCII subset\n case 0x1B:\n return \"GeneralString\";\n case 0x1C:\n return \"UniversalString\";\n case 0x1E:\n return \"BMPString\";\n }\n return \"Universal_\" + this.tag.tagNumber.toString();\n case 1:\n return \"Application_\" + this.tag.tagNumber.toString();\n case 2:\n return \"[\" + this.tag.tagNumber.toString() + \"]\"; // Context\n case 3:\n return \"Private_\" + this.tag.tagNumber.toString();\n }\n };\n ASN1.prototype.content = function (maxLength) {\n if (this.tag === undefined) {\n return null;\n }\n if (maxLength === undefined) {\n maxLength = Infinity;\n }\n var content = this.posContent();\n var len = Math.abs(this.length);\n if (!this.tag.isUniversal()) {\n if (this.sub !== null) {\n return \"(\" + this.sub.length + \" elem)\";\n }\n return this.stream.parseOctetString(content, content + len, maxLength);\n }\n switch (this.tag.tagNumber) {\n case 0x01: // BOOLEAN\n return (this.stream.get(content) === 0) ? \"false\" : \"true\";\n case 0x02: // INTEGER\n return this.stream.parseInteger(content, content + len);\n case 0x03: // BIT_STRING\n return this.sub ? \"(\" + this.sub.length + \" elem)\" :\n this.stream.parseBitString(content, content + len, maxLength);\n case 0x04: // OCTET_STRING\n return this.sub ? \"(\" + this.sub.length + \" elem)\" :\n this.stream.parseOctetString(content, content + len, maxLength);\n // case 0x05: // NULL\n case 0x06: // OBJECT_IDENTIFIER\n return this.stream.parseOID(content, content + len, maxLength);\n // case 0x07: // ObjectDescriptor\n // case 0x08: // EXTERNAL\n // case 0x09: // REAL\n // case 0x0A: // ENUMERATED\n // case 0x0B: // EMBEDDED_PDV\n case 0x10: // SEQUENCE\n case 0x11: // SET\n if (this.sub !== null) {\n return \"(\" + this.sub.length + \" elem)\";\n }\n else {\n return \"(no elem)\";\n }\n case 0x0C: // UTF8String\n return stringCut(this.stream.parseStringUTF(content, content + len), maxLength);\n case 0x12: // NumericString\n case 0x13: // PrintableString\n case 0x14: // TeletexString\n case 0x15: // VideotexString\n case 0x16: // IA5String\n // case 0x19: // GraphicString\n case 0x1A: // VisibleString\n // case 0x1B: // GeneralString\n // case 0x1C: // UniversalString\n return stringCut(this.stream.parseStringISO(content, content + len), maxLength);\n case 0x1E: // BMPString\n return stringCut(this.stream.parseStringBMP(content, content + len), maxLength);\n case 0x17: // UTCTime\n case 0x18: // GeneralizedTime\n return this.stream.parseTime(content, content + len, (this.tag.tagNumber == 0x17));\n }\n return null;\n };\n ASN1.prototype.toString = function () {\n return this.typeName() + \"@\" + this.stream.pos + \"[header:\" + this.header + \",length:\" + this.length + \",sub:\" + ((this.sub === null) ? \"null\" : this.sub.length) + \"]\";\n };\n ASN1.prototype.toPrettyString = function (indent) {\n if (indent === undefined) {\n indent = \"\";\n }\n var s = indent + this.typeName() + \" @\" + this.stream.pos;\n if (this.length >= 0) {\n s += \"+\";\n }\n s += this.length;\n if (this.tag.tagConstructed) {\n s += \" (constructed)\";\n }\n else if ((this.tag.isUniversal() && ((this.tag.tagNumber == 0x03) || (this.tag.tagNumber == 0x04))) && (this.sub !== null)) {\n s += \" (encapsulates)\";\n }\n s += \"\\n\";\n if (this.sub !== null) {\n indent += \" \";\n for (var i = 0, max = this.sub.length; i < max; ++i) {\n s += this.sub[i].toPrettyString(indent);\n }\n }\n return s;\n };\n ASN1.prototype.posStart = function () {\n return this.stream.pos;\n };\n ASN1.prototype.posContent = function () {\n return this.stream.pos + this.header;\n };\n ASN1.prototype.posEnd = function () {\n return this.stream.pos + this.header + Math.abs(this.length);\n };\n ASN1.prototype.toHexString = function () {\n return this.stream.hexDump(this.posStart(), this.posEnd(), true);\n };\n ASN1.decodeLength = function (stream) {\n var buf = stream.get();\n var len = buf & 0x7F;\n if (len == buf) {\n return len;\n }\n // no reason to use Int10, as it would be a huge buffer anyways\n if (len > 6) {\n throw new Error(\"Length over 48 bits not supported at position \" + (stream.pos - 1));\n }\n if (len === 0) {\n return null;\n } // undefined\n buf = 0;\n for (var i = 0; i < len; ++i) {\n buf = (buf * 256) + stream.get();\n }\n return buf;\n };\n /**\n * Retrieve the hexadecimal value (as a string) of the current ASN.1 element\n * @returns {string}\n * @public\n */\n ASN1.prototype.getHexStringValue = function () {\n var hexString = this.toHexString();\n var offset = this.header * 2;\n var length = this.length * 2;\n return hexString.substr(offset, length);\n };\n ASN1.decode = function (str) {\n var stream;\n if (!(str instanceof Stream)) {\n stream = new Stream(str, 0);\n }\n else {\n stream = str;\n }\n var streamStart = new Stream(stream);\n var tag = new ASN1Tag(stream);\n var len = ASN1.decodeLength(stream);\n var start = stream.pos;\n var header = start - streamStart.pos;\n var sub = null;\n var getSub = function () {\n var ret = [];\n if (len !== null) {\n // definite length\n var end = start + len;\n while (stream.pos < end) {\n ret[ret.length] = ASN1.decode(stream);\n }\n if (stream.pos != end) {\n throw new Error(\"Content size is not correct for container starting at offset \" + start);\n }\n }\n else {\n // undefined length\n try {\n for (;;) {\n var s = ASN1.decode(stream);\n if (s.tag.isEOC()) {\n break;\n }\n ret[ret.length] = s;\n }\n len = start - stream.pos; // undefined lengths are represented as negative values\n }\n catch (e) {\n throw new Error(\"Exception while decoding undefined length content: \" + e);\n }\n }\n return ret;\n };\n if (tag.tagConstructed) {\n // must have valid content\n sub = getSub();\n }\n else if (tag.isUniversal() && ((tag.tagNumber == 0x03) || (tag.tagNumber == 0x04))) {\n // sometimes BitString and OctetString are used to encapsulate ASN.1\n try {\n if (tag.tagNumber == 0x03) {\n if (stream.get() != 0) {\n throw new Error(\"BIT STRINGs with unused bits cannot encapsulate.\");\n }\n }\n sub = getSub();\n for (var i = 0; i < sub.length; ++i) {\n if (sub[i].tag.isEOC()) {\n throw new Error(\"EOC is not supposed to be actual content.\");\n }\n }\n }\n catch (e) {\n // but silently ignore when they don't\n sub = null;\n }\n }\n if (sub === null) {\n if (len === null) {\n throw new Error(\"We can't skip over an invalid tag with undefined length at offset \" + start);\n }\n stream.pos = start + Math.abs(len);\n }\n return new ASN1(streamStart, header, len, tag, sub);\n };\n return ASN1;\n}());\n\nvar ASN1Tag = /** @class */ (function () {\n function ASN1Tag(stream) {\n var buf = stream.get();\n this.tagClass = buf >> 6;\n this.tagConstructed = ((buf & 0x20) !== 0);\n this.tagNumber = buf & 0x1F;\n if (this.tagNumber == 0x1F) { // long tag\n var n = new _int10__WEBPACK_IMPORTED_MODULE_0__.Int10();\n do {\n buf = stream.get();\n n.mulAdd(128, buf & 0x7F);\n } while (buf & 0x80);\n this.tagNumber = n.simplify();\n }\n }\n ASN1Tag.prototype.isUniversal = function () {\n return this.tagClass === 0x00;\n };\n ASN1Tag.prototype.isEOC = function () {\n return this.tagClass === 0x00 && this.tagNumber === 0x00;\n };\n return ASN1Tag;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/asn1.js?"); + +/***/ }), + +/***/ "./lib/lib/asn1js/base64.js": +/*!**********************************!*\ + !*** ./lib/lib/asn1js/base64.js ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Base64\": () => (/* binding */ Base64)\n/* harmony export */ });\n// Base64 JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini \n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Base64 = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var ignore = \"= \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = Object.create(null);\n for (i = 0; i < 64; ++i) {\n decoder[b64.charAt(i)] = i;\n }\n decoder['-'] = 62; //+\n decoder['_'] = 63; //-\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 4) {\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n out[out.length] = bits & 0xFF;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 6;\n }\n }\n switch (char_count) {\n case 1:\n throw new Error(\"Base64 encoding incomplete: at least 2 bits missing\");\n case 2:\n out[out.length] = (bits >> 10);\n break;\n case 3:\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n break;\n }\n return out;\n },\n re: /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/,\n unarmor: function (a) {\n var m = Base64.re.exec(a);\n if (m) {\n if (m[1]) {\n a = m[1];\n }\n else if (m[2]) {\n a = m[2];\n }\n else {\n throw new Error(\"RegExp out of sync\");\n }\n }\n return Base64.decode(a);\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/base64.js?"); + +/***/ }), + +/***/ "./lib/lib/asn1js/hex.js": +/*!*******************************!*\ + !*** ./lib/lib/asn1js/hex.js ***! + \*******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Hex\": () => (/* binding */ Hex)\n/* harmony export */ });\n// Hex JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini \n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Hex = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var hex = \"0123456789ABCDEF\";\n var ignore = \" \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = {};\n for (i = 0; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n hex = hex.toLowerCase();\n for (i = 10; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 2) {\n out[out.length] = bits;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 4;\n }\n }\n if (char_count) {\n throw new Error(\"Hex encoding incomplete: 4 bits missing\");\n }\n return out;\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/hex.js?"); + +/***/ }), + +/***/ "./lib/lib/asn1js/int10.js": +/*!*********************************!*\ + !*** ./lib/lib/asn1js/int10.js ***! + \*********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Int10\": () => (/* binding */ Int10)\n/* harmony export */ });\n// Big integer base-10 printing library\n// Copyright (c) 2014 Lapo Luchini \n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar max = 10000000000000; // biggest integer that can still fit 2^53 when multiplied by 256\nvar Int10 = /** @class */ (function () {\n function Int10(value) {\n this.buf = [+value || 0];\n }\n Int10.prototype.mulAdd = function (m, c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] * m + c;\n if (t < max) {\n c = 0;\n }\n else {\n c = 0 | (t / max);\n t -= c * max;\n }\n b[i] = t;\n }\n if (c > 0) {\n b[i] = c;\n }\n };\n Int10.prototype.sub = function (c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] - c;\n if (t < 0) {\n t += max;\n c = 1;\n }\n else {\n c = 0;\n }\n b[i] = t;\n }\n while (b[b.length - 1] === 0) {\n b.pop();\n }\n };\n Int10.prototype.toString = function (base) {\n if ((base || 10) != 10) {\n throw new Error(\"only base 10 is supported\");\n }\n var b = this.buf;\n var s = b[b.length - 1].toString();\n for (var i = b.length - 2; i >= 0; --i) {\n s += (max + b[i]).toString().substring(1);\n }\n return s;\n };\n Int10.prototype.valueOf = function () {\n var b = this.buf;\n var v = 0;\n for (var i = b.length - 1; i >= 0; --i) {\n v = v * max + b[i];\n }\n return v;\n };\n Int10.prototype.simplify = function () {\n var b = this.buf;\n return (b.length == 1) ? b[0] : this;\n };\n return Int10;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/int10.js?"); + +/***/ }), + +/***/ "./lib/lib/jsbn/base64.js": +/*!********************************!*\ + !*** ./lib/lib/jsbn/base64.js ***! + \********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"b64toBA\": () => (/* binding */ b64toBA),\n/* harmony export */ \"b64tohex\": () => (/* binding */ b64tohex),\n/* harmony export */ \"hex2b64\": () => (/* binding */ hex2b64)\n/* harmony export */ });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./lib/lib/jsbn/util.js\");\n\nvar b64map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar b64pad = \"=\";\nfunction hex2b64(h) {\n var i;\n var c;\n var ret = \"\";\n for (i = 0; i + 3 <= h.length; i += 3) {\n c = parseInt(h.substring(i, i + 3), 16);\n ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);\n }\n if (i + 1 == h.length) {\n c = parseInt(h.substring(i, i + 1), 16);\n ret += b64map.charAt(c << 2);\n }\n else if (i + 2 == h.length) {\n c = parseInt(h.substring(i, i + 2), 16);\n ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);\n }\n while ((ret.length & 3) > 0) {\n ret += b64pad;\n }\n return ret;\n}\n// convert a base64 string to hex\nfunction b64tohex(s) {\n var ret = \"\";\n var i;\n var k = 0; // b64 state, 0-3\n var slop = 0;\n for (i = 0; i < s.length; ++i) {\n if (s.charAt(i) == b64pad) {\n break;\n }\n var v = b64map.indexOf(s.charAt(i));\n if (v < 0) {\n continue;\n }\n if (k == 0) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v >> 2);\n slop = v & 3;\n k = 1;\n }\n else if (k == 1) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)((slop << 2) | (v >> 4));\n slop = v & 0xf;\n k = 2;\n }\n else if (k == 2) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(slop);\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v >> 2);\n slop = v & 3;\n k = 3;\n }\n else {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)((slop << 2) | (v >> 4));\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v & 0xf);\n k = 0;\n }\n }\n if (k == 1) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(slop << 2);\n }\n return ret;\n}\n// convert a base64 string to a byte/number array\nfunction b64toBA(s) {\n // piggyback on b64tohex for now, optimize later\n var h = b64tohex(s);\n var i;\n var a = [];\n for (i = 0; 2 * i < h.length; ++i) {\n a[i] = parseInt(h.substring(2 * i, 2 * i + 2), 16);\n }\n return a;\n}\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/base64.js?"); + +/***/ }), + +/***/ "./lib/lib/jsbn/jsbn.js": +/*!******************************!*\ + !*** ./lib/lib/jsbn/jsbn.js ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BigInteger\": () => (/* binding */ BigInteger),\n/* harmony export */ \"intAt\": () => (/* binding */ intAt),\n/* harmony export */ \"nbi\": () => (/* binding */ nbi),\n/* harmony export */ \"nbits\": () => (/* binding */ nbits),\n/* harmony export */ \"nbv\": () => (/* binding */ nbv),\n/* harmony export */ \"parseBigInt\": () => (/* binding */ parseBigInt)\n/* harmony export */ });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./lib/lib/jsbn/util.js\");\n// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n// Basic JavaScript BN library - subset useful for RSA encryption.\n\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary & 0xffffff) == 0xefcafe);\n//#region\nvar lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1];\n//#endregion\n// (public) Constructor\nvar BigInteger = /** @class */ (function () {\n function BigInteger(a, b, c) {\n if (a != null) {\n if (\"number\" == typeof a) {\n this.fromNumber(a, b, c);\n }\n else if (b == null && \"string\" != typeof a) {\n this.fromString(a, 256);\n }\n else {\n this.fromString(a, b);\n }\n }\n }\n //#region PUBLIC\n // BigInteger.prototype.toString = bnToString;\n // (public) return string representation in given radix\n BigInteger.prototype.toString = function (b) {\n if (this.s < 0) {\n return \"-\" + this.negate().toString(b);\n }\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n return this.toRadix(b);\n }\n var km = (1 << k) - 1;\n var d;\n var m = false;\n var r = \"\";\n var i = this.t;\n var p = this.DB - (i * this.DB) % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) {\n m = true;\n }\n if (m) {\n r += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(d);\n }\n }\n }\n return m ? r : \"0\";\n };\n // BigInteger.prototype.negate = bnNegate;\n // (public) -this\n BigInteger.prototype.negate = function () {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n };\n // BigInteger.prototype.abs = bnAbs;\n // (public) |this|\n BigInteger.prototype.abs = function () {\n return (this.s < 0) ? this.negate() : this;\n };\n // BigInteger.prototype.compareTo = bnCompareTo;\n // (public) return + if this > a, - if this < a, 0 if equal\n BigInteger.prototype.compareTo = function (a) {\n var r = this.s - a.s;\n if (r != 0) {\n return r;\n }\n var i = this.t;\n r = i - a.t;\n if (r != 0) {\n return (this.s < 0) ? -r : r;\n }\n while (--i >= 0) {\n if ((r = this[i] - a[i]) != 0) {\n return r;\n }\n }\n return 0;\n };\n // BigInteger.prototype.bitLength = bnBitLength;\n // (public) return the number of bits in \"this\"\n BigInteger.prototype.bitLength = function () {\n if (this.t <= 0) {\n return 0;\n }\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM));\n };\n // BigInteger.prototype.mod = bnMod;\n // (public) this mod a\n BigInteger.prototype.mod = function (a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n a.subTo(r, r);\n }\n return r;\n };\n // BigInteger.prototype.modPowInt = bnModPowInt;\n // (public) this^e % m, 0 <= e < 2^32\n BigInteger.prototype.modPowInt = function (e, m) {\n var z;\n if (e < 256 || m.isEven()) {\n z = new Classic(m);\n }\n else {\n z = new Montgomery(m);\n }\n return this.exp(e, z);\n };\n // BigInteger.prototype.clone = bnClone;\n // (public)\n BigInteger.prototype.clone = function () {\n var r = nbi();\n this.copyTo(r);\n return r;\n };\n // BigInteger.prototype.intValue = bnIntValue;\n // (public) return value as integer\n BigInteger.prototype.intValue = function () {\n if (this.s < 0) {\n if (this.t == 1) {\n return this[0] - this.DV;\n }\n else if (this.t == 0) {\n return -1;\n }\n }\n else if (this.t == 1) {\n return this[0];\n }\n else if (this.t == 0) {\n return 0;\n }\n // assumes 16 < DB < 32\n return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0];\n };\n // BigInteger.prototype.byteValue = bnByteValue;\n // (public) return value as byte\n BigInteger.prototype.byteValue = function () {\n return (this.t == 0) ? this.s : (this[0] << 24) >> 24;\n };\n // BigInteger.prototype.shortValue = bnShortValue;\n // (public) return value as short (assumes DB>=16)\n BigInteger.prototype.shortValue = function () {\n return (this.t == 0) ? this.s : (this[0] << 16) >> 16;\n };\n // BigInteger.prototype.signum = bnSigNum;\n // (public) 0 if this == 0, 1 if this > 0\n BigInteger.prototype.signum = function () {\n if (this.s < 0) {\n return -1;\n }\n else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) {\n return 0;\n }\n else {\n return 1;\n }\n };\n // BigInteger.prototype.toByteArray = bnToByteArray;\n // (public) convert to bigendian byte array\n BigInteger.prototype.toByteArray = function () {\n var i = this.t;\n var r = [];\n r[0] = this.s;\n var p = this.DB - (i * this.DB) % 8;\n var d;\n var k = 0;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) != (this.s & this.DM) >> p) {\n r[k++] = d | (this.s << (this.DB - p));\n }\n while (i >= 0) {\n if (p < 8) {\n d = (this[i] & ((1 << p) - 1)) << (8 - p);\n d |= this[--i] >> (p += this.DB - 8);\n }\n else {\n d = (this[i] >> (p -= 8)) & 0xff;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if ((d & 0x80) != 0) {\n d |= -256;\n }\n if (k == 0 && (this.s & 0x80) != (d & 0x80)) {\n ++k;\n }\n if (k > 0 || d != this.s) {\n r[k++] = d;\n }\n }\n }\n return r;\n };\n // BigInteger.prototype.equals = bnEquals;\n BigInteger.prototype.equals = function (a) {\n return (this.compareTo(a) == 0);\n };\n // BigInteger.prototype.min = bnMin;\n BigInteger.prototype.min = function (a) {\n return (this.compareTo(a) < 0) ? this : a;\n };\n // BigInteger.prototype.max = bnMax;\n BigInteger.prototype.max = function (a) {\n return (this.compareTo(a) > 0) ? this : a;\n };\n // BigInteger.prototype.and = bnAnd;\n BigInteger.prototype.and = function (a) {\n var r = nbi();\n this.bitwiseTo(a, _util__WEBPACK_IMPORTED_MODULE_0__.op_and, r);\n return r;\n };\n // BigInteger.prototype.or = bnOr;\n BigInteger.prototype.or = function (a) {\n var r = nbi();\n this.bitwiseTo(a, _util__WEBPACK_IMPORTED_MODULE_0__.op_or, r);\n return r;\n };\n // BigInteger.prototype.xor = bnXor;\n BigInteger.prototype.xor = function (a) {\n var r = nbi();\n this.bitwiseTo(a, _util__WEBPACK_IMPORTED_MODULE_0__.op_xor, r);\n return r;\n };\n // BigInteger.prototype.andNot = bnAndNot;\n BigInteger.prototype.andNot = function (a) {\n var r = nbi();\n this.bitwiseTo(a, _util__WEBPACK_IMPORTED_MODULE_0__.op_andnot, r);\n return r;\n };\n // BigInteger.prototype.not = bnNot;\n // (public) ~this\n BigInteger.prototype.not = function () {\n var r = nbi();\n for (var i = 0; i < this.t; ++i) {\n r[i] = this.DM & ~this[i];\n }\n r.t = this.t;\n r.s = ~this.s;\n return r;\n };\n // BigInteger.prototype.shiftLeft = bnShiftLeft;\n // (public) this << n\n BigInteger.prototype.shiftLeft = function (n) {\n var r = nbi();\n if (n < 0) {\n this.rShiftTo(-n, r);\n }\n else {\n this.lShiftTo(n, r);\n }\n return r;\n };\n // BigInteger.prototype.shiftRight = bnShiftRight;\n // (public) this >> n\n BigInteger.prototype.shiftRight = function (n) {\n var r = nbi();\n if (n < 0) {\n this.lShiftTo(-n, r);\n }\n else {\n this.rShiftTo(n, r);\n }\n return r;\n };\n // BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\n // (public) returns index of lowest 1-bit (or -1 if none)\n BigInteger.prototype.getLowestSetBit = function () {\n for (var i = 0; i < this.t; ++i) {\n if (this[i] != 0) {\n return i * this.DB + (0,_util__WEBPACK_IMPORTED_MODULE_0__.lbit)(this[i]);\n }\n }\n if (this.s < 0) {\n return this.t * this.DB;\n }\n return -1;\n };\n // BigInteger.prototype.bitCount = bnBitCount;\n // (public) return number of set bits\n BigInteger.prototype.bitCount = function () {\n var r = 0;\n var x = this.s & this.DM;\n for (var i = 0; i < this.t; ++i) {\n r += (0,_util__WEBPACK_IMPORTED_MODULE_0__.cbit)(this[i] ^ x);\n }\n return r;\n };\n // BigInteger.prototype.testBit = bnTestBit;\n // (public) true iff nth bit is set\n BigInteger.prototype.testBit = function (n) {\n var j = Math.floor(n / this.DB);\n if (j >= this.t) {\n return (this.s != 0);\n }\n return ((this[j] & (1 << (n % this.DB))) != 0);\n };\n // BigInteger.prototype.setBit = bnSetBit;\n // (public) this | (1< 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n var j = e.t - 1;\n var w;\n var is1 = true;\n var r2 = nbi();\n var t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1) {\n w = (e[j] >> (i - k1)) & km;\n }\n else {\n w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i);\n if (j > 0) {\n w |= e[j - 1] >> (this.DB + i - k1);\n }\n }\n n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) { // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n }\n else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0) {\n z.sqrTo(r, r2);\n }\n else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & (1 << i)) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n return z.revert(r);\n };\n // BigInteger.prototype.modInverse = bnModInverse;\n // (public) 1/this % m (HAC 14.61)\n BigInteger.prototype.modInverse = function (m) {\n var ac = m.isEven();\n if ((this.isEven() && ac) || m.signum() == 0) {\n return BigInteger.ZERO;\n }\n var u = m.clone();\n var v = this.clone();\n var a = nbv(1);\n var b = nbv(0);\n var c = nbv(0);\n var d = nbv(1);\n while (u.signum() != 0) {\n while (u.isEven()) {\n u.rShiftTo(1, u);\n if (ac) {\n if (!a.isEven() || !b.isEven()) {\n a.addTo(this, a);\n b.subTo(m, b);\n }\n a.rShiftTo(1, a);\n }\n else if (!b.isEven()) {\n b.subTo(m, b);\n }\n b.rShiftTo(1, b);\n }\n while (v.isEven()) {\n v.rShiftTo(1, v);\n if (ac) {\n if (!c.isEven() || !d.isEven()) {\n c.addTo(this, c);\n d.subTo(m, d);\n }\n c.rShiftTo(1, c);\n }\n else if (!d.isEven()) {\n d.subTo(m, d);\n }\n d.rShiftTo(1, d);\n }\n if (u.compareTo(v) >= 0) {\n u.subTo(v, u);\n if (ac) {\n a.subTo(c, a);\n }\n b.subTo(d, b);\n }\n else {\n v.subTo(u, v);\n if (ac) {\n c.subTo(a, c);\n }\n d.subTo(b, d);\n }\n }\n if (v.compareTo(BigInteger.ONE) != 0) {\n return BigInteger.ZERO;\n }\n if (d.compareTo(m) >= 0) {\n return d.subtract(m);\n }\n if (d.signum() < 0) {\n d.addTo(m, d);\n }\n else {\n return d;\n }\n if (d.signum() < 0) {\n return d.add(m);\n }\n else {\n return d;\n }\n };\n // BigInteger.prototype.pow = bnPow;\n // (public) this^e\n BigInteger.prototype.pow = function (e) {\n return this.exp(e, new NullExp());\n };\n // BigInteger.prototype.gcd = bnGCD;\n // (public) gcd(this,a) (HAC 14.54)\n BigInteger.prototype.gcd = function (a) {\n var x = (this.s < 0) ? this.negate() : this.clone();\n var y = (a.s < 0) ? a.negate() : a.clone();\n if (x.compareTo(y) < 0) {\n var t = x;\n x = y;\n y = t;\n }\n var i = x.getLowestSetBit();\n var g = y.getLowestSetBit();\n if (g < 0) {\n return x;\n }\n if (i < g) {\n g = i;\n }\n if (g > 0) {\n x.rShiftTo(g, x);\n y.rShiftTo(g, y);\n }\n while (x.signum() > 0) {\n if ((i = x.getLowestSetBit()) > 0) {\n x.rShiftTo(i, x);\n }\n if ((i = y.getLowestSetBit()) > 0) {\n y.rShiftTo(i, y);\n }\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x);\n x.rShiftTo(1, x);\n }\n else {\n y.subTo(x, y);\n y.rShiftTo(1, y);\n }\n }\n if (g > 0) {\n y.lShiftTo(g, y);\n }\n return y;\n };\n // BigInteger.prototype.isProbablePrime = bnIsProbablePrime;\n // (public) test primality with certainty >= 1-.5^t\n BigInteger.prototype.isProbablePrime = function (t) {\n var i;\n var x = this.abs();\n if (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) {\n for (i = 0; i < lowprimes.length; ++i) {\n if (x[0] == lowprimes[i]) {\n return true;\n }\n }\n return false;\n }\n if (x.isEven()) {\n return false;\n }\n i = 1;\n while (i < lowprimes.length) {\n var m = lowprimes[i];\n var j = i + 1;\n while (j < lowprimes.length && m < lplim) {\n m *= lowprimes[j++];\n }\n m = x.modInt(m);\n while (i < j) {\n if (m % lowprimes[i++] == 0) {\n return false;\n }\n }\n }\n return x.millerRabin(t);\n };\n //#endregion PUBLIC\n //#region PROTECTED\n // BigInteger.prototype.copyTo = bnpCopyTo;\n // (protected) copy this to r\n BigInteger.prototype.copyTo = function (r) {\n for (var i = this.t - 1; i >= 0; --i) {\n r[i] = this[i];\n }\n r.t = this.t;\n r.s = this.s;\n };\n // BigInteger.prototype.fromInt = bnpFromInt;\n // (protected) set from integer value x, -DV <= x < DV\n BigInteger.prototype.fromInt = function (x) {\n this.t = 1;\n this.s = (x < 0) ? -1 : 0;\n if (x > 0) {\n this[0] = x;\n }\n else if (x < -1) {\n this[0] = x + this.DV;\n }\n else {\n this.t = 0;\n }\n };\n // BigInteger.prototype.fromString = bnpFromString;\n // (protected) set from string and radix\n BigInteger.prototype.fromString = function (s, b) {\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 256) {\n k = 8;\n /* byte array */\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n this.fromRadix(s, b);\n return;\n }\n this.t = 0;\n this.s = 0;\n var i = s.length;\n var mi = false;\n var sh = 0;\n while (--i >= 0) {\n var x = (k == 8) ? (+s[i]) & 0xff : intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\") {\n mi = true;\n }\n continue;\n }\n mi = false;\n if (sh == 0) {\n this[this.t++] = x;\n }\n else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh;\n this[this.t++] = (x >> (this.DB - sh));\n }\n else {\n this[this.t - 1] |= x << sh;\n }\n sh += k;\n if (sh >= this.DB) {\n sh -= this.DB;\n }\n }\n if (k == 8 && ((+s[0]) & 0x80) != 0) {\n this.s = -1;\n if (sh > 0) {\n this[this.t - 1] |= ((1 << (this.DB - sh)) - 1) << sh;\n }\n }\n this.clamp();\n if (mi) {\n BigInteger.ZERO.subTo(this, this);\n }\n };\n // BigInteger.prototype.clamp = bnpClamp;\n // (protected) clamp off excess high words\n BigInteger.prototype.clamp = function () {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c) {\n --this.t;\n }\n };\n // BigInteger.prototype.dlShiftTo = bnpDLShiftTo;\n // (protected) r = this << n*DB\n BigInteger.prototype.dlShiftTo = function (n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + n] = this[i];\n }\n for (i = n - 1; i >= 0; --i) {\n r[i] = 0;\n }\n r.t = this.t + n;\n r.s = this.s;\n };\n // BigInteger.prototype.drShiftTo = bnpDRShiftTo;\n // (protected) r = this >> n*DB\n BigInteger.prototype.drShiftTo = function (n, r) {\n for (var i = n; i < this.t; ++i) {\n r[i - n] = this[i];\n }\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n };\n // BigInteger.prototype.lShiftTo = bnpLShiftTo;\n // (protected) r = this << n\n BigInteger.prototype.lShiftTo = function (n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB);\n var c = (this.s << bs) & this.DM;\n for (var i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = (this[i] >> cbs) | c;\n c = (this[i] & bm) << bs;\n }\n for (var i = ds - 1; i >= 0; --i) {\n r[i] = 0;\n }\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n };\n // BigInteger.prototype.rShiftTo = bnpRShiftTo;\n // (protected) r = this >> n\n BigInteger.prototype.rShiftTo = function (n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0) {\n r[this.t - ds - 1] |= (this.s & bm) << cbs;\n }\n r.t = this.t - ds;\n r.clamp();\n };\n // BigInteger.prototype.subTo = bnpSubTo;\n // (protected) r = this - a\n BigInteger.prototype.subTo = function (a, r) {\n var i = 0;\n var c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = (c < 0) ? -1 : 0;\n if (c < -1) {\n r[i++] = this.DV + c;\n }\n else if (c > 0) {\n r[i++] = c;\n }\n r.t = i;\n r.clamp();\n };\n // BigInteger.prototype.multiplyTo = bnpMultiplyTo;\n // (protected) r = this * a, r != this,a (HAC 14.12)\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyTo = function (a, r) {\n var x = this.abs();\n var y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = 0; i < y.t; ++i) {\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n }\n r.s = 0;\n r.clamp();\n if (this.s != a.s) {\n BigInteger.ZERO.subTo(r, r);\n }\n };\n // BigInteger.prototype.squareTo = bnpSquareTo;\n // (protected) r = this^2, r != this (HAC 14.16)\n BigInteger.prototype.squareTo = function (r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0) {\n r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n }\n r.s = 0;\n r.clamp();\n };\n // BigInteger.prototype.divRemTo = bnpDivRemTo;\n // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n // r != q, this != m. q or r may be null.\n BigInteger.prototype.divRemTo = function (m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) {\n return;\n }\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null) {\n q.fromInt(0);\n }\n if (r != null) {\n this.copyTo(r);\n }\n return;\n }\n if (r == null) {\n r = nbi();\n }\n var y = nbi();\n var ts = this.s;\n var ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]); // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n }\n else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0) {\n return;\n }\n var yt = y0 * (1 << this.F1) + ((ys > 1) ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt;\n var d2 = (1 << this.F1) / yt;\n var e = 1 << this.F2;\n var i = r.t;\n var j = i - ys;\n var t = (q == null) ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y); // \"negative\" y so we can replace sub with am later\n while (y.t < ys) {\n y[y.t++] = 0;\n }\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = (r[--i] == y0) ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) { // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd) {\n r.subTo(t, r);\n }\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) {\n BigInteger.ZERO.subTo(q, q);\n }\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0) {\n r.rShiftTo(nsh, r);\n } // Denormalize remainder\n if (ts < 0) {\n BigInteger.ZERO.subTo(r, r);\n }\n };\n // BigInteger.prototype.invDigit = bnpInvDigit;\n // (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n // justification:\n // xy == 1 (mod m)\n // xy = 1+km\n // xy(2-xy) = (1+km)(1-km)\n // x[y(2-xy)] = 1-k^2m^2\n // x[y(2-xy)] == 1 (mod m^2)\n // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n // JS multiply \"overflows\" differently from C/C++, so care is needed here.\n BigInteger.prototype.invDigit = function () {\n if (this.t < 1) {\n return 0;\n }\n var x = this[0];\n if ((x & 1) == 0) {\n return 0;\n }\n var y = x & 3; // y == 1/x mod 2^2\n y = (y * (2 - (x & 0xf) * y)) & 0xf; // y == 1/x mod 2^4\n y = (y * (2 - (x & 0xff) * y)) & 0xff; // y == 1/x mod 2^8\n y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff; // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y * (2 - x * y % this.DV)) % this.DV; // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return (y > 0) ? this.DV - y : -y;\n };\n // BigInteger.prototype.isEven = bnpIsEven;\n // (protected) true iff this is even\n BigInteger.prototype.isEven = function () {\n return ((this.t > 0) ? (this[0] & 1) : this.s) == 0;\n };\n // BigInteger.prototype.exp = bnpExp;\n // (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\n BigInteger.prototype.exp = function (e, z) {\n if (e > 0xffffffff || e < 1) {\n return BigInteger.ONE;\n }\n var r = nbi();\n var r2 = nbi();\n var g = z.convert(this);\n var i = nbits(e) - 1;\n g.copyTo(r);\n while (--i >= 0) {\n z.sqrTo(r, r2);\n if ((e & (1 << i)) > 0) {\n z.mulTo(r2, g, r);\n }\n else {\n var t = r;\n r = r2;\n r2 = t;\n }\n }\n return z.revert(r);\n };\n // BigInteger.prototype.chunkSize = bnpChunkSize;\n // (protected) return x s.t. r^x < DV\n BigInteger.prototype.chunkSize = function (r) {\n return Math.floor(Math.LN2 * this.DB / Math.log(r));\n };\n // BigInteger.prototype.toRadix = bnpToRadix;\n // (protected) convert to radix string\n BigInteger.prototype.toRadix = function (b) {\n if (b == null) {\n b = 10;\n }\n if (this.signum() == 0 || b < 2 || b > 36) {\n return \"0\";\n }\n var cs = this.chunkSize(b);\n var a = Math.pow(b, cs);\n var d = nbv(a);\n var y = nbi();\n var z = nbi();\n var r = \"\";\n this.divRemTo(d, y, z);\n while (y.signum() > 0) {\n r = (a + z.intValue()).toString(b).substr(1) + r;\n y.divRemTo(d, y, z);\n }\n return z.intValue().toString(b) + r;\n };\n // BigInteger.prototype.fromRadix = bnpFromRadix;\n // (protected) convert from radix string\n BigInteger.prototype.fromRadix = function (s, b) {\n this.fromInt(0);\n if (b == null) {\n b = 10;\n }\n var cs = this.chunkSize(b);\n var d = Math.pow(b, cs);\n var mi = false;\n var j = 0;\n var w = 0;\n for (var i = 0; i < s.length; ++i) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\" && this.signum() == 0) {\n mi = true;\n }\n continue;\n }\n w = b * w + x;\n if (++j >= cs) {\n this.dMultiply(d);\n this.dAddOffset(w, 0);\n j = 0;\n w = 0;\n }\n }\n if (j > 0) {\n this.dMultiply(Math.pow(b, j));\n this.dAddOffset(w, 0);\n }\n if (mi) {\n BigInteger.ZERO.subTo(this, this);\n }\n };\n // BigInteger.prototype.fromNumber = bnpFromNumber;\n // (protected) alternate constructor\n BigInteger.prototype.fromNumber = function (a, b, c) {\n if (\"number\" == typeof b) {\n // new BigInteger(int,int,RNG)\n if (a < 2) {\n this.fromInt(1);\n }\n else {\n this.fromNumber(a, c);\n if (!this.testBit(a - 1)) {\n // force MSB set\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), _util__WEBPACK_IMPORTED_MODULE_0__.op_or, this);\n }\n if (this.isEven()) {\n this.dAddOffset(1, 0);\n } // force odd\n while (!this.isProbablePrime(b)) {\n this.dAddOffset(2, 0);\n if (this.bitLength() > a) {\n this.subTo(BigInteger.ONE.shiftLeft(a - 1), this);\n }\n }\n }\n }\n else {\n // new BigInteger(int,RNG)\n var x = [];\n var t = a & 7;\n x.length = (a >> 3) + 1;\n b.nextBytes(x);\n if (t > 0) {\n x[0] &= ((1 << t) - 1);\n }\n else {\n x[0] = 0;\n }\n this.fromString(x, 256);\n }\n };\n // BigInteger.prototype.bitwiseTo = bnpBitwiseTo;\n // (protected) r = this op a (bitwise)\n BigInteger.prototype.bitwiseTo = function (a, op, r) {\n var i;\n var f;\n var m = Math.min(a.t, this.t);\n for (i = 0; i < m; ++i) {\n r[i] = op(this[i], a[i]);\n }\n if (a.t < this.t) {\n f = a.s & this.DM;\n for (i = m; i < this.t; ++i) {\n r[i] = op(this[i], f);\n }\n r.t = this.t;\n }\n else {\n f = this.s & this.DM;\n for (i = m; i < a.t; ++i) {\n r[i] = op(f, a[i]);\n }\n r.t = a.t;\n }\n r.s = op(this.s, a.s);\n r.clamp();\n };\n // BigInteger.prototype.changeBit = bnpChangeBit;\n // (protected) this op (1<>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = (c < 0) ? -1 : 0;\n if (c > 0) {\n r[i++] = c;\n }\n else if (c < -1) {\n r[i++] = this.DV + c;\n }\n r.t = i;\n r.clamp();\n };\n // BigInteger.prototype.dMultiply = bnpDMultiply;\n // (protected) this *= n, this >= 0, 1 < n < DV\n BigInteger.prototype.dMultiply = function (n) {\n this[this.t] = this.am(0, n - 1, this, 0, 0, this.t);\n ++this.t;\n this.clamp();\n };\n // BigInteger.prototype.dAddOffset = bnpDAddOffset;\n // (protected) this += n << w words, this >= 0\n BigInteger.prototype.dAddOffset = function (n, w) {\n if (n == 0) {\n return;\n }\n while (this.t <= w) {\n this[this.t++] = 0;\n }\n this[w] += n;\n while (this[w] >= this.DV) {\n this[w] -= this.DV;\n if (++w >= this.t) {\n this[this.t++] = 0;\n }\n ++this[w];\n }\n };\n // BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\n // (protected) r = lower n words of \"this * a\", a.t <= n\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyLowerTo = function (a, n, r) {\n var i = Math.min(this.t + a.t, n);\n r.s = 0; // assumes a,this >= 0\n r.t = i;\n while (i > 0) {\n r[--i] = 0;\n }\n for (var j = r.t - this.t; i < j; ++i) {\n r[i + this.t] = this.am(0, a[i], r, i, 0, this.t);\n }\n for (var j = Math.min(a.t, n); i < j; ++i) {\n this.am(0, a[i], r, i, 0, n - i);\n }\n r.clamp();\n };\n // BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\n // (protected) r = \"this * a\" without lower n words, n > 0\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyUpperTo = function (a, n, r) {\n --n;\n var i = r.t = this.t + a.t - n;\n r.s = 0; // assumes a,this >= 0\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = Math.max(n - this.t, 0); i < a.t; ++i) {\n r[this.t + i - n] = this.am(n - i, a[i], r, 0, 0, this.t + i - n);\n }\n r.clamp();\n r.drShiftTo(1, r);\n };\n // BigInteger.prototype.modInt = bnpModInt;\n // (protected) this % n, n < 2^26\n BigInteger.prototype.modInt = function (n) {\n if (n <= 0) {\n return 0;\n }\n var d = this.DV % n;\n var r = (this.s < 0) ? n - 1 : 0;\n if (this.t > 0) {\n if (d == 0) {\n r = this[0] % n;\n }\n else {\n for (var i = this.t - 1; i >= 0; --i) {\n r = (d * r + this[i]) % n;\n }\n }\n }\n return r;\n };\n // BigInteger.prototype.millerRabin = bnpMillerRabin;\n // (protected) true if probably prime (HAC 4.24, Miller-Rabin)\n BigInteger.prototype.millerRabin = function (t) {\n var n1 = this.subtract(BigInteger.ONE);\n var k = n1.getLowestSetBit();\n if (k <= 0) {\n return false;\n }\n var r = n1.shiftRight(k);\n t = (t + 1) >> 1;\n if (t > lowprimes.length) {\n t = lowprimes.length;\n }\n var a = nbi();\n for (var i = 0; i < t; ++i) {\n // Pick bases at random, instead of starting at 2\n a.fromInt(lowprimes[Math.floor(Math.random() * lowprimes.length)]);\n var y = a.modPow(r, this);\n if (y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n var j = 1;\n while (j++ < k && y.compareTo(n1) != 0) {\n y = y.modPowInt(2, this);\n if (y.compareTo(BigInteger.ONE) == 0) {\n return false;\n }\n }\n if (y.compareTo(n1) != 0) {\n return false;\n }\n }\n }\n return true;\n };\n // BigInteger.prototype.square = bnSquare;\n // (public) this^2\n BigInteger.prototype.square = function () {\n var r = nbi();\n this.squareTo(r);\n return r;\n };\n //#region ASYNC\n // Public API method\n BigInteger.prototype.gcda = function (a, callback) {\n var x = (this.s < 0) ? this.negate() : this.clone();\n var y = (a.s < 0) ? a.negate() : a.clone();\n if (x.compareTo(y) < 0) {\n var t = x;\n x = y;\n y = t;\n }\n var i = x.getLowestSetBit();\n var g = y.getLowestSetBit();\n if (g < 0) {\n callback(x);\n return;\n }\n if (i < g) {\n g = i;\n }\n if (g > 0) {\n x.rShiftTo(g, x);\n y.rShiftTo(g, y);\n }\n // Workhorse of the algorithm, gets called 200 - 800 times per 512 bit keygen.\n var gcda1 = function () {\n if ((i = x.getLowestSetBit()) > 0) {\n x.rShiftTo(i, x);\n }\n if ((i = y.getLowestSetBit()) > 0) {\n y.rShiftTo(i, y);\n }\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x);\n x.rShiftTo(1, x);\n }\n else {\n y.subTo(x, y);\n y.rShiftTo(1, y);\n }\n if (!(x.signum() > 0)) {\n if (g > 0) {\n y.lShiftTo(g, y);\n }\n setTimeout(function () { callback(y); }, 0); // escape\n }\n else {\n setTimeout(gcda1, 0);\n }\n };\n setTimeout(gcda1, 10);\n };\n // (protected) alternate constructor\n BigInteger.prototype.fromNumberAsync = function (a, b, c, callback) {\n if (\"number\" == typeof b) {\n if (a < 2) {\n this.fromInt(1);\n }\n else {\n this.fromNumber(a, c);\n if (!this.testBit(a - 1)) {\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), _util__WEBPACK_IMPORTED_MODULE_0__.op_or, this);\n }\n if (this.isEven()) {\n this.dAddOffset(1, 0);\n }\n var bnp_1 = this;\n var bnpfn1_1 = function () {\n bnp_1.dAddOffset(2, 0);\n if (bnp_1.bitLength() > a) {\n bnp_1.subTo(BigInteger.ONE.shiftLeft(a - 1), bnp_1);\n }\n if (bnp_1.isProbablePrime(b)) {\n setTimeout(function () { callback(); }, 0); // escape\n }\n else {\n setTimeout(bnpfn1_1, 0);\n }\n };\n setTimeout(bnpfn1_1, 0);\n }\n }\n else {\n var x = [];\n var t = a & 7;\n x.length = (a >> 3) + 1;\n b.nextBytes(x);\n if (t > 0) {\n x[0] &= ((1 << t) - 1);\n }\n else {\n x[0] = 0;\n }\n this.fromString(x, 256);\n }\n };\n return BigInteger;\n}());\n\n//#region REDUCERS\n//#region NullExp\nvar NullExp = /** @class */ (function () {\n function NullExp() {\n }\n // NullExp.prototype.convert = nNop;\n NullExp.prototype.convert = function (x) {\n return x;\n };\n // NullExp.prototype.revert = nNop;\n NullExp.prototype.revert = function (x) {\n return x;\n };\n // NullExp.prototype.mulTo = nMulTo;\n NullExp.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n };\n // NullExp.prototype.sqrTo = nSqrTo;\n NullExp.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n };\n return NullExp;\n}());\n// Modular reduction using \"classic\" algorithm\nvar Classic = /** @class */ (function () {\n function Classic(m) {\n this.m = m;\n }\n // Classic.prototype.convert = cConvert;\n Classic.prototype.convert = function (x) {\n if (x.s < 0 || x.compareTo(this.m) >= 0) {\n return x.mod(this.m);\n }\n else {\n return x;\n }\n };\n // Classic.prototype.revert = cRevert;\n Classic.prototype.revert = function (x) {\n return x;\n };\n // Classic.prototype.reduce = cReduce;\n Classic.prototype.reduce = function (x) {\n x.divRemTo(this.m, null, x);\n };\n // Classic.prototype.mulTo = cMulTo;\n Classic.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Classic.prototype.sqrTo = cSqrTo;\n Classic.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Classic;\n}());\n//#endregion\n//#region Montgomery\n// Montgomery reduction\nvar Montgomery = /** @class */ (function () {\n function Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << (m.DB - 15)) - 1;\n this.mt2 = 2 * m.t;\n }\n // Montgomery.prototype.convert = montConvert;\n // xR mod m\n Montgomery.prototype.convert = function (x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n this.m.subTo(r, r);\n }\n return r;\n };\n // Montgomery.prototype.revert = montRevert;\n // x/R mod m\n Montgomery.prototype.revert = function (x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n };\n // Montgomery.prototype.reduce = montReduce;\n // x = x/R mod m (HAC 14.32)\n Montgomery.prototype.reduce = function (x) {\n while (x.t <= this.mt2) {\n // pad x so am has enough room later\n x[x.t++] = 0;\n }\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff;\n var u0 = (j * this.mpl + (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) & x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0) {\n x.subTo(this.m, x);\n }\n };\n // Montgomery.prototype.mulTo = montMulTo;\n // r = \"xy/R mod m\"; x,y != r\n Montgomery.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Montgomery.prototype.sqrTo = montSqrTo;\n // r = \"x^2/R mod m\"; x != r\n Montgomery.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Montgomery;\n}());\n//#endregion Montgomery\n//#region Barrett\n// Barrett modular reduction\nvar Barrett = /** @class */ (function () {\n function Barrett(m) {\n this.m = m;\n // setup Barrett\n this.r2 = nbi();\n this.q3 = nbi();\n BigInteger.ONE.dlShiftTo(2 * m.t, this.r2);\n this.mu = this.r2.divide(m);\n }\n // Barrett.prototype.convert = barrettConvert;\n Barrett.prototype.convert = function (x) {\n if (x.s < 0 || x.t > 2 * this.m.t) {\n return x.mod(this.m);\n }\n else if (x.compareTo(this.m) < 0) {\n return x;\n }\n else {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n }\n };\n // Barrett.prototype.revert = barrettRevert;\n Barrett.prototype.revert = function (x) {\n return x;\n };\n // Barrett.prototype.reduce = barrettReduce;\n // x = x mod m (HAC 14.42)\n Barrett.prototype.reduce = function (x) {\n x.drShiftTo(this.m.t - 1, this.r2);\n if (x.t > this.m.t + 1) {\n x.t = this.m.t + 1;\n x.clamp();\n }\n this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3);\n this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2);\n while (x.compareTo(this.r2) < 0) {\n x.dAddOffset(1, this.m.t + 1);\n }\n x.subTo(this.r2, x);\n while (x.compareTo(this.m) >= 0) {\n x.subTo(this.m, x);\n }\n };\n // Barrett.prototype.mulTo = barrettMulTo;\n // r = x*y mod m; x,y != r\n Barrett.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Barrett.prototype.sqrTo = barrettSqrTo;\n // r = x^2 mod m; x != r\n Barrett.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Barrett;\n}());\n//#endregion\n//#endregion REDUCERS\n// return new, unset BigInteger\nfunction nbi() { return new BigInteger(null); }\nfunction parseBigInt(str, r) {\n return new BigInteger(str, r);\n}\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\nvar inBrowser = typeof navigator !== \"undefined\";\nif (inBrowser && j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n // am2 avoids a big mult-and-extract completely.\n // Max digit bits should be <= 30 because we do bitwise ops\n // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\n BigInteger.prototype.am = function am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff;\n var xh = x >> 15;\n while (--n >= 0) {\n var l = this[i] & 0x7fff;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n };\n dbits = 30;\n}\nelse if (inBrowser && j_lm && (navigator.appName != \"Netscape\")) {\n // am1: use a single mult and divide to get the high bits,\n // max digit bits should be 26 because\n // max internal value = 2*dvalue^2-2*dvalue (< 2^53)\n BigInteger.prototype.am = function am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n };\n dbits = 26;\n}\nelse { // Mozilla/Netscape seems to prefer am3\n // Alternately, set max digit bits to 28 since some\n // browsers slow down when dealing with 32-bit numbers.\n BigInteger.prototype.am = function am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff;\n var xh = x >> 14;\n while (--n >= 0) {\n var l = this[i] & 0x3fff;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n };\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = ((1 << dbits) - 1);\nBigInteger.prototype.DV = (1 << dbits);\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n// Digit conversions\nvar BI_RC = [];\nvar rr;\nvar vv;\nrr = \"0\".charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv) {\n BI_RC[rr++] = vv;\n}\nrr = \"a\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\nrr = \"A\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return (c == null) ? -1 : c;\n}\n// return bigint initialized to value\nfunction nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n}\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1;\n var t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/jsbn.js?"); + +/***/ }), + +/***/ "./lib/lib/jsbn/prng4.js": +/*!*******************************!*\ + !*** ./lib/lib/jsbn/prng4.js ***! + \*******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Arcfour\": () => (/* binding */ Arcfour),\n/* harmony export */ \"prng_newstate\": () => (/* binding */ prng_newstate),\n/* harmony export */ \"rng_psize\": () => (/* binding */ rng_psize)\n/* harmony export */ });\n// prng4.js - uses Arcfour as a PRNG\nvar Arcfour = /** @class */ (function () {\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = [];\n }\n // Arcfour.prototype.init = ARC4init;\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n Arcfour.prototype.init = function (key) {\n var i;\n var j;\n var t;\n for (i = 0; i < 256; ++i) {\n this.S[i] = i;\n }\n j = 0;\n for (i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n };\n // Arcfour.prototype.next = ARC4next;\n Arcfour.prototype.next = function () {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n };\n return Arcfour;\n}());\n\n// Plug in your RNG constructor here\nfunction prng_newstate() {\n return new Arcfour();\n}\n// Pool size must be a multiple of 4 and greater than 32.\n// An array of bytes the size of the pool will be passed to init()\nvar rng_psize = 256;\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/prng4.js?"); + +/***/ }), + +/***/ "./lib/lib/jsbn/rng.js": +/*!*****************************!*\ + !*** ./lib/lib/jsbn/rng.js ***! + \*****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SecureRandom\": () => (/* binding */ SecureRandom)\n/* harmony export */ });\n/* harmony import */ var _prng4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./prng4 */ \"./lib/lib/jsbn/prng4.js\");\n// Random number generator - requires a PRNG backend, e.g. prng4.js\n\nvar rng_state;\nvar rng_pool = null;\nvar rng_pptr;\n// Initialize the pool with junk if needed.\nif (rng_pool == null) {\n rng_pool = [];\n rng_pptr = 0;\n var t = void 0;\n if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {\n // Extract entropy (2048 bits) from RNG if available\n var z = new Uint32Array(256);\n window.crypto.getRandomValues(z);\n for (t = 0; t < z.length; ++t) {\n rng_pool[rng_pptr++] = z[t] & 255;\n }\n }\n // Use mouse events for entropy, if we do not have enough entropy by the time\n // we need it, entropy will be generated by Math.random.\n var count = 0;\n var onMouseMoveListener_1 = function (ev) {\n count = count || 0;\n if (count >= 256 || rng_pptr >= _prng4__WEBPACK_IMPORTED_MODULE_0__.rng_psize) {\n if (window.removeEventListener) {\n window.removeEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.detachEvent) {\n window.detachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n return;\n }\n try {\n var mouseCoordinates = ev.x + ev.y;\n rng_pool[rng_pptr++] = mouseCoordinates & 255;\n count += 1;\n }\n catch (e) {\n // Sometimes Firefox will deny permission to access event properties for some reason. Ignore.\n }\n };\n if (typeof window !== 'undefined') {\n if (window.addEventListener) {\n window.addEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.attachEvent) {\n window.attachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n }\n}\nfunction rng_get_byte() {\n if (rng_state == null) {\n rng_state = (0,_prng4__WEBPACK_IMPORTED_MODULE_0__.prng_newstate)();\n // At this point, we may not have collected enough entropy. If not, fall back to Math.random\n while (rng_pptr < _prng4__WEBPACK_IMPORTED_MODULE_0__.rng_psize) {\n var random = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = random & 255;\n }\n rng_state.init(rng_pool);\n for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n rng_pool[rng_pptr] = 0;\n }\n rng_pptr = 0;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n}\nvar SecureRandom = /** @class */ (function () {\n function SecureRandom() {\n }\n SecureRandom.prototype.nextBytes = function (ba) {\n for (var i = 0; i < ba.length; ++i) {\n ba[i] = rng_get_byte();\n }\n };\n return SecureRandom;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/rng.js?"); + +/***/ }), + +/***/ "./lib/lib/jsbn/rsa.js": +/*!*****************************!*\ + !*** ./lib/lib/jsbn/rsa.js ***! + \*****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"RSAKey\": () => (/* binding */ RSAKey)\n/* harmony export */ });\n/* harmony import */ var _jsbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _rng__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng */ \"./lib/lib/jsbn/rng.js\");\n// Depends on jsbn.js and rng.js\n// Version 1.1: support utf-8 encoding in pkcs1pad2\n// convert a (hex) string to a bignum object\n\n\n// function linebrk(s,n) {\n// var ret = \"\";\n// var i = 0;\n// while(i + n < s.length) {\n// ret += s.substring(i,i+n) + \"\\n\";\n// i += n;\n// }\n// return ret + s.substring(i,s.length);\n// }\n// function byte2Hex(b) {\n// if(b < 0x10)\n// return \"0\" + b.toString(16);\n// else\n// return b.toString(16);\n// }\nfunction pkcs1pad1(s, n) {\n if (n < s.length + 22) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var len = n - s.length - 6;\n var filler = \"\";\n for (var f = 0; f < len; f += 2) {\n filler += \"ff\";\n }\n var m = \"0001\" + filler + \"00\" + s;\n return (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(m, 16);\n}\n// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint\nfunction pkcs1pad2(s, n) {\n if (n < s.length + 11) { // TODO: fix for utf-8\n console.error(\"Message too long for RSA\");\n return null;\n }\n var ba = [];\n var i = s.length - 1;\n while (i >= 0 && n > 0) {\n var c = s.charCodeAt(i--);\n if (c < 128) { // encode using utf-8\n ba[--n] = c;\n }\n else if ((c > 127) && (c < 2048)) {\n ba[--n] = (c & 63) | 128;\n ba[--n] = (c >> 6) | 192;\n }\n else {\n ba[--n] = (c & 63) | 128;\n ba[--n] = ((c >> 6) & 63) | 128;\n ba[--n] = (c >> 12) | 224;\n }\n }\n ba[--n] = 0;\n var rng = new _rng__WEBPACK_IMPORTED_MODULE_1__.SecureRandom();\n var x = [];\n while (n > 2) { // random non-zero pad\n x[0] = 0;\n while (x[0] == 0) {\n rng.nextBytes(x);\n }\n ba[--n] = x[0];\n }\n ba[--n] = 2;\n ba[--n] = 0;\n return new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(ba);\n}\n// \"empty\" RSA key constructor\nvar RSAKey = /** @class */ (function () {\n function RSAKey() {\n this.n = null;\n this.e = 0;\n this.d = null;\n this.p = null;\n this.q = null;\n this.dmp1 = null;\n this.dmq1 = null;\n this.coeff = null;\n }\n //#region PROTECTED\n // protected\n // RSAKey.prototype.doPublic = RSADoPublic;\n // Perform raw public operation on \"x\": return x^e (mod n)\n RSAKey.prototype.doPublic = function (x) {\n return x.modPowInt(this.e, this.n);\n };\n // RSAKey.prototype.doPrivate = RSADoPrivate;\n // Perform raw private operation on \"x\": return x^d (mod n)\n RSAKey.prototype.doPrivate = function (x) {\n if (this.p == null || this.q == null) {\n return x.modPow(this.d, this.n);\n }\n // TODO: re-calculate any missing CRT params\n var xp = x.mod(this.p).modPow(this.dmp1, this.p);\n var xq = x.mod(this.q).modPow(this.dmq1, this.q);\n while (xp.compareTo(xq) < 0) {\n xp = xp.add(this.p);\n }\n return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);\n };\n //#endregion PROTECTED\n //#region PUBLIC\n // RSAKey.prototype.setPublic = RSASetPublic;\n // Set the public key fields N and e from hex strings\n RSAKey.prototype.setPublic = function (N, E) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(N, 16);\n this.e = parseInt(E, 16);\n }\n else {\n console.error(\"Invalid RSA public key\");\n }\n };\n // RSAKey.prototype.encrypt = RSAEncrypt;\n // Return the PKCS#1 RSA encryption of \"text\" as an even-length hex string\n RSAKey.prototype.encrypt = function (text) {\n var maxLength = (this.n.bitLength() + 7) >> 3;\n var m = pkcs1pad2(text, maxLength);\n if (m == null) {\n return null;\n }\n var c = this.doPublic(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n var length = h.length;\n // fix zero before result\n for (var i = 0; i < maxLength * 2 - length; i++) {\n h = \"0\" + h;\n }\n return h;\n };\n // RSAKey.prototype.setPrivate = RSASetPrivate;\n // Set the private key fields N, e, and d from hex strings\n RSAKey.prototype.setPrivate = function (N, E, D) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(N, 16);\n this.e = parseInt(E, 16);\n this.d = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(D, 16);\n }\n else {\n console.error(\"Invalid RSA private key\");\n }\n };\n // RSAKey.prototype.setPrivateEx = RSASetPrivateEx;\n // Set the private key fields N, e, d and CRT params from hex strings\n RSAKey.prototype.setPrivateEx = function (N, E, D, P, Q, DP, DQ, C) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(N, 16);\n this.e = parseInt(E, 16);\n this.d = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(D, 16);\n this.p = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(P, 16);\n this.q = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(Q, 16);\n this.dmp1 = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(DP, 16);\n this.dmq1 = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(DQ, 16);\n this.coeff = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(C, 16);\n }\n else {\n console.error(\"Invalid RSA private key\");\n }\n };\n // RSAKey.prototype.generate = RSAGenerate;\n // Generate a new random private key B bits long, using public expt E\n RSAKey.prototype.generate = function (B, E) {\n var rng = new _rng__WEBPACK_IMPORTED_MODULE_1__.SecureRandom();\n var qs = B >> 1;\n this.e = parseInt(E, 16);\n var ee = new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(E, 16);\n for (;;) {\n for (;;) {\n this.p = new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(B - qs, 1, rng);\n if (this.p.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE).gcd(ee).compareTo(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) {\n break;\n }\n }\n for (;;) {\n this.q = new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(qs, 1, rng);\n if (this.q.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE).gcd(ee).compareTo(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) {\n break;\n }\n }\n if (this.p.compareTo(this.q) <= 0) {\n var t = this.p;\n this.p = this.q;\n this.q = t;\n }\n var p1 = this.p.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE);\n var q1 = this.q.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE);\n var phi = p1.multiply(q1);\n if (phi.gcd(ee).compareTo(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE) == 0) {\n this.n = this.p.multiply(this.q);\n this.d = ee.modInverse(phi);\n this.dmp1 = this.d.mod(p1);\n this.dmq1 = this.d.mod(q1);\n this.coeff = this.q.modInverse(this.p);\n break;\n }\n }\n };\n // RSAKey.prototype.decrypt = RSADecrypt;\n // Return the PKCS#1 RSA decryption of \"ctext\".\n // \"ctext\" is an even-length hex string and the output is a plain string.\n RSAKey.prototype.decrypt = function (ctext) {\n var c = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(ctext, 16);\n var m = this.doPrivate(c);\n if (m == null) {\n return null;\n }\n return pkcs1unpad2(m, (this.n.bitLength() + 7) >> 3);\n };\n // Generate a new random private key B bits long, using public expt E\n RSAKey.prototype.generateAsync = function (B, E, callback) {\n var rng = new _rng__WEBPACK_IMPORTED_MODULE_1__.SecureRandom();\n var qs = B >> 1;\n this.e = parseInt(E, 16);\n var ee = new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(E, 16);\n var rsa = this;\n // These functions have non-descript names because they were originally for(;;) loops.\n // I don't know about cryptography to give them better names than loop1-4.\n var loop1 = function () {\n var loop4 = function () {\n if (rsa.p.compareTo(rsa.q) <= 0) {\n var t = rsa.p;\n rsa.p = rsa.q;\n rsa.q = t;\n }\n var p1 = rsa.p.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE);\n var q1 = rsa.q.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE);\n var phi = p1.multiply(q1);\n if (phi.gcd(ee).compareTo(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE) == 0) {\n rsa.n = rsa.p.multiply(rsa.q);\n rsa.d = ee.modInverse(phi);\n rsa.dmp1 = rsa.d.mod(p1);\n rsa.dmq1 = rsa.d.mod(q1);\n rsa.coeff = rsa.q.modInverse(rsa.p);\n setTimeout(function () { callback(); }, 0); // escape\n }\n else {\n setTimeout(loop1, 0);\n }\n };\n var loop3 = function () {\n rsa.q = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.nbi)();\n rsa.q.fromNumberAsync(qs, 1, rng, function () {\n rsa.q.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE).gcda(ee, function (r) {\n if (r.compareTo(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE) == 0 && rsa.q.isProbablePrime(10)) {\n setTimeout(loop4, 0);\n }\n else {\n setTimeout(loop3, 0);\n }\n });\n });\n };\n var loop2 = function () {\n rsa.p = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.nbi)();\n rsa.p.fromNumberAsync(B - qs, 1, rng, function () {\n rsa.p.subtract(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE).gcda(ee, function (r) {\n if (r.compareTo(_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE) == 0 && rsa.p.isProbablePrime(10)) {\n setTimeout(loop3, 0);\n }\n else {\n setTimeout(loop2, 0);\n }\n });\n });\n };\n setTimeout(loop2, 0);\n };\n setTimeout(loop1, 0);\n };\n RSAKey.prototype.sign = function (text, digestMethod, digestName) {\n var header = getDigestHeader(digestName);\n var digest = header + digestMethod(text).toString();\n var m = pkcs1pad1(digest, this.n.bitLength() / 4);\n if (m == null) {\n return null;\n }\n var c = this.doPrivate(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n if ((h.length & 1) == 0) {\n return h;\n }\n else {\n return \"0\" + h;\n }\n };\n RSAKey.prototype.verify = function (text, signature, digestMethod) {\n var c = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(signature, 16);\n var m = this.doPublic(c);\n if (m == null) {\n return null;\n }\n var unpadded = m.toString(16).replace(/^1f+00/, \"\");\n var digest = removeDigestHeader(unpadded);\n return digest == digestMethod(text).toString();\n };\n return RSAKey;\n}());\n\n// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext\nfunction pkcs1unpad2(d, n) {\n var b = d.toByteArray();\n var i = 0;\n while (i < b.length && b[i] == 0) {\n ++i;\n }\n if (b.length - i != n - 1 || b[i] != 2) {\n return null;\n }\n ++i;\n while (b[i] != 0) {\n if (++i >= b.length) {\n return null;\n }\n }\n var ret = \"\";\n while (++i < b.length) {\n var c = b[i] & 255;\n if (c < 128) { // utf-8 decode\n ret += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n ret += String.fromCharCode(((c & 31) << 6) | (b[i + 1] & 63));\n ++i;\n }\n else {\n ret += String.fromCharCode(((c & 15) << 12) | ((b[i + 1] & 63) << 6) | (b[i + 2] & 63));\n i += 2;\n }\n }\n return ret;\n}\n// https://tools.ietf.org/html/rfc3447#page-43\nvar DIGEST_HEADERS = {\n md2: \"3020300c06082a864886f70d020205000410\",\n md5: \"3020300c06082a864886f70d020505000410\",\n sha1: \"3021300906052b0e03021a05000414\",\n sha224: \"302d300d06096086480165030402040500041c\",\n sha256: \"3031300d060960864801650304020105000420\",\n sha384: \"3041300d060960864801650304020205000430\",\n sha512: \"3051300d060960864801650304020305000440\",\n ripemd160: \"3021300906052b2403020105000414\"\n};\nfunction getDigestHeader(name) {\n return DIGEST_HEADERS[name] || \"\";\n}\nfunction removeDigestHeader(str) {\n for (var name_1 in DIGEST_HEADERS) {\n if (DIGEST_HEADERS.hasOwnProperty(name_1)) {\n var header = DIGEST_HEADERS[name_1];\n var len = header.length;\n if (str.substr(0, len) == header) {\n return str.substr(len);\n }\n }\n }\n return str;\n}\n// Return the PKCS#1 RSA encryption of \"text\" as a Base64-encoded string\n// function RSAEncryptB64(text) {\n// var h = this.encrypt(text);\n// if(h) return hex2b64(h); else return null;\n// }\n// public\n// RSAKey.prototype.encrypt_b64 = RSAEncryptB64;\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/rsa.js?"); + +/***/ }), + +/***/ "./lib/lib/jsbn/util.js": +/*!******************************!*\ + !*** ./lib/lib/jsbn/util.js ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"cbit\": () => (/* binding */ cbit),\n/* harmony export */ \"int2char\": () => (/* binding */ int2char),\n/* harmony export */ \"lbit\": () => (/* binding */ lbit),\n/* harmony export */ \"op_and\": () => (/* binding */ op_and),\n/* harmony export */ \"op_andnot\": () => (/* binding */ op_andnot),\n/* harmony export */ \"op_or\": () => (/* binding */ op_or),\n/* harmony export */ \"op_xor\": () => (/* binding */ op_xor)\n/* harmony export */ });\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\n//#region BIT_OPERATIONS\n// (public) this & a\nfunction op_and(x, y) {\n return x & y;\n}\n// (public) this | a\nfunction op_or(x, y) {\n return x | y;\n}\n// (public) this ^ a\nfunction op_xor(x, y) {\n return x ^ y;\n}\n// (public) this & ~a\nfunction op_andnot(x, y) {\n return x & ~y;\n}\n// return index of lowest 1-bit in x, x < 2^31\nfunction lbit(x) {\n if (x == 0) {\n return -1;\n }\n var r = 0;\n if ((x & 0xffff) == 0) {\n x >>= 16;\n r += 16;\n }\n if ((x & 0xff) == 0) {\n x >>= 8;\n r += 8;\n }\n if ((x & 0xf) == 0) {\n x >>= 4;\n r += 4;\n }\n if ((x & 3) == 0) {\n x >>= 2;\n r += 2;\n }\n if ((x & 1) == 0) {\n ++r;\n }\n return r;\n}\n// return number of 1 bits in x\nfunction cbit(x) {\n var r = 0;\n while (x != 0) {\n x &= x - 1;\n ++r;\n }\n return r;\n}\n//#endregion BIT_OPERATIONS\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/util.js?"); + +/***/ }), + +/***/ "./lib/lib/jsrsasign/asn1-1.0.js": +/*!***************************************!*\ + !*** ./lib/lib/jsrsasign/asn1-1.0.js ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KJUR\": () => (/* binding */ KJUR)\n/* harmony export */ });\n/* harmony import */ var _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../jsbn/jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _yahoo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./yahoo */ \"./lib/lib/jsrsasign/yahoo.js\");\n/* asn1-1.0.13.js (c) 2013-2017 Kenji Urushima | kjur.github.com/jsrsasign/license\n */\n/*\n * asn1.js - ASN.1 DER encoder classes\n *\n * Copyright (c) 2013-2017 Kenji Urushima (kenji.urushima@gmail.com)\n *\n * This software is licensed under the terms of the MIT License.\n * https://kjur.github.io/jsrsasign/license\n *\n * The above copyright and license notice shall be\n * included in all copies or substantial portions of the Software.\n */\n\n\n/**\n * @fileOverview\n * @name asn1-1.0.js\n * @author Kenji Urushima kenji.urushima@gmail.com\n * @version asn1 1.0.13 (2017-Jun-02)\n * @since jsrsasign 2.1\n * @license MIT License\n */\n/**\n * kjur's class library name space\n *

\n * This name space provides following name spaces:\n *

    \n *
  • {@link KJUR.asn1} - ASN.1 primitive hexadecimal encoder
  • \n *
  • {@link KJUR.asn1.x509} - ASN.1 structure for X.509 certificate and CRL
  • \n *
  • {@link KJUR.crypto} - Java Cryptographic Extension(JCE) style MessageDigest/Signature\n * class and utilities
  • \n *
\n *

\n * NOTE: Please ignore method summary and document of this namespace. This caused by a bug of jsdoc2.\n * @name KJUR\n * @namespace kjur's class library name space\n */\nvar KJUR = {};\n/**\n * kjur's ASN.1 class library name space\n *

\n * This is ITU-T X.690 ASN.1 DER encoder class library and\n * class structure and methods is very similar to\n * org.bouncycastle.asn1 package of\n * well known BouncyCaslte Cryptography Library.\n *

PROVIDING ASN.1 PRIMITIVES

\n * Here are ASN.1 DER primitive classes.\n *
    \n *
  • 0x01 {@link KJUR.asn1.DERBoolean}
  • \n *
  • 0x02 {@link KJUR.asn1.DERInteger}
  • \n *
  • 0x03 {@link KJUR.asn1.DERBitString}
  • \n *
  • 0x04 {@link KJUR.asn1.DEROctetString}
  • \n *
  • 0x05 {@link KJUR.asn1.DERNull}
  • \n *
  • 0x06 {@link KJUR.asn1.DERObjectIdentifier}
  • \n *
  • 0x0a {@link KJUR.asn1.DEREnumerated}
  • \n *
  • 0x0c {@link KJUR.asn1.DERUTF8String}
  • \n *
  • 0x12 {@link KJUR.asn1.DERNumericString}
  • \n *
  • 0x13 {@link KJUR.asn1.DERPrintableString}
  • \n *
  • 0x14 {@link KJUR.asn1.DERTeletexString}
  • \n *
  • 0x16 {@link KJUR.asn1.DERIA5String}
  • \n *
  • 0x17 {@link KJUR.asn1.DERUTCTime}
  • \n *
  • 0x18 {@link KJUR.asn1.DERGeneralizedTime}
  • \n *
  • 0x30 {@link KJUR.asn1.DERSequence}
  • \n *
  • 0x31 {@link KJUR.asn1.DERSet}
  • \n *
\n *

OTHER ASN.1 CLASSES

\n *
    \n *
  • {@link KJUR.asn1.ASN1Object}
  • \n *
  • {@link KJUR.asn1.DERAbstractString}
  • \n *
  • {@link KJUR.asn1.DERAbstractTime}
  • \n *
  • {@link KJUR.asn1.DERAbstractStructured}
  • \n *
  • {@link KJUR.asn1.DERTaggedObject}
  • \n *
\n *

SUB NAME SPACES

\n *
    \n *
  • {@link KJUR.asn1.cades} - CAdES long term signature format
  • \n *
  • {@link KJUR.asn1.cms} - Cryptographic Message Syntax
  • \n *
  • {@link KJUR.asn1.csr} - Certificate Signing Request (CSR/PKCS#10)
  • \n *
  • {@link KJUR.asn1.tsp} - RFC 3161 Timestamping Protocol Format
  • \n *
  • {@link KJUR.asn1.x509} - RFC 5280 X.509 certificate and CRL
  • \n *
\n *

\n * NOTE: Please ignore method summary and document of this namespace.\n * This caused by a bug of jsdoc2.\n * @name KJUR.asn1\n * @namespace\n */\nif (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1)\n KJUR.asn1 = {};\n/**\n * ASN1 utilities class\n * @name KJUR.asn1.ASN1Util\n * @class ASN1 utilities class\n * @since asn1 1.0.2\n */\nKJUR.asn1.ASN1Util = new function () {\n this.integerToByteHex = function (i) {\n var h = i.toString(16);\n if ((h.length % 2) == 1)\n h = '0' + h;\n return h;\n };\n this.bigIntToMinTwosComplementsHex = function (bigIntegerValue) {\n var h = bigIntegerValue.toString(16);\n if (h.substr(0, 1) != '-') {\n if (h.length % 2 == 1) {\n h = '0' + h;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n h = '00' + h;\n }\n }\n }\n else {\n var hPos = h.substr(1);\n var xorLen = hPos.length;\n if (xorLen % 2 == 1) {\n xorLen += 1;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n xorLen += 2;\n }\n }\n var hMask = '';\n for (var i = 0; i < xorLen; i++) {\n hMask += 'f';\n }\n var biMask = new _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(hMask, 16);\n var biNeg = biMask.xor(bigIntegerValue).add(_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger.ONE);\n h = biNeg.toString(16).replace(/^-/, '');\n }\n return h;\n };\n /**\n * get PEM string from hexadecimal data and header string\n * @name getPEMStringFromHex\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} dataHex hexadecimal string of PEM body\n * @param {String} pemHeader PEM header string (ex. 'RSA PRIVATE KEY')\n * @return {String} PEM formatted string of input data\n * @description\n * This method converts a hexadecimal string to a PEM string with\n * a specified header. Its line break will be CRLF(\"\\r\\n\").\n * @example\n * var pem = KJUR.asn1.ASN1Util.getPEMStringFromHex('616161', 'RSA PRIVATE KEY');\n * // value of pem will be:\n * -----BEGIN PRIVATE KEY-----\n * YWFh\n * -----END PRIVATE KEY-----\n */\n this.getPEMStringFromHex = function (dataHex, pemHeader) {\n return hextopem(dataHex, pemHeader);\n };\n /**\n * generate ASN1Object specifed by JSON parameters\n * @name newObject\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {Array} param JSON parameter to generate ASN1Object\n * @return {KJUR.asn1.ASN1Object} generated object\n * @since asn1 1.0.3\n * @description\n * generate any ASN1Object specified by JSON param\n * including ASN.1 primitive or structured.\n * Generally 'param' can be described as follows:\n *
\n * {TYPE-OF-ASNOBJ: ASN1OBJ-PARAMETER}\n *
\n * 'TYPE-OF-ASN1OBJ' can be one of following symbols:\n *
    \n *
  • 'bool' - DERBoolean
  • \n *
  • 'int' - DERInteger
  • \n *
  • 'bitstr' - DERBitString
  • \n *
  • 'octstr' - DEROctetString
  • \n *
  • 'null' - DERNull
  • \n *
  • 'oid' - DERObjectIdentifier
  • \n *
  • 'enum' - DEREnumerated
  • \n *
  • 'utf8str' - DERUTF8String
  • \n *
  • 'numstr' - DERNumericString
  • \n *
  • 'prnstr' - DERPrintableString
  • \n *
  • 'telstr' - DERTeletexString
  • \n *
  • 'ia5str' - DERIA5String
  • \n *
  • 'utctime' - DERUTCTime
  • \n *
  • 'gentime' - DERGeneralizedTime
  • \n *
  • 'seq' - DERSequence
  • \n *
  • 'set' - DERSet
  • \n *
  • 'tag' - DERTaggedObject
  • \n *
\n * @example\n * newObject({'prnstr': 'aaa'});\n * newObject({'seq': [{'int': 3}, {'prnstr': 'aaa'}]})\n * // ASN.1 Tagged Object\n * newObject({'tag': {'tag': 'a1',\n * 'explicit': true,\n * 'obj': {'seq': [{'int': 3}, {'prnstr': 'aaa'}]}}});\n * // more simple representation of ASN.1 Tagged Object\n * newObject({'tag': ['a1',\n * true,\n * {'seq': [\n * {'int': 3},\n * {'prnstr': 'aaa'}]}\n * ]});\n */\n this.newObject = function (param) {\n var _KJUR = KJUR, _KJUR_asn1 = _KJUR.asn1, _DERBoolean = _KJUR_asn1.DERBoolean, _DERInteger = _KJUR_asn1.DERInteger, _DERBitString = _KJUR_asn1.DERBitString, _DEROctetString = _KJUR_asn1.DEROctetString, _DERNull = _KJUR_asn1.DERNull, _DERObjectIdentifier = _KJUR_asn1.DERObjectIdentifier, _DEREnumerated = _KJUR_asn1.DEREnumerated, _DERUTF8String = _KJUR_asn1.DERUTF8String, _DERNumericString = _KJUR_asn1.DERNumericString, _DERPrintableString = _KJUR_asn1.DERPrintableString, _DERTeletexString = _KJUR_asn1.DERTeletexString, _DERIA5String = _KJUR_asn1.DERIA5String, _DERUTCTime = _KJUR_asn1.DERUTCTime, _DERGeneralizedTime = _KJUR_asn1.DERGeneralizedTime, _DERSequence = _KJUR_asn1.DERSequence, _DERSet = _KJUR_asn1.DERSet, _DERTaggedObject = _KJUR_asn1.DERTaggedObject, _newObject = _KJUR_asn1.ASN1Util.newObject;\n var keys = Object.keys(param);\n if (keys.length != 1)\n throw \"key of param shall be only one.\";\n var key = keys[0];\n if (\":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:\".indexOf(\":\" + key + \":\") == -1)\n throw \"undefined key: \" + key;\n if (key == \"bool\")\n return new _DERBoolean(param[key]);\n if (key == \"int\")\n return new _DERInteger(param[key]);\n if (key == \"bitstr\")\n return new _DERBitString(param[key]);\n if (key == \"octstr\")\n return new _DEROctetString(param[key]);\n if (key == \"null\")\n return new _DERNull(param[key]);\n if (key == \"oid\")\n return new _DERObjectIdentifier(param[key]);\n if (key == \"enum\")\n return new _DEREnumerated(param[key]);\n if (key == \"utf8str\")\n return new _DERUTF8String(param[key]);\n if (key == \"numstr\")\n return new _DERNumericString(param[key]);\n if (key == \"prnstr\")\n return new _DERPrintableString(param[key]);\n if (key == \"telstr\")\n return new _DERTeletexString(param[key]);\n if (key == \"ia5str\")\n return new _DERIA5String(param[key]);\n if (key == \"utctime\")\n return new _DERUTCTime(param[key]);\n if (key == \"gentime\")\n return new _DERGeneralizedTime(param[key]);\n if (key == \"seq\") {\n var paramList = param[key];\n var a = [];\n for (var i = 0; i < paramList.length; i++) {\n var asn1Obj = _newObject(paramList[i]);\n a.push(asn1Obj);\n }\n return new _DERSequence({ 'array': a });\n }\n if (key == \"set\") {\n var paramList = param[key];\n var a = [];\n for (var i = 0; i < paramList.length; i++) {\n var asn1Obj = _newObject(paramList[i]);\n a.push(asn1Obj);\n }\n return new _DERSet({ 'array': a });\n }\n if (key == \"tag\") {\n var tagParam = param[key];\n if (Object.prototype.toString.call(tagParam) === '[object Array]' &&\n tagParam.length == 3) {\n var obj = _newObject(tagParam[2]);\n return new _DERTaggedObject({ tag: tagParam[0],\n explicit: tagParam[1],\n obj: obj });\n }\n else {\n var newParam = {};\n if (tagParam.explicit !== undefined)\n newParam.explicit = tagParam.explicit;\n if (tagParam.tag !== undefined)\n newParam.tag = tagParam.tag;\n if (tagParam.obj === undefined)\n throw \"obj shall be specified for 'tag'.\";\n newParam.obj = _newObject(tagParam.obj);\n return new _DERTaggedObject(newParam);\n }\n }\n };\n /**\n * get encoded hexadecimal string of ASN1Object specifed by JSON parameters\n * @name jsonToASN1HEX\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {Array} param JSON parameter to generate ASN1Object\n * @return hexadecimal string of ASN1Object\n * @since asn1 1.0.4\n * @description\n * As for ASN.1 object representation of JSON object,\n * please see {@link newObject}.\n * @example\n * jsonToASN1HEX({'prnstr': 'aaa'});\n */\n this.jsonToASN1HEX = function (param) {\n var asn1Obj = this.newObject(param);\n return asn1Obj.getEncodedHex();\n };\n};\n/**\n * get dot noted oid number string from hexadecimal value of OID\n * @name oidHexToInt\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} hex hexadecimal value of object identifier\n * @return {String} dot noted string of object identifier\n * @since jsrsasign 4.8.3 asn1 1.0.7\n * @description\n * This static method converts from hexadecimal string representation of\n * ASN.1 value of object identifier to oid number string.\n * @example\n * KJUR.asn1.ASN1Util.oidHexToInt('550406') → \"2.5.4.6\"\n */\nKJUR.asn1.ASN1Util.oidHexToInt = function (hex) {\n var s = \"\";\n var i01 = parseInt(hex.substr(0, 2), 16);\n var i0 = Math.floor(i01 / 40);\n var i1 = i01 % 40;\n var s = i0 + \".\" + i1;\n var binbuf = \"\";\n for (var i = 2; i < hex.length; i += 2) {\n var value = parseInt(hex.substr(i, 2), 16);\n var bin = (\"00000000\" + value.toString(2)).slice(-8);\n binbuf = binbuf + bin.substr(1, 7);\n if (bin.substr(0, 1) == \"0\") {\n var bi = new _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(binbuf, 2);\n s = s + \".\" + bi.toString(10);\n binbuf = \"\";\n }\n }\n ;\n return s;\n};\n/**\n * get hexadecimal value of object identifier from dot noted oid value\n * @name oidIntToHex\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} oidString dot noted string of object identifier\n * @return {String} hexadecimal value of object identifier\n * @since jsrsasign 4.8.3 asn1 1.0.7\n * @description\n * This static method converts from object identifier value string.\n * to hexadecimal string representation of it.\n * @example\n * KJUR.asn1.ASN1Util.oidIntToHex(\"2.5.4.6\") → \"550406\"\n */\nKJUR.asn1.ASN1Util.oidIntToHex = function (oidString) {\n var itox = function (i) {\n var h = i.toString(16);\n if (h.length == 1)\n h = '0' + h;\n return h;\n };\n var roidtox = function (roid) {\n var h = '';\n var bi = new _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(roid, 10);\n var b = bi.toString(2);\n var padLen = 7 - b.length % 7;\n if (padLen == 7)\n padLen = 0;\n var bPad = '';\n for (var i = 0; i < padLen; i++)\n bPad += '0';\n b = bPad + b;\n for (var i = 0; i < b.length - 1; i += 7) {\n var b8 = b.substr(i, 7);\n if (i != b.length - 7)\n b8 = '1' + b8;\n h += itox(parseInt(b8, 2));\n }\n return h;\n };\n if (!oidString.match(/^[0-9.]+$/)) {\n throw \"malformed oid string: \" + oidString;\n }\n var h = '';\n var a = oidString.split('.');\n var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);\n h += itox(i0);\n a.splice(0, 2);\n for (var i = 0; i < a.length; i++) {\n h += roidtox(a[i]);\n }\n return h;\n};\n// ********************************************************************\n// Abstract ASN.1 Classes\n// ********************************************************************\n// ********************************************************************\n/**\n * base class for ASN.1 DER encoder object\n * @name KJUR.asn1.ASN1Object\n * @class base class for ASN.1 DER encoder object\n * @property {Boolean} isModified flag whether internal data was changed\n * @property {String} hTLV hexadecimal string of ASN.1 TLV\n * @property {String} hT hexadecimal string of ASN.1 TLV tag(T)\n * @property {String} hL hexadecimal string of ASN.1 TLV length(L)\n * @property {String} hV hexadecimal string of ASN.1 TLV value(V)\n * @description\n */\nKJUR.asn1.ASN1Object = function () {\n var isModified = true;\n var hTLV = null;\n var hT = '00';\n var hL = '00';\n var hV = '';\n /**\n * get hexadecimal ASN.1 TLV length(L) bytes from TLV value(V)\n * @name getLengthHexFromValue\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV length(L)\n */\n this.getLengthHexFromValue = function () {\n if (typeof this.hV == \"undefined\" || this.hV == null) {\n throw \"this.hV is null or undefined.\";\n }\n if (this.hV.length % 2 == 1) {\n throw \"value hex must be even length: n=\" + hV.length + \",v=\" + this.hV;\n }\n var n = this.hV.length / 2;\n var hN = n.toString(16);\n if (hN.length % 2 == 1) {\n hN = \"0\" + hN;\n }\n if (n < 128) {\n return hN;\n }\n else {\n var hNlen = hN.length / 2;\n if (hNlen > 15) {\n throw \"ASN.1 length too long to represent by 8x: n = \" + n.toString(16);\n }\n var head = 128 + hNlen;\n return head.toString(16) + hN;\n }\n };\n /**\n * get hexadecimal string of ASN.1 TLV bytes\n * @name getEncodedHex\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV\n */\n this.getEncodedHex = function () {\n if (this.hTLV == null || this.isModified) {\n this.hV = this.getFreshValueHex();\n this.hL = this.getLengthHexFromValue();\n this.hTLV = this.hT + this.hL + this.hV;\n this.isModified = false;\n //alert(\"first time: \" + this.hTLV);\n }\n return this.hTLV;\n };\n /**\n * get hexadecimal string of ASN.1 TLV value(V) bytes\n * @name getValueHex\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV value(V) bytes\n */\n this.getValueHex = function () {\n this.getEncodedHex();\n return this.hV;\n };\n this.getFreshValueHex = function () {\n return '';\n };\n};\n// == BEGIN DERAbstractString ================================================\n/**\n * base class for ASN.1 DER string classes\n * @name KJUR.asn1.DERAbstractString\n * @class base class for ASN.1 DER string classes\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @property {String} s internal string of value\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • str - specify initial ASN.1 value(V) by a string
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERAbstractString = function (params) {\n KJUR.asn1.DERAbstractString.superclass.constructor.call(this);\n var s = null;\n var hV = null;\n /**\n * get string value of this string object\n * @name getString\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @return {String} string value of this string object\n */\n this.getString = function () {\n return this.s;\n };\n /**\n * set value by a string\n * @name setString\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @param {String} newS value by a string to set\n */\n this.setString = function (newS) {\n this.hTLV = null;\n this.isModified = true;\n this.s = newS;\n this.hV = stohex(this.s);\n };\n /**\n * set value by a hexadecimal string\n * @name setStringHex\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @param {String} newHexString value by a hexadecimal string to set\n */\n this.setStringHex = function (newHexString) {\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = newHexString;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params == \"string\") {\n this.setString(params);\n }\n else if (typeof params['str'] != \"undefined\") {\n this.setString(params['str']);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setStringHex(params['hex']);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERAbstractString, KJUR.asn1.ASN1Object);\n// == END DERAbstractString ================================================\n// == BEGIN DERAbstractTime ==================================================\n/**\n * base class for ASN.1 DER Generalized/UTCTime class\n * @name KJUR.asn1.DERAbstractTime\n * @class base class for ASN.1 DER Generalized/UTCTime class\n * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'})\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERAbstractTime = function (params) {\n KJUR.asn1.DERAbstractTime.superclass.constructor.call(this);\n var s = null;\n var date = null;\n // --- PRIVATE METHODS --------------------\n this.localDateToUTC = function (d) {\n utc = d.getTime() + (d.getTimezoneOffset() * 60000);\n var utcDate = new Date(utc);\n return utcDate;\n };\n /*\n * format date string by Data object\n * @name formatDate\n * @memberOf KJUR.asn1.AbstractTime;\n * @param {Date} dateObject\n * @param {string} type 'utc' or 'gen'\n * @param {boolean} withMillis flag for with millisections or not\n * @description\n * 'withMillis' flag is supported from asn1 1.0.6.\n */\n this.formatDate = function (dateObject, type, withMillis) {\n var pad = this.zeroPadding;\n var d = this.localDateToUTC(dateObject);\n var year = String(d.getFullYear());\n if (type == 'utc')\n year = year.substr(2, 2);\n var month = pad(String(d.getMonth() + 1), 2);\n var day = pad(String(d.getDate()), 2);\n var hour = pad(String(d.getHours()), 2);\n var min = pad(String(d.getMinutes()), 2);\n var sec = pad(String(d.getSeconds()), 2);\n var s = year + month + day + hour + min + sec;\n if (withMillis === true) {\n var millis = d.getMilliseconds();\n if (millis != 0) {\n var sMillis = pad(String(millis), 3);\n sMillis = sMillis.replace(/[0]+$/, \"\");\n s = s + \".\" + sMillis;\n }\n }\n return s + \"Z\";\n };\n this.zeroPadding = function (s, len) {\n if (s.length >= len)\n return s;\n return new Array(len - s.length + 1).join('0') + s;\n };\n // --- PUBLIC METHODS --------------------\n /**\n * get string value of this string object\n * @name getString\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @return {String} string value of this time object\n */\n this.getString = function () {\n return this.s;\n };\n /**\n * set value by a string\n * @name setString\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @param {String} newS value by a string to set such like \"130430235959Z\"\n */\n this.setString = function (newS) {\n this.hTLV = null;\n this.isModified = true;\n this.s = newS;\n this.hV = stohex(newS);\n };\n /**\n * set value by a Date object\n * @name setByDateValue\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @param {Integer} year year of date (ex. 2013)\n * @param {Integer} month month of date between 1 and 12 (ex. 12)\n * @param {Integer} day day of month\n * @param {Integer} hour hours of date\n * @param {Integer} min minutes of date\n * @param {Integer} sec seconds of date\n */\n this.setByDateValue = function (year, month, day, hour, min, sec) {\n var dateObject = new Date(Date.UTC(year, month - 1, day, hour, min, sec, 0));\n this.setByDate(dateObject);\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERAbstractTime, KJUR.asn1.ASN1Object);\n// == END DERAbstractTime ==================================================\n// == BEGIN DERAbstractStructured ============================================\n/**\n * base class for ASN.1 DER structured class\n * @name KJUR.asn1.DERAbstractStructured\n * @class base class for ASN.1 DER structured class\n * @property {Array} asn1Array internal array of ASN1Object\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERAbstractStructured = function (params) {\n KJUR.asn1.DERAbstractString.superclass.constructor.call(this);\n var asn1Array = null;\n /**\n * set value by array of ASN1Object\n * @name setByASN1ObjectArray\n * @memberOf KJUR.asn1.DERAbstractStructured#\n * @function\n * @param {array} asn1ObjectArray array of ASN1Object to set\n */\n this.setByASN1ObjectArray = function (asn1ObjectArray) {\n this.hTLV = null;\n this.isModified = true;\n this.asn1Array = asn1ObjectArray;\n };\n /**\n * append an ASN1Object to internal array\n * @name appendASN1Object\n * @memberOf KJUR.asn1.DERAbstractStructured#\n * @function\n * @param {ASN1Object} asn1Object to add\n */\n this.appendASN1Object = function (asn1Object) {\n this.hTLV = null;\n this.isModified = true;\n this.asn1Array.push(asn1Object);\n };\n this.asn1Array = new Array();\n if (typeof params != \"undefined\") {\n if (typeof params['array'] != \"undefined\") {\n this.asn1Array = params['array'];\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERAbstractStructured, KJUR.asn1.ASN1Object);\n// ********************************************************************\n// ASN.1 Object Classes\n// ********************************************************************\n// ********************************************************************\n/**\n * class for ASN.1 DER Boolean\n * @name KJUR.asn1.DERBoolean\n * @class class for ASN.1 DER Boolean\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERBoolean = function () {\n KJUR.asn1.DERBoolean.superclass.constructor.call(this);\n this.hT = \"01\";\n this.hTLV = \"0101ff\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERBoolean, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER Integer\n * @name KJUR.asn1.DERInteger\n * @class class for ASN.1 DER Integer\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • int - specify initial ASN.1 value(V) by integer value
  • \n *
  • bigint - specify initial ASN.1 value(V) by BigInteger object
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERInteger = function (params) {\n KJUR.asn1.DERInteger.superclass.constructor.call(this);\n this.hT = \"02\";\n /**\n * set value by Tom Wu's BigInteger object\n * @name setByBigInteger\n * @memberOf KJUR.asn1.DERInteger#\n * @function\n * @param {BigInteger} bigIntegerValue to set\n */\n this.setByBigInteger = function (bigIntegerValue) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);\n };\n /**\n * set value by integer value\n * @name setByInteger\n * @memberOf KJUR.asn1.DERInteger\n * @function\n * @param {Integer} integer value to set\n */\n this.setByInteger = function (intValue) {\n var bi = new _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(String(intValue), 10);\n this.setByBigInteger(bi);\n };\n /**\n * set value by integer value\n * @name setValueHex\n * @memberOf KJUR.asn1.DERInteger#\n * @function\n * @param {String} hexadecimal string of integer value\n * @description\n *
\n * NOTE: Value shall be represented by minimum octet length of\n * two's complement representation.\n * @example\n * new KJUR.asn1.DERInteger(123);\n * new KJUR.asn1.DERInteger({'int': 123});\n * new KJUR.asn1.DERInteger({'hex': '1fad'});\n */\n this.setValueHex = function (newHexString) {\n this.hV = newHexString;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params['bigint'] != \"undefined\") {\n this.setByBigInteger(params['bigint']);\n }\n else if (typeof params['int'] != \"undefined\") {\n this.setByInteger(params['int']);\n }\n else if (typeof params == \"number\") {\n this.setByInteger(params);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setValueHex(params['hex']);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERInteger, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER encoded BitString primitive\n * @name KJUR.asn1.DERBitString\n * @class class for ASN.1 DER encoded BitString primitive\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • bin - specify binary string (ex. '10111')
  • \n *
  • array - specify array of boolean (ex. [true,false,true,true])
  • \n *
  • hex - specify hexadecimal string of ASN.1 value(V) including unused bits
  • \n *
  • obj - specify {@link KJUR.asn1.ASN1Util.newObject}\n * argument for \"BitString encapsulates\" structure.
  • \n *
\n * NOTE1: 'params' can be omitted.
\n * NOTE2: 'obj' parameter have been supported since\n * asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).
\n * @example\n * // default constructor\n * o = new KJUR.asn1.DERBitString();\n * // initialize with binary string\n * o = new KJUR.asn1.DERBitString({bin: \"1011\"});\n * // initialize with boolean array\n * o = new KJUR.asn1.DERBitString({array: [true,false,true,true]});\n * // initialize with hexadecimal string (04 is unused bits)\n * o = new KJUR.asn1.DEROctetString({hex: \"04bac0\"});\n * // initialize with ASN1Util.newObject argument for encapsulated\n * o = new KJUR.asn1.DERBitString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}});\n * // above generates a ASN.1 data like this:\n * // BIT STRING, encapsulates {\n * // SEQUENCE {\n * // INTEGER 3\n * // PrintableString 'aaa'\n * // }\n * // }\n */\nKJUR.asn1.DERBitString = function (params) {\n if (params !== undefined && typeof params.obj !== \"undefined\") {\n var o = KJUR.asn1.ASN1Util.newObject(params.obj);\n params.hex = \"00\" + o.getEncodedHex();\n }\n KJUR.asn1.DERBitString.superclass.constructor.call(this);\n this.hT = \"03\";\n /**\n * set ASN.1 value(V) by a hexadecimal string including unused bits\n * @name setHexValueIncludingUnusedBits\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {String} newHexStringIncludingUnusedBits\n */\n this.setHexValueIncludingUnusedBits = function (newHexStringIncludingUnusedBits) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = newHexStringIncludingUnusedBits;\n };\n /**\n * set ASN.1 value(V) by unused bit and hexadecimal string of value\n * @name setUnusedBitsAndHexValue\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {Integer} unusedBits\n * @param {String} hValue\n */\n this.setUnusedBitsAndHexValue = function (unusedBits, hValue) {\n if (unusedBits < 0 || 7 < unusedBits) {\n throw \"unused bits shall be from 0 to 7: u = \" + unusedBits;\n }\n var hUnusedBits = \"0\" + unusedBits;\n this.hTLV = null;\n this.isModified = true;\n this.hV = hUnusedBits + hValue;\n };\n /**\n * set ASN.1 DER BitString by binary string
\n * @name setByBinaryString\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {String} binaryString binary value string (i.e. '10111')\n * @description\n * Its unused bits will be calculated automatically by length of\n * 'binaryValue'.
\n * NOTE: Trailing zeros '0' will be ignored.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.setByBooleanArray(\"01011\");\n */\n this.setByBinaryString = function (binaryString) {\n binaryString = binaryString.replace(/0+$/, '');\n var unusedBits = 8 - binaryString.length % 8;\n if (unusedBits == 8)\n unusedBits = 0;\n for (var i = 0; i <= unusedBits; i++) {\n binaryString += '0';\n }\n var h = '';\n for (var i = 0; i < binaryString.length - 1; i += 8) {\n var b = binaryString.substr(i, 8);\n var x = parseInt(b, 2).toString(16);\n if (x.length == 1)\n x = '0' + x;\n h += x;\n }\n this.hTLV = null;\n this.isModified = true;\n this.hV = '0' + unusedBits + h;\n };\n /**\n * set ASN.1 TLV value(V) by an array of boolean
\n * @name setByBooleanArray\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {array} booleanArray array of boolean (ex. [true, false, true])\n * @description\n * NOTE: Trailing falses will be ignored in the ASN.1 DER Object.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.setByBooleanArray([false, true, false, true, true]);\n */\n this.setByBooleanArray = function (booleanArray) {\n var s = '';\n for (var i = 0; i < booleanArray.length; i++) {\n if (booleanArray[i] == true) {\n s += '1';\n }\n else {\n s += '0';\n }\n }\n this.setByBinaryString(s);\n };\n /**\n * generate an array of falses with specified length
\n * @name newFalseArray\n * @memberOf KJUR.asn1.DERBitString\n * @function\n * @param {Integer} nLength length of array to generate\n * @return {array} array of boolean falses\n * @description\n * This static method may be useful to initialize boolean array.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.newFalseArray(3) → [false, false, false]\n */\n this.newFalseArray = function (nLength) {\n var a = new Array(nLength);\n for (var i = 0; i < nLength; i++) {\n a[i] = false;\n }\n return a;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params == \"string\" && params.toLowerCase().match(/^[0-9a-f]+$/)) {\n this.setHexValueIncludingUnusedBits(params);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setHexValueIncludingUnusedBits(params['hex']);\n }\n else if (typeof params['bin'] != \"undefined\") {\n this.setByBinaryString(params['bin']);\n }\n else if (typeof params['array'] != \"undefined\") {\n this.setByBooleanArray(params['array']);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERBitString, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER OctetString
\n * @name KJUR.asn1.DEROctetString\n * @class class for ASN.1 DER OctetString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * This class provides ASN.1 OctetString simple type.
\n * Supported \"params\" attributes are:\n *
    \n *
  • str - to set a string as a value
  • \n *
  • hex - to set a hexadecimal string as a value
  • \n *
  • obj - to set a encapsulated ASN.1 value by JSON object\n * which is defined in {@link KJUR.asn1.ASN1Util.newObject}
  • \n *
\n * NOTE: A parameter 'obj' have been supported\n * for \"OCTET STRING, encapsulates\" structure.\n * since asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).\n * @see KJUR.asn1.DERAbstractString - superclass\n * @example\n * // default constructor\n * o = new KJUR.asn1.DEROctetString();\n * // initialize with string\n * o = new KJUR.asn1.DEROctetString({str: \"aaa\"});\n * // initialize with hexadecimal string\n * o = new KJUR.asn1.DEROctetString({hex: \"616161\"});\n * // initialize with ASN1Util.newObject argument\n * o = new KJUR.asn1.DEROctetString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}});\n * // above generates a ASN.1 data like this:\n * // OCTET STRING, encapsulates {\n * // SEQUENCE {\n * // INTEGER 3\n * // PrintableString 'aaa'\n * // }\n * // }\n */\nKJUR.asn1.DEROctetString = function (params) {\n if (params !== undefined && typeof params.obj !== \"undefined\") {\n var o = KJUR.asn1.ASN1Util.newObject(params.obj);\n params.hex = o.getEncodedHex();\n }\n KJUR.asn1.DEROctetString.superclass.constructor.call(this, params);\n this.hT = \"04\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DEROctetString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER Null\n * @name KJUR.asn1.DERNull\n * @class class for ASN.1 DER Null\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERNull = function () {\n KJUR.asn1.DERNull.superclass.constructor.call(this);\n this.hT = \"05\";\n this.hTLV = \"0500\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERNull, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER ObjectIdentifier\n * @name KJUR.asn1.DERObjectIdentifier\n * @class class for ASN.1 DER ObjectIdentifier\n * @param {Array} params associative array of parameters (ex. {'oid': '2.5.4.5'})\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • oid - specify initial ASN.1 value(V) by a oid string (ex. 2.5.4.13)
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERObjectIdentifier = function (params) {\n var itox = function (i) {\n var h = i.toString(16);\n if (h.length == 1)\n h = '0' + h;\n return h;\n };\n var roidtox = function (roid) {\n var h = '';\n var bi = new _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(roid, 10);\n var b = bi.toString(2);\n var padLen = 7 - b.length % 7;\n if (padLen == 7)\n padLen = 0;\n var bPad = '';\n for (var i = 0; i < padLen; i++)\n bPad += '0';\n b = bPad + b;\n for (var i = 0; i < b.length - 1; i += 7) {\n var b8 = b.substr(i, 7);\n if (i != b.length - 7)\n b8 = '1' + b8;\n h += itox(parseInt(b8, 2));\n }\n return h;\n };\n KJUR.asn1.DERObjectIdentifier.superclass.constructor.call(this);\n this.hT = \"06\";\n /**\n * set value by a hexadecimal string\n * @name setValueHex\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} newHexString hexadecimal value of OID bytes\n */\n this.setValueHex = function (newHexString) {\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = newHexString;\n };\n /**\n * set value by a OID string
\n * @name setValueOidString\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} oidString OID string (ex. 2.5.4.13)\n * @example\n * o = new KJUR.asn1.DERObjectIdentifier();\n * o.setValueOidString(\"2.5.4.13\");\n */\n this.setValueOidString = function (oidString) {\n if (!oidString.match(/^[0-9.]+$/)) {\n throw \"malformed oid string: \" + oidString;\n }\n var h = '';\n var a = oidString.split('.');\n var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);\n h += itox(i0);\n a.splice(0, 2);\n for (var i = 0; i < a.length; i++) {\n h += roidtox(a[i]);\n }\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = h;\n };\n /**\n * set value by a OID name\n * @name setValueName\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} oidName OID name (ex. 'serverAuth')\n * @since 1.0.1\n * @description\n * OID name shall be defined in 'KJUR.asn1.x509.OID.name2oidList'.\n * Otherwise raise error.\n * @example\n * o = new KJUR.asn1.DERObjectIdentifier();\n * o.setValueName(\"serverAuth\");\n */\n this.setValueName = function (oidName) {\n var oid = KJUR.asn1.x509.OID.name2oid(oidName);\n if (oid !== '') {\n this.setValueOidString(oid);\n }\n else {\n throw \"DERObjectIdentifier oidName undefined: \" + oidName;\n }\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (params !== undefined) {\n if (typeof params === \"string\") {\n if (params.match(/^[0-2].[0-9.]+$/)) {\n this.setValueOidString(params);\n }\n else {\n this.setValueName(params);\n }\n }\n else if (params.oid !== undefined) {\n this.setValueOidString(params.oid);\n }\n else if (params.hex !== undefined) {\n this.setValueHex(params.hex);\n }\n else if (params.name !== undefined) {\n this.setValueName(params.name);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERObjectIdentifier, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER Enumerated\n * @name KJUR.asn1.DEREnumerated\n * @class class for ASN.1 DER Enumerated\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • int - specify initial ASN.1 value(V) by integer value
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
\n * NOTE: 'params' can be omitted.\n * @example\n * new KJUR.asn1.DEREnumerated(123);\n * new KJUR.asn1.DEREnumerated({int: 123});\n * new KJUR.asn1.DEREnumerated({hex: '1fad'});\n */\nKJUR.asn1.DEREnumerated = function (params) {\n KJUR.asn1.DEREnumerated.superclass.constructor.call(this);\n this.hT = \"0a\";\n /**\n * set value by Tom Wu's BigInteger object\n * @name setByBigInteger\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {BigInteger} bigIntegerValue to set\n */\n this.setByBigInteger = function (bigIntegerValue) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);\n };\n /**\n * set value by integer value\n * @name setByInteger\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {Integer} integer value to set\n */\n this.setByInteger = function (intValue) {\n var bi = new _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(String(intValue), 10);\n this.setByBigInteger(bi);\n };\n /**\n * set value by integer value\n * @name setValueHex\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {String} hexadecimal string of integer value\n * @description\n *
\n * NOTE: Value shall be represented by minimum octet length of\n * two's complement representation.\n */\n this.setValueHex = function (newHexString) {\n this.hV = newHexString;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params['int'] != \"undefined\") {\n this.setByInteger(params['int']);\n }\n else if (typeof params == \"number\") {\n this.setByInteger(params);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setValueHex(params['hex']);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DEREnumerated, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER UTF8String\n * @name KJUR.asn1.DERUTF8String\n * @class class for ASN.1 DER UTF8String\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERUTF8String = function (params) {\n KJUR.asn1.DERUTF8String.superclass.constructor.call(this, params);\n this.hT = \"0c\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERUTF8String, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER NumericString\n * @name KJUR.asn1.DERNumericString\n * @class class for ASN.1 DER NumericString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERNumericString = function (params) {\n KJUR.asn1.DERNumericString.superclass.constructor.call(this, params);\n this.hT = \"12\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERNumericString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER PrintableString\n * @name KJUR.asn1.DERPrintableString\n * @class class for ASN.1 DER PrintableString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERPrintableString = function (params) {\n KJUR.asn1.DERPrintableString.superclass.constructor.call(this, params);\n this.hT = \"13\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERPrintableString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER TeletexString\n * @name KJUR.asn1.DERTeletexString\n * @class class for ASN.1 DER TeletexString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERTeletexString = function (params) {\n KJUR.asn1.DERTeletexString.superclass.constructor.call(this, params);\n this.hT = \"14\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERTeletexString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER IA5String\n * @name KJUR.asn1.DERIA5String\n * @class class for ASN.1 DER IA5String\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERIA5String = function (params) {\n KJUR.asn1.DERIA5String.superclass.constructor.call(this, params);\n this.hT = \"16\";\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERIA5String, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER UTCTime\n * @name KJUR.asn1.DERUTCTime\n * @class class for ASN.1 DER UTCTime\n * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'})\n * @extends KJUR.asn1.DERAbstractTime\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • str - specify initial ASN.1 value(V) by a string (ex.'130430235959Z')
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
  • date - specify Date object.
  • \n *
\n * NOTE: 'params' can be omitted.\n *

EXAMPLES

\n * @example\n * d1 = new KJUR.asn1.DERUTCTime();\n * d1.setString('130430125959Z');\n *\n * d2 = new KJUR.asn1.DERUTCTime({'str': '130430125959Z'});\n * d3 = new KJUR.asn1.DERUTCTime({'date': new Date(Date.UTC(2015, 0, 31, 0, 0, 0, 0))});\n * d4 = new KJUR.asn1.DERUTCTime('130430125959Z');\n */\nKJUR.asn1.DERUTCTime = function (params) {\n KJUR.asn1.DERUTCTime.superclass.constructor.call(this, params);\n this.hT = \"17\";\n /**\n * set value by a Date object
\n * @name setByDate\n * @memberOf KJUR.asn1.DERUTCTime#\n * @function\n * @param {Date} dateObject Date object to set ASN.1 value(V)\n * @example\n * o = new KJUR.asn1.DERUTCTime();\n * o.setByDate(new Date(\"2016/12/31\"));\n */\n this.setByDate = function (dateObject) {\n this.hTLV = null;\n this.isModified = true;\n this.date = dateObject;\n this.s = this.formatDate(this.date, 'utc');\n this.hV = stohex(this.s);\n };\n this.getFreshValueHex = function () {\n if (typeof this.date == \"undefined\" && typeof this.s == \"undefined\") {\n this.date = new Date();\n this.s = this.formatDate(this.date, 'utc');\n this.hV = stohex(this.s);\n }\n return this.hV;\n };\n if (params !== undefined) {\n if (params.str !== undefined) {\n this.setString(params.str);\n }\n else if (typeof params == \"string\" && params.match(/^[0-9]{12}Z$/)) {\n this.setString(params);\n }\n else if (params.hex !== undefined) {\n this.setStringHex(params.hex);\n }\n else if (params.date !== undefined) {\n this.setByDate(params.date);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERUTCTime, KJUR.asn1.DERAbstractTime);\n// ********************************************************************\n/**\n * class for ASN.1 DER GeneralizedTime\n * @name KJUR.asn1.DERGeneralizedTime\n * @class class for ASN.1 DER GeneralizedTime\n * @param {Array} params associative array of parameters (ex. {'str': '20130430235959Z'})\n * @property {Boolean} withMillis flag to show milliseconds or not\n * @extends KJUR.asn1.DERAbstractTime\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • str - specify initial ASN.1 value(V) by a string (ex.'20130430235959Z')
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
  • date - specify Date object.
  • \n *
  • millis - specify flag to show milliseconds (from 1.0.6)
  • \n *
\n * NOTE1: 'params' can be omitted.\n * NOTE2: 'withMillis' property is supported from asn1 1.0.6.\n */\nKJUR.asn1.DERGeneralizedTime = function (params) {\n KJUR.asn1.DERGeneralizedTime.superclass.constructor.call(this, params);\n this.hT = \"18\";\n this.withMillis = false;\n /**\n * set value by a Date object\n * @name setByDate\n * @memberOf KJUR.asn1.DERGeneralizedTime#\n * @function\n * @param {Date} dateObject Date object to set ASN.1 value(V)\n * @example\n * When you specify UTC time, use 'Date.UTC' method like this:
\n * o1 = new DERUTCTime();\n * o1.setByDate(date);\n *\n * date = new Date(Date.UTC(2015, 0, 31, 23, 59, 59, 0)); #2015JAN31 23:59:59\n */\n this.setByDate = function (dateObject) {\n this.hTLV = null;\n this.isModified = true;\n this.date = dateObject;\n this.s = this.formatDate(this.date, 'gen', this.withMillis);\n this.hV = stohex(this.s);\n };\n this.getFreshValueHex = function () {\n if (this.date === undefined && this.s === undefined) {\n this.date = new Date();\n this.s = this.formatDate(this.date, 'gen', this.withMillis);\n this.hV = stohex(this.s);\n }\n return this.hV;\n };\n if (params !== undefined) {\n if (params.str !== undefined) {\n this.setString(params.str);\n }\n else if (typeof params == \"string\" && params.match(/^[0-9]{14}Z$/)) {\n this.setString(params);\n }\n else if (params.hex !== undefined) {\n this.setStringHex(params.hex);\n }\n else if (params.date !== undefined) {\n this.setByDate(params.date);\n }\n if (params.millis === true) {\n this.withMillis = true;\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERGeneralizedTime, KJUR.asn1.DERAbstractTime);\n// ********************************************************************\n/**\n * class for ASN.1 DER Sequence\n * @name KJUR.asn1.DERSequence\n * @class class for ASN.1 DER Sequence\n * @extends KJUR.asn1.DERAbstractStructured\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • array - specify array of ASN1Object to set elements of content
  • \n *
\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERSequence = function (params) {\n KJUR.asn1.DERSequence.superclass.constructor.call(this, params);\n this.hT = \"30\";\n this.getFreshValueHex = function () {\n var h = '';\n for (var i = 0; i < this.asn1Array.length; i++) {\n var asn1Obj = this.asn1Array[i];\n h += asn1Obj.getEncodedHex();\n }\n this.hV = h;\n return this.hV;\n };\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERSequence, KJUR.asn1.DERAbstractStructured);\n// ********************************************************************\n/**\n * class for ASN.1 DER Set\n * @name KJUR.asn1.DERSet\n * @class class for ASN.1 DER Set\n * @extends KJUR.asn1.DERAbstractStructured\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • array - specify array of ASN1Object to set elements of content
  • \n *
  • sortflag - flag for sort (default: true). ASN.1 BER is not sorted in 'SET OF'.
  • \n *
\n * NOTE1: 'params' can be omitted.
\n * NOTE2: sortflag is supported since 1.0.5.\n */\nKJUR.asn1.DERSet = function (params) {\n KJUR.asn1.DERSet.superclass.constructor.call(this, params);\n this.hT = \"31\";\n this.sortFlag = true; // item shall be sorted only in ASN.1 DER\n this.getFreshValueHex = function () {\n var a = new Array();\n for (var i = 0; i < this.asn1Array.length; i++) {\n var asn1Obj = this.asn1Array[i];\n a.push(asn1Obj.getEncodedHex());\n }\n if (this.sortFlag == true)\n a.sort();\n this.hV = a.join('');\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params.sortflag != \"undefined\" &&\n params.sortflag == false)\n this.sortFlag = false;\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERSet, KJUR.asn1.DERAbstractStructured);\n// ********************************************************************\n/**\n * class for ASN.1 DER TaggedObject\n * @name KJUR.asn1.DERTaggedObject\n * @class class for ASN.1 DER TaggedObject\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * Parameter 'tagNoNex' is ASN.1 tag(T) value for this object.\n * For example, if you find '[1]' tag in a ASN.1 dump,\n * 'tagNoHex' will be 'a1'.\n *
\n * As for optional argument 'params' for constructor, you can specify *ANY* of\n * following properties:\n *
    \n *
  • explicit - specify true if this is explicit tag otherwise false\n * (default is 'true').
  • \n *
  • tag - specify tag (default is 'a0' which means [0])
  • \n *
  • obj - specify ASN1Object which is tagged
  • \n *
\n * @example\n * d1 = new KJUR.asn1.DERUTF8String({'str':'a'});\n * d2 = new KJUR.asn1.DERTaggedObject({'obj': d1});\n * hex = d2.getEncodedHex();\n */\nKJUR.asn1.DERTaggedObject = function (params) {\n KJUR.asn1.DERTaggedObject.superclass.constructor.call(this);\n this.hT = \"a0\";\n this.hV = '';\n this.isExplicit = true;\n this.asn1Object = null;\n /**\n * set value by an ASN1Object\n * @name setString\n * @memberOf KJUR.asn1.DERTaggedObject#\n * @function\n * @param {Boolean} isExplicitFlag flag for explicit/implicit tag\n * @param {Integer} tagNoHex hexadecimal string of ASN.1 tag\n * @param {ASN1Object} asn1Object ASN.1 to encapsulate\n */\n this.setASN1Object = function (isExplicitFlag, tagNoHex, asn1Object) {\n this.hT = tagNoHex;\n this.isExplicit = isExplicitFlag;\n this.asn1Object = asn1Object;\n if (this.isExplicit) {\n this.hV = this.asn1Object.getEncodedHex();\n this.hTLV = null;\n this.isModified = true;\n }\n else {\n this.hV = null;\n this.hTLV = asn1Object.getEncodedHex();\n this.hTLV = this.hTLV.replace(/^../, tagNoHex);\n this.isModified = false;\n }\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params['tag'] != \"undefined\") {\n this.hT = params['tag'];\n }\n if (typeof params['explicit'] != \"undefined\") {\n this.isExplicit = params['explicit'];\n }\n if (typeof params['obj'] != \"undefined\") {\n this.asn1Object = params['obj'];\n this.setASN1Object(this.isExplicit, this.hT, this.asn1Object);\n }\n }\n};\n_yahoo__WEBPACK_IMPORTED_MODULE_1__.YAHOO.lang.extend(KJUR.asn1.DERTaggedObject, KJUR.asn1.ASN1Object);\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsrsasign/asn1-1.0.js?"); + +/***/ }), + +/***/ "./lib/lib/jsrsasign/yahoo.js": +/*!************************************!*\ + !*** ./lib/lib/jsrsasign/yahoo.js ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"YAHOO\": () => (/* binding */ YAHOO)\n/* harmony export */ });\n/*!\nCopyright (c) 2011, Yahoo! Inc. All rights reserved.\nCode licensed under the BSD License:\nhttp://developer.yahoo.com/yui/license.html\nversion: 2.9.0\n*/\nvar YAHOO = {};\nYAHOO.lang = {\n /**\n * Utility to set up the prototype, constructor and superclass properties to\n * support an inheritance strategy that can chain constructors and methods.\n * Static members will not be inherited.\n *\n * @method extend\n * @static\n * @param {Function} subc the object to modify\n * @param {Function} superc the object to inherit\n * @param {Object} overrides additional properties/methods to add to the\n * subclass prototype. These will override the\n * matching items obtained from the superclass\n * if present.\n */\n extend: function (subc, superc, overrides) {\n if (!superc || !subc) {\n throw new Error(\"YAHOO.lang.extend failed, please check that \" +\n \"all dependencies are included.\");\n }\n var F = function () { };\n F.prototype = superc.prototype;\n subc.prototype = new F();\n subc.prototype.constructor = subc;\n subc.superclass = superc.prototype;\n if (superc.prototype.constructor == Object.prototype.constructor) {\n superc.prototype.constructor = superc;\n }\n if (overrides) {\n var i;\n for (i in overrides) {\n subc.prototype[i] = overrides[i];\n }\n /*\n * IE will not enumerate native functions in a derived object even if the\n * function was overridden. This is a workaround for specific functions\n * we care about on the Object prototype.\n * @property _IEEnumFix\n * @param {Function} r the object to receive the augmentation\n * @param {Function} s the object that supplies the properties to augment\n * @static\n * @private\n */\n var _IEEnumFix = function () { }, ADD = [\"toString\", \"valueOf\"];\n try {\n if (/MSIE/.test(navigator.userAgent)) {\n _IEEnumFix = function (r, s) {\n for (i = 0; i < ADD.length; i = i + 1) {\n var fname = ADD[i], f = s[fname];\n if (typeof f === 'function' && f != Object.prototype[fname]) {\n r[fname] = f;\n }\n }\n };\n }\n }\n catch (ex) { }\n ;\n _IEEnumFix(subc.prototype, overrides);\n }\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsrsasign/yahoo.js?"); + +/***/ }), + +/***/ "./node_modules/process/browser.js": +/*!*****************************************!*\ + !*** ./node_modules/process/browser.js ***! + \*****************************************/ +/***/ ((module) => { + +eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//# sourceURL=webpack://JSEncrypt/./node_modules/process/browser.js?"); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module can't be inlined because the eval devtool is used. +/******/ var __webpack_exports__ = __webpack_require__("./lib/index.js"); +/******/ __webpack_exports__ = __webpack_exports__["default"]; +/******/ +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/zyplayer/drpy_dzlive/drpy_libs/node-rsa.js b/zyplayer/drpy_dzlive/drpy_libs/node-rsa.js new file mode 100644 index 0000000..b5ca093 --- /dev/null +++ b/zyplayer/drpy_dzlive/drpy_libs/node-rsa.js @@ -0,0 +1,2 @@ +/*! For license information please see node-rsa.bundle.js.LICENSE.txt */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.NODERSA=e():t.NODERSA=e()}(globalThis,(()=>(()=>{var t={6395:t=>{t.exports={newInvalidAsn1Error:function(t){var e=new Error;return e.name="InvalidAsn1Error",e.message=t||"",e}}},5670:(t,e,r)=>{var n=r(6395),i=r(6299),o=r(3319),s=r(1431);for(var a in t.exports={Reader:o,Writer:s},i)i.hasOwnProperty(a)&&(t.exports[a]=i[a]);for(var f in n)n.hasOwnProperty(f)&&(t.exports[f]=n[f])},3319:(t,e,r)=>{var n=r(4529),i=r(4774).Buffer,o=r(6299),s=r(6395).newInvalidAsn1Error;function a(t){if(!t||!i.isBuffer(t))throw new TypeError("data must be a node Buffer");this._buf=t,this._size=t.length,this._len=0,this._offset=0}Object.defineProperty(a.prototype,"length",{enumerable:!0,get:function(){return this._len}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){return this._offset}}),Object.defineProperty(a.prototype,"remain",{get:function(){return this._size-this._offset}}),Object.defineProperty(a.prototype,"buffer",{get:function(){return this._buf.slice(this._offset)}}),a.prototype.readByte=function(t){if(this._size-this._offset<1)return null;var e=255&this._buf[this._offset];return t||(this._offset+=1),e},a.prototype.peek=function(){return this.readByte(!0)},a.prototype.readLength=function(t){if(void 0===t&&(t=this._offset),t>=this._size)return null;var e=255&this._buf[t++];if(null===e)return null;if(128&~e)this._len=e;else{if(0==(e&=127))throw s("Indefinite length not supported");if(e>4)throw s("encoding too long");if(this._size-tthis._size-n)return null;if(this._offset=n,0===this.length)return e?i.alloc(0):"";var a=this._buf.slice(this._offset,this._offset+this.length);return this._offset+=this.length,e?a:a.toString("utf8")},a.prototype.readOID=function(t){t||(t=o.OID);var e=this.readString(t,!0);if(null===e)return null;for(var r=[],n=0,i=0;i4)throw s("Integer too long: "+this.length);if(this.length>this._size-r)return null;this._offset=r;for(var i=this._buf[this._offset],o=0,a=0;a{t.exports={EOC:0,Boolean:1,Integer:2,BitString:3,OctetString:4,Null:5,OID:6,ObjectDescriptor:7,External:8,Real:9,Enumeration:10,PDV:11,Utf8String:12,RelativeOID:13,Sequence:16,Set:17,NumericString:18,PrintableString:19,T61String:20,VideotexString:21,IA5String:22,UTCTime:23,GeneralizedTime:24,GraphicString:25,VisibleString:26,GeneralString:28,UniversalString:29,CharacterString:30,BMPString:31,Constructor:32,Context:128}},1431:(t,e,r)=>{var n=r(4529),i=r(4774).Buffer,o=r(6299),s=r(6395).newInvalidAsn1Error,a={size:1024,growthFactor:8};function f(t){var e,r;e=a,r=t||{},n.ok(e),n.equal(typeof e,"object"),n.ok(r),n.equal(typeof r,"object"),Object.getOwnPropertyNames(e).forEach((function(t){if(!r[t]){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n)}})),t=r,this._buf=i.alloc(t.size||1024),this._size=this._buf.length,this._offset=0,this._options=t,this._seq=[]}Object.defineProperty(f.prototype,"buffer",{get:function(){if(this._seq.length)throw s(this._seq.length+" unended sequence(s)");return this._buf.slice(0,this._offset)}}),f.prototype.writeByte=function(t){if("number"!=typeof t)throw new TypeError("argument must be a Number");this._ensure(1),this._buf[this._offset++]=t},f.prototype.writeInt=function(t,e){if("number"!=typeof t)throw new TypeError("argument must be a Number");"number"!=typeof e&&(e=o.Integer);for(var r=4;(!(4286578688&t)||-8388608==(4286578688&t))&&r>1;)r--,t<<=8;if(r>4)throw s("BER ints cannot be > 0xffffffff");for(this._ensure(2+r),this._buf[this._offset++]=e,this._buf[this._offset++]=r;r-- >0;)this._buf[this._offset++]=(4278190080&t)>>>24,t<<=8},f.prototype.writeNull=function(){this.writeByte(o.Null),this.writeByte(0)},f.prototype.writeEnumeration=function(t,e){if("number"!=typeof t)throw new TypeError("argument must be a Number");return"number"!=typeof e&&(e=o.Enumeration),this.writeInt(t,e)},f.prototype.writeBoolean=function(t,e){if("boolean"!=typeof t)throw new TypeError("argument must be a Boolean");"number"!=typeof e&&(e=o.Boolean),this._ensure(3),this._buf[this._offset++]=e,this._buf[this._offset++]=1,this._buf[this._offset++]=t?255:0},f.prototype.writeString=function(t,e){if("string"!=typeof t)throw new TypeError("argument must be a string (was: "+typeof t+")");"number"!=typeof e&&(e=o.OctetString);var r=i.byteLength(t);this.writeByte(e),this.writeLength(r),r&&(this._ensure(r),this._buf.write(t,this._offset),this._offset+=r)},f.prototype.writeBuffer=function(t,e){if("number"!=typeof e)throw new TypeError("tag must be a number");if(!i.isBuffer(t))throw new TypeError("argument must be a buffer");this.writeByte(e),this.writeLength(t.length),this._ensure(t.length),t.copy(this._buf,this._offset,0,t.length),this._offset+=t.length},f.prototype.writeStringArray=function(t){if(!t instanceof Array)throw new TypeError("argument must be an Array[String]");var e=this;t.forEach((function(t){e.writeString(t)}))},f.prototype.writeOID=function(t,e){if("string"!=typeof t)throw new TypeError("argument must be a string");if("number"!=typeof e&&(e=o.OID),!/^([0-9]+\.){3,}[0-9]+$/.test(t))throw new Error("argument is not a valid OID string");var r=t.split("."),n=[];n.push(40*parseInt(r[0],10)+parseInt(r[1],10)),r.slice(2).forEach((function(t){!function(t,e){e<128?t.push(e):e<16384?(t.push(e>>>7|128),t.push(127&e)):e<2097152?(t.push(e>>>14|128),t.push(e>>>7&255|128),t.push(127&e)):e<268435456?(t.push(e>>>21|128),t.push(e>>>14&255|128),t.push(e>>>7&255|128),t.push(127&e)):(t.push(e>>>28&255|128),t.push(e>>>21&255|128),t.push(e>>>14&255|128),t.push(e>>>7&255|128),t.push(127&e))}(n,parseInt(t,10))}));var i=this;this._ensure(2+n.length),this.writeByte(e),this.writeLength(n.length),n.forEach((function(t){i.writeByte(t)}))},f.prototype.writeLength=function(t){if("number"!=typeof t)throw new TypeError("argument must be a Number");if(this._ensure(4),t<=127)this._buf[this._offset++]=t;else if(t<=255)this._buf[this._offset++]=129,this._buf[this._offset++]=t;else if(t<=65535)this._buf[this._offset++]=130,this._buf[this._offset++]=t>>8,this._buf[this._offset++]=t;else{if(!(t<=16777215))throw s("Length too long (> 4 bytes)");this._buf[this._offset++]=131,this._buf[this._offset++]=t>>16,this._buf[this._offset++]=t>>8,this._buf[this._offset++]=t}},f.prototype.startSequence=function(t){"number"!=typeof t&&(t=o.Sequence|o.Constructor),this.writeByte(t),this._seq.push(this._offset),this._ensure(3),this._offset+=3},f.prototype.endSequence=function(){var t=this._seq.pop(),e=t+3,r=this._offset-e;if(r<=127)this._shift(e,r,-2),this._buf[t]=r;else if(r<=255)this._shift(e,r,-1),this._buf[t]=129,this._buf[t+1]=r;else if(r<=65535)this._buf[t]=130,this._buf[t+1]=r>>8,this._buf[t+2]=r;else{if(!(r<=16777215))throw s("Sequence too long");this._shift(e,r,1),this._buf[t]=131,this._buf[t+1]=r>>16,this._buf[t+2]=r>>8,this._buf[t+3]=r}},f.prototype._shift=function(t,e,r){n.ok(void 0!==t),n.ok(void 0!==e),n.ok(r),this._buf.copy(this._buf,t+r,t,t+e),this._offset+=r},f.prototype._ensure=function(t){if(n.ok(t),this._size-this._offset{var n=r(5670);t.exports={Ber:n,BerReader:n.Reader,BerWriter:n.Writer}},4529:(t,e,r)=>{"use strict";var n=r(1514)();function i(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,o=Math.min(r,n);i=0;u--)if(c[u]!==h[u])return!1;for(u=c.length-1;u>=0;u--)if(!S(t[a=c[u]],e[a],r,n))return!1;return!0}(t,e,r,n))}return r?t===e:t==e}function _(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function b(t,e){if(!t||!e)return!1;if("[object RegExp]"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function E(t,e,r,n){var i;if("function"!=typeof e)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),t&&!i&&v(i,r,"Missing expected exception"+n);var o="string"==typeof n,a=!t&&i&&!r;if((!t&&s.isError(i)&&o&&b(i,r)||a)&&v(i,r,"Got unwanted exception"+n),t&&i&&r&&!b(i,r)||!t&&i)throw i}p.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=g(d(this.actual),128)+" "+this.operator+" "+g(d(this.expected),128),this.generatedMessage=!0);var e=t.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,e);else{var r=new Error;if(r.stack){var n=r.stack,i=y(e),o=n.indexOf("\n"+i);if(o>=0){var s=n.indexOf("\n",o+1);n=n.substring(s+1)}this.stack=n}}},s.inherits(p.AssertionError,Error),p.fail=v,p.ok=m,p.equal=function(t,e,r){t!=e&&v(t,e,r,"==",p.equal)},p.notEqual=function(t,e,r){t==e&&v(t,e,r,"!=",p.notEqual)},p.deepEqual=function(t,e,r){S(t,e,!1)||v(t,e,r,"deepEqual",p.deepEqual)},p.deepStrictEqual=function(t,e,r){S(t,e,!0)||v(t,e,r,"deepStrictEqual",p.deepStrictEqual)},p.notDeepEqual=function(t,e,r){S(t,e,!1)&&v(t,e,r,"notDeepEqual",p.notDeepEqual)},p.notDeepStrictEqual=function t(e,r,n){S(e,r,!0)&&v(e,r,n,"notDeepStrictEqual",t)},p.strictEqual=function(t,e,r){t!==e&&v(t,e,r,"===",p.strictEqual)},p.notStrictEqual=function(t,e,r){t===e&&v(t,e,r,"!==",p.notStrictEqual)},p.throws=function(t,e,r){E(!0,t,e,r)},p.doesNotThrow=function(t,e,r){E(!1,t,e,r)},p.ifError=function(t){if(t)throw t},p.strict=n((function t(e,r){e||v(e,!0,r,"==",t)}),p,{equal:p.strictEqual,deepEqual:p.deepStrictEqual,notEqual:p.notStrictEqual,notDeepEqual:p.notDeepStrictEqual}),p.strict.strict=p.strict;var w=Object.keys||function(t){var e=[];for(var r in t)a.call(t,r)&&e.push(r);return e}},6100:t=>{"function"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}},3845:t=>{t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},4591:(t,e,r)=>{var n=r(5606),i=/%[sdj%]/g;e.format=function(t){if(!v(t)){for(var e=[],r=0;r=o)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),f=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),y(r)?n.showHidden=r:r&&e._extend(n,r),m(n.showHidden)&&(n.showHidden=!1),m(n.depth)&&(n.depth=2),m(n.colors)&&(n.colors=!1),m(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=f),c(n,t,n.depth)}function f(t,e){var r=a.styles[e];return r?"["+a.colors[r][0]+"m"+t+"["+a.colors[r][1]+"m":t}function u(t,e){return t}function c(t,r,n){if(t.customInspect&&r&&w(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,t);return v(i)||(i=c(t,i,n)),i}var o=function(t,e){if(m(e))return t.stylize("undefined","undefined");if(v(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return d(e)?t.stylize(""+e,"number"):y(e)?t.stylize(""+e,"boolean"):g(e)?t.stylize("null","null"):void 0}(t,r);if(o)return o;var s=Object.keys(r),a=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(r)),E(r)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return h(r);if(0===s.length){if(w(r)){var f=r.name?": "+r.name:"";return t.stylize("[Function"+f+"]","special")}if(S(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(b(r))return t.stylize(Date.prototype.toString.call(r),"date");if(E(r))return h(r)}var u,_="",O=!1,B=["{","}"];return l(r)&&(O=!0,B=["[","]"]),w(r)&&(_=" [Function"+(r.name?": "+r.name:"")+"]"),S(r)&&(_=" "+RegExp.prototype.toString.call(r)),b(r)&&(_=" "+Date.prototype.toUTCString.call(r)),E(r)&&(_=" "+h(r)),0!==s.length||O&&0!=r.length?n<0?S(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),u=O?function(t,e,r,n,i){for(var o=[],s=0,a=e.length;s60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}(u,_,B)):B[0]+_+B[1]}function h(t){return"["+Error.prototype.toString.call(t)+"]"}function p(t,e,r,n,i,o){var s,a,f;if((f=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?a=f.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):f.set&&(a=t.stylize("[Setter]","special")),x(n,i)||(s="["+i+"]"),a||(t.seen.indexOf(f.value)<0?(a=g(r)?c(t,f.value,null):c(t,f.value,r-1)).indexOf("\n")>-1&&(a=o?a.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+a.split("\n").map((function(t){return" "+t})).join("\n")):a=t.stylize("[Circular]","special")),m(s)){if(o&&i.match(/^\d+$/))return a;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=t.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=t.stylize(s,"string"))}return s+": "+a}function l(t){return Array.isArray(t)}function y(t){return"boolean"==typeof t}function g(t){return null===t}function d(t){return"number"==typeof t}function v(t){return"string"==typeof t}function m(t){return void 0===t}function S(t){return _(t)&&"[object RegExp]"===O(t)}function _(t){return"object"==typeof t&&null!==t}function b(t){return _(t)&&"[object Date]"===O(t)}function E(t){return _(t)&&("[object Error]"===O(t)||t instanceof Error)}function w(t){return"function"==typeof t}function O(t){return Object.prototype.toString.call(t)}function B(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(m(o)&&(o=n.env.NODE_DEBUG||""),t=t.toUpperCase(),!s[t])if(new RegExp("\\b"+t+"\\b","i").test(o)){var r=n.pid;s[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else s[t]=function(){};return s[t]},e.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.isArray=l,e.isBoolean=y,e.isNull=g,e.isNullOrUndefined=function(t){return null==t},e.isNumber=d,e.isString=v,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=m,e.isRegExp=S,e.isObject=_,e.isDate=b,e.isError=E,e.isFunction=w,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(3845);var A=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function x(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){var t,r;console.log("%s - %s",(r=[B((t=new Date).getHours()),B(t.getMinutes()),B(t.getSeconds())].join(":"),[t.getDate(),A[t.getMonth()],r].join(" ")),e.format.apply(e,arguments))},e.inherits=r(6100),e._extend=function(t,e){if(!e||!_(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}},7526:(t,e)=>{"use strict";e.byteLength=function(t){var e=a(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,o=a(t),s=o[0],f=o[1],u=new i(function(t,e,r){return 3*(e+r)/4-r}(0,s,f)),c=0,h=f>0?s-4:s;for(r=0;r>16&255,u[c++]=e>>8&255,u[c++]=255&e;return 2===f&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[c++]=255&e),1===f&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[c++]=e>>8&255,u[c++]=255&e),u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,o=[],s=16383,a=0,u=n-i;au?u:a+s));return 1===i?(e=t[n-1],o.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],o.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),o.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)r[s]=o[s],n[o.charCodeAt(s)]=s;function a(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function f(t,e,n){for(var i,o,s=[],a=e;a>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return s.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},8287:(t,e,r)=>{"use strict";var n=r(7526),i=r(251);e.Buffer=a,e.SlowBuffer=function(t){return+t!=t&&(t=0),a.alloc(+t)},e.INSPECT_MAX_BYTES=50;var o=2147483647;function s(t){if(t>o)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return e.__proto__=a.prototype,e}function a(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return c(t)}return f(t,e,r)}function f(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!a.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=0|l(t,e),n=s(r),i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return h(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(H(t,ArrayBuffer)||t&&H(t.buffer,ArrayBuffer))return function(t,e,r){if(e<0||t.byteLength=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|t}function l(t,e){if(a.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||H(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return U(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return M(t).length;default:if(i)return n?-1:U(t).length;e=(""+e).toLowerCase(),i=!0}}function y(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return T(this,e,r);case"utf8":case"utf-8":return B(this,e,r);case"ascii":return x(this,e,r);case"latin1":case"binary":return P(this,e,r);case"base64":return O(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function g(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function d(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),F(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=a.from(e,n)),a.isBuffer(e))return 0===e.length?-1:v(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):v(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function v(t,e,r,n,i){var o,s=1,a=t.length,f=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,f/=2,r/=2}function u(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var c=-1;for(o=r;oa&&(r=a-f),o=r;o>=0;o--){for(var h=!0,p=0;pi&&(n=i):n=i;var o=e.length;n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function O(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function B(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:u>223?3:u>191?2:1;if(i+h<=r)switch(h){case 1:u<128&&(c=u);break;case 2:128==(192&(o=t[i+1]))&&(f=(31&u)<<6|63&o)>127&&(c=f);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(f=(15&u)<<12|(63&o)<<6|63&s)>2047&&(f<55296||f>57343)&&(c=f);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(f=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&f<1114112&&(c=f)}null===c?(c=65533,h=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),i+=h}return function(t){var e=t.length;if(e<=A)return String.fromCharCode.apply(String,t);for(var r="",n=0;nr&&(t+=" ... "),""},a.prototype.compare=function(t,e,r,n,i){if(H(t,Uint8Array)&&(t=a.from(t,t.offset,t.byteLength)),!a.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),f=Math.min(o,s),u=this.slice(n,i),c=t.slice(e,r),h=0;h>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return m(this,t,e,r);case"utf8":case"utf-8":return S(this,t,e,r);case"ascii":return _(this,t,e,r);case"latin1":case"binary":return b(this,t,e,r);case"base64":return E(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var A=4096;function x(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;ii)&&(r=i);for(var o="",s=e;sr)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,r,n,i,o){if(!a.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function R(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function N(t,e,r,n,o){return e=+e,r>>>=0,o||R(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function L(t,e,r,n,o){return e=+e,r>>>=0,o||R(t,0,r,8),i.write(t,e,r,n,52,8),r+8}a.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||k(t,e,this.length);for(var n=this[t],i=1,o=0;++o>>=0,e>>>=0,r||k(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},a.prototype.readUInt8=function(t,e){return t>>>=0,e||k(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return t>>>=0,e||k(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return t>>>=0,e||k(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return t>>>=0,e||k(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return t>>>=0,e||k(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||k(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},a.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||k(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},a.prototype.readInt8=function(t,e){return t>>>=0,e||k(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},a.prototype.readInt16LE=function(t,e){t>>>=0,e||k(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(t,e){t>>>=0,e||k(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(t,e){return t>>>=0,e||k(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return t>>>=0,e||k(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return t>>>=0,e||k(t,4,this.length),i.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return t>>>=0,e||k(t,4,this.length),i.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return t>>>=0,e||k(t,8,this.length),i.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return t>>>=0,e||k(t,8,this.length),i.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||D(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o>>=0,r>>>=0,n||D(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},a.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,1,255,0),this[e]=255&t,e+1},a.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},a.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},a.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},a.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},a.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);D(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>>=0,!n){var i=Math.pow(2,8*r-1);D(this,t,e,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s|0)-a&255;return e+r},a.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},a.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},a.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},a.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},a.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},a.prototype.writeFloatLE=function(t,e,r){return N(this,t,e,!0,r)},a.prototype.writeFloatBE=function(t,e,r){return N(this,t,e,!1,r)},a.prototype.writeDoubleLE=function(t,e,r){return L(this,t,e,!0,r)},a.prototype.writeDoubleBE=function(t,e,r){return L(this,t,e,!1,r)},a.prototype.copy=function(t,e,r,n){if(!a.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--o)t[o+e]=this[o+r];else Uint8Array.prototype.set.call(t,this.subarray(r,n),e);return i},a.prototype.fill=function(t,e,r,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!a.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){var i=t.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(t=i)}}else"number"==typeof t&&(t&=255);if(e<0||this.length>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function M(t){return n.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(C,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function j(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function H(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function F(t){return t!=t}},8075:(t,e,r)=>{"use strict";var n=r(453),i=r(487),o=i(n("String.prototype.indexOf"));t.exports=function(t,e){var r=n(t,!!e);return"function"==typeof r&&o(t,".prototype.")>-1?i(r):r}},487:(t,e,r)=>{"use strict";var n=r(6743),i=r(453),o=r(6897),s=r(9675),a=i("%Function.prototype.apply%"),f=i("%Function.prototype.call%"),u=i("%Reflect.apply%",!0)||n.call(f,a),c=r(655),h=i("%Math.max%");t.exports=function(t){if("function"!=typeof t)throw new s("a function is required");var e=u(n,f,arguments);return o(e,1+h(0,t.length-(arguments.length-1)),!0)};var p=function(){return u(n,a,arguments)};c?c(t.exports,"apply",{value:p}):t.exports.apply=p},955:function(t,e,r){var n;t.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var t=n,e=t.lib.BlockCipher,r=t.algo,i=[],o=[],s=[],a=[],f=[],u=[],c=[],h=[],p=[],l=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;var r=0,n=0;for(e=0;e<256;e++){var y=n^n<<1^n<<2^n<<3^n<<4;y=y>>>8^255&y^99,i[r]=y,o[y]=r;var g=t[r],d=t[g],v=t[d],m=257*t[y]^16843008*y;s[r]=m<<24|m>>>8,a[r]=m<<16|m>>>16,f[r]=m<<8|m>>>24,u[r]=m,m=16843009*v^65537*d^257*g^16843008*r,c[y]=m<<24|m>>>8,h[y]=m<<16|m>>>16,p[y]=m<<8|m>>>24,l[y]=m,r?(r=g^t[t[t[v^g]]],n^=t[t[n]]):r=n=1}}();var y=[0,1,2,4,8,16,32,64,128,27,54],g=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*((this._nRounds=r+6)+1),o=this._keySchedule=[],s=0;s6&&s%r==4&&(a=i[a>>>24]<<24|i[a>>>16&255]<<16|i[a>>>8&255]<<8|i[255&a]):(a=i[(a=a<<8|a>>>24)>>>24]<<24|i[a>>>16&255]<<16|i[a>>>8&255]<<8|i[255&a],a^=y[s/r|0]<<24),o[s]=o[s-r]^a}for(var f=this._invKeySchedule=[],u=0;u>>24]]^h[i[a>>>16&255]]^p[i[a>>>8&255]]^l[i[255&a]]}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,s,a,f,u,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,c,h,p,l,o),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,n,i,o,s,a){for(var f=this._nRounds,u=t[e]^r[0],c=t[e+1]^r[1],h=t[e+2]^r[2],p=t[e+3]^r[3],l=4,y=1;y>>24]^i[c>>>16&255]^o[h>>>8&255]^s[255&p]^r[l++],d=n[c>>>24]^i[h>>>16&255]^o[p>>>8&255]^s[255&u]^r[l++],v=n[h>>>24]^i[p>>>16&255]^o[u>>>8&255]^s[255&c]^r[l++],m=n[p>>>24]^i[u>>>16&255]^o[c>>>8&255]^s[255&h]^r[l++];u=g,c=d,h=v,p=m}g=(a[u>>>24]<<24|a[c>>>16&255]<<16|a[h>>>8&255]<<8|a[255&p])^r[l++],d=(a[c>>>24]<<24|a[h>>>16&255]<<16|a[p>>>8&255]<<8|a[255&u])^r[l++],v=(a[h>>>24]<<24|a[p>>>16&255]<<16|a[u>>>8&255]<<8|a[255&c])^r[l++],m=(a[p>>>24]<<24|a[u>>>16&255]<<16|a[c>>>8&255]<<8|a[255&h])^r[l++],t[e]=g,t[e+1]=d,t[e+2]=v,t[e+3]=m},keySize:8});t.AES=e._createHelper(g)}(),n.AES)},7165:function(t,e,r){var n,i,o,s,a,f,u,c,h,p,l,y,g,d,v,m,S,_,b;t.exports=(n=r(9021),r(9506),void(n.lib.Cipher||(i=n,o=i.lib,s=o.Base,a=o.WordArray,f=o.BufferedBlockAlgorithm,u=i.enc,u.Utf8,c=u.Base64,h=i.algo.EvpKDF,p=o.Cipher=f.extend({cfg:s.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){f.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?b:S}return function(e){return{encrypt:function(r,n,i){return t(n).encrypt(e,r,n,i)},decrypt:function(r,n,i){return t(n).decrypt(e,r,n,i)}}}}()}),o.StreamCipher=p.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),l=i.mode={},y=o.BlockCipherMode=s.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),g=l.CBC=function(){var t=y.extend();function e(t,e,r){var n=this._iv;if(n){var i=n;this._iv=void 0}else i=this._prevBlock;for(var o=0;o>>2];t.sigBytes-=e}},o.BlockCipher=p.extend({cfg:p.cfg.extend({mode:g,padding:d}),reset:function(){p.reset.call(this);var t=this.cfg,e=t.iv,r=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=r.createEncryptor;else n=r.createDecryptor,this._minBufferSize=1;this._mode&&this._mode.__creator==n?this._mode.init(this,e&&e.words):(this._mode=n.call(r,this,e&&e.words),this._mode.__creator=n)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var e=this._process(!0)}else e=this._process(!0),t.unpad(e);return e},blockSize:4}),v=o.CipherParams=s.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}}),m=(i.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;if(r)var n=a.create([1398893684,1701076831]).concat(r).concat(e);else n=e;return n.toString(c)},parse:function(t){var e=c.parse(t),r=e.words;if(1398893684==r[0]&&1701076831==r[1]){var n=a.create(r.slice(2,4));r.splice(0,4),e.sigBytes-=16}return v.create({ciphertext:e,salt:n})}},S=o.SerializableCipher=s.extend({cfg:s.extend({format:m}),encrypt:function(t,e,r,n){n=this.cfg.extend(n);var i=t.createEncryptor(r,n),o=i.finalize(e),s=i.cfg;return v.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:n.format})},decrypt:function(t,e,r,n){return n=this.cfg.extend(n),e=this._parse(e,n.format),t.createDecryptor(r,n).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),_=(i.kdf={}).OpenSSL={execute:function(t,e,r,n){n||(n=a.random(8));var i=h.create({keySize:e+r}).compute(t,n),o=a.create(i.words.slice(e),4*r);return i.sigBytes=4*e,v.create({key:i,iv:o,salt:n})}},b=o.PasswordBasedCipher=S.extend({cfg:S.cfg.extend({kdf:_}),encrypt:function(t,e,r,n){var i=(n=this.cfg.extend(n)).kdf.execute(r,t.keySize,t.ivSize);n.iv=i.iv;var o=S.encrypt.call(this,t,e,i.key,n);return o.mixIn(i),o},decrypt:function(t,e,r,n){n=this.cfg.extend(n),e=this._parse(e,n.format);var i=n.kdf.execute(r,t.keySize,t.ivSize,e.salt);return n.iv=i.iv,S.decrypt.call(this,t,e,i.key,n)}}))))},9021:function(t,e){var r;t.exports=(r=r||function(t,e){var r=Object.create||function(){function t(){}return function(e){var r;return t.prototype=e,r=new t,t.prototype=null,r}}(),n={},i=n.lib={},o=i.Base={extend:function(t){var e=r(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},s=i.WordArray=o.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||f).stringify(this)},concat:function(t){var e=this.words,r=t.words,n=this.sigBytes,i=t.sigBytes;if(this.clamp(),n%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[n+o>>>2]|=s<<24-(n+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var r,n=[],i=function(e){var r=987654321,n=4294967295;return function(){var i=((r=36969*(65535&r)+(r>>16)&n)<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n;return i/=4294967296,(i+=.5)*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new s.init(r,e/2)}},u=a.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new s.init(r,e)}},c=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(u.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return u.parse(unescape(encodeURIComponent(t)))}},h=i.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=c.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,a=i/(4*o),f=(a=e?t.ceil(a):t.max((0|a)-this._minBufferSize,0))*o,u=t.min(4*f,i);if(f){for(var c=0;c>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;a<4&&o+.75*a>>6*(3-a)&63));var f=n.charAt(64);if(f)for(;i.length%4;)i.push(f);return i.join("")},parse:function(t){var e=t.length,r=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var i=0;i>>6-s%4*2;n[i>>>2]|=(a|f)<<24-i%4*8,i++}return o.create(n,i)}(t,e,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},n.enc.Base64)},5503:function(t,e,r){var n;t.exports=(n=r(9021),function(){var t=n,e=t.lib.WordArray,r=t.enc;function i(t){return t<<8&4278255360|t>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i>>2]>>>16-i%4*8&65535;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var r=t.length,n=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return e.create(n,2*r)}},r.Utf16LE={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(t){for(var r=t.length,n=[],o=0;o>>1]|=i(t.charCodeAt(o)<<16-o%2*16);return e.create(n,2*r)}}}(),n.enc.Utf16)},9506:function(t,e,r){var n,i,o,s,a,f,u,c;t.exports=(c=r(9021),r(5471),r(1025),o=(i=(n=c).lib).Base,s=i.WordArray,f=(a=n.algo).MD5,u=a.EvpKDF=o.extend({cfg:o.extend({keySize:4,hasher:f,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var r=this.cfg,n=r.hasher.create(),i=s.create(),o=i.words,a=r.keySize,f=r.iterations;o.lengthn&&(e=t.finalize(e)),e.clamp();for(var i=this._oKey=e.clone(),s=this._iKey=e.clone(),a=i.words,f=s.words,u=0;u>>2]|=t[i]<<24-i%4*8;e.call(this,n,r)}else e.apply(this,arguments)};r.prototype=t}}(),n.lib.WordArray)},4636:function(t,e,r){var n;t.exports=(n=r(9021),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.algo,a=[];!function(){for(var e=0;e<64;e++)a[e]=4294967296*t.abs(t.sin(e+1))|0}();var f=s.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var n=e+r,i=t[n];t[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o=this._hash.words,s=t[e+0],f=t[e+1],l=t[e+2],y=t[e+3],g=t[e+4],d=t[e+5],v=t[e+6],m=t[e+7],S=t[e+8],_=t[e+9],b=t[e+10],E=t[e+11],w=t[e+12],O=t[e+13],B=t[e+14],A=t[e+15],x=o[0],P=o[1],T=o[2],I=o[3];x=u(x,P,T,I,s,7,a[0]),I=u(I,x,P,T,f,12,a[1]),T=u(T,I,x,P,l,17,a[2]),P=u(P,T,I,x,y,22,a[3]),x=u(x,P,T,I,g,7,a[4]),I=u(I,x,P,T,d,12,a[5]),T=u(T,I,x,P,v,17,a[6]),P=u(P,T,I,x,m,22,a[7]),x=u(x,P,T,I,S,7,a[8]),I=u(I,x,P,T,_,12,a[9]),T=u(T,I,x,P,b,17,a[10]),P=u(P,T,I,x,E,22,a[11]),x=u(x,P,T,I,w,7,a[12]),I=u(I,x,P,T,O,12,a[13]),T=u(T,I,x,P,B,17,a[14]),x=c(x,P=u(P,T,I,x,A,22,a[15]),T,I,f,5,a[16]),I=c(I,x,P,T,v,9,a[17]),T=c(T,I,x,P,E,14,a[18]),P=c(P,T,I,x,s,20,a[19]),x=c(x,P,T,I,d,5,a[20]),I=c(I,x,P,T,b,9,a[21]),T=c(T,I,x,P,A,14,a[22]),P=c(P,T,I,x,g,20,a[23]),x=c(x,P,T,I,_,5,a[24]),I=c(I,x,P,T,B,9,a[25]),T=c(T,I,x,P,y,14,a[26]),P=c(P,T,I,x,S,20,a[27]),x=c(x,P,T,I,O,5,a[28]),I=c(I,x,P,T,l,9,a[29]),T=c(T,I,x,P,m,14,a[30]),x=h(x,P=c(P,T,I,x,w,20,a[31]),T,I,d,4,a[32]),I=h(I,x,P,T,S,11,a[33]),T=h(T,I,x,P,E,16,a[34]),P=h(P,T,I,x,B,23,a[35]),x=h(x,P,T,I,f,4,a[36]),I=h(I,x,P,T,g,11,a[37]),T=h(T,I,x,P,m,16,a[38]),P=h(P,T,I,x,b,23,a[39]),x=h(x,P,T,I,O,4,a[40]),I=h(I,x,P,T,s,11,a[41]),T=h(T,I,x,P,y,16,a[42]),P=h(P,T,I,x,v,23,a[43]),x=h(x,P,T,I,_,4,a[44]),I=h(I,x,P,T,w,11,a[45]),T=h(T,I,x,P,A,16,a[46]),x=p(x,P=h(P,T,I,x,l,23,a[47]),T,I,s,6,a[48]),I=p(I,x,P,T,m,10,a[49]),T=p(T,I,x,P,B,15,a[50]),P=p(P,T,I,x,d,21,a[51]),x=p(x,P,T,I,w,6,a[52]),I=p(I,x,P,T,y,10,a[53]),T=p(T,I,x,P,b,15,a[54]),P=p(P,T,I,x,f,21,a[55]),x=p(x,P,T,I,S,6,a[56]),I=p(I,x,P,T,A,10,a[57]),T=p(T,I,x,P,v,15,a[58]),P=p(P,T,I,x,O,21,a[59]),x=p(x,P,T,I,g,6,a[60]),I=p(I,x,P,T,E,10,a[61]),T=p(T,I,x,P,l,15,a[62]),P=p(P,T,I,x,_,21,a[63]),o[0]=o[0]+x|0,o[1]=o[1]+P|0,o[2]=o[2]+T|0,o[3]=o[3]+I|0},_doFinalize:function(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;r[i>>>5]|=128<<24-i%32;var o=t.floor(n/4294967296),s=n;r[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(i+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var a=this._hash,f=a.words,u=0;u<4;u++){var c=f[u];f[u]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return a},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function u(t,e,r,n,i,o,s){var a=t+(e&r|~e&n)+i+s;return(a<>>32-o)+e}function c(t,e,r,n,i,o,s){var a=t+(e&n|r&~n)+i+s;return(a<>>32-o)+e}function h(t,e,r,n,i,o,s){var a=t+(e^r^n)+i+s;return(a<>>32-o)+e}function p(t,e,r,n,i,o,s){var a=t+(r^(e|~n))+i+s;return(a<>>32-o)+e}e.MD5=o._createHelper(f),e.HmacMD5=o._createHmacHelper(f)}(Math),n.MD5)},2169:function(t,e,r){var n;t.exports=(n=r(9021),r(7165),n.mode.CFB=function(){var t=n.lib.BlockCipherMode.extend();function e(t,e,r,n){var i=this._iv;if(i){var o=i.slice(0);this._iv=void 0}else o=this._prevBlock;n.encryptBlock(o,0);for(var s=0;s>24))t+=1<<24;else{var e=t>>16&255,r=t>>8&255,n=255&t;255===e?(e=0,255===r?(r=0,255===n?n=0:++n):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=n}return t}var r=t.Encryptor=t.extend({processBlock:function(t,r){var n=this._cipher,i=n.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),function(t){0===(t[0]=e(t[0]))&&(t[1]=e(t[1]))}(s);var a=s.slice(0);n.encryptBlock(a,0);for(var f=0;f>>2]|=i<<24-o%4*8,t.sigBytes+=i},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},n.pad.Ansix923)},4905:function(t,e,r){var n;t.exports=(n=r(9021),r(7165),n.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(n.lib.WordArray.random(i-1)).concat(n.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},n.pad.Iso10126)},482:function(t,e,r){var n;t.exports=(n=r(9021),r(7165),n.pad.Iso97971={pad:function(t,e){t.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(t,e)},unpad:function(t){n.pad.ZeroPadding.unpad(t),t.sigBytes--}},n.pad.Iso97971)},8124:function(t,e,r){var n;t.exports=(n=r(9021),r(7165),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)},2155:function(t,e,r){var n;t.exports=(n=r(9021),r(7165),n.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){for(var e=t.words,r=t.sigBytes-1;!(e[r>>>2]>>>24-r%4*8&255);)r--;t.sigBytes=r+1}},n.pad.ZeroPadding)},19:function(t,e,r){var n,i,o,s,a,f,u,c,h;t.exports=(h=r(9021),r(5471),r(1025),o=(i=(n=h).lib).Base,s=i.WordArray,f=(a=n.algo).SHA1,u=a.HMAC,c=a.PBKDF2=o.extend({cfg:o.extend({keySize:4,hasher:f,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var r=this.cfg,n=u.create(r.hasher,t),i=s.create(),o=s.create([1]),a=i.words,f=o.words,c=r.keySize,h=r.iterations;a.length>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)f.call(this);for(i=0;i<8;i++)n[i]^=r[i+4&7];if(e){var o=e.words,s=o[0],a=o[1],u=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),c=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),h=u>>>16|4294901760&c,p=c<<16|65535&u;for(n[0]^=u,n[1]^=h,n[2]^=c,n[3]^=p,n[4]^=u,n[5]^=h,n[6]^=c,n[7]^=p,i=0;i<4;i++)f.call(this)}},_doProcessBlock:function(t,e){var r=this._X;f.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function f(){for(var t=this._X,e=this._C,r=0;r<8;r++)o[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var n=t[r]+e[r],i=65535&n,a=n>>>16,f=((i*i>>>17)+i*a>>>15)+a*a,u=((4294901760&n)*n|0)+((65535&n)*n|0);s[r]=f^u}t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}t.RabbitLegacy=e._createHelper(a)}(),n.RabbitLegacy)},6298:function(t,e,r){var n;t.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var t=n,e=t.lib.StreamCipher,r=t.algo,i=[],o=[],s=[],a=r.Rabbit=e.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,r=0;r<4;r++)t[r]=16711935&(t[r]<<8|t[r]>>>24)|4278255360&(t[r]<<24|t[r]>>>8);var n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(this._b=0,r=0;r<4;r++)f.call(this);for(r=0;r<8;r++)i[r]^=n[r+4&7];if(e){var o=e.words,s=o[0],a=o[1],u=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),c=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),h=u>>>16|4294901760&c,p=c<<16|65535&u;for(i[0]^=u,i[1]^=h,i[2]^=c,i[3]^=p,i[4]^=u,i[5]^=h,i[6]^=c,i[7]^=p,r=0;r<4;r++)f.call(this)}},_doProcessBlock:function(t,e){var r=this._X;f.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function f(){for(var t=this._X,e=this._C,r=0;r<8;r++)o[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var n=t[r]+e[r],i=65535&n,a=n>>>16,f=((i*i>>>17)+i*a>>>15)+a*a,u=((4294901760&n)*n|0)+((65535&n)*n|0);s[r]=f^u}t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}t.Rabbit=e._createHelper(a)}(),n.Rabbit)},7193:function(t,e,r){var n;t.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var t=n,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,n=this._S=[],i=0;i<256;i++)n[i]=i;i=0;for(var o=0;i<256;i++){var s=i%r,a=e[s>>>2]>>>24-s%4*8&255;o=(o+n[i]+a)%256;var f=n[i];n[i]=n[o],n[o]=f}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=o.call(this)},keySize:8,ivSize:0});function o(){for(var t=this._S,e=this._i,r=this._j,n=0,i=0;i<4;i++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,n|=t[(t[e]+t[r])%256]<<24-8*i}return this._i=e,this._j=r,n}t.RC4=e._createHelper(i);var s=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)o.call(this)}});t.RC4Drop=e._createHelper(s)}(),n.RC4)},8056:function(t,e,r){var n;t.exports=(n=r(9021),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.algo,a=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),f=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),u=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),c=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),h=i.create([0,1518500249,1859775393,2400959708,2840853838]),p=i.create([1352829926,1548603684,1836072691,2053994217,0]),l=s.RIPEMD160=o.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var n=e+r,i=t[n];t[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o,s,l,_,b,E,w,O,B,A,x,P=this._hash.words,T=h.words,I=p.words,k=a.words,D=f.words,R=u.words,N=c.words;for(E=o=P[0],w=s=P[1],O=l=P[2],B=_=P[3],A=b=P[4],r=0;r<80;r+=1)x=o+t[e+k[r]]|0,x+=r<16?y(s,l,_)+T[0]:r<32?g(s,l,_)+T[1]:r<48?d(s,l,_)+T[2]:r<64?v(s,l,_)+T[3]:m(s,l,_)+T[4],x=(x=S(x|=0,R[r]))+b|0,o=b,b=_,_=S(l,10),l=s,s=x,x=E+t[e+D[r]]|0,x+=r<16?m(w,O,B)+I[0]:r<32?v(w,O,B)+I[1]:r<48?d(w,O,B)+I[2]:r<64?g(w,O,B)+I[3]:y(w,O,B)+I[4],x=(x=S(x|=0,N[r]))+A|0,E=A,A=B,B=S(O,10),O=w,w=x;x=P[1]+l+B|0,P[1]=P[2]+_+A|0,P[2]=P[3]+b+E|0,P[3]=P[4]+o+w|0,P[4]=P[0]+s+O|0,P[0]=x},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var i=this._hash,o=i.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return i},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function y(t,e,r){return t^e^r}function g(t,e,r){return t&e|~t&r}function d(t,e,r){return(t|~e)^r}function v(t,e,r){return t&r|e&~r}function m(t,e,r){return t^(e|~r)}function S(t,e){return t<>>32-e}e.RIPEMD160=o._createHelper(l),e.HmacRIPEMD160=o._createHmacHelper(l)}(Math),n.RIPEMD160)},5471:function(t,e,r){var n,i,o,s,a,f,u,c;t.exports=(i=(n=c=r(9021)).lib,o=i.WordArray,s=i.Hasher,a=n.algo,f=[],u=a.SHA1=s.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],s=r[3],a=r[4],u=0;u<80;u++){if(u<16)f[u]=0|t[e+u];else{var c=f[u-3]^f[u-8]^f[u-14]^f[u-16];f[u]=c<<1|c>>>31}var h=(n<<5|n>>>27)+a+f[u];h+=u<20?1518500249+(i&o|~i&s):u<40?1859775393+(i^o^s):u<60?(i&o|i&s|o&s)-1894007588:(i^o^s)-899497514,a=s,s=o,o=i<<30|i>>>2,i=n,n=h}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+a|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=Math.floor(r/4294967296),e[15+(n+64>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=s.clone.call(this);return t._hash=this._hash.clone(),t}}),n.SHA1=s._createHelper(u),n.HmacSHA1=s._createHmacHelper(u),c.SHA1)},6308:function(t,e,r){var n,i,o,s,a,f;t.exports=(f=r(9021),r(3009),i=(n=f).lib.WordArray,o=n.algo,s=o.SHA256,a=o.SHA224=s.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=4,t}}),n.SHA224=s._createHelper(a),n.HmacSHA224=s._createHmacHelper(a),f.SHA224)},3009:function(t,e,r){var n;t.exports=(n=r(9021),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.algo,a=[],f=[];!function(){function e(e){for(var r=t.sqrt(e),n=2;n<=r;n++)if(!(e%n))return!1;return!0}function r(t){return 4294967296*(t-(0|t))|0}for(var n=2,i=0;i<64;)e(n)&&(i<8&&(a[i]=r(t.pow(n,.5))),f[i]=r(t.pow(n,1/3)),i++),n++}();var u=[],c=s.SHA256=o.extend({_doReset:function(){this._hash=new i.init(a.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],s=r[3],a=r[4],c=r[5],h=r[6],p=r[7],l=0;l<64;l++){if(l<16)u[l]=0|t[e+l];else{var y=u[l-15],g=(y<<25|y>>>7)^(y<<14|y>>>18)^y>>>3,d=u[l-2],v=(d<<15|d>>>17)^(d<<13|d>>>19)^d>>>10;u[l]=g+u[l-7]+v+u[l-16]}var m=n&i^n&o^i&o,S=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),_=p+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&c^~a&h)+f[l]+u[l];p=h,h=c,c=a,a=s+_|0,s=o,o=i,i=n,n=_+(S+m)|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+a|0,r[5]=r[5]+c|0,r[6]=r[6]+h|0,r[7]=r[7]+p|0},_doFinalize:function(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=t.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(c),e.HmacSHA256=o._createHmacHelper(c)}(Math),n.SHA256)},5953:function(t,e,r){var n;t.exports=(n=r(9021),r(3240),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.x64.Word,a=e.algo,f=[],u=[],c=[];!function(){for(var t=1,e=0,r=0;r<24;r++){f[t+5*e]=(r+1)*(r+2)/2%64;var n=(2*t+3*e)%5;t=e%5,e=n}for(t=0;t<5;t++)for(e=0;e<5;e++)u[t+5*e]=e+(2*t+3*e)%5*5;for(var i=1,o=0;o<24;o++){for(var a=0,h=0,p=0;p<7;p++){if(1&i){var l=(1<>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(P=r[i]).high^=s,P.low^=o}for(var a=0;a<24;a++){for(var p=0;p<5;p++){for(var l=0,y=0,g=0;g<5;g++)l^=(P=r[p+5*g]).high,y^=P.low;var d=h[p];d.high=l,d.low=y}for(p=0;p<5;p++){var v=h[(p+4)%5],m=h[(p+1)%5],S=m.high,_=m.low;for(l=v.high^(S<<1|_>>>31),y=v.low^(_<<1|S>>>31),g=0;g<5;g++)(P=r[p+5*g]).high^=l,P.low^=y}for(var b=1;b<25;b++){var E=(P=r[b]).high,w=P.low,O=f[b];O<32?(l=E<>>32-O,y=w<>>32-O):(l=w<>>64-O,y=E<>>64-O);var B=h[u[b]];B.high=l,B.low=y}var A=h[0],x=r[0];for(A.high=x.high,A.low=x.low,p=0;p<5;p++)for(g=0;g<5;g++){var P=r[b=p+5*g],T=h[b],I=h[(p+1)%5+5*g],k=h[(p+2)%5+5*g];P.high=T.high^~I.high&k.high,P.low=T.low^~I.low&k.low}P=r[0];var D=c[a];P.high^=D.high,P.low^=D.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((n+1)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,f=a/8,u=[],c=0;c>>24)|4278255360&(p<<24|p>>>8),l=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8),u.push(l),u.push(p)}return new i.init(u,a)},clone:function(){for(var t=o.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=o._createHelper(p),e.HmacSHA3=o._createHmacHelper(p)}(Math),n.SHA3)},9557:function(t,e,r){var n,i,o,s,a,f,u,c;t.exports=(c=r(9021),r(3240),r(1380),i=(n=c).x64,o=i.Word,s=i.WordArray,a=n.algo,f=a.SHA512,u=a.SHA384=f.extend({_doReset:function(){this._hash=new s.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var t=f._doFinalize.call(this);return t.sigBytes-=16,t}}),n.SHA384=f._createHelper(u),n.HmacSHA384=f._createHmacHelper(u),c.SHA384)},1380:function(t,e,r){var n;t.exports=(n=r(9021),r(3240),function(){var t=n,e=t.lib.Hasher,r=t.x64,i=r.Word,o=r.WordArray,s=t.algo;function a(){return i.create.apply(i,arguments)}var f=[a(1116352408,3609767458),a(1899447441,602891725),a(3049323471,3964484399),a(3921009573,2173295548),a(961987163,4081628472),a(1508970993,3053834265),a(2453635748,2937671579),a(2870763221,3664609560),a(3624381080,2734883394),a(310598401,1164996542),a(607225278,1323610764),a(1426881987,3590304994),a(1925078388,4068182383),a(2162078206,991336113),a(2614888103,633803317),a(3248222580,3479774868),a(3835390401,2666613458),a(4022224774,944711139),a(264347078,2341262773),a(604807628,2007800933),a(770255983,1495990901),a(1249150122,1856431235),a(1555081692,3175218132),a(1996064986,2198950837),a(2554220882,3999719339),a(2821834349,766784016),a(2952996808,2566594879),a(3210313671,3203337956),a(3336571891,1034457026),a(3584528711,2466948901),a(113926993,3758326383),a(338241895,168717936),a(666307205,1188179964),a(773529912,1546045734),a(1294757372,1522805485),a(1396182291,2643833823),a(1695183700,2343527390),a(1986661051,1014477480),a(2177026350,1206759142),a(2456956037,344077627),a(2730485921,1290863460),a(2820302411,3158454273),a(3259730800,3505952657),a(3345764771,106217008),a(3516065817,3606008344),a(3600352804,1432725776),a(4094571909,1467031594),a(275423344,851169720),a(430227734,3100823752),a(506948616,1363258195),a(659060556,3750685593),a(883997877,3785050280),a(958139571,3318307427),a(1322822218,3812723403),a(1537002063,2003034995),a(1747873779,3602036899),a(1955562222,1575990012),a(2024104815,1125592928),a(2227730452,2716904306),a(2361852424,442776044),a(2428436474,593698344),a(2756734187,3733110249),a(3204031479,2999351573),a(3329325298,3815920427),a(3391569614,3928383900),a(3515267271,566280711),a(3940187606,3454069534),a(4118630271,4000239992),a(116418474,1914138554),a(174292421,2731055270),a(289380356,3203993006),a(460393269,320620315),a(685471733,587496836),a(852142971,1086792851),a(1017036298,365543100),a(1126000580,2618297676),a(1288033470,3409855158),a(1501505948,4234509866),a(1607167915,987167468),a(1816402316,1246189591)],u=[];!function(){for(var t=0;t<80;t++)u[t]=a()}();var c=s.SHA512=e.extend({_doReset:function(){this._hash=new o.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],s=r[3],a=r[4],c=r[5],h=r[6],p=r[7],l=n.high,y=n.low,g=i.high,d=i.low,v=o.high,m=o.low,S=s.high,_=s.low,b=a.high,E=a.low,w=c.high,O=c.low,B=h.high,A=h.low,x=p.high,P=p.low,T=l,I=y,k=g,D=d,R=v,N=m,L=S,C=_,U=b,M=E,j=w,H=O,F=B,z=A,G=x,q=P,$=0;$<80;$++){var K=u[$];if($<16)var W=K.high=0|t[e+2*$],V=K.low=0|t[e+2*$+1];else{var Y=u[$-15],X=Y.high,Z=Y.low,J=(X>>>1|Z<<31)^(X>>>8|Z<<24)^X>>>7,Q=(Z>>>1|X<<31)^(Z>>>8|X<<24)^(Z>>>7|X<<25),tt=u[$-2],et=tt.high,rt=tt.low,nt=(et>>>19|rt<<13)^(et<<3|rt>>>29)^et>>>6,it=(rt>>>19|et<<13)^(rt<<3|et>>>29)^(rt>>>6|et<<26),ot=u[$-7],st=ot.high,at=ot.low,ft=u[$-16],ut=ft.high,ct=ft.low;W=(W=(W=J+st+((V=Q+at)>>>0>>0?1:0))+nt+((V+=it)>>>0>>0?1:0))+ut+((V+=ct)>>>0>>0?1:0),K.high=W,K.low=V}var ht,pt=U&j^~U&F,lt=M&H^~M&z,yt=T&k^T&R^k&R,gt=I&D^I&N^D&N,dt=(T>>>28|I<<4)^(T<<30|I>>>2)^(T<<25|I>>>7),vt=(I>>>28|T<<4)^(I<<30|T>>>2)^(I<<25|T>>>7),mt=(U>>>14|M<<18)^(U>>>18|M<<14)^(U<<23|M>>>9),St=(M>>>14|U<<18)^(M>>>18|U<<14)^(M<<23|U>>>9),_t=f[$],bt=_t.high,Et=_t.low,wt=G+mt+((ht=q+St)>>>0>>0?1:0),Ot=vt+gt;G=F,q=z,F=j,z=H,j=U,H=M,U=L+(wt=(wt=(wt=wt+pt+((ht+=lt)>>>0>>0?1:0))+bt+((ht+=Et)>>>0>>0?1:0))+W+((ht+=V)>>>0>>0?1:0))+((M=C+ht|0)>>>0>>0?1:0)|0,L=R,C=N,R=k,N=D,k=T,D=I,T=wt+(dt+yt+(Ot>>>0>>0?1:0))+((I=ht+Ot|0)>>>0>>0?1:0)|0}y=n.low=y+I,n.high=l+T+(y>>>0>>0?1:0),d=i.low=d+D,i.high=g+k+(d>>>0>>0?1:0),m=o.low=m+N,o.high=v+R+(m>>>0>>0?1:0),_=s.low=_+C,s.high=S+L+(_>>>0>>0?1:0),E=a.low=E+M,a.high=b+U+(E>>>0>>0?1:0),O=c.low=O+H,c.high=w+j+(O>>>0>>0?1:0),A=h.low=A+z,h.high=B+F+(A>>>0>>0?1:0),P=p.low=P+q,p.high=x+G+(P>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),e[31+(n+128>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(c),t.HmacSHA512=e._createHmacHelper(c)}(),n.SHA512)},7628:function(t,e,r){var n;t.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var t=n,e=t.lib,r=e.WordArray,i=e.BlockCipher,o=t.algo,s=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],a=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],f=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],u=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],c=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],h=o.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var n=s[r]-1;e[r]=t[n>>>5]>>>31-n%32&1}for(var i=this._subKeys=[],o=0;o<16;o++){var u=i[o]=[],c=f[o];for(r=0;r<24;r++)u[r/6|0]|=e[(a[r]-1+c)%28]<<31-r%6,u[4+(r/6|0)]|=e[28+(a[r+24]-1+c)%28]<<31-r%6;for(u[0]=u[0]<<1|u[0]>>>31,r=1;r<7;r++)u[r]=u[r]>>>4*(r-1)+3;u[7]=u[7]<<5|u[7]>>>27}var h=this._invSubKeys=[];for(r=0;r<16;r++)h[r]=i[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],p.call(this,4,252645135),p.call(this,16,65535),l.call(this,2,858993459),l.call(this,8,16711935),p.call(this,1,1431655765);for(var n=0;n<16;n++){for(var i=r[n],o=this._lBlock,s=this._rBlock,a=0,f=0;f<8;f++)a|=u[f][((s^i[f])&c[f])>>>0];this._lBlock=s,this._rBlock=o^a}var h=this._lBlock;this._lBlock=this._rBlock,this._rBlock=h,p.call(this,1,1431655765),l.call(this,8,16711935),l.call(this,2,858993459),p.call(this,16,65535),p.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function p(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r<>>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r<{"use strict";var n=r(655),i=r(8068),o=r(9675),s=r(5795);t.exports=function(t,e,r){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new o("`obj` must be an object or a function`");if("string"!=typeof e&&"symbol"!=typeof e)throw new o("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new o("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new o("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new o("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new o("`loose`, if provided, must be a boolean");var a=arguments.length>3?arguments[3]:null,f=arguments.length>4?arguments[4]:null,u=arguments.length>5?arguments[5]:null,c=arguments.length>6&&arguments[6],h=!!s&&s(t,e);if(n)n(t,e,{configurable:null===u&&h?h.configurable:!u,enumerable:null===a&&h?h.enumerable:!a,value:r,writable:null===f&&h?h.writable:!f});else{if(!c&&(a||f||u))throw new i("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");t[e]=r}}},655:(t,e,r)=>{"use strict";var n=r(453)("%Object.defineProperty%",!0)||!1;if(n)try{n({},"a",{value:1})}catch(t){n=!1}t.exports=n},1237:t=>{"use strict";t.exports=EvalError},9383:t=>{"use strict";t.exports=Error},9290:t=>{"use strict";t.exports=RangeError},9538:t=>{"use strict";t.exports=ReferenceError},8068:t=>{"use strict";t.exports=SyntaxError},9675:t=>{"use strict";t.exports=TypeError},5345:t=>{"use strict";t.exports=URIError},9353:t=>{"use strict";var e=Object.prototype.toString,r=Math.max,n=function(t,e){for(var r=[],n=0;n{"use strict";var n=r(9353);t.exports=Function.prototype.bind||n},453:(t,e,r)=>{"use strict";var n,i=r(9383),o=r(1237),s=r(9290),a=r(9538),f=r(8068),u=r(9675),c=r(5345),h=Function,p=function(t){try{return h('"use strict"; return ('+t+").constructor;")()}catch(t){}},l=Object.getOwnPropertyDescriptor;if(l)try{l({},"")}catch(t){l=null}var y=function(){throw new u},g=l?function(){try{return y}catch(t){try{return l(arguments,"callee").get}catch(t){return y}}}():y,d=r(4039)(),v=r(24)(),m=Object.getPrototypeOf||(v?function(t){return t.__proto__}:null),S={},_="undefined"!=typeof Uint8Array&&m?m(Uint8Array):n,b={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayIteratorPrototype%":d&&m?m([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":S,"%AsyncGenerator%":S,"%AsyncGeneratorFunction%":S,"%AsyncIteratorPrototype%":S,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%BigInt%":"undefined"==typeof BigInt?n:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?n:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?n:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":o,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?n:FinalizationRegistry,"%Function%":h,"%GeneratorFunction%":S,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":d&&m?m(m([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&d&&m?m((new Map)[Symbol.iterator]()):n,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":s,"%ReferenceError%":a,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&d&&m?m((new Set)[Symbol.iterator]()):n,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":d&&m?m(""[Symbol.iterator]()):n,"%Symbol%":d?Symbol:n,"%SyntaxError%":f,"%ThrowTypeError%":g,"%TypedArray%":_,"%TypeError%":u,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%URIError%":c,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?n:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet};if(m)try{null.error}catch(t){var E=m(m(t));b["%Error.prototype%"]=E}var w=function t(e){var r;if("%AsyncFunction%"===e)r=p("async function () {}");else if("%GeneratorFunction%"===e)r=p("function* () {}");else if("%AsyncGeneratorFunction%"===e)r=p("async function* () {}");else if("%AsyncGenerator%"===e){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if("%AsyncIteratorPrototype%"===e){var i=t("%AsyncGenerator%");i&&m&&(r=m(i.prototype))}return b[e]=r,r},O={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},B=r(6743),A=r(9957),x=B.call(Function.call,Array.prototype.concat),P=B.call(Function.apply,Array.prototype.splice),T=B.call(Function.call,String.prototype.replace),I=B.call(Function.call,String.prototype.slice),k=B.call(Function.call,RegExp.prototype.exec),D=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,R=/\\(\\)?/g,N=function(t,e){var r,n=t;if(A(O,n)&&(n="%"+(r=O[n])[0]+"%"),A(b,n)){var i=b[n];if(i===S&&(i=w(n)),void 0===i&&!e)throw new u("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:r,name:n,value:i}}throw new f("intrinsic "+t+" does not exist!")};t.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new u("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new u('"allowMissing" argument must be a boolean');if(null===k(/^%?[^%]*%?$/,t))throw new f("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(t){var e=I(t,0,1),r=I(t,-1);if("%"===e&&"%"!==r)throw new f("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==e)throw new f("invalid intrinsic syntax, expected opening `%`");var n=[];return T(t,D,(function(t,e,r,i){n[n.length]=r?T(i,R,"$1"):e||t})),n}(t),n=r.length>0?r[0]:"",i=N("%"+n+"%",e),o=i.name,s=i.value,a=!1,c=i.alias;c&&(n=c[0],P(r,x([0,1],c)));for(var h=1,p=!0;h=r.length){var v=l(s,y);s=(p=!!v)&&"get"in v&&!("originalValue"in v.get)?v.get:s[y]}else p=A(s,y),s=s[y];p&&!a&&(b[o]=s)}}return s}},5795:(t,e,r)=>{"use strict";var n=r(453)("%Object.getOwnPropertyDescriptor%",!0);if(n)try{n([],"length")}catch(t){n=null}t.exports=n},592:(t,e,r)=>{"use strict";var n=r(655),i=function(){return!!n};i.hasArrayLengthDefineBug=function(){if(!n)return null;try{return 1!==n([],"length",{value:1}).length}catch(t){return!0}},t.exports=i},24:t=>{"use strict";var e={__proto__:null,foo:{}},r=Object;t.exports=function(){return{__proto__:e}.foo===e.foo&&!(e instanceof r)}},4039:(t,e,r)=>{"use strict";var n="undefined"!=typeof Symbol&&Symbol,i=r(1333);t.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&i()}},1333:t=>{"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(e in t[e]=42,t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var n=Object.getOwnPropertySymbols(t);if(1!==n.length||n[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},9957:(t,e,r)=>{"use strict";var n=Function.prototype.call,i=Object.prototype.hasOwnProperty,o=r(6743);t.exports=o.call(n,i)},251:(t,e)=>{e.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,f=(1<>1,c=-7,h=r?i-1:0,p=r?-1:1,l=t[e+h];for(h+=p,o=l&(1<<-c)-1,l>>=-c,c+=a;c>0;o=256*o+t[e+h],h+=p,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=n;c>0;s=256*s+t[e+h],h+=p,c-=8);if(0===o)o=1-u;else{if(o===f)return s?NaN:1/0*(l?-1:1);s+=Math.pow(2,n),o-=u}return(l?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,f,u=8*o-i-1,c=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,l=n?0:o-1,y=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(f=Math.pow(2,-s))<1&&(s--,f*=2),(e+=s+h>=1?p/f:p*Math.pow(2,1-h))*f>=2&&(s++,f/=2),s+h>=c?(a=0,s=c):s+h>=1?(a=(e*f-1)*Math.pow(2,i),s+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[r+l]=255&a,l+=y,a/=256,i-=8);for(s=s<0;t[r+l]=255&s,l+=y,s/=256,u-=8);t[r+l-y]|=128*g}},3229:(t,e,r)=>{var n=r(8287).Buffer,i=r(7449),o=r(5682),s=(r(3200),r(3100).Ber,r(8226)._),a=r(8226),f=r(1768),u=r(7460);void 0===i.RSA_NO_PADDING&&(i.RSA_NO_PADDING=3),t.exports=function(){var t={node10:["md4","md5","ripemd160","sha1","sha224","sha256","sha384","sha512"],node:["md4","md5","ripemd160","sha1","sha224","sha256","sha384","sha512"],iojs:["md4","md5","ripemd160","sha1","sha224","sha256","sha384","sha512"],browser:["md5","ripemd160","sha1","sha256","sha512"]},e="pkcs1_oaep",r="pkcs1",i={private:"pkcs1-private-pem","private-der":"pkcs1-private-der",public:"pkcs8-public-pem","public-der":"pkcs8-public-der"};function c(t,i,f){if(!(this instanceof c))return new c(t,i,f);s.isObject(i)&&(f=i,i=void 0),this.$options={signingScheme:r,signingSchemeOptions:{hash:"sha256",saltLength:null},encryptionScheme:e,encryptionSchemeOptions:{hash:"sha1",label:null},environment:a.detectEnvironment(),rsaUtils:this},this.keyPair=new o.Key,this.$cache={},n.isBuffer(t)||s.isString(t)?this.importKey(t,i):s.isObject(t)&&this.generateKeyPair(t.b,t.e),this.setOptions(f)}return c.prototype.setOptions=function(n){if((n=n||{}).environment&&(this.$options.environment=n.environment),n.signingScheme){if(s.isString(n.signingScheme)){var i=n.signingScheme.toLowerCase().split("-");1==i.length?t.node.indexOf(i[0])>-1?(this.$options.signingSchemeOptions={hash:i[0]},this.$options.signingScheme=r):(this.$options.signingScheme=i[0],this.$options.signingSchemeOptions={hash:null}):(this.$options.signingSchemeOptions={hash:i[1]},this.$options.signingScheme=i[0])}else s.isObject(n.signingScheme)&&(this.$options.signingScheme=n.signingScheme.scheme||r,this.$options.signingSchemeOptions=s.omit(n.signingScheme,"scheme"));if(!f.isSignature(this.$options.signingScheme))throw Error("Unsupported signing scheme");if(this.$options.signingSchemeOptions.hash&&-1===t[this.$options.environment].indexOf(this.$options.signingSchemeOptions.hash))throw Error("Unsupported hashing algorithm for "+this.$options.environment+" environment")}if(n.encryptionScheme){if(s.isString(n.encryptionScheme)?(this.$options.encryptionScheme=n.encryptionScheme.toLowerCase(),this.$options.encryptionSchemeOptions={}):s.isObject(n.encryptionScheme)&&(this.$options.encryptionScheme=n.encryptionScheme.scheme||e,this.$options.encryptionSchemeOptions=s.omit(n.encryptionScheme,"scheme")),!f.isEncryption(this.$options.encryptionScheme))throw Error("Unsupported encryption scheme");if(this.$options.encryptionSchemeOptions.hash&&-1===t[this.$options.environment].indexOf(this.$options.encryptionSchemeOptions.hash))throw Error("Unsupported hashing algorithm for "+this.$options.environment+" environment")}this.keyPair.setOptions(this.$options)},c.prototype.generateKeyPair=function(t,e){if(e=e||65537,(t=t||2048)%8!=0)throw Error("Key size must be a multiple of 8.");return this.keyPair.generate(t,e.toString(16)),this.$cache={},this},c.prototype.importKey=function(t,e){if(!t)throw Error("Empty key given");if(e&&(e=i[e]||e),!u.detectAndImport(this.keyPair,t,e)&&void 0===e)throw Error("Key format must be specified");return this.$cache={},this},c.prototype.exportKey=function(t){return t=i[t=t||"private"]||t,this.$cache[t]||(this.$cache[t]=u.detectAndExport(this.keyPair,t)),this.$cache[t]},c.prototype.isPrivate=function(){return this.keyPair.isPrivate()},c.prototype.isPublic=function(t){return this.keyPair.isPublic(t)},c.prototype.isEmpty=function(t){return!(this.keyPair.n||this.keyPair.e||this.keyPair.d)},c.prototype.encrypt=function(t,e,r){return this.$$encryptKey(!1,t,e,r)},c.prototype.decrypt=function(t,e){return this.$$decryptKey(!1,t,e)},c.prototype.encryptPrivate=function(t,e,r){return this.$$encryptKey(!0,t,e,r)},c.prototype.decryptPublic=function(t,e){return this.$$decryptKey(!0,t,e)},c.prototype.$$encryptKey=function(t,e,r,n){try{var i=this.keyPair.encrypt(this.$getDataForEncrypt(e,n),t);return"buffer"!=r&&r?i.toString(r):i}catch(t){throw Error("Error during encryption. Original error: "+t)}},c.prototype.$$decryptKey=function(t,e,r){try{e=s.isString(e)?n.from(e,"base64"):e;var i=this.keyPair.decrypt(e,t);if(null===i)throw Error("Key decrypt method returns null.");return this.$getDecryptedData(i,r)}catch(t){throw Error("Error during decryption (probably incorrect key). Original error: "+t)}},c.prototype.sign=function(t,e,r){if(!this.isPrivate())throw Error("This is not private key");var n=this.keyPair.sign(this.$getDataForEncrypt(t,r));return e&&"buffer"!=e&&(n=n.toString(e)),n},c.prototype.verify=function(t,e,r,n){if(!this.isPublic())throw Error("This is not public key");return n=n&&"buffer"!=n?n:null,this.keyPair.verify(this.$getDataForEncrypt(t,r),e,n)},c.prototype.getKeySize=function(){return this.keyPair.keySize},c.prototype.getMaxMessageSize=function(){return this.keyPair.maxMessageLength},c.prototype.$getDataForEncrypt=function(t,e){if(s.isString(t)||s.isNumber(t))return n.from(""+t,e||"utf8");if(n.isBuffer(t))return t;if(s.isObject(t))return n.from(JSON.stringify(t));throw Error("Unexpected data type")},c.prototype.$getDecryptedData=function(t,e){return"buffer"==(e=e||"buffer")?t:"json"==e?JSON.parse(t.toString()):t.toString(e)},c}()},4538:(t,e,r)=>{var n=r(3200);t.exports={getEngine:function(t,e){var i=r(7469);return"node"===e.environment&&"function"==typeof n.publicEncrypt&&"function"==typeof n.privateDecrypt&&(i="function"==typeof n.privateEncrypt&&"function"==typeof n.publicDecrypt?r(2418):r(1957)),i(t,e)}}},2418:(t,e,r)=>{var n=r(3200),i=r(7449),o=r(1768);t.exports=function(t,e){var r=o.pkcs1.makeScheme(t,e);return{encrypt:function(t,o){var s;if(o)return s=i.RSA_PKCS1_PADDING,e.encryptionSchemeOptions&&e.encryptionSchemeOptions.padding&&(s=e.encryptionSchemeOptions.padding),n.privateEncrypt({key:e.rsaUtils.exportKey("private"),padding:s},t);s=i.RSA_PKCS1_OAEP_PADDING,"pkcs1"===e.encryptionScheme&&(s=i.RSA_PKCS1_PADDING),e.encryptionSchemeOptions&&e.encryptionSchemeOptions.padding&&(s=e.encryptionSchemeOptions.padding);var a=t;return s===i.RSA_NO_PADDING&&(a=r.pkcs0pad(t)),n.publicEncrypt({key:e.rsaUtils.exportKey("public"),padding:s},a)},decrypt:function(t,o){var s;if(o)return s=i.RSA_PKCS1_PADDING,e.encryptionSchemeOptions&&e.encryptionSchemeOptions.padding&&(s=e.encryptionSchemeOptions.padding),n.publicDecrypt({key:e.rsaUtils.exportKey("public"),padding:s},t);s=i.RSA_PKCS1_OAEP_PADDING,"pkcs1"===e.encryptionScheme&&(s=i.RSA_PKCS1_PADDING),e.encryptionSchemeOptions&&e.encryptionSchemeOptions.padding&&(s=e.encryptionSchemeOptions.padding);var a=n.privateDecrypt({key:e.rsaUtils.exportKey("private"),padding:s},t);return s===i.RSA_NO_PADDING?r.pkcs0unpad(a):a}}}},7469:(t,e,r)=>{var n=r(1973),i=r(1768);t.exports=function(t,e){var r=i.pkcs1.makeScheme(t,e);return{encrypt:function(e,i){var o,s;return i?(o=new n(r.encPad(e,{type:1})),s=t.$doPrivate(o)):(o=new n(t.encryptionScheme.encPad(e)),s=t.$doPublic(o)),s.toBuffer(t.encryptedDataLength)},decrypt:function(e,i){var o,s=new n(e);return i?(o=t.$doPublic(s),r.encUnPad(o.toBuffer(t.encryptedDataLength),{type:1})):(o=t.$doPrivate(s),t.encryptionScheme.encUnPad(o.toBuffer(t.encryptedDataLength)))}}}},1957:(t,e,r)=>{var n=r(3200),i=r(7449),o=r(1768);t.exports=function(t,e){var s=r(7469)(t,e),a=o.pkcs1.makeScheme(t,e);return{encrypt:function(t,r){if(r)return s.encrypt(t,r);var o=i.RSA_PKCS1_OAEP_PADDING;"pkcs1"===e.encryptionScheme&&(o=i.RSA_PKCS1_PADDING),e.encryptionSchemeOptions&&e.encryptionSchemeOptions.padding&&(o=e.encryptionSchemeOptions.padding);var f=t;return o===i.RSA_NO_PADDING&&(f=a.pkcs0pad(t)),n.publicEncrypt({key:e.rsaUtils.exportKey("public"),padding:o},f)},decrypt:function(t,r){if(r)return s.decrypt(t,r);var o=i.RSA_PKCS1_OAEP_PADDING;"pkcs1"===e.encryptionScheme&&(o=i.RSA_PKCS1_PADDING),e.encryptionSchemeOptions&&e.encryptionSchemeOptions.padding&&(o=e.encryptionSchemeOptions.padding);var f=n.privateDecrypt({key:e.rsaUtils.exportKey("private"),padding:o},t);return o===i.RSA_NO_PADDING?a.pkcs0unpad(f):f}}}},3374:(t,e,r)=>{r(8226)._,r(8226),t.exports={privateExport:function(t,e){return{n:t.n.toBuffer(),e:t.e,d:t.d.toBuffer(),p:t.p.toBuffer(),q:t.q.toBuffer(),dmp1:t.dmp1.toBuffer(),dmq1:t.dmq1.toBuffer(),coeff:t.coeff.toBuffer()}},privateImport:function(t,e,r){if(!(e.n&&e.e&&e.d&&e.p&&e.q&&e.dmp1&&e.dmq1&&e.coeff))throw Error("Invalid key data");t.setPrivate(e.n,e.e,e.d,e.p,e.q,e.dmp1,e.dmq1,e.coeff)},publicExport:function(t,e){return{n:t.n.toBuffer(),e:t.e}},publicImport:function(t,e,r){if(!e.n||!e.e)throw Error("Invalid key data");t.setPublic(e.n,e.e)},autoImport:function(e,r){return!(!r.n||!r.e||(r.d&&r.p&&r.q&&r.dmp1&&r.dmq1&&r.coeff?(t.exports.privateImport(e,r),0):(t.exports.publicImport(e,r),0)))}}},7460:(t,e,r)=>{function n(t){t=t.split("-");for(var e="private",r={type:"default"},n=1;n{var n=r(8287).Buffer,i=r(8226)._,o=r(8226),s=r(1973);const a="-----BEGIN OPENSSH PRIVATE KEY-----",f="-----END OPENSSH PRIVATE KEY-----";function u(t){const e=t.buf.readInt32BE(t.off);t.off+=4;const r=t.buf.slice(t.off,t.off+e);return t.off+=e,r}function c(t,e){t.buf.writeInt32BE(e.byteLength,t.off),t.off+=4,t.off+=e.copy(t.buf,t.off)}t.exports={privateExport:function(t,e){const r=t.n.toBuffer();let i=n.alloc(4);for(i.writeUInt32BE(t.e,0);0===i[0];)i=i.slice(1);const s=t.d.toBuffer(),u=t.coeff.toBuffer(),h=t.p.toBuffer(),p=t.q.toBuffer();let l;l=void 0!==t.sshcomment?n.from(t.sshcomment):n.from([]);const y=15+i.byteLength+4+r.byteLength,g=23+r.byteLength+4+i.byteLength+4+s.byteLength+4+u.byteLength+4+h.byteLength+4+p.byteLength+4+l.byteLength;let d=43+y+4+g;d+=8*Math.ceil(g/8)-g;const v=n.alloc(d),m={buf:v,off:0};v.write("openssh-key-v1","utf8"),v.writeUInt8(0,14),m.off+=15,c(m,n.from("none")),c(m,n.from("none")),c(m,n.from("")),m.off=m.buf.writeUInt32BE(1,m.off),m.off=m.buf.writeUInt32BE(y,m.off),c(m,n.from("ssh-rsa")),c(m,i),c(m,r),m.off=m.buf.writeUInt32BE(d-47-y,m.off),m.off+=8,c(m,n.from("ssh-rsa")),c(m,r),c(m,i),c(m,s),c(m,u),c(m,h),c(m,p),c(m,l);let S=1;for(;m.off{var n=r(8287).Buffer,i=r(3100).Ber,o=r(8226)._,s=r(8226);const a="-----BEGIN RSA PRIVATE KEY-----",f="-----END RSA PRIVATE KEY-----",u="-----BEGIN RSA PUBLIC KEY-----",c="-----END RSA PUBLIC KEY-----";t.exports={privateExport:function(t,e){e=e||{};var r=t.n.toBuffer(),n=t.d.toBuffer(),o=t.p.toBuffer(),u=t.q.toBuffer(),c=t.dmp1.toBuffer(),h=t.dmq1.toBuffer(),p=t.coeff.toBuffer(),l=r.length+n.length+o.length+u.length+c.length+h.length+p.length+512,y=new i.Writer({size:l});return y.startSequence(),y.writeInt(0),y.writeBuffer(r,2),y.writeInt(t.e),y.writeBuffer(n,2),y.writeBuffer(o,2),y.writeBuffer(u,2),y.writeBuffer(c,2),y.writeBuffer(h,2),y.writeBuffer(p,2),y.endSequence(),"der"===e.type?y.buffer:a+"\n"+s.linebrk(y.buffer.toString("base64"),64)+"\n"+f},privateImport:function(t,e,r){var u;if("der"!==(r=r||{}).type){if(n.isBuffer(e)&&(e=e.toString("utf8")),!o.isString(e))throw Error("Unsupported key format");var c=s.trimSurroundingText(e,a,f).replace(/\s+|\n\r|\n|\r$/gm,"");u=n.from(c,"base64")}else{if(!n.isBuffer(e))throw Error("Unsupported key format");u=e}var h=new i.Reader(u);h.readSequence(),h.readString(2,!0),t.setPrivate(h.readString(2,!0),h.readString(2,!0),h.readString(2,!0),h.readString(2,!0),h.readString(2,!0),h.readString(2,!0),h.readString(2,!0),h.readString(2,!0))},publicExport:function(t,e){e=e||{};var r=t.n.toBuffer(),n=r.length+512,o=new i.Writer({size:n});return o.startSequence(),o.writeBuffer(r,2),o.writeInt(t.e),o.endSequence(),"der"===e.type?o.buffer:u+"\n"+s.linebrk(o.buffer.toString("base64"),64)+"\n"+c},publicImport:function(t,e,r){var a;if("der"!==(r=r||{}).type){if(n.isBuffer(e)&&(e=e.toString("utf8")),o.isString(e)){var f=s.trimSurroundingText(e,u,c).replace(/\s+|\n\r|\n|\r$/gm,"");a=n.from(f,"base64")}}else{if(!n.isBuffer(e))throw Error("Unsupported key format");a=e}var h=new i.Reader(a);h.readSequence(),t.setPublic(h.readString(2,!0),h.readString(2,!0))},autoImport:function(e,r){return/^[\S\s]*-----BEGIN RSA PRIVATE KEY-----\s*(?=(([A-Za-z0-9+/=]+\s*)+))\1-----END RSA PRIVATE KEY-----[\S\s]*$/g.test(r)?(t.exports.privateImport(e,r),!0):!!/^[\S\s]*-----BEGIN RSA PUBLIC KEY-----\s*(?=(([A-Za-z0-9+/=]+\s*)+))\1-----END RSA PUBLIC KEY-----[\S\s]*$/g.test(r)&&(t.exports.publicImport(e,r),!0)}}},8573:(t,e,r)=>{var n=r(8287).Buffer,i=r(3100).Ber,o=r(8226)._,s="1.2.840.113549.1.1.1",a=r(8226);const f="-----BEGIN PRIVATE KEY-----",u="-----END PRIVATE KEY-----",c="-----BEGIN PUBLIC KEY-----",h="-----END PUBLIC KEY-----";t.exports={privateExport:function(t,e){e=e||{};var r=t.n.toBuffer(),n=t.d.toBuffer(),o=t.p.toBuffer(),c=t.q.toBuffer(),h=t.dmp1.toBuffer(),p=t.dmq1.toBuffer(),l=t.coeff.toBuffer(),y=r.length+n.length+o.length+c.length+h.length+p.length+l.length+512,g=new i.Writer({size:y});g.startSequence(),g.writeInt(0),g.writeBuffer(r,2),g.writeInt(t.e),g.writeBuffer(n,2),g.writeBuffer(o,2),g.writeBuffer(c,2),g.writeBuffer(h,2),g.writeBuffer(p,2),g.writeBuffer(l,2),g.endSequence();var d=new i.Writer({size:y});return d.startSequence(),d.writeInt(0),d.startSequence(),d.writeOID(s),d.writeNull(),d.endSequence(),d.writeBuffer(g.buffer,4),d.endSequence(),"der"===e.type?d.buffer:f+"\n"+a.linebrk(d.buffer.toString("base64"),64)+"\n"+u},privateImport:function(t,e,r){var c;if("der"!==(r=r||{}).type){if(n.isBuffer(e)&&(e=e.toString("utf8")),!o.isString(e))throw Error("Unsupported key format");var h=a.trimSurroundingText(e,f,u).replace("-----END PRIVATE KEY-----","").replace(/\s+|\n\r|\n|\r$/gm,"");c=n.from(h,"base64")}else{if(!n.isBuffer(e))throw Error("Unsupported key format");c=e}var p=new i.Reader(c);if(p.readSequence(),p.readInt(0),new i.Reader(p.readString(48,!0)).readOID(6,!0)!==s)throw Error("Invalid Public key format");var l=new i.Reader(p.readString(4,!0));l.readSequence(),l.readString(2,!0),t.setPrivate(l.readString(2,!0),l.readString(2,!0),l.readString(2,!0),l.readString(2,!0),l.readString(2,!0),l.readString(2,!0),l.readString(2,!0),l.readString(2,!0))},publicExport:function(t,e){e=e||{};var r=t.n.toBuffer(),n=r.length+512,o=new i.Writer({size:n});o.writeByte(0),o.startSequence(),o.writeBuffer(r,2),o.writeInt(t.e),o.endSequence();var f=new i.Writer({size:n});return f.startSequence(),f.startSequence(),f.writeOID(s),f.writeNull(),f.endSequence(),f.writeBuffer(o.buffer,3),f.endSequence(),"der"===e.type?f.buffer:c+"\n"+a.linebrk(f.buffer.toString("base64"),64)+"\n"+h},publicImport:function(t,e,r){var f;if("der"!==(r=r||{}).type){if(n.isBuffer(e)&&(e=e.toString("utf8")),o.isString(e)){var u=a.trimSurroundingText(e,c,h).replace(/\s+|\n\r|\n|\r$/gm,"");f=n.from(u,"base64")}}else{if(!n.isBuffer(e))throw Error("Unsupported key format");f=e}var p=new i.Reader(f);if(p.readSequence(),new i.Reader(p.readString(48,!0)).readOID(6,!0)!==s)throw Error("Invalid Public key format");var l=new i.Reader(p.readString(3,!0));l.readByte(),l.readSequence(),t.setPublic(l.readString(2,!0),l.readString(2,!0))},autoImport:function(e,r){return/^[\S\s]*-----BEGIN PRIVATE KEY-----\s*(?=(([A-Za-z0-9+/=]+\s*)+))\1-----END PRIVATE KEY-----[\S\s]*$/g.test(r)?(t.exports.privateImport(e,r),!0):!!/^[\S\s]*-----BEGIN PUBLIC KEY-----\s*(?=(([A-Za-z0-9+/=]+\s*)+))\1-----END PUBLIC KEY-----[\S\s]*$/g.test(r)&&(t.exports.publicImport(e,r),!0)}}},1973:(t,e,r)=>{var n=r(8287).Buffer,i=r(3200),o=r(8226)._;function s(t,e){null!=t&&("number"==typeof t?this.fromNumber(t,e):n.isBuffer(t)?this.fromBuffer(t):null==e&&"string"!=typeof t?this.fromByteArray(t):this.fromString(t,e))}function a(){return new s(null)}s.prototype.am=function(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var f=16383&this[t],u=this[t++]>>14,c=a*f+u*s;i=((f=s*f+((16383&c)<<14)+r[n]+i)>>28)+(c>>14)+a*u,r[n++]=268435455&f}return i},s.prototype.DB=28,s.prototype.DM=268435455,s.prototype.DV=1<<28,s.prototype.FV=Math.pow(2,52),s.prototype.F1=24,s.prototype.F2=4;var f,u,c=new Array;for(f="0".charCodeAt(0),u=0;u<=9;++u)c[f++]=u;for(f="a".charCodeAt(0),u=10;u<36;++u)c[f++]=u;for(f="A".charCodeAt(0),u=10;u<36;++u)c[f++]=u;function h(t){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(t)}function p(t,e){var r=c[t.charCodeAt(e)];return null==r?-1:r}function l(t){var e=a();return e.fromInt(t),e}function y(t){var e,r=1;return 0!=(e=t>>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function g(t){this.m=t}function d(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),255&t||(t>>=8,e+=8),15&t||(t>>=4,e+=4),3&t||(t>>=2,e+=2),1&t||++e,e}function E(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function w(){}function O(t){return t}function B(t){this.r2=a(),this.q3=a(),s.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}g.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},g.prototype.revert=function(t){return t},g.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},g.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},g.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},d.prototype.convert=function(t){var e=a();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(s.ZERO)>0&&this.m.subTo(e,e),e},d.prototype.revert=function(t){var e=a();return t.copyTo(e),this.reduce(e),e},d.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},d.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},d.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},w.prototype.convert=O,w.prototype.revert=O,w.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r)},w.prototype.sqrTo=function(t,e){t.squareTo(e)},B.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=a();return t.copyTo(e),this.reduce(e),e},B.prototype.revert=function(t){return t},B.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},B.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},B.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)};var A=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],x=(1<<26)/A[A.length-1];s.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},s.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+DV:this.t=0},s.prototype.fromString=function(t,e,r){var n;switch(e){case 2:n=1;break;case 4:n=2;break;case 8:n=3;break;case 16:n=4;break;case 32:n=5;break;case 256:n=8;break;default:return void this.fromRadix(t,e)}this.t=0,this.s=0;for(var i=t.length,o=!1,a=0;--i>=0;){var f=8==n?255&t[i]:p(t,i);f<0?"-"==t.charAt(i)&&(o=!0):(o=!1,0===a?this[this.t++]=f:a+n>this.DB?(this[this.t-1]|=(f&(1<>this.DB-a):this[this.t-1]|=f<=this.DB&&(a-=this.DB))}!r&&8==n&&128&t[0]&&(this.s=-1,a>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},s.prototype.dlShiftTo=function(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},s.prototype.drShiftTo=function(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},s.prototype.rShiftTo=function(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<>n;for(var s=r+1;s>n;n>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},s.prototype.multiplyTo=function(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},s.prototype.divRemTo=function(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t0?(n.lShiftTo(c,o),i.lShiftTo(c,r)):(n.copyTo(o),i.copyTo(r));var h=o.t,p=o[h-1];if(0!==p){var l=p*(1<1?o[h-2]>>this.F2:0),g=this.FV/l,d=(1<=0&&(r[r.t++]=1,r.subTo(_,r)),s.ONE.dlShiftTo(h,_),_.subTo(o,o);o.t=0;){var b=r[--m]==p?this.DM:Math.floor(r[m]*g+(r[m-1]+v)*d);if((r[m]+=o.am(0,b,r,S,0,h))0&&r.rShiftTo(c,r),f<0&&s.ZERO.subTo(r,r)}}},s.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(!(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},s.prototype.isEven=function(){return 0===(this.t>0?1&this[0]:this.s)},s.prototype.exp=function(t,e){if(t>4294967295||t<1)return s.ONE;var r=a(),n=a(),i=e.convert(this),o=y(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<0)e.mulTo(n,i,r);else{var f=r;r=n,n=f}return e.revert(r)},s.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},s.prototype.toRadix=function(t){if(null==t&&(t=10),0===this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=l(r),i=a(),o=a(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},s.prototype.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,a=0,f=0;f=r&&(this.dMultiply(n),this.dAddOffset(a,0),o=0,a=0))}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(a,0)),i&&s.ZERO.subTo(this,this)},s.prototype.fromNumber=function(t,e){if("number"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t),this.testBit(t-1)||this.bitwiseTo(s.ONE.shiftLeft(t-1),m,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(s.ONE.shiftLeft(t-1),this);else{var r=i.randomBytes(1+(t>>3)),n=7&t;n>0?r[0]&=(1<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},s.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},s.prototype.dAddOffset=function(t,e){if(0!==t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},s.prototype.multiplyLowerTo=function(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i=0;)r[n]=0;for(n=Math.max(e-this.t,0);n0)if(0===e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},s.prototype.millerRabin=function(t){var e=this.subtract(s.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var n=e.shiftRight(r);(t=t+1>>1)>A.length&&(t=A.length);for(var i=a(),o=0;o0)for(a>a)>0&&(i=!0,o=h(r));s>=0;)a>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=h(r));return i?o:"0"},s.prototype.negate=function(){var t=a();return s.ZERO.subTo(this,t),t},s.prototype.abs=function(){return this.s<0?this.negate():this},s.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},s.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+y(this[this.t-1]^this.s&this.DM)},s.prototype.mod=function(t){var e=a();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(s.ZERO)>0&&t.subTo(e,e),e},s.prototype.modPowInt=function(t,e){var r;return r=t<256||e.isEven()?new g(e):new d(e),this.exp(t,r)},s.prototype.clone=function(){var t=a();return this.copyTo(t),t},s.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0===this.t)return-1}else{if(1==this.t)return this[0];if(0===this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<>24},s.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},s.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},s.prototype.toByteArray=function(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<=0;)n<8?(r=(this[t]&(1<>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),128&r&&(r|=-256),0===i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},s.prototype.toBuffer=function(t){var e=n.from(this.toByteArray());if(!0===t&&0===e[0])e=e.slice(1);else if(o.isNumber(t)){if(e.length>t){for(var r=0;r0?this:t},s.prototype.and=function(t){var e=a();return this.bitwiseTo(t,v,e),e},s.prototype.or=function(t){var e=a();return this.bitwiseTo(t,m,e),e},s.prototype.xor=function(t){var e=a();return this.bitwiseTo(t,S,e),e},s.prototype.andNot=function(t){var e=a();return this.bitwiseTo(t,_,e),e},s.prototype.not=function(){for(var t=a(),e=0;e=this.t?0!=this.s:!!(this[e]&1<1){var h=a();for(n.sqrTo(s[1],h);f<=c;)s[f]=a(),n.mulTo(h,s[f-2],s[f]),f+=2}var p,v,m=t.t-1,S=!0,_=a();for(i=y(t[m])-1;m>=0;){for(i>=u?p=t[m]>>i-u&c:(p=(t[m]&(1<0&&(p|=t[m-1]>>this.DB+i-u)),f=r;!(1&p);)p>>=1,--f;if((i-=f)<0&&(i+=this.DB,--m),S)s[p].copyTo(o),S=!1;else{for(;f>1;)n.sqrTo(o,_),n.sqrTo(_,o),f-=2;f>0?n.sqrTo(o,_):(v=o,o=_,_=v),n.mulTo(_,s[p],o)}for(;m>=0&&!(t[m]&1<=0?(r.subTo(n,r),e&&i.subTo(a,i),o.subTo(f,o)):(n.subTo(r,n),e&&a.subTo(i,a),f.subTo(o,f))}return 0!=n.compareTo(s.ONE)?s.ZERO:f.compareTo(t)>=0?f.subtract(t):f.signum()<0?(f.addTo(t,f),f.signum()<0?f.add(t):f):f},s.prototype.pow=function(t){return this.exp(t,new w)},s.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},s.prototype.isProbablePrime=function(t){var e,r=this.abs();if(1==r.t&&r[0]<=A[A.length-1]){for(e=0;e{var n=r(8287).Buffer,i=r(8226)._,o=(r(3200),r(1973)),s=r(8226),a=r(1768),f=r(4538);e.BigInteger=o,t.exports.Key=function(){function t(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}return t.prototype.setOptions=function(t){var e=a[t.signingScheme],r=a[t.encryptionScheme];e===r?this.signingScheme=this.encryptionScheme=r.makeScheme(this,t):(this.encryptionScheme=r.makeScheme(this,t),this.signingScheme=e.makeScheme(this,t)),this.encryptEngine=f.getEngine(this,t)},t.prototype.generate=function(t,e){var r=t>>1;this.e=parseInt(e,16);for(var n=new o(e,16);;){for(;this.p=new o(t-r,1),0!==this.p.subtract(o.ONE).gcd(n).compareTo(o.ONE)||!this.p.isProbablePrime(10););for(;this.q=new o(r,1),0!==this.q.subtract(o.ONE).gcd(n).compareTo(o.ONE)||!this.q.isProbablePrime(10););if(this.p.compareTo(this.q)<=0){var i=this.p;this.p=this.q,this.q=i}var s=this.p.subtract(o.ONE),a=this.q.subtract(o.ONE),f=s.multiply(a);if(0===f.gcd(n).compareTo(o.ONE)){if(this.n=this.p.multiply(this.q),this.n.bitLength()0&&(i.isNumber(e)||e.length>0)&&r.length>0))throw Error("Invalid RSA private key");this.n=new o(t),this.e=i.isNumber(e)?e:s.get32IntFromBuffer(e,0),this.d=new o(r),n&&a&&f&&u&&c&&(this.p=new o(n),this.q=new o(a),this.dmp1=new o(f),this.dmq1=new o(u),this.coeff=new o(c)),this.$$recalculateCache()},t.prototype.setPublic=function(t,e){if(!(t&&e&&t.length>0&&(i.isNumber(e)||e.length>0)))throw Error("Invalid RSA public key");this.n=new o(t),this.e=i.isNumber(e)?e:s.get32IntFromBuffer(e,0),this.$$recalculateCache()},t.prototype.$doPrivate=function(t){if(this.p||this.q)return t.modPow(this.d,this.n);for(var e=t.mod(this.p).modPow(this.dmp1,this.p),r=t.mod(this.q).modPow(this.dmq1,this.q);e.compareTo(r)<0;)e=e.add(this.p);return e.subtract(r).multiply(this.coeff).mod(this.p).multiply(this.q).add(r)},t.prototype.$doPublic=function(t){return t.modPowInt(this.e,this.n)},t.prototype.encrypt=function(t,e){var r=[],i=[],o=t.length,s=Math.ceil(o/this.maxMessageLength)||1,a=Math.ceil(o/s||1);if(1==s)r.push(t);else for(var f=0;f0)throw Error("Incorrect data or key");for(var r=[],i=0,o=0,s=t.length/this.encryptedDataLength,a=0;a>3},t}()},2487:(t,e,r)=>{var n=r(8287).Buffer,i=(r(1973),r(3200));t.exports={isEncryption:!0,isSignature:!1},t.exports.digestLength={md4:16,md5:16,ripemd160:20,rmd160:20,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64};var o="sha1";t.exports.eme_oaep_mgf1=function(e,r,s){s=s||o;for(var a=t.exports.digestLength[s],f=Math.ceil(r/a),u=n.alloc(a*f),c=n.alloc(4),h=0;hf-2*u-2)throw new Error("Message is too long to encode into an encoded message with a length of "+f+" bytes, increaseemLen to fix this error (minimum value for given parameters and options: "+(f-2*u-2)+")");var c=i.createHash(r);c.update(a),c=c.digest();var h=n.alloc(f-e.length-2*u-1);h.fill(0),h[h.length-1]=1;for(var p=n.concat([c,h,e]),l=i.randomBytes(u),y=s(l,p.length,r),g=0;g{var n=r(8287).Buffer,i=r(1973),o=r(3200),s=r(7449),a={md2:n.from("3020300c06082a864886f70d020205000410","hex"),md5:n.from("3020300c06082a864886f70d020505000410","hex"),sha1:n.from("3021300906052b0e03021a05000414","hex"),sha224:n.from("302d300d06096086480165030402040500041c","hex"),sha256:n.from("3031300d060960864801650304020105000420","hex"),sha384:n.from("3041300d060960864801650304020205000430","hex"),sha512:n.from("3051300d060960864801650304020305000440","hex"),ripemd160:n.from("3021300906052b2403020105000414","hex"),rmd160:n.from("3021300906052b2403020105000414","hex")},f={ripemd160:"rmd160"},u="sha256";t.exports={isEncryption:!0,isSignature:!0},t.exports.makeScheme=function(t,e){function r(t,e){this.key=t,this.options=e}return r.prototype.maxMessageLength=function(){return this.options.encryptionSchemeOptions&&this.options.encryptionSchemeOptions.padding==s.RSA_NO_PADDING?this.key.encryptedDataLength:this.key.encryptedDataLength-11},r.prototype.encPad=function(t,e){var r;if(e=e||{},t.length>this.key.maxMessageLength)throw new Error("Message too long for RSA (n="+this.key.encryptedDataLength+", l="+t.length+")");if(this.options.encryptionSchemeOptions&&this.options.encryptionSchemeOptions.padding==s.RSA_NO_PADDING)return(r=n.alloc(this.key.maxMessageLength-t.length)).fill(0),n.concat([r,t]);if(1===e.type)return(r=n.alloc(this.key.encryptedDataLength-t.length-1)).fill(255,0,r.length-1),r[0]=1,r[r.length-1]=0,n.concat([r,t]);(r=n.alloc(this.key.encryptedDataLength-t.length))[0]=0,r[1]=2;for(var i=o.randomBytes(r.length-3),a=0;a=t.length)return null}else{if(0!==t[0]||2!==t[1])return null;for(r=3;0!==t[r];)if(++r>=t.length)return null}return t.slice(r+1,t.length)},r.prototype.sign=function(t){var e=this.options.signingSchemeOptions.hash||u;if("browser"===this.options.environment){e=f[e]||e;var r=o.createHash(e);r.update(t);var n=this.pkcs1pad(r.digest(),e);return this.key.$doPrivate(new i(n)).toBuffer(this.key.encryptedDataLength)}var s=o.createSign("RSA-"+e.toUpperCase());return s.update(t),s.sign(this.options.rsaUtils.exportKey("private"))},r.prototype.verify=function(t,e,r){if(this.options.encryptionSchemeOptions&&this.options.encryptionSchemeOptions.padding==s.RSA_NO_PADDING)return!1;var a=this.options.signingSchemeOptions.hash||u;if("browser"===this.options.environment){a=f[a]||a,r&&(e=n.from(e,r));var c=o.createHash(a);c.update(t);var h=this.pkcs1pad(c.digest(),a);return this.key.$doPublic(new i(e)).toBuffer().toString("hex")==h.toString("hex")}var p=o.createVerify("RSA-"+a.toUpperCase());return p.update(t),p.verify(this.options.rsaUtils.exportKey("public"),e,r)},r.prototype.pkcs0pad=function(t){var e=n.alloc(this.key.maxMessageLength-t.length);return e.fill(0),n.concat([e,t])},r.prototype.pkcs0unpad=function(t){return"function"==typeof t.lastIndexOf?t.slice(t.lastIndexOf("\0")+1,t.length):t.slice(String.prototype.lastIndexOf.call(t,"\0")+1,t.length)},r.prototype.pkcs1pad=function(t,e){var r=a[e];if(!r)throw Error("Unsupported hash algorithm");var i=n.concat([r,t]);if(i.length+10>this.key.encryptedDataLength)throw Error("Key is too short for signing algorithm ("+e+")");var o=n.alloc(this.key.encryptedDataLength-i.length-1);return o.fill(255,0,o.length-1),o[0]=1,o[o.length-1]=0,n.concat([o,i])},new r(t,e)}},4414:(t,e,r)=>{var n=r(8287).Buffer,i=r(1973),o=r(3200);t.exports={isEncryption:!1,isSignature:!0};var s="sha1";t.exports.makeScheme=function(t,e){var a=r(1768).pkcs1_oaep;function f(t,e){this.key=t,this.options=e}return f.prototype.sign=function(t){var e=o.createHash(this.options.signingSchemeOptions.hash||s);e.update(t);var r=this.emsa_pss_encode(e.digest(),this.key.keySize-1);return this.key.$doPrivate(new i(r)).toBuffer(this.key.encryptedDataLength)},f.prototype.verify=function(t,e,r){r&&(e=n.from(e,r)),e=new i(e);var a=Math.ceil((this.key.keySize-1)/8),f=this.key.$doPublic(e).toBuffer(a),u=o.createHash(this.options.signingSchemeOptions.hash||s);return u.update(t),this.emsa_pss_verify(u.digest(),f,this.key.keySize-1)},f.prototype.emsa_pss_encode=function(t,e){var r=this.options.signingSchemeOptions.hash||s,i=this.options.signingSchemeOptions.mgf||a.eme_oaep_mgf1,f=this.options.signingSchemeOptions.saltLength||20,u=a.digestLength[r],c=Math.ceil(e/8);if(c>8-S<<8-S;v[0]=v[0]&_;var b=n.alloc(v.length+l.length+1);return v.copy(b,0),l.copy(b,v.length),b[b.length-1]=188,b},f.prototype.emsa_pss_verify=function(t,e,r){var i=this.options.signingSchemeOptions.hash||s,f=this.options.signingSchemeOptions.mgf||a.eme_oaep_mgf1,u=this.options.signingSchemeOptions.saltLength||20,c=a.digestLength[i],h=Math.ceil(r/8);if(h>8-(g=8*h-r)<<8-g,p[0]=p[0]&l,y=0;0===p[y]&&y{t.exports={pkcs1:r(8290),pkcs1_oaep:r(2487),pss:r(4414),isEncryption:function(e){return t.exports[e]&&t.exports[e].isEncryption},isSignature:function(e){return t.exports[e]&&t.exports[e].isSignature}}},8226:(t,e,r)=>{var n=r(5606);r(3200),t.exports.linebrk=function(t,e){for(var r="",n=0;n+e0){if(r>=4)return t.readUIntBE(e,r);for(var n=0,i=e+r,o=0;i>e;i--,o+=2)n+=t[i-1]*Math.pow(16,o);return n}return NaN},t.exports._={isObject:function(t){var e=typeof t;return!!t&&("object"==e||"function"==e)},isString:function(t){return"string"==typeof t||t instanceof String},isNumber:function(t){return"number"==typeof t||!isNaN(parseFloat(t))&&isFinite(t)},omit:function(t,e){var r={};for(var n in t)t.hasOwnProperty(n)&&n!==e&&(r[n]=t[n]);return r}},t.exports.trimSurroundingText=function(t,e,r){var n=0,i=t.length,o=t.indexOf(e);o>=0&&(n=o+e.length);var s=t.indexOf(r,o);return s>=0&&(i=s),t.substring(n,i)}},8875:(t,e,r)=>{"use strict";var n;if(!Object.keys){var i=Object.prototype.hasOwnProperty,o=Object.prototype.toString,s=r(1093),a=Object.prototype.propertyIsEnumerable,f=!a.call({toString:null},"toString"),u=a.call((function(){}),"prototype"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],h=function(t){var e=t.constructor;return e&&e.prototype===t},p={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},l=function(){if("undefined"==typeof window)return!1;for(var t in window)try{if(!p["$"+t]&&i.call(window,t)&&null!==window[t]&&"object"==typeof window[t])try{h(window[t])}catch(t){return!0}}catch(t){return!0}return!1}();n=function(t){var e=null!==t&&"object"==typeof t,r="[object Function]"===o.call(t),n=s(t),a=e&&"[object String]"===o.call(t),p=[];if(!e&&!r&&!n)throw new TypeError("Object.keys called on a non-object");var y=u&&r;if(a&&t.length>0&&!i.call(t,0))for(var g=0;g0)for(var d=0;d{"use strict";var n=Array.prototype.slice,i=r(1093),o=Object.keys,s=o?function(t){return o(t)}:r(8875),a=Object.keys;s.shim=function(){if(Object.keys){var t=function(){var t=Object.keys(arguments);return t&&t.length===arguments.length}(1,2);t||(Object.keys=function(t){return i(t)?a(n.call(t)):a(t)})}else Object.keys=s;return Object.keys||s},t.exports=s},1093:t=>{"use strict";var e=Object.prototype.toString;t.exports=function(t){var r=e.call(t),n="[object Arguments]"===r;return n||(n="[object Array]"!==r&&null!==t&&"object"==typeof t&&"number"==typeof t.length&&t.length>=0&&"[object Function]"===e.call(t.callee)),n}},8403:(t,e,r)=>{"use strict";var n=r(1189),i=r(1333)(),o=r(8075),s=Object,a=o("Array.prototype.push"),f=o("Object.prototype.propertyIsEnumerable"),u=i?Object.getOwnPropertySymbols:null;t.exports=function(t,e){if(null==t)throw new TypeError("target must be an object");var r=s(t);if(1===arguments.length)return r;for(var o=1;o{"use strict";var n=r(8403);t.exports=function(){return Object.assign?function(){if(!Object.assign)return!1;for(var t="abcdefghijklmnopqrst",e=t.split(""),r={},n=0;n{var e,r,n=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(t){if(e===setTimeout)return setTimeout(t,0);if((e===i||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(r){try{return e.call(null,t,0)}catch(r){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:i}catch(t){e=i}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(t){r=o}}();var a,f=[],u=!1,c=-1;function h(){u&&a&&(u=!1,a.length?f=a.concat(f):c=-1,f.length&&p())}function p(){if(!u){var t=s(h);u=!0;for(var e=f.length;e;){for(a=f,f=[];++c1)for(var r=1;r{"use strict";var n,i=r(5606),o=r(8287),s=o.Buffer,a={};for(n in o)o.hasOwnProperty(n)&&"SlowBuffer"!==n&&"Buffer"!==n&&(a[n]=o[n]);var f=a.Buffer={};for(n in s)s.hasOwnProperty(n)&&"allocUnsafe"!==n&&"allocUnsafeSlow"!==n&&(f[n]=s[n]);if(a.Buffer.prototype=s.prototype,f.from&&f.from!==Uint8Array.from||(f.from=function(t,e,r){if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof t);if(t&&void 0===t.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);return s(t,e,r)}),f.alloc||(f.alloc=function(t,e,r){if("number"!=typeof t)throw new TypeError('The "size" argument must be of type number. Received type '+typeof t);if(t<0||t>=2*(1<<30))throw new RangeError('The value "'+t+'" is invalid for option "size"');var n=s(t);return e&&0!==e.length?"string"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n}),!a.kStringMaxLength)try{a.kStringMaxLength=i.binding("buffer").kStringMaxLength}catch(t){}a.constants||(a.constants={MAX_LENGTH:a.kMaxLength},a.kStringMaxLength&&(a.constants.MAX_STRING_LENGTH=a.kStringMaxLength)),t.exports=a},6897:(t,e,r)=>{"use strict";var n=r(453),i=r(41),o=r(592)(),s=r(5795),a=r(9675),f=n("%Math.floor%");t.exports=function(t,e){if("function"!=typeof t)throw new a("`fn` is not a function");if("number"!=typeof e||e<0||e>4294967295||f(e)!==e)throw new a("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],n=!0,u=!0;if("length"in t&&s){var c=s(t,"length");c&&!c.configurable&&(n=!1),c&&!c.writable&&(u=!1)}return(n||u||!r)&&(o?i(t,"length",e,!0,!0):i(t,"length",e)),t}},3200:(t,e,r)=>{var n=r(8287).Buffer,i=r(1396),o={randomBytes:function(t){for(var e=[],r=0;r{var n=r(8287).Buffer;const i=r(3229);let o={outputEncoding:"",PublicFormat:"pkcs1-public",PrivateFormat:"pkcs1-private",options:{environment:"browser",encryptionScheme:"pkcs1"}};t.exports={NodeRSA:i,encryptRSAWithPublicKey:function(t,e,r={}){return r=Object.assign({},o,r),new i(e,r.PublicFormat,r.options).encrypt(t,r.outEncoding||"base64")},encryptRSAWithPrivateKey:function(t,e,r={}){return r=Object.assign({},o,r),new i(e,r.PrivateFormat,r.options).encryptPrivate(t,r.outputEncoding||"base64")},decryptRSAWithPublicKey:function(t,e,r={}){return r=Object.assign({},o,r),new i(e,r.PublicEncoding,r.options).decryptPublic(t,r.outEncoding||"utf8")},decryptRSAWithPrivateKey:function(t,e,r={}){return r=Object.assign({},o,r),new i(e,r.PrivateEncoding,r.options).decrypt(t,r.outEncoding||"utf8")},sign:function(t,e,r={}){return r=Object.assign({},o,r),new i(e,r.PrivateEncoding,r.options).sign(t,r.outEncoding||"base64")},verify:function(t,e,r,s={}){return"string"==typeof e&&e.match(/^([0-9a-fA-F]{2})*$/)?e=n.from(e,"hex"):"string"==typeof e&&(e=n.from(e,"base64")),s=Object.assign({},o,s),new i(r,s.PublicEncoding,s.options).verify(t,e)}}},7449:t=>{"use strict";t.exports=JSON.parse('{"O_RDONLY":0,"O_WRONLY":1,"O_RDWR":2,"S_IFMT":61440,"S_IFREG":32768,"S_IFDIR":16384,"S_IFCHR":8192,"S_IFBLK":24576,"S_IFIFO":4096,"S_IFLNK":40960,"S_IFSOCK":49152,"O_CREAT":512,"O_EXCL":2048,"O_NOCTTY":131072,"O_TRUNC":1024,"O_APPEND":8,"O_DIRECTORY":1048576,"O_NOFOLLOW":256,"O_SYNC":128,"O_SYMLINK":2097152,"O_NONBLOCK":4,"S_IRWXU":448,"S_IRUSR":256,"S_IWUSR":128,"S_IXUSR":64,"S_IRWXG":56,"S_IRGRP":32,"S_IWGRP":16,"S_IXGRP":8,"S_IRWXO":7,"S_IROTH":4,"S_IWOTH":2,"S_IXOTH":1,"E2BIG":7,"EACCES":13,"EADDRINUSE":48,"EADDRNOTAVAIL":49,"EAFNOSUPPORT":47,"EAGAIN":35,"EALREADY":37,"EBADF":9,"EBADMSG":94,"EBUSY":16,"ECANCELED":89,"ECHILD":10,"ECONNABORTED":53,"ECONNREFUSED":61,"ECONNRESET":54,"EDEADLK":11,"EDESTADDRREQ":39,"EDOM":33,"EDQUOT":69,"EEXIST":17,"EFAULT":14,"EFBIG":27,"EHOSTUNREACH":65,"EIDRM":90,"EILSEQ":92,"EINPROGRESS":36,"EINTR":4,"EINVAL":22,"EIO":5,"EISCONN":56,"EISDIR":21,"ELOOP":62,"EMFILE":24,"EMLINK":31,"EMSGSIZE":40,"EMULTIHOP":95,"ENAMETOOLONG":63,"ENETDOWN":50,"ENETRESET":52,"ENETUNREACH":51,"ENFILE":23,"ENOBUFS":55,"ENODATA":96,"ENODEV":19,"ENOENT":2,"ENOEXEC":8,"ENOLCK":77,"ENOLINK":97,"ENOMEM":12,"ENOMSG":91,"ENOPROTOOPT":42,"ENOSPC":28,"ENOSR":98,"ENOSTR":99,"ENOSYS":78,"ENOTCONN":57,"ENOTDIR":20,"ENOTEMPTY":66,"ENOTSOCK":38,"ENOTSUP":45,"ENOTTY":25,"ENXIO":6,"EOPNOTSUPP":102,"EOVERFLOW":84,"EPERM":1,"EPIPE":32,"EPROTO":100,"EPROTONOSUPPORT":43,"EPROTOTYPE":41,"ERANGE":34,"EROFS":30,"ESPIPE":29,"ESRCH":3,"ESTALE":70,"ETIME":101,"ETIMEDOUT":60,"ETXTBSY":26,"EWOULDBLOCK":35,"EXDEV":18,"SIGHUP":1,"SIGINT":2,"SIGQUIT":3,"SIGILL":4,"SIGTRAP":5,"SIGABRT":6,"SIGIOT":6,"SIGBUS":10,"SIGFPE":8,"SIGKILL":9,"SIGUSR1":30,"SIGSEGV":11,"SIGUSR2":31,"SIGPIPE":13,"SIGALRM":14,"SIGTERM":15,"SIGCHLD":20,"SIGCONT":19,"SIGSTOP":17,"SIGTSTP":18,"SIGTTIN":21,"SIGTTOU":22,"SIGURG":16,"SIGXCPU":24,"SIGXFSZ":25,"SIGVTALRM":26,"SIGPROF":27,"SIGWINCH":28,"SIGIO":23,"SIGSYS":12,"SSL_OP_ALL":2147486719,"SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION":262144,"SSL_OP_CIPHER_SERVER_PREFERENCE":4194304,"SSL_OP_CISCO_ANYCONNECT":32768,"SSL_OP_COOKIE_EXCHANGE":8192,"SSL_OP_CRYPTOPRO_TLSEXT_BUG":2147483648,"SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS":2048,"SSL_OP_EPHEMERAL_RSA":0,"SSL_OP_LEGACY_SERVER_CONNECT":4,"SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER":32,"SSL_OP_MICROSOFT_SESS_ID_BUG":1,"SSL_OP_MSIE_SSLV2_RSA_PADDING":0,"SSL_OP_NETSCAPE_CA_DN_BUG":536870912,"SSL_OP_NETSCAPE_CHALLENGE_BUG":2,"SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG":1073741824,"SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG":8,"SSL_OP_NO_COMPRESSION":131072,"SSL_OP_NO_QUERY_MTU":4096,"SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION":65536,"SSL_OP_NO_SSLv2":16777216,"SSL_OP_NO_SSLv3":33554432,"SSL_OP_NO_TICKET":16384,"SSL_OP_NO_TLSv1":67108864,"SSL_OP_NO_TLSv1_1":268435456,"SSL_OP_NO_TLSv1_2":134217728,"SSL_OP_PKCS1_CHECK_1":0,"SSL_OP_PKCS1_CHECK_2":0,"SSL_OP_SINGLE_DH_USE":1048576,"SSL_OP_SINGLE_ECDH_USE":524288,"SSL_OP_SSLEAY_080_CLIENT_DH_BUG":128,"SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG":0,"SSL_OP_TLS_BLOCK_PADDING_BUG":512,"SSL_OP_TLS_D5_BUG":256,"SSL_OP_TLS_ROLLBACK_BUG":8388608,"ENGINE_METHOD_DSA":2,"ENGINE_METHOD_DH":4,"ENGINE_METHOD_RAND":8,"ENGINE_METHOD_ECDH":16,"ENGINE_METHOD_ECDSA":32,"ENGINE_METHOD_CIPHERS":64,"ENGINE_METHOD_DIGESTS":128,"ENGINE_METHOD_STORE":256,"ENGINE_METHOD_PKEY_METHS":512,"ENGINE_METHOD_PKEY_ASN1_METHS":1024,"ENGINE_METHOD_ALL":65535,"ENGINE_METHOD_NONE":0,"DH_CHECK_P_NOT_SAFE_PRIME":2,"DH_CHECK_P_NOT_PRIME":1,"DH_UNABLE_TO_CHECK_GENERATOR":4,"DH_NOT_SUITABLE_GENERATOR":8,"NPN_ENABLED":1,"RSA_PKCS1_PADDING":1,"RSA_SSLV23_PADDING":2,"RSA_NO_PADDING":3,"RSA_PKCS1_OAEP_PADDING":4,"RSA_X931_PADDING":5,"RSA_PKCS1_PSS_PADDING":6,"POINT_CONVERSION_COMPRESSED":2,"POINT_CONVERSION_UNCOMPRESSED":4,"POINT_CONVERSION_HYBRID":6,"F_OK":0,"R_OK":4,"W_OK":2,"X_OK":1,"UV_UDP_REUSEADDR":4}')}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}return r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r(7033)})())); \ No newline at end of file diff --git a/zyplayer/drpy_dzlive/drpy_libs/pako.min.js b/zyplayer/drpy_dzlive/drpy_libs/pako.min.js new file mode 100644 index 0000000..05a54a2 --- /dev/null +++ b/zyplayer/drpy_dzlive/drpy_libs/pako.min.js @@ -0,0 +1,2 @@ +/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).pako={})}(this,(function(t){"use strict";function e(t){let e=t.length;for(;--e>=0;)t[e]=0}const a=256,i=286,n=30,s=15,r=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),o=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),l=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),h=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Array(576);e(d);const _=new Array(60);e(_);const f=new Array(512);e(f);const c=new Array(256);e(c);const u=new Array(29);e(u);const w=new Array(n);function m(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}let b,g,p;function k(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}e(w);const v=t=>t<256?f[t]:f[256+(t>>>7)],y=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},x=(t,e,a)=>{t.bi_valid>16-a?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<{x(t,a[2*e],a[2*e+1])},A=(t,e)=>{let a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},E=(t,e,a)=>{const i=new Array(16);let n,r,o=0;for(n=1;n<=s;n++)o=o+a[n-1]<<1,i[n]=o;for(r=0;r<=e;r++){let e=t[2*r+1];0!==e&&(t[2*r]=A(i[e]++,e))}},R=t=>{let e;for(e=0;e{t.bi_valid>8?y(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},U=(t,e,a,i)=>{const n=2*e,s=2*a;return t[n]{const i=t.heap[a];let n=a<<1;for(;n<=t.heap_len&&(n{let n,s,l,h,d=0;if(0!==t.sym_next)do{n=255&t.pending_buf[t.sym_buf+d++],n+=(255&t.pending_buf[t.sym_buf+d++])<<8,s=t.pending_buf[t.sym_buf+d++],0===n?z(t,s,e):(l=c[s],z(t,l+a+1,e),h=r[l],0!==h&&(s-=u[l],x(t,s,h)),n--,l=v(n),z(t,l,i),h=o[l],0!==h&&(n-=w[l],x(t,n,h)))}while(d{const a=e.dyn_tree,i=e.stat_desc.static_tree,n=e.stat_desc.has_stree,r=e.stat_desc.elems;let o,l,h,d=-1;for(t.heap_len=0,t.heap_max=573,o=0;o>1;o>=1;o--)S(t,a,o);h=r;do{o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],S(t,a,1),l=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=l,a[2*h]=a[2*o]+a[2*l],t.depth[h]=(t.depth[o]>=t.depth[l]?t.depth[o]:t.depth[l])+1,a[2*o+1]=a[2*l+1]=h,t.heap[1]=h++,S(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const a=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,l=e.stat_desc.extra_base,h=e.stat_desc.max_length;let d,_,f,c,u,w,m=0;for(c=0;c<=s;c++)t.bl_count[c]=0;for(a[2*t.heap[t.heap_max]+1]=0,d=t.heap_max+1;d<573;d++)_=t.heap[d],c=a[2*a[2*_+1]+1]+1,c>h&&(c=h,m++),a[2*_+1]=c,_>i||(t.bl_count[c]++,u=0,_>=l&&(u=o[_-l]),w=a[2*_],t.opt_len+=w*(c+u),r&&(t.static_len+=w*(n[2*_+1]+u)));if(0!==m){do{for(c=h-1;0===t.bl_count[c];)c--;t.bl_count[c]--,t.bl_count[c+1]+=2,t.bl_count[h]--,m-=2}while(m>0);for(c=h;0!==c;c--)for(_=t.bl_count[c];0!==_;)f=t.heap[--d],f>i||(a[2*f+1]!==c&&(t.opt_len+=(c-a[2*f+1])*a[2*f],a[2*f+1]=c),_--)}})(t,e),E(a,d,t.bl_count)},O=(t,e,a)=>{let i,n,s=-1,r=e[1],o=0,l=7,h=4;for(0===r&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=r,r=e[2*(i+1)+1],++o{let i,n,s=-1,r=e[1],o=0,l=7,h=4;for(0===r&&(l=138,h=3),i=0;i<=a;i++)if(n=r,r=e[2*(i+1)+1],!(++o{x(t,0+(i?1:0),3),Z(t),y(t,a),y(t,~a),a&&t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a};var N=(t,e,i,n)=>{let s,r,o=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e{let e;for(O(t,t.dyn_ltree,t.l_desc.max_code),O(t,t.dyn_dtree,t.d_desc.max_code),T(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*h[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),s=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=s&&(s=r)):s=r=i+5,i+4<=s&&-1!==e?L(t,e,i,n):4===t.strategy||r===s?(x(t,2+(n?1:0),3),D(t,d,_)):(x(t,4+(n?1:0),3),((t,e,a,i)=>{let n;for(x(t,e-257,5),x(t,a-1,5),x(t,i-4,4),n=0;n{F||((()=>{let t,e,a,h,k;const v=new Array(16);for(a=0,h=0;h<28;h++)for(u[h]=a,t=0;t<1<>=7;h(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=i,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(c[i]+a+1)]++,t.dyn_dtree[2*v(e)]++),t.sym_next===t.sym_end),_tr_align:t=>{x(t,2,3),z(t,256,d),(t=>{16===t.bi_valid?(y(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}};var C=(t,e,a,i)=>{let n=65535&t|0,s=t>>>16&65535|0,r=0;for(;0!==a;){r=a>2e3?2e3:a,a-=r;do{n=n+e[i++]|0,s=s+n|0}while(--r);n%=65521,s%=65521}return n|s<<16|0};const M=new Uint32Array((()=>{let t,e=[];for(var a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e})());var H=(t,e,a,i)=>{const n=M,s=i+a;t^=-1;for(let a=i;a>>8^n[255&(t^e[a])];return-1^t},j={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},K={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:P,_tr_stored_block:Y,_tr_flush_block:G,_tr_tally:X,_tr_align:W}=B,{Z_NO_FLUSH:q,Z_PARTIAL_FLUSH:J,Z_FULL_FLUSH:Q,Z_FINISH:V,Z_BLOCK:$,Z_OK:tt,Z_STREAM_END:et,Z_STREAM_ERROR:at,Z_DATA_ERROR:it,Z_BUF_ERROR:nt,Z_DEFAULT_COMPRESSION:st,Z_FILTERED:rt,Z_HUFFMAN_ONLY:ot,Z_RLE:lt,Z_FIXED:ht,Z_DEFAULT_STRATEGY:dt,Z_UNKNOWN:_t,Z_DEFLATED:ft}=K,ct=258,ut=262,wt=42,mt=113,bt=666,gt=(t,e)=>(t.msg=j[e],e),pt=t=>2*t-(t>4?9:0),kt=t=>{let e=t.length;for(;--e>=0;)t[e]=0},vt=t=>{let e,a,i,n=t.w_size;e=t.hash_size,i=e;do{a=t.head[--i],t.head[i]=a>=n?a-n:0}while(--e);e=n,i=e;do{a=t.prev[--i],t.prev[i]=a>=n?a-n:0}while(--e)};let yt=(t,e,a)=>(e<{const e=t.state;let a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},zt=(t,e)=>{G(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,xt(t.strm)},At=(t,e)=>{t.pending_buf[t.pending++]=e},Et=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},Rt=(t,e,a,i)=>{let n=t.avail_in;return n>i&&(n=i),0===n?0:(t.avail_in-=n,e.set(t.input.subarray(t.next_in,t.next_in+n),a),1===t.state.wrap?t.adler=C(t.adler,e,n,a):2===t.state.wrap&&(t.adler=H(t.adler,e,n,a)),t.next_in+=n,t.total_in+=n,n)},Zt=(t,e)=>{let a,i,n=t.max_chain_length,s=t.strstart,r=t.prev_length,o=t.nice_match;const l=t.strstart>t.w_size-ut?t.strstart-(t.w_size-ut):0,h=t.window,d=t.w_mask,_=t.prev,f=t.strstart+ct;let c=h[s+r-1],u=h[s+r];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(a=e,h[a+r]===u&&h[a+r-1]===c&&h[a]===h[s]&&h[++a]===h[s+1]){s+=2,a++;do{}while(h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&sr){if(t.match_start=e,r=i,i>=o)break;c=h[s+r-1],u=h[s+r]}}}while((e=_[e&d])>l&&0!=--n);return r<=t.lookahead?r:t.lookahead},Ut=t=>{const e=t.w_size;let a,i,n;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ut)&&(t.window.set(t.window.subarray(e,e+e-i),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),vt(t),i+=e),0===t.strm.avail_in)break;if(a=Rt(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=a,t.lookahead+t.insert>=3)for(n=t.strstart-t.insert,t.ins_h=t.window[n],t.ins_h=yt(t,t.ins_h,t.window[n+1]);t.insert&&(t.ins_h=yt(t,t.ins_h,t.window[n+3-1]),t.prev[n&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=n,n++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead{let a,i,n,s=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r=0,o=t.strm.avail_in;do{if(a=65535,n=t.bi_valid+42>>3,t.strm.avail_outi+t.strm.avail_in&&(a=i+t.strm.avail_in),a>n&&(a=n),a>8,t.pending_buf[t.pending-2]=~a,t.pending_buf[t.pending-1]=~a>>8,xt(t.strm),i&&(i>a&&(i=a),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,a-=i),a&&(Rt(t.strm,t.strm.output,t.strm.next_out,a),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a)}while(0===r);return o-=t.strm.avail_in,o&&(o>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=o&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-o,t.strm.next_in),t.strstart),t.strstart+=o,t.insert+=o>t.w_size-t.insert?t.w_size-t.insert:o),t.block_start=t.strstart),t.high_watern&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,n+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),n>t.strm.avail_in&&(n=t.strm.avail_in),n&&(Rt(t.strm,t.window,t.strstart,n),t.strstart+=n,t.insert+=n>t.w_size-t.insert?t.w_size-t.insert:n),t.high_water>3,n=t.pending_buf_size-n>65535?65535:t.pending_buf_size-n,s=n>t.w_size?t.w_size:n,i=t.strstart-t.block_start,(i>=s||(i||e===V)&&e!==q&&0===t.strm.avail_in&&i<=n)&&(a=i>n?n:i,r=e===V&&0===t.strm.avail_in&&a===i?1:0,Y(t,t.block_start,a,r),t.block_start+=a,xt(t.strm)),r?3:1)},Dt=(t,e)=>{let a,i;for(;;){if(t.lookahead=3&&(t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-ut&&(t.match_length=Zt(t,a)),t.match_length>=3)if(i=X(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=yt(t,t.ins_h,t.window[t.strstart+1]);else i=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(zt(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2},Tt=(t,e)=>{let a,i,n;for(;;){if(t.lookahead=3&&(t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,i=X(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(zt(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=X(t,0,t.window[t.strstart-1]),i&&zt(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=X(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2};function Ot(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n}const It=[new Ot(0,0,0,0,St),new Ot(4,4,8,4,Dt),new Ot(4,5,16,8,Dt),new Ot(4,6,32,32,Dt),new Ot(4,4,16,16,Tt),new Ot(8,16,32,32,Tt),new Ot(8,16,128,128,Tt),new Ot(8,32,128,256,Tt),new Ot(32,128,258,1024,Tt),new Ot(32,258,258,4096,Tt)];function Ft(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ft,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),kt(this.dyn_ltree),kt(this.dyn_dtree),kt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),kt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),kt(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Lt=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==wt&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==mt&&e.status!==bt?1:0},Nt=t=>{if(Lt(t))return gt(t,at);t.total_in=t.total_out=0,t.data_type=_t;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?wt:mt,t.adler=2===e.wrap?0:1,e.last_flush=-2,P(e),tt},Bt=t=>{const e=Nt(t);var a;return e===tt&&((a=t.state).window_size=2*a.w_size,kt(a.head),a.max_lazy_match=It[a.level].max_lazy,a.good_match=It[a.level].good_length,a.nice_match=It[a.level].nice_length,a.max_chain_length=It[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e},Ct=(t,e,a,i,n,s)=>{if(!t)return at;let r=1;if(e===st&&(e=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),n<1||n>9||a!==ft||i<8||i>15||e<0||e>9||s<0||s>ht||8===i&&1!==r)return gt(t,at);8===i&&(i=9);const o=new Ft;return t.state=o,o.strm=t,o.status=wt,o.wrap=r,o.gzhead=null,o.w_bits=i,o.w_size=1<Ct(t,e,ft,15,8,dt),deflateInit2:Ct,deflateReset:Bt,deflateResetKeep:Nt,deflateSetHeader:(t,e)=>Lt(t)||2!==t.state.wrap?at:(t.state.gzhead=e,tt),deflate:(t,e)=>{if(Lt(t)||e>$||e<0)return t?gt(t,at):at;const a=t.state;if(!t.output||0!==t.avail_in&&!t.input||a.status===bt&&e!==V)return gt(t,0===t.avail_out?nt:at);const i=a.last_flush;if(a.last_flush=e,0!==a.pending){if(xt(t),0===t.avail_out)return a.last_flush=-1,tt}else if(0===t.avail_in&&pt(e)<=pt(i)&&e!==V)return gt(t,nt);if(a.status===bt&&0!==t.avail_in)return gt(t,nt);if(a.status===wt&&0===a.wrap&&(a.status=mt),a.status===wt){let e=ft+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=ot||a.level<2?0:a.level<6?1:6===a.level?2:3,e|=i<<6,0!==a.strstart&&(e|=32),e+=31-e%31,Et(a,e),0!==a.strstart&&(Et(a,t.adler>>>16),Et(a,65535&t.adler)),t.adler=1,a.status=mt,xt(t),0!==a.pending)return a.last_flush=-1,tt}if(57===a.status)if(t.adler=0,At(a,31),At(a,139),At(a,8),a.gzhead)At(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),At(a,255&a.gzhead.time),At(a,a.gzhead.time>>8&255),At(a,a.gzhead.time>>16&255),At(a,a.gzhead.time>>24&255),At(a,9===a.level?2:a.strategy>=ot||a.level<2?4:0),At(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(At(a,255&a.gzhead.extra.length),At(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(t.adler=H(t.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(At(a,0),At(a,0),At(a,0),At(a,0),At(a,0),At(a,9===a.level?2:a.strategy>=ot||a.level<2?4:0),At(a,3),a.status=mt,xt(t),0!==a.pending)return a.last_flush=-1,tt;if(69===a.status){if(a.gzhead.extra){let e=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let n=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+n),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>e&&(t.adler=H(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex+=n,xt(t),0!==a.pending)return a.last_flush=-1,tt;e=0,i-=n}let n=new Uint8Array(a.gzhead.extra);a.pending_buf.set(n.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>e&&(t.adler=H(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=H(t.adler,a.pending_buf,a.pending-i,i)),xt(t),0!==a.pending)return a.last_flush=-1,tt;i=0}e=a.gzindexi&&(t.adler=H(t.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=H(t.adler,a.pending_buf,a.pending-i,i)),xt(t),0!==a.pending)return a.last_flush=-1,tt;i=0}e=a.gzindexi&&(t.adler=H(t.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(xt(t),0!==a.pending))return a.last_flush=-1,tt;At(a,255&t.adler),At(a,t.adler>>8&255),t.adler=0}if(a.status=mt,xt(t),0!==a.pending)return a.last_flush=-1,tt}if(0!==t.avail_in||0!==a.lookahead||e!==q&&a.status!==bt){let i=0===a.level?St(a,e):a.strategy===ot?((t,e)=>{let a;for(;;){if(0===t.lookahead&&(Ut(t),0===t.lookahead)){if(e===q)return 1;break}if(t.match_length=0,a=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(zt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2})(a,e):a.strategy===lt?((t,e)=>{let a,i,n,s;const r=t.window;for(;;){if(t.lookahead<=ct){if(Ut(t),t.lookahead<=ct&&e===q)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=t.strstart-1,i=r[n],i===r[++n]&&i===r[++n]&&i===r[++n])){s=t.strstart+ct;do{}while(i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=X(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(zt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2})(a,e):It[a.level].func(a,e);if(3!==i&&4!==i||(a.status=bt),1===i||3===i)return 0===t.avail_out&&(a.last_flush=-1),tt;if(2===i&&(e===J?W(a):e!==$&&(Y(a,0,0,!1),e===Q&&(kt(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),xt(t),0===t.avail_out))return a.last_flush=-1,tt}return e!==V?tt:a.wrap<=0?et:(2===a.wrap?(At(a,255&t.adler),At(a,t.adler>>8&255),At(a,t.adler>>16&255),At(a,t.adler>>24&255),At(a,255&t.total_in),At(a,t.total_in>>8&255),At(a,t.total_in>>16&255),At(a,t.total_in>>24&255)):(Et(a,t.adler>>>16),Et(a,65535&t.adler)),xt(t),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?tt:et)},deflateEnd:t=>{if(Lt(t))return at;const e=t.state.status;return t.state=null,e===mt?gt(t,it):tt},deflateSetDictionary:(t,e)=>{let a=e.length;if(Lt(t))return at;const i=t.state,n=i.wrap;if(2===n||1===n&&i.status!==wt||i.lookahead)return at;if(1===n&&(t.adler=C(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===n&&(kt(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(a-i.w_size,a),0),e=t,a=i.w_size}const s=t.avail_in,r=t.next_in,o=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Ut(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=yt(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,Ut(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=r,t.input=o,t.avail_in=s,i.wrap=n,tt},deflateInfo:"pako deflate (from Nodeca project)"};const Ht=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var jt=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const e in a)Ht(a,e)&&(t[e]=a[e])}}return t},Kt=t=>{let e=0;for(let a=0,i=t.length;a=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Yt[254]=Yt[254]=1;var Gt=t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,a,i,n,s,r=t.length,o=0;for(n=0;n>>6,e[s++]=128|63&a):a<65536?(e[s++]=224|a>>>12,e[s++]=128|a>>>6&63,e[s++]=128|63&a):(e[s++]=240|a>>>18,e[s++]=128|a>>>12&63,e[s++]=128|a>>>6&63,e[s++]=128|63&a);return e},Xt=(t,e)=>{const a=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let i,n;const s=new Array(2*a);for(n=0,i=0;i4)s[n++]=65533,i+=r-1;else{for(e&=2===r?31:3===r?15:7;r>1&&i1?s[n++]=65533:e<65536?s[n++]=e:(e-=65536,s[n++]=55296|e>>10&1023,s[n++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&Pt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let a="";for(let i=0;i{(e=e||t.length)>t.length&&(e=t.length);let a=e-1;for(;a>=0&&128==(192&t[a]);)a--;return a<0||0===a?e:a+Yt[t[a]]>e?a:e};var qt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Jt=Object.prototype.toString,{Z_NO_FLUSH:Qt,Z_SYNC_FLUSH:Vt,Z_FULL_FLUSH:$t,Z_FINISH:te,Z_OK:ee,Z_STREAM_END:ae,Z_DEFAULT_COMPRESSION:ie,Z_DEFAULT_STRATEGY:ne,Z_DEFLATED:se}=K;function re(t){this.options=jt({level:ie,method:se,chunkSize:16384,windowBits:15,memLevel:8,strategy:ne},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new qt,this.strm.avail_out=0;let a=Mt.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==ee)throw new Error(j[a]);if(e.header&&Mt.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?Gt(e.dictionary):"[object ArrayBuffer]"===Jt.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=Mt.deflateSetDictionary(this.strm,t),a!==ee)throw new Error(j[a]);this._dict_set=!0}}function oe(t,e){const a=new re(e);if(a.push(t,!0),a.err)throw a.msg||j[a.err];return a.result}re.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize;let n,s;if(this.ended)return!1;for(s=e===~~e?e:!0===e?te:Qt,"string"==typeof t?a.input=Gt(t):"[object ArrayBuffer]"===Jt.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(s===Vt||s===$t)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=Mt.deflate(a,s),n===ae)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=Mt.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===ee;if(0!==a.avail_out){if(s>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},re.prototype.onData=function(t){this.chunks.push(t)},re.prototype.onEnd=function(t){t===ee&&(this.result=Kt(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var le={Deflate:re,deflate:oe,deflateRaw:function(t,e){return(e=e||{}).raw=!0,oe(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,oe(t,e)},constants:K};const he=16209;var de=function(t,e){let a,i,n,s,r,o,l,h,d,_,f,c,u,w,m,b,g,p,k,v,y,x,z,A;const E=t.state;a=t.next_in,z=t.input,i=a+(t.avail_in-5),n=t.next_out,A=t.output,s=n-(e-t.avail_out),r=n+(t.avail_out-257),o=E.dmax,l=E.wsize,h=E.whave,d=E.wnext,_=E.window,f=E.hold,c=E.bits,u=E.lencode,w=E.distcode,m=(1<>>24,f>>>=p,c-=p,p=g>>>16&255,0===p)A[n++]=65535&g;else{if(!(16&p)){if(0==(64&p)){g=u[(65535&g)+(f&(1<>>=p,c-=p),c<15&&(f+=z[a++]<>>24,f>>>=p,c-=p,p=g>>>16&255,!(16&p)){if(0==(64&p)){g=w[(65535&g)+(f&(1<o){t.msg="invalid distance too far back",E.mode=he;break t}if(f>>>=p,c-=p,p=n-s,v>p){if(p=v-p,p>h&&E.sane){t.msg="invalid distance too far back",E.mode=he;break t}if(y=0,x=_,0===d){if(y+=l-p,p2;)A[n++]=x[y++],A[n++]=x[y++],A[n++]=x[y++],k-=3;k&&(A[n++]=x[y++],k>1&&(A[n++]=x[y++]))}else{y=n-v;do{A[n++]=A[y++],A[n++]=A[y++],A[n++]=A[y++],k-=3}while(k>2);k&&(A[n++]=A[y++],k>1&&(A[n++]=A[y++]))}break}}break}}while(a>3,a-=k,c-=k<<3,f&=(1<{const l=o.bits;let h,d,_,f,c,u,w=0,m=0,b=0,g=0,p=0,k=0,v=0,y=0,x=0,z=0,A=null;const E=new Uint16Array(16),R=new Uint16Array(16);let Z,U,S,D=null;for(w=0;w<=_e;w++)E[w]=0;for(m=0;m=1&&0===E[g];g--);if(p>g&&(p=g),0===g)return n[s++]=20971520,n[s++]=20971520,o.bits=1,0;for(b=1;b0&&(0===t||1!==g))return-1;for(R[1]=0,w=1;w<_e;w++)R[w+1]=R[w]+E[w];for(m=0;m852||2===t&&x>592)return 1;for(;;){Z=w-v,r[m]+1=u?(U=D[r[m]-u],S=A[r[m]-u]):(U=96,S=0),h=1<>v)+d]=Z<<24|U<<16|S|0}while(0!==d);for(h=1<>=1;if(0!==h?(z&=h-1,z+=h):z=0,m++,0==--E[w]){if(w===g)break;w=e[a+r[m]]}if(w>p&&(z&f)!==_){for(0===v&&(v=p),c+=b,k=w-v,y=1<852||2===t&&x>592)return 1;_=z&f,n[_]=p<<24|k<<16|c-s|0}}return 0!==z&&(n[c+z]=w-v<<24|64<<16|0),o.bits=p,0};const{Z_FINISH:be,Z_BLOCK:ge,Z_TREES:pe,Z_OK:ke,Z_STREAM_END:ve,Z_NEED_DICT:ye,Z_STREAM_ERROR:xe,Z_DATA_ERROR:ze,Z_MEM_ERROR:Ae,Z_BUF_ERROR:Ee,Z_DEFLATED:Re}=K,Ze=16180,Ue=16190,Se=16191,De=16192,Te=16194,Oe=16199,Ie=16200,Fe=16206,Le=16209,Ne=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function Be(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Ce=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode16211?1:0},Me=t=>{if(Ce(t))return xe;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=Ze,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,ke},He=t=>{if(Ce(t))return xe;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,Me(t)},je=(t,e)=>{let a;if(Ce(t))return xe;const i=t.state;return e<0?(a=0,e=-e):(a=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?xe:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,He(t))},Ke=(t,e)=>{if(!t)return xe;const a=new Be;t.state=a,a.strm=t,a.window=null,a.mode=Ze;const i=je(t,e);return i!==ke&&(t.state=null),i};let Pe,Ye,Ge=!0;const Xe=t=>{if(Ge){Pe=new Int32Array(512),Ye=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(me(1,t.lens,0,288,Pe,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;me(2,t.lens,0,32,Ye,0,t.work,{bits:5}),Ge=!1}t.lencode=Pe,t.lenbits=9,t.distcode=Ye,t.distbits=5},We=(t,e,a,i)=>{let n;const s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(s.window.set(e.subarray(a-s.wsize,a),0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),s.window.set(e.subarray(a-i,a-i+n),s.wnext),(i-=n)?(s.window.set(e.subarray(a-i,a),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whaveKe(t,15),inflateInit2:Ke,inflate:(t,e)=>{let a,i,n,s,r,o,l,h,d,_,f,c,u,w,m,b,g,p,k,v,y,x,z=0;const A=new Uint8Array(4);let E,R;const Z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ce(t)||!t.output||!t.input&&0!==t.avail_in)return xe;a=t.state,a.mode===Se&&(a.mode=De),r=t.next_out,n=t.output,l=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,_=o,f=l,x=ke;t:for(;;)switch(a.mode){case Ze:if(0===a.wrap){a.mode=De;break}for(;d<16;){if(0===o)break t;o--,h+=i[s++]<>>8&255,a.check=H(a.check,A,2,0),h=0,d=0,a.mode=16181;break}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",a.mode=Le;break}if((15&h)!==Re){t.msg="unknown compression method",a.mode=Le;break}if(h>>>=4,d-=4,y=8+(15&h),0===a.wbits&&(a.wbits=y),y>15||y>a.wbits){t.msg="invalid window size",a.mode=Le;break}a.dmax=1<>8&1),512&a.flags&&4&a.wrap&&(A[0]=255&h,A[1]=h>>>8&255,a.check=H(a.check,A,2,0)),h=0,d=0,a.mode=16182;case 16182:for(;d<32;){if(0===o)break t;o--,h+=i[s++]<>>8&255,A[2]=h>>>16&255,A[3]=h>>>24&255,a.check=H(a.check,A,4,0)),h=0,d=0,a.mode=16183;case 16183:for(;d<16;){if(0===o)break t;o--,h+=i[s++]<>8),512&a.flags&&4&a.wrap&&(A[0]=255&h,A[1]=h>>>8&255,a.check=H(a.check,A,2,0)),h=0,d=0,a.mode=16184;case 16184:if(1024&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[s++]<>>8&255,a.check=H(a.check,A,2,0)),h=0,d=0}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(c=a.length,c>o&&(c=o),c&&(a.head&&(y=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(s,s+c),y)),512&a.flags&&4&a.wrap&&(a.check=H(a.check,i,c,s)),o-=c,s+=c,a.length-=c),a.length))break t;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===o)break t;c=0;do{y=i[s+c++],a.head&&y&&a.length<65536&&(a.head.name+=String.fromCharCode(y))}while(y&&c>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=Se;break;case 16189:for(;d<32;){if(0===o)break t;o--,h+=i[s++]<>>=7&d,d-=7&d,a.mode=Fe;break}for(;d<3;){if(0===o)break t;o--,h+=i[s++]<>>=1,d-=1,3&h){case 0:a.mode=16193;break;case 1:if(Xe(a),a.mode=Oe,e===pe){h>>>=2,d-=2;break t}break;case 2:a.mode=16196;break;case 3:t.msg="invalid block type",a.mode=Le}h>>>=2,d-=2;break;case 16193:for(h>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,h+=i[s++]<>>16^65535)){t.msg="invalid stored block lengths",a.mode=Le;break}if(a.length=65535&h,h=0,d=0,a.mode=Te,e===pe)break t;case Te:a.mode=16195;case 16195:if(c=a.length,c){if(c>o&&(c=o),c>l&&(c=l),0===c)break t;n.set(i.subarray(s,s+c),r),o-=c,s+=c,l-=c,r+=c,a.length-=c;break}a.mode=Se;break;case 16196:for(;d<14;){if(0===o)break t;o--,h+=i[s++]<>>=5,d-=5,a.ndist=1+(31&h),h>>>=5,d-=5,a.ncode=4+(15&h),h>>>=4,d-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=Le;break}a.have=0,a.mode=16197;case 16197:for(;a.have>>=3,d-=3}for(;a.have<19;)a.lens[Z[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,E={bits:a.lenbits},x=me(0,a.lens,0,19,a.lencode,0,a.work,E),a.lenbits=E.bits,x){t.msg="invalid code lengths set",a.mode=Le;break}a.have=0,a.mode=16198;case 16198:for(;a.have>>24,b=z>>>16&255,g=65535&z,!(m<=d);){if(0===o)break t;o--,h+=i[s++]<>>=m,d-=m,a.lens[a.have++]=g;else{if(16===g){for(R=m+2;d>>=m,d-=m,0===a.have){t.msg="invalid bit length repeat",a.mode=Le;break}y=a.lens[a.have-1],c=3+(3&h),h>>>=2,d-=2}else if(17===g){for(R=m+3;d>>=m,d-=m,y=0,c=3+(7&h),h>>>=3,d-=3}else{for(R=m+7;d>>=m,d-=m,y=0,c=11+(127&h),h>>>=7,d-=7}if(a.have+c>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=Le;break}for(;c--;)a.lens[a.have++]=y}}if(a.mode===Le)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=Le;break}if(a.lenbits=9,E={bits:a.lenbits},x=me(1,a.lens,0,a.nlen,a.lencode,0,a.work,E),a.lenbits=E.bits,x){t.msg="invalid literal/lengths set",a.mode=Le;break}if(a.distbits=6,a.distcode=a.distdyn,E={bits:a.distbits},x=me(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,E),a.distbits=E.bits,x){t.msg="invalid distances set",a.mode=Le;break}if(a.mode=Oe,e===pe)break t;case Oe:a.mode=Ie;case Ie:if(o>=6&&l>=258){t.next_out=r,t.avail_out=l,t.next_in=s,t.avail_in=o,a.hold=h,a.bits=d,de(t,f),r=t.next_out,n=t.output,l=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,a.mode===Se&&(a.back=-1);break}for(a.back=0;z=a.lencode[h&(1<>>24,b=z>>>16&255,g=65535&z,!(m<=d);){if(0===o)break t;o--,h+=i[s++]<>p)],m=z>>>24,b=z>>>16&255,g=65535&z,!(p+m<=d);){if(0===o)break t;o--,h+=i[s++]<>>=p,d-=p,a.back+=p}if(h>>>=m,d-=m,a.back+=m,a.length=g,0===b){a.mode=16205;break}if(32&b){a.back=-1,a.mode=Se;break}if(64&b){t.msg="invalid literal/length code",a.mode=Le;break}a.extra=15&b,a.mode=16201;case 16201:if(a.extra){for(R=a.extra;d>>=a.extra,d-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=16202;case 16202:for(;z=a.distcode[h&(1<>>24,b=z>>>16&255,g=65535&z,!(m<=d);){if(0===o)break t;o--,h+=i[s++]<>p)],m=z>>>24,b=z>>>16&255,g=65535&z,!(p+m<=d);){if(0===o)break t;o--,h+=i[s++]<>>=p,d-=p,a.back+=p}if(h>>>=m,d-=m,a.back+=m,64&b){t.msg="invalid distance code",a.mode=Le;break}a.offset=g,a.extra=15&b,a.mode=16203;case 16203:if(a.extra){for(R=a.extra;d>>=a.extra,d-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=Le;break}a.mode=16204;case 16204:if(0===l)break t;if(c=f-l,a.offset>c){if(c=a.offset-c,c>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=Le;break}c>a.wnext?(c-=a.wnext,u=a.wsize-c):u=a.wnext-c,c>a.length&&(c=a.length),w=a.window}else w=n,u=r-a.offset,c=a.length;c>l&&(c=l),l-=c,a.length-=c;do{n[r++]=w[u++]}while(--c);0===a.length&&(a.mode=Ie);break;case 16205:if(0===l)break t;n[r++]=a.length,l--,a.mode=Ie;break;case Fe:if(a.wrap){for(;d<32;){if(0===o)break t;o--,h|=i[s++]<{if(Ce(t))return xe;let e=t.state;return e.window&&(e.window=null),t.state=null,ke},inflateGetHeader:(t,e)=>{if(Ce(t))return xe;const a=t.state;return 0==(2&a.wrap)?xe:(a.head=e,e.done=!1,ke)},inflateSetDictionary:(t,e)=>{const a=e.length;let i,n,s;return Ce(t)?xe:(i=t.state,0!==i.wrap&&i.mode!==Ue?xe:i.mode===Ue&&(n=1,n=C(n,e,a,0),n!==i.check)?ze:(s=We(t,e,a,a),s?(i.mode=16210,Ae):(i.havedict=1,ke)))},inflateInfo:"pako inflate (from Nodeca project)"};var Je=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Qe=Object.prototype.toString,{Z_NO_FLUSH:Ve,Z_FINISH:$e,Z_OK:ta,Z_STREAM_END:ea,Z_NEED_DICT:aa,Z_STREAM_ERROR:ia,Z_DATA_ERROR:na,Z_MEM_ERROR:sa}=K;function ra(t){this.options=jt({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new qt,this.strm.avail_out=0;let a=qe.inflateInit2(this.strm,e.windowBits);if(a!==ta)throw new Error(j[a]);if(this.header=new Je,qe.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Gt(e.dictionary):"[object ArrayBuffer]"===Qe.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=qe.inflateSetDictionary(this.strm,e.dictionary),a!==ta)))throw new Error(j[a])}function oa(t,e){const a=new ra(e);if(a.push(t),a.err)throw a.msg||j[a.err];return a.result}ra.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize,n=this.options.dictionary;let s,r,o;if(this.ended)return!1;for(r=e===~~e?e:!0===e?$e:Ve,"[object ArrayBuffer]"===Qe.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),s=qe.inflate(a,r),s===aa&&n&&(s=qe.inflateSetDictionary(a,n),s===ta?s=qe.inflate(a,r):s===na&&(s=aa));a.avail_in>0&&s===ea&&a.state.wrap>0&&0!==t[a.next_in];)qe.inflateReset(a),s=qe.inflate(a,r);switch(s){case ia:case na:case aa:case sa:return this.onEnd(s),this.ended=!0,!1}if(o=a.avail_out,a.next_out&&(0===a.avail_out||s===ea))if("string"===this.options.to){let t=Wt(a.output,a.next_out),e=a.next_out-t,n=Xt(a.output,t);a.next_out=e,a.avail_out=i-e,e&&a.output.set(a.output.subarray(t,t+e),0),this.onData(n)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(s!==ta||0!==o){if(s===ea)return s=qe.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},ra.prototype.onData=function(t){this.chunks.push(t)},ra.prototype.onEnd=function(t){t===ta&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Kt(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var la={Inflate:ra,inflate:oa,inflateRaw:function(t,e){return(e=e||{}).raw=!0,oa(t,e)},ungzip:oa,constants:K};const{Deflate:ha,deflate:da,deflateRaw:_a,gzip:fa}=le,{Inflate:ca,inflate:ua,inflateRaw:wa,ungzip:ma}=la;var ba=ha,ga=da,pa=_a,ka=fa,va=ca,ya=ua,xa=wa,za=ma,Aa=K,Ea={Deflate:ba,deflate:ga,deflateRaw:pa,gzip:ka,Inflate:va,inflate:ya,inflateRaw:xa,ungzip:za,constants:Aa};t.Deflate=ba,t.Inflate=va,t.constants=Aa,t.default=Ea,t.deflate=ga,t.deflateRaw=pa,t.gzip=ka,t.inflate=ya,t.inflateRaw=xa,t.ungzip=za,Object.defineProperty(t,"__esModule",{value:!0})})); \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/drpy_libs/\346\250\241\346\235\277.js" "b/zyplayer/drpy_dzlive/drpy_libs/\346\250\241\346\235\277.js" new file mode 100644 index 0000000..0abba43 --- /dev/null +++ "b/zyplayer/drpy_dzlive/drpy_libs/\346\250\241\346\235\277.js" @@ -0,0 +1,377 @@ +if (typeof Object.assign != 'function') { + Object.assign = function () { + let target = arguments[0]; + for (let i = 1; i < arguments.length; i++) { + let source = arguments[i]; + for (let key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; +} + +function getMubans() { + var mubanDict = { // 模板字典 + mx: { + title: '', + host: '', + url: '/vodshow/fyclass--------fypage---/', + searchUrl: '/vodsearch/**----------fypage---/', + class_parse: '.top_nav li;a&&Text;a&&href;.*/(.*?)/', + searchable: 2, + quickSearch: 0, + filterable: 0, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + play_parse: true, + lazy: '', + limit: 6, + 推荐: '.cbox_list;*;*;*;*;*', + double: true, + 一级: 'ul.vodlist li;a&&title;a&&data-original;.pic_text&&Text;a&&href', + 二级: { + title: 'h2&&Text;.detail_list&&ul:eq(1)&&li&&a:eq(2)&&Text', + img: '.vodlist_thumb&&data-original', + desc: '.content_detail&&li:eq(1)&&Text;.detail_list&&ul:eq(1)&&li&&a&&Text;.detail_list&&ul:eq(1)&&li&&a:eq(1)&&Text;.detail_list&&ul:eq(1)&&li:eq(2)&&Text;.detail_list&&ul:eq(1)&&li:eq(3)&&Text', + content: '.content_desc&&span&&Text', + tabs: '.play_source_tab&&a', + lists: '.content_playlist:eq(#id) li', + }, + 搜索: '*', + }, + mxpro: { + title: '', + host: '', // homeUrl:'/', + url: '/vodshow/fyclass--------fypage---.html', + searchUrl: '/vodsearch/**----------fypage---.html', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + filterable: 0,//是否启用分类筛选, + headers: {//网站的请求头,完整支持所有的,常带ua和cookies + 'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok" + }, + class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;/(\\d+).html', + play_parse: true, + lazy: '', + limit: 6, + 推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href', + double: true, // 推荐内容是否双层定位 + 一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href', + 二级: { + "title": "h1&&Text;.module-info-tag&&Text", + "img": ".lazyload&&data-original", + "desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text", + "content": ".module-info-introduction&&Text", + "tabs": ".module-tab-item", + "lists": ".module-play-list:eq(#id) a" + }, + 搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text', + }, mxone5: { + title: '', + host: '', + url: '/show/fyclass--------fypage---.html', + searchUrl: '/search/**----------fypage---.html', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + filterable: 0,//是否启用分类筛选, + class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html', + play_parse: true, + lazy: '', + limit: 6, + 推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href', + double: true, // 推荐内容是否双层定位 + 一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href', + 二级: { + "title": "h1&&Text;.tag-link&&Text", + "img": ".module-item-pic&&img&&data-src", + "desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text", + "content": ".vod_content&&Text", + "tabs": ".module-tab-item", + "lists": ".module-player-list:eq(#id)&&.scroll-content&&a" + }, + 搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href', + }, 首图: { + title: '', + host: '', + url: '/vodshow/fyclass--------fypage---/', + searchUrl: '/vodsearch/**----------fypage---.html', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + filterable: 0,//是否启用分类筛选, + headers: {//网站的请求头,完整支持所有的,常带ua和cookies + 'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok" + }, + class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html', + play_parse: true, + lazy: '', + limit: 6, + 推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href', + double: true, // 推荐内容是否双层定位 + 一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href', + 二级: { + "title": ".myui-content__detail .title&&Text;.myui-content__detail p:eq(-2)&&Text", + "img": ".myui-content__thumb .lazyload&&data-original", + "desc": ".myui-content__detail p:eq(0)&&Text;.myui-content__detail p:eq(1)&&Text;.myui-content__detail p:eq(2)&&Text", + "content": ".content&&Text", + "tabs": ".nav-tabs:eq(0) li", + "lists": ".myui-content__list:eq(#id) li" + }, + 搜索: '#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text', + }, 首图2: { + title: '', + host: '', + url: '/list/fyclass-fypage.html', + searchUrl: '/vodsearch/**----------fypage---.html', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + filterable: 0,//是否启用分类筛选, + headers: { + 'User-Agent': 'UC_UA', // "Cookie": "" + }, // class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html', + class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html', + play_parse: true, + lazy: '', + limit: 6, + 推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href', + double: true, // 推荐内容是否双层定位 + 一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href', + 二级: { + "title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text", + "img": ".stui-content__thumb .lazyload&&data-original", + "desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text", + "content": ".detail&&Text", + "tabs": ".stui-vodlist__head h3", + "lists": ".stui-content__playlist:eq(#id) li" + }, + 搜索: 'ul.stui-vodlist__media:eq(0),ul.stui-vodlist:eq(0),#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text', + 搜索1: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text', + 搜索2: 'ul.stui-vodlist__media&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text', + }, 默认: { + title: '', + host: '', + url: '', + searchUrl: '', + searchable: 2, + quickSearch: 0, + filterable: 1, + filter: '', + filter_url: '', + filter_def: {}, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + timeout: 5000, + class_parse: '#side-menu li;a&&Text;a&&href;/(.*?)\.html', + cate_exclude: '', + play_parse: true, + lazy: `js:input = {parse: 1, url: input, js: ''}`, + double: true, + 推荐: '列表1;列表2;标题;图片;描述;链接;详情', + 一级: '列表;标题;图片;描述;链接;详情', + 二级: { + title: 'vod_name;vod_type', + img: '图片链接', + desc: '主要信息;年代;地区;演员;导演', + content: '简介', + tabs: '', + lists: 'xx:eq(#id)&&a', + tab_text: 'body&&Text', + list_text: 'body&&Text', + list_url: 'a&&href' + }, + 搜索: '列表;标题;图片;描述;链接;详情', + }, vfed: { + title: '', + host: '', + url: '/index.php/vod/show/id/fyclass/page/fypage.html', + searchUrl: '/index.php/vod/search/page/fypage/wd/**.html', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + filterable: 0,//是否启用分类筛选, + headers: { + 'User-Agent': 'UC_UA', + }, // class_parse:'.fed-pops-navbar&&ul.fed-part-rows&&a.fed-part-eone:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html', + class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html', + play_parse: true, + lazy: '', + limit: 6, + 推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href', + double: true, // 推荐内容是否双层定位 + 一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href', + 二级: { + "title": "h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text", + "img": ".fed-list-info&&a&&data-original", + "desc": ".fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text", + "content": ".fed-part-esan&&Text", + "tabs": ".fed-drop-boxs&&.fed-part-rows&&li", + "lists": ".fed-play-item:eq(#id)&&ul:eq(1)&&li" + }, + 搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text', + }, 海螺3: { + title: '', + host: '', + searchUrl: '/v_search/**----------fypage---.html', + url: '/vod_____show/fyclass--------fypage---.html', + headers: { + 'User-Agent': 'MOBILE_UA' + }, + timeout: 5000, + class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html', + cate_exclude: '明星|专题|最新|排行', + limit: 40, + play_parse: true, + lazy: '', + 推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href', + double: true, + 一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href', + 二级: { + "title": ".hl-infos-title&&Text;.hl-text-conch&&Text", + "img": ".hl-lazy&&data-original", + "desc": ".hl-infos-content&&.hl-text-conch&&Text", + "content": ".hl-content-text&&Text", + "tabs": ".hl-tabs&&a", + "lists": ".hl-plays-list:eq(#id)&&li" + }, + 搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + filterable: 0,//是否启用分类筛选, + }, 海螺2: { + title: '', + host: '', + searchUrl: '/index.php/vod/search/page/fypage/wd/**/', + url: '/index.php/vod/show/id/fyclass/page/fypage/', + headers: { + 'User-Agent': 'MOBILE_UA' + }, + timeout: 5000, + class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/', + limit: 40, + play_parse: true, + lazy: '', + 推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href', + double: true, + 一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href', + 二级: { + "title": "h2&&Text;.deployment&&Text", + "img": ".lazy&&data-original", + "desc": ".deployment&&Text", + "content": ".ec-show&&Text", + "tabs": "#tag&&a", + "lists": ".play_list_box:eq(#id)&&li" + }, + 搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + filterable: 0,//是否启用分类筛选, + }, 短视: { + title: '', + host: '', // homeUrl:'/', + url: '/channel/fyclass-fypage.html', + searchUrl: '/search.html?wd=**', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + filterable: 0,//是否启用分类筛选, + headers: {//网站的请求头,完整支持所有的,常带ua和cookies + 'User-Agent': 'MOBILE_UA', // "Cookie": "searchneed=ok" + }, + class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html', + cate_exclude: '解析|动态', + play_parse: true, + lazy: '', + limit: 6, + 推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href', + double: true, // 推荐内容是否双层定位 + 一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href', + 二级: { + "title": "h1&&Text;.content-rt&&p:eq(0)&&Text", + "img": ".img&&img&&data-src", + "desc": ".content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text", + "content": ".zkjj_a&&Text", + "tabs": ".py-tabs&&option", + "lists": ".player:eq(#id) li" + }, + 搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href', + }, 短视2: { + title: '', + host: '', + class_name: '电影&电视剧&综艺&动漫', + class_url: '1&2&3&4', + searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50', + searchable: 2, + quickSearch: 0, + headers: {'User-Agent': 'MOBILE_UA'}, + url: '/index.php/api/vod#type=fyclass&page=fypage', + filterable: 0,//是否启用分类筛选, + filter_url: '', + filter: {}, + filter_def: {}, + detailUrl: '/index.php/vod/detail/id/fyid.html', + play_parse: true, + lazy: '', + limit: 6, + 推荐: '.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href', + 一级: 'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});', + 二级: { + "title": ".slide-info-title&&Text;.slide-info:eq(3)--strong&&Text", + "img": ".detail-pic&&data-original", + "desc": ".fraction&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(2)--strong&&Text;.slide-info:eq(1)--strong&&Text", + "content": "#height_limit&&Text", + "tabs": ".anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a", + "tab_text": ".swiper-slide&&Text", + "lists": ".anthology-list-box:eq(#id) li" + }, + 搜索: 'json:list;name;pic;;id', + }, 采集1: { + title: '', + host: '', + homeTid: '13', + homeUrl: '/api.php/provide/vod/?ac=detail&t={{rule.homeTid}}', + detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid', + searchUrl: '/api.php/provide/vod/?wd=**&pg=fypage', + url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass', + headers: {'User-Agent': 'MOBILE_UA'}, + timeout: 5000, // class_name: '电影&电视剧&综艺&动漫', + // class_url: '1&2&3&4', + // class_parse:'js:let html=request(input);input=JSON.parse(html).class;', + class_parse: 'json:class;', + limit: 20, + multi: 1, + searchable: 2,//是否启用全局搜索, + quickSearch: 1,//是否启用快速搜索, + filterable: 0,//是否启用分类筛选, + play_parse: true, + parse_url: '', + lazy: `js: + if(/\\.(m3u8|mp4)/.test(input)){ + input = {parse:0,url:input} + }else{ + if(rule.parse_url.startsWith('json:')){ + let purl = rule.parse_url.replace('json:','')+input; + let html = request(purl); + input = {parse:0,url:JSON.parse(html).url} + }else{ + input= rule.parse_url+input; + } + } + `, + 推荐: '*', + 一级: 'json:list;vod_name;vod_pic;vod_remarks;vod_id;vod_play_from', + 二级: `js: + let html=request(input); + html=JSON.parse(html); + let data=html.list; + VOD=data[0];`, + 搜索: '*', + } + }; + return JSON.parse(JSON.stringify(mubanDict)); +} + +var mubanDict = getMubans(); +var muban = getMubans(); +export default {muban, getMubans}; \ No newline at end of file diff --git a/zyplayer/drpy_dzlive/index.js b/zyplayer/drpy_dzlive/index.js new file mode 100644 index 0000000..7db57ac --- /dev/null +++ b/zyplayer/drpy_dzlive/index.js @@ -0,0 +1,149 @@ +/** + pathLib: { + join: [Function: join], + dirname: [Function: dirname], + readDir: [Function (anonymous)], + readFile: [Function (anonymous)], + stat: [Function (anonymous)] +} + path + path_dir + **/ +async function main() { + let js_order = ['360影视', '菜狗', '奇珍异兽', '优酷', '腾云驾雾', '百忙无果', '哔哩影视']; + let js_path = './drpy_js'; + let live_path = './lives'; + let js_api = './drpy_libs/drpy2.min.js'; + let parse_apis = ['777,https://jx.777jiexi.com/player/?url=,0', '8090g,https://www.8090g.cn/jiexi/?url=,0','红狐,https://player.mrgaocloud.com/player/?url=,0']; + let parses = parse_apis.map((it) => { + let _name = it.split(',')[0]; + let _url = it.split(',')[1]; + let _type = it.split(',').length > 2 ? it.split(',')[2] : '0'; + _type = Number(_type); + return { + name: _name, + url: _url, + type: _type, + 'ext': { + 'flag': [ + 'qiyi', + 'imgo', + '爱奇艺', + '奇艺', + 'qq', + 'qq 预告及花絮', + '腾讯', + 'youku', + '优酷', + 'pptv', + 'PPTV', + 'letv', + '乐视', + 'leshi', + 'mgtv', + '芒果', + 'sohu', + 'xigua', + 'fun', + '风行', + ], + }, + 'header': { + 'User-Agent': 'Mozilla/5.0', + }, + }; + + }); + let js_files = pathLib.readDir(pathLib.join(path_dir, js_path)); + // console.log(js_files); + let live_files = pathLib.readDir(pathLib.join(path_dir, live_path)); + // console.log(live_files); + let channels = []; + live_files.forEach((it) => { + let absp = pathLib.join(path_dir, `${live_path}/${it}`).replace(/\\/g, '/'); + absp = 'http://127.0.0.1:9978/api/v1/file/' + absp.split('/zyplayer/file/')[1]; + let aname = it.split('.')[0]; + channels.push({ + 'name': aname, + 'urls': [ + 'proxy://do=live&type=txt&ext=' + absp, + ], + }); + }); + channels = channels.concat([ + { + 'name': '云星日记直播', + 'urls': [ + 'proxy://do=live&type=txt&ext=http://itvbox.cc/云星日记/Ipv4.txt', + ], + }, + { + 'name': '本地嗅探器直播', + 'urls': [ + 'proxy://do=live&type=txt&ext=http://127.0.0.1:5708/ysp', + ], + }, + ]); + let json_config = { + 'wallpaper': 'https://tuapi.eees.cc/api.php?category=fengjing&type=302', + 'homepage': 'https://github.com/hjdhnx/hipy-server', + 'sites': [], + 'parses': parses, + 'flags': [ + 'imgo', + 'youku', + 'qq', + 'qq 预告及花絮', + 'iqiyi', + 'qiyi', + 'fun', + 'letv', + 'leshi', + 'sohu', + 'tudou', + 'xigua', + 'cntv', + '1905', + 'pptv', + 'mgtv', + 'wasu', + 'bilibili', + 'renrenmi', + ], + 'lives': [ + { + 'group': 'redirect', + 'channels': channels, + }, + ], + + }; + js_files.forEach((it, index) => { + let rname = it.replace('.js', ''); + let extra = ''; + if (rname.includes('我的哔哩传参')) { + extra = '?type=url¶ms=../json/小学教育.json'; + } + let excludes = ['玩偶哥哥','阿里土豆']; + if(!excludes.includes(rname)){ + let data = { + 'key': `hipy_js_${rname}`, + 'name': `${rname}(drpy_t3)`, + 'type': 3, + 'api': js_api, + 'searchable': 1, + 'quickSearch': 1, + 'filterable': 1, + 'order_num': index, + 'ext': `${js_path}/${it}${extra}`, + }; + json_config.sites.push(data); + } + }); + json_config.sites = json_config.sites.sort((a, b) => { + let i = a.name.split('(')[0]; + let j = b.name.split('(')[0]; + return (js_order.indexOf(i) === -1 ? 9999 : js_order.indexOf(i)) - (js_order.indexOf(j) === -1 ? 9999 : js_order.indexOf(j)); + }); + return JSON.stringify(json_config); +} diff --git a/zyplayer/drpy_dzlive/index.json b/zyplayer/drpy_dzlive/index.json new file mode 100644 index 0000000..1a0bf45 --- /dev/null +++ b/zyplayer/drpy_dzlive/index.json @@ -0,0 +1,1190 @@ +{ + "wallpaper": "https://tuapi.eees.cc/api.php?category=fengjing&type=302", + "homepage": "https://github.com/hjdhnx/hipy-server", + "sites": [ + { + "key": "hipy_js_360影视[官]", + "name": "360影视[官](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 0, + "ext": "./drpy_js/360影视[官].js" + }, + { + "key": "hipy_js_420电影院", + "name": "420电影院(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 1, + "ext": "./drpy_js/420电影院.js" + }, + { + "key": "hipy_js_4khdr", + "name": "4khdr(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 2, + "ext": "./drpy_js/4khdr.js" + }, + { + "key": "hipy_js_555影视[飞]", + "name": "555影视[飞](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 3, + "ext": "./drpy_js/555影视[飞].js" + }, + { + "key": "hipy_js_6V新版[磁]", + "name": "6V新版[磁](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 4, + "ext": "./drpy_js/6V新版[磁].js" + }, + { + "key": "hipy_js_777影视", + "name": "777影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 5, + "ext": "./drpy_js/777影视.js" + }, + { + "key": "hipy_js_freeok", + "name": "freeok(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 6, + "ext": "./drpy_js/freeok.js" + }, + { + "key": "hipy_js_HDmoli", + "name": "HDmoli(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 7, + "ext": "./drpy_js/HDmoli.js" + }, + { + "key": "hipy_js_LIBVIO[优]", + "name": "LIBVIO[优](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 8, + "ext": "./drpy_js/LIBVIO[优].js" + }, + { + "key": "hipy_js_ok资源[资]", + "name": "ok资源[资](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 9, + "ext": "./drpy_js/ok资源[资].js" + }, + { + "key": "hipy_js_TVB云播", + "name": "TVB云播(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 10, + "ext": "./drpy_js/TVB云播.js" + }, + { + "key": "hipy_js_voflix", + "name": "voflix(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 11, + "ext": "./drpy_js/voflix.js" + }, + { + "key": "hipy_js_一起看", + "name": "一起看(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 12, + "ext": "./drpy_js/一起看.js" + }, + { + "key": "hipy_js_七年影视", + "name": "七年影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 13, + "ext": "./drpy_js/七年影视.js" + }, + { + "key": "hipy_js_人人影视", + "name": "人人影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 14, + "ext": "./drpy_js/人人影视.js" + }, + { + "key": "hipy_js_优酷[官]", + "name": "优酷[官](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 15, + "ext": "./drpy_js/优酷[官].js" + }, + { + "key": "hipy_js_侠客影视", + "name": "侠客影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 16, + "ext": "./drpy_js/侠客影视.js" + }, + { + "key": "hipy_js_兔小贝[儿]", + "name": "兔小贝[儿](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 17, + "ext": "./drpy_js/兔小贝[儿].js" + }, + { + "key": "hipy_js_农民影视[优]", + "name": "农民影视[优](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 18, + "ext": "./drpy_js/农民影视[优].js" + }, + { + "key": "hipy_js_千神影视", + "name": "千神影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 19, + "ext": "./drpy_js/千神影视.js" + }, + { + "key": "hipy_js_南瓜影视[优]", + "name": "南瓜影视[优](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 20, + "ext": "./drpy_js/南瓜影视[优].js" + }, + { + "key": "hipy_js_博看听书", + "name": "博看听书(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 21, + "ext": "./drpy_js/博看听书.js" + }, + { + "key": "hipy_js_卧龙资源[资]", + "name": "卧龙资源[资](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 22, + "ext": "./drpy_js/卧龙资源[资].js" + }, + { + "key": "hipy_js_即看影视", + "name": "即看影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 23, + "ext": "./drpy_js/即看影视.js" + }, + { + "key": "hipy_js_厂长资源", + "name": "厂长资源(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 24, + "ext": "./drpy_js/厂长资源.js" + }, + { + "key": "hipy_js_可可影视[优]", + "name": "可可影视[优](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 25, + "ext": "./drpy_js/可可影视[优].js" + }, + { + "key": "hipy_js_可达影视", + "name": "可达影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 26, + "ext": "./drpy_js/可达影视.js" + }, + { + "key": "hipy_js_哔哩影视[官]", + "name": "哔哩影视[官](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 27, + "ext": "./drpy_js/哔哩影视[官].js" + }, + { + "key": "hipy_js_哔哩直播", + "name": "哔哩直播(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 28, + "ext": "./drpy_js/哔哩直播.js" + }, + { + "key": "hipy_js_在线之家", + "name": "在线之家(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 29, + "ext": "./drpy_js/在线之家.js" + }, + { + "key": "hipy_js_夕云影视", + "name": "夕云影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 30, + "ext": "./drpy_js/夕云影视.js" + }, + { + "key": "hipy_js_多多追剧", + "name": "多多追剧(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 31, + "ext": "./drpy_js/多多追剧.js" + }, + { + "key": "hipy_js_大米星球", + "name": "大米星球(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 32, + "ext": "./drpy_js/大米星球.js" + }, + { + "key": "hipy_js_大米星球[V2]", + "name": "大米星球[V2](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 33, + "ext": "./drpy_js/大米星球[V2].js" + }, + { + "key": "hipy_js_奇珍异兽[官]", + "name": "奇珍异兽[官](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 34, + "ext": "./drpy_js/奇珍异兽[官].js" + }, + { + "key": "hipy_js_孜然影视", + "name": "孜然影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 35, + "ext": "./drpy_js/孜然影视.js" + }, + { + "key": "hipy_js_宝片视频", + "name": "宝片视频(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 36, + "ext": "./drpy_js/宝片视频.js" + }, + { + "key": "hipy_js_干饭影视", + "name": "干饭影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 37, + "ext": "./drpy_js/干饭影视.js" + }, + { + "key": "hipy_js_影视看吧", + "name": "影视看吧(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 38, + "ext": "./drpy_js/影视看吧.js" + }, + { + "key": "hipy_js_快看影视", + "name": "快看影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 39, + "ext": "./drpy_js/快看影视.js" + }, + { + "key": "hipy_js_思古影视[V2]", + "name": "思古影视[V2](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 40, + "ext": "./drpy_js/思古影视[V2].js" + }, + { + "key": "hipy_js_我的哔哩[官]", + "name": "我的哔哩[官](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 41, + "ext": "./drpy_js/我的哔哩[官].js" + }, + { + "key": "hipy_js_我的哔哩传参", + "name": "我的哔哩传参(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 42, + "ext": "./drpy_js/我的哔哩传参.js?type=url¶ms=../json/小学教育.json" + }, + { + "key": "hipy_js_掌心世界", + "name": "掌心世界(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 43, + "ext": "./drpy_js/掌心世界.js" + }, + { + "key": "hipy_js_斗鱼直播", + "name": "斗鱼直播(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 44, + "ext": "./drpy_js/斗鱼直播.js" + }, + { + "key": "hipy_js_新茶杯狐", + "name": "新茶杯狐(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 45, + "ext": "./drpy_js/新茶杯狐.js" + }, + { + "key": "hipy_js_时光影院", + "name": "时光影院(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 46, + "ext": "./drpy_js/时光影院.js" + }, + { + "key": "hipy_js_易看影视", + "name": "易看影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 47, + "ext": "./drpy_js/易看影视.js" + }, + { + "key": "hipy_js_星云影视", + "name": "星云影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 48, + "ext": "./drpy_js/星云影视.js" + }, + { + "key": "hipy_js_星空影院", + "name": "星空影院(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 49, + "ext": "./drpy_js/星空影院.js" + }, + { + "key": "hipy_js_星辰", + "name": "星辰(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 50, + "ext": "./drpy_js/星辰.js" + }, + { + "key": "hipy_js_暴风资源[资]", + "name": "暴风资源[资](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 51, + "ext": "./drpy_js/暴风资源[资].js" + }, + { + "key": "hipy_js_极客资源[资]", + "name": "极客资源[资](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 52, + "ext": "./drpy_js/极客资源[资].js" + }, + { + "key": "hipy_js_极速资源[资]", + "name": "极速资源[资](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 53, + "ext": "./drpy_js/极速资源[资].js" + }, + { + "key": "hipy_js_榜一短剧", + "name": "榜一短剧(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 54, + "ext": "./drpy_js/榜一短剧.js" + }, + { + "key": "hipy_js_橙汁影视", + "name": "橙汁影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 55, + "ext": "./drpy_js/橙汁影视.js" + }, + { + "key": "hipy_js_海外剧汇", + "name": "海外剧汇(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 56, + "ext": "./drpy_js/海外剧汇.js" + }, + { + "key": "hipy_js_烧火影视[优]", + "name": "烧火影视[优](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 57, + "ext": "./drpy_js/烧火影视[优].js" + }, + { + "key": "hipy_js_热播之家", + "name": "热播之家(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 58, + "ext": "./drpy_js/热播之家.js" + }, + { + "key": "hipy_js_爱看影视", + "name": "爱看影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 59, + "ext": "./drpy_js/爱看影视.js" + }, + { + "key": "hipy_js_爱看机器人[虫]", + "name": "爱看机器人[虫](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 60, + "ext": "./drpy_js/爱看机器人[虫].js" + }, + { + "key": "hipy_js_爱车MV", + "name": "爱车MV(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 61, + "ext": "./drpy_js/爱车MV.js" + }, + { + "key": "hipy_js_玩偶哥哥[盘]", + "name": "玩偶哥哥[盘](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 62, + "ext": "./drpy_js/玩偶哥哥[盘].js" + }, + { + "key": "hipy_js_白嫖者联盟", + "name": "白嫖者联盟(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 63, + "ext": "./drpy_js/白嫖者联盟.js" + }, + { + "key": "hipy_js_百忙无果[官]", + "name": "百忙无果[官](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 64, + "ext": "./drpy_js/百忙无果[官].js" + }, + { + "key": "hipy_js_皮皮影视", + "name": "皮皮影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 65, + "ext": "./drpy_js/皮皮影视.js" + }, + { + "key": "hipy_js_看57", + "name": "看57(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 66, + "ext": "./drpy_js/看57.js" + }, + { + "key": "hipy_js_看看影视", + "name": "看看影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 67, + "ext": "./drpy_js/看看影视.js" + }, + { + "key": "hipy_js_磁力熊[磁]", + "name": "磁力熊[磁](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 68, + "ext": "./drpy_js/磁力熊[磁].js" + }, + { + "key": "hipy_js_神马电影[搜]", + "name": "神马电影[搜](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 69, + "ext": "./drpy_js/神马电影[搜].js" + }, + { + "key": "hipy_js_素白白[优]", + "name": "素白白[优](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 70, + "ext": "./drpy_js/素白白[优].js" + }, + { + "key": "hipy_js_索尼资源[资]", + "name": "索尼资源[资](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 71, + "ext": "./drpy_js/索尼资源[资].js" + }, + { + "key": "hipy_js_网飞猫[优]", + "name": "网飞猫[优](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 72, + "ext": "./drpy_js/网飞猫[优].js" + }, + { + "key": "hipy_js_美剧星球", + "name": "美剧星球(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 73, + "ext": "./drpy_js/美剧星球.js" + }, + { + "key": "hipy_js_美益达", + "name": "美益达(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 74, + "ext": "./drpy_js/美益达.js" + }, + { + "key": "hipy_js_耐看", + "name": "耐看(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 75, + "ext": "./drpy_js/耐看.js" + }, + { + "key": "hipy_js_腾云驾雾[官]", + "name": "腾云驾雾[官](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 76, + "ext": "./drpy_js/腾云驾雾[官].js" + }, + { + "key": "hipy_js_花子动漫[漫]", + "name": "花子动漫[漫](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 77, + "ext": "./drpy_js/花子动漫[漫].js" + }, + { + "key": "hipy_js_荐片[优]", + "name": "荐片[优](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 78, + "ext": "./drpy_js/荐片[优].js" + }, + { + "key": "hipy_js_菜狗[官]", + "name": "菜狗[官](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 79, + "ext": "./drpy_js/菜狗[官].js" + }, + { + "key": "hipy_js_蓝光影视", + "name": "蓝光影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 80, + "ext": "./drpy_js/蓝光影视.js" + }, + { + "key": "hipy_js_虎牙直播", + "name": "虎牙直播(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 81, + "ext": "./drpy_js/虎牙直播.js" + }, + { + "key": "hipy_js_蛋蛋剧", + "name": "蛋蛋剧(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 82, + "ext": "./drpy_js/蛋蛋剧.js" + }, + { + "key": "hipy_js_蛋蛋赞", + "name": "蛋蛋赞(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 83, + "ext": "./drpy_js/蛋蛋赞.js" + }, + { + "key": "hipy_js_西屋影视", + "name": "西屋影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 84, + "ext": "./drpy_js/西屋影视.js" + }, + { + "key": "hipy_js_豆瓣[官]", + "name": "豆瓣[官](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 85, + "ext": "./drpy_js/豆瓣[官].js" + }, + { + "key": "hipy_js_酷客影视", + "name": "酷客影视(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 86, + "ext": "./drpy_js/酷客影视.js" + }, + { + "key": "hipy_js_量子影视[资]", + "name": "量子影视[资](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 87, + "ext": "./drpy_js/量子影视[资].js" + }, + { + "key": "hipy_js_量子资源[资]", + "name": "量子资源[资](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 88, + "ext": "./drpy_js/量子资源[资].js" + }, + { + "key": "hipy_js_金鹰资源[资]", + "name": "金鹰资源[资](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 89, + "ext": "./drpy_js/金鹰资源[资].js" + }, + { + "key": "hipy_js_阿里土豆[盘]", + "name": "阿里土豆[盘](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 90, + "ext": "./drpy_js/阿里土豆[盘].js" + }, + { + "key": "hipy_js_非凡资源[资]", + "name": "非凡资源[资](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 91, + "ext": "./drpy_js/非凡资源[资].js" + }, + { + "key": "hipy_js_魔都资源[资]", + "name": "魔都资源[资](drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 92, + "ext": "./drpy_js/魔都资源[资].js" + }, + { + "key": "hipy_js_麻雀视频", + "name": "麻雀视频(drpy_t3)", + "type": 3, + "api": "./drpy_libs/drpy2.min.js", + "searchable": 1, + "quickSearch": 1, + "filterable": 1, + "order_num": 93, + "ext": "./drpy_js/麻雀视频.js" + } + ], + "parses": [ + { + "name": "777", + "url": "https://jx.777jiexi.com/player/?url=", + "type": 0, + "ext": { + "flag": [ + "qiyi", + "imgo", + "爱奇艺", + "奇艺", + "qq", + "qq 预告及花絮", + "腾讯", + "youku", + "优酷", + "pptv", + "PPTV", + "letv", + "乐视", + "leshi", + "mgtv", + "芒果", + "sohu", + "xigua", + "fun", + "风行" + ] + }, + "header": { + "User-Agent": "Mozilla/5.0" + } + }, + { + "name": "8090g", + "url": "https://www.8090g.cn/jiexi/?url=", + "type": 0, + "ext": { + "flag": [ + "qiyi", + "imgo", + "爱奇艺", + "奇艺", + "qq", + "qq 预告及花絮", + "腾讯", + "youku", + "优酷", + "pptv", + "PPTV", + "letv", + "乐视", + "leshi", + "mgtv", + "芒果", + "sohu", + "xigua", + "fun", + "风行" + ] + }, + "header": { + "User-Agent": "Mozilla/5.0" + } + }, + { + "name": "红狐", + "url": "https://player.mrgaocloud.com/player/?url=", + "type": 0, + "ext": { + "flag": [ + "qiyi", + "imgo", + "爱奇艺", + "奇艺", + "qq", + "qq 预告及花絮", + "腾讯", + "youku", + "优酷", + "pptv", + "PPTV", + "letv", + "乐视", + "leshi", + "mgtv", + "芒果", + "sohu", + "xigua", + "fun", + "风行" + ] + }, + "header": { + "User-Agent": "Mozilla/5.0" + } + } + ], + "flags": [ + "imgo", + "youku", + "qq", + "qq 预告及花絮", + "iqiyi", + "qiyi", + "fun", + "letv", + "leshi", + "sohu", + "tudou", + "xigua", + "cntv", + "1905", + "pptv", + "mgtv", + "wasu", + "bilibili", + "renrenmi" + ], + "lives": [ + { + "group": "redirect", + "channels": [ + { + "name": "华数2", + "urls": [ + "proxy://do=live&type=txt&ext=http://127.0.0.1:9978/api/v1/file/drpy_dzlive/lives/华数2.m3u" + ] + }, + { + "name": "杭州华数", + "urls": [ + "proxy://do=live&type=txt&ext=http://127.0.0.1:9978/api/v1/file/drpy_dzlive/lives/杭州华数.m3u" + ] + }, + { + "name": "云星日记直播", + "urls": [ + "proxy://do=live&type=txt&ext=http://itvbox.cc/云星日记/Ipv4.txt" + ] + }, + { + "name": "本地嗅探器直播", + "urls": [ + "proxy://do=live&type=txt&ext=http://127.0.0.1:5708/ysp" + ] + } + ] + } + ] +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/json/\345\260\217\345\255\246\346\225\231\350\202\262.json" "b/zyplayer/drpy_dzlive/json/\345\260\217\345\255\246\346\225\231\350\202\262.json" new file mode 100644 index 0000000..f3ed0af --- /dev/null +++ "b/zyplayer/drpy_dzlive/json/\345\260\217\345\255\246\346\225\231\350\202\262.json" @@ -0,0 +1,1050 @@ +{ + "classes": [ + { + "type_name": "1年级语文", + "type_id": "1年级语文" + }, + { + "type_name": "1年级数学", + "type_id": "1年级数学" + }, + { + "type_name": "1年级英语", + "type_id": "1年级英语" + }, + { + "type_name": "2年级语文", + "type_id": "2年级语文" + }, + { + "type_name": "2年级数学", + "type_id": "2年级数学" + }, + { + "type_name": "2年级英语", + "type_id": "2年级英语" + }, + { + "type_name": "3年级语文", + "type_id": "3年级语文" + }, + { + "type_name": "3年级数学", + "type_id": "3年级数学" + }, + { + "type_name": "3年级英语", + "type_id": "3年级英语" + }, + { + "type_name": "4年级语文", + "type_id": "4年级语文" + }, + { + "type_name": "4年级数学", + "type_id": "4年级数学" + }, + { + "type_name": "4年级英语", + "type_id": "4年级英语" + }, + { + "type_name": "5年级语文", + "type_id": "5年级语文" + }, + { + "type_name": "5年级数学", + "type_id": "5年级数学" + }, + { + "type_name": "5年级英语", + "type_id": "5年级英语" + }, + { + "type_name": "6年级语文", + "type_id": "6年级语文" + }, + { + "type_name": "6年级数学", + "type_id": "6年级数学" + }, + { + "type_name": "6年级英语", + "type_id": "6年级英语" + } + ], + "filter": { + "1年级语文": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "1年级语文" + }, + { + "n": "沪教版", + "v": "沪教版1年级语文" + }, + { + "n": "人教版", + "v": "人教版1年级语文" + }, + { + "n": "北师大版", + "v": "北师大版1年级语文" + }, + { + "n": "苏教版", + "v": "苏教版1年级语文" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "1年级英语": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "1年级英语" + }, + { + "n": "沪教版", + "v": "沪教版1年级英语" + }, + { + "n": "人教版", + "v": "人教版1年级英语" + }, + { + "n": "北师大版", + "v": "北师大版1年级英语" + }, + { + "n": "苏教版", + "v": "苏教版1年级英语" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "1年级数学": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "1年级数学" + }, + { + "n": "沪教版", + "v": "沪教版1年级数学" + }, + { + "n": "人教版", + "v": "人教版1年级数学" + }, + { + "n": "北师大版", + "v": "北师大版1年级数学" + }, + { + "n": "苏教版", + "v": "苏教版1年级数学" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "2年级语文": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "2年级语文" + }, + { + "n": "沪教版", + "v": "沪教版2年级语文" + }, + { + "n": "人教版", + "v": "人教版2年级语文" + }, + { + "n": "北师大版", + "v": "北师大版2年级语文" + }, + { + "n": "苏教版", + "v": "苏教版2年级语文" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "2年级英语": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "2年级英语" + }, + { + "n": "沪教版", + "v": "沪教版2年级英语" + }, + { + "n": "人教版", + "v": "人教版2年级英语" + }, + { + "n": "北师大版", + "v": "北师大版2年级英语" + }, + { + "n": "苏教版", + "v": "苏教版2年级英语" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "2年级数学": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "2年级数学" + }, + { + "n": "沪教版", + "v": "沪教版2年级数学" + }, + { + "n": "人教版", + "v": "人教版2年级数学" + }, + { + "n": "北师大版", + "v": "北师大版2年级数学" + }, + { + "n": "苏教版", + "v": "苏教版2年级数学" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "3年级语文": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "3年级语文" + }, + { + "n": "沪教版", + "v": "沪教版3年级语文" + }, + { + "n": "人教版", + "v": "人教版3年级语文" + }, + { + "n": "北师大版", + "v": "北师大版3年级语文" + }, + { + "n": "苏教版", + "v": "苏教版3年级语文" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "3年级英语": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "3年级英语" + }, + { + "n": "沪教版", + "v": "沪教版3年级英语" + }, + { + "n": "人教版", + "v": "人教版3年级英语" + }, + { + "n": "北师大版", + "v": "北师大版3年级英语" + }, + { + "n": "苏教版", + "v": "苏教版3年级英语" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "3年级数学": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "3年级数学" + }, + { + "n": "沪教版", + "v": "沪教版3年级数学" + }, + { + "n": "人教版", + "v": "人教版3年级数学" + }, + { + "n": "北师大版", + "v": "北师大版3年级数学" + }, + { + "n": "苏教版", + "v": "苏教版3年级数学" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "4年级语文": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "4年级语文" + }, + { + "n": "沪教版", + "v": "沪教版4年级语文" + }, + { + "n": "人教版", + "v": "人教版4年级语文" + }, + { + "n": "北师大版", + "v": "北师大版4年级语文" + }, + { + "n": "苏教版", + "v": "苏教版4年级语文" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "4年级英语": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "4年级英语" + }, + { + "n": "沪教版", + "v": "沪教版4年级英语" + }, + { + "n": "人教版", + "v": "人教版4年级英语" + }, + { + "n": "北师大版", + "v": "北师大版4年级英语" + }, + { + "n": "苏教版", + "v": "苏教版4年级英语" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "4年级数学": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "4年级数学" + }, + { + "n": "沪教版", + "v": "沪教版4年级数学" + }, + { + "n": "人教版", + "v": "人教版4年级数学" + }, + { + "n": "北师大版", + "v": "北师大版4年级数学" + }, + { + "n": "苏教版", + "v": "苏教版4年级数学" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "5年级语文": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "5年级语文" + }, + { + "n": "沪教版", + "v": "沪教版5年级语文" + }, + { + "n": "人教版", + "v": "人教版5年级语文" + }, + { + "n": "北师大版", + "v": "北师大版5年级语文" + }, + { + "n": "苏教版", + "v": "苏教版5年级语文" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "5年级英语": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "5年级英语" + }, + { + "n": "沪教版", + "v": "沪教版5年级英语" + }, + { + "n": "人教版", + "v": "人教版5年级英语" + }, + { + "n": "北师大版", + "v": "北师大版5年级英语" + }, + { + "n": "苏教版", + "v": "苏教版5年级英语" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "5年级数学": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "5年级数学" + }, + { + "n": "沪教版", + "v": "沪教版5年级数学" + }, + { + "n": "人教版", + "v": "人教版5年级数学" + }, + { + "n": "北师大版", + "v": "北师大版5年级数学" + }, + { + "n": "苏教版", + "v": "苏教版5年级数学" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "6年级语文": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "6年级语文" + }, + { + "n": "沪教版", + "v": "沪教版6年级语文" + }, + { + "n": "人教版", + "v": "人教版6年级语文" + }, + { + "n": "北师大版", + "v": "北师大版6年级语文" + }, + { + "n": "苏教版", + "v": "苏教版6年级语文" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "6年级英语": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "6年级英语" + }, + { + "n": "沪教版", + "v": "沪教版6年级英语" + }, + { + "n": "人教版", + "v": "人教版6年级英语" + }, + { + "n": "北师大版", + "v": "北师大版6年级英语" + }, + { + "n": "苏教版", + "v": "苏教版6年级英语" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ], + "6年级数学": [ + { + "key": "tid", + "name": "分类", + "value": [ + { + "n": "全部", + "v": "6年级数学" + }, + { + "n": "沪教版", + "v": "沪教版6年级数学" + }, + { + "n": "人教版", + "v": "人教版6年级数学" + }, + { + "n": "北师大版", + "v": "北师大版6年级数学" + }, + { + "n": "苏教版", + "v": "苏教版6年级数学" + } + ] + }, + { + "key": "duration", + "name": "时长", + "value": [ + { + "n": "全部", + "v": "0" + }, + { + "n": "60分钟以上", + "v": "4" + }, + { + "n": "30-60分钟", + "v": "3" + }, + { + "n": "10-30分钟", + "v": "2" + }, + { + "n": "10分钟以下", + "v": "1" + } + ] + } + ] + } +} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/json/\347\231\275\345\253\226\347\255\233\351\200\211.json" "b/zyplayer/drpy_dzlive/json/\347\231\275\345\253\226\347\255\233\351\200\211.json" new file mode 100644 index 0000000..5b17cc1 --- /dev/null +++ "b/zyplayer/drpy_dzlive/json/\347\231\275\345\253\226\347\255\233\351\200\211.json" @@ -0,0 +1 @@ +{"1":[{"key":"类型","name":"类型","value":[{"n":"全部","v":"/id/1"},{"n":"动作片","v":"/id/6"},{"n":"喜剧片","v":"/id/7"},{"n":"爱情片","v":"/id/8"},{"n":"科幻片","v":"/id/9"},{"n":"恐怖片","v":"/id/10"},{"n":"剧情片","v":"/id/11"},{"n":"战争片","v":"/id/12"},{"n":"动画片","v":"/id/13"},{"n":"纪录片","v":"/id/14"}]},{"key":"剧情","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/运动"},{"n":"农村","v":"/class/农村"},{"n":"儿童","v":"/class/儿童"},{"n":"网络电影","v":"/class/网络电影"}]},{"key":"地区","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/新加坡"},{"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":"年份","name":"年份","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"},{"n":"1999","v":"/year/1999"},{"n":"1998","v":"/year/1998"},{"n":"1997","v":"/year/1997"},{"n":"1996","v":"/year/1996"},{"n":"1995","v":"/year/1995"},{"n":"1994","v":"/year/1994"},{"n":"1993","v":"/year/1993"},{"n":"1992","v":"/year/1992"},{"n":"1991","v":"/year/1991"},{"n":"1990","v":"/year/1990"}]},{"key":"语言","name":"语言","value":[{"n":"全部","v":""},{"n":"汉语普通话","v":"/lang/汉语普通话"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"德语","v":"/lang/德语"},{"n":"其它","v":"/lang/其它"}]},{"key":"字母","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"排序","name":"排序","value":[{"n":"按时间","v":"/by/time"},{"n":"按人气","v":"/by/hits"},{"n":"按评分","v":"/by/score"}]}],"2":[{"key":"类型","name":"类型","value":[{"n":"全部","v":"/id/2"},{"n":"国剧","v":"/id/15"},{"n":"美剧","v":"/id/16"},{"n":"英剧","v":"/id/17"},{"n":"韩剧","v":"/id/18"},{"n":"泰剧","v":"/id/20"},{"n":"日剧","v":"/id/21"},{"n":"中国香港","v":"/id/22"},{"n":"中国台湾","v":"/id/23"},{"n":"其他","v":"/id/24"}]},{"key":"剧情","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/其他"}]},{"key":"地区","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/新加坡"},{"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":"年份","name":"年份","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"},{"n":"1999","v":"/year/1999"},{"n":"1998","v":"/year/1998"},{"n":"1997","v":"/year/1997"},{"n":"1996","v":"/year/1996"},{"n":"1995","v":"/year/1995"},{"n":"1994","v":"/year/1994"},{"n":"1993","v":"/year/1993"},{"n":"1992","v":"/year/1992"},{"n":"1991","v":"/year/1991"},{"n":"1990","v":"/year/1990"}]},{"key":"语言","name":"语言","value":[{"n":"全部","v":""},{"n":"汉语普通话","v":"/lang/汉语普通话"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"德语","v":"/lang/德语"},{"n":"其它","v":"/lang/其它"}]},{"key":"字母","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"排序","name":"排序","value":[{"n":"按时间","v":"/by/time"},{"n":"按人气","v":"/by/hits"},{"n":"按评分","v":"/by/score"}]}],"3":[{"key":"类型","name":"类型","value":[{"n":"全部","v":"/id/3"},{"n":"国漫","v":"/id/25"},{"n":"日漫","v":"/id/26"},{"n":"欧美","v":"/id/27"},{"n":"其他","v":"/id/28"}]},{"key":"剧情","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/其他"}]},{"key":"地区","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/新加坡"},{"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":"年份","name":"年份","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"语言","name":"语言","value":[{"n":"全部","v":""},{"n":"汉语普通话","v":"/lang/汉语普通话"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"德语","v":"/lang/德语"},{"n":"其它","v":"/lang/其它"}]},{"key":"字母","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"排序","name":"排序","value":[{"n":"按时间","v":"/by/time"},{"n":"按人气","v":"/by/hits"},{"n":"按评分","v":"/by/score"}]}],"4":[{"key":"类型","name":"类型","value":[{"n":"全部","v":"/id/4"},{"n":"内地","v":"/id/29"}]},{"key":"剧情","name":"剧情","value":[{"n":"全部","v":""},{"n":"爽文","v":"/class/爽文"}]},{"key":"地区","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"/area/内地"}]},{"key":"年份","name":"年份","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"语言","name":"语言","value":[{"n":"全部","v":""},{"n":"汉语普通话","v":"/lang/汉语普通话"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"德语","v":"/lang/德语"},{"n":"其它","v":"/lang/其它"}]},{"key":"字母","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"排序","name":"排序","value":[{"n":"按时间","v":"/by/time"},{"n":"按人气","v":"/by/hits"},{"n":"按评分","v":"/by/score"}]}],"5":[{"key":"类型","name":"类型","value":[{"n":"全部","v":"/id/5"},{"n":"大陆综艺","v":"/id/30"},{"n":"日韩综艺","v":"/id/31"},{"n":"港台综艺","v":"/id/32"},{"n":"欧美综艺","v":"/id/33"}]},{"key":"剧情","name":"剧情","value":[{"n":"全部","v":""},{"n":"","v":""}]},{"key":"地区","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/新加坡"},{"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":"年份","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"/year/2023"},{"n":"2022","v":"/year/2022"},{"n":"2021","v":"/year/2021"},{"n":"2020","v":"/year/2020"},{"n":"2019","v":"/year/2019"},{"n":"2018","v":"/year/2018"},{"n":"2017","v":"/year/2017"},{"n":"2016","v":"/year/2016"},{"n":"2015","v":"/year/2015"},{"n":"2014","v":"/year/2014"},{"n":"2013","v":"/year/2013"},{"n":"2012","v":"/year/2012"},{"n":"2011","v":"/year/2011"},{"n":"2010","v":"/year/2010"},{"n":"2009","v":"/year/2009"},{"n":"2008","v":"/year/2008"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"语言","name":"语言","value":[{"n":"全部","v":""},{"n":"汉语普通话","v":"/lang/汉语普通话"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"德语","v":"/lang/德语"},{"n":"其它","v":"/lang/其它"}]},{"key":"字母","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"排序","name":"排序","value":[{"n":"按时间","v":"/by/time"},{"n":"按人气","v":"/by/hits"},{"n":"按评分","v":"/by/score"}]}]} \ No newline at end of file diff --git "a/zyplayer/drpy_dzlive/lives/\345\215\216\346\225\2602.m3u" "b/zyplayer/drpy_dzlive/lives/\345\215\216\346\225\2602.m3u" new file mode 100644 index 0000000..5d3aeb1 --- /dev/null +++ "b/zyplayer/drpy_dzlive/lives/\345\215\216\346\225\2602.m3u" @@ -0,0 +1,156 @@ +#EXTM3U +#EXT-X-APP APTV +#EXT-X-APTV-TYPE blank + +#EXTINF:-1 group-title="未分类",CCTV1综合 +http://125.210.150.58:9090/live/hzgq-cctv1gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV2财经 +http://125.210.150.58:9090/live/hzgq-cctv2gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV3综艺 +http://125.210.150.58:9090/live/hzgq-cctv3gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV4中文国际 +http://125.210.150.58:9090/live/hzgq-cctv4gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV5体育 +http://125.210.150.58:9090/live/hzgq-cctv5gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV5+体育赛事 +http://125.210.150.58:9090/live/hzgq-cctvzhgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV6电影 +http://125.210.150.58:9090/live/hzgq-cctv6gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV7国防军事 +http://125.210.150.58:9090/live/hzgq-cctv7gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV8电视剧 +http://125.210.150.58:9090/live/hzgq-cctv8gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV9纪录 +http://125.210.150.58:9090/live/hzgq-cctvjlgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV10科教 +http://125.210.150.58:9090/live/hzgq-cctv10gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV11戏曲 +http://125.210.150.58:9090/live/hszx-cctv11-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV12社会与法 +http://125.210.150.58:9090/live/hzgq-cctv12gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV13新闻 +http://125.210.150.58:9090/live/hzgq-cctvnewsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV14少儿 +http://125.210.150.58:9090/live/hzgq-cctvsegq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV15音乐 +http://125.210.150.58:9090/live/hzgq-cctvmusicgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV16奥林匹克 +http://125.210.150.58:9090/live/hzgq-cctv16gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV17农业农村 +http://125.210.150.58:9090/live/hzgq-cctv17gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CGTN +http://125.210.150.58:9090/live/hszx-cctvgj-h264.m3u8 +#EXTINF:-1 group-title="未分类",重温经典 +http://125.210.150.58:9090/live/hzgq-cwjdgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CETV4中教4台 +http://125.210.150.58:9090/live/hszx-CETV-4-h264.m3u8 +#EXTINF:-1 group-title="未分类",北京卫视 +http://125.210.150.58:9090/live/hzgq-bjgqws-h264.m3u8 +#EXTINF:-1 group-title="未分类",东方卫视 +http://125.210.150.58:9090/live/hzgq-dftvgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",天津卫视 +http://125.210.150.58:9090/live/hzgq-tjwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",重庆卫视 +http://125.210.150.58:9090/live/hzgq-cqwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",黑龙江卫视 +http://125.210.150.58:9090/live/hzgq-hljwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",吉林卫视 +http://125.210.150.58:9090/live/hzgq-jlwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",辽宁卫视 +http://125.210.150.58:9090/live/hzgq-lnwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",内蒙古卫视 +http://125.210.150.58:9090/live/hszx-nmgtv-h264.m3u8 +#EXTINF:-1 group-title="未分类",宁夏卫视 +http://125.210.150.58:9090/live/hszx-nxtv-h264.m3u8 +#EXTINF:-1 group-title="未分类",甘肃卫视 +http://125.210.150.58:9090/live/hszx-gstv-h264.m3u8 +#EXTINF:-1 group-title="未分类",青海卫视 +http://125.210.150.58:9090/live/hszx-qhtv-h264.m3u8 +#EXTINF:-1 group-title="未分类",陕西卫视 +http://125.210.150.58:9090/live/hszx-sxtv-h264.m3u8 +#EXTINF:-1 group-title="未分类",河北卫视 +http://125.210.150.58:9090/live/hszx-hebeitv-h264.m3u8 +#EXTINF:-1 group-title="未分类",山西卫视 +http://125.210.150.58:9090/live/hszx-shanxitv-h264.m3u8 +#EXTINF:-1 group-title="未分类",山东卫视 +http://125.210.150.58:9090/live/hzgq-sdwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",安徽卫视 +http://125.210.150.58:9090/live/hzgq-ahwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",河南卫视 +http://125.210.150.58:9090/live/hszx-henantv-h264.m3u8 +#EXTINF:-1 group-title="未分类",湖北卫视 +http://125.210.150.58:9090/live/hzgq-hbwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",湖南卫视 +http://125.210.150.58:9090/live/hzgq-hnwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",江西卫视 +http://125.210.150.58:9090/live/hzgq-jxwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",江苏卫视 +http://125.210.150.58:9090/live/hzgq-jswsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江卫视 +http://125.210.150.58:9090/live/hzgq-zjwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",东南卫视 +http://125.210.150.58:9090/live/hzgq-fjwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",广东卫视 +http://125.210.150.58:9090/live/hzgq-gdwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",深圳卫视 +http://125.210.150.58:9090/live/hzgq-szwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",广西卫视 +http://125.210.150.58:9090/live/hszx-gxtv-h264.m3u8 +#EXTINF:-1 group-title="未分类",云南卫视 +http://125.210.150.58:9090/live/hszx-yntv-h264.m3u8 +#EXTINF:-1 group-title="未分类",贵州卫视 +http://125.210.150.58:9090/live/hzgq-gzwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",四川卫视 +http://125.210.150.58:9090/live/hzgq-scwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",新疆卫视 +http://125.210.150.58:9090/live/hszx-xjtv-h264.m3u8 +#EXTINF:-1 group-title="未分类",兵团卫视 +http://125.210.150.58:9090/live/hszx-bttv-h264.m3u8 +#EXTINF:-1 group-title="未分类",西藏卫视 +http://125.210.150.58:9090/live/hszx-xztv-h264.m3u8 +#EXTINF:-1 group-title="未分类",海南卫视 +http://125.210.150.58:9090/live/hszx-lytv-h264.m3u8 +#EXTINF:-1 group-title="未分类",三沙卫视 +http://125.210.150.58:9090/live/hzgq-ssws-h264.m3u8 +#EXTINF:-1 group-title="未分类",北京纪实科教 +http://125.210.150.58:9090/live/hszx-bjjs-h264.m3u8 +#EXTINF:-1 group-title="未分类",四海钓鱼 +http://125.210.150.58:9090/live/hszx-shdy-h264.m3u8 +#EXTINF:-1 group-title="未分类",金鹰纪实 +http://125.210.150.58:9090/live/hszx-jyjs-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江钱江 +http://125.210.150.58:9090/live/hzgq-qjpdgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江经济生活 +http://125.210.150.58:9090/live/hzgq-zjjsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江教育科技 +http://125.210.150.58:9090/live/hzgq-zjjygq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江民生休闲 +http://125.210.150.58:9090/live/hzgq-msxxgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江新闻 +http://125.210.150.58:9090/live/hzgq-zjxwgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江少儿 +http://125.210.150.58:9090/live/hzgq-zjsegq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江好易购 +http://125.210.150.58:9090/live/hzgq-hyggq-h264.m3u8 +#EXTINF:-1 group-title="未分类",杭州综合 +http://125.210.150.58:9090/live/hzgq-hzzhgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",杭州明珠 +http://125.210.150.58:9090/live/hzgq-xhmzgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",杭州生活 +http://125.210.150.58:9090/live/hzgq-hzshgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",杭州影视 +http://125.210.150.58:9090/live/hzgq-hzysgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",杭州青少 +http://125.210.150.58:9090/live/hzgq-hzsegq-h264.m3u8 +#EXTINF:-1 group-title="未分类",杭州导视 +http://125.210.150.58:9090/live/hzgq-hzdsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",临平新闻 +http://125.210.150.58:9090/live/hszx-klcd-h264.m3u8 +#EXTINF:-1 group-title="未分类",华数频道 +http://125.210.150.58:9090/live/hzgq-hsfwgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",天元围棋 +http://125.210.150.58:9090/live/hszx-tywq-h264.m3u8 +#EXTINF:-1 group-title="未分类",凤 凰中文 +http://125.210.150.58:9090/live/hszx-fhzw-h264.m3u8 +#EXTINF:-1 group-title="未分类",凤 凰资讯 +http://125.210.150.58:9090/live/hszx-fhzx-h264.m3u8 diff --git "a/zyplayer/drpy_dzlive/lives/\346\235\255\345\267\236\345\215\216\346\225\260.m3u" "b/zyplayer/drpy_dzlive/lives/\346\235\255\345\267\236\345\215\216\346\225\260.m3u" new file mode 100644 index 0000000..5d3aeb1 --- /dev/null +++ "b/zyplayer/drpy_dzlive/lives/\346\235\255\345\267\236\345\215\216\346\225\260.m3u" @@ -0,0 +1,156 @@ +#EXTM3U +#EXT-X-APP APTV +#EXT-X-APTV-TYPE blank + +#EXTINF:-1 group-title="未分类",CCTV1综合 +http://125.210.150.58:9090/live/hzgq-cctv1gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV2财经 +http://125.210.150.58:9090/live/hzgq-cctv2gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV3综艺 +http://125.210.150.58:9090/live/hzgq-cctv3gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV4中文国际 +http://125.210.150.58:9090/live/hzgq-cctv4gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV5体育 +http://125.210.150.58:9090/live/hzgq-cctv5gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV5+体育赛事 +http://125.210.150.58:9090/live/hzgq-cctvzhgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV6电影 +http://125.210.150.58:9090/live/hzgq-cctv6gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV7国防军事 +http://125.210.150.58:9090/live/hzgq-cctv7gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV8电视剧 +http://125.210.150.58:9090/live/hzgq-cctv8gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV9纪录 +http://125.210.150.58:9090/live/hzgq-cctvjlgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV10科教 +http://125.210.150.58:9090/live/hzgq-cctv10gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV11戏曲 +http://125.210.150.58:9090/live/hszx-cctv11-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV12社会与法 +http://125.210.150.58:9090/live/hzgq-cctv12gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV13新闻 +http://125.210.150.58:9090/live/hzgq-cctvnewsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV14少儿 +http://125.210.150.58:9090/live/hzgq-cctvsegq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV15音乐 +http://125.210.150.58:9090/live/hzgq-cctvmusicgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV16奥林匹克 +http://125.210.150.58:9090/live/hzgq-cctv16gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CCTV17农业农村 +http://125.210.150.58:9090/live/hzgq-cctv17gq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CGTN +http://125.210.150.58:9090/live/hszx-cctvgj-h264.m3u8 +#EXTINF:-1 group-title="未分类",重温经典 +http://125.210.150.58:9090/live/hzgq-cwjdgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",CETV4中教4台 +http://125.210.150.58:9090/live/hszx-CETV-4-h264.m3u8 +#EXTINF:-1 group-title="未分类",北京卫视 +http://125.210.150.58:9090/live/hzgq-bjgqws-h264.m3u8 +#EXTINF:-1 group-title="未分类",东方卫视 +http://125.210.150.58:9090/live/hzgq-dftvgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",天津卫视 +http://125.210.150.58:9090/live/hzgq-tjwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",重庆卫视 +http://125.210.150.58:9090/live/hzgq-cqwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",黑龙江卫视 +http://125.210.150.58:9090/live/hzgq-hljwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",吉林卫视 +http://125.210.150.58:9090/live/hzgq-jlwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",辽宁卫视 +http://125.210.150.58:9090/live/hzgq-lnwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",内蒙古卫视 +http://125.210.150.58:9090/live/hszx-nmgtv-h264.m3u8 +#EXTINF:-1 group-title="未分类",宁夏卫视 +http://125.210.150.58:9090/live/hszx-nxtv-h264.m3u8 +#EXTINF:-1 group-title="未分类",甘肃卫视 +http://125.210.150.58:9090/live/hszx-gstv-h264.m3u8 +#EXTINF:-1 group-title="未分类",青海卫视 +http://125.210.150.58:9090/live/hszx-qhtv-h264.m3u8 +#EXTINF:-1 group-title="未分类",陕西卫视 +http://125.210.150.58:9090/live/hszx-sxtv-h264.m3u8 +#EXTINF:-1 group-title="未分类",河北卫视 +http://125.210.150.58:9090/live/hszx-hebeitv-h264.m3u8 +#EXTINF:-1 group-title="未分类",山西卫视 +http://125.210.150.58:9090/live/hszx-shanxitv-h264.m3u8 +#EXTINF:-1 group-title="未分类",山东卫视 +http://125.210.150.58:9090/live/hzgq-sdwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",安徽卫视 +http://125.210.150.58:9090/live/hzgq-ahwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",河南卫视 +http://125.210.150.58:9090/live/hszx-henantv-h264.m3u8 +#EXTINF:-1 group-title="未分类",湖北卫视 +http://125.210.150.58:9090/live/hzgq-hbwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",湖南卫视 +http://125.210.150.58:9090/live/hzgq-hnwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",江西卫视 +http://125.210.150.58:9090/live/hzgq-jxwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",江苏卫视 +http://125.210.150.58:9090/live/hzgq-jswsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江卫视 +http://125.210.150.58:9090/live/hzgq-zjwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",东南卫视 +http://125.210.150.58:9090/live/hzgq-fjwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",广东卫视 +http://125.210.150.58:9090/live/hzgq-gdwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",深圳卫视 +http://125.210.150.58:9090/live/hzgq-szwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",广西卫视 +http://125.210.150.58:9090/live/hszx-gxtv-h264.m3u8 +#EXTINF:-1 group-title="未分类",云南卫视 +http://125.210.150.58:9090/live/hszx-yntv-h264.m3u8 +#EXTINF:-1 group-title="未分类",贵州卫视 +http://125.210.150.58:9090/live/hzgq-gzwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",四川卫视 +http://125.210.150.58:9090/live/hzgq-scwsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",新疆卫视 +http://125.210.150.58:9090/live/hszx-xjtv-h264.m3u8 +#EXTINF:-1 group-title="未分类",兵团卫视 +http://125.210.150.58:9090/live/hszx-bttv-h264.m3u8 +#EXTINF:-1 group-title="未分类",西藏卫视 +http://125.210.150.58:9090/live/hszx-xztv-h264.m3u8 +#EXTINF:-1 group-title="未分类",海南卫视 +http://125.210.150.58:9090/live/hszx-lytv-h264.m3u8 +#EXTINF:-1 group-title="未分类",三沙卫视 +http://125.210.150.58:9090/live/hzgq-ssws-h264.m3u8 +#EXTINF:-1 group-title="未分类",北京纪实科教 +http://125.210.150.58:9090/live/hszx-bjjs-h264.m3u8 +#EXTINF:-1 group-title="未分类",四海钓鱼 +http://125.210.150.58:9090/live/hszx-shdy-h264.m3u8 +#EXTINF:-1 group-title="未分类",金鹰纪实 +http://125.210.150.58:9090/live/hszx-jyjs-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江钱江 +http://125.210.150.58:9090/live/hzgq-qjpdgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江经济生活 +http://125.210.150.58:9090/live/hzgq-zjjsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江教育科技 +http://125.210.150.58:9090/live/hzgq-zjjygq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江民生休闲 +http://125.210.150.58:9090/live/hzgq-msxxgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江新闻 +http://125.210.150.58:9090/live/hzgq-zjxwgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江少儿 +http://125.210.150.58:9090/live/hzgq-zjsegq-h264.m3u8 +#EXTINF:-1 group-title="未分类",浙江好易购 +http://125.210.150.58:9090/live/hzgq-hyggq-h264.m3u8 +#EXTINF:-1 group-title="未分类",杭州综合 +http://125.210.150.58:9090/live/hzgq-hzzhgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",杭州明珠 +http://125.210.150.58:9090/live/hzgq-xhmzgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",杭州生活 +http://125.210.150.58:9090/live/hzgq-hzshgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",杭州影视 +http://125.210.150.58:9090/live/hzgq-hzysgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",杭州青少 +http://125.210.150.58:9090/live/hzgq-hzsegq-h264.m3u8 +#EXTINF:-1 group-title="未分类",杭州导视 +http://125.210.150.58:9090/live/hzgq-hzdsgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",临平新闻 +http://125.210.150.58:9090/live/hszx-klcd-h264.m3u8 +#EXTINF:-1 group-title="未分类",华数频道 +http://125.210.150.58:9090/live/hzgq-hsfwgq-h264.m3u8 +#EXTINF:-1 group-title="未分类",天元围棋 +http://125.210.150.58:9090/live/hszx-tywq-h264.m3u8 +#EXTINF:-1 group-title="未分类",凤 凰中文 +http://125.210.150.58:9090/live/hszx-fhzw-h264.m3u8 +#EXTINF:-1 group-title="未分类",凤 凰资讯 +http://125.210.150.58:9090/live/hszx-fhzx-h264.m3u8 diff --git a/zyplayer/drpy_dzlive/readme.txt b/zyplayer/drpy_dzlive/readme.txt new file mode 100644 index 0000000..a47815f --- /dev/null +++ b/zyplayer/drpy_dzlive/readme.txt @@ -0,0 +1,10 @@ +1.drpy_dzlive整个文件夹丢到zy服务目录的根目录,不是安装目录(写源工具-运行-服务) +2.zy设置数据导入hipy源输入下面的地址: +http://127.0.0.1:9978/api/v1/file/drpy_dzlive/ + +注意: 需要 zyplayer3.5.5 0509-3 及以上版本 + +本地包版本:20240518 + +其他说明: +index.json可以给手机壳子easybox使用本地包 \ No newline at end of file diff --git a/zyplayer/drpy_gao/js.json b/zyplayer/drpy_gao/js.json new file mode 100644 index 0000000..66680c9 --- /dev/null +++ b/zyplayer/drpy_gao/js.json @@ -0,0 +1,357 @@ +{ +"spider":"./jar/pg.jar;md5;55187a60bc1295a55499ece1438436d2", +"lives":[{"name":"初秋语","type":0,"url":"./list.txt","playerType":1,"epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, +{"name":"Ray","type":0,"url":"https://github.moeyy.xyz/https://raw.githubusercontent.com/dxawi/0/main/tvlive.txt","playerType":1,"epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"} +], +"wallpaper":"https://jianbian.chuqiuyu.workers.dev", +"sites":[ +{"key":"drpy_js_豆瓣","name":"搜索 | 豆瓣[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/drpy.js","searchable":1,"quickSearch":0,"changeable":0}, +{"key":"drpy_js_磁力熊搜索","name":"搜索 | 磁力熊[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/cilixiong.js","searchable":1,"quickSearch":0,"changeable":1}, +{"key":"lf_js_search","name":"搜索 | 路飞[js]","type":3,"searchable":1,"changeable":1,"quickSearch":0,"filterable":0,"api":"./lib/lf_search3_min.js"}, +{"key":"drpy_js_荐片","name":"影视 | 荐片[js]","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"changeable":1,"ext":"./js/荐片.js", "timeout":30}, +{"key":"drpy_js_新片场","name":"新片 | 新片场[js]","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"changeable":0,"ext":"./js/新片场.js"}, +{"key":"lf_js_p2p","name":"路飞 | 磁力[js]","type":3,"searchable":1,"changeable":1,"quickSearch":1,"filterable":1,"api":"./lib/lf_p2p2_min.js","timeout":30}, +{"key":"lf_js_lf_live","name":"电视 | 直播[js]","type":3,"api":"./lib/lf_live_min.js","style":{ "type":"oval"},"searchable":1,"changeable":0,"quickSearch":1,"filterable":1,"ext":"./js/lf_live.txt"}, + +{"key":"豆瓣","name":"搜索 | 豆瓣[jar]","type":3,"api":"csp_Douban","searchable":1,"changeable":1,"ext":"./json/douban.json"}, +{"key": "FirstAid","name": "科普 | 急救[jar]","type": 3,"api": "csp_FirstAid","searchable":1,"quickSearch": 0,"changeable": 0,"style": {"type": "rect","ratio": 3.8}}, +{"key":"配置中心","name":"配置 | 中心[jar]","type":3,"api":"csp_Config","searchable":1,"changeable":0,"style":{"type":"rect","ratio":1},"ext":"http://127.0.0.1:9978/file/TV/token.json"}, +{"key":"酷狗","name":"音频 | 酷狗[jar]","type":3,"api":"csp_Kugou","searchable":1,"changeable":0}, +{"key": "Iktv","name": "MV | KTV[jar]","type": 3,"api": "csp_Iktv","searchable": 1,"changeable": 0}, +{"key": "Yinyuetai","name": "MV | 音悦台[jar]","type": 3,"api": "csp_Yinyuetai","searchable": 1,"changeable": 0}, +{"key":"AliShareEBook","name":"书籍 | 分享[jar]","type":3,"api":"csp_AliShare","searchable":1,"quickSearch":0, "changeable":0, "filterable":0, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$./json/alishare.ebook.txt$$$db$$$1","style":{"type":"list"}}, +{"key":"荐片弹幕版","name":"弹幕 | 荐片[jar]","type":3,"api":"csp_Jianpian","searchable":1,"quickSearch":1,"filterable":1,"ext":"./json/jianpian.json$$$1", "timeout":60}, +{"key":"Bdys_spider","name":"弹幕 | 哔滴[jar]","api":"csp_Bdys01","type":3,"filterable":1,"quickSearch":1,"searchable":1,"ext":"https://www.bdys03.com/$$$null$$$1","timeout":30}, +{"key": "天天","name": "弹幕 | 天天[jar]","type": 3,"api": "csp_TTian","playerType": 1,"ext": "http://op.ysdqjs.cn$$$null$$$1"}, +{"key": "追剧","name": "弹幕 | 追剧[jar]","type": 3,"api": "csp_TTian","playerType": 1,"ext": "http://app.kzjtv.com$$$null$$$1"}, +{"key":"NanGua","name":"弹幕 | 南瓜[jar]","type":3,"api":"csp_NanGua","searchable":1,"changeable":1,"ext":"null$$$1"}, +{"key":"PushShare","name":"弹幕 | 资源分享[jar]","type":3, "api":"csp_PushShare","searchable":1,"quickSearch":1, "changeable":1, "filterable":0, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$./json/pushshare.txt$$$db$$$1","style": {"type": "list"}}, +{"key":"PikPakShare","name":"弹幕 | PikPak分享[jar]","type":3,"api":"csp_PikPakShare","searchable":1,"quickSearch":1, "changeable":1, "filterable":0, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$./json/pikpakclass.json$$$./json/pikpakclass.json.db.gz"}, +{"key":"AliShare","name":"弹幕 | 影视分享[jar]","type":3,"api":"csp_AliShare","searchable":1,"quickSearch":1, "changeable":1, "filterable":0, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$./json/alishare.txt$$$db$$$1"}, +{"key":"ThunderShare","name":"弹幕 | 迅雷分享[jar]","type":3,"api":"csp_ThunderShare","searchable":1,"quickSearch":1, "changeable":1, "filterable":0, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$./json/thundershare.txt"}, +{"key":"QuarkShare","name":"弹幕 | 夸克分享[jar]","type":3,"api":"csp_QuarkShare","searchable":1,"quickSearch":1, "changeable":1, "filterable":0, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$./json/quarkshare.txt"}, +{"key":"SambaShare","name":"弹幕 | Samba分享[jar]","type":3,"api":"csp_SambaShare","searchable":1,"quickSearch":0, "changeable":0, "filterable":0, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$./json/sambashare.txt"}, +{"key":"Wogg","name":"弹幕 | 玩偶[jar]","type":3,"api":"csp_Wogg","quickSearch":1, "changeable":1, "filterable":1, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://www.wogg.xyz/$$$null$$$1$$$./wogg.json"}, +{"key":"Wobg","name":"弹幕 | 表哥[jar]","type":3,"api":"csp_Wobg","quickSearch":1, "changeable":1, "filterable":1, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://wobge.run.goorm.io$$$null$$$1$$$./wogg.json"}, +{"key":"yydsys","name":"弹幕 | 老哥[jar]","type":3,"api":"csp_Wobg","quickSearch":1, "changeable":1, "filterable":1, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://tv.yydsys.top/$$$null$$$1$$$./wogg.json"}, +{"key":"Xinshijue","name":"弹幕 | 新视觉[jar]","type":3,"api":"csp_Xinshijue","quickSearch":1, "changeable":1, "filterable":1, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://www.80yy3.com/$$$1$$$./lib/wogg.json"}, +{"key":"Moli","name":"弹幕 | HDmoli[jar]","type":3,"api":"csp_Moli","quickSearch":1, "changeable":1, "filterable":1, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://www.hdmoli.pro/$$$null$$$1$$$./json/moli.json"}, +{"key":"Bt0","name":"弹幕 | 不太灵[jar]","type":3,"api":"csp_Bt0","quickSearch":1, "changeable":1, "filterable":1, "timeout":60, "ext":"null$$$null$$$1"}, +{"key":"ddys","name":"弹幕 | 低端[jar]","type":3,"api":"csp_Ddys","quickSearch":1, "changeable":1, "filterable":1, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://ddys.pro/$$$proxy$$$1$$$"}, +{"key":"美剧迷","name":"弹幕 | 美剧迷[jar]","type":3,"api":"csp_Meijumi", "quickSearch":1, "changeable":1, "filterable":1, "timeout":30,"ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://www.meijumi.xyz/$$$null$$$1"}, +{"key":"Ppxzy","name":"弹幕 | 皮皮虾[jar]","type":3,"api":"csp_Ppxzy", "quickSearch":1, "changeable":1, "filterable":1, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://ppxzy.net/$$$null", "timeout":30}, +{"key":"新6V","name":"弹幕 | 新6V[jar]","type":3,"api":"csp_Xb6v","searchable":1,"changeable":1,"timeout":60,"ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://www.66ss.org$$$1"}, +{"key":"4KHDR","name":"弹幕 | 4KHDR[jar]","type":3,"api":"csp_FourKHDR","ext":"http://127.0.0.1:9978/file/TV/token.json$$$http://127.0.0.1:9978/file/TV/4khdr.txt","quickSearch":1,"changeable":1,"timeout":60}, +{"key":"校长影视","name":"弹幕 | 校长[jar]","type":3,"api":"csp_XiaoZhang","ext":"http://127.0.0.1:9978/file/TV/token.json","quickSearch":1,"changeable":1,"timeout":30}, +{"key":"团长资源","name":"弹幕 | 团长[jar]","type":3,"api":"csp_TZFile","ext":"http://127.0.0.1:9978/file/TV/token.json", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"csp_Hdhive","name":"弹幕 | 影巢[jar]","type":3,"api":"csp_Hdhive","searchable":1,"quickSearch":1,"filterable":1,"ext":"http://127.0.0.1:9978/file/TV/token.json","timeout":30}, +{"key":"Panta","name":"弹幕 | 盘Ta[jar]","type":3,"api":"csp_Panta","quickSearch":1, "changeable":1, "filterable":1, "timeout":30, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://www.91panta.cn/$$$null$$$1"}, +{"key":"YunPan","name":"弹幕 | 云盘[jar]","type":3,"api":"csp_YunPan","timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$null$$$proxy$$$1"}, +{"key":"Wo4k","name":"弹幕 | 玩偶4k[jar]","type":3,"api":"csp_Wo4k","quickSearch":1, "changeable":1, "filterable":1, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://www.wo4k.com/$$$proxy$$$1$$$./wogg.json"}, +{"key":"Xpanpan","name":"弹幕 | 小盘盘[jar]","type":3,"api":"csp_Xpanpan","quickSearch":1, "changeable":1, "filterable":1, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://xpanpan.site$$$null$$$1"}, +{"key":"Gaoqing","name":"弹幕 | 高清网[jar]","type":3,"api":"csp_Gaoqing","quickSearch":1, "changeable":1, "filterable":1, "timeout":60, "ext":"./lib/tokenm.json$$$https://gaoqing.la/$$$proxy$$$1"}, + +{"key":"YingSo","name":"磁力 | 影搜[jar]","type":3,"api":"csp_YingSo","timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$1"}, +{"key":"盘友圈","name":"网盘 | 盘友圈","type":3,"api":"csp_Panyq","timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json"}, +{"key":"88Pan","name":"网盘 | 88网盘[jar]","type":3,"api":"csp_EightEight","timeout":30, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://662688.xyz"}, +{"key":"PikaSo","name":"网盘 | 皮卡搜[jar]","type":3,"api":"csp_PikaSo","quickSearch":1, "changeable":1, "filterable":1, "timeout":30, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://www.pikaso.top/$$$null"}, +{"key":"csp_HunHePan","name":"网盘 | 混合盘[jar]","type":3,"api":"csp_HunHePan","searchable":1,"quickSearch":1, "changeable":1, "filterable":0, "timeout":60, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$null$$$1"}, +{"key":"秒搜","name":"网盘 | 秒搜[jar]","type":3,"api":"csp_MiaoSou","timeout":30, "ext":"http://127.0.0.1:9978/file/TV/token.json"}, +{"key":"Libvio","name":"网盘 | LIBVIO[jar]","type":3,"api":"csp_Libvio","quickSearch":1, "changeable":1, "filterable":1, "timeout":30, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://www.libvio.fun$$$null"}, +{"key":"DaPanSo","name":"网盘 | 大盘搜[jar]","type":3,"api":"csp_DaPanSo","quickSearch":1, "changeable":1, "filterable":1, "timeout":30, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://dapanso.com$$$null"}, +{"key":"Qianfan","name":"网盘 | 千帆[jar]","type":3,"api":"csp_Qianfan","quickSearch":1, "changeable":1, "filterable":1, "timeout":30, "ext":"http://127.0.0.1:9978/file/TV/token.json$$$https://pan.qianfan.app$$$null$$$QianFanID="}, +{"key":"YunSo","name":"网盘 | 小云[jar]","type":3,"api":"csp_YunSo","quickSearch":1, "changeable":1, "filterable":1, "timeout":30, "ext":"http://127.0.0.1:9978/file/TV/token.json"}, +{"key":"YunPanOne","name":"网盘 | 云盘[jar]","type":3,"api":"csp_YunPanOne","quickSearch":1, "changeable":1, "filterable":1, "timeout":30, "ext":"http://127.0.0.1:9978/file/TV/token.json"}, +{"key":"Gitcafe", "name": "阿里 | 纸条[jar]", "type": 3, "api": "csp_Gitcafe", "searchable": 1, "quickSearch": 1, "filterable": 0, "ext":"http://127.0.0.1:9978/file/TV/token.json", "timeout":30}, +{"key":"小紙條", "name": "阿里 | 小紙條[jar]", "type": 3, "api": "csp_XiaoZhiTiao", "searchable": 1, "quickSearch": 1, "filterable": 0, "ext":"http://127.0.0.1:9978/file/TV/token.json", "timeout":30}, +{"key":"七夜","name":"阿里 | 七夜[jar]","type":3,"api":"csp_Dovx","searchable":1,"changeable":0,"ext":"http://127.0.0.1:9978/file/TV/token.json", "timeout":30}, +{"key":"盤搜索","name":"阿里 | 盤搜索[jar]","type":3,"api":"csp_PanSearch","searchable":1,"changeable":0,"ext":"http://127.0.0.1:9978/file/TV/token.json", "timeout":30}, +{"key":"找資源","name":"阿里 | 找資源[jar]","type":3,"api":"csp_Zhaozy","searchable":1,"changeable":0,"ext":"http://127.0.0.1:9978/file/TV/token.json", "timeout":30}, +{"key":"易搜","name":"阿里 | 易搜[jar]","type":3,"api":"csp_YiSo","ext":"http://127.0.0.1:9978/file/TV/token.json", "timeout":30}, +{"key":"盘搜","name":"阿里 | 盘搜[jar]","type":3,"api":"csp_PanSou","ext":"http://127.0.0.1:9978/file/TV/token.json", "timeout":30}, +{"key":"UP云搜","name":"阿里 | up云搜[jar]","type":3,"api":"csp_UpYun","ext":"http://127.0.0.1:9978/file/TV/token.json", "timeout":30}, +{"key":"Funletu","name":"夸克 | 趣盘搜[jar]","type":3,"api":"csp_Funletu","quickSearch":1, "changeable":1, "filterable":1, "timeout":30, "ext":"http://127.0.0.1:9978/file/TV/token.json"}, +{"key":"QuarkPanso","name":"夸克 | 盘搜[jar]","type":3,"api":"csp_QuarkPanso","quickSearch":1, "changeable":1, "filterable":1, "timeout":30, "ext":"http://127.0.0.1:9978/file/TV/token.json"}, + +{"key":"drpy_js_酷云77","name":"影视 | 酷云77[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/酷云77.js"}, +{"key":"drpy_js_快看","name":"影视 | 快看[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/快看.js"}, +{"key":"drpy_js_爱看","name":"影视 | 爱看[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/爱看.js"}, +{"key":"drpy_js_低端","name":"影视 | 低端[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/ddys_d.js"}, +{"key":"drpy_js_南瓜影视","name":"影视 | 南瓜影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/南瓜影视.js"}, +{"key":"drpy_js_Auete","name":"影视 | Auete[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/Auete.js"}, +{"key":"drpy_js_cokemv","name":"影视 | cokemv[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/cokemv.js"}, +{"key":"drpy_js_LIBVIO","name":"影视 | LIBVIO[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/LIBVIO.js"}, +{"key":"drpy_js_voflix","name":"影视 | voflix[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/voflix.js"}, +{"key":"drpy_js_两个BT","name":"影视 | 两个BT[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/两个BT.js"}, +{"key":"drpy_js_量子影视","name":"影视 | 量子影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/量子影视.js"}, +{"key":"drpy_js_农民","name":"影视 | 农民影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/农民影视.js"}, +{"key":"drpy_js_在线之家","name":"影视 | 在线之家[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/在线之家.js"}, +{"key":"drpy_js_量子资源","name":"影视 | 量子资源[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/量子资源.js"}, +{"key":"drpy_js_369影视","name":"影视 | 369影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/369影视.js"}, + +{"key":"drpy_js_热播库","name":"影视 | 热播库[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/热播库.js"}, +{"key":"drpy_js_蛋蛋剧","name":"影视 | 蛋蛋剧[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/蛋蛋剧.js"}, +{"key":"drpy_js_B站影视","name":"影视 | B站影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/B站影视.js"}, +{"key":"drpy_js_凌云影视","name":"影视 | 凌云影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/凌云影视.js"}, +{"key":"drpy_js_孜然影视","name":"影视 | 孜然影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/孜然影视.js"}, +{"key":"drpy_js_我爱跟剧","name":"影视 | 我爱跟剧[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/我爱跟剧.js"}, +{"key":"drpy_js_干饭影视","name":"影视 | 干饭影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/干饭影视.js"}, +{"key":"drpy_js_秋霞影视","name":"影视 | 秋霞影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/秋霞影视.js"}, +{"key":"drpy_js_阿布影院","name":"影视 | 阿布影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/阿布影院.js"}, +{"key":"drpy_js_电影先生","name":"影视 | 电影先生[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/电影先生.js"}, +{"key":"drpy_js_落攻阁影视","name":"影视 | 落攻阁影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/落攻阁影视.js"}, +{"key":"drpy_js_69美剧","name":"影视 | 69美剧[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/69美剧.js"}, +{"key":"drpy_js_兄弟影视","name":"影视 | 兄弟影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/兄弟影视.js"}, +{"key":"drpy_js_4k剧院","name":"影视 | 4k剧院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/4k剧院.js"}, +{"key":"drpy_js_爱迪影视","name":"影视 | 爱迪影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/爱迪影视.js"}, +{"key":"drpy_js_539影视","name":"影视 | 539影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/539影视.js"}, +{"key":"drpy_js_333影视","name":"影视 | 333影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/333影视.js"}, +{"key":"drpy_js_996影视","name":"影视 | 996影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/996影视.js"}, +{"key":"drpy_js_188影视","name":"影视 | 188影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/188影视.js"}, +{"key":"drpy_js_哔嘀影视","name":"影视 | 哔嘀影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/哔嘀影视.js"}, + +{"key":"drpy_js_7喜影院","name":"影视 | 7喜影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/7喜影院.js"}, +{"key":"drpy_js_18哈","name":"影视 | 18哈[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/18哈.js"}, +{"key":"drpy_js_567电影院","name":"影视 | 567电影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/567电影院.js"}, +{"key":"drpy_js_Fun4K","name":"影视 | Fun4K[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/Fun4K.js"}, +{"key":"drpy_js_KOK影院","name":"影视 | KOK影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/KOK影院.js"}, +{"key":"drpy_js_TVB云播","name":"影视 | TVB云播[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/TVB云播.js"}, +{"key":"drpy_js_UrleBird[飞]","name":"影视 | UrleBird[飞][js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/UrleBird[飞].js"}, +{"key":"drpy_js_爱看影院","name":"影视 | 爱看影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/爱看影院.js"}, +{"key":"drpy_js_北川影视","name":"影视 | 北川影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/北川影视.js"}, +{"key":"drpy_js_尘落影视","name":"影视 | 尘落影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/尘落影视.js"}, +{"key":"drpy_js_达达龟","name":"影视 | 达达龟[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/达达龟.js"}, +{"key":"drpy_js_蛋蛋赞","name":"影视 | 蛋蛋赞[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/蛋蛋赞.js"}, +{"key":"drpy_js_多瑙影视","name":"影视 | 多瑙影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/多瑙影视.js"}, +{"key":"drpy_js_剧迷su","name":"影视 | 剧迷su[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/剧迷su.js"}, +{"key":"drpy_js_看韩剧","name":"影视 | 看韩剧[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/看韩剧.js"}, +{"key":"drpy_js_看了么","name":"影视 | 看了么[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/看了么.js"}, +{"key":"drpy_js_蓝光影院","name":"影视 | 蓝光影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/蓝光影院.js"}, +{"key":"drpy_js_首播影院","name":"影视 | 首播影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/首播影院.js"}, +{"key":"drpy_js_小白菜电影","name":"影视 | 小白菜电影[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/小白菜电影.js"}, +{"key":"drpy_js_影视工场","name":"影视 | 影视工场[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/影视工场.js"}, +{"key":"drpy_js_影视之家[V2]","name":"影视 | 影视之家[V2][js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/影视之家[V2].js"}, +{"key":"drpy_js_悠久影院","name":"影视 | 悠久影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/悠久影院.js"}, +{"key":"drpy_js_中国人线上看","name":"影视 | 中国人线上看[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/中国人线上看.js"}, + +{"key":"drpy_js_555电影[V2]","name":"影视 | 555电影[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/555电影[V2].js"}, +{"key":"drpy_js_69美剧[V2]","name":"影视 | 69美剧[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/69美剧[V2].js"}, +{"key":"drpy_js_cokemv[V2]","name":"影视 | cokemv[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/cokemv[V2].js"}, +{"key":"drpy_js_UM电影[V2]","name":"影视 | UM电影[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/UM电影[V2].js"}, +{"key":"drpy_js_爱迪[V2]","name":"影视 | 爱迪[V2][js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/爱迪[V2].js"}, +{"key":"drpy_js_宝片[V2]","name":"影视 | 宝片[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/宝片[V2].js"}, +{"key":"drpy_js_刺桐[V2]","name":"影视 | 刺桐[V2][js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/刺桐[V2].js"}, +{"key":"drpy_js_咕噜[V2]","name":"影视 | 咕噜[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/咕噜[V2].js"}, +{"key":"drpy_js_吼吼[V2]","name":"影视 | 吼吼[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/吼吼[V2].js"}, +{"key":"drpy_js_曲奇影视[V2]","name":"影视 | 曲奇影视[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/曲奇影视[V2].js"}, +{"key":"drpy_js_影探[V2]","name":"影视 | 影探[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/影探[V2].js"}, +{"key":"drpy_js_北极狐[V2]","name":"影视 | 北极狐[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/北极狐[V2].js"}, +{"key":"drpy_js_大米星球[V2]","name":"影视 | 大米星球[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/大米星球[V2].js"}, +{"key":"drpy_js_奈飞狗[V2]","name":"影视 | 奈飞狗[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/奈飞狗[V2].js"}, +{"key":"drpy_js_思古影视[V2]","name":"影视 | 思古影视[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/思古影视[V2].js"}, +{"key":"drpy_js_映迷[V2]","name":"影视 | 映迷[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/映迷[V2].js"}, +{"key":"drpy_js_美益达[V2]","name":"影视 | 美益达[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/美益达[V2].js"}, +{"key":"drpy_js_落攻阁影视[V2]","name":"影视 | 落攻阁影视[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/落攻阁影视[V2].js"}, +{"key":"drpy_js_西门[V2]","name":"影视 | 西门[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/西门[V2].js"}, +{"key":"drpy_js_路人甲[V2]","name":"影视 | 路人甲[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/路人甲[V2].js"}, +{"key":"drpy_js_鑫鑫[V2]","name":"影视 | 鑫鑫[V2]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/鑫鑫[V2].js"}, + +{"key":"drpy_js_360影视","name":"官源 | 360[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/360影视.js"}, +{"key":"drpy_js_百忙无果","name":"官源 | 芒果[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/百忙无果.js"}, +{"key":"drpy_js_腾云驾雾","name":"官源 | 腾讯[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/腾云驾雾.js"}, +{"key":"drpy_js_奇珍异兽","name":"官源 | 爱奇艺[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/奇珍异兽.js"}, +{"key":"drpy_js_菜狗","name":"官源 | 搜狗[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/菜狗.js"}, +{"key":"drpy_js_优酷","name":"官源 | 优酷[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/优酷.js"}, + +{"key":"drpy_js_4KHDR","name":"磁力 | 4KHDR[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/4khdr.js","playerType":"1", "searchable":1, "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_极影网","name":"磁力 | 极影网[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/jiyingw.js","playerType":"1", "searchable":1, "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_MP4US","name":"磁力 | MP4电影[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/mp4us.js","playerType":"1", "searchable":1, "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_电影港","name":"磁力 | 电影港[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/dygang.js","playerType":"1", "searchable":1, "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_kuba","name":"磁力 | 酷吧[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/kuba.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_xb6v","name":"磁力 | 新版6v[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/xb6v.js","playerType":"1", "searchable":1, "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_美剧迷","name":"磁力 | 美剧迷[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/meijumi.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_ddys","name":"影视 | 低端影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/ddys.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_libvio","name":"影视 | libvio[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/libvio.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_tzfile","name":"影视 | 团长影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/tzfile.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_dydhhy","name":"影视 | dydhhy[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/dydhhy.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_97tvs","name":"影视 | 97tvs[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/97tvs.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_rrdyw","name":"影视 | rrdyw[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/rrdyw.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_校长影视","name":"夸克 | 校长影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/xzys.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_yyets","name":"夸克 | 人人影视搜[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/yyets.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_奇妙搜[夸]","name":"夸克 | 奇妙搜[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/qimiao.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_愛盤搜","name":"夸克 | 爱盘搜[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/aipanso.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_趣盤搜","name":"夸克 | 趣盘搜[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/funletu.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key":"drpy_js_meow","name":"影视 | meow搜[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/meow.js", "quickSearch":1, "changeable":1, "timeout":30}, +{"key": "push_quark","name": "夸克 | 推送","type": 3,"api": "csp_Quark","changeable":0,"ext": "http://127.0.0.1:9978/file/TV/quark.txt", "timeout":30}, +{"key":"push_agent","name":"手机 | 推送[jar]","type":3,"api":"csp_Push","searchable":1,"quickSearch":0,"changeable":0,"ext":"http://127.0.0.1:9978/file/TV/token.json", "timeout":30}, + +{"key":"drpy_js_磁力熊[磁]","name":"磁力 | 磁力熊[js]","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"changeable":0,"ext":"./js/磁力熊[磁].js", "timeout":30}, +{"key":"drpy_js_6V新版[磁]","name":"磁力 | 6V新版[js]","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"changeable":0,"ext":"./js/6V新版[磁].js", "timeout":30}, +{"key":"drpy_js_童趣","name":"少儿 | 童趣[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1.597},"ext":"./js/童趣.js"}, +{"key":"drpy_js_兔小贝","name":"少儿 | 兔小贝[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/兔小贝.js"}, +{"key":"drpy_js_有声绘本网","name":"少儿 | 有声绘本[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/有声绘本网.js"}, +{"key":"drpy_js_我的哔哩","name":"弹幕 | 哔哩合集[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/我的哔哩.js"}, +{"key":"drpy_js_哔哩直播","name":"弹幕 | 哔哩直播[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/哔哩直播.js"}, +{"key":"drpy_js_哔哩影视","name":"弹幕 | 哔哩影视[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/哔哩影视.js"}, +{"key":"drpy_js_JustLive","name":"弹幕 | JustLive[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/JustLive.js"}, +{"key":"drpy_js_斗鱼直播","name":"直播 | 斗鱼[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/斗鱼直播.js"}, +{"key":"drpy_js_虎牙直播","name":"直播 | 虎牙[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.597},"changeable":0,"ext":"./js/虎牙直播.js"}, +{"key":"drpy_js_310直播","name":"体育 | 310直播[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/310直播.js"}, +{"key":"drpy_js_88看球","name":"体育 | 88看球[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/88看球.js"}, +{"key":"drpy_js_JRKAN直播","name":"体育 | JRKAN直播[js]","type":3,"api":"./lib/drpy.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/JRKAN直播.js"}, +{"key":"drpy_js_抓饭体育","name":"体育 | 抓饭体育[js]","type":3,"api":"./lib/drpy.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/抓饭体育.js"}, +{"key":"drpy_js_好趣网","name":"电视 | 好趣网[js]","type":3,"api":"./lib/drpy2.min.js","style":{"type":"rect","ratio":1.333},"changeable":0,"ext":"./js/好趣网.js"}, +{"key":"drpy_js_相声随身听","name":"相声 | 相声随身听[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"ext":"./js/相声随身听.js"}, +{"key":"drpy_js_评书随身听","name":"评书 | 评书随身听[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"ext":"./js/评书随身听.js"}, +{"key":"drpy_js_武享吧","name":"格斗 | 武享吧[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"ext":"./js/武享吧.js"}, +{"key":"drpy_js_Alist","name":"网盘 | Alist[js]","type":3,"api":"./lib/alist.min.js","changeable":0,"ext":"./js/alist.json"}, + +{"key":"drpy_js_58动漫","name":"动漫 | 58动漫[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/58动漫.js"}, +{"key":"drpy_js_AGE动漫","name":"动漫 | AGE动漫[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/AGE动漫.js"}, +{"key":"drpy_js_AnFuns","name":"动漫 | AnFuns[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/AnFuns.js"}, +{"key":"drpy_js_Anime1动畫","name":"动漫 | Anime1动畫[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/Anime1动畫.js"}, +{"key":"drpy_js_NT动漫","name":"动漫 | NT动漫[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/NT动漫.js"}, +{"key":"drpy_js_NyaFun","name":"动漫 | NyaFun[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/NyaFun.js"}, +{"key":"drpy_js_爱弹幕","name":"动漫 | 爱弹幕[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/爱弹幕.js"}, +{"key":"drpy_js_动漫岛","name":"动漫 | 动漫岛[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/动漫岛.js"}, +{"key":"drpy_js_路漫漫","name":"动漫 | 路漫漫[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/路漫漫.js"}, +{"key":"drpy_js_喵次元","name":"影视 | 喵次元[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/喵次元.js"}, +{"key":"drpy_js_奇米动漫","name":"动漫 | 奇米动漫[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/奇米动漫.js"}, +{"key":"drpy_js_去看吧","name":"动漫 | 去看吧[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/去看吧.js"}, +{"key":"drpy_js_曲奇动漫","name":"动漫 | 曲奇动漫[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/曲奇动漫.js"}, +{"key":"drpy_js_异世界动漫漫","name":"动漫 | 异世界动漫[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/异世界动漫.js"}, +{"key":"drpy_js_怡萱动漫","name":"动漫 | 怡萱动漫[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/怡萱动漫.js"}, + +{"key":"drpy_js_A8音乐","name":"音频 | A8音乐[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/A8音乐.js"}, +{"key":"drpy_js_DJ音乐","name":"音频 | DJ音乐[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/DJ音乐.js"}, +{"key":"drpy_js_啦啦DJ","name":"音频 | 啦啦DJ[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/啦啦DJ.js"}, +{"key":"drpy_js_清风DJ","name":"音频 | 清风DJ[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/清风DJ.js"}, +{"key":"drpy_js_广播迷FM","name":"广播 | 广播迷FM[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"ext":"./js/广播迷FM.js"}, +{"key":"drpy_js_蜻蜓FM","name":"广播 | 蜻蜓FM[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"ext":"./js/蜻蜓FM.js"}, +{"key":"drpy_js_i275听书","name":"听书 | i275听书[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/i275听书.js"}, +{"key":"drpy_js_爱上你听书网","name":"听书 | 爱上你听书[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/爱上你听书网.js"}, +{"key":"drpy_js_博看听书","name":"听书 | 博看听书[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/博看听书.js"}, +{"key":"drpy_js_海洋听书","name":"听书 | 海洋听书[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/海洋听书.js"}, +{"key":"drpy_js_六月听书","name":"听书 | 六月听书[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/六月听书.js"}, +{"key":"drpy_js_听书网","name":"听书 | 听书网[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/听书网.js"}, +{"key":"drpy_js_喜马拉雅","name":"听书 | 喜马拉雅[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/喜马拉雅.js"}, +{"key":"drpy_js_有声小说","name":"听书 | 有声小说[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/有声小说吧.js"}, +{"key":"drpy_js_播客","name":"聚合 | 播客[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/播客.js"}, +{"key":"drpy_js_短视频","name":"聚合 | 短视频[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"ext":"./js/短视频.js"}, +{"key":"drpy_js_酷6网","name":"聚合 | 酷6网[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"ext":"./js/酷6网.js"}, +{"key":"drpy_js_网易公版影像","name":"聚合 | 网易公版[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1.597},"ext":"./js/网易公版影像.js"}, +{"key":"drpy_js_爱车MV","name":"MV | 爱车MV[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/爱车MV.js"}, +{"key":"drpy_js_酷奇MV","name":"MV | 酷奇[js]","type":3,"api":"./lib/drpy2.min.js","changeable":0,"style":{"type":"rect","ratio":1},"ext":"./js/酷奇MV.js"}, + +{"key":"drpy_js_爱看机器人","name":"影视 | 爱看机器人[js]","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"changeable":1,"ext":"./js/爱看机器人.js"}, +{"key":"drpy_js_ikanbot2","name":"影视 | 爱看机器人2[js]","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"changeable":1,"ext":"./js/ikanbot2.js"}, +{"key":"drpy_js_ikanbot3","name":"影视 | 爱看机器人3[js]","type":3,"api":"./lib/drpy2.min.js","searchable":1,"quickSearch":1,"changeable":1,"ext":"./js/ikanbot3.js"}, +{"key":"drpy_js_jsapi2","name":"影视 | 百度测试[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/jsapi2.js"}, +{"key":"drpy_js_139影视","name":"影视 | 139影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/139影视.js"}, +{"key":"drpy_js_348电影网","name":"影视 | 348电影网[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/348电影网.js"}, +{"key":"drpy_js_4K电影网","name":"影视 | 4K电影网[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/4K电影网.js"}, +{"key":"drpy_js_8号影院","name":"影视 | 8号影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/8号影院.js"}, +{"key":"drpy_js_JangoIndex","name":"影视 | JangoIndex[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/JangoIndex.js"}, +{"key":"drpy_js_NY影院","name":"影视 | NY影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/NY影院.js"}, +{"key":"drpy_js_被窝电影","name":"影视 | 被窝电影[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/被窝电影.js"}, +{"key":"drpy_js_厂长资源","name":"影视 | 厂长资源[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/厂长资源.js"}, +{"key":"drpy_js_楚门影院","name":"影视 | 楚门影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/楚门影院.js"}, +{"key":"drpy_js_大米星球","name":"影视 | 大米星球[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/大米星球.js"}, +{"key":"drpy_js_飞兔影视","name":"影视 | 飞兔影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/飞兔影视.js"}, +{"key":"drpy_js_海兔影院","name":"影视 | 海兔影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/海兔影院.js"}, +{"key":"drpy_js_花猫TV","name":"影视 | 花猫TV[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/花猫TV.js"}, +{"key":"drpy_js_花屋影院","name":"影视 | 花屋影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/花屋影院.js"}, +{"key":"drpy_js_开眼视频","name":"影视 | 开眼视频[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/开眼视频.js"}, +{"key":"drpy_js_看了么","name":"影视 | 看了么[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/看了么.js"}, +{"key":"drpy_js_徕米TV","name":"影视 | 徕米TV[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/徕米TV.js"}, +{"key":"drpy_js_乐鱼影视","name":"影视 | 乐鱼影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/乐鱼影视.js"}, +{"key":"drpy_js_美剧网","name":"影视 | 美剧网[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/美剧网.js"}, +{"key":"drpy_js_美视网","name":"影视 | 美视网[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/美视网.js"}, +{"key":"drpy_js_米爱影视","name":"影视 | 米爱影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/米爱影视.js"}, +{"key":"drpy_js_免费看","name":"影视 | 免费看[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/免费看.js"}, +{"key":"drpy_js_奈飞中文","name":"影视 | 奈飞中文[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/奈飞中文.js"}, +{"key":"drpy_js_欧帝影院","name":"影视 | 欧帝影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/欧帝影院.js"}, +{"key":"drpy_js_皮皮鸭","name":"影视 | 皮皮鸭[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/皮皮鸭.js"}, +{"key":"drpy_js_朴樱影视","name":"影视 | 朴樱影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/朴樱影视.js"}, +{"key":"drpy_js_秋霞影院","name":"影视 | 秋霞影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/秋霞.js"}, +{"key":"drpy_js_热播之家","name":"影视 | 热播之家[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/热播之家.js"}, +{"key":"drpy_js_人人影视","name":"影视 | 人人影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/人人影视.js"}, +{"key":"drpy_js_骚火电影","name":"影视 | 骚火电影[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/骚火电影.js"}, +{"key":"drpy_js_时光影视","name":"影视 | 时光影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/时光影视.js"}, +{"key":"drpy_js_思古影视","name":"影视 | 思古影视","type":3,"api":"./lib/drpy2.min.js","ext":"./js/思古影视.js"}, +{"key":"drpy_js_私人影院","name":"影视 | 私人影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/私人影院.js"}, +{"key":"drpy_js_素白白","name":"影视 | 素白白[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/素白白.js"}, +{"key":"drpy_js_网飞.TV","name":"影视 | 网飞.TV[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/网飞.TV.js"}, +{"key":"drpy_js_西瓜影院","name":"影视 | 西瓜影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/西瓜影院.js"}, +{"key":"drpy_js_蜥蜴影视","name":"影视 | 蜥蜴影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/蜥蜴影视.js"}, +{"key":"drpy_js_小狗影院","name":"影视 | 小狗影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/小狗影院.js"}, +{"key":"drpy_js_新视觉影视","name":"影视 | 新视觉影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/新视觉影视.js"}, +{"key":"drpy_js_星辰影院","name":"影视 | 星辰影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/星辰.js"}, +{"key":"drpy_js_玄天","name":"影视 | 玄天[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/玄天.js"}, +{"key":"drpy_js_映迷影院","name":"影视 | 映迷影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/映迷影院.js"}, +{"key":"drpy_js_中国人","name":"影视 | 中国人[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/中国人.js"}, +{"key":"drpy_js_追剧迷","name":"影视 | 追剧迷[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/追剧迷.js"}, +{"key":"drpy_js_子子影视","name":"影视 | 子子影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/子子影视.js"}, + +{"key":"drpy_js_大师兄影视","name":"起飞 | 大师兄影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/大师兄影视.js"}, +{"key":"drpy_js_华乐影院","name":"起飞 | 华乐影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/华乐影院[飞].js"}, +{"key":"drpy_js_天天视频","name":"起飞 | 天天视频[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/天天视频[飞].js"}, +{"key":"drpy_js_起飞影院","name":"起飞 | 起飞影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/起飞影院.js"}, +{"key":"drpy_js_兰花影院","name":"起飞 | 兰花影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/兰花影院.js"}, +{"key":"drpy_js_胖虎","name":"起飞 | 胖虎[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/胖虎.js"}, +{"key":"drpy_js_555影视[飞]","name":"起飞 | 555影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/555影视[飞].js"}, +{"key":"drpy_js_if101[飞]","name":"起飞 | if101[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/if101[飞].js"}, +{"key":"drpy_js_KUBO影视[飞]","name":"起飞 | KUBO影视[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/KUBO影视[飞].js"}, +{"key":"drpy_js_爱壹帆[飞]","name":"起飞 | 爱壹帆[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/爱壹帆[飞].js"}, +{"key":"drpy_js_独播库[飞]","name":"起飞 | 独播库[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/独播库[飞].js"}, +{"key":"drpy_js_欧乐影院[飞]","name":"起飞 | 欧乐影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/欧乐影院[飞].js"}, +{"key":"drpy_js_小宝影院[飞]","name":"起飞 | 小宝影院[js]","type":3,"api":"./lib/drpy2.min.js","ext":"./js/小宝影院[飞].js"}, + +{"key":"應用商店","name":"應用商店","type":3,"api":"csp_Market","searchable":1,"changeable":0,"ext": "./json/market.json"}, +{"key":"bb","name":"配置接口完全免费","type":3,"api":"./lib/drpy2.min.js","ext":"./js/drpy.js"}, +{"key":"cc","name":"请勿相信视频中任何广告","type":3,"api":"./lib/drpy2.min.js","ext":"./js/drpy.js"} +], +"parses":[ +{"name":"Json聚合","type":3,"url":"Demo"}, +{"name": "飞云","type": 1,"url": "https://daina.hk/api/?key=e1e84ecae847b6e4a1a27fd4611f45f5&url=","ext": {"flag": ["FYNB","mgtv","qiyi","imgo","爱奇艺","奇艺","qq","腾讯","youku","优酷","pptv","PPTV","letv","乐视","leshi","bilibili","哔哩哔哩","哔哩","mgtv","芒果"],"header": {"User-Agent": "okhttp/4.1.0"}}}, +{"name": "米饭","type": 1,"url": "https://api.json.icu/api/?key=b1f3b1a9e1c0a42ae969db10bd315a95&url=","ext": {"flag": ["爱奇艺","奇艺","qq","腾讯","youku","优酷","pptv","PPTV","letv","乐视","leshi","bilibili","哔哩哔哩","哔哩","mgtv","芒果","芒果"],"header": {"User-Agent": "okhttp/4.1.0"}}}, +{"name":"饭饭","type":1,"url":"http://api.888484.xyz/神秘哥哥/super.php?v=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","tucheng","sohu","搜狐","letv","乐视","mgtv","芒果","tnmb","seven","yzm","aliyun","RJuMao","bilibili","1905","xinvip","XAL","qiqi","XALS","YuMi-vip"]}}, +{"name":"虾米","type":0,"url":"https://jx.xmflv.com/?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","sohu","搜狐","letv","乐视","mgtv","芒果","imgo","rx","ltnb","bilibili","1905","xigua"]}}, +{"name":"PM","url":"https://www.playm3u8.cn/jiexi.php?url=","type":0,"ext":{"flag":["qiyi","imgo","爱奇艺","奇艺","qq","腾讯","youku","优酷","pptv","PPTV","letv","乐视","leshi","bilibili","哔哩哔哩","哔哩","mgtv","芒果","sohu","xigua","fun","风行"],"header":{"User-Agent":"Mozilla/5.0"}},"header":{"User-Agent":"Mozilla/5.0"}}, +{"name":"全民","url":"http://api.wpsseo.cn/?v=","type":0,"ext":{"flag":["qiyi","imgo","爱奇艺","奇艺","qq","腾讯","youku","优酷","pptv","PPTV","letv","乐视","leshi","bilibili","哔哩哔哩","哔哩","mgtv","芒果","sohu","xigua","fun","风行"],"header":{"User-Agent":"Mozilla/5.0"}},"header":{"User-Agent":"Mozilla/5.0"}}, +{"name":"m3u8","type":0,"url":"https://jx.m3u8.tv/jiexi/?url="}, +{"name":"8090","url":"https://www.8090.la/8090/?url=","type":0,"ext":{"flag":["qiyi","imgo","爱奇艺","奇艺","qq","腾讯","youku","优酷","pptv","PPTV","letv","乐视","leshi","bilibili","哔哩哔哩","哔哩","mgtv","芒果","sohu","xigua","fun","风行"],"header":{"User-Agent":"Mozilla/5.0"}},"header":{"User-Agent":"Mozilla/5.0"}}, +{"name":"看看","type":0,"url":"https://jx.m3u8.pw/?url="}, +{"name":"巧技","type":1,"url":"http://pandown.pro/app/kkdy.php?url=","ext":{"flag":["qq","腾讯","qiyi","爱奇艺","奇艺","youku","优酷","sohu","搜狐","letv","乐视","mgtv","芒果","rx","ltnb","bilibili","1905","xigua"]}}, +{"name":"左岸","type":1,"url":"https://api.tyun77.cn/api.php/provide/parseDicturl?url=","ext":{"flag":["爱奇艺","奇艺","qq","腾讯","youku","优酷","pptv","PPTV","letv","乐视","leshi","bilibili","哔哩哔哩","哔哩","mgtv","芒果","芒果"],"header":{"User-Agent":"okhttp/3.12.0"}}}, +{"name":"世界","type":1,"url":"http://175.178.183.192:84/api/?key=f3913eb3f85a8298b3e6e427b8712b2e&url=","ext":{"flag":["qq","mgtv","YuMi-vip"]}}, +{"name":"咸鱼","type":0,"url":"https://jx.xyflv.cc/?url=","ext":{"header":{"user-agent":"Mozilla/5.0(Linux;Android13;V2049ABuild/TP1A.220624.014;wv)AppleWebKit/537.36(KHTML,likeGecko)Version/4.0Chrome/116.0.0.0MobileSafari/537.36","referer":"https://www.xyflv.cc/"}}}, +{"name":"云解析","type":0,"url":"https://jx.yparse.com/index.php?url=","ext":{"header":{"user-agent":"Mozilla/5.0(Linux;Android13;V2049ABuild/TP1A.220624.014;wv)AppleWebKit/537.36(KHTML,likeGecko)Version/4.0Chrome/116.0.0.0MobileSafari/537.36"}}}, +{"name":"爱豆","type":0,"url":"https://jx.aidouer.net/?url=","ext":{"header":{"user-agent":"Mozilla/5.0(Linux;Android13;V2049ABuild/TP1A.220624.014;wv)AppleWebKit/537.36(KHTML,likeGecko)Version/4.0Chrome/116.0.0.0MobileSafari/537.36","referer":"https://jiejie.uk/"}}} +], +"flags":["youku","优酷","优 酷","优酷视频", "qq","腾讯","腾 讯","腾讯视频", "iqiyi", "qiyi","奇艺","爱奇艺","爱 奇 艺", "m1905", "xigua", "letv","leshi","乐视","乐 视", "sohu","搜狐","搜 狐","搜狐视频", "tudou","mgtv","芒果","imgo","芒果TV","芒 果 T V", "bilibili","哔 哩","哔 哩 哔 哩","SPA","YuMi-vip","pptv","PPTV","ltnb","rx","SLYS4k","tucheng","BYGA","luanzi","dxzy","QEYSS","aliyun","AliS","122","chuangying","CL4K","xfyun","wuduzy","wasu","renrenmi","ppayun","haiwaikan","cool","dbm3u8","xmm","funshion","ruyi1080","ruyib1080"], +"doh":[ +{"name":"Google","url":"https://dns.google/dns-query","ips":["8.8.4.4","8.8.8.8"]}, +{"name":"Cloudflare","url":"https://cloudflare-dns.com/dns-query","ips":["1.1.1.1","1.0.0.1","2606:4700:4700::1111","2606:4700:4700::1001"]}, +{"name":"AdGuard","url":"https://dns.adguard.com/dns-query","ips":["94.140.14.140","94.140.14.141"]}, +{"name":"DNSWatch","url":"https://resolver2.dns.watch/dns-query","ips":["84.200.69.80","84.200.70.40"]}, +{"name":"Quad9","url":"https://dns.quad9.net/dns-quer","ips":["9.9.9.9","149.112.112.112"]} +], +"rules":[ +{"name":"proxy","hosts":["mypikpak.com",".*workers.dev","www.cilixiong.com","*.t4tv.hz.cz","kuba222.com","mp4us.com","dydhhy.com","magicalsearch.top","api123.adys.app","raw.githubusercontent.com","googlevideo.com","cdn.v82u1l.com","cdn.iz8qkg.com","cdn.kin6c1.com","c.biggggg.com","c.olddddd.com","haiwaikan.com","www.histar.tv","youtube.com","uhibo.com",".*boku.*",".*nivod.*",".*ulivetv.*"]}, +{"name":"磁力廣告","hosts":["magnet"],"regex":["更多","社區","xuu","最新","最新","直播","更新","社区","有趣","有趣","英皇体育","全中文AV在线","澳门皇冠赌场","哥哥快来","美女荷官","裸聊","新片首发","UUE29"]}, +{"name":"海外看","hosts":["haiwaikan"],"regex":["8.16","8.1748","10.0099","10.3333","10.85","12.33","16.0599"]}, +{"name":"索尼","hosts":["suonizy"],"regex":["15.1666","15.2666"]}, +{"name":"暴風","hosts":["bfzy"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY"]}, +{"name":"星星","hosts":["aws.ulivetv.net"],"regex":["#EXT-X-DISCONTINUITY\\r*\\n*#EXTINF:8,[\\s\\S]*?#EXT-X-DISCONTINUITY"]}, +{"name":"量子","hosts":["vip.lz","hd.lz","v.cdnlz"],"regex":["18.5333"]}, +{"name":"非凡","hosts":["vip.ffzy","hd.ffzy"],"regex":["25.1"]}, +{"name":"火山嗅探","hosts":["huoshan.com"],"regex":["item_id="]}, +{"name":"抖音嗅探","hosts":["douyin.com"],"regex":["is_play_url="]}, +{"name":"農民嗅探","hosts":["toutiaovod.com"],"regex":["video/tos/cn"]}, +{"name":"七新嗅探","hosts":["api.52wyb.com"],"regex":["m3u8?pt=m3u8"]}, +{"name":"夜市點擊","hosts":["yeslivetv.com"],"script":["document.getElementsByClassName('vjs-big-play-button')[0].click()"]}, +{"name":"毛驢點擊","hosts":["www.maolvys.com"],"script":["document.getElementsByClassName('swal-buttonswal-button--confirm')[0].click()"]} +], +"ads":["static-mozai.4gtv.tv","s3t3d2y8.afcdn.net"] +} diff --git a/zyplayer/drpy_gao/js/1080P.js b/zyplayer/drpy_gao/js/1080P.js new file mode 100644 index 0000000..08556a2 --- /dev/null +++ b/zyplayer/drpy_gao/js/1080P.js @@ -0,0 +1,13 @@ +muban.首图.二级.title = 'h1&&Text;.data--span:eq(0)&&Text'; +muban.首图.二级.desc = '.score&&Text;;;.data--span:eq(2)&&Text;.data--span:eq(3)&&Text'; +muban.首图.二级.content = '.sketch&&Text'; +var rule = { + title:'1080P', + 模板:'首图', + host:'https://1080p.tv', + url:'/vodshow/fyclassfyfilter/', + filterable:1,//是否启用分类筛选, + filter_url:'-{{fl.area}}-{{fl.by}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}', + 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":"记录"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"德国","v":"德国"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"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":"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"}]},{"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":"网剧"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"韩国","v":"韩国"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"},{"n":"香港地区","v":"香港地区"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"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"}]},{"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":"社会"},{"n":"原创","v":"原创"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],"4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"真人秀","v":"真人秀"},{"n":"访谈","v":"访谈"},{"n":"情感","v":"情感"},{"n":"选秀","v":"选秀"},{"n":"旅游","v":"旅游"},{"n":"美食","v":"美食"},{"n":"口秀","v":"口秀"},{"n":"曲艺","v":"曲艺"},{"n":"搞笑","v":"搞笑"},{"n":"游戏","v":"游戏"},{"n":"歌舞","v":"歌舞"},{"n":"生活","v":"生活"},{"n":"音乐","v":"音乐"},{"n":"时尚","v":"时尚"},{"n":"益智","v":"益智"},{"n":"职场","v":"职场"},{"n":"少儿","v":"少儿"},{"n":"纪实","v":"纪实"},{"n":"盛会","v":"盛会"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"韩国","v":"韩国"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"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":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]}, + class_parse: '.myui-header__menu li.hidden-sm;a&&Text;a&&href;.*/(\\d+)/', +} \ No newline at end of file diff --git "a/zyplayer/drpy_gao/js/139\345\275\261\350\247\206.js" "b/zyplayer/drpy_gao/js/139\345\275\261\350\247\206.js" new file mode 100644 index 0000000..c9e5d2c --- /dev/null +++ "b/zyplayer/drpy_gao/js/139\345\275\261\350\247\206.js" @@ -0,0 +1,45 @@ +muban.首图.二级.title = 'h1&&Text;.data:eq(0)--span&&Text'; +muban.首图.二级.desc = '#rating&&Text;;;.data:eq(1)&&Text;.data:eq(2)&&Text'; +muban.首图.二级.content = '.data.hidden-xs--a:eq(0)&&Text'; +var rule = { + title: '139影视', + 模板: '首图', + host: 'https://www.139ys.com', + // url:'/vodshow/fyclass--------fypage---.html', + url: '/vodshow/fyfilter.html', + filterable: 1,//是否启用分类筛选, + filter_url: '{{fl.cateId}}-{{fl.area}}-{{fl.by or "time"}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}', + filter: { + "dianying":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"dianying"},{"n":"动作片","v":"dongzuopian"},{"n":"喜剧片","v":"xijupian"},{"n":"爱情片","v":"aiqingpian"},{"n":"科幻片","v":"kehuanpian"},{"n":"恐怖片","v":"kongbupian"},{"n":"剧情片","v":"juqingpian"},{"n":"战争片","v":"zhanzhengpian"},{"n":"纪录片","v":"jilupian"},{"n":"犯罪片","v":"fanzuipian"}]},{"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":"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":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "lianxuju":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"lianxuju"},{"n":"国产剧","v":"guochanju"},{"n":"港台剧","v":"gangtaiju"},{"n":"日韩剧","v":"rihanju"},{"n":"欧美剧","v":"oumeiju"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国香港","v":"中国香港"},{"n":"中国台湾","v":"中国台湾"},{"n":"美国","v":"美国"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"新加坡","v":"新加坡"},{"n":"马来西亚","v":"马来西亚"},{"n":"印度","v":"印度"},{"n":"英国","v":"英国"},{"n":"法国","v":"法国"},{"n":"加拿大","v":"加拿大"},{"n":"西班牙","v":"西班牙"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "zongyi":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国香港","v":"中国香港"},{"n":"中国台湾","v":"中国台湾"},{"n":"美国","v":"美国"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"新加坡","v":"新加坡"},{"n":"马来西亚","v":"马来西亚"},{"n":"印度","v":"印度"},{"n":"英国","v":"英国"},{"n":"法国","v":"法国"},{"n":"加拿大","v":"加拿大"},{"n":"西班牙","v":"西班牙"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "dongman":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国香港","v":"中国香港"},{"n":"中国台湾","v":"中国台湾"},{"n":"美国","v":"美国"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"新加坡","v":"新加坡"},{"n":"马来西亚","v":"马来西亚"},{"n":"印度","v":"印度"},{"n":"英国","v":"英国"},{"n":"法国","v":"法国"},{"n":"加拿大","v":"加拿大"},{"n":"西班牙","v":"西班牙"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "zhibo":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"港澳台","v":"港澳台"},{"n":"欧美","v":"欧美"}]},{"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] + }, + filter_def: { + dianying: { cateId: 'dianying' }, + lianxuju: { cateId: 'lianxuju' }, + zongyi: { cateId: 'zongyi' }, + dongman: { cateId: 'dongman' }, + zhibo: { cateId: 'zhibo' } + }, + class_parse: '.nav-list&&li:lt(5);a&&Text;a&&href;/(\\w+).html', + lazy: `js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?)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', +} \ No newline at end of file diff --git "a/zyplayer/drpy_gao/js/369\345\275\261\350\247\206.js" "b/zyplayer/drpy_gao/js/369\345\275\261\350\247\206.js" new file mode 100644 index 0000000..663245e --- /dev/null +++ "b/zyplayer/drpy_gao/js/369\345\275\261\350\247\206.js" @@ -0,0 +1,27 @@ +var rule= { + title:'369影视', + host:'https://www.cs1369.com', + // url:'/index.php/vod/show/id/fyclass/page/fypage.html', + url:'/show/id/fyclass/page/fypage.html', + searchable: 2,//是否启用全局搜索, + quickSearch: 0,//是否启用快速搜索, + filterable:1,//是否启用分类筛选, + class_parse: '.stui-header__menu&&li:gt(0):lt(4);a&&Text;a&&href;.*/(.*?).html', + play_parse: true, + lazy:'js:var html=JSON.parse(request(input).match(/r player_.*?=(.*?) 1){ + TABS.push("選擇右側綫路"); +} +let tmpIndex; +tmpIndex=1; +tabsa.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +tmpIndex=1; +tabsq.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +log('4khdr TABS >>>>>>>>>>>>>>>>>>' + TABS); +`, + lists:`js: +log(TABS); +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +LISTS = []; +let d = pdfa(html, 'div.pcb table.t_table a'); +let lista = []; +let listq = []; +let listm = []; +let liste = []; +d.forEach(function(it){ + let burl = pdfh(it, 'a&&href'); + let title = pdfh(it, 'a&&Text'); + log('4khdr title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title); + log('4khdr burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl); + let loopresult = title + '$' + burl; + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + lista.push(loopresult); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + listq.push(loopresult); + }else if (burl.startsWith("magnet")){ + listm.push(loopresult); + }else if (burl.startsWith("ed2k")){ + liste.push(loopresult); + } +}); +if (listm.length>0){ + LISTS.push(listm); +} +if (liste.length>0){ + LISTS.push(liste); +} +if (false && lista.length + listq.length > 1){ + LISTS.push(["選擇右側綫路,或3秒後自動跳過$http://127.0.0.1:10079/delay/"]); +} +lista.forEach(function(it){ + LISTS.push([it]); +}); +listq.forEach(function(it){ + LISTS.push([it]); +}); +`, + + }, + 搜索:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +if (rule_fetch_params.headers.Cookie.startsWith("http")){ + rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie); + let cookie = rule_fetch_params.headers.Cookie; + setItem(RULE_CK, cookie); +}; +log('4khdr search cookie>>>>>>>>>>>>>>>' + rule_fetch_params.headers.Cookie); +let new_host= HOST + '/search.php'; +let new_html=request(new_host); +let formhash = pdfh(new_html, 'input[name="formhash"]&&value'); +log("4khdr formhash>>>>>>>>>>>>>>>" + formhash); +let params = 'formhash=' + formhash + '&searchsubmit=yes&srchtxt=' + encodeURIComponent(KEY); +let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); +let postData = { + body: params +}; +Object.assign(_fetch_params, postData); +log("4khdr search postData>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params)); +let search_html = post( HOST + '/search.php?mod=forum', _fetch_params) +//log("4khdr search result>>>>>>>>>>>>>>>" + search_html); +let d=[]; +let dlist = pdfa(search_html, 'div#threadlist ul li'); +dlist.forEach(function(it){ + let title = pdfh(it, 'h3&&Text'); + if (searchObj.quick === true){ + if (title.includes(KEY)){ + title = KEY; + } + } + let img = ""; + let content = pdfh(it, 'p:eq(2)&&Text'); + let desc = pdfh(it, 'p:eq(3)&&Text'); + let url = pd(it, 'a&&href', HOST); + d.push({ + title:title, + img:img, + content:content, + desc:desc, + url:url + }) +}); +setResult(d); + `, +} diff --git "a/zyplayer/drpy_gao/js/4k\345\211\247\351\231\242.js" "b/zyplayer/drpy_gao/js/4k\345\211\247\351\231\242.js" new file mode 100644 index 0000000..19503cb --- /dev/null +++ "b/zyplayer/drpy_gao/js/4k\345\211\247\351\231\242.js" @@ -0,0 +1,49 @@ +muban.mxpro.二级.title = 'h1&&Text;.module-info-tag&&Text'; +muban.mxpro.二级.desc = '.module-info-item:eq(4)&&Text;;;.module-info-item-content:eq(1)&&Text;.module-info-item-content:eq(0)&&Text'; +muban.mxpro.二级.tab_text = 'body--small&&Text'; +var rule = { + title:'4K剧院', //原91free + 模板:'mxpro', + host:'https://4k4k.live', + url:'/vodshow/fyfilter.html', + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.cateId}}-{{fl.area}}-{{fl.by or "time"}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}', + filter: { + "1":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"1"},{"n":"纪录片","v":"20"},{"n":"动作片","v":"6"},{"n":"喜剧片","v":"7"},{"n":"科幻片","v":"8"},{"n":"恐怖片","v":"9"},{"n":"爱情片","v":"10"},{"n":"剧情片","v":"11"},{"n":"战争片","v":"12"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"德国","v":"德国"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"法语","v":"法语"},{"n":"德语","v":"德语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]},{"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"泰国剧","v":"21"},{"n":"国产剧","v":"13"},{"n":"欧美剧","v":"14"},{"n":"港台剧","v":"15"},{"n":"日韩剧","v":"16"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"韩国","v":"韩国"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "3":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"3"},{"n":"大陆综艺","v":"22"},{"n":"欧美综艺","v":"23"},{"n":"日韩综艺","v":"24"},{"n":"港台综艺","v":"25"}]},{"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":"求职"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "4":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"4"},{"n":"国产动漫","v":"26"},{"n":"欧美动漫","v":"27"},{"n":"日韩动漫","v":"28"},{"n":"港台动漫","v":"29"}]},{"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":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] + }, + filter_def:{ + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 3:{cateId:'3'}, + 4:{cateId:'4'} + }, + class_parse: '.navbar-items&&li:gt(1):lt(7);a&&title;a&&href;.*/(.*?).html', + lazy:`js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) '+stringify(videoList)); + videoList.forEach((it,idex) => { + let vlist = /v1\\.vod/.test(HOST) ? videoList[idex].vod_list : videoList[idex].vlist ; + vlist.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + }); + setResult(d); + `, + 一级:`js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + input = input.replace('video','v1.vod').replace('tid','type').replace('pg=','page='); + jsondata = JSON.parse(request(input)); + videoList = jsondata.data.list; + } else { + input = HOST + '/'+ input.split('/')[4]; + jsondata = JSON.parse(request(input)); + videoList = jsondata.list || jsondata.data; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, + 二级:`js: + if (/v1\\.vod/.test(HOST)) { + input = HOST + '/'+ input.split('/')[3]; + } else { + input = HOST + '/'+ input.split('/')[3].replace('detail','video_detail').replace('vod_id','id'); + } + try { + let html = request(input); + html = JSON.parse(html); + let node = /xgapp/.test(HOST) ? html.data.vod_info : html.data; + VOD = { + vod_id: node.vod_id, + vod_name: node.vod_name, + vod_pic: node.vod_pic, + type_name: node.vod_class, + vod_year: node.vod_year, + vod_area: node.vod_area, + vod_remarks: node.vod_remarks, + vod_actor: node.vod_actor, + vod_director: node.vod_director, + vod_content: node.vod_content.strip() + }; + if (typeof play_url === 'undefined') { + var play_url = '' + } + var name = { + 'bfzym3u8': '暴风', + '1080zyk': '优质', + 'kuaikan': '快看', + 'lzm3u8': '量子', + 'ffm3u8': '非凡', + 'haiwaikan': '海外看', + 'gsm3u8': '光速', + 'zuidam3u8': '最大', + 'bjm3u8': '八戒', + 'snm3u8': '索尼', + 'wolong': '卧龙', + 'xlm3u8': '新浪', + 'yhm3u8': '樱花', + 'tkm3u8': '天空', + 'jsm3u8': '极速', + 'wjm3u8': '无尽', + 'sdm3u8': '闪电', + 'kcm3u8': '快车', + 'jinyingm3u8': '金鹰', + 'fsm3u8': '飞速', + 'tpm3u8': '淘片', + 'lem3u8': '鱼乐', + 'dbm3u8': '百度', + 'tomm3u8': '番茄', + 'ukm3u8': 'U酷', + 'ikm3u8': '爱坤', + 'hnzym3u8': '红牛资源', + 'hnm3u8': '红牛', + '68zy_m3u8': '68', + 'kdm3u8': '酷点', + 'bdxm3u8': '北斗星', + 'qhm3u8': '奇虎', + 'hhm3u8': '豪华', + 'kbm3u8': '快播' + }; + let episodes = /v1\\.vod/.test(HOST)?node.vod_play_list:node.vod_url_with_player; + if (episodes != '') { + let playMap = {}; + let arr = []; + episodes.forEach(ep => { + let from = []; + if (/v1\\.vod/.test(HOST)) { + from = ep.player_info.from||ep.player_info.show||ep.from||ep.show; + } else { + from = ep.code||ep.name; + } + if (!playMap.hasOwnProperty(from)) { + playMap[from] = [] + } + let parse_api = ''; + if (/v1\\.vod/.test(HOST)) { + parse_api = ep.player_info.parse != null ? ep.player_info.parse : ep.player_info.parse2; + // parse_api = /,/.test(parse_api) ? parse_api.split(',')[1] : parse_api; + } else { + parse_api = ep.parse_api; + } + log('parse_api =========> '+parse_api); + if (parse_api != null && !/\\.m3u8|\\.mp4/.test(ep.url)) { + parse_api = parse_api.replaceAll('..','.') ; + ep.url = ep.url.replaceAll('$','$'+parse_api); + } + if (from != null) playMap[from].push(ep.url) + }); + for (var key in playMap) { + if ('bfzym3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 1 + }) + } else if ('1080zyk' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 2 + }) + } else if ('kuaikan' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 3 + }) + } else if ('lzm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 4 + }) + } else if ('ffm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 5 + }) + } else if ('snm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 6 + }) + } else if ('qhm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 7 + }) + } else { + arr.push({ + flag: name[key] ? name[key] : key, + url: playMap[key], + sort: 8 + }) + } + } + arr.sort((a, b) => a.sort - b.sort); + let playFrom = []; + let playList = []; + arr.map(val => { + if (!/undefined/.test(val.flag)) { + playFrom.push(val.flag); + playList.push(val.url); + } + }) + VOD.vod_play_from = playFrom.join('$$$'); + VOD.vod_play_url = playList.join('$$$'); + } else { + VOD.vod_play_from = node.vod_play_from; + VOD.vod_play_url = node.vod_play_url; + } + } catch (e) { + log("获取二级详情页发生错误:" + e.message); + } + `, + 搜索:`js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + input = (HOST + '/'+ input.split('/')[3]).replace('/search','').replace('text=','wd=').replace('pg=','page='); + jsondata = JSON.parse(request(input)); + videoList = jsondata.data.list; + } else { + input = HOST + '/'+ input.split('/')[3] + jsondata = JSON.parse(request(input)); + videoList = jsondata.list || jsondata.data; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_gao/js/567\347\224\265\345\275\261\351\231\242.js" "b/zyplayer/drpy_gao/js/567\347\224\265\345\275\261\351\231\242.js" new file mode 100644 index 0000000..20b6f58 --- /dev/null +++ "b/zyplayer/drpy_gao/js/567\347\224\265\345\275\261\351\231\242.js" @@ -0,0 +1,46 @@ +muban.首图2.二级.title = 'h1--span&&Text;.data--span:eq(0)&&Text' +muban.首图2.二级.desc = ';;;.data--span:eq(1)&&Text;.data--span:eq(2)&&Text' +muban.首图2.二级.content = '.desc&&Text' +muban.首图2.二级.tabs = 'body&&h3' +var rule = { + title: '567电影院', + 模板: '首图2', + // host:'https://www.345kp.com', // 原345看片 + host: 'https://www.567dyy.com', + // url:'/show/fyclass--------fypage---.html', + url: '/show/fyfilter.html', + filterable: 1,//是否启用分类筛选, + filter_url: '{{fl.cateId}}-{{fl.area}}-{{fl.by or "time"}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}', + 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":"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":"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"}]},{"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":"网剧"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"大陆"},{"n":"韩国","v":"韩国"},{"n":"香港","v":"香港"},{"n":"台湾","v":"台湾"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "3":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"选秀","v":"选秀"},{"n":"情感","v":"情感"},{"n":"访谈","v":"访谈"},{"n":"播报","v":"播报"},{"n":"旅游","v":"旅游"},{"n":"音乐","v":"音乐"},{"n":"美食","v":"美食"},{"n":"纪实","v":"纪实"},{"n":"曲艺","v":"曲艺"},{"n":"生活","v":"生活"},{"n":"游戏互动","v":"游戏互动"},{"n":"财经","v":"财经"},{"n":"求职","v":"求职"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"情感","v":"情感"},{"n":"科幻","v":"科幻"},{"n":"热血","v":"热血"},{"n":"推理","v":"推理"},{"n":"搞笑","v":"搞笑"},{"n":"冒险","v":"冒险"},{"n":"萝莉","v":"萝莉"},{"n":"校园","v":"校园"},{"n":"动作","v":"动作"},{"n":"机战","v":"机战"},{"n":"运动","v":"运动"},{"n":"战争","v":"战争"},{"n":"少年","v":"少年"},{"n":"少女","v":"少女"},{"n":"社会","v":"社会"},{"n":"原创","v":"原创"},{"n":"亲子","v":"亲子"},{"n":"益智","v":"益智"},{"n":"励志","v":"励志"},{"n":"其他","v":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] + }, + filter_def: { + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 3:{cateId:'3'}, + 4:{cateId:'4'} + }, + searchUrl: '/search/**----------fypage---.html', + lazy: `js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) { + TABS.push(pdfh(it, "body&&Text").replace('播放地址','道长在线').replace('(无插件 极速播放)','一').replace('(无需安装插件)','二')) + }); + `, + "lists": `js: + log(TABS); + pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; + LISTS = []; + let i = 1; + TABS.forEach(function(tab) { + if (/道长磁力/.test(tab)) { + var d = pdfa(html, '.context&&td'); + d = d.map(function(it) { + var title = pdfh(it, 'a&&Text'); + var burl = pd(it, 'a&&href'); + return title + '$' + burl + }); + LISTS.push(d) + } else if (/道长在线/.test(tab) && i <= TABS.length-1) { + var d = pdfa(html, '.context&&.widget:eq(list_idx)&&a'.replace("list_idx", i)); + d = d.map(function(it) { + var title = pdfh(it, 'a&&Text'); + var burl = pd(it, 'a&&href'); + return title + '$' + burl + }); + LISTS.push(d) + i = i + 1; + } + }); + `, + }, + 搜索: '*', +} \ No newline at end of file diff --git "a/zyplayer/drpy_gao/js/7\345\226\234\345\275\261\351\231\242.js" "b/zyplayer/drpy_gao/js/7\345\226\234\345\275\261\351\231\242.js" new file mode 100644 index 0000000..092cea1 --- /dev/null +++ "b/zyplayer/drpy_gao/js/7\345\226\234\345\275\261\351\231\242.js" @@ -0,0 +1,27 @@ +muban.短视2.二级.title = '.slide-info-title&&Text;.slide-info:eq(0)&&Text'; +muban.短视2.二级.img = '.lazy&&data-src'; +muban.短视2.二级.desc = '.fraction&&Text;;;.slide-info:eq(3)--strong&&Text;.slide-info:eq(2)--strong&&Text'; +muban.短视2.二级.tab_text = 'body--i--span&&Text'; +var rule={ + title:'7喜影院', + 模板:'短视2', + host:'https://7xi.tv', + detailUrl:'/voddetail/fyid.html', + class_name:'电影&短剧&4K电影&电视剧&综艺&动漫&电影解说&短视频', + class_url:'1&56&57&2&3&4&25&53', + lazy:`js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) { + d.push({ + title: pdfh(it, 'div.thumbnail img&&alt'), + desc: pdfh(it, 'div.info&&span.info_date&&Text') + ' / ' + pdfh(it, 'div.info&&span.info_category&&Text'), + pic_url: pd(it, 'div.thumbnail img&&src', HOST), + url: pd(it, 'div.thumbnail&&a&&href',HOST) + }); +}); +setResult(d); + `, + 一级:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +let d = []; +let html = request(input); +let list = pdfa(html, 'div.mainleft ul#post_container li'); +list.forEach(it => { + d.push({ + title: pdfh(it, 'div.thumbnail img&&alt'), + desc: pdfh(it, 'div.info&&span.info_date&&Text') + ' / ' + pdfh(it, 'div.info&&span.info_category&&Text'), + pic_url: pd(it, 'div.thumbnail img&&src', HOST), + url: pd(it, 'div.thumbnail&&a&&href',HOST) + }); +}) +setResult(d); +`, + 二级:{ + title:"div.article_container h1&&Text", + img:"div#post_content img&&src", + desc:"div#post_content&&Text", + content:"div#post_content&&Text", + tabs:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +TABS=[] +let d = pdfa(html, 'div#post_content p'); +let tabsa = []; +let tabsq = []; +let tabsm = false; +let tabse = false; +let tabm3u8 = []; +d.forEach(function(it) { + let burl = pdfh(it, 'a&&href'); + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + tabsa.push("阿里雲盤"); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + tabsq.push("夸克網盤"); + }else if (burl.startsWith("magnet")){ + tabsm = true; + }else if (burl.startsWith("ed2k")){ + tabse = true; + } +}); +if (tabsm === true){ + TABS.push("磁力"); +} +if (tabse === true){ + TABS.push("電驢"); +} +let tmpIndex; +tmpIndex=1; +tabsa.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +tmpIndex=1; +tabsq.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +tabm3u8.forEach(function(it){ + TABS.push(it); +}); +log('97tvs TABS >>>>>>>>>>>>>>>>>>' + TABS); +`, + lists:`js: +log(TABS); +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +LISTS = []; +let d = pdfa(html, 'div#post_content p'); +let lista = []; +let listq = []; +let listm = []; +let liste = []; +let listm3u8 = {}; +d.forEach(function(it){ + let burl = pdfh(it, 'a&&href'); + let title = pdfh(it, 'a&&Text'); + log('97tvs title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title); + log('97tvs burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl); + let loopresult = title + '$' + burl; + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = "push://" + burl; + } + loopresult = title + '$' + burl; + lista.push(loopresult); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = "push://" + burl; + } + loopresult = title + '$' + burl; + listq.push(loopresult); + }else if (burl.startsWith("magnet")){ + listm.push(loopresult); + }else if (burl.startsWith("ed2k")){ + liste.push(loopresult); + } +}); +if (listm.length>0){ + LISTS.push(listm); +} +if (liste.length>0){ + LISTS.push(liste); +} +lista.forEach(function(it){ + LISTS.push([it]); +}); +listq.forEach(function(it){ + LISTS.push([it]); +}); +for ( const key in listm3u8 ){ + if (listm3u8.hasOwnProperty(key)){ + LISTS.push(listm3u8[key]); + } +}; +`, + + }, + 搜索:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +let search_html = request(input) +//log("97tvs search result>>>>>>>>>>>>>>>" + search_html); +let d=[]; +let dlist = pdfa(search_html, 'div.mainleft ul#post_container li'); +dlist.forEach(function(it){ + let title = pdfh(it, 'div.thumbnail img&&alt').replace( /(<([^>]+)>)/ig, ''); + if (title.includes(KEY)){ + if (searchObj.quick === true){ + title = KEY; + } + let img = pd(it, 'div.thumbnail img&&src', HOST); + let content = pdfh(it, 'div.article div.entry_post&&Text'); + let desc = pdfh(it, 'div.info&&span.info_date&&Text'); + let url = pd(it, 'div.thumbnail&&a&&href', HOST); + d.push({ + title:title, + img:img, + content:content, + desc:desc, + url:url + }); + } +}); +setResult(d); +`, +} diff --git "a/zyplayer/drpy_gao/js/996\345\275\261\350\247\206.js" "b/zyplayer/drpy_gao/js/996\345\275\261\350\247\206.js" new file mode 100644 index 0000000..663e708 --- /dev/null +++ "b/zyplayer/drpy_gao/js/996\345\275\261\350\247\206.js" @@ -0,0 +1,30 @@ +muban.首图2.二级.title = 'h1--span&&Text;.data--span:eq(0)&&Text'; +muban.首图2.二级.desc = '.data:eq(3)&&Text;;;.data--span:eq(1)&&Text;.data--span:eq(2)&&Text'; +muban.首图2.二级.content = 'p.col-pd&&Text'; +muban.首图2.二级.tabs = '.stui-pannel_hd:eq(0) h3'; +var rule= { + title:'996影视', + 模板:'首图2', + host:'https://www.cs1369.com', + // url:'/index.php/vod/show/id/fyclass/page/fypage.html', + // url:'/show/id/fyclass/page/fypage.html', + url: '/show/id/fyfilter.html', + filterable: 1,//是否启用分类筛选, + filter_url: '{{fl.cateId}}{{fl.area}}{{fl.by or "/by/time"}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}', + filter: { + "1":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"1"},{"n":"动作片","v":"6"},{"n":"喜剧片","v":"7"},{"n":"爱情片","v":"8"},{"n":"科幻片","v":"9"},{"n":"恐怖片","v":"10"},{"n":"剧情片","v":"11"},{"n":"战争片","v":"12"},{"n":"动画片","v":"13"},{"n":"纪录片","v":"14"}]},{"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/运动"},{"n":"农村","v":"/class/农村"},{"n":"儿童","v":"/class/儿童"},{"n":"网络电影","v":"/class/网络电影"}]},{"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/新加坡"},{"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":"year","name":"年份","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"},{"n":"1999","v":"/year/1999"},{"n":"1998","v":"/year/1998"},{"n":"1997","v":"/year/1997"},{"n":"1996","v":"/year/1996"},{"n":"1995","v":"/year/1995"},{"n":"1994","v":"/year/1994"},{"n":"1993","v":"/year/1993"},{"n":"1992","v":"/year/1992"},{"n":"1991","v":"/year/1991"},{"n":"1990","v":"/year/1990"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"汉语普通话","v":"/lang/汉语普通话"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"德语","v":"/lang/德语"},{"n":"其它","v":"/lang/其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"内地","v":"15"},{"n":"美国","v":"16"},{"n":"英国","v":"17"},{"n":"韩国","v":"18"},{"n":"泰国","v":"20"},{"n":"日本","v":"21"},{"n":"中国香港","v":"22"},{"n":"中国台湾","v":"23"},{"n":"其他","v":"24"}]},{"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/其他"}]},{"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/新加坡"},{"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":"year","name":"年份","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"},{"n":"1999","v":"/year/1999"},{"n":"1998","v":"/year/1998"},{"n":"1997","v":"/year/1997"},{"n":"1996","v":"/year/1996"},{"n":"1995","v":"/year/1995"},{"n":"1994","v":"/year/1994"},{"n":"1993","v":"/year/1993"},{"n":"1992","v":"/year/1992"},{"n":"1991","v":"/year/1991"},{"n":"1990","v":"/year/1990"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"汉语普通话","v":"/lang/汉语普通话"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"德语","v":"/lang/德语"},{"n":"其它","v":"/lang/其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + "3":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"3"},{"n":"内地","v":"25"},{"n":"日漫","v":"26"},{"n":"欧美","v":"27"},{"n":"其他","v":"28"}]},{"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/其他"}]},{"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/新加坡"},{"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":"year","name":"年份","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"汉语普通话","v":"/lang/汉语普通话"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"德语","v":"/lang/德语"},{"n":"其它","v":"/lang/其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + "4":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"4"},{"n":"内地","v":"29"}]},{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"爽文","v":"/class/爽文"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"/area/内地"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"汉语普通话","v":"/lang/汉语普通话"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"闽南语","v":"/lang/闽南语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"法语","v":"/lang/法语"},{"n":"德语","v":"/lang/德语"},{"n":"其它","v":"/lang/其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}] + }, + filter_def: { + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 3:{cateId:'3'}, + 4:{cateId:'4'} + }, + lazy:'js:var html=JSON.parse(request(input).match(/r player_.*?=(.*?) 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); + `, +} \ No newline at end of file diff --git a/zyplayer/drpy_gao/js/Auete.js b/zyplayer/drpy_gao/js/Auete.js new file mode 100644 index 0000000..88fb78d --- /dev/null +++ b/zyplayer/drpy_gao/js/Auete.js @@ -0,0 +1,50 @@ +/** + * 搜索 > 图片加法验证 + * 网址导航 https://auete.site + */ + +var rule = { + title: 'Auete', + // host:'https://haozhansou.com', + host: 'https://auete.site', + hostJs: 'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src = jsp.pdfh(html,"ul&&li&&a&&href");print(src);HOST=src',//网页域名根动态抓取js代码。通过HOST=赋值 + // url:'/fyclassfyfilter/indexfypage.html[/fyclassfyfilter/index.html]', + url: '/fyclassfyfilter/indexfypage.html[/fyclassfyfilter/index.html]', + filterable: 1, + filter_url: '{{fl.class}}', + filter: { + "Movie":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"喜剧片","v":"/xjp"},{"n":"动作片","v":"/dzp"},{"n":"爱情片","v":"/aqp"},{"n":"科幻片","v":"/khp"},{"n":"恐怖片","v":"/kbp"},{"n":"惊悚片","v":"/jsp"},{"n":"战争片","v":"/zzp"},{"n":"剧情片","v":"/jqp"}]}], + "Tv":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"美剧","v":"/oumei"},{"n":"韩剧","v":"/hanju"},{"n":"日剧","v":"/riju"},{"n":"泰剧","v":"/yataiju"},{"n":"网剧","v":"/wangju"},{"n":"台剧","v":"/taiju"},{"n":"国产","v":"/neidi"},{"n":"港剧","v":"/tvbgj"},{"n":"英剧","v":"/yingju"}]}], + "Zy":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"国综","v":"/guozong"},{"n":"韩综","v":"/hanzong"},{"n":"美综","v":"/meizong"}]}], + "Dm":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"动画","v":"/donghua"},{"n":"日漫","v":"/riman"},{"n":"国漫","v":"/guoman"},{"n":"美漫","v":"/meiman"}]}], + "qita":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"记录片","v":"/Jlp"},{"n":"经典片","v":"/Jdp"},{"n":"经典剧","v":"/Jdj"},{"n":"网大电影","v":"/wlp"},{"n":"国产老电影","v":"/laodianying"}]}] + }, + searchUrl: '/auete2so.php?page=fypage&searchword=**', + searchable: 2, + quickSearch: 1, + headers: { + 'User-Agent': 'PC_UA', + 'Cookie': 'ssea2_search=ok' + }, + class_parse: '.mr-auto li:gt(0):lt(6);a&&Text;a&&href;/(\\w+)/index.html', + play_parse: true, + lazy:'js:eval(unescape(base64Decode("anM6CgkJcGRmaCA9IGpzcC5wZGZoOyBwZGZhID0ganNwLnBkZmE7IHBkID0ganNwLnBkOwoJCWxldCBkb2N1bWVudCA9IHt9OwoJCWxldCBuYXZpZ2F0b3IgPSB7CgkJCXVzZXJBZ2VudDogTU9CSUxFX1VBLAoJCX07CgkJbGV0IGJhc2U2NGRlY29kZSA9IGJhc2U2NERlY29kZTsKCQlsZXQgcG4gPSAnJywgbm93ID0gJycsIG5leHRQYWdlID0gJycsIHByZVBhZ2UgPSAnJywgbmV4dCA9ICcnLCB2aWQgPSAnJywgdmZyb20gPSAnJywgdnBhcnQgPSAnJywgc3JjVXJsID0gJyc7CgkJZXZhbChyZXF1ZXN0KEhPU1QgKyAiL2pzL3BsYXkuanMiKSk7CgkJbGV0IGh0bWwgPSByZXF1ZXN0KGlucHV0KTsKCQlldmFsKHBkZmgoaHRtbCwgIi5tYi0yJiZzY3JpcHQmJkh0bWwiKS5yZXBsYWNlQWxsKCd2YXIgJywnJykpOwoJCWV2YWwocGRmaChodG1sLCAiLm1iLTImJnNjcmlwdCwxJiZIdG1sIikucmVwbGFjZUFsbCgndmFyICcsJycpLnNwbGl0KCJkb2N1bWVudCIpWzBdKTsKCQlsZXQgcGFyc2VIdG1sID0gcmVxdWVzdChIT1NUICsgIi9qcy9wbGF5ZXIvIiArIHBuICsgIi5odG1sIik7CgkJbGV0IHBhcmVudCA9IHsKCQkJbm93OiBub3csCgkJCW5leHRQYWdlOiBuZXh0UGFnZSwKCQkJbmV4dDogbmV4dCwKCQkJdmlkOiB2aWQsCgkJCXZmcm9tOiB2ZnJvbSwKCQkJdnBhcnQ6IHZwYXJ0LAoJCX07CgkJbGV0IHBhcmpzID0gcGRmaChwYXJzZUh0bWwsICJib2R5JiZzY3JpcHQmJkh0bWwiKTsKCQlldmFsKCJzcmNVcmwgPSAnIiArIHBkZmgocGFyanMsICJpZnJhbWUmJnNyYyIpICsgIiciKTsKCQlpZiAoc3JjVXJsLmluZGV4T2YoIj91cmw9IikgPiAtMSB8fCBzcmNVcmwuaW5kZXhPZigiP3VpZD0iKSA+IC0xKSB7CgkJCWlucHV0ID0ge2p4OjAsIHVybDpzcmNVcmwuc3BsaXQoIj0iKVsxXSwgcGFyc2U6MH0KCQl9IGVsc2UgewoJCQlsZXQgcHVybCA9IHNyY1VybC5zcGxpdCgiPSIpWzFdLnNwbGl0KCIsIilbMV07CgkJCWlucHV0ID0ge2p4OjAsIHVybDpwdXJsLCBwYXJzZTowfQoJCX0=")))', + limit: 6, + 推荐: '*', + 一级: '.threadlist .trans_3;.title&&Text;.lazy&&src;.hdtag&&Text;a&&href', + 二级: { + "title":".cover a&&title;.message&&p:eq(2)&&Text", + "img": ".cover img&&src", + "desc":".w-100&&Text;;.message&&p:eq(4)&&Text;.message&&p:eq(5)&&Text;.message&&p:eq(6)&&Text", + "content": ".message p:eq(-1)&&Text", + "tabs": `js: + TABS = []; + let tabs = pdfa(html, 'h2'); + tabs.forEach((it) => { + TABS.push(pdfh(it, "body&&Text").split('』')[1].split(':')[0]) + }); + `, + "lists": "#player_list:eq(#id) li" + }, + 搜索: '.card-body .media;.text-danger&&Text;;.data&&Text;a&&href', +} \ No newline at end of file diff --git "a/zyplayer/drpy_gao/js/B\347\253\231\345\275\261\350\247\206.js" "b/zyplayer/drpy_gao/js/B\347\253\231\345\275\261\350\247\206.js" new file mode 100644 index 0000000..de4eb15 --- /dev/null +++ "b/zyplayer/drpy_gao/js/B\347\253\231\345\275\261\350\247\206.js" @@ -0,0 +1,68 @@ +// 搜索验证 +var rule = { + title:'B站影视', + // host:'https://bzhanys.com', + host:'https://bzhanyy.com', + // url:'/index.php/vod/show/id/fyclass/page/fypage.html', + url:'/index.php/vod/show/id/fyfilter.html', + // url:'/api.php/xiao/vod?type=fyclass&page=fypage&limit=24', + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.cateId}}{{fl.area}}{{fl.by or "/by/time"}}{{fl.class}}/page/fypage{{fl.year}}', + filter:{ + "1":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"1"},{"n":"喜剧","v":"6"},{"n":"爱情","v":"7"},{"n":"恐怖","v":"8"},{"n":"科幻","v":"9"},{"n":"剧情","v":"10"},{"n":"战争","v":"11"},{"n":"犯罪","v":"12"},{"n":"武侠","v":"21"},{"n":"纪录","v":"20"},{"n":"理论片","v":"26"}]},{"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/韩国"},{"n":"德国","v":"/area/德国"},{"n":"泰国","v":"/area/泰国"},{"n":"印度","v":"/area/印度"},{"n":"意大利","v":"/area/意大利"},{"n":"西班牙","v":"/area/西班牙"},{"n":"加拿大","v":"/area/加拿大"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":""},{"n":"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"by","name":"排序","value":[{"n":"按时间","v":"/by/time"},{"n":"按人气","v":"/by/hits"},{"n":"按评分","v":"/by/score"}]}], + "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"国产剧","v":"13"},{"n":"港台剧","v":"14"},{"n":"日韩剧","v":"15"},{"n":"欧美剧","v":"16"}]},{"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/英国"},{"n":"新加坡","v":"/area/新加坡"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"by","name":"排序","value":[{"n":"按时间","v":"/by/time"},{"n":"按人气","v":"/by/hits"},{"n":"按评分","v":"/by/score"}]}], + "3":[{"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/求职"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"/area/内地"},{"n":"港台","v":"/area/港台"},{"n":"日韩","v":"/area/日韩"},{"n":"欧美","v":"/area/欧美"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"by","name":"排序","value":[{"n":"按时间","v":"/by/time"},{"n":"按人气","v":"/by/hits"},{"n":"按评分","v":"/by/score"}]}], + "4":[{"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/其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"/area/国产"},{"n":"日本","v":"/area/日本"},{"n":"欧美","v":"/area/欧美"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年代","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"by","name":"排序","value":[{"n":"按时间","v":"/by/time"},{"n":"按人气","v":"/by/hits"},{"n":"按评分","v":"/by/score"}]}] + }, + filter_def:{ + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 3:{cateId:'3'}, + 4:{cateId:'4'} + }, + searchable:2,//是否启用全局搜索, + quickSearch:0,//是否启用快速搜索, + headers:{ + 'User-Agent':'MOBILE_UA' + }, + class_parse: '.fixed-nav&&.flex:lt(4);li&&Text;li&&data-id', + play_parse:true, + lazy:`js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) { + d.push({ + title: it.roomName, + desc: '👁' + it.online + ' 🆙' + it.ownerName, + pic_url: it.roomPic, + url: it.platForm + '|' + it.roomId + }); + }) + setResult(d); + `, + 一级: `js: + var d = []; + if (MY_CATE === 'douyin') { + let area = MY_FL.area || '全部'; + if (area === '全部') { + input = HOST + '/api/live/getRecommendByPlatform?platform=douyin&page='+MY_PAGE+'&size=20'; + } + } + var html = JSON.parse(request(input)).data; + html.forEach(it => { + d.push({ + title: it.roomName, + desc: '👁' + it.online + ' 🆙' + it.ownerName, + pic_url: it.roomPic, + url: it.platForm + '|' + it.roomId + }); + }) + setResult(d); + `, + 二级: `js: + try { + if (typeof play_url === "undefined") { + var play_url = "" + } + let platform = input.split("|")[0].replace(HOST+'/',''); + let roomId = input.split("|")[1]; + let link = HOST + '/api/live/getRoomInfo?uid=&platform=' + platform + '&roomId=' + roomId; + var jo = JSON.parse(request(link)).data; + VOD = { + vod_id: jo.roomId, + vod_name: jo.roomName, + vod_pic: jo.roomPic, + type_name: jo.platForm.replace("huya", "虎牙").replace("douyu", "斗鱼").replace("cc", "网易CC").replace("bilibili", "哔哩哔哩").replace("douyin", "抖音") + "." + jo.categoryName, + vod_director: '🆙 ' + jo.ownerName, + vod_content: "🏷分区:" + jo.platForm.replace("huya", "虎牙").replace("douyu", "斗鱼").replace("cc", "网易CC").replace("bilibili", "哔哩哔哩").replace("douyin", "抖音") + "·" + jo.categoryName + " 🏷UP主:" + jo.ownerName + " 🏷人气:" + jo.online + (jo.isLive === 1 ? " 🏷状态:正在直播" : "状态:未开播") + }; + let episodes = JSON.parse(request("http://live.yj1211.work/api/live/getRealUrlMultiSource?platform=" + jo.platForm + "&roomId=" + jo.roomId)).data; //多线路 + if (Object.keys(episodes).length !== 0) { + let playFrom = []; + let playList = []; + let kplayList = []; + Object.keys(episodes).forEach(function(key) { + playFrom.append(key); + kplayList = episodes[key].map(function(it) { + let title = it.qualityName; + let playUrl = it.playUrl + // return title + "$" + play_url + urlencode(playUrl) + return title + "$" + play_url + urlencode(playUrl + "|" + jo.platForm + "|" + jo.roomId) + }).join("#") + playList.append(kplayList); + }); + let vod_play_from = playFrom.join("$$$"); + let vod_play_url = playList.join("$$$"); + VOD["vod_play_from"] = vod_play_from; + VOD["vod_play_url"] = vod_play_url; + } else { + var d = []; + episodes = JSON.parse(request("http://live.yj1211.work/api/live/getRealUrl?platform=" + jo.platForm + "&roomId=" + jo.roomId)).data; //单线路 + var name = { + "OD": "原画", + "FD": "流畅", + "LD": "标清", + "SD": "高清", + "HD": "超清", + "2K": "2K", + "4K": "4K", + "FHD": "全高清", + "XLD": "极速", + "SQ": "普通音质", + "HQ": "高音质" + }; + Object.keys(episodes).forEach(function(key) { + if (!/ayyuid|to/.test(key)) { + d.push({ + title: name[key], + url: episodes[key] + }) + } + }); + d.push( + { + title: "解析1", + url: 'http://epg.112114.xyz/' + jo.platForm +'/' + jo.roomId + }, + { + title: "解析2", + url: "https://www.aois.eu.org/live/" + jo.platForm + "/" + jo.roomId + }, + { + title: "解析3", + url: "https://www.goodiptv.club/" + jo.platForm + "/" + jo.roomId + }, + // { + // title: "解析4", + // url: "http://maomao.kandiantv.cn/" + jo.platForm + "1.php?id=" + jo.roomId + // }, + { + title: "解析5", + url: "http://43.138.170.29:35455/" + jo.platForm + "/" + jo.roomId + }, + { + title: "解析6", + url: "http://8.210.232.168/php/" + jo.platForm + ".php?id=" + jo.roomId + } + ); + if (/huya/.test(jo.platForm)) { + d.push( + { + title: "虎牙解析", + url: "http://cfss.cc/cdn/hy/" + jo.roomId + ".flv" + } + ); + } + VOD["vod_play_from"] = "选择画质"; + VOD["vod_play_url"] = d.map(function(it) { + return it.title + "$" + play_url + urlencode(it.url + "|" + jo.platForm + "|" + jo.roomId) + }).join("#"); + setResult(d); + } + } catch (e) { + log("获取二级详情页发生错误:" + e.message); + } + `, + 搜索: `js: + var d = []; + var html = JSON.parse(request(input)).data; + html.forEach(it => { + d.push({ + title: it.roomName, + desc: '👁' + it.online + ' 🆙' + it.ownerName, + pic_url: it.roomPic, + url: it.platForm + '|' + it.roomId + }); + }) + setResult(d); + `, + + //是否启用辅助嗅探: 1,0 + sniffer:1, + // 辅助嗅探规则js写法 + isVideo: `js: + log(input); + if(/\\/huya/.test(input)) { + input = true + } else if(/\\.flv?|\\.m3u8?|\\.mp4?/.test(input)){ + input = true + }else{ + input = false + } + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_gao/js/KOK\345\275\261\351\231\242.js" "b/zyplayer/drpy_gao/js/KOK\345\275\261\351\231\242.js" new file mode 100644 index 0000000..3bd6fd5 --- /dev/null +++ "b/zyplayer/drpy_gao/js/KOK\345\275\261\351\231\242.js" @@ -0,0 +1,141 @@ +var rule = { + title:'KOK影院', + // host:'https://www.kokyy.com', + host:'https://www.pzjzyy.com', + // url:'/koks/fyclass/page/fypage.html', + url:'/koks/fyclassfyfilter.html', + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.area}}{{fl.by or "/by/time"}}{{fl.class}}/page/fypage{{fl.year}}', + filter: { + "kokdy":[{"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/历史"},{"n":"运动","v":"/class/运动"},{"n":"农村","v":"/class/农村"},{"n":"儿童","v":"/class/儿童"},{"n":"网络电影","v":"/class/网络电影"}]},{"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/韩国"},{"n":"德国","v":"/area/德国"},{"n":"泰国","v":"/area/泰国"},{"n":"印度","v":"/area/印度"},{"n":"意大利","v":"/area/意大利"},{"n":"西班牙","v":"/area/西班牙"},{"n":"加拿大","v":"/area/加拿大"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + "kokds":[{"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/其他"}]},{"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/英国"},{"n":"新加坡","v":"/area/新加坡"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"20042023","v":"/year/20042023"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"/by/time"},{"n":"人气","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + "kokzy":[{"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/求职"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"韩国","v":"/area/韩国"},{"n":"香港","v":"/area/香港"},{"n":"日本","v":"/area/日本"},{"n":"美国","v":"/area/美国"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]}], + "kokdm":[{"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/其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"日本","v":"/area/日本"},{"n":"欧美","v":"/area/欧美"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"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"}]}], + "kokjl":[{"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":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"日本","v":"/area/日本"},{"n":"美国","v":"/area/美国"},{"n":"国外","v":"/area/国外"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"}]}] + }, + searchable:2, + quickSearch:0, + headers:{ + 'User-Agent':'MOBILE_UA' + }, + class_name:'电影&电视剧&综艺&动漫&记录', + class_url:'kokdy&kokds&kokzy&kokdm&kokjl', + lazy:`js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) it.toLowerCase() === "set-cookie"); + let cookie = setCk ? json[setCk].split(";")[0] : ""; + fetch_params.headers.Cookie = cookie; + html = JSON.parse(html).body; + if (/检测中/.test(html)) { + html = request(input + "?btwaf" + html.match(/btwaf(.*?)\"/)[1], fetch_params) + } + let list = pdfa(html, ".movie-list-body&&.movie-list-item"); + list.forEach(it => { + d.push({ + title: pdfh(it, ".movie-title&&Text"), + desc: pdfh(it, ".movie-rating&&Text"), + pic_url: pd(it, ".movie-post-lazyload&&data-original"), + url: pd(it, "a&&href") + }) + }); + setResult(d) + `, + 二级:`js: + pdfh = jsp.pdfh;pdfa = jsp.pdfa;pd = jsp.pd; + VOD = {}; + var html = request(input, { + withHeaders: true + }); + let json = JSON.parse(html); + let setCk = Object.keys(json).find((it) => it.toLowerCase() === "set-cookie"); + let cookie = setCk ? json[setCk].split(";")[0] : ""; + fetch_params.headers.Cookie = cookie; + html = JSON.parse(html).body; + if (/检测中/.test(html)) { + html = request(input + "?btwaf" + html.match(/btwaf(.*?)\"/)[1], fetch_params) + } + VOD.vod_name = pdfh(html, "h1&&Text"); + VOD.type_name = pdfh(html, ".scroll-content&&a:eq(1)&&Text"); + VOD.vod_pic = pd(html, ".poster&&img&&src"); + VOD.vod_remarks = pdfh(html, ".cr3:eq(0)&&Text"); + VOD.vod_year = pdfh(html, ".scroll-content&&a:eq(2)&&Text"); + VOD.vod_area = pdfh(html, ".scroll-content&&a:eq(0)&&Text"); + VOD.vod_actor = pdfh(html, ".cr3.starLink&&Text").replace("演员:", ""); + VOD.vod_director = pdfh(html, ".play-select:eq(2)&&p:eq(4)&&Text").replace("导演:", ""); + VOD.vod_content = pdfh(html, ".detailsTxt&&Text"); + let playFrom = []; + let vod_tab_list = []; + let tabs = pdfa(html, "body .swiper-wrapper&&a"); + tabs.forEach((it) => { + playFrom.push(pdfh(it, "a&&Text")) + }); + for (let i = 0; i < playFrom.length; i++) { + let p1 = ".content_playlist:eq(#id)&&li".replaceAll("#id", i); + let new_vod_list = []; + let vodList = []; + try { + vodList = pdfa(html, p1) + } catch (e) {} + for (let i = 0; i < vodList.length; i++) { + let it = vodList[i]; + new_vod_list.push(pdfh(it, "body&&Text").trim() + "$" + pd(it, "a&&href")) + } + let vlist = new_vod_list.join("#"); + vod_tab_list.push(vlist) + } + VOD.vod_play_from = playFrom.join("$$$"); + VOD.vod_play_url = vod_tab_list.join("$$$"); + `, + searchUrl:'/kokso/page/fypage/wd/**.html', + 搜索:`js: + var d = []; + pdfh = jsp.pdfh;pdfa = jsp.pdfa;pd = jsp.pd; + var html = request(input, { + withHeaders: true + }); + let json = JSON.parse(html); + let setCk = Object.keys(json).find(it => it.toLowerCase() === "set-cookie"); + let cookie = setCk ? json[setCk].split(";")[0] : ""; + fetch_params.headers.Cookie = cookie; + html = JSON.parse(html).body; + if (/检测中/.test(html)) { + html = request(input + "?btwaf" + html.match(/btwaf(.*?)\"/)[1], fetch_params) + } + let list = pdfa(html, ".movie-list-body.flex&&.vod-search-list"); + list.forEach(it => { + d.push({ + title: pdfh(it, ".movie-title&&title"), + desc: pdfh(it, ".meta:eq(0)&&Text"), + pic_url: pd(it, ".movie-post-lazyload&&data-original"), + url: pd(it, "a&&href") + }) + }); + setResult(d) + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_gao/js/KUBO\345\275\261\350\247\206[\351\243\236].js" "b/zyplayer/drpy_gao/js/KUBO\345\275\261\350\247\206[\351\243\236].js" new file mode 100644 index 0000000..ae5f3ce --- /dev/null +++ "b/zyplayer/drpy_gao/js/KUBO\345\275\261\350\247\206[\351\243\236].js" @@ -0,0 +1,42 @@ +// 筛选页功能关闭中 +muban.海螺3.二级.title = '.hl-dc-title&&Text;li.hl-col-xs-12:eq(6)--em&&Text'; +muban.海螺3.二级.desc = 'li.hl-col-xs-12:eq(1)&&Text;;;li.hl-col-xs-12:eq(2)--em&&Text;li.hl-col-xs-12:eq(3)--em&&Text'; +var rule = { + title:'KUBO影视[飞]', + 模板:'海螺3', + host:'https://123kubo.tv', + url:'/type/fyclass-fypage.html', + // url:'/show/fyclass/page/fypage.html', + // url:'/show/fyfilter.html', + // filterable:1,//是否启用分类筛选, + // filter_url:'{{fl.cateId}}{{fl.area}}{{fl.by or "/by/time"}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}', + // filter: { + // "1":[{"key":"cateId","name":"分類","value":[{"n":"全部","v":"1"},{"n":"動作片","v":"6"},{"n":"喜劇片","v":"7"},{"n":"愛情片","v":"8"},{"n":"科幻片","v":"9"},{"n":"恐怖片","v":"10"},{"n":"劇情片","v":"11"},{"n":"戰爭片","v":"12"},{"n":"紀錄片","v":"20"},{"n":"微電影","v":"21"},{"n":"動漫片","v":"22"},{"n":"倫理片","v":"23"}]},{"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/犯罪"},{"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":"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/韓國"},{"n":"德國","v":"/area/德國"},{"n":"泰國","v":"/area/泰國"},{"n":"印度","v":"/area/印度"},{"n":"意大利","v":"/area/意大利"},{"n":"西班牙","v":"/area/西班牙"},{"n":"加拿大","v":"/area/加拿大"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2025","v":"/year/2025"},{"n":"2024","v":"/year/2024"},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"}]},{"key":"lang","name":"語言","value":[{"n":"全部","v":""},{"n":"國語","v":"/lang/國語"},{"n":"英語","v":"/lang/英語"},{"n":"粵語","v":"/lang/粵語"},{"n":"閩南語","v":"/lang/閩南語"},{"n":"韓語","v":"/lang/韓語"},{"n":"日語","v":"/lang/日語"},{"n":"法語","v":"/lang/法語"},{"n":"德語","v":"/lang/德語"},{"n":"其它","v":"/lang/其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + // "2":[{"key":"cateId","name":"分類","value":[{"n":"全部","v":"2"},{"n":"陸劇","v":"13"},{"n":"港劇","v":"14"},{"n":"台劇","v":"15"},{"n":"日劇","v":"16"},{"n":"韓劇","v":"24"},{"n":"美劇","v":"25"},{"n":"泰劇","v":"26"},{"n":"海外劇","v":"27"}]},{"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/恐怖"},{"n":"驚悚","v":"/class/驚悚"}]},{"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/英國"},{"n":"新加坡","v":"/area/新加坡"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2025","v":"/year/2025"},{"n":"2024","v":"/year/2024"},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"}]},{"key":"lang","name":"語言","value":[{"n":"全部","v":""},{"n":"國語","v":"/lang/國語"},{"n":"英語","v":"/lang/英語"},{"n":"粵語","v":"/lang/粵語"},{"n":"閩南語","v":"/lang/閩南語"},{"n":"韓語","v":"/lang/韓語"},{"n":"日語","v":"/lang/日語"},{"n":"其它","v":"/lang/其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + // "3":[{"key":"cateId","name":"分類","value":[{"n":"全部","v":"3"},{"n":"內地綜藝","v":"28"},{"n":"日韓綜藝","v":"29"},{"n":"港台綜藝","v":"30"},{"n":"歐美綜藝","v":"31"}]},{"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/旅遊"}]},{"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/韓國"},{"n":"德國","v":"/area/德國"},{"n":"泰國","v":"/area/泰國"},{"n":"印度","v":"/area/印度"},{"n":"意大利","v":"/area/意大利"},{"n":"西班牙","v":"/area/西班牙"},{"n":"加拿大","v":"/area/加拿大"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2025","v":"/year/2025"},{"n":"2024","v":"/year/2024"},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"}]},{"key":"lang","name":"語言","value":[{"n":"全部","v":""},{"n":"國語","v":"/lang/國語"},{"n":"英語","v":"/lang/英語"},{"n":"粵語","v":"/lang/粵語"},{"n":"閩南語","v":"/lang/閩南語"},{"n":"韓語","v":"/lang/韓語"},{"n":"日語","v":"/lang/日語"},{"n":"其它","v":"/lang/其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + // "4":[{"key":"cateId","name":"分類","value":[{"n":"全部","v":"4"},{"n":"國產動漫","v":"32"},{"n":"日韓動漫","v":"33"},{"n":"港台動漫","v":"34"},{"n":"歐美動漫","v":"35"},{"n":"海外動漫","v":"36"}]},{"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/推理"},{"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/輕小說"},{"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":"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/韓國"},{"n":"德國","v":"/area/德國"},{"n":"泰國","v":"/area/泰國"},{"n":"印度","v":"/area/印度"},{"n":"意大利","v":"/area/意大利"},{"n":"西班牙","v":"/area/西班牙"},{"n":"加拿大","v":"/area/加拿大"},{"n":"其他","v":"/area/其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2025","v":"/year/2025"},{"n":"2024","v":"/year/2024"},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"}]},{"key":"lang","name":"語言","value":[{"n":"全部","v":""},{"n":"國語","v":"/lang/國語"},{"n":"英語","v":"/lang/英語"},{"n":"粵語","v":"/lang/粵語"},{"n":"閩南語","v":"/lang/閩南語"},{"n":"韓語","v":"/lang/韓語"},{"n":"日語","v":"/lang/日語"},{"n":"其它","v":"/lang/其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}] + // }, + // filter_def:{ + // 1:{cateId:'1'}, + // 2:{cateId:'2'}, + // 3:{cateId:'3'}, + // 4:{cateId:'4'} + // }, + searchUrl:'/search/page/fypage/wd/**.html', + class_parse: 'li.hl-type-child a;a&&Text;a&&href;(\\d+).html', + cate_exclude:'專題', + lazy:`js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) '+stringify(videoList)); + videoList.forEach((it,idex) => { + let vlist = /v1\\.vod/.test(HOST) ? videoList[idex].vod_list : videoList[idex].vlist ; + vlist.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + }); + setResult(d); + `, + 一级:`js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + input = input.replace('video','v1.vod').replace('tid','type').replace('pg=','page='); + jsondata = JSON.parse(request(input)); + videoList = jsondata.data.list; + } else { + input = HOST + '/'+ input.split('/')[4]; + jsondata = JSON.parse(request(input)); + videoList = jsondata.list || jsondata.data; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, + 二级:`js: + if (/v1\\.vod/.test(HOST)) { + input = HOST + '/'+ input.split('/')[3]; + } else { + input = HOST + '/'+ input.split('/')[3].replace('detail','video_detail').replace('vod_id','id'); + } + try { + let html = request(input); + html = JSON.parse(html); + let node = /xgapp/.test(HOST) ? html.data.vod_info : html.data; + VOD = { + vod_id: node.vod_id, + vod_name: node.vod_name, + vod_pic: node.vod_pic, + type_name: node.vod_class, + vod_year: node.vod_year, + vod_area: node.vod_area, + vod_remarks: node.vod_remarks, + vod_actor: node.vod_actor, + vod_director: node.vod_director, + vod_content: node.vod_content.strip() + }; + if (typeof play_url === 'undefined') { + var play_url = '' + } + var name = { + 'bfzym3u8': '暴风', + '1080zyk': '优质', + 'kuaikan': '快看', + 'lzm3u8': '量子', + 'ffm3u8': '非凡', + 'haiwaikan': '海外看', + 'gsm3u8': '光速', + 'zuidam3u8': '最大', + 'bjm3u8': '八戒', + 'snm3u8': '索尼', + 'wolong': '卧龙', + 'xlm3u8': '新浪', + 'yhm3u8': '樱花', + 'tkm3u8': '天空', + 'jsm3u8': '极速', + 'wjm3u8': '无尽', + 'sdm3u8': '闪电', + 'kcm3u8': '快车', + 'jinyingm3u8': '金鹰', + 'fsm3u8': '飞速', + 'tpm3u8': '淘片', + 'lem3u8': '鱼乐', + 'dbm3u8': '百度', + 'tomm3u8': '番茄', + 'ukm3u8': 'U酷', + 'ikm3u8': '爱坤', + 'hnzym3u8': '红牛资源', + 'hnm3u8': '红牛', + '68zy_m3u8': '68', + 'kdm3u8': '酷点', + 'bdxm3u8': '北斗星', + 'qhm3u8': '奇虎', + 'hhm3u8': '豪华', + 'kbm3u8': '快播' + }; + let episodes = /v1\\.vod/.test(HOST)?node.vod_play_list:node.vod_url_with_player; + if (episodes != '') { + let playMap = {}; + let arr = []; + episodes.forEach(ep => { + let from = []; + if (/v1\\.vod/.test(HOST)) { + from = ep.player_info.from||ep.player_info.show||ep.from||ep.show; + } else { + from = ep.code||ep.name; + } + if (!playMap.hasOwnProperty(from)) { + playMap[from] = [] + } + let parse_api = ''; + if (/v1\\.vod/.test(HOST)) { + parse_api = ep.player_info.parse != null ? ep.player_info.parse : ep.player_info.parse2; + // parse_api = /,/.test(parse_api) ? parse_api.split(',')[1] : parse_api; + } else { + parse_api = ep.parse_api; + } + log('parse_api =========> '+parse_api); + if (parse_api != null && !/\\.m3u8|\\.mp4/.test(ep.url)) { + parse_api = parse_api.replaceAll('..','.') ; + ep.url = ep.url.replaceAll('$','$'+parse_api); + } + if (from != null) playMap[from].push(ep.url) + }); + for (var key in playMap) { + if ('bfzym3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 1 + }) + } else if ('1080zyk' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 2 + }) + } else if ('kuaikan' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 3 + }) + } else if ('lzm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 4 + }) + } else if ('ffm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 5 + }) + } else if ('snm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 6 + }) + } else if ('qhm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 7 + }) + } else { + arr.push({ + flag: name[key] ? name[key] : key, + url: playMap[key], + sort: 8 + }) + } + } + arr.sort((a, b) => a.sort - b.sort); + let playFrom = []; + let playList = []; + arr.map(val => { + if (!/undefined/.test(val.flag)) { + playFrom.push(val.flag); + playList.push(val.url); + } + }) + VOD.vod_play_from = playFrom.join('$$$'); + VOD.vod_play_url = playList.join('$$$'); + } else { + VOD.vod_play_from = node.vod_play_from; + VOD.vod_play_url = node.vod_play_url; + } + } catch (e) { + log("获取二级详情页发生错误:" + e.message); + } + `, + 搜索:`js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + input = (HOST + '/'+ input.split('/')[3]).replace('/search','').replace('text=','wd=').replace('pg=','page='); + jsondata = JSON.parse(request(input)); + videoList = jsondata.data.list; + } else { + input = HOST + '/'+ input.split('/')[3] + jsondata = JSON.parse(request(input)); + videoList = jsondata.list || jsondata.data; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, +} \ No newline at end of file diff --git "a/zyplayer/drpy_gao/js/UrleBird[\351\243\236].js" "b/zyplayer/drpy_gao/js/UrleBird[\351\243\236].js" new file mode 100644 index 0000000..3d1f92f --- /dev/null +++ "b/zyplayer/drpy_gao/js/UrleBird[\351\243\236].js" @@ -0,0 +1,25 @@ +/** + * 20240201 测试OK + */ + +var rule = { + title:'UrleBird[飞]', + host:'https://urlebird.com', + homeUrl:'/trending/', + url:'fyclass/page/fypage/[fyclass/]', + searchUrl:'/search/?q=**',//Search @user or #hash + searchable:2, + quickSearch:0, + class_name:'更新&人气&热搜', + class_url:'videos&videos/popular&trending', + headers:{ + 'User-Agent':'PC_UA' + }, + play_parse:true, + lazy:'js:let html=request(input);let rurl=html.match(/video src="(.*?)"/)[1];input={parse:0,url:rurl};', + limit:10, + 推荐:'*', + 一级:"js:var d=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd;var list=pdfa(request(input),'body&&.thumb');list.forEach(function(it){let img=pd(it,'.img img&&data-src');if(!/jpg|jpeg|webp/.test(img)){img=pd(it,'.img img&&src')};d.push({desc:pdfh(it,'.author-name&&Text'),title:'♥'+pdfh(it,'.stats div:eq(2)&&Text')+' '+pdfh(it,'.info3--div&&Text'),pic_url:img,url:pd(it,'a:eq(-1)&&href')})});setResult(d);", + 二级:'*', + 搜索:'*', +} diff --git a/zyplayer/drpy_gao/js/aipanso.js b/zyplayer/drpy_gao/js/aipanso.js new file mode 100644 index 0000000..932cb8d --- /dev/null +++ b/zyplayer/drpy_gao/js/aipanso.js @@ -0,0 +1,126 @@ +var rule = { + title:'爱盘搜[夸]', + host:'https://aipanso.com', + homeUrl:'/', + url: '/forum-fyclass-fypage.html?', + filter_url:'{{fl.class}}', + filter:{ + }, + searchUrl: '/search?page=fypage&s=1&t=-1&k=**', + searchable:2, + quickSearch:0, + filterable:0, + headers:{ + 'User-Agent': PC_UA, + 'Accept': '*/*', + 'Referer': 'https://aipanso.com/' + }, + timeout:5000, + class_name:'', + class_url:'', + play_parse:true, + play_json:[{ + re:'*', + json:{ + parse:0, + jx:0 + } + }], + lazy:'', + limit:6, + 推荐:'', + 一级:'', + 二级:{ + title:"van-row h3&&Text", + img:"", + desc:"van-row h3&&Text", + content:"van-row h3&&Text", + tabs:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +TABS=[] +TABS.push("夸克網盤"); +log('meijumi TABS >>>>>>>>>>>>>>>>>>' + TABS); +`, + lists:`js: +log(TABS); +LISTS=[]; +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +let requestHeaders = { + withHeaders: true, + redirect: 0, + headers:{ + Referer: MY_URL + } +}; +let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); +Object.assign(_fetch_params, requestHeaders); +let new_html = request ( MY_URL.replace("/s/","/cv/"), _fetch_params); +let json=JSON.parse(new_html); +let redirectUrl = ""; +if (json.hasOwnProperty("Location")){ + redirectUrl = json["Location"]; +}else if (json.hasOwnProperty("location")){ + redirectUrl = json["location"]; +} +let title = pdfh(html, 'van-row h3&&Text'); +LISTS.push([title + '$' + 'push://' + redirectUrl]); +`, + }, + 搜索:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; + +log("aipanso enter search >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + KEY); +let withHeaders = { + withHeaders: true +}; +let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); +Object.assign(_fetch_params, withHeaders); + +log('aipanso search params >>>>>>>>>>>>>>>>>>>>>' + JSON.stringify(_fetch_params)); +let new_html=request(rule.homeUrl + 'search?page=' + MY_PAGE + '&s=1&t=-1&k=' + encodeURIComponent(KEY) , _fetch_params); +//log('aipanso search new_html >>>>>>>>>>>>>>>>>>>>>' + new_html); +let json=JSON.parse(new_html); +let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie"); +let cookie=""; +if (typeof setCk !== "undefined"){ + let d=[]; + for(const key in json[setCk]){ + if (typeof json[setCk][key] === "string"){ + log("aipanso header setCk key>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + json[setCk][key] + " " + (typeof json[setCk][key])); + d.push(json[setCk][key].split(";")[0]); + } + } + cookie=d.join(";"); + setItem(RULE_CK, cookie); + fetch_params.headers.Cookie=cookie; + rule_fetch_params.headers.Cookie=cookie; +} +log('aipanso search cookie >>>>>>>>>>>>>>>>>>>>>' + cookie); +//log('aipanso search body >>>>>>>>>>>>>>>>>>>>>' + json['body'].substring(4096)); + +new_html = json['body']; + +let d=[]; +let dlist = pdfa(new_html, 'van-row:has(>a[href^="/s/"])'); +dlist.forEach(function(it){ + let title = pdfh(it, 'van-card template&&Text'); + if (title.includes(KEY)){ + if (searchObj.quick === true){ + title = KEY; + } + let img = pd(it, 'van-card&&thumb', HOST); + let content = pdfh(it, 'van-card template:eq(1)&&Text'); + let desc = pdfh(it, 'van-card template:eq(1)&&Text'); + let url = pd(it, 'a&&href', HOST); + d.push({ + title:title, + img:img, + content:content, + desc:desc, + url:url + }) + } +}); +setResult(d); +`, +} diff --git a/zyplayer/drpy_gao/js/alist.json b/zyplayer/drpy_gao/js/alist.json new file mode 100644 index 0000000..4ab6e73 --- /dev/null +++ b/zyplayer/drpy_gao/js/alist.json @@ -0,0 +1,80 @@ +[ +{ +"name": "小鸭", +"server": "http://shicheng.wang:555/", +"startPage": "/", +"showAll": false, +"search": true, +"params": { +"/abc": { +"password": "123" +}, +"/abc/abc": { +"password": "123" +} +} +}, +{ +"name": "小猫", +"server": "https://nics.eu.org", +"startPage": "/SP1", +"showAll": false, +"search": true, +"params": { +"/abc": { +"password": "123" +}, +"/abc/abc": { +"password": "123" +} +} +}, + { + "name" : "🙋丫仙女", + "server" : "http://alist.xiaoya.pro", + "startPage" : "/", + "showAll" : false, + "search" : true + }, + { + "name" : "👍ECVE", + "server" : "https://pan.ecve.cn", + "startPage" : "/", + "showAll" : false, + "search" : true + }, + { + "name" : "🐋一只鱼", + "server" : "https://alist.youte.ml", + "startPage" : "/", + "showAll" : false, + "search" : true + }, + { + "name" : "🌊七米蓝", + "server" : "https://al.chirmyram.com", + "startPage" : "/", + "showAll" : false, + "search" : true + }, + { + "name" : "🐉神族九帝", + "server" : "https://alist.shenzjd.com", + "startPage" : "/", + "showAll" : false, + "search" : true + }, + { + "name" : "☃️姬路白雪", + "server" : "https://pan.jlbx.xyz", + "startPage" : "/", + "showAll" : false, + "search" : true + }, + { + "name" : "✨星梦", + "server" : "https://pan.bashroot.top", + "startPage" : "/", + "showAll" : false, + "search" : true + }] \ No newline at end of file diff --git a/zyplayer/drpy_gao/js/banan.js b/zyplayer/drpy_gao/js/banan.js new file mode 100644 index 0000000..d3befc6 --- /dev/null +++ b/zyplayer/drpy_gao/js/banan.js @@ -0,0 +1,19 @@ +var rule = { + title:'banan', + host:'https://banan.tv', + url:'/vodtype/fyclass-fypage.html', + headers:{ + 'User-Agent':'MOBILE_UA' + }, + timeout:5000, + class_name:'探花&91大神&素人&国产&高清&FC2',//静态分类名称拼接 + class_url:'57&23&63&25&22&28',//静态分类标识拼接 + //class_parse:'ul.navbar-nav&&li:gt(1):lt(6);a&&Text;a&&href', + limit:5, + play_parse:true, + lazy:'', + 一级:'.img-box.cover-md&&a;img&&alt;img&&data-src;.grid_date&&Text;a&&href', + 二级:'*', + +} + diff --git a/zyplayer/drpy_gao/js/cilixiong.js b/zyplayer/drpy_gao/js/cilixiong.js new file mode 100644 index 0000000..27074ea --- /dev/null +++ b/zyplayer/drpy_gao/js/cilixiong.js @@ -0,0 +1,61 @@ +var rule = { + title:'磁力熊[磁]', + host:'https://www.cilixiong.com', + homeUrl:'/', + url: '/fyclassfyfilter-(fypage-1).html', + //host:'http://127.0.0.1:10079', + //homeUrl:'/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.cilixiong.com', + //url:'/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.cilixiong.com/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: '/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.cilixiong.com/e/search/index.php#classid=1,2&show=title&tempid=1&keyboard=**;post', + searchable:0, + 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:false, + 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') + }); + }) + 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 = rule.homeUrl + 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') + }); + }) + setResult(d); + `, + 二级:'', + 搜索:'', +} diff --git a/zyplayer/drpy_gao/js/cilixiongp.js b/zyplayer/drpy_gao/js/cilixiongp.js new file mode 100644 index 0000000..139f62d --- /dev/null +++ b/zyplayer/drpy_gao/js/cilixiongp.js @@ -0,0 +1,61 @@ +var rule = { + title:'磁力熊[磁]', + //host:'https://www.cilixiong.com', + //homeUrl:'/', + //url: '/fyclassfyfilter-(fypage-1).html', + host:'http://127.0.0.1:10079', + homeUrl:'/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.cilixiong.com', + url:'/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.cilixiong.com/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: '/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.cilixiong.com/e/search/index.php#classid=1,2&show=title&tempid=1&keyboard=**;post', + searchable:0, + 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:false, + 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') + }); + }) + 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 = rule.homeUrl + 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') + }); + }) + setResult(d); + `, + 二级:'', + 搜索:'', +} diff --git a/zyplayer/drpy_gao/js/cokemv.js b/zyplayer/drpy_gao/js/cokemv.js new file mode 100644 index 0000000..44616d4 --- /dev/null +++ b/zyplayer/drpy_gao/js/cokemv.js @@ -0,0 +1,73 @@ +muban.mxpro.二级.desc = '.module-info-item:eq(2)&&Text;;;.module-info-item-content:eq(1)&&Text;.module-info-item-content:eq(0)&&Text' +muban.mxpro.二级.tabs = '#y-playList&&.module-tab-item' +muban.mxpro.二级.tab_text = 'body--small&&Text' +var rule = { + title:'cokemv', + 模板:'mxpro', + host:'https://www.cokemv.fun', + // url:'/show/fyclass--------fypage---.html', + url:'/show/fyclassfyfilter.html', + filterable:1,//是否启用分类筛选, + filter_url:'-{{fl.area}}-{{fl.by or "time"}}-{{fl.class}}-{{fl.lang}}-{{fl.letter}}---fypage---{{fl.year}}', + filter: { + "1":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"netflix","v":"netflix"},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"动作","v":"动作"},{"n":"科幻","v":"科幻"},{"n":"剧情","v":"剧情"},{"n":"动画","v":"动画"},{"n":"悬疑","v":"悬疑"},{"n":"犯罪","v":"犯罪"},{"n":"惊悚","v":"惊悚"},{"n":"冒险","v":"冒险"},{"n":"历史","v":"历史"},{"n":"奇幻","v":"奇幻"},{"n":"恐怖","v":"恐怖"},{"n":"战争","v":"战争"},{"n":"传记","v":"传记"},{"n":"歌舞","v":"歌舞"},{"n":"武侠","v":"武侠"},{"n":"灾难","v":"灾难"},{"n":"古装","v":"古装"},{"n":"运动","v":"运动"},{"n":"西部","v":"西部"},{"n":"纪录片","v":"纪录片"},{"n":"短片","v":"短片"},{"n":"音乐","v":"音乐"},{"n":"歌舞","v":"歌舞"},{"n":"家庭","v":"家庭"},{"n":"儿童","v":"儿童"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国香港","v":"中国香港"},{"n":"中国台湾","v":"中国台湾"},{"n":"美国","v":"美国"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"新加坡","v":"新加坡"},{"n":"印度","v":"印度"},{"n":"英国","v":"英国"},{"n":"法国","v":"法国"},{"n":"加拿大","v":"加拿大"},{"n":"西班牙","v":"西班牙"},{"n":"俄罗斯","v":"俄罗斯"},{"n":"其它","v":"其它"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"汉语普通话","v":"汉语普通话"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"法语","v":"法语"},{"n":"德语","v":"德语"},{"n":"俄语","v":"俄语"},{"n":"印度语","v":"印度语"},{"n":"马来语","v":"马来语"},{"n":"西班牙语","v":"西班牙语"},{"n":"意大利语","v":"意大利语"},{"n":"爱尔兰语","v":"爱尔兰语"},{"n":"瑞典语","v":"瑞典语"},{"n":"葡萄牙语","v":"葡萄牙语"},{"n":"阿拉伯语","v":"阿拉伯语"},{"n":"挪威语","v":"挪威语"},{"n":"希伯来语","v":"希伯来语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "2":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"netflix","v":"netflix"},{"n":"hbo","v":"hbo"},{"n":"喜剧","v":"喜剧"},{"n":"爱情","v":"爱情"},{"n":"悬疑","v":"悬疑"},{"n":"武侠","v":"武侠"},{"n":"古装","v":"古装"},{"n":"犯罪","v":"犯罪"},{"n":"科幻","v":"科幻"},{"n":"恐怖","v":"恐怖"},{"n":"历史","v":"历史"},{"n":"战争","v":"战争"},{"n":"动作","v":"动作"},{"n":"家庭","v":"家庭"},{"n":"冒险","v":"冒险"},{"n":"传记","v":"传记"},{"n":"剧情","v":"剧情"},{"n":"奇幻","v":"奇幻"},{"n":"惊悚","v":"惊悚"},{"n":"灾难","v":"灾难"},{"n":"歌舞","v":"歌舞"},{"n":"音乐","v":"音乐"},{"n":"动画","v":"动画"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国香港","v":"中国香港"},{"n":"中国台湾","v":"中国台湾"},{"n":"美国","v":"美国"},{"n":"韩国","v":"韩国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"泰国","v":"泰国"},{"n":"新加坡","v":"新加坡"},{"n":"其它","v":"其它"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"汉语普通话","v":"汉语普通话"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"法语","v":"法语"},{"n":"德语","v":"德语"},{"n":"俄语","v":"俄语"},{"n":"印度语","v":"印度语"},{"n":"马来语","v":"马来语"},{"n":"西班牙语","v":"西班牙语"},{"n":"意大利语","v":"意大利语"},{"n":"爱尔兰语","v":"爱尔兰语"},{"n":"瑞典语","v":"瑞典语"},{"n":"葡萄牙语","v":"葡萄牙语"},{"n":"阿拉伯语","v":"阿拉伯语"},{"n":"挪威语","v":"挪威语"},{"n":"希伯来语","v":"希伯来语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "3":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"netflix","v":"netflix"},{"n":"科幻","v":"科幻"},{"n":"剧情","v":"剧情"},{"n":"喜剧","v":"喜剧"},{"n":"动作","v":"动作"},{"n":"动画","v":"动画"},{"n":"奇幻","v":"奇幻"},{"n":"冒险","v":"冒险"},{"n":"犯罪","v":"犯罪"},{"n":"悬疑","v":"悬疑"},{"n":"灾难","v":"灾难"},{"n":"恐怖","v":"恐怖"},{"n":"惊悚","v":"惊悚"},{"n":"奇幻","v":"奇幻"},{"n":"战争","v":"战争"},{"n":"爱情","v":"爱情"},{"n":"短片","v":"短片"},{"n":"歌舞","v":"歌舞"},{"n":"音乐","v":"音乐"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其它","v":"其它"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"汉语普通话","v":"汉语普通话"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"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":"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "4":[{"key":"class","name":"剧情","value":[{"n":"全部","v":""},{"n":"纪录片","v":"纪录片"},{"n":"历史","v":"历史"},{"n":"真人秀","v":"真人秀"},{"n":"脱口秀","v":"脱口秀"},{"n":"音乐","v":"音乐"},{"n":"歌舞","v":"歌舞"}]},{"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "24":[{"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], + "22":[{"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"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}] + }, + filter_def:{ + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 3:{cateId:'3'}, + 4:{cateId:'4'}, + 24:{cateId:'24'}, + 22:{cateId:'22'} + }, + class_parse:'.navbar-items&&li;a&&title;a&&href;/(\\d+).html', + cate_exclude:'预告', + lazy:`js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) '+stringify(videoList)); + videoList.forEach((it,idex) => { + let vlist = /v1\\.vod/.test(HOST) ? videoList[idex].vod_list : videoList[idex].vlist ; + vlist.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + }); + setResult(d); + `, + 一级:`js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + input = input.replace('video','v1.vod').replace('tid','type').replace('pg=','page='); + jsondata = JSON.parse(request(input)); + videoList = jsondata.data.list; + } else { + input = HOST + '/'+ input.split('/')[4]; + jsondata = JSON.parse(request(input)); + videoList = jsondata.list || jsondata.data; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, + 二级:`js: + if (/v1\\.vod/.test(HOST)) { + input = HOST + '/'+ input.split('/')[3]; + } else { + input = HOST + '/'+ input.split('/')[3].replace('detail','video_detail').replace('vod_id','id'); + } + try { + let html = request(input); + html = JSON.parse(html); + let node = /xgapp/.test(HOST) ? html.data.vod_info : html.data; + VOD = { + vod_id: node.vod_id, + vod_name: node.vod_name, + vod_pic: node.vod_pic, + type_name: node.vod_class, + vod_year: node.vod_year, + vod_area: node.vod_area, + vod_remarks: node.vod_remarks, + vod_actor: node.vod_actor, + vod_director: node.vod_director, + vod_content: node.vod_content.strip() + }; + if (typeof play_url === 'undefined') { + var play_url = '' + } + var name = { + 'bfzym3u8': '暴风', + '1080zyk': '优质', + 'kuaikan': '快看', + 'lzm3u8': '量子', + 'ffm3u8': '非凡', + 'haiwaikan': '海外看', + 'gsm3u8': '光速', + 'zuidam3u8': '最大', + 'bjm3u8': '八戒', + 'snm3u8': '索尼', + 'wolong': '卧龙', + 'xlm3u8': '新浪', + 'yhm3u8': '樱花', + 'tkm3u8': '天空', + 'jsm3u8': '极速', + 'wjm3u8': '无尽', + 'sdm3u8': '闪电', + 'kcm3u8': '快车', + 'jinyingm3u8': '金鹰', + 'fsm3u8': '飞速', + 'tpm3u8': '淘片', + 'lem3u8': '鱼乐', + 'dbm3u8': '百度', + 'tomm3u8': '番茄', + 'ukm3u8': 'U酷', + 'ikm3u8': '爱坤', + 'hnzym3u8': '红牛资源', + 'hnm3u8': '红牛', + '68zy_m3u8': '68', + 'kdm3u8': '酷点', + 'bdxm3u8': '北斗星', + 'qhm3u8': '奇虎', + 'hhm3u8': '豪华', + 'kbm3u8': '快播' + }; + let episodes = /v1\\.vod/.test(HOST)?node.vod_play_list:node.vod_url_with_player; + if (episodes != '') { + let playMap = {}; + let arr = []; + episodes.forEach(ep => { + let from = []; + if (/v1\\.vod/.test(HOST)) { + from = ep.player_info.from||ep.player_info.show||ep.from||ep.show; + } else { + from = ep.code||ep.name; + } + if (!playMap.hasOwnProperty(from)) { + playMap[from] = [] + } + let parse_api = ''; + if (/v1\\.vod/.test(HOST)) { + parse_api = ep.player_info.parse != null ? ep.player_info.parse : ep.player_info.parse2; + // parse_api = /,/.test(parse_api) ? parse_api.split(',')[1] : parse_api; + } else { + parse_api = ep.parse_api; + } + log('parse_api =========> '+parse_api); + if (parse_api != null && !/\\.m3u8|\\.mp4/.test(ep.url)) { + parse_api = parse_api.replaceAll('..','.') ; + ep.url = ep.url.replaceAll('$','$'+parse_api); + } + if (from != null) playMap[from].push(ep.url) + }); + for (var key in playMap) { + if ('bfzym3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 1 + }) + } else if ('1080zyk' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 2 + }) + } else if ('kuaikan' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 3 + }) + } else if ('lzm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 4 + }) + } else if ('ffm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 5 + }) + } else if ('snm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 6 + }) + } else if ('qhm3u8' == key) { + arr.push({ + flag: name[key], + url: playMap[key], + sort: 7 + }) + } else { + arr.push({ + flag: name[key] ? name[key] : key, + url: playMap[key], + sort: 8 + }) + } + } + arr.sort((a, b) => a.sort - b.sort); + let playFrom = []; + let playList = []; + arr.map(val => { + if (!/undefined/.test(val.flag)) { + playFrom.push(val.flag); + playList.push(val.url); + } + }) + VOD.vod_play_from = playFrom.join('$$$'); + VOD.vod_play_url = playList.join('$$$'); + } else { + VOD.vod_play_from = node.vod_play_from; + VOD.vod_play_url = node.vod_play_url; + } + } catch (e) { + log("获取二级详情页发生错误:" + e.message); + } + `, + 搜索:`js: + let d = []; + let jsondata = []; + let videoList = []; + if (/v1\\.vod/.test(HOST)) { + input = (HOST + '/'+ input.split('/')[3]).replace('/search','').replace('text=','wd=').replace('pg=','page='); + jsondata = JSON.parse(request(input)); + videoList = jsondata.data.list; + } else { + input = HOST + '/'+ input.split('/')[3] + jsondata = JSON.parse(request(input)); + videoList = jsondata.list || jsondata.data; + } + // log('videoList =========> '+stringify(videoList)); + videoList.forEach(it => { + d.push({ + url:it.vod_id, + title:it.vod_name, + img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic, + desc:it.vod_remarks, + }); + }); + setResult(d); + `, +} \ No newline at end of file diff --git a/zyplayer/drpy_gao/js/ddys.js b/zyplayer/drpy_gao/js/ddys.js new file mode 100644 index 0000000..4ad9dc0 --- /dev/null +++ b/zyplayer/drpy_gao/js/ddys.js @@ -0,0 +1,136 @@ +var lists = `js: +log(TABS); +let d = []; +pdfh = jsp.pdfh; +pdfa = jsp.pdfa; +if (typeof play_url === "undefined") { + var play_url = "" +} + +function getLists(html) { + let src = pdfh(html, ".wp-playlist-script&&Html"); + src = JSON.parse(src).tracks; + let list1 = []; + let list2 = []; + let url1 = ""; + let url2 = ""; + src.forEach(function(it) { + let src0 = it.src0; + let src1 = it.src1; + let title = it.caption; + url1 = "https://v.ddys.pro" + src0; + url2 = "https://ddys.pro/getvddr2/video?id=" + src1 + "&type=mix"; + let zm = "https://ddys.pro/subddr/" + it.subsrc; + list1.push({ + title: title, + url: url1, + desc: zm + }); + list2.push({ + title: title, + url: url2, + desc: zm + }) + }); + return { + list1: list1, + list2: list2 + } +} +var data = getLists(html); +var list1 = data.list1; +var list2 = data.list2; +let nums = pdfa(html, "body&&.post-page-numbers"); +nums.forEach(function(it) { + let num = pdfh(it, "body&&Text"); + log(num); + let nurl = input + num + "/"; + if (num == 1) { + return + } + log(nurl); + let html = request(nurl); + let data = getLists(html); + list1 = list1.concat(data.list1); + list2 = list2.concat(data.list2) +}); +list1 = list1.map(function(item) { + return item.title + "$" + play_url + urlencode(item.url + "|" + input + "|" + item.desc) +}); +list2 = list2.map(function(item) { + return item.title + "$" + play_url + urlencode(item.url + "|" + input + "|" + item.desc) +}); +LISTS = [list1, list2]; +`; + +var lazy = `js: +let purl = input.split("|")[0]; +let referer = input.split("|")[1]; +let zm = input.split("|")[2]; +print("purl:" + purl); +print("referer:" + referer); +print("zm:" + zm); +if (/getvddr/.test(purl)) { + let html = request(purl, { + headers: { + Referer: HOST, + "User-Agent": MOBILE_UA + } + }); + print(html); + try { + input = {jx:0,url:JSON.parse(html).url,parse:0} || {} + } catch (e) { + input = purl + } +} else { + input = { + jx: 0, + url: purl, + parse: 0, + header: JSON.stringify({ + 'user-agent': MOBILE_UA, + 'referer': HOST + }) + } +} +`; + +// 网址发布页 https://ddys.site +// 网址发布页 https://ddys.wiki +var rule={ + title:'ddys', + // host:'https://ddys.wiki', + // hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":MOBILE_UA}});HOST = jsp.pdfh(html,"a:eq(1)&&href")', + host:'https://ddys.pro', + // host:'https://ddys.mov', + url:'/fyclass/page/fypage/', + searchUrl:'/?s=**&post_type=post', + searchable:2, + quickSearch:0, + filterable:0, + headers:{ + 'User-Agent':'MOBILE_UA', + }, + class_parse:'#primary-menu li.menu-item;a&&Text;a&&href;\.pro/(.*)', + cate_exclude:'站长|^其他$|关于|^电影$|^剧集$|^类型$', + play_parse:true, + // lazy:'js:let purl=input.split("|")[0];let referer=input.split("|")[1];let zm=input.split("|")[2];print("purl:"+purl);print("referer:"+referer);print("zm:"+zm);let myua="okhttp/3.15";if(/ddrkey/.test(purl)){let ret=request(purl,{Referer:referer,withHeaders:true,"User-Agent":myua});log(ret);input=purl}else{let html=request(purl,{headers:{Referer:referer,"User-Agent":myua}});print(html);try{input=JSON.parse(html).url||{}}catch(e){input=purl}}', + lazy:lazy, + limit:6, + 推荐:'*', + double:true, // 推荐内容是否双层定位 + 一级:'.post-box-list&&article;a:eq(-1)&&Text;.post-box-image&&style;a:eq(0)&&Text;a:eq(-1)&&href', + 二级:{ + "title":".post-title&&Text;.cat-links&&Text", + "img":".doulist-item&&img&&data-cfsrc", + "desc":".published&&Text", + "content":".abstract&&Text", + // "tabs":"js:TABS=['国内','海外(貌似不能播放)']", + "tabs":"js:TABS=['国内(改Exo播放器)','国内2']", + // "lists":"js:log(TABS);let d=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;if(typeof play_url===\"undefined\"){var play_url=\"\"}function getLists(html){let src=pdfh(html,\".wp-playlist-script&&Html\");src=JSON.parse(src).tracks;let list1=[];let list2=[];src.forEach(function(it){let src0=it.src0;let src1=it.src1;let src2=it.src2;let title=it.caption;let url1=\"https://ddys.tv/getvddr/video?id=\"+src1+\"&dim=1080P+&type=mix\";let url2=\"https://w.ddys.tv\"+src0+\"?ddrkey=\"+src2;let zm=\"https://ddys.tv/subddr/\"+it.subsrc;list1.push({title:title,url:url1,desc:zm});list2.push({title:title,url:url2,desc:zm})});return{list1:list1,list2:list2}}var data=getLists(html);var list1=data.list1;var list2=data.list2;let nums=pdfa(html,\"body&&.post-page-numbers\");nums.forEach(function(it){let num=pdfh(it,\"body&&Text\");log(num);let nurl=input+num+\"/\";if(num==1){return}log(nurl);let html=request(nurl);let data=getLists(html);list1=list1.concat(data.list1);list2=list2.concat(data.list2)});list1=list1.map(function(item){return item.title+\"$\"+play_url+urlencode(item.url+\"|\"+input+\"|\"+item.desc)});list2=list2.map(function(item){return item.title+\"$\"+play_url+urlencode(item.url+\"|\"+input+\"|\"+item.desc)});LISTS=[list1,list2];", + // lists:'js:log(TABS);let d=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;if(typeof play_url==="undefined"){var play_url=""}function getLists(html){let src=pdfh(html,".wp-playlist-script&&Html");src=JSON.parse(src).tracks;let list1=[];let list2=[];src.forEach(function(it){let src0=it.src0;let src1=it.src1;let src2=it.src2;let title=it.caption;let url1="https://ddys.pro/getvddr/video?id="+src1+"&dim=1080P+&type=mix";let url2="https://w.ddys.pro"+src0+"?ddrkey="+src2;let zm="https://ddys.pro/subddr/"+it.subsrc;list1.push({title:title,url:url1,desc:zm});list2.push({title:title,url:url2,desc:zm})});return{list1:list1,list2:list2}}var data=getLists(html);var list1=data.list1;var list2=data.list2;let nums=pdfa(html,"body&&.post-page-numbers");nums.forEach(function(it){let num=pdfh(it,"body&&Text");log(num);let nurl=input+num+"/";if(num==1){return}log(nurl);let html=request(nurl);let data=getLists(html);list1=list1.concat(data.list1);list2=list2.concat(data.list2)});list1=list1.map(function(item){return item.title+"$"+play_url+urlencode(item.url+"|"+input+"|"+item.desc)});list2=list2.map(function(item){return item.title+"$"+play_url+urlencode(item.url+"|"+input+"|"+item.desc)});LISTS=[list1,list2];', + "lists":lists + }, + 搜索:'#main&&article;.post-title&&Text;;.published&&Text;a&&href' +} \ No newline at end of file diff --git a/zyplayer/drpy_gao/js/ddys_d.js b/zyplayer/drpy_gao/js/ddys_d.js new file mode 100644 index 0000000..4ad9dc0 --- /dev/null +++ b/zyplayer/drpy_gao/js/ddys_d.js @@ -0,0 +1,136 @@ +var lists = `js: +log(TABS); +let d = []; +pdfh = jsp.pdfh; +pdfa = jsp.pdfa; +if (typeof play_url === "undefined") { + var play_url = "" +} + +function getLists(html) { + let src = pdfh(html, ".wp-playlist-script&&Html"); + src = JSON.parse(src).tracks; + let list1 = []; + let list2 = []; + let url1 = ""; + let url2 = ""; + src.forEach(function(it) { + let src0 = it.src0; + let src1 = it.src1; + let title = it.caption; + url1 = "https://v.ddys.pro" + src0; + url2 = "https://ddys.pro/getvddr2/video?id=" + src1 + "&type=mix"; + let zm = "https://ddys.pro/subddr/" + it.subsrc; + list1.push({ + title: title, + url: url1, + desc: zm + }); + list2.push({ + title: title, + url: url2, + desc: zm + }) + }); + return { + list1: list1, + list2: list2 + } +} +var data = getLists(html); +var list1 = data.list1; +var list2 = data.list2; +let nums = pdfa(html, "body&&.post-page-numbers"); +nums.forEach(function(it) { + let num = pdfh(it, "body&&Text"); + log(num); + let nurl = input + num + "/"; + if (num == 1) { + return + } + log(nurl); + let html = request(nurl); + let data = getLists(html); + list1 = list1.concat(data.list1); + list2 = list2.concat(data.list2) +}); +list1 = list1.map(function(item) { + return item.title + "$" + play_url + urlencode(item.url + "|" + input + "|" + item.desc) +}); +list2 = list2.map(function(item) { + return item.title + "$" + play_url + urlencode(item.url + "|" + input + "|" + item.desc) +}); +LISTS = [list1, list2]; +`; + +var lazy = `js: +let purl = input.split("|")[0]; +let referer = input.split("|")[1]; +let zm = input.split("|")[2]; +print("purl:" + purl); +print("referer:" + referer); +print("zm:" + zm); +if (/getvddr/.test(purl)) { + let html = request(purl, { + headers: { + Referer: HOST, + "User-Agent": MOBILE_UA + } + }); + print(html); + try { + input = {jx:0,url:JSON.parse(html).url,parse:0} || {} + } catch (e) { + input = purl + } +} else { + input = { + jx: 0, + url: purl, + parse: 0, + header: JSON.stringify({ + 'user-agent': MOBILE_UA, + 'referer': HOST + }) + } +} +`; + +// 网址发布页 https://ddys.site +// 网址发布页 https://ddys.wiki +var rule={ + title:'ddys', + // host:'https://ddys.wiki', + // hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":MOBILE_UA}});HOST = jsp.pdfh(html,"a:eq(1)&&href")', + host:'https://ddys.pro', + // host:'https://ddys.mov', + url:'/fyclass/page/fypage/', + searchUrl:'/?s=**&post_type=post', + searchable:2, + quickSearch:0, + filterable:0, + headers:{ + 'User-Agent':'MOBILE_UA', + }, + class_parse:'#primary-menu li.menu-item;a&&Text;a&&href;\.pro/(.*)', + cate_exclude:'站长|^其他$|关于|^电影$|^剧集$|^类型$', + play_parse:true, + // lazy:'js:let purl=input.split("|")[0];let referer=input.split("|")[1];let zm=input.split("|")[2];print("purl:"+purl);print("referer:"+referer);print("zm:"+zm);let myua="okhttp/3.15";if(/ddrkey/.test(purl)){let ret=request(purl,{Referer:referer,withHeaders:true,"User-Agent":myua});log(ret);input=purl}else{let html=request(purl,{headers:{Referer:referer,"User-Agent":myua}});print(html);try{input=JSON.parse(html).url||{}}catch(e){input=purl}}', + lazy:lazy, + limit:6, + 推荐:'*', + double:true, // 推荐内容是否双层定位 + 一级:'.post-box-list&&article;a:eq(-1)&&Text;.post-box-image&&style;a:eq(0)&&Text;a:eq(-1)&&href', + 二级:{ + "title":".post-title&&Text;.cat-links&&Text", + "img":".doulist-item&&img&&data-cfsrc", + "desc":".published&&Text", + "content":".abstract&&Text", + // "tabs":"js:TABS=['国内','海外(貌似不能播放)']", + "tabs":"js:TABS=['国内(改Exo播放器)','国内2']", + // "lists":"js:log(TABS);let d=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;if(typeof play_url===\"undefined\"){var play_url=\"\"}function getLists(html){let src=pdfh(html,\".wp-playlist-script&&Html\");src=JSON.parse(src).tracks;let list1=[];let list2=[];src.forEach(function(it){let src0=it.src0;let src1=it.src1;let src2=it.src2;let title=it.caption;let url1=\"https://ddys.tv/getvddr/video?id=\"+src1+\"&dim=1080P+&type=mix\";let url2=\"https://w.ddys.tv\"+src0+\"?ddrkey=\"+src2;let zm=\"https://ddys.tv/subddr/\"+it.subsrc;list1.push({title:title,url:url1,desc:zm});list2.push({title:title,url:url2,desc:zm})});return{list1:list1,list2:list2}}var data=getLists(html);var list1=data.list1;var list2=data.list2;let nums=pdfa(html,\"body&&.post-page-numbers\");nums.forEach(function(it){let num=pdfh(it,\"body&&Text\");log(num);let nurl=input+num+\"/\";if(num==1){return}log(nurl);let html=request(nurl);let data=getLists(html);list1=list1.concat(data.list1);list2=list2.concat(data.list2)});list1=list1.map(function(item){return item.title+\"$\"+play_url+urlencode(item.url+\"|\"+input+\"|\"+item.desc)});list2=list2.map(function(item){return item.title+\"$\"+play_url+urlencode(item.url+\"|\"+input+\"|\"+item.desc)});LISTS=[list1,list2];", + // lists:'js:log(TABS);let d=[];pdfh=jsp.pdfh;pdfa=jsp.pdfa;if(typeof play_url==="undefined"){var play_url=""}function getLists(html){let src=pdfh(html,".wp-playlist-script&&Html");src=JSON.parse(src).tracks;let list1=[];let list2=[];src.forEach(function(it){let src0=it.src0;let src1=it.src1;let src2=it.src2;let title=it.caption;let url1="https://ddys.pro/getvddr/video?id="+src1+"&dim=1080P+&type=mix";let url2="https://w.ddys.pro"+src0+"?ddrkey="+src2;let zm="https://ddys.pro/subddr/"+it.subsrc;list1.push({title:title,url:url1,desc:zm});list2.push({title:title,url:url2,desc:zm})});return{list1:list1,list2:list2}}var data=getLists(html);var list1=data.list1;var list2=data.list2;let nums=pdfa(html,"body&&.post-page-numbers");nums.forEach(function(it){let num=pdfh(it,"body&&Text");log(num);let nurl=input+num+"/";if(num==1){return}log(nurl);let html=request(nurl);let data=getLists(html);list1=list1.concat(data.list1);list2=list2.concat(data.list2)});list1=list1.map(function(item){return item.title+"$"+play_url+urlencode(item.url+"|"+input+"|"+item.desc)});list2=list2.map(function(item){return item.title+"$"+play_url+urlencode(item.url+"|"+input+"|"+item.desc)});LISTS=[list1,list2];', + "lists":lists + }, + 搜索:'#main&&article;.post-title&&Text;;.published&&Text;a&&href' +} \ No newline at end of file diff --git a/zyplayer/drpy_gao/js/drpy.js b/zyplayer/drpy_gao/js/drpy.js new file mode 100644 index 0000000..6b9571e --- /dev/null +++ b/zyplayer/drpy_gao/js/drpy.js @@ -0,0 +1,37 @@ +var rule = { + title:'drpy', + host:'https://frodo.douban.com', + apidoc:'https://www.doubanapi.com', + homeUrl:'', + searchUrl:'', + searchable:1, + quickSearch:1, + filterable:1, + // 分类链接fypage参数支持1个()表达式 + url:'/?pg=fypage&class=fyclass&douban=2297669', + filter_url:'fl={{fl}}', + 图片来源:'@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', + headers:{ + "Host": "frodo.douban.com", + // "Host": "api.douban.com", + "Connection": "Keep-Alive", + "Referer": "https://servicewechat.com/wx2f9b06c1de1ccfca/84/page-frame.html", + // "content-type": "application/json", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat" + }, + timeout:5000, + class_name:'我的豆瓣&热门电影&热播剧集&热播综艺&电影筛选&电视筛选&电影榜单&电视榜单', + class_url:'interests&hot_gaia&tv_hot&show_hot&movie&tv&rank_list_movie&rank_list_tv', + filter:{'interests': [{'key': 'status', 'name': '状态', 'value': [{'n': '想看', 'v': 'mark'}, {'n': '在看', 'v': 'doing'}, {'n': '看过', 'v': 'done'}]}, {'key': 'subtype_tag', 'name': '形式', 'value': [{'n': '全部', 'v': ''}, {'n': '电影', 'v': 'movie'}, {'n': '电视', 'v': 'tv'}]}, {'key': 'year_tag', 'name': '年代', 'value': [{'n': '全部', 'v': '全部'}, {'n': '2024', 'v': '2024'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2010年代', 'v': '2010年代'}, {'n': '2000年代', 'v': '2000年代'}, {'n': '90年代', 'v': '90年代'}, {'n': '80年代', 'v': '80年代'}, {'n': '70年代', 'v': '70年代'}, {'n': '60年代', 'v': '60年代'}, {'n': '更早', 'v': '更早'}]}], 'hot_gaia': [{'key': 'sort', 'name': '排序', 'value': [{'n': '热度', 'v': 'recommend'}, {'n': '最新', 'v': 'time'}, {'n': '评分', 'v': 'rank'}]}, {'key': 'area', 'name': '地区', 'value': [{'n': '全部', 'v': '全部'}, {'n': '华语', 'v': '华语'}, {'n': '欧美', 'v': '欧美'}, {'n': '韩国', 'v': '韩国'}, {'n': '日本', 'v': '日本'}]}], 'tv_hot': [{'key': 'type', 'name': '分类', 'value': [{'n': '综合', 'v': 'tv_hot'}, {'n': '国产剧', 'v': 'tv_domestic'}, {'n': '欧美剧', 'v': 'tv_american'}, {'n': '日剧', 'v': 'tv_japanese'}, {'n': '韩剧', 'v': 'tv_korean'}, {'n': '动画', 'v': 'tv_animation'}]}], 'show_hot': [{'key': 'type', 'name': '分类', 'value': [{'n': '综合', 'v': 'show_hot'}, {'n': '国内', 'v': 'show_domestic'}, {'n': '国外', 'v': 'show_foreign'}]}], 'movie': [{'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': '短片'}]}, {'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': '丹麦'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '近期热度', 'v': 'T'}, {'n': '首映时间', 'v': 'R'}, {'n': '高分优先', 'v': 'S'}]}, {'key': '年代', 'name': '年代', 'value': [{'n': '全部年代', 'v': ''}, {'n': '2024', 'v': '2024'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2010年代', 'v': '2010年代'}, {'n': '2000年代', 'v': '2000年代'}, {'n': '90年代', 'v': '90年代'}, {'n': '80年代', 'v': '80年代'}, {'n': '70年代', 'v': '70年代'}, {'n': '60年代', 'v': '60年代'}, {'n': '更早', 'v': '更早'}]}], 'tv': [{'key': '类型', 'name': '类型', 'value': [{'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': '战争'}, {'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': '歌舞'}]}, {'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': '澳大利亚'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '近期热度', 'v': 'T'}, {'n': '首播时间', 'v': 'R'}, {'n': '高分优先', 'v': 'S'}]}, {'key': '年代', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2024', 'v': '2024'}, {'n': '2023', 'v': '2023'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2010年代', 'v': '2010年代'}, {'n': '2000年代', 'v': '2000年代'}, {'n': '90年代', 'v': '90年代'}, {'n': '80年代', 'v': '80年代'}, {'n': '70年代', 'v': '70年代'}, {'n': '60年代', 'v': '60年代'}, {'n': '更早', 'v': '更早'}]}, {'key': '平台', 'name': '平台', 'value': [{'n': '全部', 'v': ''}, {'n': '腾讯视频', 'v': '腾讯视频'}, {'n': '爱奇艺', 'v': '爱奇艺'}, {'n': '优酷', 'v': '优酷'}, {'n': '湖南卫视', 'v': '湖南卫视'}, {'n': 'Netflix', 'v': 'Netflix'}, {'n': 'HBO', 'v': 'HBO'}, {'n': 'BBC', 'v': 'BBC'}, {'n': 'NHK', 'v': 'NHK'}, {'n': 'CBS', 'v': 'CBS'}, {'n': 'NBC', 'v': 'NBC'}, {'n': 'tvN', 'v': 'tvN'}]}], 'rank_list_movie': [{'key': '榜单', 'name': '榜单', 'value': [{'n': '实时热门电影', 'v': 'movie_real_time_hotest'}, {'n': '一周口碑电影榜', 'v': 'movie_weekly_best'}, {'n': '豆瓣电影Top250', 'v': 'movie_top250'}]}], 'rank_list_tv': [{'key': '榜单', 'name': '榜单', 'value': [{'n': '实时热门电视', 'v': 'tv_real_time_hotest'}, {'n': '华语口碑剧集榜', 'v': 'tv_chinese_best_weekly'}, {'n': '全球口碑剧集榜', 'v': 'tv_global_best_weekly'}, {'n': '国内口碑综艺榜', 'v': 'show_chinese_best_weekly'}, {'n': '国外口碑综艺榜', 'v': 'show_global_best_weekly'}]}]}, + limit:20, + play_parse:false, + 推荐:'', + 推荐:'js:let d=[];let douban_api_host="http://api.douban.com/api/v2";let miniapp_apikey="0ac44ae016490db2204ce0a042db2916";const count=30;function miniapp_request(path,query){try{let url=douban_api_host+path;query.apikey=miniapp_apikey;fetch_params.headers=oheaders;url=buildUrl(url,query);let html=fetch(url,fetch_params);return JSON.parse(html)}catch(e){print("发生了错误:"+e.message);return{}}}function subject_real_time_hotest(){try{let res=miniapp_request("/subject_collection/subject_real_time_hotest/items",{});let lists=[];let arr=res.subject_collection_items||[];arr.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"暂无评分";let honnor=(item.honor_infos||[]).map(function(it){return it.title}).join("|");lists.append({vod_id:"msearch:"+TYPE,vod_name:item.title||"",vod_pic:item.pic.normal,vod_remarks:rating+" "+honnor})}});return lists}catch(e){print("发生了错误:"+e.message);return[]}}VODS=subject_real_time_hotest();print(VODS);', + // 手动调用解析请求json的url,此lazy不方便 + lazy:'', + // 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', + 一级:'', + 一级:'js:let d=[];let douban=input.split("douban=")[1].split("&")[0];let douban_api_host="http://api.douban.com/api/v2";let miniapp_apikey="0ac44ae016490db2204ce0a042db2916";const count=30;function miniapp_request(path,query){try{let url=douban_api_host+path;query.apikey=miniapp_apikey;fetch_params.headers=oheaders;url=buildUrl(url,query);let html=fetch(url,fetch_params);if(/request_error/.test(html)){print(html)}return JSON.parse(html)}catch(e){print("发生了错误:"+e.message);return{}}}function cate_filter(d,douban){douban=douban||"";try{let res={};if(MY_CATE==="interests"){if(douban){let status=MY_FL.status||"mark";let subtype_tag=MY_FL.subtype_tag||"";let year_tag=MY_FL.year_tag||"全部";let path="/user/"+douban+"/interests";res=miniapp_request(path,{type:"movie",status:status,subtype_tag:subtype_tag,year_tag:year_tag,start:(MY_PAGE-1)*count,count:count})}else{return{}}}else if(MY_CATE==="hot_gaia"){let sort=MY_FL.sort||"recommend";let area=MY_FL.area||"全部";let path="/movie/"+MY_CATE;res=miniapp_request(path,{area:area,sort:sort,start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE==="tv_hot"||MY_CATE==="show_hot"){let stype=MY_FL.type||MY_CATE;let path="/subject_collection/"+stype+"/items";res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE.startsWith("rank_list")){let id=MY_CATE==="rank_list_movie"?"movie_real_time_hotest":"tv_real_time_hotest";id=MY_FL.榜单||id;let path="/subject_collection/"+id+"/items";res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else{let path="/"+MY_CATE+"/recommend";let selected_categories;let tags;let sort;if(Object.keys(MY_FL).length>0){sort=MY_FL.sort||"T";tags=Object.values(MY_FL).join(",");if(MY_CATE==="movie"){selected_categories={"类型":MY_FL.类型||"","地区":MY_FL.地区||""}}else{selected_categories={"类型":MY_FL.类型||"","形式":MY_FL.类型?MY_FL.类型+"地区":"","地区":MY_FL.地区||""}}}else{sort="T";tags="";if(MY_CATE==="movie"){selected_categories={"类型":"","地区":""}}else{selected_categories={"类型":"","形式":"","地区":""}}}let params={tags:tags,sort:sort,refresh:0,selected_categories:stringify(selected_categories),start:(MY_PAGE-1)*count,count:count};res=miniapp_request(path,params)}let result={page:MY_PAGE,pagecount:Math.ceil(res.total/count),limit:count,total:res.total};let items=[];if(/^rank_list|tv_hot|show_hot/.test(MY_CATE)){items=res["subject_collection_items"]}else if(MY_CATE==="interests"){res["interests"].forEach(function(it){items.push(it.subject)})}else{items=res.items}let lists=[];items.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"";let rat_str=rating||"暂无评分";let title=item.title;let honor=item.honor_infos||[];let honor_str=honor.map(function(it){return it.title}).join("|");let vod_obj={vod_name:title!=="未知电影"?title:"暂不支持展示",vod_pic:item.pic.normal,vod_remarks:rat_str+" "+honor_str};let vod_obj_d={url:item.type+"$"+item.id,title:title!=="未知电影"?title:"暂不支持展示",pic_url:item.pic.normal,desc:rat_str+" "+honor_str};lists.push(vod_obj);d.push(vod_obj_d)}});result.list=lists;return result}catch(e){print(e.message)}return{}}let res=cate_filter(d,douban);setResult2(res);', + 二级:'', + 搜索:'', +} \ No newline at end of file diff --git a/zyplayer/drpy_gao/js/dydhhy.js b/zyplayer/drpy_gao/js/dydhhy.js new file mode 100644 index 0000000..c706e4f --- /dev/null +++ b/zyplayer/drpy_gao/js/dydhhy.js @@ -0,0 +1,142 @@ +var rule = { + title: 'dydhhy', + host: 'http://www.dydhhy.com', + homeUrl: '/', + url: '/tag/fyclass/page/fypage?', + filter_url: '{{fl.class}}', + filter: {}, + searchUrl: '/?s=**', + searchable: 2, + quickSearch: 1, + filterable: 0, + headers: { + 'User-Agent': 'MOBILE_UA', + 'Cookie': '' + }, + timeout: 5000, + class_name: '电视剧&电影&美剧&韩剧&日剧&英剧&2023&2022&2021', + class_url: 'tv&movie&美剧&韩剧&日剧&英剧&2023&2022&2021', + play_parse: true, + play_json: [{ + re: '*', + json: { + parse: 0, + jx: 0 + } + }], + lazy: '', + limit: 6, + 推荐: 'div.clear:gt(1):has(img);.entry-title&&Text;img&&src;;a&&href', + 一级: 'div.clear:gt(1):has(img);.entry-title&&Text;img&&src;;a&&href', + 二级: { + title: ".single-excerpt&&Text", + img: "img&&src", + desc: ".entry-date&&Text", + content: "p&&Text", + tabs: `js: pdfh = jsp.pdfh; + pdfa = jsp.pdfa; + pd = jsp.pd; +TABS=[] +let d = pdfa(html, 'fieldset p a'); +let tabsa = []; +let tabsq = []; +let tabsm = false; +let tabse = false; +d.forEach(function(it) { + let burl = pdfh(it, 'a&&href'); + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + tabsa.push("阿里雲盤"); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + tabsq.push("夸克網盤"); + }else if (burl.startsWith("magnet")){ + tabsm = true; + }else if (burl.startsWith("ed2k")){ + tabse = true; + } +}); +if (tabsm === true){ + TABS.push("磁力"); +} +if (tabse === true){ + TABS.push("電驢"); +} +if (false && tabsa.length + tabsq.length > 1){ + TABS.push("選擇右側綫路"); +} +let tmpIndex; +tmpIndex=1; +tabsa.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +tmpIndex=1; +tabsq.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +log('xzys TABS >>>>>>>>>>>>>>>>>>' + TABS);`, +lists: `js: log(TABS); +pdfh = jsp.pdfh; +pdfa = jsp.pdfa; +pd = jsp.pd; +LISTS = []; +let d = pdfa(html, 'fieldset p a'); +let lista = []; +let listq = []; +let listm = []; +let liste = []; +d.forEach(function(it){ + let burl = pdfh(it, 'a&&href'); + let title = pdfh(it, 'a&&Text'); + log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title); + log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl); + let loopresult = title + '$' + burl; + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = "push://" + burl; + } + loopresult = title + '$' + burl; + lista.push(loopresult); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = "push://" + burl; + } + loopresult = title + '$' + burl; + listq.push(loopresult); + }else if (burl.startsWith("magnet")){ + listm.push(loopresult); + }else if (burl.startsWith("ed2k")){ + liste.push(loopresult); + } +}); +if (listm.length>0){ + LISTS.push(listm); +} +if (liste.length>0){ + LISTS.push(liste); +} +if (false && lista.length + listq.length > 1){ + LISTS.push(["選擇右側綫路,或3秒後自動跳過$http://127.0.0.1:10079/delay/"]); +} +lista.forEach(function(it){ + LISTS.push([it]); +}); +listq.forEach(function(it){ + LISTS.push([it]); + +});`, + +}, 搜索: 'div.clear:gt(0):has(img);img&&alt;img&&data-src;;a&&href', +} diff --git a/zyplayer/drpy_gao/js/dygang.js b/zyplayer/drpy_gao/js/dygang.js new file mode 100644 index 0000000..89686ad --- /dev/null +++ b/zyplayer/drpy_gao/js/dygang.js @@ -0,0 +1,212 @@ +var rule = { + title:'电影港[磁]', + 编码:'gb2312', + 搜索编码:'gb2312', + host:'https://www.dygang.tv', + homeUrl:'/', + url: '/fyclass/index_fypage.htm?', + filter_url:'{{fl.class}}', + filter:{ + }, + searchUrl: '/e/search/index123.php#tempid=1&tbname=article&keyborad=**&show=title%2Csmalltext&Submit=%CB%D1%CB%F7;post', + searchable:2, + quickSearch:0, + filterable:0, + headers:{ + 'User-Agent': 'MOBILE_UA', + 'Referer': 'https://www.dygang.tv/' + }, + timeout:5000, + class_name:'最新电影&经典高清&国配电影&经典港片&国剧&日韩剧&美剧&综艺&动漫&纪录片&高清原盘&4K高清区&3D电影&电影专题', + class_url:'ys&bd&gy&gp&dsj&dsj1&yx&zy&dmq&jilupian&1080p&4K&3d&dyzt', + play_parse:true, + play_json:[{ + re:'*', + json:{ + parse:0, + jx:0 + } + }], + lazy:'', + limit:6, + 推荐:'div#tl tr:has(>td>table.border1>tbody>tr>td>a>img);table.border1 img&&alt;table.border1 img&&src;table:eq(2)&&Text;a&&href', + 一级:`js: + pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; + let d = []; + let turl = (MY_PAGE === 1)? '/' : '/index_'+ MY_PAGE + '.htm'; + input = rule.homeUrl + MY_CATE + turl; + let html = request(input); + let list = pdfa(html, 'tr:has(>td>table.border1)'); + list.forEach(it => { + let title = pdfh(it, 'table.border1 img&&alt'); + if (title!==""){ + d.push({ + title: title, + desc: pdfh(it, 'table:eq(1)&&Text'), + pic_url: pd(it, 'table.border1 img&&src', HOST), + url: pdfh(it, 'a&&href') + }); + } + }) + setResult(d); + `, + 二级:{ + title:"div.title a&&Text", + img:"#dede_content img&&src", + desc:"#dede_content&&Text", + content:"#dede_content&&Text", + tabs:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +TABS=[] +let d = pdfa(html, '#dede_content table tbody tr'); +let tabsa = []; +let tabsq = []; +let tabsm = false; +let tabse = false; +let tabm3u8 = []; +d.forEach(function(it) { + let burl = pd(it, 'a&&href',HOST); + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/"){ + tabsa.push("阿里雲盤"); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + tabsq.push("夸克網盤"); + }else if (burl.startsWith("magnet")){ + tabsm = true; + }else if (burl.startsWith("ed2k")){ + tabse = true; + } +}); +if (false){ +d = pdfa(html, 'div:has(>div#post_content) div.widget:has(>h3)'); +d.forEach(function(it) { + tabm3u8.push(pdfh(it, 'h3&&Text')); +}); +} +if (tabsm === true){ + TABS.push("磁力"); +} +if (tabse === true){ + TABS.push("電驢"); +} +if (false && tabsa.length + tabsq.length > 1){ + TABS.push("選擇右側綫路"); +} +let tmpIndex; +tmpIndex=1; +tabsa.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +tmpIndex=1; +tabsq.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +tabm3u8.forEach(function(it){ + TABS.push(it); +}); +log('dygang TABS >>>>>>>>>>>>>>>>>>' + TABS); +`, + lists:`js: +log(TABS); +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +LISTS = []; +let d = pdfa(html, '#dede_content table tbody tr'); +let lista = []; +let listq = []; +let listm = []; +let liste = []; +let listm3u8 = {}; +d.forEach(function(it){ + let burl = pd(it, 'a&&href',HOST); + let title = pdfh(it, 'a&&Text'); + log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title); + log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl); + let loopresult = title + '$' + burl; + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/"){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + lista.push(loopresult); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + listq.push(loopresult); + }else if (burl.startsWith("magnet")){ + listm.push(loopresult); + }else if (burl.startsWith("ed2k")){ + liste.push(loopresult); + } +}); +if (listm.length>0){ + LISTS.push(listm); +} +if (liste.length>0){ + LISTS.push(liste); +} +lista.forEach(function(it){ + LISTS.push([it]); +}); +listq.forEach(function(it){ + LISTS.push([it]); +}); +for ( const key in listm3u8 ){ + if (listm3u8.hasOwnProperty(key)){ + LISTS.push(listm3u8[key]); + } +}; +`, + + }, + 搜索:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +let params = 'tempid=1&tbname=article&keyboard=' + KEY + '&show=title%2Csmalltext&Submit=%CB%D1%CB%F7'; +let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); +let postData = { + method: "POST", + body: params +}; +delete(_fetch_params.headers['Content-Type']); +Object.assign(_fetch_params, postData); +log("dygang search postData>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params)); +let search_html = request( HOST + '/e/search/index123.php', _fetch_params, true); +//log("dygang search result>>>>>>>>>>>>>>>" + search_html); +let d=[]; +let dlist = pdfa(search_html, 'table.border1'); +dlist.forEach(function(it){ + let title = pdfh(it, 'img&&alt'); + if (searchObj.quick === true){ + if (false && title.includes(KEY)){ + title = KEY; + } + } + let img = pd(it, 'img&&src', HOST); + let content = pdfh(it, 'img&&alt'); + let desc = pdfh(it, 'img&&alt'); + let url = pd(it, 'a&&href', HOST); + d.push({ + title:title, + img:img, + content:content, + desc:desc, + url:url + }) +}); +setResult(d); +`, +} diff --git a/zyplayer/drpy_gao/js/funletu.js b/zyplayer/drpy_gao/js/funletu.js new file mode 100644 index 0000000..1772133 --- /dev/null +++ b/zyplayer/drpy_gao/js/funletu.js @@ -0,0 +1,86 @@ +var rule = { + title:'趣盘搜[夸]', + host:'https://v.funletu.com', + homeUrl:'/', + url: '/forum-fyclass-fypage.html?', + filter_url:'{{fl.class}}', + filter:{ + }, + searchUrl: 'json:/search#{"style":"get","datasrc":"search","query":{"id":"","datetime":"","commonid":1,"parmid":"","fileid":"","reportid":"","validid":"","searchtext":"**"},"page":{"pageSize":10,"pageIndex":1},"order":{"prop":"id","order":"desc"},"message":"请求资源列表数据"};postjson', + searchable:2, + quickSearch:0, + filterable:0, + headers:{ + 'User-Agent': PC_UA, + 'Accept': '*/*', + 'Referer': 'https://pan.funletu.com/' + }, + timeout:5000, + class_name:'', + class_url:'', + play_parse:true, + play_json:[{ + re:'*', + json:{ + parse:0, + jx:0 + } + }], + lazy:'', + limit:6, + 推荐:'', + 一级:'', + 二级:`js: +VOD.vod_play_from = "夸克網盤"; +VOD.vod_remarks = detailUrl; +VOD.vod_actor = "沒有二級,只有一級鏈接直接推送播放"; +VOD.vod_content = MY_URL; +VOD.vod_play_url = "夸克網盤$" + detailUrl; +`, + 搜索:`js: +let postJson = { + style:"get", + datasrc:"search", + query:{ + id:"", + datetime:"", + commonid:1, + parmid:"", + fileid:"", + reportid:"", + validid:"", + searchtext: KEY + }, + page:{ pageSize:20, pageIndex: MY_PAGE }, + order:{prop:"id",order:"desc"}, + message:"请求资源列表数据" +}; +let postData = { + method: "POST", + body: postJson +}; +log("funletu search postData1>>>>>>>>>>>>>>>" + JSON.stringify(postData)); +let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); +Object.assign(_fetch_params, postData); +log("funletu search postData>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params)); +let new_html=post(rule.homeUrl + 'search', _fetch_params); +//log("funletu search result>>>>>>>>>>>>>>>" + new_html); +let json=JSON.parse(new_html); +let d=[] +for(const it in json["data"]){ + if (json.data.hasOwnProperty(it)){ + log("funletu search it>>>>>>>>>>>>>>>" + JSON.stringify(json.data[it])); + if (json.data[it].valid === 0){ + d.push({ + title:json.data[it].title, + img:'', + content:json.data[it].updatetime, + desc:json.data[it].updatetime, + url:'push://'+json.data[it].url.split("?")[0] + }); + } + } +} +setResult(d); +`, +} diff --git a/zyplayer/drpy_gao/js/huya.js b/zyplayer/drpy_gao/js/huya.js new file mode 100644 index 0000000..5f0660b --- /dev/null +++ b/zyplayer/drpy_gao/js/huya.js @@ -0,0 +1,48 @@ +// 道长 drpy仓库 https://gitcode.net/qq_32394351/dr_py +// 道长 drpy安卓本地搭建说明 https://code.gitlink.org.cn/api/v1/repos/hjdhnx/dr_py/blob/master/%E5%AE%89%E5%8D%93%E6%9C%AC%E5%9C%B0%E6%90%AD%E5%BB%BA%E8%AF%B4%E6%98%8E.md +// 道长 drpy写源 模板规则说明 https://gitcode.net/qq_32394351/dr_py#%E6%A8%A1%E6%9D%BF%E8%A7%84%E5%88%99%E8%AF%B4%E6%98%8E +// 道长 drpy写源 套模模版 https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/js/%E6%A8%A1%E6%9D%BF.js +// 道长 drpy写源 相关视频教程 https://www.youtube.com/watch?v=AK7cN-fcwm4 +// 道长 drpy写源 写源教学视频 https://t.me/fongmi_offical/54080/63553 +// 海阔下载 https://haikuo.lanzoui.com/u/GoldRiver +// 影视TV 官方TG Drpy群 https://t.me/fongmi_offical/63689 +// 影视TV 官方TG 下载 https://t.me/fongmi_release + +var rule = { + title:'虎牙直播', + host:'https://www.huya.com', + homeUrl:'/cache.php?m=LiveList&do=getLiveListByPage&gameId=2168&tagAll=0&page=1',//用于"分类获取"和"推荐获取" + url:'/cache.php?m=LiveList&do=getLiveListByPage&gameId=fyfilter&tagAll=0&page=fypage', + class_name:'娱乐&网游&单机&手游', + class_url:'8&1&2&3', + detailUrl:'https://m.huya.com/fyid',//二级详情拼接链接(json格式用) + filterable: 1, + filter_url: '{{fl.area}}', + filter_def:{ + 8:{area:'2135'}, + 1:{area:'1'}, + 2:{area:'7601'}, + 3:{area:'2336'} + }, + filter:{ + "8":[{"key":"area","name":"分类","value":[{"n":"星秀","v":"1663"},{"n":"户外","v":"2165"},{"n":"一起看","v":"2135"},{"n":"二次元","v":"2633"},{"n":"虚拟偶像","v":"6055"},{"n":"旅游","v":"6791"},{"n":"娱乐天地","v":"100022"},{"n":"交友","v":"4079"},{"n":"放映厅","v":"6245"},{"n":"吃喝玩乐","v":"100044"},{"n":"组队","v":"5367"},{"n":"颜值","v":"2168"},{"n":"原创","v":"6861"},{"n":"体育","v":"2356"},{"n":"虎牙地方","v":"5123"},{"n":"美食","v":"2752"},{"n":"虎牙文化","v":"4089"},{"n":"音乐","v":"3793"},{"n":"趣分享","v":"5883"},{"n":"科技","v":"2408"},{"n":"直播购","v":"7759"},{"n":"派对","v":"7785"}] }], + "1":[{"key":"area","name":"分类","value":[{"n":"英雄联盟","v":"1"},{"n":"lol云顶之弈","v":"5485"},{"n":"守望先锋归来","v":"2174"},{"n":"超击突破","v":"7467"},{"n":"穿越火线","v":"4"},{"n":"地下城与勇士","v":"2"},{"n":"炉石传说","v":"393"},{"n":"魔兽世界","v":"8"},{"n":"DOTA2","v":"7"},{"n":"CS:GO","v":"862"},{"n":"CFHD","v":"6079"},{"n":"DOTA1","v":"6"},{"n":"QQ飞车","v":"9"},{"n":"问道","v":"107"},{"n":"魔兽争霸3","v":"4615"},{"n":"逆战","v":"135"},{"n":"梦三国","v":"489"},{"n":"坦克世界","v":"802"},{"n":"起凡:群雄逐鹿","v":"1612"},{"n":"神武4电脑版","v":"3227"},{"n":"堡垒之夜","v":"100117"},{"n":"英魂之刃","v":"1830"},{"n":"网游竞技","v":"100023"},{"n":"暴雪专区","v":"100043"},{"n":"射击综合游戏","v":"100141"},{"n":"军事游戏","v":"100133"},{"n":"御龙在天","v":"675"},{"n":"剑灵","v":"897"},{"n":"传奇","v":"983"},{"n":"永恒之塔","v":"446"},{"n":"彩虹岛Online","v":"683"},{"n":"传奇类游戏","v":"2060"},{"n":"逆水寒","v":"2952"},{"n":"炉石战棋","v":"5751"},{"n":"诛仙3","v":"1646"},{"n":"体育游戏","v":"100135"},{"n":"冒险岛","v":"2243"},{"n":"龙之谷","v":"15"},{"n":"生死狙击2","v":"6091"},{"n":"热血江湖","v":"387"},{"n":"星际战甲","v":"627"},{"n":"反恐精英Online","v":"1918"},{"n":"枪神纪","v":"496"},{"n":"QQ三国","v":"1090"},{"n":"战舰世界","v":"1947"},{"n":"刀剑英雄","v":"915"},{"n":"九阴真经","v":"1009"},{"n":"NBA2KOL系列","v":"3959"},{"n":"寻仙","v":"734"},{"n":"星际争霸","v":"5"},{"n":"荒野行动PC版","v":"3185"},{"n":"QQ华夏","v":"1878"},{"n":"征途","v":"2715"},{"n":"铁甲雄兵","v":"2765"},{"n":"跑跑卡丁车","v":"162"},{"n":"武林外传一世琴缘","v":"1661"},{"n":"斗战神","v":"591"},{"n":"剑网3","v":"900"},{"n":"天涯明月刀","v":"1219"},{"n":"暗黑破坏神","v":"1123"},{"n":"反恐行动online","v":"861"},{"n":"QQ自由幻想","v":"1862"},{"n":"FIFA Online系列","v":"100079"},{"n":"丝路传说2","v":"1026"},{"n":"生死狙击","v":"2471"},{"n":"失落的方舟","v":"3058"},{"n":"完美端游系列","v":"3034"},{"n":"征途2","v":"677"},{"n":"天翼决","v":"779"},{"n":"大话西游2","v":"2975"},{"n":"梦想世界3","v":"486"},{"n":"流放之路","v":"427"},{"n":"千年3","v":"878"},{"n":"激战2","v":"406"},{"n":"神泣","v":"2531"},{"n":"新倩女幽魂","v":"1579"},{"n":"大唐无双零","v":"1584"},{"n":"VALORANT","v":"5937"},{"n":"造梦西游OL","v":"6815"},{"n":"战地之王","v":"618"},{"n":"完美世界:诸神之战","v":"7217"},{"n":"诛仙世界","v":"7749"},{"n":"命运2","v":"2942"},{"n":"QQ仙侠传","v":"2291"},{"n":"战争雷霆","v":"624"},{"n":"天下","v":"1597"},{"n":"QQ炫舞","v":"2440"},{"n":"泡泡堂","v":"440"},{"n":"FIFA Online4","v":"3683"},{"n":"真·三国无双OL","v":"324"},{"n":"坦克大战","v":"4359"},{"n":"天谕","v":"1899"},{"n":"街头篮球","v":"206"},{"n":"赛尔号","v":"2755"},{"n":"劲舞团","v":"2420"},{"n":"战意","v":"2599"},{"n":"天命西游","v":"1086"},{"n":"新飞飞(FlyFF)","v":"1582"},{"n":"洛奇英雄传","v":"432"},{"n":"装甲战争","v":"2276"},{"n":"QQ幻想","v":"2419"},{"n":"蜀门","v":"4711"},{"n":"全球使命3","v":"2953"},{"n":"使命召唤:战区","v":"5911"},{"n":"疾风之刃","v":"334"},{"n":"星辰变","v":"553"},{"n":"极光世界 弑神传","v":"514"},{"n":"希望OL","v":"1161"},{"n":"诺亚传说","v":"190"},{"n":"剑侠世界","v":"903"},{"n":"起凡游戏三国争霸","v":"11"},{"n":"天堂","v":"1966"},{"n":"虎豹骑","v":"2670"},{"n":"超激斗梦境","v":"5691"},{"n":"火线精英","v":"2550"},{"n":"新剑侠情缘","v":"586"},{"n":"QQ幻想世界","v":"2897"},{"n":"轩辕传奇","v":"159"},{"n":"上古世纪","v":"1046"},{"n":"枪火重生","v":"6077"},{"n":"成吉思汗3","v":"641"},{"n":"FF14","v":"1111"},{"n":"蜀山:初章","v":"7761"},{"n":"笑傲江湖","v":"288"},{"n":"炫舞时代","v":"3353"},{"n":"千古风流","v":"7155"},{"n":"刀剑2","v":"1867"},{"n":"天书奇谈","v":"2225"},{"n":"鹿鼎记","v":"45"},{"n":"古剑奇谭OL","v":"1892"},{"n":"风暴英雄","v":"1450"},{"n":"使命召唤:黑色行动4","v":"4429"},{"n":"全球使命","v":"939"},{"n":"远征Online梦想版","v":"142"},{"n":"无限法则","v":"3189"},{"n":"灵域","v":"1655"},{"n":"破月勇者","v":"7799"},{"n":"兵王","v":"933"},{"n":"闪烁之光","v":"7455"},{"n":"舞侠OL","v":"242"},{"n":"龙珠战士z","v":"3523"},{"n":"QQ音速","v":"1085"},{"n":"项羽OL","v":"1893"},{"n":"梦幻龙族II","v":"1524"},{"n":"新挑战","v":"583"},{"n":"The cycle","v":"6127"},{"n":"300英雄","v":"1132"},{"n":"新惊天动地","v":"1828"},{"n":"封印者","v":"2294"},{"n":"奇迹世界2","v":"766"},{"n":"EVE Online","v":"1292"},{"n":"骑士3.0","v":"1297"},{"n":"黄易群侠传2","v":"42"},{"n":"DJMAX三部曲","v":"1122"},{"n":"黑色沙漠","v":"1877"},{"n":"神武2","v":"305"},{"n":"斗破苍穹","v":"590"},{"n":"热血江湖2","v":"386"},{"n":"夺宝传世","v":"772"},{"n":"口袋西游","v":"3383"},{"n":"六界仙尊","v":"1691"},{"n":"仙侠世界2","v":"2723"},{"n":"神佑释放","v":"7219"},{"n":"武魂","v":"1580"},{"n":"飞龙在天传奇","v":"77"},{"n":"蜀山剑侠传","v":"217"},{"n":"名将三国","v":"6741"},{"n":"魔侠传","v":"55"},{"n":"热血轩辕OL","v":"385"},{"n":"反恐精英Online 2","v":"1126"},{"n":"SD敢达Online","v":"1076"},{"n":"征程","v":"678"},{"n":"Overprime","v":"7695"},{"n":"反恐精英","v":"863"},{"n":"蘑菇战争2","v":"3339"},{"n":"神之浩劫","v":"454"},{"n":"玛雅战纪","v":"353"},{"n":"最后一炮","v":"1836"},{"n":"Project Zomboid","v":"1319"},{"n":"战争前线","v":"630"},{"n":"水浒无双","v":"448"},{"n":"荣誉空间","v":"225"},{"n":"圣斗士星矢ol","v":"1652"},{"n":"新水浒Q传","v":"580"},{"n":"神雕侠侣","v":"298"},{"n":"泰亚史诗","v":"2977"},{"n":"冒险小分队","v":"7347"},{"n":"九鼎传说","v":"1008"},{"n":"国战ONLINE","v":"1240"},{"n":"亿万指挥","v":"996"},{"n":"赤壁","v":"179"},{"n":"梦幻诛仙2","v":"488"},{"n":"新大话西游3","v":"2938"},{"n":"忍者村大战2","v":"2369"},{"n":"蜀山神话","v":"216"},{"n":"仙侠世界","v":"995"},{"n":"霸刀群侠传online","v":"91"},{"n":"极品飞车Online","v":"2563"},{"n":"冒险岛2","v":"2350"},{"n":"凡人修仙传Online","v":"920"},{"n":"艾尔之光","v":"240"},{"n":"斗仙","v":"592"},{"n":"F1赛车明星","v":"1112"},{"n":"新热血英豪","v":"578"},{"n":"倚天Ⅱ","v":"959"},{"n":"权御天下","v":"2514"},{"n":"大冲锋","v":"786"},{"n":"大航海时代OL","v":"782"},{"n":"成吉思汗怀旧版","v":"640"},{"n":"大多数","v":"7453"},{"n":"龙与地下城Online","v":"19"},{"n":"刀剑笑Online","v":"916"},{"n":"领地人生","v":"2282"},{"n":"曙光之城","v":"536"},{"n":"奇迹:传奇","v":"3917"},{"n":"聊斋Q传","v":"250"},{"n":"苍穹变","v":"1825"},{"n":"全面战争:竞技场","v":"5901"},{"n":"九界","v":"1010"},{"n":"007:传奇","v":"1135"},{"n":"天涯明月刀(韩服)","v":"3531"},{"n":"武魂2","v":"4975"},{"n":"使命召唤:现代战争","v":"5713"},{"n":"第九大陆","v":"286"}] }], + "2":[{"key":"area","name":"分类","value":[{"n":"Dread Hunger","v":"7601"},{"n":"天天吃鸡","v":"2793"},{"n":"永劫无间","v":"6219"},{"n":"主机游戏","v":"100032"},{"n":"我的世界","v":"1732"},{"n":"方舟","v":"1997"},{"n":"单机热游","v":"100002"},{"n":"互动点播","v":"5907"},{"n":"Apex英雄","v":"5011"},{"n":"俄罗斯钓鱼4","v":"5495"},{"n":"逃离塔科夫","v":"3493"},{"n":"部落:上升","v":"1318"},{"n":"怀旧游戏","v":"100125"},{"n":"恐鬼症","v":"6205"},{"n":"恐惧之间","v":"6679"},{"n":"饥荒","v":"74"},{"n":"怪物猎人物语","v":"7101"},{"n":"怪物猎人:崛起","v":"6479"},{"n":"欧洲卡车模拟","v":"475"},{"n":"荒野大镖客2","v":"4319"},{"n":"骑马与砍杀系列","v":"4783"},{"n":"纸人","v":"5257"},{"n":"糖豆人:终极淘汰赛","v":"6083"},{"n":"DayZ独立版","v":"1125"},{"n":"SCUM","v":"4245"},{"n":"育碧游戏","v":"100139"},{"n":"怪物猎人世界","v":"3519"},{"n":"艾尔登法环","v":"5801"},{"n":"港诡实录","v":"5853"},{"n":"禁闭求生","v":"6065"},{"n":"十三月","v":"7823"},{"n":"星球大战系列","v":"554"},{"n":"甜蜜之家","v":"6739"},{"n":"战地5","v":"4371"},{"n":"互动剧游","v":"6919"},{"n":"只狼:影逝二度","v":"4505"},{"n":"洛克王国","v":"2864"},{"n":"使命召唤系列","v":"100137"},{"n":"帝国神话","v":"6821"},{"n":"三国志","v":"2270"},{"n":"极限竞速:地平线","v":"2634"},{"n":"都市:天际线","v":"2201"},{"n":"神秘海域4","v":"2486"},{"n":"帝国时代4","v":"4835"},{"n":"全境封锁","v":"2342"},{"n":"鬼谷八荒","v":"6571"},{"n":"流放者柯南","v":"2772"},{"n":"双人成行","v":"6737"},{"n":"战术小队","v":"2360"},{"n":"FIFA 23","v":"7789"},{"n":"刺客信条","v":"1962"},{"n":"Among Us","v":"6163"},{"n":"盗贼之海","v":"3641"},{"n":"仁王2","v":"5795"},{"n":"海底大作战","v":"3101"},{"n":"幽灵线:东京","v":"7669"},{"n":"奥拉星","v":"2846"},{"n":"摔跤城大乱斗","v":"7773"},{"n":"任天堂专区","v":"100087"},{"n":"漫漫长夜","v":"2303"},{"n":"奥奇传说","v":"2848"},{"n":"其他单机","v":"3069"},{"n":"轩辕剑7","v":"6199"},{"n":"罗布乐思","v":"5771"},{"n":"全面战争:三国","v":"3004"},{"n":"仙剑奇侠传七","v":"6509"},{"n":"瘟疫传说:安魂曲","v":"7811"},{"n":"灵魂筹码","v":"4059"},{"n":"全面战争","v":"3521"},{"n":"缺氧","v":"2884"},{"n":"九霄缳神记","v":"5941"},{"n":"死亡之夜","v":"6129"},{"n":"归家异途","v":"2949"},{"n":"真三国无双","v":"1599"},{"n":"人类一败涂地","v":"3289"},{"n":"星露谷物语","v":"2443"},{"n":"神秘海域","v":"2108"},{"n":"英雄连","v":"232"},{"n":"岛","v":"3019"},{"n":"Factorio","v":"2750"},{"n":"散兵坑","v":"3005"},{"n":"石油骚动","v":"2585"},{"n":"Party Animals","v":"6165"},{"n":"环世界","v":"4865"},{"n":"消逝的光芒2","v":"7581"},{"n":"女神异闻录","v":"3981"},{"n":"猎人:荒野的召唤","v":"2906"},{"n":"魔法门之英雄无敌系列","v":"2096"},{"n":"对马岛之魂","v":"6039"},{"n":"无尽传奇","v":"4969"},{"n":"帝国时代系列","v":"708"},{"n":"火影忍者:究极风暴系列","v":"2424"},{"n":"暖雪","v":"7539"},{"n":"武装突袭","v":"465"},{"n":"宝可梦:剑盾","v":"5715"},{"n":"雷曼:传奇","v":"96"},{"n":"无主之地3","v":"4713"},{"n":"鬼泣","v":"3673"},{"n":"霓虹深渊","v":"5743"},{"n":"精灵宝可梦","v":"4061"},{"n":"乞丐模拟器","v":"3491"},{"n":"杀戮尖塔","v":"3601"},{"n":"最终幻想系列","v":"2454"},{"n":"艾兰岛","v":"3855"},{"n":"渡神记","v":"6231"},{"n":"看门狗:军团","v":"6155"},{"n":"辐射3","v":"153"},{"n":"戴森球计划","v":"6523"},{"n":"黑暗领域2","v":"29"},{"n":"音乐游戏","v":"2761"},{"n":"马里奥专区","v":"2120"},{"n":"哈迪斯","v":"6153"},{"n":"流星蝴蝶剑","v":"426"},{"n":"泰坦陨落","v":"1446"},{"n":"模拟农场","v":"2344"},{"n":"人间地狱","v":"5429"},{"n":"星际公民","v":"2371"},{"n":"奥日与黑暗森林","v":"1946"},{"n":"仙剑奇侠传四","v":"1659"},{"n":"微软模拟飞行2020","v":"6099"},{"n":"电竞传奇","v":"4489"},{"n":"四海兄弟","v":"5995"},{"n":"英灵神殿","v":"6609"},{"n":"旋转轮胎","v":"2984"},{"n":"太荒初境","v":"7685"},{"n":"永恒轮回","v":"6089"},{"n":"哥谭骑士","v":"7815"},{"n":"极品飞车系列","v":"1307"},{"n":"深海迷航","v":"3589"},{"n":"幽灵行动:荒野","v":"2794"},{"n":"足球小将","v":"6103"},{"n":"蔑视","v":"7819"},{"n":"仙剑奇侠传二","v":"1860"},{"n":"塞尔达传说:荒野之息","v":"2924"},{"n":"攻城掠地","v":"1737"},{"n":"X-plane","v":"2144"},{"n":"麋鹿猎人","v":"44"},{"n":"乐高大电影:游戏版","v":"1439"},{"n":"了不起的修仙模拟器","v":"4867"},{"n":"恶魔之魂","v":"6151"},{"n":"足球之王","v":"164"},{"n":"吸血鬼幸存者","v":"7621"},{"n":"Stray","v":"7745"},{"n":"黎明传说","v":"39"},{"n":"骷髅女孩","v":"67"},{"n":"齐格弗瑞克","v":"21"},{"n":"深海搁浅","v":"3607"},{"n":"深岩银河:下潜","v":"3647"},{"n":"中世纪2:全面战争","v":"2901"},{"n":"美丽水世界","v":"2365"},{"n":"马里奥赛车8","v":"5947"},{"n":"赛车计划2","v":"3381"},{"n":"斩妖行","v":"6105"},{"n":"重返废土","v":"121"},{"n":"复仇者联盟","v":"6121"},{"n":"巴士模拟2","v":"1376"},{"n":"鬼武者3","v":"61"},{"n":"幻想黎明:王国战争","v":"699"},{"n":"失落城堡","v":"2667"},{"n":"雷狼","v":"94"},{"n":"暗黑血统2","v":"539"},{"n":"圣歌","v":"4657"},{"n":"战斗方块剧场","v":"1856"},{"n":"夜族崛起","v":"7717"},{"n":"维京传奇","v":"265"},{"n":"龙与地下城:秘影历代记HD","v":"17"},{"n":"太空工程师","v":"2219"},{"n":"神界2","v":"303"},{"n":"伤害世界","v":"2337"},{"n":"这是我的战争","v":"1885"},{"n":"精灵与萤火意志","v":"5895"},{"n":"骑士物语","v":"70"},{"n":"模拟人生4","v":"6607"},{"n":"进化之地","v":"145"},{"n":"太吾绘卷","v":"4357"},{"n":"恐怖黎明","v":"3435"},{"n":"维京兄弟","v":"264"},{"n":"潜行者 : 切尔诺贝利的阴影","v":"408"},{"n":"龙与地下城:匕首谷","v":"18"},{"n":"开源模拟火车","v":"3403"},{"n":"瑞奇与叮当","v":"2455"},{"n":"精灵宝可梦Let's Go","v":"4375"},{"n":"街机游戏","v":"5999"},{"n":"生化奇兵2","v":"343"},{"n":"古剑奇谭3","v":"4569"},{"n":"模拟火车世界:csx重载货运","v":"2994"},{"n":"最终幻想7:重制版","v":"5809"},{"n":"鬼火: 救赎","v":"57"},{"n":"小缇娜的奇幻之地","v":"7647"},{"n":"野兽传奇","v":"120"},{"n":"PS4","v":"1810"},{"n":"剑士","v":"1467"},{"n":"幽灵行动:断点","v":"5649"},{"n":"霸王2","v":"90"},{"n":"最终幻想:起源","v":"7653"},{"n":"飚车世界","v":"80"},{"n":"紫塞秋风","v":"6045"},{"n":"僵尸(Zombi)","v":"2385"},{"n":"孤岛惊魂5","v":"3777"},{"n":"飙酷车神","v":"3975"},{"n":"狂热运输","v":"2935"},{"n":"模拟建筑","v":"2766"},{"n":"女鬼桥:开魂路","v":"7793"},{"n":"死亡搁浅","v":"5695"},{"n":"文明6","v":"2650"},{"n":"塞尔达传说 黄昏公主","v":"2427"},{"n":"文明5","v":"593"},{"n":"辐射76","v":"4365"},{"n":"草根传奇","v":"230"},{"n":"战地风云2042","v":"7311"},{"n":"刺客信条:编年史三部曲","v":"4703"},{"n":"重力反转","v":"122"},{"n":"美国末日","v":"1233"},{"n":"彩虹六号:异种","v":"7549"},{"n":"瘟疫传说:无罪","v":"5345"},{"n":"Cube","v":"51"},{"n":"胡闹厨房","v":"4217"}] }], + "3":[{"key":"area","name":"分类","value":[{"n":"王者荣耀","v":"2336"},{"n":"和平精英","v":"3203"},{"n":"暗区突围","v":"7209"},{"n":"逆水寒手游","v":"7725"},{"n":"环形战争","v":"7555"},{"n":"英雄联盟手游","v":"6203"},{"n":"金铲铲之战","v":"7185"},{"n":"小小蚁国","v":"7803"},{"n":"英雄联盟电竞经理","v":"7177"},{"n":"综合手游","v":"100029"},{"n":"新游广场","v":"100052"},{"n":"CF手游","v":"2413"},{"n":"QQ飞车手游","v":"2928"},{"n":"火影忍者手游","v":"2429"},{"n":"欢乐麻将","v":"1751"},{"n":"中国象棋","v":"1671"},{"n":"三国杀","v":"1669"},{"n":"天天狼人","v":"2774"},{"n":"欢乐斗地主","v":"1749"},{"n":"问道手游","v":"2477"},{"n":"部落冲突","v":"1797"},{"n":"皇室战争","v":"2439"},{"n":"忍者必须死3","v":"4041"},{"n":"手游休闲","v":"100004"},{"n":"原神","v":"5489"},{"n":"动作游戏","v":"100197"},{"n":"MMORPG","v":"100273"},{"n":"棋牌桌游","v":"100036"},{"n":"天龙八部手游","v":"2852"},{"n":"王者模拟战","v":"5699"},{"n":"战争冲突","v":"7449"},{"n":"虎牙领主争霸","v":"7529"},{"n":"一起玩","v":"6613"},{"n":"明日之后","v":"3483"},{"n":"二次元手游","v":"100091"},{"n":"COD手游","v":"4769"},{"n":"狼人杀手游","v":"100049"},{"n":"神武4手游","v":"3135"},{"n":"暗黑破坏神:不朽","v":"6385"},{"n":"跑跑卡丁车手游","v":"2620"},{"n":"球球大作战","v":"2411"},{"n":"第五人格","v":"3115"},{"n":"天涯明月刀手游","v":"5115"},{"n":"幻塔","v":"6437"},{"n":"英雄杀","v":"2688"},{"n":"DNF手游","v":"4921"},{"n":"狼人杀","v":"2785"},{"n":"阴阳师","v":"2598"},{"n":"奶块","v":"2775"},{"n":"御龙在天手游","v":"2568"},{"n":"三国志战略版","v":"5619"},{"n":"传奇手游","v":"3130"},{"n":"迷你世界","v":"2683"},{"n":"斗罗大陆:魂师对决","v":"6745"},{"n":"巅峰战舰","v":"2502"},{"n":"SKY光遇","v":"3719"},{"n":"火炬之光:无限","v":"6399"},{"n":"多乐棋牌","v":"6209"},{"n":"最强NBA","v":"2988"},{"n":"荒野乱斗","v":"4613"},{"n":"崩坏3","v":"2639"},{"n":"天天吃鸡手机版","v":"4341"},{"n":"时空猎人3","v":"6411"},{"n":"天天象棋","v":"4997"},{"n":"妄想山海","v":"6007"},{"n":"英魂之刃口袋版","v":"2760"},{"n":"JJ棋牌","v":"3841"},{"n":"蛋仔派对","v":"6909"},{"n":"极无双2","v":"7825"},{"n":"天谕手游","v":"5925"},{"n":"完美世界手游","v":"4237"},{"n":"云上城之歌","v":"5977"},{"n":"创造与魔法","v":"2931"},{"n":"逃跑吧!少年","v":"4137"},{"n":"精灵盛典:黎明","v":"6123"},{"n":"斗破苍穹手游","v":"4337"},{"n":"诛仙手游","v":"2647"},{"n":"航海王:燃烧意志","v":"3943"},{"n":"武侠乂手游","v":"4929"},{"n":"哈利波特:魔法觉醒","v":"5835"},{"n":"奇迹MU:觉醒","v":"3116"},{"n":"新笑傲江湖","v":"5669"},{"n":"多多自走棋","v":"5133"},{"n":"香肠派对","v":"3639"},{"n":"三国战纪2","v":"6049"},{"n":"王牌竞速","v":"6463"},{"n":"率土之滨","v":"2691"},{"n":"三国战纪","v":"6047"},{"n":"倩女幽魂手游","v":"2503"},{"n":"永恒纪元:戒","v":"2646"},{"n":"新剑侠情缘手游","v":"6259"},{"n":"北凉悍刀行","v":"7781"},{"n":"狼人杀官方","v":"3679"},{"n":"FIFA足球世界","v":"3873"},{"n":"征途2手游","v":"2811"},{"n":"航海王热血航线","v":"6181"},{"n":"弹弹堂手游","v":"2857"},{"n":"万国觉醒","v":"6159"},{"n":"深空之眼","v":"6877"},{"n":"全民枪战2","v":"3027"},{"n":"无尽的拉格朗日","v":"6809"},{"n":"天天酷跑","v":"1715"},{"n":"方舟手游","v":"4035"},{"n":"魔力宝贝","v":"2891"},{"n":"无神之界","v":"6767"},{"n":"决战平安京","v":"3064"},{"n":"火影忍者OL","v":"3901"},{"n":"剑侠世界3","v":"7183"},{"n":"寻仙手游","v":"2979"},{"n":"拳皇命运","v":"3379"},{"n":"指尖四川麻将","v":"7215"},{"n":"一拳超人正义执行","v":"6951"},{"n":"梦幻新诛仙","v":"5975"},{"n":"不良人3","v":"5891"},{"n":"王牌战争:文明重启","v":"5479"},{"n":"Badlanders","v":"6507"},{"n":"九灵神域","v":"7719"},{"n":"植物大战僵尸","v":"485"},{"n":"龙之谷2手游","v":"2736"},{"n":"绝世仙王","v":"6619"},{"n":"海岛奇兵","v":"2624"},{"n":"明日方舟","v":"4925"},{"n":"红警OL","v":"4413"},{"n":"风云","v":"3061"},{"n":"庆余年手游","v":"6939"},{"n":"真三国无双霸","v":"6071"},{"n":"单机手游","v":"2777"},{"n":"轩辕传奇手游","v":"2927"},{"n":"军棋","v":"2561"},{"n":"征途手游","v":"2556"},{"n":"元气骑士","v":"4287"},{"n":"剑灵:革命","v":"4545"},{"n":"一念逍遥","v":"6419"},{"n":"热血江湖手游","v":"2817"},{"n":"混沌起源","v":"5985"},{"n":"猎魂觉醒","v":"3071"},{"n":"我叫MT4","v":"4087"},{"n":"黑色沙漠手游","v":"7287"},{"n":"虎牙球球","v":"7451"},{"n":"青云诀2","v":"6009"},{"n":"Lost Light(萤火突击国际服)","v":"6859"},{"n":"一梦江湖","v":"3082"},{"n":"黑暗与光明手游","v":"6635"},{"n":"游戏王:决斗链接","v":"4451"},{"n":"鸿图之下","v":"6027"},{"n":"重返帝国","v":"6955"},{"n":"新斗罗大陆","v":"6657"},{"n":"欢乐升级","v":"3925"},{"n":"口袋觉醒","v":"5953"},{"n":"少年三国志2","v":"6125"},{"n":"狩猎时刻","v":"6543"},{"n":"坦克世界闪击战","v":"4977"},{"n":"QQ炫舞手游","v":"2991"},{"n":"流星群侠传","v":"3927"},{"n":"黎明觉醒","v":"6131"},{"n":"雀魂麻将","v":"7107"},{"n":"灌篮高手正版授权手游","v":"5399"},{"n":"拳皇98终极之战OL","v":"2687"},{"n":"梦幻诛仙手游","v":"2672"},{"n":"漫威超级战争","v":"6881"},{"n":"斗罗大陆","v":"6119"},{"n":"荒野行动","v":"3084"},{"n":"实况足球","v":"3741"},{"n":"仙境传说RO","v":"2675"},{"n":"龙与家园","v":"6863"},{"n":"机动都市阿尔法","v":"5411"},{"n":"武林外传手游","v":"3331"},{"n":"一拳超人:最强之男","v":"4629"},{"n":"太古神王2","v":"6649"},{"n":"天堂 W","v":"7291"},{"n":"时空召唤","v":"2551"},{"n":"斗罗大陆-斗神再临","v":"6631"},{"n":"重生细胞","v":"6561"},{"n":"腾讯桌球","v":"2444"},{"n":"影之刃3","v":"6251"},{"n":"永劫无间手游","v":"7579"},{"n":"龙武手游","v":"5219"},{"n":"APEX手游","v":"7037"},{"n":"大话西游手游","v":"2626"},{"n":"绝区零","v":"7711"},{"n":"魔力宝贝手机版","v":"3062"},{"n":"奥拉星手游","v":"5677"},{"n":"狂野飙车9:竞速传奇","v":"5451"},{"n":"蚁族崛起","v":"7019"},{"n":"风云岛行动","v":"4695"},{"n":"魔渊之刃","v":"5837"},{"n":"无期迷途","v":"7127"},{"n":"荣耀新三国","v":"6943"},{"n":"少年三国志","v":"2627"},{"n":"镇魂街:天生为王","v":"6557"},{"n":"蛇蛇争霸","v":"2680"},{"n":"龙珠觉醒","v":"3087"},{"n":"自由之战2","v":"2830"},{"n":"梦三国手游","v":"2615"},{"n":"虎牙吃鸡","v":"7465"},{"n":"玄中记","v":"6949"},{"n":"幻世九歌","v":"7199"},{"n":"仙魔决","v":"1674"},{"n":"新盗墓笔记","v":"7093"},{"n":"未来之役","v":"6831"},{"n":"月圆之夜","v":"4339"},{"n":"决斗之城","v":"2868"},{"n":"时空猎人","v":"1742"},{"n":"奇葩战斗家","v":"4313"},{"n":"球球英雄","v":"7027"},{"n":"逆战手游","v":"7575"},{"n":"绿茵信仰","v":"7017"},{"n":"泰拉瑞亚手游","v":"7059"},{"n":"摩尔庄园","v":"5981"},{"n":"剑网1:归来","v":"7361"},{"n":"QQ华夏手游","v":"3743"},{"n":"热血街篮","v":"5859"},{"n":"剑与家园","v":"2838"},{"n":"镇魔曲手游","v":"2763"},{"n":"三国群英传手游","v":"2656"},{"n":"绿色征途","v":"4227"},{"n":"剑侠情缘手游","v":"2621"},{"n":"龙之国物语","v":"7675"},{"n":"魔力宝贝:旅人","v":"7573"},{"n":"刀塔传奇","v":"1694"},{"n":"秦时明月2","v":"1784"},{"n":"魂斗罗:归来","v":"2824"},{"n":"EVE星战前夜:无烬星河","v":"5813"},{"n":"圣斗士星矢(腾讯)","v":"2521"},{"n":"我的勇者","v":"5637"},{"n":"异侠传:道消魔长","v":"7619"},{"n":"饭狼","v":"2957"},{"n":"文明与征服","v":"7071"},{"n":"战魂铭人","v":"6505"},{"n":"重写三国志","v":"7795"},{"n":"一剑斩仙","v":"6843"},{"n":"魔力宝贝觉醒","v":"7427"},{"n":"仙战","v":"1673"},{"n":"盾之勇者成名录手游","v":"7087"},{"n":"仙剑Q传","v":"1672"},{"n":"斗破仙途","v":"1739"},{"n":"龙族幻想","v":"4649"},{"n":"乱世王者","v":"2930"},{"n":"我在江湖之神魔道","v":"7699"},{"n":"新游推荐","v":"3160"},{"n":"剑侠世界2手游","v":"3150"},{"n":"黎明之光手游","v":"2649"},{"n":"异能都市","v":"7511"},{"n":"米加小镇","v":"7269"},{"n":"一起来捉妖","v":"4183"},{"n":"神雕侠侣手游","v":"1781"},{"n":"乱世逐鹿","v":"7015"},{"n":"土豆英雄","v":"6515"},{"n":"另一个伊甸: 超越时空的猫","v":"6667"},{"n":"剑网3:指尖江湖","v":"3885"},{"n":"造梦无双","v":"6423"},{"n":"梦幻模拟战","v":"3481"},{"n":"崩坏:星穹铁道","v":"7349"},{"n":"逍遥情缘","v":"6247"},{"n":"非人学园","v":"4045"},{"n":"战塔英雄","v":"3657"},{"n":"探灵","v":"5253"},{"n":"自由幻想手游","v":"4015"},{"n":"猫和老鼠","v":"2758"},{"n":"冰原守卫者","v":"7195"},{"n":"宝可梦大探险","v":"4065"},{"n":"全球行动","v":"5005"},{"n":"枪火重生手游","v":"7631"},{"n":"鬼泣-巅峰之战","v":"5779"},{"n":"航海王:启航","v":"2648"},{"n":"传奇天下","v":"6927"},{"n":"剑灵2","v":"7223"},{"n":"众神之战","v":"1675"},{"n":"警匪杀","v":"7191"},{"n":"我叫剑神OL","v":"1731"},{"n":"口袋妖怪","v":"2541"},{"n":"全民斩仙","v":"1685"},{"n":"战春秋","v":"3937"},{"n":"去吧皮卡丘","v":"1697"},{"n":"剑荡八荒","v":"3109"},{"n":"天堂2:血盟","v":"2609"},{"n":"浮生为卿歌","v":"5935"},{"n":"风暴魔域","v":"4759"},{"n":"三国志:幻想大陆","v":"6029"},{"n":"古剑奇谭2手游","v":"3105"},{"n":"仙剑奇侠传OL手游","v":"2815"},{"n":"梦幻家园","v":"6323"},{"n":"暗黑血统2手游","v":"3107"},{"n":"诺亚之心","v":"6405"},{"n":"赤壁之战OL","v":"1968"},{"n":"星际战甲手游","v":"7205"},{"n":"我欲封天","v":"2449"},{"n":"提灯与地下城","v":"6547"},{"n":"饥荒:新家","v":"6491"},{"n":"荣耀大天使","v":"6477"},{"n":"山海经之魔蛙传说","v":"6059"},{"n":"极无双","v":"2702"},{"n":"太空杀","v":"6213"},{"n":"元素方尖","v":"7657"},{"n":"傲世云霄","v":"4103"},{"n":"一号军团","v":"4401"},{"n":"剑与远征手游","v":"5755"},{"n":"蜀山奇缘","v":"1794"},{"n":"齿轮杰克","v":"20"},{"n":"斗斗堂","v":"7133"},{"n":"神将三国","v":"6621"},{"n":"斗罗大陆2:绝世唐门","v":"6581"},{"n":"奇迹:最强者","v":"3215"},{"n":"热血英雄","v":"1764"},{"n":"坎公骑冠剑","v":"6641"},{"n":"愤怒的小鸟:星战版","v":"642"},{"n":"钓鱼冒险岛","v":"5263"},{"n":"战斗吧剑灵","v":"2450"},{"n":"新天龙八部手游","v":"6945"},{"n":"末日远征","v":"4335"},{"n":"奥比岛:梦想国度","v":"6871"},{"n":"宝石研物语:伊恩之石","v":"7253"},{"n":"猫之城","v":"6497"},{"n":"古荒遗迹","v":"6435"},{"n":"阴阳师:百闻牌","v":"5019"},{"n":"烈火一刀","v":"2389"},{"n":"原始征途","v":"7713"},{"n":"动物派对手游","v":"7047"},{"n":"皇帝成长计划2","v":"6755"},{"n":"奔跑吧兄弟5跑男小镇","v":"2809"},{"n":"麻将来了","v":"3515"},{"n":"全民水浒","v":"1687"}] }] + }, + searchUrl:'https://search.cdn.huya.com/?m=Search&do=getSearchContent&q=**&uid=0&v=4&typ=-5&livestate=0&rows=40&start=0', + searchable:2, + quickSearch:0, + headers:{ + 'User-Agent':'MOBILE_UA' + }, + timeout:5000, + limit:8, + play_parse:true, + // lazy:"js:let rid=input.match(/\\/(\\d+)/)[1];log(rid);let purl=JSON.parse(request('https://mp.huya.com/cache.php?m=Live&do=profileRoom&roomid='+rid)).data.stream.baseSteamInfoList[0].sStreamName;log(purl);let rurl='http://txtest-xp2p.p2p.huya.com/src/'+purl+'.xs?ratio=4000';input={jx:0,url:rurl,parse:0}", + lazy:"js:let rid=input.match(/\\/(\\d+)/)[1];function getRealUrl(live_url){let[i,b]=live_url.split('?');let r=i.split('/').pop();let s=r.replace(/\.(flv|m3u8)/,'');let c_tmp=b.split('&').filter(n=>n);let n={};let c_tmp2=[];c_tmp.forEach(function(tmp,index){if(index<3){n[tmp.split('=')[0]]=tmp.split('=')[1]}else{c_tmp2.push(tmp)}});let tmp2=c_tmp2.join('&');n[tmp2.split('=')[0]]=tmp2.split('=')[1];let fm=decodeURIComponent(n.fm).split('&')[0];let u=base64Decode(fm);let p=u.split('_')[0];let f=new Date().getTime()+'0000';let ll=n.wsTime;let t='0';let h=[p,t,s,f,ll].join('_');let m=md5(h);return(i+'?wsSecret='+m+'&wsTime='+ll+'&u='+t+'&seqid='+f+'&'+c_tmp2.pop()).replace('hls','flv').replace('m3u8','flv')}let purl=JSON.parse(request('https://mp.huya.com/cache.php?m=Live&do=profileRoom&roomid='+rid)).data.stream.flv.multiLine[0].url;input={jx:0,url:getRealUrl(purl),parse:0,header:JSON.stringify({'user-agent':'Mozilla/5.0'})}", + 推荐:'*', + 一级:'json:data.datas;introduction;screenshot;nick;profileRoom', + 二级:'*', + 搜索:'json:response.3.docs;game_roomName;game_screenshot;game_nick;room_id', +} \ No newline at end of file diff --git "a/zyplayer/drpy_gao/js/i275\345\220\254\344\271\246.js" "b/zyplayer/drpy_gao/js/i275\345\220\254\344\271\246.js" new file mode 100644 index 0000000..286d84f --- /dev/null +++ "b/zyplayer/drpy_gao/js/i275\345\220\254\344\271\246.js" @@ -0,0 +1,32 @@ +var rule = { + title: 'i275听书', + host: 'https://m.ting275.com', + // url: '/category/fyclass/2.html?page=fypage', + url:'/category/fyclass/fyfilter/fypage.html', + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.by}}', + filter:{"6":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"7":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"8":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"9":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"10":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"11":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"12":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"13":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"14":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"15":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"49":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"50":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}],"51":[{"key":"by","name":"排序","value":[{"n":"更新","v":"2"},{"n":"人气","v":"3"}]}]}, + filter_def:{6:{by:'2'},7:{by:'2'},8:{by:'2'},9:{by:'2'},10:{by:'2'},11:{by:'2'},12:{by:'2'},13:{by:'2'},14:{by:'2'},15:{by:'2'},49:{by:'2'},50:{by:'2'},51:{by:'2'}}, + searchUrl: '/pc/index/search.html?keyword=**&page=fypage', + searchable: 2, + quickSearch: 0, + headers:{'User-Agent':'MOBILE_UA'}, + class_name:'玄幻奇幻&都市言情&宫斗女频&官场商战&武侠仙侠&刑侦推理&探险科幻&重生穿越&恐怖惊悚&文学历史&两性情感&网游竞技&相声评书', + class_url:'6&7&8&9&10&11&12&13&14&15&49&50&51', + play_parse:true, + lazy:'', + limit:6, + 推荐:'*', + // 一级:'.list-wrapper&&.item-link;h2--span&&Text;img&&data-cfsrc;.status&&Text;a&&href', + 一级:'.list-wrapper&&.item-link;h2--span&&Text;img&&src;.status&&Text;a&&href', + 二级:{ + "title":".book-title&&Text;.text:eq(0)&&Text", + // "img":".img&&data-cfsrc", + "img":".img&&src", + "desc":".update-time&&Text;;;.text:eq(1)&&Text;.text:eq(2)&&Text", + "content":".book-intro&&Text", + "tabs":".operate-bar&&.total-num", + "lists":".book-list:eq(#id)&&.list-item" + }, + 搜索:'*', +} \ No newline at end of file diff --git "a/zyplayer/drpy_gao/js/if101[\351\243\236].js" "b/zyplayer/drpy_gao/js/if101[\351\243\236].js" new file mode 100644 index 0000000..a28de4c --- /dev/null +++ "b/zyplayer/drpy_gao/js/if101[\351\243\236].js" @@ -0,0 +1,67 @@ +var rule={ + title:'if101[飞]', + // host:'https://olevod.live', + host:'https://olevod.io', + homeUrl:'/index.php/label/rankweek.html', // 人气排行榜周榜 + url:'/index.php/vod/show/id/fyfilter.html', + filterable:1,//是否启用分类筛选, + filter_url:'{{fl.cateId}}{{fl.area}}{{fl.by or "/by/time"}}{{fl.class}}{{fl.lang}}{{fl.letter}}/page/fypage{{fl.year}}', + filter: { + "1":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"1"},{"n":"冒险","v":"6"},{"n":"剧情","v":"7"},{"n":"动作","v":"8"},{"n":"动画电影","v":"9"},{"n":"同性","v":"10"},{"n":"喜剧","v":"11"},{"n":"奇幻","v":"12"},{"n":"恐怖","v":"20"},{"n":"悬疑","v":"21"},{"n":"惊悚","v":"22"},{"n":"战争","v":"23"},{"n":"歌舞","v":"24"},{"n":"灾难","v":"25"},{"n":"爱情","v":"26"},{"n":"犯罪","v":"27"},{"n":"科幻","v":"28"},{"n":"经典","v":"29"},{"n":"网络电影","v":"30"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"欧美","v":"/area/欧美"},{"n":"韩国","v":"/area/韩国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + "2":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"2"},{"n":"欧美剧","v":"13"},{"n":"日剧","v":"14"},{"n":"韩剧","v":"15"},{"n":"国产剧","v":"16"},{"n":"泰剧","v":"31"},{"n":"港剧","v":"32"},{"n":"台剧","v":"33"},{"n":"新马剧","v":"34"},{"n":"其它剧","v":"35"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"日本","v":"/area/日本"},{"n":"韩国","v":"/area/韩国"},{"n":"欧美","v":"/area/欧美"},{"n":"泰国","v":"/area/泰国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + "3":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"3"},{"n":"欧美动漫","v":"36"},{"n":"日本动漫","v":"37"},{"n":"韩国动漫","v":"38"},{"n":"国产动漫","v":"39"},{"n":"新马泰动漫","v":"40"},{"n":"港台动漫","v":"41"},{"n":"其他动漫","v":"42"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"日本","v":"/area/日本"},{"n":"韩国","v":"/area/韩国"},{"n":"欧美","v":"/area/欧美"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/year/国语"},{"n":"英语","v":"/year/英语"},{"n":"粤语","v":"/year/粤语"},{"n":"韩语","v":"/year/韩语"},{"n":"日语","v":"/year/日语"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + "4":[{"key":"cateId","name":"分类","value":[{"n":"全部","v":"4"},{"n":"欧美综艺","v":"43"},{"n":"日本综艺","v":"44"},{"n":"韩国综艺","v":"45"},{"n":"国产综艺","v":"46"},{"n":"新马泰综艺","v":"47"},{"n":"港台综艺","v":"48"},{"n":"其他综艺","v":"49"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"日本","v":"/area/日本"},{"n":"韩国","v":"/area/韩国"},{"n":"欧美","v":"/area/欧美"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"},{"n":"2002","v":"/year/2002"},{"n":"2001","v":"/year/2001"},{"n":"2000","v":"/year/2000"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + "50":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"港台","v":"/area/港台"},{"n":"欧美","v":"/area/欧美"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"},{"n":"2003","v":"/year/2003"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"其它","v":"/lang/其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}], + "51":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"大陆","v":"/area/大陆"},{"n":"香港","v":"/area/香港"},{"n":"台湾","v":"/area/台湾"},{"n":"日本","v":"/area/日本"},{"n":"韩国","v":"/area/韩国"},{"n":"欧美","v":"/area/欧美"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"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"},{"n":"2007","v":"/year/2007"},{"n":"2006","v":"/year/2006"},{"n":"2005","v":"/year/2005"},{"n":"2004","v":"/year/2004"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"/lang/国语"},{"n":"英语","v":"/lang/英语"},{"n":"粤语","v":"/lang/粤语"},{"n":"韩语","v":"/lang/韩语"},{"n":"日语","v":"/lang/日语"},{"n":"其它","v":"/lang/其它"}]},{"key":"letter","name":"字母","value":[{"n":"全部","v":""},{"n":"A","v":"/letter/A"},{"n":"B","v":"/letter/B"},{"n":"C","v":"/letter/C"},{"n":"D","v":"/letter/D"},{"n":"E","v":"/letter/E"},{"n":"F","v":"/letter/F"},{"n":"G","v":"/letter/G"},{"n":"H","v":"/letter/H"},{"n":"I","v":"/letter/I"},{"n":"J","v":"/letter/J"},{"n":"K","v":"/letter/K"},{"n":"L","v":"/letter/L"},{"n":"M","v":"/letter/M"},{"n":"N","v":"/letter/N"},{"n":"O","v":"/letter/O"},{"n":"P","v":"/letter/P"},{"n":"Q","v":"/letter/Q"},{"n":"R","v":"/letter/R"},{"n":"S","v":"/letter/S"},{"n":"T","v":"/letter/T"},{"n":"U","v":"/letter/U"},{"n":"V","v":"/letter/V"},{"n":"W","v":"/letter/W"},{"n":"X","v":"/letter/X"},{"n":"Y","v":"/letter/Y"},{"n":"Z","v":"/letter/Z"},{"n":"0-9","v":"/letter/0-9"}]},{"key":"by","name":"排序","value":[{"n":"最新","v":"/by/time"},{"n":"最热","v":"/by/hits"},{"n":"评分","v":"/by/score"}]}] + }, + filter_def:{ + 1:{cateId:'1'}, + 2:{cateId:'2'}, + 3:{cateId:'3'}, + 4:{cateId:'4'}, + 50:{cateId:'50'}, + 51:{cateId:'51'} + }, + searchable:2,//是否启用全局搜索, + quickSearch:0,//是否启用快速搜索, + headers:{ + 'User-Agent':'MOBILE_UA', + }, + // class_parse:'.conch-nav&&li:gt(1):lt(9);a&&Text;a&&href;.*/(.*?).html', + class_parse:'.conch-nav&&li:gt(1):lt(8);a&&Text;a&&href;/(\\d+).html', + // cate_exclude:'直播', + play_parse:true, + lazy:`js: + var html = JSON.parse(request(input).match(/r player_.*?=(.*?) 1){ + TABS.push("選擇右側綫路"); +} +let tmpIndex; +tmpIndex=1; +tabsa.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +tmpIndex=1; +tabsq.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +log('jiyingw TABS >>>>>>>>>>>>>>>>>>' + TABS); +`, + lists:`js: +log(TABS); +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +LISTS = []; +let lista = []; +let listq = []; +let listm = []; +let liste = []; +let d = pdfa(html, '#post_content p a'); +d.forEach(function(it){ + let burl = pdfh(it, 'a&&href'); + let title = pdfh(it, 'a&&Text'); + log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title); + log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl); + let loopresult = title + '$' + burl; + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + lista.push(loopresult); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + listq.push(loopresult); + }else if (burl.startsWith("magnet")){ + listm.push(loopresult); + }else if (burl.startsWith("ed2k")){ + liste.push(loopresult); + } +}); +d = pdfa(html, 'div#down p.down-list3 a'); +d.forEach(function(it){ + let burl = pdfh(it, 'a&&href'); + let title = pdfh(it, 'a&&Text'); + log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title); + log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl); + let loopresult = title + '$' + burl; + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + lista.push(loopresult); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + listq.push(loopresult); + }else if (burl.startsWith("magnet")){ + listm.push(loopresult); + }else if (burl.startsWith("ed2k")){ + liste.push(loopresult); + } +}); +if (listm.length>0){ + LISTS.push(listm); +} +if (liste.length>0){ + LISTS.push(liste); +} +if (false && lista.length + listq.length > 1){ + LISTS.push(["選擇右側綫路,或3秒後自動跳過$http://127.0.0.1:10079/delay/"]); +} +lista.forEach(function(it){ + LISTS.push([it]); +}); +listq.forEach(function(it){ + LISTS.push([it]); +}); +`, + + }, + 搜索:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +if (rule_fetch_params.headers.Cookie.startsWith("http")){ + rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie); + let cookie = rule_fetch_params.headers.Cookie; + setItem(RULE_CK, cookie); +}; +log('jiyingw search cookie>>>>>>>>>>>>>>>' + rule_fetch_params.headers.Cookie); +let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); +let search_html=request(rule.homeUrl + '?s=' + encodeURIComponent(KEY), _fetch_params); +let d=[]; +let dlist = pdfa(search_html, 'h2'); +log("jiyingw dlist.length>>>>>>>"+dlist.length); +dlist.forEach(function(it){ + let title = pdfh(it, 'a&&title'); + //if (searchObj.quick === true){ + // title = KEY; + //} + let img = ''; + let content = title; + let desc = title; + let url = pd(it, 'a&&href', HOST); + d.push({ + title:title, + img:img, + content:content, + desc:desc, + url:url + }) +}); +setResult(d); +`, +} diff --git a/zyplayer/drpy_gao/js/jiyingwp.js b/zyplayer/drpy_gao/js/jiyingwp.js new file mode 100644 index 0000000..417bffc --- /dev/null +++ b/zyplayer/drpy_gao/js/jiyingwp.js @@ -0,0 +1,230 @@ +var rule = { + title:'极影网[磁]', + //host:'https://www.jiyingw.net', + //homeUrl:'/', + //url: '/fyclass/page/fypage?', + host:'http://127.0.0.1:10079', + homeUrl:'/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.jiyingw.net/', + url: '/p/0/socks5%253A%252F%252F192.168.101.1%253A1080/https://www.jiyingw.net/fyclass/page/fypage?', + filter_url:'{{fl.class}}', + filter:{ + "movie":[{"key":"class","name":"标签","value":[{"n":"全部","v":"movie"},{"n":"4k","v":"tag/4k"}, {"n":"人性","v":"tag/人性"}, {"n":"传记","v":"tag/chuanji"}, {"n":"儿童","v":"tag/儿童"}, {"n":"冒险","v":"tag/adventure"}, {"n":"剧情","v":"tag/剧情"}, {"n":"加拿大","v":"tag/加拿大"}, {"n":"动作","v":"tag/dongzuo"}, {"n":"动漫","v":"tag/动漫"}, {"n":"励志","v":"tag/励志"}, {"n":"历史","v":"tag/history"}, {"n":"古装","v":"tag/古装"}, {"n":"同性","v":"tag/gay"}, {"n":"喜剧","v":"tag/comedy"}, {"n":"国剧","v":"tag/国剧"}, {"n":"奇幻","v":"tag/qihuan"}, {"n":"女性","v":"tag/女性"}, {"n":"家庭","v":"tag/family"}, {"n":"德国","v":"tag/德国"}, {"n":"恐怖","v":"tag/kongbu"}, {"n":"悬疑","v":"tag/xuanyi"}, {"n":"惊悚","v":"tag/jingsong"}, {"n":"意大利","v":"tag/意大利"}, {"n":"战争","v":"tag/zhanzheng"}, {"n":"战斗","v":"tag/战斗"}, {"n":"搞笑","v":"tag/搞笑"}, {"n":"故事","v":"tag/故事"}, {"n":"文艺","v":"tag/文艺"}, {"n":"日常","v":"tag/日常"}, {"n":"日本","v":"tag/日本"}, {"n":"日语","v":"tag/日语"}, {"n":"校园","v":"tag/校园"}, {"n":"武侠","v":"tag/wuxia"}, {"n":"法国","v":"tag/法国"}, {"n":"游戏","v":"tag/游戏"}, {"n":"灾难","v":"tag/zainan"}, {"n":"爱情","v":"tag/爱情"}, {"n":"犯罪","v":"tag/crime"}, {"n":"真人秀","v":"tag/zhenrenxiu"}, {"n":"短片","v":"tag/duanpian"}, {"n":"科幻","v":"tag/kehuan"}, {"n":"纪录","v":"tag/jilu"}, {"n":"美剧","v":"tag/meiju"}, {"n":"舞台","v":"tag/stage"}, {"n":"西部","v":"tag/xibu"}, {"n":"运动","v":"tag/yundong"}, {"n":"韩剧","v":"tag/韩剧"}, {"n":"韩国","v":"tag/韩国"}, {"n":"音乐","v":"tag/yinyue"}, {"n":"高清电影","v":"tag/高清电影"}]}] + }, + searchUrl: '/?s=**', + searchable:2, + quickSearch:0, + filterable:1, + headers:{ + 'User-Agent': 'PC_UA', + 'Cookie':'http://127.0.0.1:9978/file:///tvbox/JS/lib/jiyingw.txt', + 'Accept':'*/*', + 'Referer': 'https://www.jiyingw.net/' + }, + timeout:5000, + class_name:'电影&电视剧&动漫&综艺&影评', + class_url:'movie&tv&cartoon&movie/variety&yingping', + play_parse:true, + play_json:[{ + re:'*', + json:{ + parse:0, + jx:0 + } + }], + lazy:'', + limit:6, + 推荐:'ul#post_container li;a&&title;img&&src;.article entry_post&&Text;a&&href', + 一级:'ul#post_container li;a&&title;img&&src;.article entry_post&&Text;a&&href', + 二级:{ + title:"h1&&Text", + img:"#post_content img&&src", + desc:"#post_content&&Text", + content:"#post_content&&Text", + tabs:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +TABS=[] +let tabsa = []; +let tabsq = []; +let tabsm = false; +let tabse = false; +let d = pdfa(html, '#post_content p a'); +d.forEach(function(it) { + let burl = pdfh(it, 'a&&href'); + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + tabsa.push("阿里雲盤"); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + tabsq.push("夸克網盤"); + }else if (burl.startsWith("magnet")){ + tabsm = true; + }else if (burl.startsWith("ed2k")){ + tabse = true; + } +}); +d = pdfa(html, 'div#down p.down-list3 a'); +d.forEach(function(it) { + let burl = pdfh(it, 'a&&href'); + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + tabsa.push("阿里雲盤"); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + tabsq.push("夸克網盤"); + }else if (burl.startsWith("magnet")){ + tabsm = true; + }else if (burl.startsWith("ed2k")){ + tabse = true; + } +}); +if (tabsm === true){ + TABS.push("磁力"); +} +if (tabse === true){ + TABS.push("電驢"); +} +if (false && tabsa.length + tabsq.length > 1){ + TABS.push("選擇右側綫路"); +} +let tmpIndex; +tmpIndex=1; +tabsa.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +tmpIndex=1; +tabsq.forEach(function(it){ + TABS.push(it + tmpIndex); + tmpIndex = tmpIndex + 1; +}); +log('jiyingw TABS >>>>>>>>>>>>>>>>>>' + TABS); +`, + lists:`js: +log(TABS); +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +LISTS = []; +let lista = []; +let listq = []; +let listm = []; +let liste = []; +let d = pdfa(html, '#post_content p a'); +d.forEach(function(it){ + let burl = pdfh(it, 'a&&href'); + let title = pdfh(it, 'a&&Text'); + log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title); + log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl); + let loopresult = title + '$' + burl; + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + lista.push(loopresult); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + listq.push(loopresult); + }else if (burl.startsWith("magnet")){ + listm.push(loopresult); + }else if (burl.startsWith("ed2k")){ + liste.push(loopresult); + } +}); +d = pdfa(html, 'div#down p.down-list3 a'); +d.forEach(function(it){ + let burl = pdfh(it, 'a&&href'); + let title = pdfh(it, 'a&&Text'); + log('dygang title >>>>>>>>>>>>>>>>>>>>>>>>>>' + title); + log('dygang burl >>>>>>>>>>>>>>>>>>>>>>>>>>' + burl); + let loopresult = title + '$' + burl; + if (burl.startsWith("https://www.aliyundrive.com/s/") || burl.startsWith("https://www.alipan.com/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=ali&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + lista.push(loopresult); + }else if (burl.startsWith("https://pan.quark.cn/s/")){ + if (true){ + if (TABS.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = 'push://' + burl; + } + loopresult = title + '$' + burl; + listq.push(loopresult); + }else if (burl.startsWith("magnet")){ + listm.push(loopresult); + }else if (burl.startsWith("ed2k")){ + liste.push(loopresult); + } +}); +if (listm.length>0){ + LISTS.push(listm); +} +if (liste.length>0){ + LISTS.push(liste); +} +if (false && lista.length + listq.length > 1){ + LISTS.push(["選擇右側綫路,或3秒後自動跳過$http://127.0.0.1:10079/delay/"]); +} +lista.forEach(function(it){ + LISTS.push([it]); +}); +listq.forEach(function(it){ + LISTS.push([it]); +}); +`, + + }, + 搜索:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +if (rule_fetch_params.headers.Cookie.startsWith("http")){ + rule_fetch_params.headers.Cookie=fetch(rule_fetch_params.headers.Cookie); + let cookie = rule_fetch_params.headers.Cookie; + setItem(RULE_CK, cookie); +}; +log('jiyingw search cookie>>>>>>>>>>>>>>>' + rule_fetch_params.headers.Cookie); +let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); +let search_html=request(rule.homeUrl + '?s=' + encodeURIComponent(KEY), _fetch_params); +let d=[]; +let dlist = pdfa(search_html, 'h2'); +log("jiyingw dlist.length>>>>>>>"+dlist.length); +dlist.forEach(function(it){ + let title = pdfh(it, 'a&&title'); + //if (searchObj.quick === true){ + // title = KEY; + //} + let img = ''; + let content = title; + let desc = title; + let url = pd(it, 'a&&href', HOST); + d.push({ + title:title, + img:img, + content:content, + desc:desc, + url:url + }) +}); +setResult(d); +`, +} diff --git a/zyplayer/drpy_gao/js/jsapi.js b/zyplayer/drpy_gao/js/jsapi.js new file mode 100644 index 0000000..b3aa469 --- /dev/null +++ b/zyplayer/drpy_gao/js/jsapi.js @@ -0,0 +1,98 @@ +var rule = { + title:'jsapi', + host:'https://www.baidu.com', + url:'/filter_movielist?fyfilter', + detailUrl:'/play/fyid', + // searchUrl:'/search?query=**&page=fypage', + searchable:2, + quickSearch:0, + filterable:1, + filter:{'all': [{'key': 'mcountry', 'name': '地区', 'value': [{'n': '全部地区', 'v': 'all'}, {'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'}]}, {'key': 'mtag', 'name': '类型', 'value': [{'n': '全部类型', 'v': 'all'}, {'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'}]}, {'key': 'sort', 'name': '默认排序', 'value': [{'n': '默认排序', 'v': 'default'}, {'n': '评分排序', 'v': 'grade'}, {'n': '名称排序', 'v': 'name'}, {'n': '添加时间排序', 'v': 'createtime'}, {'n': '修改时间排序', 'v': 'updatetime'}]}, {'key': 'album', 'name': '专辑', 'value': [{'n': '全部专辑', 'v': 'all'}, {'n': '来吧,看动画', 'v': '55,56,57,58,84,116,118,119,120,164,549'}, {'n': '国漫之光', 'v': '7,9,10,33,81,209,210,793,794,795,796,988,1121,1122,1123'}, {'n': '魁拔', 'v': '7,9,10,33,740'}, {'n': '星游记', 'v': '81,82,83'}, {'n': '致郁', 'v': '34,35,66,256,341,353,480,1007'}, {'n': '丧甜', 'v': '238,239,505'}, {'n': '烧脑神剧', 'v': '354,355,409,410,411,809'}, {'n': '周杰伦', 'v': '851,871,901,921,1054'}, {'n': '新东方特技厨师汉尼拔', 'v': '136,137,138'}, {'n': '个人推荐', 'v': '2,7,9,10,21,33,40,54,81,139,175,256,279,281,409,410,411,705,793,794,795,796,809,976,981,1126,1228'}, {'n': '速度与激情系列', 'v': '904,905,906,907,908,909,910,911,912,913'}, {'n': '韩国暴力美学三部曲', 'v': '37,45,54'}, {'n': '汤姆·哈迪 Tom Hardy', 'v': '31,42,67,205,243,277,478,684,731,733,734,1007,1037,1046,1047,1167'}, {'n': '韩国人生三部曲', 'v': '112,114,115'}, {'n': '蝙蝠侠黑暗骑士三部曲', 'v': '275,276,277'}, {'n': '变形金刚系列', 'v': '874,875,876,877,878'}, {'n': '生化危机系列', 'v': '887,888,889,890,891,892'}]}], '1': [{'key': 'mcountry', 'name': '地区', 'value': [{'n': '全部地区', 'v': 'all'}, {'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'}]}, {'key': 'mtag', 'name': '类型', 'value': [{'n': '全部类型', 'v': 'all'}, {'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'}]}, {'key': 'sort', 'name': '默认排序', 'value': [{'n': '默认排序', 'v': 'default'}, {'n': '评分排序', 'v': 'grade'}, {'n': '名称排序', 'v': 'name'}, {'n': '添加时间排序', 'v': 'createtime'}, {'n': '修改时间排序', 'v': 'updatetime'}]}, {'key': 'album', 'name': '专辑', 'value': [{'n': '全部专辑', 'v': 'all'}, {'n': '来吧,看动画', 'v': '55,56,57,58,84,116,118,119,120,164,549'}, {'n': '国漫之光', 'v': '7,9,10,33,81,209,210,793,794,795,796,988,1121,1122,1123'}, {'n': '魁拔', 'v': '7,9,10,33,740'}, {'n': '星游记', 'v': '81,82,83'}, {'n': '致郁', 'v': '34,35,66,256,341,353,480,1007'}, {'n': '丧甜', 'v': '238,239,505'}, {'n': '烧脑神剧', 'v': '354,355,409,410,411,809'}, {'n': '周杰伦', 'v': '851,871,901,921,1054'}, {'n': '新东方特技厨师汉尼拔', 'v': '136,137,138'}, {'n': '个人推荐', 'v': '2,7,9,10,21,33,40,54,81,139,175,256,279,281,409,410,411,705,793,794,795,796,809,976,981,1126,1228'}, {'n': '速度与激情系列', 'v': '904,905,906,907,908,909,910,911,912,913'}, {'n': '韩国暴力美学三部曲', 'v': '37,45,54'}, {'n': '汤姆·哈迪 Tom Hardy', 'v': '31,42,67,205,243,277,478,684,731,733,734,1007,1037,1046,1047,1167'}, {'n': '韩国人生三部曲', 'v': '112,114,115'}, {'n': '蝙蝠侠黑暗骑士三部曲', 'v': '275,276,277'}, {'n': '变形金刚系列', 'v': '874,875,876,877,878'}, {'n': '生化危机系列', 'v': '887,888,889,890,891,892'}]}], '2': [{'key': 'mcountry', 'name': '地区', 'value': [{'n': '全部地区', 'v': 'all'}, {'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'}]}, {'key': 'mtag', 'name': '类型', 'value': [{'n': '全部类型', 'v': 'all'}, {'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'}]}, {'key': 'sort', 'name': '默认排序', 'value': [{'n': '默认排序', 'v': 'default'}, {'n': '评分排序', 'v': 'grade'}, {'n': '名称排序', 'v': 'name'}, {'n': '添加时间排序', 'v': 'createtime'}, {'n': '修改时间排序', 'v': 'updatetime'}]}, {'key': 'album', 'name': '专辑', 'value': [{'n': '全部专辑', 'v': 'all'}, {'n': '来吧,看动画', 'v': '55,56,57,58,84,116,118,119,120,164,549'}, {'n': '国漫之光', 'v': '7,9,10,33,81,209,210,793,794,795,796,988,1121,1122,1123'}, {'n': '魁拔', 'v': '7,9,10,33,740'}, {'n': '星游记', 'v': '81,82,83'}, {'n': '致郁', 'v': '34,35,66,256,341,353,480,1007'}, {'n': '丧甜', 'v': '238,239,505'}, {'n': '烧脑神剧', 'v': '354,355,409,410,411,809'}, {'n': '周杰伦', 'v': '851,871,901,921,1054'}, {'n': '新东方特技厨师汉尼拔', 'v': '136,137,138'}, {'n': '个人推荐', 'v': '2,7,9,10,21,33,40,54,81,139,175,256,279,281,409,410,411,705,793,794,795,796,809,976,981,1126,1228'}, {'n': '速度与激情系列', 'v': '904,905,906,907,908,909,910,911,912,913'}, {'n': '韩国暴力美学三部曲', 'v': '37,45,54'}, {'n': '汤姆·哈迪 Tom Hardy', 'v': '31,42,67,205,243,277,478,684,731,733,734,1007,1037,1046,1047,1167'}, {'n': '韩国人生三部曲', 'v': '112,114,115'}, {'n': '蝙蝠侠黑暗骑士三部曲', 'v': '275,276,277'}, {'n': '变形金刚系列', 'v': '874,875,876,877,878'}, {'n': '生化危机系列', 'v': '887,888,889,890,891,892'}]}], 'bangumi': [{'key': 'mcountry', 'name': '地区', 'value': [{'n': '全部地区', 'v': 'all'}, {'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'}]}, {'key': 'mtag', 'name': '类型', 'value': [{'n': '全部类型', 'v': 'all'}, {'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'}]}, {'key': 'sort', 'name': '默认排序', 'value': [{'n': '默认排序', 'v': 'default'}, {'n': '评分排序', 'v': 'grade'}, {'n': '名称排序', 'v': 'name'}, {'n': '添加时间排序', 'v': 'createtime'}, {'n': '修改时间排序', 'v': 'updatetime'}]}, {'key': 'album', 'name': '专辑', 'value': [{'n': '全部专辑', 'v': 'all'}, {'n': '来吧,看动画', 'v': '55,56,57,58,84,116,118,119,120,164,549'}, {'n': '国漫之光', 'v': '7,9,10,33,81,209,210,793,794,795,796,988,1121,1122,1123'}, {'n': '魁拔', 'v': '7,9,10,33,740'}, {'n': '星游记', 'v': '81,82,83'}, {'n': '致郁', 'v': '34,35,66,256,341,353,480,1007'}, {'n': '丧甜', 'v': '238,239,505'}, {'n': '烧脑神剧', 'v': '354,355,409,410,411,809'}, {'n': '周杰伦', 'v': '851,871,901,921,1054'}, {'n': '新东方特技厨师汉尼拔', 'v': '136,137,138'}, {'n': '个人推荐', 'v': '2,7,9,10,21,33,40,54,81,139,175,256,279,281,409,410,411,705,793,794,795,796,809,976,981,1126,1228'}, {'n': '速度与激情系列', 'v': '904,905,906,907,908,909,910,911,912,913'}, {'n': '韩国暴力美学三部曲', 'v': '37,45,54'}, {'n': '汤姆·哈迪 Tom Hardy', 'v': '31,42,67,205,243,277,478,684,731,733,734,1007,1037,1046,1047,1167'}, {'n': '韩国人生三部曲', 'v': '112,114,115'}, {'n': '蝙蝠侠黑暗骑士三部曲', 'v': '275,276,277'}, {'n': '变形金刚系列', 'v': '874,875,876,877,878'}, {'n': '生化危机系列', 'v': '887,888,889,890,891,892'}]}], 'chinese_cartoon': [{'key': 'mcountry', 'name': '地区', 'value': [{'n': '全部地区', 'v': 'all'}, {'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'}]}, {'key': 'mtag', 'name': '类型', 'value': [{'n': '全部类型', 'v': 'all'}, {'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'}]}, {'key': 'sort', 'name': '默认排序', 'value': [{'n': '默认排序', 'v': 'default'}, {'n': '评分排序', 'v': 'grade'}, {'n': '名称排序', 'v': 'name'}, {'n': '添加时间排序', 'v': 'createtime'}, {'n': '修改时间排序', 'v': 'updatetime'}]}, {'key': 'album', 'name': '专辑', 'value': [{'n': '全部专辑', 'v': 'all'}, {'n': '来吧,看动画', 'v': '55,56,57,58,84,116,118,119,120,164,549'}, {'n': '国漫之光', 'v': '7,9,10,33,81,209,210,793,794,795,796,988,1121,1122,1123'}, {'n': '魁拔', 'v': '7,9,10,33,740'}, {'n': '星游记', 'v': '81,82,83'}, {'n': '致郁', 'v': '34,35,66,256,341,353,480,1007'}, {'n': '丧甜', 'v': '238,239,505'}, {'n': '烧脑神剧', 'v': '354,355,409,410,411,809'}, {'n': '周杰伦', 'v': '851,871,901,921,1054'}, {'n': '新东方特技厨师汉尼拔', 'v': '136,137,138'}, {'n': '个人推荐', 'v': '2,7,9,10,21,33,40,54,81,139,175,256,279,281,409,410,411,705,793,794,795,796,809,976,981,1126,1228'}, {'n': '速度与激情系列', 'v': '904,905,906,907,908,909,910,911,912,913'}, {'n': '韩国暴力美学三部曲', 'v': '37,45,54'}, {'n': '汤姆·哈迪 Tom Hardy', 'v': '31,42,67,205,243,277,478,684,731,733,734,1007,1037,1046,1047,1167'}, {'n': '韩国人生三部曲', 'v': '112,114,115'}, {'n': '蝙蝠侠黑暗骑士三部曲', 'v': '275,276,277'}, {'n': '变形金刚系列', 'v': '874,875,876,877,878'}, {'n': '生化危机系列', 'v': '887,888,889,890,891,892'}]}]}, + filter_url:'mcountry={{fl.mcountry or "all"}}&tag_arr%5B%5D={{fl.mtag or "all"}}&page=fypage&sort={{fl.sort or "updatetime"}}&album={{fl.album or "all"}}&title=', + headers:{ + 'User-Agent':'MOBILE_UA', + }, + timeout:6000, + class_name:'全部形式&电影&电视剧&番剧&国漫', + class_url:'all&1&2&bangumi&chinese_cartoon', + class_parse:'', + play_parse:true, + lazy:'', + limit:6, + double:false, + 推荐:'', + 一级:'', + 一级:`js: + log(input); + log('Object.keys(jsapi)=======>'); + log(Object.keys(jsapi)); + let t1 = jsapi.test; + log('typeof(jsapi.test)====>'+typeof(t1)); + let t2 = jsapi.test1; + log('typeof(jsapi.test1)====>'+typeof(t2)); + log('typeof(jsapi.test.add)===>'+typeof(jsapi.test.add)); + log('typeof(jsapi.test1.add1)====>'+typeof(jsapi.test1.add1)); + + log('typeof(jsapi.htmlParser)====>'+typeof(jsapi.htmlParser)); + log('typeof(jsapi.htmlParser.pdfa)====>'+typeof(jsapi.htmlParser.pdfa)); + log('typeof(jsapi.htmlParser.pdfh)====>'+typeof(jsapi.htmlParser.pdfh)); + let html = '123'; + log('jsapi.htmlParser.pdfh("'+html+'","a&&Text")====>'+jsapi.htmlParser.pdfh(html,"a&&Text")); + + log('typeof(jsapi.add)====>'+typeof(jsapi.add)); + log('typeof(jsapi.add1)====>'+typeof(jsapi.add1)); + + log('jsapi.test.add(1,2)='+jsapi.test.add(1,2)); + log('jsapi.test1.add1(1,2)='+jsapi.test1.add1(1,2)); + + + //log('jsapi.test1.add(1,2)='+jsapi.test1.add(1,2)); + //log('jsapi.add(1,2)='+jsapi.add(1,2)); + //log('jsapi.add1(1,2)='+jsapi.add1(1,2)); + + + let d=[]; + for(let i=0;i<20;i++){ + d.push({ + title:'测试', + url:'index.html', + img:'https://gitee.com/CherishRx/imagewarehouse/raw/master/image/13096725fe56ce9cf643a0e4cd0c159c.gif', + desc:'jsapi', + }); + } + + setResult(d); + `, + 二级:`js: + let api=getProxyUrl()+'&url='; + VOD={ + vod_id:'no_use', + vod_name:'测试二级', + type_name:input, + vod_pic:'https://gitee.com/CherishRx/imagewarehouse/raw/master/image/13096725fe56ce9cf643a0e4cd0c159c.gif', + vod_content:'这是一个原始js的测试案例', + vod_play_from:'代理线路1$$$不代理线路2', + vod_play_url:'选集播放1$'+api+'1.mp4#选集播放2$'+api+'2.mp4$$$选集播放3$3.mp4#选集播放4$4.mp4', + }; + `, + proxy_rule:` + log(input); + function a(it){ + if(it.startsWith('#')){ + return it + }else{ + return urljoin2(url,it) + } + } + let url = 'https://vip.lz-cdn3.com/20230706/20072_5c97b65e/index.m3u8'; + let m3u8 = request(url); + log('m3u8处理前:'+m3u8); + m3u8 = m3u8.split('\\n').map(a).join('\\n'); + log('m3u8处理后:============:'+m3u8); + url = m3u8.split('\\n').slice(-1)[0]; + m3u8 = request(url); + + m3u8 = m3u8.split('\\n').map(a).join('\\n'); + input = [200,'application/vnd.apple.mpegurl',m3u8] + `, +} \ No newline at end of file diff --git a/zyplayer/drpy_gao/js/jsapi2.js b/zyplayer/drpy_gao/js/jsapi2.js new file mode 100644 index 0000000..f15423f --- /dev/null +++ b/zyplayer/drpy_gao/js/jsapi2.js @@ -0,0 +1,99 @@ +var rule = { + title:'jsapi', + host:'https://www.baidu.com', + url:'/filter_movielist?fyfilter', + detailUrl:'/play/fyid', + // searchUrl:'/search?query=**&page=fypage', + searchable:2, + quickSearch:0, + filterable:1, + filter:{'all': [{'key': 'mcountry', 'name': '地区', 'value': [{'n': '全部地区', 'v': 'all'}, {'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'}]}, {'key': 'mtag', 'name': '类型', 'value': [{'n': '全部类型', 'v': 'all'}, {'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'}]}, {'key': 'sort', 'name': '默认排序', 'value': [{'n': '默认排序', 'v': 'default'}, {'n': '评分排序', 'v': 'grade'}, {'n': '名称排序', 'v': 'name'}, {'n': '添加时间排序', 'v': 'createtime'}, {'n': '修改时间排序', 'v': 'updatetime'}]}, {'key': 'album', 'name': '专辑', 'value': [{'n': '全部专辑', 'v': 'all'}, {'n': '来吧,看动画', 'v': '55,56,57,58,84,116,118,119,120,164,549'}, {'n': '国漫之光', 'v': '7,9,10,33,81,209,210,793,794,795,796,988,1121,1122,1123'}, {'n': '魁拔', 'v': '7,9,10,33,740'}, {'n': '星游记', 'v': '81,82,83'}, {'n': '致郁', 'v': '34,35,66,256,341,353,480,1007'}, {'n': '丧甜', 'v': '238,239,505'}, {'n': '烧脑神剧', 'v': '354,355,409,410,411,809'}, {'n': '周杰伦', 'v': '851,871,901,921,1054'}, {'n': '新东方特技厨师汉尼拔', 'v': '136,137,138'}, {'n': '个人推荐', 'v': '2,7,9,10,21,33,40,54,81,139,175,256,279,281,409,410,411,705,793,794,795,796,809,976,981,1126,1228'}, {'n': '速度与激情系列', 'v': '904,905,906,907,908,909,910,911,912,913'}, {'n': '韩国暴力美学三部曲', 'v': '37,45,54'}, {'n': '汤姆·哈迪 Tom Hardy', 'v': '31,42,67,205,243,277,478,684,731,733,734,1007,1037,1046,1047,1167'}, {'n': '韩国人生三部曲', 'v': '112,114,115'}, {'n': '蝙蝠侠黑暗骑士三部曲', 'v': '275,276,277'}, {'n': '变形金刚系列', 'v': '874,875,876,877,878'}, {'n': '生化危机系列', 'v': '887,888,889,890,891,892'}]}], '1': [{'key': 'mcountry', 'name': '地区', 'value': [{'n': '全部地区', 'v': 'all'}, {'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'}]}, {'key': 'mtag', 'name': '类型', 'value': [{'n': '全部类型', 'v': 'all'}, {'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'}]}, {'key': 'sort', 'name': '默认排序', 'value': [{'n': '默认排序', 'v': 'default'}, {'n': '评分排序', 'v': 'grade'}, {'n': '名称排序', 'v': 'name'}, {'n': '添加时间排序', 'v': 'createtime'}, {'n': '修改时间排序', 'v': 'updatetime'}]}, {'key': 'album', 'name': '专辑', 'value': [{'n': '全部专辑', 'v': 'all'}, {'n': '来吧,看动画', 'v': '55,56,57,58,84,116,118,119,120,164,549'}, {'n': '国漫之光', 'v': '7,9,10,33,81,209,210,793,794,795,796,988,1121,1122,1123'}, {'n': '魁拔', 'v': '7,9,10,33,740'}, {'n': '星游记', 'v': '81,82,83'}, {'n': '致郁', 'v': '34,35,66,256,341,353,480,1007'}, {'n': '丧甜', 'v': '238,239,505'}, {'n': '烧脑神剧', 'v': '354,355,409,410,411,809'}, {'n': '周杰伦', 'v': '851,871,901,921,1054'}, {'n': '新东方特技厨师汉尼拔', 'v': '136,137,138'}, {'n': '个人推荐', 'v': '2,7,9,10,21,33,40,54,81,139,175,256,279,281,409,410,411,705,793,794,795,796,809,976,981,1126,1228'}, {'n': '速度与激情系列', 'v': '904,905,906,907,908,909,910,911,912,913'}, {'n': '韩国暴力美学三部曲', 'v': '37,45,54'}, {'n': '汤姆·哈迪 Tom Hardy', 'v': '31,42,67,205,243,277,478,684,731,733,734,1007,1037,1046,1047,1167'}, {'n': '韩国人生三部曲', 'v': '112,114,115'}, {'n': '蝙蝠侠黑暗骑士三部曲', 'v': '275,276,277'}, {'n': '变形金刚系列', 'v': '874,875,876,877,878'}, {'n': '生化危机系列', 'v': '887,888,889,890,891,892'}]}], '2': [{'key': 'mcountry', 'name': '地区', 'value': [{'n': '全部地区', 'v': 'all'}, {'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'}]}, {'key': 'mtag', 'name': '类型', 'value': [{'n': '全部类型', 'v': 'all'}, {'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'}]}, {'key': 'sort', 'name': '默认排序', 'value': [{'n': '默认排序', 'v': 'default'}, {'n': '评分排序', 'v': 'grade'}, {'n': '名称排序', 'v': 'name'}, {'n': '添加时间排序', 'v': 'createtime'}, {'n': '修改时间排序', 'v': 'updatetime'}]}, {'key': 'album', 'name': '专辑', 'value': [{'n': '全部专辑', 'v': 'all'}, {'n': '来吧,看动画', 'v': '55,56,57,58,84,116,118,119,120,164,549'}, {'n': '国漫之光', 'v': '7,9,10,33,81,209,210,793,794,795,796,988,1121,1122,1123'}, {'n': '魁拔', 'v': '7,9,10,33,740'}, {'n': '星游记', 'v': '81,82,83'}, {'n': '致郁', 'v': '34,35,66,256,341,353,480,1007'}, {'n': '丧甜', 'v': '238,239,505'}, {'n': '烧脑神剧', 'v': '354,355,409,410,411,809'}, {'n': '周杰伦', 'v': '851,871,901,921,1054'}, {'n': '新东方特技厨师汉尼拔', 'v': '136,137,138'}, {'n': '个人推荐', 'v': '2,7,9,10,21,33,40,54,81,139,175,256,279,281,409,410,411,705,793,794,795,796,809,976,981,1126,1228'}, {'n': '速度与激情系列', 'v': '904,905,906,907,908,909,910,911,912,913'}, {'n': '韩国暴力美学三部曲', 'v': '37,45,54'}, {'n': '汤姆·哈迪 Tom Hardy', 'v': '31,42,67,205,243,277,478,684,731,733,734,1007,1037,1046,1047,1167'}, {'n': '韩国人生三部曲', 'v': '112,114,115'}, {'n': '蝙蝠侠黑暗骑士三部曲', 'v': '275,276,277'}, {'n': '变形金刚系列', 'v': '874,875,876,877,878'}, {'n': '生化危机系列', 'v': '887,888,889,890,891,892'}]}], 'bangumi': [{'key': 'mcountry', 'name': '地区', 'value': [{'n': '全部地区', 'v': 'all'}, {'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'}]}, {'key': 'mtag', 'name': '类型', 'value': [{'n': '全部类型', 'v': 'all'}, {'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'}]}, {'key': 'sort', 'name': '默认排序', 'value': [{'n': '默认排序', 'v': 'default'}, {'n': '评分排序', 'v': 'grade'}, {'n': '名称排序', 'v': 'name'}, {'n': '添加时间排序', 'v': 'createtime'}, {'n': '修改时间排序', 'v': 'updatetime'}]}, {'key': 'album', 'name': '专辑', 'value': [{'n': '全部专辑', 'v': 'all'}, {'n': '来吧,看动画', 'v': '55,56,57,58,84,116,118,119,120,164,549'}, {'n': '国漫之光', 'v': '7,9,10,33,81,209,210,793,794,795,796,988,1121,1122,1123'}, {'n': '魁拔', 'v': '7,9,10,33,740'}, {'n': '星游记', 'v': '81,82,83'}, {'n': '致郁', 'v': '34,35,66,256,341,353,480,1007'}, {'n': '丧甜', 'v': '238,239,505'}, {'n': '烧脑神剧', 'v': '354,355,409,410,411,809'}, {'n': '周杰伦', 'v': '851,871,901,921,1054'}, {'n': '新东方特技厨师汉尼拔', 'v': '136,137,138'}, {'n': '个人推荐', 'v': '2,7,9,10,21,33,40,54,81,139,175,256,279,281,409,410,411,705,793,794,795,796,809,976,981,1126,1228'}, {'n': '速度与激情系列', 'v': '904,905,906,907,908,909,910,911,912,913'}, {'n': '韩国暴力美学三部曲', 'v': '37,45,54'}, {'n': '汤姆·哈迪 Tom Hardy', 'v': '31,42,67,205,243,277,478,684,731,733,734,1007,1037,1046,1047,1167'}, {'n': '韩国人生三部曲', 'v': '112,114,115'}, {'n': '蝙蝠侠黑暗骑士三部曲', 'v': '275,276,277'}, {'n': '变形金刚系列', 'v': '874,875,876,877,878'}, {'n': '生化危机系列', 'v': '887,888,889,890,891,892'}]}], 'chinese_cartoon': [{'key': 'mcountry', 'name': '地区', 'value': [{'n': '全部地区', 'v': 'all'}, {'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'}]}, {'key': 'mtag', 'name': '类型', 'value': [{'n': '全部类型', 'v': 'all'}, {'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'}]}, {'key': 'sort', 'name': '默认排序', 'value': [{'n': '默认排序', 'v': 'default'}, {'n': '评分排序', 'v': 'grade'}, {'n': '名称排序', 'v': 'name'}, {'n': '添加时间排序', 'v': 'createtime'}, {'n': '修改时间排序', 'v': 'updatetime'}]}, {'key': 'album', 'name': '专辑', 'value': [{'n': '全部专辑', 'v': 'all'}, {'n': '来吧,看动画', 'v': '55,56,57,58,84,116,118,119,120,164,549'}, {'n': '国漫之光', 'v': '7,9,10,33,81,209,210,793,794,795,796,988,1121,1122,1123'}, {'n': '魁拔', 'v': '7,9,10,33,740'}, {'n': '星游记', 'v': '81,82,83'}, {'n': '致郁', 'v': '34,35,66,256,341,353,480,1007'}, {'n': '丧甜', 'v': '238,239,505'}, {'n': '烧脑神剧', 'v': '354,355,409,410,411,809'}, {'n': '周杰伦', 'v': '851,871,901,921,1054'}, {'n': '新东方特技厨师汉尼拔', 'v': '136,137,138'}, {'n': '个人推荐', 'v': '2,7,9,10,21,33,40,54,81,139,175,256,279,281,409,410,411,705,793,794,795,796,809,976,981,1126,1228'}, {'n': '速度与激情系列', 'v': '904,905,906,907,908,909,910,911,912,913'}, {'n': '韩国暴力美学三部曲', 'v': '37,45,54'}, {'n': '汤姆·哈迪 Tom Hardy', 'v': '31,42,67,205,243,277,478,684,731,733,734,1007,1037,1046,1047,1167'}, {'n': '韩国人生三部曲', 'v': '112,114,115'}, {'n': '蝙蝠侠黑暗骑士三部曲', 'v': '275,276,277'}, {'n': '变形金刚系列', 'v': '874,875,876,877,878'}, {'n': '生化危机系列', 'v': '887,888,889,890,891,892'}]}]}, + filter_url:'mcountry={{fl.mcountry or "all"}}&tag_arr%5B%5D={{fl.mtag or "all"}}&page=fypage&sort={{fl.sort or "updatetime"}}&album={{fl.album or "all"}}&title=', + headers:{ + 'User-Agent':'MOBILE_UA', + }, + timeout:6000, + class_name:'全部形式&电影&电视剧&番剧&国漫', + class_url:'all&1&2&bangumi&chinese_cartoon', + class_parse:'', + play_parse:true, + lazy:'', + limit:6, + double:false, + 推荐:'', + 一级:'', + 一级:`js: + log(input); +/* + log('Object.keys(jsapi)=======>'); + log(Object.keys(jsapi)); + let t1 = jsapi.test; + log('typeof(jsapi.test)====>'+typeof(t1)); + let t2 = jsapi.test1; + log('typeof(jsapi.test1)====>'+typeof(t2)); + log('typeof(jsapi.test.add)===>'+typeof(jsapi.test.add)); + log('typeof(jsapi.test1.add1)====>'+typeof(jsapi.test1.add1)); + + log('typeof(jsapi.htmlParser)====>'+typeof(jsapi.htmlParser)); + log('typeof(jsapi.htmlParser.pdfa)====>'+typeof(jsapi.htmlParser.pdfa)); + log('typeof(jsapi.htmlParser.pdfh)====>'+typeof(jsapi.htmlParser.pdfh)); + let html = '123'; + log('jsapi.htmlParser.pdfh("'+html+'","a&&Text")====>'+jsapi.htmlParser.pdfh(html,"a&&Text")); + + log('typeof(jsapi.add)====>'+typeof(jsapi.add)); + log('typeof(jsapi.add1)====>'+typeof(jsapi.add1)); + + log('jsapi.test.add(1,2)='+jsapi.test.add(1,2)); + log('jsapi.test1.add1(1,2)='+jsapi.test1.add1(1,2)); + + */ + //log('jsapi.test1.add(1,2)='+jsapi.test1.add(1,2)); + //log('jsapi.add(1,2)='+jsapi.add(1,2)); + //log('jsapi.add1(1,2)='+jsapi.add1(1,2)); + + + let d=[]; + for(let i=0;i<20;i++){ + d.push({ + title:'测试', + url:'index.html', + img:'https://gitee.com/CherishRx/imagewarehouse/raw/master/image/13096725fe56ce9cf643a0e4cd0c159c.gif', + desc:'jsapi', + }); + } + + setResult(d); + `, + 二级:`js: + let api=getProxyUrl()+'&url='; + VOD={ + vod_id:'no_use', + vod_name:'测试二级', + type_name:input, + vod_pic:'https://gitee.com/CherishRx/imagewarehouse/raw/master/image/13096725fe56ce9cf643a0e4cd0c159c.gif', + vod_content:'这是一个原始js的测试案例', + vod_play_from:'代理线路1$$$不代理线路2', + vod_play_url:'选集播放1$'+api+'http://1.mp4#选集播放2$'+api+'http://2.mp4$$$选集播放3$3.mp4#选集播放4$4.mp4', + }; + `, + proxy_rule:` + log(input); + function a(it){ + if(it.startsWith('#')){ + return it + }else{ + return urljoin2(url,it) + } + } + let url = 'https://vip.lz-cdn3.com/20230706/20072_5c97b65e/index.m3u8'; + let m3u8 = request(url); + log('m3u8处理前:'+m3u8); + m3u8 = m3u8.split('\\n').map(a).join('\\n'); + log('m3u8处理后:============:'+m3u8); + url = m3u8.split('\\n').slice(-1)[0]; + m3u8 = request(url); + + m3u8 = m3u8.split('\\n').map(a).join('\\n'); + input = [200,'application/vnd.apple.mpegurl',m3u8] + `, +} \ No newline at end of file diff --git a/zyplayer/drpy_gao/js/kkpans.js b/zyplayer/drpy_gao/js/kkpans.js new file mode 100644 index 0000000..748f199 --- /dev/null +++ b/zyplayer/drpy_gao/js/kkpans.js @@ -0,0 +1,162 @@ +var rule = { + title:'KK網盤[磁]', + host:'https://www.kkpans.com', + homeUrl:'/', + url: '/forum-fyclass-fypage.html?', + //host:'http://192.168.101.1:10078', + //homeUrl:'/p/0/s/https://www.kkpans.com/', + //url: '/p/0/s/https://www.kkpans.com/forum-fyclass-fypage.html?', + filter_url:'{{fl.class}}', + filter:{ + }, + searchUrl: '/search', + searchable:2, + quickSearch:0, + filterable:0, + headers:{ + 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; SM-G981B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Mobile Safari/537.36', + 'Accept': '*/*', + 'Referer': 'https://www.kkpans.com/' + }, + timeout:5000, + class_name:'国外电影&国外电视剧&纪录片资源&综艺资源&动漫资源&音乐资源', + class_url:'39&40&41&42&46&43', + play_parse:true, + play_json:[{ + re:'*', + json:{ + parse:0, + jx:0 + } + }], + lazy:'', + limit:6, + 推荐:'', + 一级:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +let d = []; +log("kkpans input>>>>>>>>>>>>>>"+input); +let html = request(input); +//log("kkpans 1level html>>>>>>>>>>>>>>"+html); +let list = pdfa(html, 'div.threadlist ul li.list'); +list.forEach(function(it) { + d.push({ + title: pdfh(it, 'div.threadlist_tit&&Text'), + desc: pdfh(it, 'div.threadlist_top div:has(>h3) span&&Text'), + pic_url: '', + url: pd(it, 'li.list&&a[href^="forum.php"]:eq(1)&&href', HOST) + }); +}) +setResult(d); + `, + 二级:{ + title:"div.viewthread&&div.view_tit&&Text", + img:"div.viewthread div.message&&img&&src", + desc:"div.viewthread div.message&&Text", + content:"div.viewthread div.message&&Text", + tabs:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +TABS=[] +let d = pdfa(html, 'div.viewthread div.message a[href^="https://pan.quark.cn/s/"]'); +let index = 1; +if (false && d.length>1){ + TABS.push("選擇右側綫路"); +} +d.forEach(function(it) { + TABS.push("夸克網盤" + index); + index = index + 1; +}); +log('meijumi TABS >>>>>>>>>>>>>>>>>>' + TABS); +`, + lists:`js: +log(TABS); +LISTS=[]; +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +let d = pdfa(html, 'div.viewthread div.message a[href^="https://pan.quark.cn/s/"]'); +let index = 1; +if (false && d.length>1){ + LISTS.push(["選擇右側綫路,或3秒後自動跳過$http://127.0.0.1:10079/delay/"]); +} +d.forEach(function(it) { + let burl = pdfh(it, 'a&&href'); + if (true){ + if (d.length==1){ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&confirm=0&url=" + encodeURIComponent(burl); + }else{ + burl = "http://127.0.0.1:9978/proxy?do=quark&type=push&url=" + encodeURIComponent(burl); + } + }else{ + burl = "push://" + burl; + } + let title = pdfh(it, 'a&&Text'); + LISTS.push([title + '$' + burl]); +}); +`, + + }, + 搜索:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; + +let withHeaders = { + withHeaders: true +}; +let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); +Object.assign(_fetch_params, withHeaders); + +let new_html=request(rule.homeUrl + 'search.php?mod=forum', _fetch_params); +log('kkpans search new_html >>>>>>>>>>>>>>>>>>>>>' + new_html); +let json=JSON.parse(new_html); +let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie"); +let cookie=""; +if (typeof setCk !== "undefined"){ + let d=[]; + for(const key in json[setCk]){ + if (typeof json[setCk][key] === "string"){ + log("kkpans header setCk key>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + json[setCk][key] + " " + (typeof json[setCk][key])); + d.push(json[setCk][key].split(";")[0]); + } + } + cookie=d.join(";"); +} +fetch_params.headers.Cookie=cookie; +rule_fetch_params.headers.Cookie=cookie; +log('kkpans search cookie >>>>>>>>>>>>>>>>>>>>>' + cookie); +//log('kkpans search body >>>>>>>>>>>>>>>>>>>>>' + json['body']); + +new_html = json['body']; + +let formhash = pdfh(new_html, 'input[name="formhash"]&&value'); +log("kkpans formhash>>>>>>>>>>>>>>>" + formhash); +let params = 'formhash=' + formhash + '&searchsubmit=yes&srchtxt=' + encodeURIComponent(KEY); +_fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); +let postData = { + body: params +}; +Object.assign(_fetch_params, postData); +log("kkpans search postData>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params)); +let search_html = post(rule.homeUrl + 'search.php?mod=forum', _fetch_params) +//log("kkpans search result>>>>>>>>>>>>>>>" + search_html); +let d=[]; +let dlist = pdfa(search_html, 'div.threadlist ul li.list'); +dlist.forEach(function(it){ + let title = pdfh(it, 'div.threadlist_tit&&Text'); + if (searchObj.quick === true){ + if (title.includes(KEY)){ + title = KEY; + } + } + let img = ""; + let content = pdfh(it, 'div.threadlist_top div:has(>h3) span&&Text'); + let desc = pdfh(it, 'div.threadlist_top div:has(>h3) span&&Text'); + let url = pd(it, 'a[href^="forum.php?mod=viewthread"]&&href', HOST); + d.push({ + title:title, + img:img, + content:content, + desc:desc, + url:url + }) +}); +setResult(d); +`, +} diff --git a/zyplayer/drpy_gao/js/kuba.js b/zyplayer/drpy_gao/js/kuba.js new file mode 100644 index 0000000..5a875b4 --- /dev/null +++ b/zyplayer/drpy_gao/js/kuba.js @@ -0,0 +1,188 @@ +var rule = { + title:'酷吧[磁]', + host:'https://www.kuba222.com', + homeUrl: '/', + url: '/vodtypehtml/fyclass.html?', + filter_url:'{{fl.class}}', + filter:{ + }, + searchUrl: '/search/**-1.html', + searchable:2, + quickSearch:0, + filterable:0, + headers:{ + 'User-Agent': 'PC_UA', + 'Referer': 'https://www.kuba222.com/' + }, + timeout:5000, + class_name: '最新&4K&电影&动作片&喜剧片&爱情片&科幻片&恐怖片&剧情片&战争片&微电影&电视剧&动漫&纪录片', + class_url: 'new&4K&1&5&6&7&8&9&10&11&21&31&4&16', + play_parse:true, + play_json:[{ + re:'*', + json:{ + parse:0, + jx:0 + } + }], + lazy:'', + limit:6, + 推荐:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +let d = []; +let html = request(input); +let list = pdfa(html, 'ul.stui-vodlist li'); +list.forEach(function (it){ + d.push({ + title: pdfh(it, 'a&&title'), + desc: pdfh(it, 'li&&div&&a&&span&&Text'), + pic_url: pd(it, 'a&&data-original', HOST), + url: pdfh(it, 'a&&href') + }); +}); +setResult(d); +`, + 一级:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +let d = []; +if (MY_CATE === '4K'){ + let turl = (MY_PAGE === 1)? '' : '-' + MY_PAGE; + input = rule.homeUrl + 'vodtopichtml/' + '11' + turl + '.html'; +}else if (MY_CATE === 'new'){ + input = rule.homeUrl + MY_CATE + '.html'; +}else{ + let turl = (MY_PAGE === 1)? '' : '-' + MY_PAGE; + input = rule.homeUrl + 'vodtypehtml/' + MY_CATE + turl + '.html'; +} +let html = request(input); +let list = pdfa(html, 'ul.stui-vodlist li'); +list.forEach(function (it){ + d.push({ + title: pdfh(it, 'a&&title'), + desc: pdfh(it, 'li&&div&&a&&span&&Text'), + pic_url: pd(it, 'a&&data-original', HOST), + url: pdfh(it, 'a&&href') + }); +}); +setResult(d); +`, + 二级:{ + title:"div.stui-content h3&&Text", + img:"div.stui-content a.lazyload img&&src", + desc:'div.stui-content a span&&Text', + content:'div.stui-content p.data&&Text', + tabs:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +TABS=[] +let vodUrls=[]; +try{ + vodUrls.push(html.match(/var GvodUrls1 *= *"([^"]*)"/)[1]); + vodUrls.push(html.match(/var GvodUrls2 *= *"([^"]*)"/)[1]); + vodUrls.push(html.match(/var GvodUrls3 *= *"([^"]*)"/)[1]); + vodUrls.push(html.match(/var GvodUrls4 *= *"([^"]*)"/)[1]); + vodUrls.push(html.match(/var GvodUrls5 *= *"([^"]*)"/)[1]); +}catch(e){ +} +let index=1; +vodUrls.forEach(function (it) { + TABS.push("磁力"+index); + index = index + 1; +}); +log('kuba TABS >>>>>>>>>>>>>>>>>>' + TABS); +`, + lists:`js: +log(TABS); +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +LISTS = []; +let vodUrls=[]; +//log("kuba html>>>>>>>>>>>>>>>>>>>>>>" + html); +try{ + vodUrls.push(html.match(/var GvodUrls1 *= *"([^"]*)"/)[1]); + vodUrls.push(html.match(/var GvodUrls2 *= *"([^"]*)"/)[1]); + vodUrls.push(html.match(/var GvodUrls3 *= *"([^"]*)"/)[1]); + vodUrls.push(html.match(/var GvodUrls4 *= *"([^"]*)"/)[1]); + vodUrls.push(html.match(/var GvodUrls5 *= *"([^"]*)"/)[1]); +}catch(e){ + log('kuba tabs e>>>>>>>>>>>>>>>>>>..' + e); +} +vodUrls.forEach(function (it) { + let epos = it.split("###"); + let d=[]; + epos.forEach(function (it1){ + if (it1.length>0){ + d.push(it1); + } + }); + LISTS.push(d.reverse()); +}); +`, + + }, + 搜索:`js: +pdfh=jsp.pdfh;pdfa=jsp.pdfa;pd=jsp.pd; +let cookie=""; +if (false){ +let new_html=request(HOST, {withHeaders:true}); +let json=JSON.parse(new_html); +let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie"); +if (typeof setCk !== "undefined"){ + let d=[]; + for(const key in json[setCk]){ + if (typeof json[setCk][key] === "string"){ + log("kuba header setCk key>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + json[setCk][key] + " " + (typeof json[setCk][key])); + d.push(json[setCk][key].split(";")[0]); + } + } + cookie=d.join(";"); +} +fetch_params.headers.Cookie=cookie; +rule_fetch_params.headers.Cookie=cookie; +} +log('kuba search cookie >>>>>>>>>>>>>>>>>>>>>' + cookie); + +let params = 'wd='+ encodeURIComponent(KEY) + '&submit='; +let _fetch_params = JSON.parse(JSON.stringify(rule_fetch_params)); +let postData = { + body: params +}; +Object.assign(_fetch_params, postData); +log("kuba search postData>>>>>>>>>>>>>>>" + JSON.stringify(_fetch_params)); +let search_html = post( HOST + '/index.php?m=vod-search', _fetch_params) +search_html = search_html.replace(/