├── 0229.jar ├── 1.json ├── 1.svg ├── 1012.jar ├── 1013.jar ├── 18 千部独家传媒无水印来袭tvlist.txt ├── 18+点播.txt ├── 18+点播文件1.txt ├── 18+磁力点播.txt ├── 18.json ├── 18点播文件.txt ├── 24小时.txt ├── 26+字母.yaml ├── 26zm.json ├── 26字母.yaml ├── 52字母.yaml ├── B站.json ├── DJ.jar ├── DJ.json ├── Yoursmile2.jar ├── clash.yaml ├── clash2singbox.gz ├── emby.py ├── fix1013.jar ├── gh-pages.zip ├── hanguomeinv.jar ├── ktv.jar ├── lf_p2p2_min.js ├── lf_pushagent1_5_min.js ├── lib ├── ali.js ├── ali_api.js ├── cat.js ├── hls.js ├── moli.json ├── pikpakclass.a.json ├── pikpakclass.a.json.txt ├── pikpakclass.json ├── pikpakclass.json.db.gz ├── pikpakclass.json.txt ├── pikpakclass.json.txt.gz ├── pikpakclass.template.json ├── pikpakclass.txt ├── pikpakclass18.json ├── pikpakclass9+9.json ├── pikpakclass9x9.json ├── pikpakclassA.json ├── pikpakclassA.json.txt.gz ├── pikpakclassJAV.json ├── pikpakclassPG18.txt ├── pikpakclasspg18.json ├── quark.js ├── quark_api.js ├── similarity.js ├── tokenm.json ├── tokenm.json.bak └── utils.js ├── neko.txt ├── netflav.jar ├── pg.jar ├── pg └── 必要组件 │ ├── XBPQ.jar │ ├── YouTube.txt │ ├── pg.jar │ ├── pikpakclass.json │ ├── pikpakclass.json.db.gz │ ├── pushshare.zw.txt │ ├── tokentemplate.json │ ├── wgcf.json │ └── 导入我.json ├── sing-box.gz ├── sing-box.json ├── sing11.1.json ├── singbox.json ├── so-v7a.zip ├── so-v8a.zip ├── xray.gz ├── 五妹.html ├── 代理 ├── icon.png ├── pg.jar ├── 样板.json └── 样版.zip ├── 在线直播文件指向.txt ├── 在线直播转点播.js ├── 在线直播转点播文件.txt ├── 央妈.m3u ├── 夸克cookie.txt ├── 女优.json ├── 小猪佩奇.jpg ├── 小米.jar ├── 小🍎.jar ├── 我被富婆包养的日子.zip ├── 放牛4k.jar ├── 有来急救百科.jar ├── 武哥.png ├── 武哥1.png ├── 猫 ├── 1080kk_open.js ├── 13bqg_open.js ├── 18av_open.js ├── 230ts_book_open.js ├── 230ts_open.js ├── 360ba_open.js ├── 555dy_open.js ├── 58dm_open.js ├── 91doutu_open.js ├── 91free_open.js ├── README.md ├── abu_open.js ├── acgwd_open.js ├── adm_open.js ├── alist_open.js ├── anfun_open.js ├── app.js ├── apptov5_open.js ├── appv2.js ├── appysv1.js ├── appysv2.js ├── baozimh_open.js ├── bb_douban_open.js ├── bengou_open.js ├── bili_open.js ├── bilibili.js ├── bilibili_open.js ├── bililive_open.js ├── book18_open.js ├── bookan_book_open.js ├── boosj_open.js ├── build.js ├── caiji.js ├── cntv_open.js ├── config_open.json ├── copymanga_open.js ├── czzy_open.js ├── ddmv_open.js ├── ddys_open.js ├── dj0898_book_open.js ├── djwm_open.js ├── dnys_open.js ├── douban_open.js ├── doubanbb.js ├── douyu_open.js ├── dovx_open.js ├── dsxys_open.js ├── duanju5_open.js ├── duboku2_open.js ├── duboku_open.js ├── dyxs_open.js ├── fengche_open.js ├── ff_open.js ├── freeok_open.js ├── funletu_open.js ├── ggys_open.js ├── hula8_open.js ├── huya_open.js ├── ikanbot_bytecode.js ├── ikanbot_open.js ├── ikanbot_open2.js ├── jinm_open.js ├── jiohub_open.js ├── jojo_bytecode.js ├── kanqiu_open.js ├── kkys_open.js ├── kkys_open2.js ├── klm_open.js ├── kuqimv_open.js ├── kuwo_open.js ├── l0l_open.js ├── lbgs_book_open.js ├── lbgs_book_open2.js ├── lbgs_open.js ├── libvio_open.js ├── lz_open.js ├── maiyoux_open.js ├── mayiya_open.js ├── mfk_open.js ├── mgys_open.js ├── mgys_open2.js ├── miku_open.js ├── mimiju_open.js ├── mino_open.js ├── missav.js ├── mkz_open.js ├── mtsp_open.js ├── mybili_open.js ├── mysp_open.js ├── nangua_open.js ├── ng_open.js ├── ng_open2.js ├── nivod_op.js ├── nivod_open.js ├── nkvod_open.js ├── nm_open.js ├── nmddd_open.js ├── pan99_open.js ├── panghu_open.js ├── pansearch_open.js ├── pansou_open.js ├── push_open.js ├── qfys_open.js ├── qiao2_open.js ├── rbk_open.js ├── rbzj_open.js ├── rttks_open.js ├── sc1080_open.js ├── sharenice_open.js ├── shuyinfm_book_open.js ├── sssp_open.js ├── star_open.js ├── subaibai_open.js ├── testVideo.js ├── tiantian_open.js ├── ting13_book_open.js ├── tutu_open.js ├── tuxiaobei_open.js ├── ubestkid_open.js ├── ufc_open.js ├── upyun_open.js ├── voflix_open.js ├── vsdj_open.js ├── wf_open.js ├── wobg_open.js ├── wogg_open.js ├── wpian_open.js ├── xiaoya.js ├── xiaozhitiao_open.js ├── yiso_open.js ├── yjys_open.js ├── ym_open.js ├── yqktv_open.js ├── yqktv_open2.js ├── yrzj_open.js ├── yunpan4k_open.js ├── yzys_open.js ├── yzz_open.js ├── zhaozy_open.js ├── zjdr_open.js ├── zjm_open.js └── zxzj_open.js ├── 王二小放牛娃.xyz ├── 磁力 ├── pushshare.txt ├── tokentemplate.json └── 磁力+netflav.jar ├── 磁力成人电影系列.txt ├── 磁力搜索.jar ├── 路飞直播转点播.js ├── 路飞豆瓣.js ├── 配置文件.yaml ├── 韩国🇰🇷综艺.txt ├── 香雅情.jar └── 香雅情本地包.zip /0229.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/0229.jar -------------------------------------------------------------------------------- /1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /1012.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/1012.jar -------------------------------------------------------------------------------- /1013.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/1013.jar -------------------------------------------------------------------------------- /18+点播.txt: -------------------------------------------------------------------------------- 1 | #IPTV 2 | 1 3 | #韩国🇰🇷综艺 4 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/24小时.txt 5 | #18 千部独家传媒无水印来袭tvlist 6 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/18 千部独家传媒无水印来袭tvlist.txt 7 | #18+点播 8 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/18点播文件.txt 9 | #18+点播1 10 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/18+点播文件1.txt 11 | -------------------------------------------------------------------------------- /18+磁力点播.txt: -------------------------------------------------------------------------------- 1 | #18+磁力点播 2 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力成人电影系列.txt 3 | #18+万部磁力0 4 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力0.txt 5 | #18+万部磁力1 6 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力1.txt 7 | #18+万部磁力2 8 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力2.txt 9 | #18+万部磁力3 10 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力3.txt 11 | #18+万部磁力4 12 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力4.txt 13 | #18+万部磁力5 14 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力5.txt 15 | #18+万部磁力6 16 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力6.txt 17 | #18+万部磁力7 18 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力7.txt 19 | #18+万部磁力8 20 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力8.txt 21 | #18+万部磁力9 22 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力9.txt 23 | #18+万部磁力10 24 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力10.txt 25 | #18+万部磁力11 26 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力11.txt 27 | #18+万部磁力11 28 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力11.txt 29 | #18+万部磁力12 30 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力12.txt 31 | #18+万部磁力13 32 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力13.txt 33 | #18+万部磁力14 34 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力14.txt 35 | #18+万部磁力15 36 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力15.txt 37 | #18+万部磁力16 38 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力16.txt 39 | #18+万部磁力17 40 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力17.txt 41 | #18+万部磁力18 42 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力18.txt 43 | #18+万部磁力19 44 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力19.txt 45 | #18+万部磁力20 46 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力20.txt 47 | #18+万部磁力21 48 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力21.txt 49 | #18+万部磁力22 50 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力22.txt 51 | #18+万部磁力23 52 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力23.txt 53 | #18+万部磁力24 54 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力24.txt 55 | #18+万部磁力25 56 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力25.txt 57 | #18+万部磁力26 58 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力26.txt 59 | #18+万部磁力27 60 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力27.txt 61 | #18+万部磁力28 62 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力28.txt 63 | #18+万部磁力29 64 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力29.txt 65 | #18+万部磁力30 66 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力30.txt 67 | #18+万部磁力31 68 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力31.txt 69 | #18+万部磁力32 70 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力32.txt 71 | #18+万部磁力33 72 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力33.txt 73 | #18+万部磁力34 74 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力34.txt 75 | #18+万部磁力35 76 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力35.txt 77 | #18+万部磁力36 78 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/磁力/万部磁力36.txt -------------------------------------------------------------------------------- /24小时.txt: -------------------------------------------------------------------------------- 1 | 随机看毛片,#genre# 2 | 1,http://aiyun.work.gd/sjdy.php -------------------------------------------------------------------------------- /52字母.yaml: -------------------------------------------------------------------------------- 1 | mixed-port: 7890 2 | allow-lan: false 3 | bind-address: '*' 4 | mode: rule 5 | log-level: info 6 | external-controller: '127.0.0.1:9090' 7 | dns: 8 | enable: true 9 | ipv6: false 10 | default-nameserver: [223.5.5.5, 223.6.6.6] 11 | enhanced-mode: fake-ip 12 | fake-ip-range: 198.18.0.1/16 13 | use-hosts: true 14 | nameserver: ['https://dns.alidns.com/dns-query'] 15 | fallback: ['https://dns.alidns.com/dns-query', 'https://dns.cloudflare.com/dns-query', 'tls://8.8.4.4:853'] 16 | fallback-filter: { geoip: true, ipcidr: [240.0.0.0/4, 0.0.0.0/32] } 17 | 18 | proxies: 19 | - name: vless-ws-tls-2 20 | type: vless 21 | server: icook.hk 22 | port: 8443 23 | uuid: 73b6dbd5-a27a-4c76-9ad1-42a82380dddb 24 | udp: true 25 | tls: true 26 | network: ws 27 | servername: worker.ariesver.online 28 | ws-opts: 29 | path: "/?ed=2048" 30 | headers: 31 | Host: worker.ariesver.online 32 | 33 | - name: warp-1 34 | type: wireguard 35 | server: 188.114.98.244 36 | port: 987 37 | ip: 172.16.0.2/32 38 | ipv6: 2606:4700:110:86f7:4d4c:8ad2:7372:41b9/128 39 | public-key: bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo= 40 | private-key: gOt0GSXgyRM89twzV2UE/hTDVBT/NWwZwq1Rx03KE3M= 41 | udp: true 42 | reserved: [174,236,8] 43 | keepalive: 45 44 | mtu: 1280 45 | 46 | - name: warp-2 47 | type: wireguard 48 | server: 188.114.98.244 49 | port: 987 50 | ip: 172.16.0.2/32 51 | ipv6: 2606:4700:110:846a:1a0d:7c22:6aea:6fb1/128 52 | public-key: bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo= 53 | private-key: yBqdZrWsTfbO1/oQAJklJO3ikWJKZ+s79UX8wdSf+0k= 54 | udp: true 55 | reserved: [60,80,230] 56 | keepalive: 45 57 | mtu: 1280 58 | 59 | proxy-providers: {WARP: {type: http, path: ./warp.yaml, url: 'https://neko-warp.nloli.xyz/neko_warp.yaml', interval: 3600, health-check: {enable: true, url: 'https://www.gstatic.com/generate_204', interval: 300}}} 60 | proxy-groups: 61 | - { name: PROXY, type: select, proxies: [vless-ws-tls-2, warp-1, warp-2], use: [WARP] } 62 | rule-providers: 63 | reject: { type: http, behavior: domain, url: 'https://mirror.ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/reject.txt', path: ./ruleset/reject.yaml, interval: 86400 } 64 | icloud: { type: http, behavior: domain, url: 'https://mirror.ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/icloud.txt', path: ./ruleset/icloud.yaml, interval: 86400 } 65 | apple: { type: http, behavior: domain, url: 'https://mirror.ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/apple.txt', path: ./ruleset/apple.yaml, interval: 86400 } 66 | proxy: { type: http, behavior: domain, url: 'https://mirror.ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/proxy.txt', path: ./ruleset/proxy.yaml, interval: 86400 } 67 | direct: { type: http, behavior: domain, url: 'https://mirror.ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/direct.txt', path: ./ruleset/direct.yaml, interval: 86400 } 68 | private: { type: http, behavior: domain, url: 'https://mirror.ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/private.txt', path: ./ruleset/private.yaml, interval: 86400 } 69 | telegramcidr: { type: http, behavior: ipcidr, url: 'https://mirror.ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/telegramcidr.txt', path: ./ruleset/telegramcidr.yaml, interval: 86400 } 70 | cncidr: { type: http, behavior: ipcidr, url: 'https://mirror.ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/cncidr.txt', path: ./ruleset/cncidr.yaml, interval: 86400 } 71 | lancidr: { type: http, behavior: ipcidr, url: 'https://mirror.ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/lancidr.txt', path: ./ruleset/lancidr.yaml, interval: 86400 } 72 | applications: { type: http, behavior: classical, url: 'https://mirror.ghproxy.com/https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/applications.txt', path: ./ruleset/applications.yaml, interval: 86400 } 73 | rules: 74 | - 'RULE-SET,applications,DIRECT' 75 | - 'RULE-SET,private,DIRECT' 76 | - 'RULE-SET,reject,REJECT' 77 | - 'RULE-SET,icloud,DIRECT' 78 | - 'RULE-SET,apple,DIRECT' 79 | - 'RULE-SET,proxy,PROXY' 80 | - 'RULE-SET,direct,DIRECT' 81 | - 'RULE-SET,lancidr,DIRECT' 82 | - 'RULE-SET,cncidr,DIRECT' 83 | - 'RULE-SET,telegramcidr,PROXY' 84 | - 'GEOIP,LAN,DIRECT' 85 | - 'GEOIP,CN,DIRECT' 86 | - 'MATCH,PROXY' 87 | -------------------------------------------------------------------------------- /DJ.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/DJ.jar -------------------------------------------------------------------------------- /DJ.json: -------------------------------------------------------------------------------- 1 | { 2 | "规则名": "DJ呦呦音乐网", 3 | "规则作者": "", 4 | "请求头参数": "电脑", 5 | "网页编码格式": "UTF-8", 6 | "图片是否需要代理": "0", 7 | "是否开启获取首页数据": "1", 8 | "首页推荐链接": "http://www.djuu.com", 9 | "首页列表数组规则": "body&&.recommended-list", 10 | "首页片单列表数组规则": "li", 11 | "首页片单是否Jsoup写法": "1", 12 | "首页片单标题": ".index-music-title&&Text", 13 | "首页片单链接": "a&&href", 14 | "首页片单图片": "img&&src", 15 | "首页片单副标题": ".index-music-hit&&b&&Text", 16 | "首页片单链接加前缀": "http://www.djuu.com", 17 | "首页片单链接加后缀": "", 18 | "分类起始页码": "1", 19 | "分类链接": "http://www.djuu.com/{cateId}_{catePg}.html", 20 | "分类名称": "独家舞曲&迪高串烧&中文串烧&外语串烧&中英串烧&喊麦串烧&慢摇串烧&中文串烧&外语串烧&中英串烧&酒吧串烧&喊麦串烧&慢歌串烧&中文慢歌&外语慢歌&中英慢歌&中文Remix&Club&Electro&ProgHouse&VinaHouse&Funky/FunkyHouse&Melbourne&ElectroHouse&Bounce/Vina Bounce&车载版&更多...&外文Remix&中国风&越南鼓&车载版&HOUSE&Electro/Vina/Bass&Bounce/Vina&DeepHouse&FunkyHouse&ProgHouse&BounceHouse&ElectroDutch&ElectroMelbourne&Speed/ClubHouse&TechHouse/Vocal&Nudisco/DiscoHouse&Future/Bigroom/Edm&更多...&霓虹风格&HipHop&RnB&Funky/Rap&Trap&Rock&Pop&Reggae/Moombah&Dubstep&DanceHall&BreakBeat&暖场&蓝调&中文&更多...&Mashup&Mashup&PartyBreak&E.D.M&Remixes&变速/反差&更多...&中文DISCO&国潮中文&DISCO&外文DISCO&Hardstyle/HardBounce&Disco/PopDance&PopTechno&TechnoTrance&更多...&交谊舞曲&快三&慢三&中三&快四&中四&慢四&平四&中慢四&并四&贴面慢四&伦巴&桑巴&六步&恰恰&慢中四&靠步&拉并&牛仔&探戈&摇并&兔子舞&十四步&三步踩&拉丁舞&广场舞&古特巴&慢伦巴&南京小拉&三十二步&更多...", 21 | "分类名称替换词": "exclusive/115&djlist/1&djlist/13&djlist/14&djlist/96&djlist/12&djlist/2&djlist/16&djlist/17&djlist/98&djlist/97&djlist/15&djlist/3&djlist/18&djlist/19&djlist/20&djlist/4&djlist/21&djlist/22&djlist/26&djlist/107&djlist/99&djlist/25&djlist/23&djlist/24&djlist/41&djlist/27&djlist/5&djlist/28&djlist/110&djlist/29&djlist/6&djlist/30&djlist/31&djlist/36&djlist/100&djlist/35&djlist/38&djlist/33&djlist/32&djlist/34&djlist/37&djlist/39&djlist/40&djlist/42&djlist/7&djlist/43&djlist/94&djlist/44&djlist/48&djlist/50&djlist/49&djlist/45&djlist/46&djlist/47&djlist/95&djlist/51&djlist/52&djlist/53&djlist/54&djlist/8&djlist/55&djlist/56&djlist/108&djlist/57&djlist/58&djlist/59&djlist/9&djlist/60&djlist/61&djlist/10&djlist/114&djlist/62&djlist/63&djlist/64&djlist/65&djlist/11&djlist/71&djlist/73&djlist/72&djlist/66&djlist/67&djlist/69&djlist/68&djlist/112&djlist/70&djlist/111&djlist/74&djlist/78&djlist/80&djlist/75&djlist/82&djlist/79&djlist/81&djlist/85&djlist/76&djlist/77&djlist/91&djlist/90&djlist/89&djlist/88&djlist/86&djlist/87&djlist/83&djlist/92&djlist/84&djlist/93", 22 | "筛选数据": {}, 23 | //"筛选数据": "ext", 24 | //{cateId} 25 | "筛选子分类名称": "", 26 | "筛选子分类替换词": "", 27 | //{class} 28 | "筛选类型名称": "", 29 | "筛选类型替换词": "*", 30 | //{area} 31 | "筛选地区名称": "", 32 | "筛选地区替换词": "*", 33 | //{year} 34 | "筛选年份名称": "", 35 | "筛选年份替换词": "*", 36 | //{lang} 37 | "筛选语言名称": "", 38 | "筛选语言替换词": "*", 39 | //{by} 40 | "筛选排序名称": "时间&人气&评分", 41 | "筛选排序替换词": "time&hits&score", 42 | "分类截取模式": "1", 43 | "分类列表数组规则": ".list_musiclist&&tr:has(.isgood_list)", 44 | "分类片单是否Jsoup写法": "1", 45 | "分类片单标题": "a&&title", 46 | "分类片单链接": "a&&href", 47 | "分类片单图片": "img&&src", 48 | "分类片单副标题": ".sc_1&&Text", 49 | "分类片单链接加前缀": "http://www.djuu.com", 50 | "分类片单链接加后缀": "", 51 | "搜索请求头参数": "User-Agent$电脑", 52 | "搜索链接": "http://www.djuu.com/search?musicname={wd}&list=2&cid=0&page=1", 53 | "POST请求数据": "", 54 | "搜索截取模式": "1", 55 | "搜索列表数组规则": ".list_musiclist&&tr:has(.isgood_list)", 56 | "搜索片单是否Jsoup写法": "1", 57 | "搜索片单图片": "img&&src", 58 | "搜索片单标题": "a&&title", 59 | "搜索片单链接": "a&&href", 60 | "搜索片单副标题": ".sc_2&&Text", 61 | "搜索片单链接加前缀": "http://www.djuu.com", 62 | "搜索片单链接加后缀": "", 63 | "链接是否直接播放": "1", 64 | "直接播放链接加前缀": "", 65 | "直接播放链接加后缀": "", 66 | "直接播放直链视频请求头": "", 67 | "是否开启手动嗅探": "1", 68 | "手动嗅探视频链接关键词": ".mp4#.m4a#.mp3#.aac#.m3u8#.flv#video/tos", 69 | "手动嗅探视频链接过滤词": ".html#=http" 70 | } -------------------------------------------------------------------------------- /Yoursmile2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/Yoursmile2.jar -------------------------------------------------------------------------------- /clash2singbox.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/clash2singbox.gz -------------------------------------------------------------------------------- /fix1013.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/fix1013.jar -------------------------------------------------------------------------------- /gh-pages.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/gh-pages.zip -------------------------------------------------------------------------------- /hanguomeinv.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/hanguomeinv.jar -------------------------------------------------------------------------------- /ktv.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/ktv.jar -------------------------------------------------------------------------------- /lib/ali.js: -------------------------------------------------------------------------------- 1 | function _0x4aa5(_0x48caa3,_0x315644){const _0x2164f9=_0x574f();return _0x4aa5=function(_0x5e2b05,_0x179281){_0x5e2b05=_0x5e2b05-0x164;let _0x164327=_0x2164f9[_0x5e2b05];return _0x164327;},_0x4aa5(_0x48caa3,_0x315644);}(function(_0x5f4666,_0x55a733){const _0x4589e5=_0x4aa5,_0xd355a0=_0x5f4666();while(!![]){try{const _0x1e1fc1=-parseInt(_0x4589e5(0x174))/0x1+-parseInt(_0x4589e5(0x168))/0x2+-parseInt(_0x4589e5(0x167))/0x3+parseInt(_0x4589e5(0x17e))/0x4*(parseInt(_0x4589e5(0x17b))/0x5)+parseInt(_0x4589e5(0x164))/0x6+parseInt(_0x4589e5(0x16c))/0x7+parseInt(_0x4589e5(0x181))/0x8*(-parseInt(_0x4589e5(0x177))/0x9);if(_0x1e1fc1===_0x55a733)break;else _0xd355a0['push'](_0xd355a0['shift']());}catch(_0x265350){_0xd355a0['push'](_0xd355a0['shift']());}}}(_0x574f,0x20821));const _0x179281=(function(){let _0x4eda66=!![];return function(_0x55af6d,_0x22e5f4){const _0x4a4b00=_0x4eda66?function(){const _0x5ab790=_0x4aa5;if(_0x22e5f4){const _0x1659b9=_0x22e5f4[_0x5ab790(0x169)](_0x55af6d,arguments);return _0x22e5f4=null,_0x1659b9;}}:function(){};return _0x4eda66=![],_0x4a4b00;};}()),_0x5e2b05=_0x179281(this,function(){const _0x11faca=_0x4aa5;let _0x2fa19b;try{const _0x3ff2b9=Function('return\x20(fu'+'nction()\x20'+(_0x11faca(0x16a)+_0x11faca(0x176)+_0x11faca(0x17a)+'\x20)')+');');_0x2fa19b=_0x3ff2b9();}catch(_0x25b157){_0x2fa19b=window;}const _0x3c5f06=_0x2fa19b['console']=_0x2fa19b['console']||{},_0x39a2bd=[_0x11faca(0x16e),_0x11faca(0x17d),'info','error',_0x11faca(0x17f),_0x11faca(0x183),'trace'];for(let _0x3fb5be=0x0;_0x3fb5be<_0x39a2bd[_0x11faca(0x173)];_0x3fb5be++){const _0x47f835=_0x179281[_0x11faca(0x16f)+'r'][_0x11faca(0x165)][_0x11faca(0x175)](_0x179281),_0xdc762c=_0x39a2bd[_0x3fb5be],_0x525bd5=_0x3c5f06[_0xdc762c]||_0x47f835;_0x47f835['__proto__']=_0x179281['bind'](_0x179281),_0x47f835[_0x11faca(0x172)]=_0x525bd5[_0x11faca(0x172)]['bind'](_0x525bd5),_0x3c5f06[_0xdc762c]=_0x47f835;}});_0x5e2b05();import{_}from'assets://js/lib/cat.js';import{initSome,setToken,getVod,playerContent,playerContentByFlag}from'./ali_api.js';const aliPattern=/(www.aliyundrive.com|www.alipan.com)\/s\/([^\/]+)(\/folder\/([^\/]+))?/;async function initAli(_0x413000){await initSome(),setToken(_0x413000);}async function detailContent(_0x4bc326){const _0x1a33eb=_0x4aa5;let _0x54bbc1=_0x4bc326['match'](aliPattern),_0x7888de=await parseVod(_0x54bbc1,_0x4bc326);const _0x9e9dd1={};_0x9e9dd1[_0x1a33eb(0x178)]=[_0x7888de];let _0x197b45=JSON['stringify'](_0x9e9dd1);return _0x197b45;}async function parseVod(_0x10689f,_0x1108c0){if(_['isEmpty'](_0x10689f))return{};let _0x474eae=_0x10689f[0x2],_0x36fe63=_0x10689f['length']>0x4?_0x10689f[0x4]:'';return await getVod(_0x474eae,_0x1108c0,_0x36fe63);}async function playContent(_0x52c526,_0x421b73,_0x4f10f8){const _0x3b573d=_0x4aa5;let _0x4fe837=_0x421b73['split']('+');_0x52c526=_0x52c526['split']('#')[0x0];let _0x2e68e0=_0x52c526=='原画'?await playerContent(_0x4fe837):await playerContentByFlag(_0x4fe837,_0x52c526);return console[_0x3b573d(0x186)](_0x3b573d(0x16b)+_0x3b573d(0x17c)+_0x3b573d(0x185)),console[_0x3b573d(0x186)](_0x2e68e0),_0x2e68e0;}function _0x574f(){const _0x44da7e=['prototype','isEmpty','374088ntufPj','121556CEjSKd','apply','{}.constru','-----playC','1731275IhHZho','vod_play_u','log','constructo','match','普画#','toString','length','125186RUUvVq','bind','ctor(\x22retu','3744KZBwKz','list','原画#','rn\x20this\x22)(','577405PyhvtD','ontent----','warn','4TSKBsq','exception','push','2832JFmsUo','join','table','$$$','---','debug','1369626tULFbE'];_0x574f=function(){return _0x44da7e;};return _0x574f();}function detailContentVodPlayFrom(_0xbe55e7){const _0x3fa4bc=_0x4aa5;let _0x305855=[];if(_0xbe55e7[_0x3fa4bc(0x173)]<0x2)return['原画','普画'][_0x3fa4bc(0x182)](_0x3fa4bc(0x184));for(let _0x241caf=0x1;_0x241caf<=_0xbe55e7[_0x3fa4bc(0x173)];_0x241caf++){_0x305855['push'](_0x3fa4bc(0x179)+_0x241caf),_0x305855[_0x3fa4bc(0x180)](_0x3fa4bc(0x171)+_0x241caf);}return _0x305855[_0x3fa4bc(0x182)](_0x3fa4bc(0x184));}async function detailContentVodPlayUrl(_0x2b2389){const _0x3ba1ef=_0x4aa5;let _0x2f0a10=[];for(var _0x954556 of _0x2b2389){let _0x5a95a4=_0x954556[_0x3ba1ef(0x170)](aliPattern);if(!_[_0x3ba1ef(0x166)](_0x5a95a4)){let _0x139a04=await parseVod(_0x5a95a4,_0x954556);_0x2f0a10['push'](_0x139a04[_0x3ba1ef(0x16d)+'rl']);}}return _0x2f0a10[_0x3ba1ef(0x182)](_0x3ba1ef(0x184));}export{initAli,detailContent,playContent,detailContentVodPlayFrom,detailContentVodPlayUrl,aliPattern}; -------------------------------------------------------------------------------- /lib/pikpakclass.a.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"type_id":"VNmu4Q-HzZNcJ9ApOf4VglvKo1", "type_name":"小鹿酱" }, 3 | {"type_id":"VNe2OVun3g5VSL8NmjxelhUro1", "type_name":"啦啦啦" }, 4 | {"type_id":"VNkBMu0vdkfSHwndgSiN6AEmo1", "type_name":"Mikami" }, 5 | {"type_id":"VN_E3f3S4kd-pzSwj_wyfBO5o1", "type_name":"水果派解説原片" }, 6 | {"type_id":"VNeKEWmy_KT-5868f3NKX40co1", "type_name":"MoneyTalks1-175" }, 7 | {"type_id":"VNAJ9LIro80zB7S0VkX8nV-to1", "type_name":"大人學習" }, 8 | {"type_id":"https://mypikpak.com/s/VNU_LtkwJxIH-Z8BdmnvBSRco1", "type_name":"無碼流出" }, 9 | {"type_id":"https://mypikpak.com/s/VNTS5lxi8GICdZuOHFMs6v62o1", "type_name":"Sukebei" }, 10 | {"type_id":"https://mypikpak.com/s/VNSkrjJwm_1qJ3-F6UAjx5keo1", "type_name":"JapanHDV" }, 11 | {"type_id":"https://mypikpak.com/s/VNRcUOm1CfOipBFoWCX5ze_Io1", "type_name":"kebei" }, 12 | {"type_id":"https://mypikpak.com/s/VNSkLdbYCVr60cvXH2SFHFZMo1","type_name":"JAVHD-1"}, 13 | {"type_id":"https://mypikpak.com/s/VNSkXGZHfjBNMe2QeCYe_BeWo1","type_name":"JAVHD-2"}, 14 | {"type_id":"https://mypikpak.com/s/VNSkaFCaTmv_e5rMH4yBOR5ko1","type_name":"JAVHD-3"}, 15 | {"type_id":"https://mypikpak.com/s/VNNC7fVl-BUEYOWOgnEEYLOXo1","type_name":"JAVHD-4"}, 16 | {"type_id":"https://mypikpak.com/s/VNNC8sHriw-tJEISTvv8aeu3o1","type_name":"JAVHD-5"}, 17 | {"type_id":"https://mypikpak.com/s/VNNCE73t-BUEYOWOgnEE_XRRo1","type_name":"JAVHD-6"}, 18 | {"type_id":"https://mypikpak.com/s/VNRTJmtoUU9njJORhurw11yno1","type_name":"小姐姐合集/JAV·合集一"}, 19 | {"type_id":"https://mypikpak.com/s/VNRTK-coQgqv_6lSY5Z77EsTo1","type_name":"小姐姐合集/JAV·合集二"}, 20 | {"type_id":"https://mypikpak.com/s/VNRTKZ_XBGyw1kt1HkijOLdEo1","type_name":"小姐姐合集/JAV·合集三"}, 21 | {"type_id":"https://mypikpak.com/s/VNRTKxEQg3b_VYsn0bCwpIU4o1","type_name":"小姐姐合集/JAV·合集四"}, 22 | {"type_id":"https://mypikpak.com/s/VNRTLKT9roRROhEkho_4rljgo1","type_name":"小姐姐合集/JAV·合集五"}, 23 | {"type_id":"https://mypikpak.com/s/VNRTL_5Xg3b_VYsn0bCwpQ5Ho1","type_name":"小姐姐合集/JAV·合集六"}, 24 | {"type_id":"https://mypikpak.com/s/VNRTLn0oLmyyX7yiCb6t4x21o1","type_name":"小姐姐合集/JAV·合集七"}, 25 | {"type_id":"https://mypikpak.com/s/VNRTLxzUUU9njJORhurw2-mfo1","type_name":"小姐姐合集/JAV·合集八"}, 26 | {"type_id":"https://mypikpak.com/s/VNRTMAMwyM2NQYlKo78MGnSjo1","type_name":"小姐姐合集/JAV·合集九"}, 27 | {"type_id":"https://mypikpak.com/s/VNRTMMUlyM2NQYlKo78MGusso1","type_name":"小姐姐合集/JAV·合集十"}, 28 | {"type_id":"https://mypikpak.com/s/VNRlNLARLmyy1Vm25CJPpc0Xo1","type_name":"小姐姐合集/JAV·合集十一"}, 29 | {"type_id":"https://mypikpak.com/s/VNRTMkXeCfOi1Zl2Ft25WvKoo1","type_name":"小姐姐合集/JAV·合集十二"}, 30 | {"type_id":"https://mypikpak.com/s/VNRTN6USg3b_VYsn0bCwpjsoo1","type_name":"小姐姐合集/JAV·合集十三"}, 31 | {"type_id":"https://mypikpak.com/s/VNRTNIk9CfOi1Zl2Ft25X4kEo1","type_name":"小姐姐合集/JAV·合集十四"}, 32 | {"type_id":"https://mypikpak.com/s/VNRTNUm4Qgqv_6lSY5Z78-NZo1","type_name":"小姐姐合集/JAV·合集十五"}, 33 | {"type_id":"https://mypikpak.com/s/VNRTNg-1roRROhEkho_4sEJSo1","type_name":"小姐姐合集/JAV·合集十六"}, 34 | {"type_id":"https://mypikpak.com/s/VNRTNzlRg3b_VYsn0bCwpu1Xo1","type_name":"小姐姐合集/JAV·合集十七"}, 35 | {"type_id":"https://mypikpak.com/s/VNRTOE3uLmyyX7yiCb6t5Rpjo1","type_name":"小姐姐合集/AV·合集一"}, 36 | {"type_id":"https://mypikpak.com/s/VNRTOYLHLmyyX7yiCb6t5WnHo1","type_name":"小姐姐合集/[短视频]慢更中20"}, 37 | {"type_id":"https://mypikpak.com/s/VNRTOvHXLmyyX7yiCb6t5ajbo1","type_name":"小姐姐合集/已整理"}, 38 | {"type_id":"https://mypikpak.com/s/VNRTPCbFCfOi1Zl2Ft25XZs9o1","type_name":"小姐姐合集/未分类"}, 39 | {"type_id":"https://mypikpak.com/s/VNRcUOm1CfOipBFoWCX5ze_Io1","type_name":"/🕸️我的PikPak分享/鱼香肉丝合集"}, 40 | { "type_id":"https://mypikpak.com/s/VN7POm7LowF1qF1kF49QLNXxo1", "type_name":"10TB的溫暖夢想" }, 41 | { "type_id":"https://mypikpak.com/s/VNCPXiB0Ku8QWqR3EVQfzTpEo1", "type_name":"日本學習" } 42 | ] 43 | -------------------------------------------------------------------------------- /lib/pikpakclass.json.db.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/lib/pikpakclass.json.db.gz -------------------------------------------------------------------------------- /lib/pikpakclass.json.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/lib/pikpakclass.json.txt.gz -------------------------------------------------------------------------------- /lib/pikpakclass.template.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type_id":"pikpak分享地址1", 4 | "type_name":"分享名稱1" 5 | }, 6 | { 7 | "type_id":"pikpak分享地址2", 8 | "type_name":"分享名稱2" 9 | } 10 | ] 11 | -------------------------------------------------------------------------------- /lib/pikpakclass18.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"type_id":"https://mypikpak.com/s/VNU_LtkwJxIH-Z8BdmnvBSRco1", "type_name":"無碼流出" }, 3 | {"type_id":"https://mypikpak.com/s/VNTS5lxi8GICdZuOHFMs6v62o1", "type_name":"Sukebei" }, 4 | {"type_id":"https://mypikpak.com/s/VNSkrjJwm_1qJ3-F6UAjx5keo1", "type_name":"JapanHDV" }, 5 | {"type_id":"https://mypikpak.com/s/VNRcUOm1CfOipBFoWCX5ze_Io1", "type_name":"kebei" }, 6 | {"type_id":"https://mypikpak.com/s/VNSkLdbYCVr60cvXH2SFHFZMo1","type_name":"JAVHD-1"}, 7 | {"type_id":"https://mypikpak.com/s/VNSkXGZHfjBNMe2QeCYe_BeWo1","type_name":"JAVHD-2"}, 8 | {"type_id":"https://mypikpak.com/s/VNSkaFCaTmv_e5rMH4yBOR5ko1","type_name":"JAVHD-3"}, 9 | {"type_id":"https://mypikpak.com/s/VNNC7fVl-BUEYOWOgnEEYLOXo1","type_name":"JAVHD-4"}, 10 | {"type_id":"https://mypikpak.com/s/VNNC8sHriw-tJEISTvv8aeu3o1","type_name":"JAVHD-5"}, 11 | {"type_id":"https://mypikpak.com/s/VNNCE73t-BUEYOWOgnEE_XRRo1","type_name":"JAVHD-6"} 12 | ] 13 | -------------------------------------------------------------------------------- /lib/pikpakclass9+9.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"type_id":"https://mypikpak.com/s/VNRTOE3uLmyyX7yiCb6t5Rpjo1","type_name":"小姐姐合集/AV·合集一"}, 3 | {"type_id":"https://mypikpak.com/s/VNRTOYLHLmyyX7yiCb6t5WnHo1","type_name":"小姐姐合集/[短视频]慢更中20"}, 4 | {"type_id":"https://mypikpak.com/s/VNRTOvHXLmyyX7yiCb6t5ajbo1","type_name":"小姐姐合集/已整理"}, 5 | {"type_id":"https://mypikpak.com/s/VNRTPCbFCfOi1Zl2Ft25XZs9o1","type_name":"小姐姐合集/未分类"}, 6 | { "type_id":"https://mypikpak.com/s/VN7POm7LowF1qF1kF49QLNXxo1", "type_name":"10TB的溫暖夢想" }, 7 | { "type_id":"https://mypikpak.com/s/VNCPXiB0Ku8QWqR3EVQfzTpEo1", "type_name":"日本學習" } 8 | ] 9 | -------------------------------------------------------------------------------- /lib/pikpakclass9x9.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "type_id": "https://mypikpak.com/s/VNhutZo1QtL6EGkutSny4rGjo1", 4 | "type_name": "A区" 5 | }, 6 | { 7 | "type_id": "https://mypikpak.com/s/VNU_LtkwJxIH-Z8BdmnvBSRco1", 8 | "type_name": "B区" 9 | }, 10 | { 11 | "type_id":"https://mypikpak.com/s/VNmtxa-_MHBYMSCIDt7xlHgYo1", 12 | "type_name":"C区" 13 | }, 14 | { 15 | "type_id":"https://mypikpak.com/s/VNe2OVun3g5VSL8NmjxelhUro1", 16 | "type_name":"D区" 17 | }, 18 | {"type_id":"https://mypikpak.com/s/VNRcUOm1CfOipBFoWCX5ze_Io1","type_name":"鱼香肉丝合集"}, 19 | {"type_id":"VNkBMu0vdkfSHwndgSiN6AEmo1", "type_name":"Mikami" }, 20 | {"type_id":"VN_E3f3S4kd-pzSwj_wyfBO5o1", "type_name":"水果派解説原片" }, 21 | {"type_id":"VNeKEWmy_KT-5868f3NKX40co1", "type_name":"MoneyTalks1-175" }, 22 | {"type_id":"VNAJ9LIro80zB7S0VkX8nV-to1", "type_name":"大人學習" }, 23 | {"type_id":"https://mypikpak.com/s/VNRTOE3uLmyyX7yiCb6t5Rpjo1","type_name":"小姐姐合集/AV·合集一"}, 24 | {"type_id":"https://mypikpak.com/s/VNRTOYLHLmyyX7yiCb6t5WnHo1","type_name":"小姐姐合集/[短视频]慢更中20"}, 25 | {"type_id":"https://mypikpak.com/s/VNRTOvHXLmyyX7yiCb6t5ajbo1","type_name":"小姐姐合集/已整理"}, 26 | {"type_id":"https://mypikpak.com/s/VNRTPCbFCfOi1Zl2Ft25XZs9o1","type_name":"小姐姐合集/未分类"}, 27 | { "type_id":"https://mypikpak.com/s/VN7POm7LowF1qF1kF49QLNXxo1", "type_name":"10TB的溫暖夢想" }, 28 | { "type_id":"https://mypikpak.com/s/VNCPXiB0Ku8QWqR3EVQfzTpEo1", "type_name":"日本學習" } 29 | ] 30 | -------------------------------------------------------------------------------- /lib/pikpakclassA.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"type_id":"VNU_LtkwJxIH-Z8BdmnvBSRco1", "type_name":"无码流出" }, 3 | {"type_id":"VNg8n4V3HVya6Hs18Y3kEG_qo1", "type_name":"Erika-Chan"}, 4 | {"type_id":"VNmu4Q-HzZNcJ9ApOf4VglvKo1", "type_name":"小鹿酱" }, 5 | {"type_id":"VNe2OVun3g5VSL8NmjxelhUro1", "type_name":"啦啦啦" }, 6 | {"type_id":"VNkBMu0vdkfSHwndgSiN6AEmo1", "type_name":"Mikami" }, 7 | {"type_id":"VN_E3f3S4kd-pzSwj_wyfBO5o1", "type_name":"水果派解説原片" }, 8 | {"type_id":"VNeKEWmy_KT-5868f3NKX40co1", "type_name":"MoneyTalks1-175" }, 9 | {"type_id":"VNAJ9LIro80zB7S0VkX8nV-to1", "type_name":"大人學習" }, 10 | {"type_id":"https://mypikpak.com/s/VNU_LtkwJxIH-Z8BdmnvBSRco1", "type_name":"無碼流出" }, 11 | {"type_id":"https://mypikpak.com/s/VNTS5lxi8GICdZuOHFMs6v62o1", "type_name":"Sukebei" }, 12 | {"type_id":"https://mypikpak.com/s/VNSkrjJwm_1qJ3-F6UAjx5keo1", "type_name":"JapanHDV" }, 13 | {"type_id":"https://mypikpak.com/s/VNRcUOm1CfOipBFoWCX5ze_Io1", "type_name":"kebei" }, 14 | {"type_id":"https://mypikpak.com/s/VNSkLdbYCVr60cvXH2SFHFZMo1","type_name":"JAVHD-1"}, 15 | {"type_id":"https://mypikpak.com/s/VNSkXGZHfjBNMe2QeCYe_BeWo1","type_name":"JAVHD-2"}, 16 | {"type_id":"https://mypikpak.com/s/VNSkaFCaTmv_e5rMH4yBOR5ko1","type_name":"JAVHD-3"}, 17 | {"type_id":"https://mypikpak.com/s/VNNC7fVl-BUEYOWOgnEEYLOXo1","type_name":"JAVHD-4"}, 18 | {"type_id":"https://mypikpak.com/s/VNNC8sHriw-tJEISTvv8aeu3o1","type_name":"JAVHD-5"}, 19 | {"type_id":"https://mypikpak.com/s/VNNCE73t-BUEYOWOgnEE_XRRo1","type_name":"JAVHD-6"}, 20 | {"type_id":"https://mypikpak.com/s/VNRTJmtoUU9njJORhurw11yno1","type_name":"小姐姐合集/JAV·合集一"}, 21 | {"type_id":"https://mypikpak.com/s/VNRTK-coQgqv_6lSY5Z77EsTo1","type_name":"小姐姐合集/JAV·合集二"}, 22 | {"type_id":"https://mypikpak.com/s/VNRTKZ_XBGyw1kt1HkijOLdEo1","type_name":"小姐姐合集/JAV·合集三"}, 23 | {"type_id":"https://mypikpak.com/s/VNRTKxEQg3b_VYsn0bCwpIU4o1","type_name":"小姐姐合集/JAV·合集四"}, 24 | {"type_id":"https://mypikpak.com/s/VNRTLKT9roRROhEkho_4rljgo1","type_name":"小姐姐合集/JAV·合集五"}, 25 | {"type_id":"https://mypikpak.com/s/VNRTL_5Xg3b_VYsn0bCwpQ5Ho1","type_name":"小姐姐合集/JAV·合集六"}, 26 | {"type_id":"https://mypikpak.com/s/VNRTLn0oLmyyX7yiCb6t4x21o1","type_name":"小姐姐合集/JAV·合集七"}, 27 | {"type_id":"https://mypikpak.com/s/VNRTLxzUUU9njJORhurw2-mfo1","type_name":"小姐姐合集/JAV·合集八"}, 28 | {"type_id":"https://mypikpak.com/s/VNRTMAMwyM2NQYlKo78MGnSjo1","type_name":"小姐姐合集/JAV·合集九"}, 29 | {"type_id":"https://mypikpak.com/s/VNRTMMUlyM2NQYlKo78MGusso1","type_name":"小姐姐合集/JAV·合集十"}, 30 | {"type_id":"https://mypikpak.com/s/VNRlNLARLmyy1Vm25CJPpc0Xo1","type_name":"小姐姐合集/JAV·合集十一"}, 31 | {"type_id":"https://mypikpak.com/s/VNRTMkXeCfOi1Zl2Ft25WvKoo1","type_name":"小姐姐合集/JAV·合集十二"}, 32 | {"type_id":"https://mypikpak.com/s/VNRTN6USg3b_VYsn0bCwpjsoo1","type_name":"小姐姐合集/JAV·合集十三"}, 33 | {"type_id":"https://mypikpak.com/s/VNRTNIk9CfOi1Zl2Ft25X4kEo1","type_name":"小姐姐合集/JAV·合集十四"}, 34 | {"type_id":"https://mypikpak.com/s/VNRTNUm4Qgqv_6lSY5Z78-NZo1","type_name":"小姐姐合集/JAV·合集十五"}, 35 | {"type_id":"https://mypikpak.com/s/VNRTNg-1roRROhEkho_4sEJSo1","type_name":"小姐姐合集/JAV·合集十六"}, 36 | {"type_id":"https://mypikpak.com/s/VNRTNzlRg3b_VYsn0bCwpu1Xo1","type_name":"小姐姐合集/JAV·合集十七"}, 37 | {"type_id":"https://mypikpak.com/s/VNRTOE3uLmyyX7yiCb6t5Rpjo1","type_name":"小姐姐合集/AV·合集一"}, 38 | {"type_id":"https://mypikpak.com/s/VNRTOYLHLmyyX7yiCb6t5WnHo1","type_name":"小姐姐合集/[短视频]慢更中20"}, 39 | {"type_id":"https://mypikpak.com/s/VNRTOvHXLmyyX7yiCb6t5ajbo1","type_name":"小姐姐合集/已整理"}, 40 | {"type_id":"https://mypikpak.com/s/VNRTPCbFCfOi1Zl2Ft25XZs9o1","type_name":"小姐姐合集/未分类"}, 41 | {"type_id":"https://mypikpak.com/s/VNRcUOm1CfOipBFoWCX5ze_Io1","type_name":"/🕸️我的PikPak分享/鱼香肉丝合集"}, 42 | {"type_id":"https://mypikpak.com/s/VN7POm7LowF1qF1kF49QLNXxo1", "type_name":"10TB的溫暖夢想" }, 43 | {"type_id":"https://mypikpak.com/s/VNCPXiB0Ku8QWqR3EVQfzTpEo1", "type_name":"日本學習" }, 44 | {"type_id":"VNn7GqGA9q5iwZBZJi7mIGe6o1", "type_name":"UHDの推薦珍藏 曾經火爆全網的南韓少婦3p超清源版文檔" } 45 | ] 46 | -------------------------------------------------------------------------------- /lib/pikpakclassA.json.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/lib/pikpakclassA.json.txt.gz -------------------------------------------------------------------------------- /lib/pikpakclassJAV.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"type_id":"https://mypikpak.com/s/VNRTJmtoUU9njJORhurw11yno1","type_name":"小姐姐合集/JAV·合集一"}, 3 | {"type_id":"https://mypikpak.com/s/VNRTK-coQgqv_6lSY5Z77EsTo1","type_name":"小姐姐合集/JAV·合集二"}, 4 | {"type_id":"https://mypikpak.com/s/VNRTKZ_XBGyw1kt1HkijOLdEo1","type_name":"小姐姐合集/JAV·合集三"}, 5 | {"type_id":"https://mypikpak.com/s/VNRTKxEQg3b_VYsn0bCwpIU4o1","type_name":"小姐姐合集/JAV·合集四"}, 6 | {"type_id":"https://mypikpak.com/s/VNRTLKT9roRROhEkho_4rljgo1","type_name":"小姐姐合集/JAV·合集五"}, 7 | {"type_id":"https://mypikpak.com/s/VNRTL_5Xg3b_VYsn0bCwpQ5Ho1","type_name":"小姐姐合集/JAV·合集六"}, 8 | {"type_id":"https://mypikpak.com/s/VNRTLn0oLmyyX7yiCb6t4x21o1","type_name":"小姐姐合集/JAV·合集七"}, 9 | {"type_id":"https://mypikpak.com/s/VNRTLxzUUU9njJORhurw2-mfo1","type_name":"小姐姐合集/JAV·合集八"}, 10 | {"type_id":"https://mypikpak.com/s/VNRTMAMwyM2NQYlKo78MGnSjo1","type_name":"小姐姐合集/JAV·合集九"}, 11 | {"type_id":"https://mypikpak.com/s/VNRTMMUlyM2NQYlKo78MGusso1","type_name":"小姐姐合集/JAV·合集十"}, 12 | {"type_id":"https://mypikpak.com/s/VNRlNLARLmyy1Vm25CJPpc0Xo1","type_name":"小姐姐合集/JAV·合集十一"}, 13 | {"type_id":"https://mypikpak.com/s/VNRTMkXeCfOi1Zl2Ft25WvKoo1","type_name":"小姐姐合集/JAV·合集十二"}, 14 | {"type_id":"https://mypikpak.com/s/VNRTN6USg3b_VYsn0bCwpjsoo1","type_name":"小姐姐合集/JAV·合集十三"}, 15 | {"type_id":"https://mypikpak.com/s/VNRTNIk9CfOi1Zl2Ft25X4kEo1","type_name":"小姐姐合集/JAV·合集十四"}, 16 | {"type_id":"https://mypikpak.com/s/VNRTNUm4Qgqv_6lSY5Z78-NZo1","type_name":"小姐姐合集/JAV·合集十五"}, 17 | {"type_id":"https://mypikpak.com/s/VNRTNg-1roRROhEkho_4sEJSo1","type_name":"小姐姐合集/JAV·合集十六"}, 18 | {"type_id":"https://mypikpak.com/s/VNRTNzlRg3b_VYsn0bCwpu1Xo1","type_name":"小姐姐合集/JAV·合集十七"} 19 | ] 20 | -------------------------------------------------------------------------------- /lib/pikpakclasspg18.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"type_id":"VNkBMu0vdkfSHwndgSiN6AEmo1", "type_name":"Mikami" }, 3 | {"type_id":"VN_E3f3S4kd-pzSwj_wyfBO5o1", "type_name":"水果派解説原片" }, 4 | {"type_id":"VNeKEWmy_KT-5868f3NKX40co1", "type_name":"MoneyTalks1-175" }, 5 | {"type_id":"VNAJ9LIro80zB7S0VkX8nV-to1", "type_name":"大人學習" }, 6 | {"type_id":"https://mypikpak.com/s/VNU_LtkwJxIH-Z8BdmnvBSRco1", "type_name":"無碼流出" }, 7 | {"type_id":"https://mypikpak.com/s/VNTS5lxi8GICdZuOHFMs6v62o1", "type_name":"Sukebei" }, 8 | {"type_id":"https://mypikpak.com/s/VNSkrjJwm_1qJ3-F6UAjx5keo1", "type_name":"JapanHDV" }, 9 | {"type_id":"https://mypikpak.com/s/VNRcUOm1CfOipBFoWCX5ze_Io1", "type_name":"kebei" }, 10 | {"type_id":"https://mypikpak.com/s/VNSkLdbYCVr60cvXH2SFHFZMo1","type_name":"JAVHD-1"}, 11 | {"type_id":"https://mypikpak.com/s/VNSkXGZHfjBNMe2QeCYe_BeWo1","type_name":"JAVHD-2"}, 12 | {"type_id":"https://mypikpak.com/s/VNSkaFCaTmv_e5rMH4yBOR5ko1","type_name":"JAVHD-3"}, 13 | {"type_id":"https://mypikpak.com/s/VNNC7fVl-BUEYOWOgnEEYLOXo1","type_name":"JAVHD-4"}, 14 | {"type_id":"https://mypikpak.com/s/VNNC8sHriw-tJEISTvv8aeu3o1","type_name":"JAVHD-5"}, 15 | {"type_id":"https://mypikpak.com/s/VNNCE73t-BUEYOWOgnEE_XRRo1","type_name":"JAVHD-6"}, 16 | {"type_id":"https://mypikpak.com/s/VNRTJmtoUU9njJORhurw11yno1","type_name":"小姐姐合集/JAV·合集一"}, 17 | {"type_id":"https://mypikpak.com/s/VNRTK-coQgqv_6lSY5Z77EsTo1","type_name":"小姐姐合集/JAV·合集二"}, 18 | {"type_id":"https://mypikpak.com/s/VNRTKZ_XBGyw1kt1HkijOLdEo1","type_name":"小姐姐合集/JAV·合集三"}, 19 | {"type_id":"https://mypikpak.com/s/VNRTKxEQg3b_VYsn0bCwpIU4o1","type_name":"小姐姐合集/JAV·合集四"}, 20 | {"type_id":"https://mypikpak.com/s/VNRTLKT9roRROhEkho_4rljgo1","type_name":"小姐姐合集/JAV·合集五"}, 21 | {"type_id":"https://mypikpak.com/s/VNRTL_5Xg3b_VYsn0bCwpQ5Ho1","type_name":"小姐姐合集/JAV·合集六"}, 22 | {"type_id":"https://mypikpak.com/s/VNRTLn0oLmyyX7yiCb6t4x21o1","type_name":"小姐姐合集/JAV·合集七"}, 23 | {"type_id":"https://mypikpak.com/s/VNRTLxzUUU9njJORhurw2-mfo1","type_name":"小姐姐合集/JAV·合集八"}, 24 | {"type_id":"https://mypikpak.com/s/VNRTMAMwyM2NQYlKo78MGnSjo1","type_name":"小姐姐合集/JAV·合集九"}, 25 | {"type_id":"https://mypikpak.com/s/VNRTMMUlyM2NQYlKo78MGusso1","type_name":"小姐姐合集/JAV·合集十"}, 26 | {"type_id":"https://mypikpak.com/s/VNRlNLARLmyy1Vm25CJPpc0Xo1","type_name":"小姐姐合集/JAV·合集十一"}, 27 | {"type_id":"https://mypikpak.com/s/VNRTMkXeCfOi1Zl2Ft25WvKoo1","type_name":"小姐姐合集/JAV·合集十二"}, 28 | {"type_id":"https://mypikpak.com/s/VNRTN6USg3b_VYsn0bCwpjsoo1","type_name":"小姐姐合集/JAV·合集十三"}, 29 | {"type_id":"https://mypikpak.com/s/VNRTNIk9CfOi1Zl2Ft25X4kEo1","type_name":"小姐姐合集/JAV·合集十四"}, 30 | {"type_id":"https://mypikpak.com/s/VNRTNUm4Qgqv_6lSY5Z78-NZo1","type_name":"小姐姐合集/JAV·合集十五"}, 31 | {"type_id":"https://mypikpak.com/s/VNRTNg-1roRROhEkho_4sEJSo1","type_name":"小姐姐合集/JAV·合集十六"}, 32 | {"type_id":"https://mypikpak.com/s/VNRTNzlRg3b_VYsn0bCwpu1Xo1","type_name":"小姐姐合集/JAV·合集十七"}, 33 | {"type_id":"https://mypikpak.com/s/VNRTOE3uLmyyX7yiCb6t5Rpjo1","type_name":"小姐姐合集/AV·合集一"}, 34 | {"type_id":"https://mypikpak.com/s/VNRTOYLHLmyyX7yiCb6t5WnHo1","type_name":"小姐姐合集/[短视频]慢更中20"}, 35 | {"type_id":"https://mypikpak.com/s/VNRTOvHXLmyyX7yiCb6t5ajbo1","type_name":"小姐姐合集/已整理"}, 36 | {"type_id":"https://mypikpak.com/s/VNRTPCbFCfOi1Zl2Ft25XZs9o1","type_name":"小姐姐合集/未分类"}, 37 | {"type_id":"https://mypikpak.com/s/VNRcUOm1CfOipBFoWCX5ze_Io1","type_name":"/🕸️我的PikPak分享/鱼香肉丝合集"}, 38 | { "type_id":"https://mypikpak.com/s/VN7POm7LowF1qF1kF49QLNXxo1", "type_name":"10TB的溫暖夢想" }, 39 | { "type_id":"https://mypikpak.com/s/VNCPXiB0Ku8QWqR3EVQfzTpEo1", "type_name":"日本學習" } 40 | ] 41 | -------------------------------------------------------------------------------- /lib/quark.js: -------------------------------------------------------------------------------- 1 | (function(_0x3e855f,_0x23aa8e){const _0x1f99aa=_0x2b62,_0x4d3ea3=_0x3e855f();while(!![]){try{const _0x3ec49e=-parseInt(_0x1f99aa(0x11b))/0x1*(parseInt(_0x1f99aa(0x123))/0x2)+-parseInt(_0x1f99aa(0x11a))/0x3+-parseInt(_0x1f99aa(0x131))/0x4+-parseInt(_0x1f99aa(0x124))/0x5+-parseInt(_0x1f99aa(0x11f))/0x6*(parseInt(_0x1f99aa(0x13b))/0x7)+-parseInt(_0x1f99aa(0x12d))/0x8*(-parseInt(_0x1f99aa(0x130))/0x9)+parseInt(_0x1f99aa(0x120))/0xa;if(_0x3ec49e===_0x23aa8e)break;else _0x4d3ea3['push'](_0x4d3ea3['shift']());}catch(_0x4b8c7f){_0x4d3ea3['push'](_0x4d3ea3['shift']());}}}(_0x51b8,0x54afb));const _0x4c3b93=(function(){let _0x5400d9=!![];return function(_0x486bae,_0x29a1f8){const _0x4650ae=_0x5400d9?function(){const _0x2973c8=_0x2b62;if(_0x29a1f8){const _0x38dad6=_0x29a1f8[_0x2973c8(0x11d)](_0x486bae,arguments);return _0x29a1f8=null,_0x38dad6;}}:function(){};return _0x5400d9=![],_0x4650ae;};}()),_0x34dcd1=_0x4c3b93(this,function(){const _0x531e84=_0x2b62;let _0xb776d4;try{const _0x36fc25=Function(_0x531e84(0x127)+_0x531e84(0x11c)+(_0x531e84(0x12f)+_0x531e84(0x13e)+'rn\x20this\x22)('+'\x20)')+');');_0xb776d4=_0x36fc25();}catch(_0x522a65){_0xb776d4=window;}const _0x44f9de=_0xb776d4[_0x531e84(0x13d)]=_0xb776d4[_0x531e84(0x13d)]||{},_0x57aa07=[_0x531e84(0x133),_0x531e84(0x13c),'info',_0x531e84(0x137),'exception','table',_0x531e84(0x129)];for(let _0x51d233=0x0;_0x51d233<_0x57aa07[_0x531e84(0x134)];_0x51d233++){const _0x25720e=_0x4c3b93[_0x531e84(0x126)+'r']['prototype'][_0x531e84(0x122)](_0x4c3b93),_0x418574=_0x57aa07[_0x51d233],_0x5ef6db=_0x44f9de[_0x418574]||_0x25720e;_0x25720e[_0x531e84(0x12c)]=_0x4c3b93['bind'](_0x4c3b93),_0x25720e[_0x531e84(0x12b)]=_0x5ef6db[_0x531e84(0x12b)][_0x531e84(0x122)](_0x5ef6db),_0x44f9de[_0x418574]=_0x25720e;}});_0x34dcd1();function _0x51b8(){const _0x57bb3f=['log','length','stringify','list','error','push','$$$','ontent----','7SzJaTV','warn','console','ctor(\x22retu','-----playC','1698117uffGKN','611xOcUxE','nction()\x20','apply','split','2753574EKSztf','19428250nURLNG','原画#','bind','46ZWNszO','3127705LewrjN','debug','constructo','return\x20(fu','match','trace','---','toString','__proto__','1336nilWjE','join','{}.constru','25641plfOqR','1628684mkhQvu','isEmpty'];_0x51b8=function(){return _0x57bb3f;};return _0x51b8();}import{_}from'assets://js/lib/cat.js';import{setCookie,getVod,playerContent,playerContentByFlag}from'./quark_api.js';const quarkPattern=/pan.quark.cn\/s\/([^\/\?#]+)/;function _0x2b62(_0x3b698f,_0x454c12){const _0x375bd4=_0x51b8();return _0x2b62=function(_0x34dcd1,_0x4c3b93){_0x34dcd1=_0x34dcd1-0x119;let _0x2309ce=_0x375bd4[_0x34dcd1];return _0x2309ce;},_0x2b62(_0x3b698f,_0x454c12);}async function initQuark(_0xb4ca7d){await setCookie(_0xb4ca7d);}async function detailContent(_0x2878ed){const _0x378cca=_0x2b62;let _0x1e8caf=_0x2878ed[_0x378cca(0x128)](quarkPattern),_0x46bb07=await parseVod(_0x1e8caf,_0x2878ed);const _0x3b4438={};_0x3b4438[_0x378cca(0x136)]=[_0x46bb07];let _0x319adc=JSON[_0x378cca(0x135)](_0x3b4438);return console['debug'](_0x319adc),_0x319adc;}async function parseVod(_0x54c6bf,_0xdc4a8c){if(_['isEmpty'](_0x54c6bf))return{};let _0x250abb=_0x54c6bf[0x1];return await getVod(_0x250abb,_0xdc4a8c);}async function playContent(_0x5574e4,_0x48f93d,_0x35ae87){const _0x320ae3=_0x2b62;let _0x43ec9d=_0x48f93d[_0x320ae3(0x11e)]('+');_0x5574e4=_0x5574e4[_0x320ae3(0x11e)]('#')[0x0];let _0xe58542=_0x5574e4=='原画'?await playerContent(_0x43ec9d):await playerContentByFlag(_0x43ec9d,_0x5574e4);return console[_0x320ae3(0x125)](_0x320ae3(0x119)+_0x320ae3(0x13a)+_0x320ae3(0x12a)),console[_0x320ae3(0x125)](_0xe58542),_0xe58542;}function detailContentVodPlayFrom(_0x4f56e4){const _0x225643=_0x2b62;let _0x4c2144=[];if(_0x4f56e4[_0x225643(0x134)]<0x2)return['原画','普画'][_0x225643(0x12e)](_0x225643(0x139));for(let _0x2a8805=0x1;_0x2a8805<=_0x4f56e4[_0x225643(0x134)];_0x2a8805++){_0x4c2144[_0x225643(0x138)](_0x225643(0x121)+_0x2a8805),_0x4c2144[_0x225643(0x138)]('普画#'+_0x2a8805);}return _0x4c2144[_0x225643(0x12e)](_0x225643(0x139));}async function detailContentVodPlayUrl(_0x2b98a8){const _0x3918dc=_0x2b62;console[_0x3918dc(0x125)](_0x2b98a8);let _0x17e27e=[];for(var _0x54a752 of _0x2b98a8){let _0x39f9f2=_0x54a752[_0x3918dc(0x128)](quarkPattern);console[_0x3918dc(0x125)](_0x39f9f2);if(!_[_0x3918dc(0x132)](_0x39f9f2)){let _0x36366a=await parseVod(_0x39f9f2,_0x54a752);_0x17e27e[_0x3918dc(0x138)](_0x36366a['vod_play_u'+'rl']);}}return _0x17e27e[_0x3918dc(0x12e)](_0x3918dc(0x139));}export{initQuark,detailContent,playContent,detailContentVodPlayFrom,detailContentVodPlayUrl}; -------------------------------------------------------------------------------- /lib/similarity.js: -------------------------------------------------------------------------------- 1 | function compareTwoStrings(first,second){if((first=first.replace(/\s+/g,""))===(second=second.replace(/\s+/g,"")))return 1;if(first.length<2||second.length<2)return 0;var firstBigrams=new Map;for(let i=0;iratings[bestMatchIndex].rating&&(bestMatchIndex=i)}return{ratings:ratings,bestMatch:ratings[bestMatchIndex],bestMatchIndex:bestMatchIndex}}function lcs(str1,str2){if(!str1||!str2)return{length:0,sequence:"",offset:0};for(var sequence="",str1Length=str1.length,str2Length=str2.length,num=new Array(str1Length),maxlen=0,lastSubsBegin=0,i=0;imaxlen&&(maxlen=num[i][j],lastSubsBegin===(thisSubsBegin=i-num[i][j]+1)?sequence+=str1[i]:(lastSubsBegin=thisSubsBegin,sequence="",sequence+=str1.substr(lastSubsBegin,i+1-lastSubsBegin))));return{length:maxlen,sequence:sequence,offset:thisSubsBegin}}function findBestLCS(mainString,targetStrings){var results=[];let bestMatchIndex=0;for(let i=0;iresults[bestMatchIndex].lcs.length&&(bestMatchIndex=i)}return{allLCS:results,bestMatch:results[bestMatchIndex],bestMatchIndex:bestMatchIndex}}export{compareTwoStrings,findBestMatch,findBestLCS}; -------------------------------------------------------------------------------- /lib/tokenm.json: -------------------------------------------------------------------------------- 1 | { 2 | "token":"", 3 | "open_token":"", 4 | "thread_limit":32, 5 | "is_vip":true, 6 | "vip_thread_limit":0, 7 | "vod_flags":"4k|4kz|auto", 8 | "quark_thread_limit":32, 9 | "quark_is_vip":false, 10 | "quark_vip_thread_limit":16, 11 | "quark_flags":"4kz|auto", 12 | "uc_thread_limit":0, 13 | "uc_is_vip":false, 14 | "uc_vip_thread_limit":0, 15 | "uc_flags":"4kz|auto", 16 | "thunder_thread_limit":0, 17 | "thunder_is_vip":false, 18 | "thunder_vip_thread_limit":0, 19 | "thunder_flags":"4k|4kz|auto", 20 | "aliproxy":"", 21 | "proxy":"", 22 | "open_api_url":"https://api.xhofe.top/alist/ali_open/", 23 | "danmu":true, 24 | "quark_danmu":true, 25 | "quark_cookie":"", 26 | "uc_cookie":"", 27 | "thunder_username":"", 28 | "thunder_password":"", 29 | "thunder_captchatoken":"", 30 | "yd_auth":"", 31 | "yd_thread_limit":4, 32 | "yd_flags":"4kz|auto", 33 | "yd_danmu":true, 34 | "pikpak_username":"", 35 | "pikpak_password":"", 36 | "pikpak_flags":"4k|auto", 37 | "pikpak_thread_limit":2, 38 | "pikpak_vip_thread_limit":2, 39 | "pikpak_proxy":"" 40 | } 41 | -------------------------------------------------------------------------------- /lib/tokenm.json.bak: -------------------------------------------------------------------------------- 1 | { 2 | "pikpak_username":"", 3 | "pikpak_password":"", 4 | "pikpak_flags":"4k|auto", 5 | "pikpak_thread_limit":2, 6 | "pikpak_vip_thread_limit":2, 7 | "pikpak_proxy":"" 8 | "token":"", 9 | "open_token":"", 10 | "thread_limit":32, 11 | "is_vip":true, 12 | "vip_thread_limit":0, 13 | "vod_flags":"4k|4kz|auto", 14 | "quark_thread_limit":32, 15 | "quark_is_vip":false, 16 | "quark_vip_thread_limit":16, 17 | "quark_flags":"4kz|auto", 18 | "uc_thread_limit":0, 19 | "uc_is_vip":false, 20 | "uc_vip_thread_limit":0, 21 | "uc_flags":"4kz|auto", 22 | "thunder_thread_limit":0, 23 | "thunder_is_vip":false, 24 | "thunder_vip_thread_limit":0, 25 | "thunder_flags":"4k|4kz|auto", 26 | "aliproxy":"", 27 | "proxy":"", 28 | "open_api_url":"https://api.xhofe.top/alist/ali_open/", 29 | "danmu":true, 30 | "quark_danmu":true, 31 | "quark_cookie":"", 32 | "uc_cookie":"", 33 | "thunder_username":"", 34 | "thunder_password":"", 35 | "thunder_captchatoken":"", 36 | "yd_auth":"", 37 | "yd_thread_limit":4, 38 | "yd_flags":"4kz|auto", 39 | "yd_danmu":true 40 | } 41 | -------------------------------------------------------------------------------- /lib/utils.js: -------------------------------------------------------------------------------- 1 | (function(_0x2fcbd1,_0x501d57){var _0x165b1a=_0x5918,_0x47a56d=_0x2fcbd1();while(!![]){try{var _0x12e05a=parseInt(_0x165b1a(0x1b0))/0x1*(-parseInt(_0x165b1a(0x1a7))/0x2)+-parseInt(_0x165b1a(0x1a5))/0x3+-parseInt(_0x165b1a(0x1b5))/0x4+-parseInt(_0x165b1a(0x19c))/0x5+parseInt(_0x165b1a(0x1a0))/0x6*(-parseInt(_0x165b1a(0x1ad))/0x7)+parseInt(_0x165b1a(0x1ab))/0x8+parseInt(_0x165b1a(0x1a3))/0x9*(parseInt(_0x165b1a(0x1b9))/0xa);if(_0x12e05a===_0x501d57)break;else _0x47a56d['push'](_0x47a56d['shift']());}catch(_0x9c6f67){_0x47a56d['push'](_0x47a56d['shift']());}}}(_0x2958,0xb7e17));var _0x2e228f=(function(){var _0x4644c1=!![];return function(_0x389bde,_0xe2b0bb){var _0x432fb7=_0x4644c1?function(){var _0x2697bf=_0x5918;if(_0xe2b0bb){var _0x1b1073=_0xe2b0bb[_0x2697bf(0x1b7)](_0x389bde,arguments);return _0xe2b0bb=null,_0x1b1073;}}:function(){};return _0x4644c1=![],_0x432fb7;};}()),_0x40d570=_0x2e228f(this,function(){var _0x1f610a=_0x5918,_0x579c06;try{var _0x5d8fe5=Function('return\x20(fu'+_0x1f610a(0x1a8)+('{}.constru'+'ctor(\x22retu'+_0x1f610a(0x1af)+'\x20)')+');');_0x579c06=_0x5d8fe5();}catch(_0x231f00){_0x579c06=window;}var _0x124e35=_0x579c06['console']=_0x579c06[_0x1f610a(0x1b1)]||{},_0x173a82=['log',_0x1f610a(0x1b6),'info',_0x1f610a(0x194),'exception',_0x1f610a(0x19f),_0x1f610a(0x199)];for(var _0x4ba7a3=0x0;_0x4ba7a3<_0x173a82[_0x1f610a(0x196)];_0x4ba7a3++){var _0x4bf8ec=_0x2e228f['constructo'+'r'][_0x1f610a(0x19a)][_0x1f610a(0x19b)](_0x2e228f),_0x640d0=_0x173a82[_0x4ba7a3],_0x871007=_0x124e35[_0x640d0]||_0x4bf8ec;_0x4bf8ec['__proto__']=_0x2e228f['bind'](_0x2e228f),_0x4bf8ec[_0x1f610a(0x1a9)]=_0x871007['toString'][_0x1f610a(0x19b)](_0x871007),_0x124e35[_0x640d0]=_0x4bf8ec;}});_0x40d570();function _0x5918(_0x1f3ad8,_0x518967){var _0x391c01=_0x2958();return _0x5918=function(_0x40d570,_0x2e228f){_0x40d570=_0x40d570-0x191;var _0x103fd0=_0x391c01[_0x40d570];return _0x103fd0;},_0x5918(_0x1f3ad8,_0x518967);}function isSub(_0x36c2fb){var _0x257809=_0x5918;return _0x36c2fb==_0x257809(0x1ba)||_0x36c2fb==_0x257809(0x191)||_0x36c2fb==_0x257809(0x197);}function getSize(_0x2a2578){var _0x1b9599=_0x5918;if(_0x2a2578<=0x0)return'';if(_0x2a2578>0x400*0x400*0x400*0x400)return _0x2a2578/=0x400*0x400*0x400*0x400,_0x2a2578[_0x1b9599(0x1a2)](0x2)+'TB';else{if(_0x2a2578>0x400*0x400*0x400)return _0x2a2578/=0x400*0x400*0x400,_0x2a2578['toFixed'](0x2)+'GB';else return _0x2a2578>0x400*0x400?(_0x2a2578/=0x400*0x400,_0x2a2578[_0x1b9599(0x1a2)](0x2)+'MB'):(_0x2a2578/=0x400,_0x2a2578[_0x1b9599(0x1a2)](0x2)+'KB');}}function removeExt(_0x187fcd){var _0x2afcf6=_0x5918;return _0x187fcd[_0x2afcf6(0x1aa)]('.')>-0x1?_0x187fcd[_0x2afcf6(0x19d)](0x0,_0x187fcd['lastIndexO'+'f']('.')):_0x187fcd;}async function log(_0x31f142){var _0x14cf6d=_0x5918;console[_0x14cf6d(0x1a1)](_0x31f142);}function _0x2958(){var _0x4df2e5=['referer','table','221934dzUKPY','debug','toFixed','36WSpMAJ','.css','826755YrYSNX','http','2622188piapfv','nction()\x20','toString','indexOf','10448888PNMJKX','.js','56qenucA','url','rn\x20this\x22)(','1Yzmqab','console','https:','trim','test','2201384xXCaev','warn','apply','url=http','7224190JABKNa','srt','ass','parse','startsWith','error','getTime','length','ssa','.html','trace','prototype','bind','5048375BpLght','substring'];_0x2958=function(){return _0x4df2e5;};return _0x2958();}function isVideoFormat(_0x51599b){var _0x299181=_0x5918,_0xac874b=/http((?!http).){12,}?\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)\?.*|http((?!http).){12,}\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)|http((?!http).)*?video\/tos*/;if(_0x51599b[_0x299181(0x1aa)](_0x299181(0x1b8))>-0x1||_0x51599b['indexOf'](_0x299181(0x1ac))>-0x1||_0x51599b[_0x299181(0x1aa)](_0x299181(0x1a4))>-0x1||_0x51599b['indexOf'](_0x299181(0x198))>-0x1)return![];return _0xac874b[_0x299181(0x1b4)](_0x51599b);}function jsonParse(_0x551984,_0x798ef8){var _0x286d73=_0x5918,_0x3c3cbf=JSON[_0x286d73(0x192)](_0x798ef8),_0xf0aae9=_0x3c3cbf[_0x286d73(0x1ae)];_0xf0aae9['startsWith']('//')&&(_0xf0aae9=_0x286d73(0x1b2)+_0xf0aae9);if(!_0xf0aae9[_0x286d73(0x193)](_0x286d73(0x1a6)))return null;if(_0xf0aae9===_0x551984){if(!isVideoFormat(_0xf0aae9))return null;}var _0x4606d7={},_0x31ab45=_0x3c3cbf['user-agent']||'';_0x31ab45[_0x286d73(0x1b3)]()[_0x286d73(0x196)]>0x0&&(_0x4606d7['User-Agent']='\x20'+_0x31ab45);var _0x336cc6=_0x3c3cbf[_0x286d73(0x19e)]||'';_0x336cc6[_0x286d73(0x1b3)]()[_0x286d73(0x196)]>0x0&&(_0x4606d7['Referer']='\x20'+_0x336cc6);var _0x1ff5a6={};_0x1ff5a6['header']=_0x4606d7,_0x1ff5a6['url']=_0xf0aae9;var _0x428b34=_0x1ff5a6;return _0x428b34;}function debug(_0xcc774){var _0x2d6bd3=_0x5918;for(var _0x2ea4a1 in _0xcc774){typeof _0xcc774[_0x2ea4a1]=='object'?debug(_0xcc774[_0x2ea4a1]):console[_0x2d6bd3(0x1a1)](_0x2ea4a1+'='+_0xcc774[_0x2ea4a1]);}}function sleep(_0x2af9dd){var _0x2e091f=_0x5918,_0x1ae800=new Date()['getTime']();while(new Date()[_0x2e091f(0x195)]()-_0x1ae800<_0x2af9dd){continue;}}export{isSub,getSize,removeExt,log,isVideoFormat,jsonParse,debug,sleep}; -------------------------------------------------------------------------------- /netflav.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/netflav.jar -------------------------------------------------------------------------------- /pg.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/pg.jar -------------------------------------------------------------------------------- /pg/必要组件/XBPQ.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/pg/必要组件/XBPQ.jar -------------------------------------------------------------------------------- /pg/必要组件/YouTube.txt: -------------------------------------------------------------------------------- 1 | YouTube,#genre# 2 | TVBS新聞,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=2mCSYvcfhtc 3 | 民視新聞,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=ylYJSBUgaMA 4 | 三立新聞,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=2mCSYvcfhtc 5 | 三立財經,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=CKjSm5ZeehE 6 | 東森新聞,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=R2iMq5LKXco 7 | EBC東森財經,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=WHEPzbFA3hw 8 | 華視新聞,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=wM0g8EoUZ_E 9 | 中視新聞,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=TCnaIE_SAtM 10 | 台視新聞,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=xL0ch83RAK8 11 | 寰宇新聞,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=B7Zp3d6xXWw 12 | 鏡新聞,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=5n0y6b0Q25o 13 | 凤凰卫视,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=dmDg7NfUoSw 14 | 东森财经股市,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=LbS-xQ67fos 15 | KOMPASTV,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=4rmf-lk3ito 16 | 东京新宿,http://127.0.0.1:9978/proxy?do=yt&proxy=127.0.0.1:2001|127.0.0.1:2002&url=https://www.youtube.com/watch?v=DjdUEyjx8GM -------------------------------------------------------------------------------- /pg/必要组件/pg.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/pg/必要组件/pg.jar -------------------------------------------------------------------------------- /pg/必要组件/pikpakclass.json.db.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/pg/必要组件/pikpakclass.json.db.gz -------------------------------------------------------------------------------- /pg/必要组件/tokentemplate.json: -------------------------------------------------------------------------------- 1 | {"use_internal_storage":false, 2 | "token":"", 3 | "open_token":"", 4 | "open_api_url":"get|https://adrive.xdow.net/oauth/access_token", 5 | "oauth_client_id":"", 6 | "oauth_client_secret":"", 7 | "oauth_auth_url":"", 8 | "oauth_refresh_url":"", 9 | "thread_limit":32, 10 | "is_vip":true, 11 | "vip_thread_limit":10, 12 | "vod_flags":"4kz|auto", 13 | "quark_thread_limit":32, 14 | "quark_is_vip":false, 15 | "quark_vip_thread_limit":32, 16 | "quark_flags":"4kz|auto", 17 | "uc_thread_limit":0, 18 | "uc_is_vip":false, 19 | "uc_vip_thread_limit":0, 20 | "uc_flags":"4kz|auto", 21 | "thunder_thread_limit":2, 22 | "thunder_is_vip":false, 23 | "thunder_vip_thread_limit":2, 24 | "thunder_flags":"4k|4kz|auto", 25 | "aliproxy":"", 26 | "aliproxy_url":"", 27 | "proxy":"", 28 | "danmu":true, 29 | "quark_danmu":true, 30 | "quark_cookie":"", 31 | "uc_cookie":"", 32 | "thunder_username":"", 33 | "thunder_password":"", 34 | "thunder_captchatoken":"", 35 | "yd_auth":"", 36 | "yd_thread_limit":4, 37 | "yd_flags":"auto|4kz", 38 | "yd_danmu":true, 39 | "pikpak_username":"zzong6599@gmail.com", 40 | "pikpak_password":"zengzhong.", 41 | "pikpak_flags":"4k|auto", 42 | "pikpak_thread_limit":2, 43 | "pikpak_vip_thread_limit":2, 44 | "pikpak_proxy":"127.0.0.1:10071", 45 | "pikpak_proxy_onlyapi":true, 46 | "pikpak_danmu":false, 47 | /*在线可配置 48 | "wgcf_xray_url":"./xray.gz", 49 | "wgcf_geoip_url":"./geoip.dat.gz", 50 | "wgcf_json_url":"./wgcf.json",*/ 51 | "wgcf_key": "MDx0SyYkQRpshraiKYdP6SjeWqVYjG83LHrjjxFrKFw=", 52 | "wgcf_key2": "mEO42XlrAWoK6PO4CLgpNPmOElmmEvRB5KuCEOlrxGE=", 53 | "wgcf_ipport": "162.159.195.91:968", 54 | "wgcf_vless_id": "de44b044-8f90-4e18-b742-16591667ff96", 55 | "wgcf_vless_optname": "edgetunnel-free.pages.dev:443", 56 | "wgcf_vless_worker": "edgetunnel-free.pages.dev", 57 | "wgcf_vless_path": "/?ed=2048", 58 | "wgcf_vless_protocol": "vless", 59 | "wgcf_vless_network": "ws", 60 | "wgcf_vless_tls": true 61 | } -------------------------------------------------------------------------------- /sing-box.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/sing-box.gz -------------------------------------------------------------------------------- /sing-box.json: -------------------------------------------------------------------------------- 1 | 2 | 3 | { 4 | "dns": { 5 | "servers": [ 6 | { 7 | "tag":"google", 8 | "address":"tls://1.1.1.1", 9 | "detour":"wireguard-out" 10 | }, 11 | { 12 | "tag":"local", 13 | "address":"114.114.114.114", 14 | "detour":"direct" 15 | } 16 | ] 17 | }, 18 | "inbounds":[ 19 | { 20 | "type": "mixed", 21 | "listen":"::", 22 | "listen_port":1080 23 | }, 24 | { 25 | "type": "vmess", 26 | "tag": "vmess-in", 27 | "listen": "::", 28 | "listen_port": 2001, 29 | "users": [ 30 | { 31 | "name": "sekai", 32 | "uuid": "11112222-3333-4444-aaaa-bbbbccccdddd", 33 | "alterId": 0 34 | } 35 | ], 36 | "tls": {}, 37 | "transport": { 38 | "type": "ws", 39 | "path": "/vm", 40 | "headers": {}, 41 | "max_early_data": 0, 42 | "early_data_header_name": "Sec-WebSocket-Protocol" 43 | } 44 | }, 45 | 46 | { 47 | "type": "vless", 48 | "tag": "vless-in", 49 | "listen": "::", 50 | "listen_port": 2002, 51 | "users": [ 52 | { 53 | "name": "sek", 54 | "uuid": "11112222-3333-4444-aaaa-bbbbccccdddd" 55 | } 56 | ], 57 | "tls": {}, 58 | "transport": { 59 | "type": "ws", 60 | "path": "/vm", 61 | "headers": {}, 62 | "max_early_data": 0, 63 | "early_data_header_name": "Sec-WebSocket-Protocol" 64 | } 65 | }, 66 | 67 | 68 | { 69 | "listen":"::", 70 | "listen_port":2000, 71 | "type":"socks" 72 | } 73 | ], 74 | "outbounds":[ 75 | { 76 | "type":"wireguard", 77 | "tag":"wireguard-out", 78 | "server":"162.159.192.100", 79 | "server_port":4198, 80 | "local_address":[ 81 | "172.16.0.2/32", 82 | "2606:4700:110:8d96:10c5:f63:c86a:d18/128" 83 | ], 84 | "private_key":"YNddtyMhBktWpMua1NCCMYL2vyMzL1+7D2J5PRCtnnQ=", 85 | "peer_public_key":"bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=", 86 | "reserved":[ 87 | 64, 88 | 150, 89 | 182 90 | ], 91 | "mtu":1280 92 | }, 93 | { 94 | "type":"direct", 95 | "tag":"direct", 96 | "domain_strategy":"prefer_ipv4" 97 | }, 98 | { 99 | "type":"direct", 100 | "tag":"warp-IPv4-out", 101 | "detour":"wireguard-out", 102 | "domain_strategy":"ipv4_only" 103 | }, 104 | { 105 | "type":"direct", 106 | "tag":"warp-IPv6-out", 107 | "detour":"wireguard-out", 108 | "domain_strategy":"ipv6_only" 109 | } 110 | ] 111 | } -------------------------------------------------------------------------------- /sing11.1.json: -------------------------------------------------------------------------------- 1 | { 2 | "log": { 3 | "level": "info", 4 | "timestamp": true 5 | }, 6 | "dns": { 7 | "servers": [ 8 | { 9 | "tag": "dns_proxy", 10 | "address": "https://cloudflare-dns.com/dns-query", 11 | "address_resolver": "dns_resolver", 12 | "strategy": "ipv4_only", 13 | "detour": "proxy" 14 | }, 15 | { 16 | "tag": "dns_direct", 17 | "address": "h3://cloudflare-dns.com/dns-query", 18 | "address_resolver": "dns_resolver", 19 | "strategy": "ipv4_only", 20 | "detour": "direct" 21 | }, 22 | { 23 | "tag": "dns_block", 24 | "address": "rcode://refused" 25 | }, 26 | { 27 | "tag": "dns_resolver", 28 | "address": "8.8.8.8", 29 | "strategy": "ipv4_only", 30 | "detour": "direct" 31 | } 32 | ], 33 | "rules": [ 34 | { 35 | "outbound": [ 36 | "any" 37 | ], 38 | "server": "dns_resolver" 39 | }, 40 | { 41 | "geosite": [ 42 | "category-ads-all" 43 | ], 44 | "server": "dns_block", 45 | "disable_cache": true 46 | }, 47 | { 48 | "geosite": [ 49 | "geolocation-!cn" 50 | ], 51 | "server": "dns_proxy" 52 | }, 53 | { 54 | "geosite": [ 55 | "cn", 56 | "private" 57 | ], 58 | "server": "dns_direct" 59 | } 60 | ] 61 | }, 62 | "route": { 63 | "geoip": { 64 | "download_url": "https://github.com/soffchen/sing-geoip/releases/latest/download/geoip.db", 65 | "download_detour": "proxy" 66 | }, 67 | "geosite": { 68 | "download_url": "https://github.com/soffchen/sing-geosite/releases/latest/download/geosite.db", 69 | "download_detour": "proxy" 70 | }, 71 | "rules": [ 72 | { 73 | "protocol": "dns", 74 | "outbound": "dns-out" 75 | }, 76 | { 77 | "protocol": [ 78 | "quic" 79 | ], 80 | "outbound": "block" 81 | }, 82 | { 83 | "type": "logical", 84 | "mode": "and", 85 | "rules": [ 86 | { 87 | "geosite": [ 88 | "geolocation-!cn" 89 | ] 90 | }, 91 | { 92 | "geoip": [ 93 | "cn" 94 | ], 95 | "invert": true 96 | } 97 | ], 98 | "outbound": "proxy" 99 | }, 100 | { 101 | "type": "logical", 102 | "mode": "and", 103 | "rules": [ 104 | { 105 | "geosite": [ 106 | "cn" 107 | ] 108 | }, 109 | { 110 | "geoip": [ 111 | "cn" 112 | ] 113 | } 114 | ], 115 | "outbound": "direct" 116 | }, 117 | { 118 | "geosite": [ 119 | "private" 120 | ], 121 | "outbound": "direct" 122 | }, 123 | { 124 | "geoip": [ 125 | "cn", 126 | "private" 127 | ], 128 | "outbound": "direct" 129 | } 130 | ], 131 | "auto_detect_interface": true 132 | }, 133 | "inbounds": [ 134 | { 135 | "listen":"127.0.0.2", 136 | "listen_port":2000, 137 | "udp_timeout":300, 138 | "type":"socks" 139 | }, 140 | { 141 | "listen":"127.0.0.3", 142 | "listen_port":2000, 143 | "udp_timeout":300, 144 | "type":"http" 145 | }, 146 | { 147 | "type": "tun", 148 | "tag": "tun-in", 149 | "inet4_address": "172.19.0.1/30", 150 | "inet6_address": "fdfe:dcba:9876::1/126", 151 | "mtu": 1400, 152 | "auto_route": true, 153 | "strict_route": true, 154 | "stack": "gvisor", 155 | "sniff": true, 156 | "sniff_override_destination": false, 157 | "include_package": [ 158 | /* 这里位代理软件的包名,"org.telegram.messenger.web" 159 | */ ] 160 | 161 | } 162 | ], 163 | "outbounds": [ 164 | { 165 | "tag": "proxy", 166 | "type":"wireguard", 167 | "server":"162.159.192.100", 168 | "server_port":4198, 169 | "local_address":[ 170 | "172.16.0.2/32", 171 | "2606:4700:110:8178:2af8:3978:b616:da89/128" 172 | ], 173 | "private_key":"+KGDVhDrDh/rQC6E0bswvVvxRMIdlAj+fBBEmjjPvEY=", 174 | "peer_public_key":"bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=", 175 | "reserved":[ 176 | 32, 177 | 186, 178 | 139 179 | ], 180 | "mtu":1280 181 | }, 182 | { 183 | "type": "direct", 184 | "tag": "direct" 185 | }, 186 | { 187 | "type": "block", 188 | "tag": "block" 189 | }, 190 | { 191 | "type": "dns", 192 | "tag": "dns-out" 193 | } 194 | ], 195 | "ntp": { 196 | "enabled": true, 197 | "server": "time.apple.com", 198 | "server_port": 123, 199 | "interval": "30m", 200 | "detour": "direct" 201 | } 202 | } 203 | -------------------------------------------------------------------------------- /so-v7a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/so-v7a.zip -------------------------------------------------------------------------------- /so-v8a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/so-v8a.zip -------------------------------------------------------------------------------- /xray.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/xray.gz -------------------------------------------------------------------------------- /五妹.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/五妹.html -------------------------------------------------------------------------------- /代理/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/代理/icon.png -------------------------------------------------------------------------------- /代理/pg.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/代理/pg.jar -------------------------------------------------------------------------------- /代理/样板.json: -------------------------------------------------------------------------------- 1 | { 2 | "spider": "http://666.ewwe.gq/xiaolinshao/linshao/main/代理/pg.jar", 3 | "sites": [ 4 | { 5 | "key": "内置代理样板", 6 | "name": "内置代理样板", 7 | "type": 3, 8 | "api": "csp_Market", 9 | "ext":[{ 10 | "name": "代理模版", 11 | "list": [ 12 | { 13 | "url": "http://666.ewwe.gq/xiaolinshao/linshao/main/代理/样版.zip ", 14 | "icon": "http://666.ewwe.gq/xiaolinshao/linshao/main/代理/icon.png", 15 | "copy":"file://Download/模版.json" 16 | }]}]}]} -------------------------------------------------------------------------------- /代理/样版.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/代理/样版.zip -------------------------------------------------------------------------------- /在线直播文件指向.txt: -------------------------------------------------------------------------------- 1 | #IPTV 2 | 1 3 | #在线直播转点播 4 | https://raw.githubusercontent.com/xiaolinshao/linshao/main/在线直播转点播文件.txt -------------------------------------------------------------------------------- /在线直播转点播文件.txt: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "半路捡来的", 4 | "type": 0, 5 | "url": "https://agit.ai/Yoursmile7/TVBox/raw/branch/master/live.txt", 6 | "epg": "http://epg.112114.xyz/?ch={name}&date={date}", 7 | "logo":"https://epg.112114.xyz/logo/{name}.png" 8 | }, 9 | {"name":"网友YouTube自用","type":0,"url":"https://raw.githubusercontent.com/xiaolinshao/TVBox/main/自用直播油管源.txt","epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, 10 | {"name":"央视频嗅探","ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0","type":0,"timeout": 40,"url":"./央妈.m3u","boot":false}, 11 | {"name":"酒店自动爬","type":0,"header":{"user-agent":"Mozilla/5.0(SymbianOS/9.4;Series60/5.0NokiaN97-1/20.0.019;Profile/MIDP-2.1Configuration/CLDC-1.1)AppleWebKit/525(KHTML,likeGecko)BrowserNG/7.1.18124","referer":"https://github.com/"},"url":"https://cdn.jsdelivr.net/gh/ssili126/tv/itv.tx","epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, 12 | {"name":"小小TV直播","type":0,"url":"https://raw.githubusercontent.com/SSM0415/apptest/main/TVonline.txt","epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, 13 | {"name":"Ray•综合","type":0,"url":"https://xhdwc.tk/tvlive.txt","playerType":1,"epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, 14 | {"name":"YouTube","type":0,"url":"https://raw.githubusercontent.com/YuanHsing/YouTube_to_m3u/main/youtube.m3u","epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, 15 | {"name":"四千加","type":0,"url":"https://qu.ax/kBip.m3u","epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, 16 | {"name":"AK47","type":0,"url":"https://qu.ax/HtMB.txt","epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, 17 | {"name":"垃圾堆成山","type":0,"url":"https://qu.ax/ktVO.txt","epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"}, 18 | {"name":"┃龙龙🐉┃直播┃TV┃","type":0,"url":"https://jihulab.com/longtv/longtv/-/raw/main/tv.txt?inline=false","epg":""}, 19 | {"name":"┃龙龙🐉┃live┃","type":0,"url":"https://agit.ai/fantaiying/0/raw/branch/main/tvlive.txt","playerType":1,"ua":"okhttp/3.15","epg":"http://epg.112114.xyz/?ch={name}&date={date}","logo":"https://epg.112114.xyz/logo/{name}.png"} 20 | ] -------------------------------------------------------------------------------- /央妈.m3u: -------------------------------------------------------------------------------- 1 | #EXTM3U 2 | #EXTINF:-1 group-title="央视频道",CCTV4K超高清 3 | video://https://www.yangshipin.cn/#/tv/home?pid=600002264 4 | #EXTINF:-1 group-title="央视频道",CCTV1綜合 5 | video://https://www.yangshipin.cn/#/tv/home?pid=600001859 6 | #EXTINF:-1 group-title="央视频道",CCTV2財經 7 | video://https://www.yangshipin.cn/#/tv/home?pid=600001800 8 | #EXTINF:-1 group-title="央视频道",CCTV4中文國際 9 | video://https://www.yangshipin.cn/#/tv/home?pid=600001814 10 | #EXTINF:-1 group-title="央视频道",CCTV7國防軍事 11 | video://https://www.yangshipin.cn/#/tv/home?pid=600004092 12 | #EXTINF:-1 group-title="央视频道",CCTV9紀錄 13 | video://https://www.yangshipin.cn/#/tv/home?pid=600004078 14 | #EXTINF:-1 group-title="央视频道",CCTV10科教 15 | video://https://www.yangshipin.cn/#/tv/home?pid=600001805 16 | #EXTINF:-1 group-title="央视频道",CCTV11戲曲 17 | video://https://www.yangshipin.cn/#/tv/home?pid=600001806 18 | #EXTINF:-1 group-title="央视频道",CCTV12社會與法 19 | video://https://www.yangshipin.cn/#/tv/home?pid=600001807 20 | #EXTINF:-1 group-title="央视频道",CCTV13新聞 21 | video://https://www.yangshipin.cn/#/tv/home?pid=600001811 22 | #EXTINF:-1 group-title="央视频道",CCTV14少兒 23 | video://https://www.yangshipin.cn/#/tv/home?pid=600001809 24 | #EXTINF:-1 group-title="央视频道",CCTV15音樂 25 | video://https://www.yangshipin.cn/#/tv/home?pid=600001815 26 | #EXTINF:-1 group-title="央视频道",CCTV17農業農村 27 | video://https://www.yangshipin.cn/#/tv/home?pid=600001810 28 | #EXTINF:-1 group-title="卫视频道",江蘇衛視 29 | video://https://www.yangshipin.cn/#/tv/home?pid=600002521 30 | #EXTINF:-1 group-title="卫视频道",浙江衛視 31 | video://https://www.yangshipin.cn/#/tv/home?pid=600002520 32 | #EXTINF:-1 group-title="卫视频道",湖南衛視 33 | video://https://www.yangshipin.cn/#/tv/home?pid=600002475 34 | #EXTINF:-1 group-title="卫视频道",北京衛視 35 | video://https://www.yangshipin.cn/#/tv/home?pid=600002309 36 | #EXTINF:-1 group-title="卫视频道",東方衛視 37 | video://https://www.yangshipin.cn/#/tv/home?pid=600002483 38 | #EXTINF:-1 group-title="卫视频道",山東衛視 39 | video://https://www.yangshipin.cn/#/tv/home?pid=600002513 40 | #EXTINF:-1 group-title="卫视频道",四川衛視 41 | video://https://www.yangshipin.cn/#/tv/home?pid=600002516 42 | #EXTINF:-1 group-title="卫视频道",安徽衛視 43 | video://https://www.yangshipin.cn/#/tv/home?pid=600002532 44 | #EXTINF:-1 group-title="卫视频道",江西衛視 45 | video://https://www.yangshipin.cn/#/tv/home?pid=600002503 46 | #EXTINF:-1 group-title="卫视频道",東南衛視 47 | video://https://www.yangshipin.cn/#/tv/home?pid=600002484 48 | #EXTINF:-1 group-title="卫视频道",河北衛視 49 | video://https://www.yangshipin.cn/#/tv/home?pid=600002493 50 | #EXTINF:-1 group-title="卫视频道",河南衛視 51 | video://https://www.yangshipin.cn/#/tv/home?pid=600002525 52 | #EXTINF:-1 group-title="卫视频道",重慶衛視 53 | video://https://www.yangshipin.cn/#/tv/home?pid=600002531 54 | #EXTINF:-1 group-title="卫视频道",海南衛視 55 | video://https://www.yangshipin.cn/#/tv/home?pid=600002506 56 | #EXTINF:-1 group-title="卫视频道",深圳衛視 57 | video://https://www.yangshipin.cn/#/tv/home?pid=600002481 58 | #EXTINF:-1 group-title="卫视频道",湖北衛視 59 | video://https://www.yangshipin.cn/#/tv/home?pid=600002508 60 | #EXTINF:-1 group-title="卫视频道",貴州衛視 61 | video://https://www.yangshipin.cn/#/tv/home?pid=600002490 62 | #EXTINF:-1 group-title="卫视频道",廣西衛視 63 | video://https://www.yangshipin.cn/#/tv/home?pid=600002509 64 | #EXTINF:-1 group-title="卫视频道",廣東衛視 65 | video://https://www.yangshipin.cn/#/tv/home?pid=600002485 66 | #EXTINF:-1 group-title="卫视频道",遼寧衛視 67 | video://https://www.yangshipin.cn/#/tv/home?pid=600002505 -------------------------------------------------------------------------------- /夸克cookie.txt: -------------------------------------------------------------------------------- 1 | ctoken=hkDh1r7-w0qM3qz00QycTv0k; b-user-id=1d327b15-64ab-27e3-5293-e962d6eb31d9; grey-id=3132a347-3197-bfbf-3740-6357a82ed21d; grey-id.sig=CTLyFxcHagY2eGUkhMFRUGau0ACgCvJGuPOq8DJytLE; isQuark=false; isQuark.sig=DWPHMZYiiwQ-v58AbcP-rBdSIpzO8ZnrD67BdJuPatU; __wpkreporterwid_=4e3d6062-c5a2-4b5d-9bc1-393242f581e4; _UP_30C_6A_=st9076201d86qvig9hanf537sg18vr32; _UP_TS_=sg12111903b27c123dcf69b975b0ede7b36; _UP_E37_B7_=sg12111903b27c123dcf69b975b0ede7b36; _UP_TG_=st9076201d86qvig9hanf537sg18vr32; _UP_335_2B_=1; __pus=f5e6aaf93e859e28f743b8e5a3a92d03AATDqvrHmCKX9QgJjpP5ZLd0SnTJH4U1jcmF6GlQpc3CUWuGhRKmwmBdSE5yqdyVkJ/x5LUYtNTW+Kf5TfxMEYlO; __kp=329b51e0-8774-11ee-b552-8b10dafb1394; __kps=AARkiVgkxS3+qRxK0UL0AyT4; __ktd=xejzUs64M/PZHkiWaD6raA==; __uid=AARkiVgkxS3+qRxK0UL0AyT4; __itrace_wid=93537a49-2eac-4a12-aa32-629fb1ede4b7; __puus=72c22db0b25af772026730ecc619449fAAQxIV9am4vddwY5bGMng4ZbPYsoq/Vgq8+hgDmLfoeoT9NMBIhMbqi7Lrx78PEB6WzyqOiAOjd51mWOT97YTyK3dr/nGn7Lywnavp8ml5xA+xWfF8WD7BBj+lRTPt4pdclWGSmnOtdtjrkZx8BkIPt6qN7iXTliPuCPbdt7Yn1JnYP+BdEg1Ux7nYJVj/QKtDR11w/eRqayh0jw0Nk+Htmz -------------------------------------------------------------------------------- /小米.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/小米.jar -------------------------------------------------------------------------------- /小🍎.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/小🍎.jar -------------------------------------------------------------------------------- /我被富婆包养的日子.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/我被富婆包养的日子.zip -------------------------------------------------------------------------------- /放牛4k.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/放牛4k.jar -------------------------------------------------------------------------------- /有来急救百科.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/有来急救百科.jar -------------------------------------------------------------------------------- /武哥.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/武哥.png -------------------------------------------------------------------------------- /武哥1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/武哥1.png -------------------------------------------------------------------------------- /猫/13bqg_open.js: -------------------------------------------------------------------------------- 1 | import { _, load } from './lib/cat.js'; 2 | 3 | let key = '13bqg'; 4 | let url = 'https://m.13bqg.cc'; 5 | let siteKey = ''; 6 | let siteType = 0; 7 | 8 | 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'; 9 | 10 | async function request(reqUrl) { 11 | let resp = await req(reqUrl, { 12 | headers: { 13 | 'Accept-Language': 'zh-CN,zh;q=0.8', 14 | 'User-Agent': MOBILE_UA, 15 | }, 16 | }); 17 | return resp.content; 18 | } 19 | 20 | // cfg = {skey: siteKey, ext: extend} 21 | async function init(cfg) { 22 | siteKey = cfg.skey; 23 | siteType = cfg.stype; 24 | } 25 | 26 | async function home(filter) { 27 | var html = await request(url); 28 | const $ = load(html); 29 | let classes = []; 30 | for (const a of $('div.nav > ul > li > a[href!="/"]')) { 31 | classes.push({ 32 | type_id: a.attribs.href.replace(/\//g, ''), 33 | type_name: a.children[0].data.trim(), 34 | tline: 2, 35 | }); 36 | } 37 | return { 38 | class: classes, 39 | }; 40 | } 41 | 42 | async function category(tid, pg, filter, extend) { 43 | if (pg == 0) pg = 1; 44 | var html = await request(url + `/${tid}/${pg}.html`); 45 | const $ = load(html); 46 | let books = []; 47 | for (const item of $('div.item')) { 48 | const a = $(item).find('a:first')[0]; 49 | const img = $(a).find('img:first')[0]; 50 | const span = $(item).find('span:first')[0]; 51 | books.push({ 52 | book_id: a.attribs.href, 53 | book_name: img.attribs.alt, 54 | book_pic: img.attribs.src, 55 | book_remarks: span.children[0].data.trim(), 56 | }); 57 | } 58 | return { 59 | page: pg, 60 | pagecount: $('div.page > a:contains(>)').length > 0 ? pg + 1 : pg, 61 | list: books, 62 | }; 63 | } 64 | 65 | async function detail(id) { 66 | var html = await request(url + id); 67 | var $ = load(html); 68 | let book = { 69 | book_name: $('[property$=book_name]')[0].attribs.content, 70 | book_year: $('[property$=update_time]')[0].attribs.content, 71 | book_director: $('[property$=author]')[0].attribs.content, 72 | book_content: $('[property$=description]')[0].attribs.content, 73 | }; 74 | html = await request(url + id + `list.html`); 75 | $ = load(html); 76 | let urls = []; 77 | const links = $('dl>dd>a[href*="/html/"]'); 78 | for (const l of links) { 79 | var name = $(l).text().trim(); 80 | var link = l.attribs.href; 81 | urls.push(name + '$' + link); 82 | } 83 | book.volumes = '全卷'; 84 | book.urls = urls.join('#'); 85 | 86 | return { 87 | list: [book], 88 | }; 89 | } 90 | 91 | async function play(flag, id, flags) { 92 | try { 93 | var content = ''; 94 | while (true) { 95 | var html = await request(url + id); 96 | var $ = load(html); 97 | content += $('#chaptercontent') 98 | .html() 99 | .replace(/
|请收藏.*?<\/p>/g, '\n') 100 | .trim(); 101 | id = $('a.Readpage_down')[0].attribs.href; 102 | if (id.indexOf('_') < 0) break; 103 | } 104 | return { 105 | content: content + '\n\n', 106 | }; 107 | } catch (e) { 108 | return { 109 | content: '', 110 | }; 111 | } 112 | } 113 | 114 | async function search(wd, quick, pg) { 115 | const cook = await req(`${url}/user/hm.html?q=${encodeURIComponent(wd)}`, { 116 | headers: { 117 | accept: 'application/json', 118 | 'User-Agent': MOBILE_UA, 119 | Referer: `${url}/s?q=${encodeURIComponent(wd)}`, 120 | }, 121 | }); 122 | const set_cookie = _.isArray(cook.headers['set-cookie']) ? cook.headers['set-cookie'].join(';;;') : cook.headers['set-cookie']; 123 | const cks = set_cookie.split(';;;'); 124 | const cookie = {}; 125 | for (const c of cks) { 126 | const tmp = c.trim(); 127 | const idx = tmp.indexOf('='); 128 | const k = tmp.substr(0, idx); 129 | const v = tmp.substr(idx + 1, tmp.indexOf(';') - idx - 1); 130 | cookie[k] = v; 131 | } 132 | const resp = await req(`${url}/user/search.html?q=${encodeURIComponent(wd)}&so=undefined`, { 133 | headers: { 134 | accept: 'application/json', 135 | 'User-Agent': MOBILE_UA, 136 | cookie: 'hm=' + cookie['hm'], 137 | Referer: `${url}/s?q=${encodeURIComponent(wd)}`, 138 | }, 139 | }); 140 | var data = JSON.parse(resp.content); 141 | let books = []; 142 | for (const book of data) { 143 | books.push({ 144 | book_id: book.url_list, 145 | book_name: book.articlename, 146 | book_pic: book.url_img, 147 | book_remarks: book.author, 148 | }); 149 | } 150 | return { 151 | tline: 2, 152 | list: books, 153 | }; 154 | } 155 | 156 | export function __jsEvalReturn() { 157 | return { 158 | init: init, 159 | home: home, 160 | category: category, 161 | detail: detail, 162 | play: play, 163 | search: search, 164 | }; 165 | } 166 | -------------------------------------------------------------------------------- /猫/360ba_open.js: -------------------------------------------------------------------------------- 1 | import { Crypto, load, _ } from './lib/cat.js'; 2 | 3 | let siteUrl = 'https://m.360ba.co/'; 4 | let siteKey = ''; 5 | let siteType = 0; 6 | let headers = { 7 | 'User-Agent': 'Mozilla/5.0 (Linux; Android 12; Redmi K30 Build/SKQ1.210908.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/96.0.4664.104 Mobile Safari/537.36', 8 | 'Referer': siteUrl, 9 | 'Origin': siteUrl, 10 | }; 11 | 12 | async function request(reqUrl, postData, post) { 13 | 14 | let res = await req(reqUrl, { 15 | method: post ? 'post' : 'get', 16 | headers: headers, 17 | data: postData || {}, 18 | postType: post ? 'form' : '', 19 | }); 20 | 21 | let content = res.content; 22 | return content; 23 | } 24 | 25 | async function init(cfg) { 26 | siteKey = cfg.skey; 27 | siteType = cfg.stype; 28 | } 29 | 30 | async function home(filter) { 31 | let classes = [{ 32 | type_id: '1', 33 | type_name: '全部', 34 | },{ 35 | type_id: '2', 36 | type_name: '足球', 37 | },{ 38 | type_id: '3', 39 | type_name: '篮球', 40 | },{ 41 | type_id: '99', 42 | type_name: '综合', 43 | }]; 44 | //let filterObj = genFilterObj(); 45 | return JSON.stringify({ 46 | class: classes, 47 | // filters: filterObj 48 | }); 49 | } 50 | 51 | async function category(tid, pg, filter, extend) { 52 | let url = siteUrl + 'api/web/live_lists/' + tid; 53 | let videos = await getVideos(url); 54 | return JSON.stringify({ 55 | list: videos, 56 | page: 1, 57 | pagecount: 1, 58 | limit: 0, 59 | total: videos.length 60 | }); 61 | } 62 | 63 | async function detail(id) { 64 | try { 65 | const video = { 66 | vod_play_from: 'Leospring', 67 | vod_play_url: '播放' + '$' + id, 68 | vod_content: '该资源由LeoSpring采集分享,公众号【蚂蚁科技杂谈】', 69 | }; 70 | const list = [video]; 71 | const result = { list }; 72 | return JSON.stringify(result); 73 | } catch (e) { 74 | //console.log('err', e); 75 | } 76 | return null; 77 | } 78 | 79 | async function search(wd, quick, pg) { 80 | let url = siteUrl + 'api/web/search?keyword=' + wd; 81 | const data = JSON.parse(await request(url))['data']['ball']; 82 | 83 | let videos = _.map(data, (n) => { 84 | let id = n['url']; 85 | let name = n['league_name_zh'] + ' ' + n['home_team_zh'] + ' VS ' + n['away_team_zh']; 86 | let pic = n['cover']; 87 | let remarks = 'LIVING'; 88 | return { 89 | vod_id: id, 90 | vod_name: name, 91 | vod_pic: pic, 92 | vod_remarks: remarks, 93 | }; 94 | }); 95 | return JSON.stringify({ 96 | list: videos, 97 | }); 98 | } 99 | 100 | async function play(flag, id, flags) { 101 | return JSON.stringify({ 102 | parse: 0, 103 | url: id, 104 | header: headers 105 | }); 106 | } 107 | 108 | async function getVideos(url) { 109 | const data = JSON.parse(await request(url))['data']['data']; 110 | 111 | let videos = _.map(data, (n) => { 112 | let id = n['url']; 113 | let name = n['league_name_zh'] + ' ' + n['home_team_zh'] + ' VS ' + n['away_team_zh']; 114 | let pic = n['cover']; 115 | let remarks = 'LIVING'; 116 | return { 117 | vod_id: id, 118 | vod_name: name, 119 | vod_pic: pic, 120 | vod_remarks: remarks, 121 | }; 122 | }); 123 | return videos; 124 | } 125 | 126 | export function __jsEvalReturn() { 127 | return { 128 | init: init, 129 | home: home, 130 | category: category, 131 | detail: detail, 132 | play: play, 133 | search: search, 134 | }; 135 | } -------------------------------------------------------------------------------- /猫/91doutu_open.js: -------------------------------------------------------------------------------- 1 | //bbQ0FUT1COAR45MWRvdXR1X29wZW4uanMsYXNzZXRzOi8vanMvbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybghsb2FkAl8Ga2V5CEhPU1QOc2l0ZUtleRBzaXRlVHlwZRJNT0JJTEVfVUEOcmVxdWVzdAhpbml0CGhvbWUOaG9tZVZvZBBjYXRlZ29yeQxkZXRhaWwIcGxheQxzZWFyY2gaZGVjb2RlVW5pY29kZQlWAFMA7XdnUi5odHRwczovL3d3dy45MWRvdXR1LmNvbZYCTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM18yXzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzEzLjAuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMQxyZXFVcmwOYWdlbnRTcAZyZXMGcmVxDG1ldGhvZBRVc2VyLUFnZW50DmhlYWRlcnMOY29udGVudAZjZmcIc2tleQpzdHlwZQxmaWx0ZXIOY2xhc3NlcxJmaWx0ZXJPYmoOdHlwZV9pZAXtd2dSEnR5cGVfbmFtZQh5ZWFyBXRe404FaFHokAJuAnYEYnkFkmOPXgX2ZfSVDmFkZHRpbWUFuk4UbAhoaXRzBcSLBlIIZ29sZBJzdHJpbmdpZnkOZmlsdGVycwR7fQZ0aWQEcGcMZXh0ZW5kCGxpbmsIaHRtbAIkCml0ZW1zDHZpZGVvcw5oYXNNb3JlDnBnQ291bnQ4L2luZGV4LnBocC9ob21lL3ZvZC90eXBlLWlkLRgtYXJlYS0teWVhci0eLWxldHRlci0tb3JkZXItFC1waWNtLTEtcC0kdWwudmlkZW8tbGlzdCA+IGxpBm1hcFNkAGkAdgAuAGEAagBhAHgALQBwAGEAZwBlACAAPgAgAHUAbAAgAD4AIABsAGkAIAA+ACAAYQA6AGMAbwBuAHQAYQBpAG4AcwAoAAtOAE51mCkAEHBhcnNlSW50CHBhZ2UScGFnZWNvdW50CmxpbWl0CnRvdGFsCGxpc3QIaXRlbQJhCHZwaWMOcmVtYXJrcwhmaW5kDmE6Zmlyc3QOYXR0cmlicxpkYXRhLW9yaWdpbmFsFHNwYW4uc25hbWUQY2hpbGRyZW4IZGF0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 -------------------------------------------------------------------------------- /猫/README.md: -------------------------------------------------------------------------------- 1 | ## Support using private Gitee or GitHub repositories as remote config. 2 | * github://@github.com//// 3 | * gitee://@gitee.com//// 4 | * github://ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/omii/catvod/main/config_open.json 5 | * gitee://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@gitee.com/omii/catvod/master/config_open.json 6 | * https://omii%40qq.com:88888888@dav.jianguoyun.com/dav/cat/js/config_open.json 7 | 8 | 9 | ## personal access token 10 | * Settings > Developer settings > Personal access tokens > Token (classic) > Generate new token 11 | * Settings > Developer settings > Personal access tokens > Fine-grained tokens > Generate new token 12 | 13 | 14 | ## 远端配置: 15 | * github://ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/omiitop/CatVod/main/js/config_open.json 16 | * github://github_pat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/omiitop/CatVod/main/js/config_open.json 17 | 18 | 19 | ## 本地配置: 20 | * assets://js/config_open.json 21 | 22 | ## 远程配置教程: 23 | * https://omii.top/1296.html 24 | 25 | ## iOS签名教程 26 | * https://omii.top/826.html 27 | * https://omii.top/1498.html 推荐 28 | 29 | ## 自定义背景 30 | "color": [ 31 | { 32 | "light": { "bg": "https://i2.100024.xyz/2024/01/13/qrnuwt.webp", "bgMask": "0x50ffffff", "primary": "0xFF2B6C00", "onPrimary": "0xFFFFFFFF", "primaryContainer": "0xFFA6F779", "onPrimaryContainer": "0xFF082100", "secondary": "0xFF55624C", "onSecondary": "0xFFFFFFFF", "secondaryContainer": "0xFFD9E7CA", "onSecondaryContainer": "0xFF131F0D", "tertiary": "0xFF386666", "onTertiary": "0xFFFFFFFF", "tertiaryContainer": "0xFFBBEBEB", "onTertiaryContainer": "0xFF002020", "error": "0xFFBA1A1A", "onError": "0xFFFFFFFF", "errorContainer": "0xFFFFDAD6", "onErrorContainer": "0xFF410002", "background": "0xFFFDFDF5", "onBackground": "0xFF1A1C18", "surface": "0xFFFDFDF5", "onSurface": "0xFF1A1C18", "surfaceVariant": "0xFFE0E4D6", "onSurfaceVariant": "0xFF1A1C18", "inverseSurface": "0xFF2F312C", "onInverseSurface": "0xFFF1F1EA", "outline": "0xFF74796D", "outlineVariant": "0xFFC3C8BB", "shadow": "0xFF000000", "scrim": "0xFF000000", "inversePrimary": "0xFF8CDA60", "surfaceTint": "0xFF2B6C00" }, 33 | "dark": { "bg": "https://i2.100024.xyz/2024/01/13/qrc37o.webp", "bgMask": "0x50000000", "primary": "0xFF8CDA60", "onPrimary": "0xFF133800", "primaryContainer": "0xFF1F5100", "onPrimaryContainer": "0xFFA6F779", "secondary": "0xFFBDCBAF", "onSecondary": "0xFF283420", "secondaryContainer": "0xFF3E4A35", "onSecondaryContainer": "0xFFD9E7CA", "tertiary": "0xFFA0CFCF", "onTertiary": "0xFF003737", "tertiaryContainer": "0xFF1E4E4E", "onTertiaryContainer": "0xFFBBEBEB", "error": "0xFFFFB4AB", "errorContainer": "0xFF93000A", "onError": "0xFF690005", "onErrorContainer": "0xFFFFDAD6", "background": "0xFF1A1C18", "onBackground": "0xFFE3E3DC", "outline": "0xFF8D9286", "onInverseSurface": "0xFF1A1C18", "inverseSurface": "0xFFE3E3DC", "inversePrimary": "0xFF2B6C00", "shadow": "0xFF000000", "surfaceTint": "0xFF8CDA60", "outlineVariant": "0xFF43483E", "scrim": "0xFF000000", "surface": "0xFF1A1C18", "onSurface": "0xFFC7C7C0", "surfaceVariant": "0xFF43483E", "onSurfaceVariant": "0xFFC7C7C0" } 34 | } 35 | ], 36 | 37 | 38 | ## 自助添加接口格式: 39 | { 40 | "key": "wogg", 41 | "name": "🟢 玩偶", 42 | "type": 3, 43 | "api": "./wogg_open.js", 44 | "ext": "填入阿里token" 45 | }, 46 | 47 | "key"、"name" 内:与其他不重复的名称均可。 48 | "type" 3为影视,10为有声读物 49 | "api" 填写js路径,"ext" 填写扩展内容,例如玩偶的token。 50 | 以上由omii.top提供 51 | -------------------------------------------------------------------------------- /猫/app.js: -------------------------------------------------------------------------------- 1 | function __jsEvalReturn() { 2 | return { 3 | isVideoFormat: function (url) { 4 | return !0; 5 | }, 6 | }; 7 | } 8 | export { __jsEvalReturn }; 9 | -------------------------------------------------------------------------------- /猫/baozimh_open.js: -------------------------------------------------------------------------------- 1 | import { Crypto, _, load } from './lib/cat.js'; 2 | 3 | let key = 'baozimh'; 4 | let url = 'https://cn.baozimh.com'; 5 | const img = 'https://static-tw.baozimh.com/cover/'; 6 | 7 | const img2 = '?w=285&h=375&q=100'; 8 | 9 | let siteKey = ''; 10 | let siteType = 0; 11 | 12 | const 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'; 13 | 14 | async function request(reqUrl) { 15 | let resp = await req(reqUrl, { 16 | headers: { 17 | 'User-Agent': UA, 18 | }, 19 | }); 20 | return resp.content; 21 | } 22 | 23 | // cfg = {skey: siteKey, ext: extend} 24 | async function init(cfg) { 25 | siteKey = cfg.skey; 26 | siteType = cfg.stype; 27 | } 28 | 29 | async function home(filter) { 30 | var html = await request(url + '/classify'); 31 | const $ = load(html); 32 | 33 | let filterObj = { c1: [] }; 34 | 35 | for (const nav of $('div.classify div.nav')) { 36 | const as = $(nav).find('a.item'); 37 | const checkUrl = decodeURIComponent(as[1].attribs.href); 38 | const reg = /type=(.*)®ion=(.*)&state=(.*)&filter=(.*)/; 39 | const matchs = checkUrl.match(reg); 40 | let typeKey = ''; 41 | let typeIdx = 1; 42 | if (matchs[1] != 'all') { 43 | typeKey = 'type'; 44 | typeIdx = 1; 45 | } else if (matchs[2] != 'all') { 46 | typeKey = 'region'; 47 | typeIdx = 2; 48 | } else if (matchs[3] != 'all') { 49 | typeKey = 'state'; 50 | typeIdx = 3; 51 | } else if (matchs[4] != '*') { 52 | typeKey = 'filter'; 53 | typeIdx = 4; 54 | } 55 | const tvals = []; 56 | for (const a of as) { 57 | tvals.push({ 58 | n: $(a).text().trim(), 59 | v: decodeURIComponent(a.attribs.href).match(reg)[typeIdx], 60 | }); 61 | } 62 | filterObj['c1'].push({ 63 | key: typeKey, 64 | name: '', 65 | wrap: typeIdx == 1 ? 1 : 0, 66 | init: typeIdx == 4 ? '*' : 'all', 67 | value: tvals, 68 | }); 69 | } 70 | 71 | return { 72 | class: [{ type_name: 'all', type_id: 'c1' }], 73 | filters: filterObj, 74 | }; 75 | } 76 | 77 | async function category(tid, pg, filter, extend) { 78 | if (pg == 0) pg = 1; 79 | let link = `${url}/api/bzmhq/amp_comic_list?type=${extend.type || 'all'}®ion=${extend.region || 'all'}&state=${extend.state || 'all'}&filter=${extend.filter || '*'}`; 80 | link += '&page=' + pg + '&limit=36&language=cn'; 81 | var html = await request(link); 82 | const data = JSON.parse(html); 83 | let books = []; 84 | for (const book of data.items) { 85 | books.push({ 86 | book_id: book.comic_id, 87 | book_name: book.name, 88 | book_pic: img + book.topic_img + img2, 89 | book_remarks: book.author || '', 90 | }); 91 | } 92 | return { 93 | page: pg, 94 | pagecount: books.length == 36 ? pg + 1 : pg, 95 | list: books, 96 | }; 97 | } 98 | 99 | async function detail(id) { 100 | var html = await request(`${url}/comic/${id}`); 101 | const $ = load(html); 102 | let book = { 103 | book_director: $('[data-hid$=og:novel:author]')[0].attribs.content || '', 104 | book_content: $('[data-hid$=og:description]')[0].attribs.content || '', 105 | }; 106 | 107 | const formatUrl = (a) => { 108 | return $(a).text().replace(/\$|#/g, ' ').trim() + '$' + decodeURIComponent(a.attribs.href); 109 | }; 110 | 111 | let urls = _.map($('div#chapter-items a.comics-chapters__item'), formatUrl); 112 | urls.push(..._.map($('div#chapters_other_list a.comics-chapters__item'), formatUrl)); 113 | if (urls.length == 0) { 114 | urls = _.reverse(_.map($('div.pure-g a.comics-chapters__item'), formatUrl)); 115 | } 116 | book.volumes = '默認'; 117 | book.urls = urls.join('#'); 118 | 119 | return { 120 | list: [book], 121 | }; 122 | } 123 | 124 | async function play(flag, id, flags) { 125 | try { 126 | var html = await request(url + id); 127 | const $ = load(html); 128 | 129 | var content = []; 130 | for (const img of $('amp-img')) { 131 | content.push(img.attribs.src); 132 | } 133 | return { 134 | content: content, 135 | }; 136 | } catch (e) {} 137 | return { 138 | content: [], 139 | }; 140 | } 141 | 142 | async function search(wd, quick, pg) { 143 | var html = await request(`${url}/search?q=${wd}`); 144 | const $ = load(html); 145 | const books = []; 146 | for (const a of $('div.classify-items a.comics-card__poster')) { 147 | books.push({ 148 | book_id: a.attribs.href.replace('/comic/', ''), 149 | book_name: a.attribs.title, 150 | book_pic: $(a).find('amp-img:first')[0].attribs.src, 151 | book_remarks: '', 152 | }); 153 | } 154 | return { 155 | page: 1, 156 | pagecount: 1, 157 | list: books, 158 | }; 159 | } 160 | 161 | export function __jsEvalReturn() { 162 | return { 163 | init: init, 164 | home: home, 165 | category: category, 166 | detail: detail, 167 | play: play, 168 | search: search, 169 | }; 170 | } 171 | -------------------------------------------------------------------------------- /猫/bilibili.js: -------------------------------------------------------------------------------- 1 | import{Crypto,load,_}from"assets://js/lib/cat.js";let key="bilibili",url="",siteKey="",siteType=0;const 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",cookie={};async function request(reqUrl,referer,mth,data,hd){var headers={"User-Agent":UA,Cookie:_.map(cookie,(value,key)=>key+"="+value).join(";")},referer=(referer&&(headers.referer=encodeURIComponent(referer)),await req(reqUrl,{method:mth||"get",headers:headers,data:data,postType:"post"===mth?"form":""}));return referer.content}async function init(cfg){siteKey=cfg.skey,siteType=cfg.stype,url=cfg.ext}async function home(filter){return(await request(url)).replaceAll("1$/$1","1$/$0")}async function homeVod(){return"{}"}async function category(tid,pg,filter,extend){pg<=0&&(pg=1);let api=url+"?t="+tid+"&pg="+pg;return extend&&(tid=Object.entries(extend).map(([key,val]=entry)=>"&"+key+"="+val),api=(api+=tid)+("&f="+encodeURIComponent(JSON.stringify(extend)))),request(api)}async function detail(id){return request(url+"?ids="+id)}async function play(flag,id,flags){return request(url.replace("/bilibili","/play")+"?bvid="+id+"&from=open")}async function search(wd,quick){return request(url+"?wd="+wd)}function __jsEvalReturn(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search}}export{__jsEvalReturn}; -------------------------------------------------------------------------------- /猫/bilibili_open.js: -------------------------------------------------------------------------------- 1 | import{Crypto,load,_}from"assets://js/lib/cat.js";let key="bilibili",url="",siteKey="",siteType=0;const 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",cookie={};async function request(reqUrl,referer,mth,data,hd){var headers={"User-Agent":UA,Cookie:_.map(cookie,(value,key)=>key+"="+value).join(";")},referer=(referer&&(headers.referer=encodeURIComponent(referer)),await req(reqUrl,{method:mth||"get",headers:headers,data:data,postType:"post"===mth?"form":""}));return referer.content}async function init(cfg){siteKey=cfg.skey,siteType=cfg.stype,url=cfg.ext}async function home(filter){return(await request(url)).replaceAll("1$/$1","1$/$0")}async function homeVod(){return"{}"}async function category(tid,pg,filter,extend){pg<=0&&(pg=1);let api=url+"?t="+tid+"&pg="+pg;return extend&&(tid=Object.entries(extend).map(([key,val]=entry)=>"&"+key+"="+val),api=(api+=tid)+("&f="+encodeURIComponent(JSON.stringify(extend)))),request(api)}async function detail(id){return request(url+"?ids="+id)}async function play(flag,id,flags){return request(url.replace("/bilibili","/play")+"?bvid="+id+"&from=open")}async function search(wd,quick){return request(url+"?wd="+wd)}function __jsEvalReturn(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search}}export{__jsEvalReturn}; -------------------------------------------------------------------------------- /猫/book18_open.js: -------------------------------------------------------------------------------- 1 | //bbQ0FUT1CwARxib29rMThfb3Blbi5qcyxhc3NldHM6Ly9qcy9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuCmRheWpzDGppbmphMghsb2FkBlVyaQJfDl8weDE4YzYOXzB4MzA0YhJfMHhjY2I2ODgSXzB4NTNmYzdkEl8weDI0NzhhZRJfMHgyNTIzOTcSXzB4NGQyNjY2El8weDkzYmYzNxJfMHg0MjBkZGISXzB4NWE2MmE4El8weDJiNmQ4NRJfMHg1ZjJmNzkSXzB4NTlmY2ViEl8weDNkODU3YxJfMHg1MmQwOGUHaFGHZSQACHRyaW0Kc3R5cGUcemgtQ04semg7cT0wLjgkL3poLWhhbnMvY2F0ZWdvcnkvDnJlcGxhY2UOYjpmaXJzdCwvemgtaGFucy9hcnRpY2xlL2luZGV4CHRleHQWL3poLWhhbnMvcS8IcHVzaAhlYWNoCHNrZXkIY2F0ZRomcGVyLXBhZ2U9MTAwEi9sb2dvLnBuZxBjaGlsZHJlbgZtYXAIZmluZE5uYXYubXQtMjpmaXJzdCBsaT5hW2hyZWYqPSIvY2F0ZWdvcnkvIl0WZGl2I2NvbnRlbnQOaW5kZXhPZhAvemgtaGFucw5jb250ZW50JHVsLmxpc3QtZ3JvdXAgbGk+YQw/cGFnZT0OYXR0cmlicwhocmVm9gJNb3ppbGxhLzUuMCAoTGludXg7IEFuZHJvaWQgMTE7IE0yMDA3SjNTQyBCdWlsZC9SS1ExLjIwMDgyNi4wMDI7IHd2KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzQuMCBDaHJvbWUvNzcuMC4zODY1LjEyMCBNUVFCcm93c2VyLzYuMiBUQlMvMDQ1NzE0IE1vYmlsZSBTYWZhcmkvNTM3LjM2DGJvb2sxOCxodHRwczovL3d3dy5ib29rMTgub3JnCDB4MTYSXzB4NTE2NGE3El8weDE4YzZiMBJfMHgzMDRiNzMSXzB4NDhiZTgwCnNoaWZ0El8weDQ3YjgzMwZyZXEIMHgxYR5BY2NlcHQtTGFuZ3VhZ2UUVXNlci1BZ2VudA5oZWFkZXJzCDB4MTASXzB4OGI2Mzc5BjB4NAgweDE5El8weDFjMmE3MRJfMHgxNzkyM2YSXzB4ODYxN2Y4El8weDJiMDgyMxJfMHgyY2UyNGQGMHhmBjB4YQYweGMKY2h1bmsOdHlwZV9pZAV/lcd7EnR5cGVfbmFtZQp0bGluZQpyYXRpbwp3aWR0aAgweDFlBe13x3sIMHgxYgUGUnt8DmZpbHRlcnMSXzB4MzUxNjViBjB4MAJuCDB4MTQIMHgxNQJ2El8weDQ2MTRjMhJfMHgzNjA5MzMGMHg1BmtleQhpbml0BjB4MgR7fRJfMHg0Y2FiZWQSXzB4OTFkNDI5El8weDRiNmY1YxJfMHgxNjIzZDkSXzB4MTdhZWRmEl8weDFkN2ZhMxJfMHhjOTM3MTASXzB4MWNjYTk1El8weDNkMDYxORJfMHgyYTJiNmMSXzB4MzlmMjMxCDB4MTMGMHg2CDB4MTEGMHhiCDB4MWQkZGVjb2RlVVJJQ29tcG9uZW50DmJvb2tfaWQSYm9va19uYW1lEGJvb2tfcGljGGJvb2tfcmVtYXJrcwhwYWdlCDB4MTIScGFnZWNvdW50CGxpc3QSXzB4ZDMzNmY5El8weDgyODJiMRJfMHgyZjg5MTYSXzB4MzZiOTlhEl8weDM3OTM0NBJfMHgzZDYyM2MGMHhlEi9hcnRpY2xlLwgweDE3HGRpdi5jb250ZW50IGgxBjB4Mw52b2x1bWVzBWhRLGcIdXJscwYweDgCIxJfMHgzYjYxOTISXzB4MTdiNTg1CDB4MWMIMHgxOAIkEl8weDRmZTY4ORJfMHg1MGYyOTMSXzB4M2JhNWVjEl8weDFmMzkzZhJfMHhmNDRjMWUGMHhkEl8weDQ3NTQ3ORJfMHgyMTQ1YWYSXzB4NDdiYmNkEl8weDM1NjdkMxJfMHgxZDNmZDMSXzB4MmFjNjNlEl8weDM4MGRiZhJfMHg1YTBjMzUSXzB4NTkyNDBkEl8weDUwZmU1YhJfMHgzMWUzMjUGMHgxBjB4OQhkYXRhBjB4Nwhob21lDmhvbWVWb2QQY2F0ZWdvcnkMZGV0YWlsCHBsYXkMc2VhcmNoD6QDAaYDAQAUqAMABQCqAwABrAMAAq4DAAOwAwAEsgMADgAGAaABAAAAHxULiwIAqgMADKwDAQyuAwIMsAMDDLIDBAy0AwANtgMBDbgDAgm6AwMJvAMECb4DBQnAAwYNwgMHAcQDCAHGAwkByAMKAcoDCwHMAwwBzgMNAdADDgGoAw8BCOgv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 -------------------------------------------------------------------------------- /猫/bookan_book_open.js: -------------------------------------------------------------------------------- 1 | import { _ } from './lib/cat.js'; 2 | 3 | let key = 'bookan'; 4 | let url = 'https://api.bookan.com.cn'; 5 | let siteKey = ''; 6 | let siteType = 0; 7 | 8 | async function request(reqUrl, agentSp) { 9 | let res = await req(reqUrl, { 10 | method: 'get', 11 | }); 12 | return res.content; 13 | } 14 | 15 | // cfg = {skey: siteKey, ext: extend} 16 | async function init(cfg) { 17 | siteKey = cfg.skey; 18 | siteType = cfg.stype; 19 | } 20 | 21 | async function home(filter) { 22 | return JSON.stringify({ 23 | class: [ 24 | { type_id: '1305', type_name: '少年读物' }, 25 | { type_id: '1304', type_name: '儿童文学' }, 26 | { type_id: '1320', type_name: '国学经典' }, 27 | { type_id: '1306', type_name: '文艺少年' }, 28 | { type_id: '1309', type_name: '育儿心经' }, 29 | { type_id: '1310', type_name: '心理哲学' }, 30 | { type_id: '1307', type_name: '青春励志' }, 31 | { type_id: '1312', type_name: '历史小说' }, 32 | { type_id: '1303', type_name: '故事会' }, 33 | { type_id: '1317', type_name: '音乐戏剧' }, 34 | { type_id: '1319', type_name: '相声评书' }, 35 | ], 36 | }); 37 | } 38 | 39 | async function category(tid, pg, filter, extend) { 40 | pg = pg || 1; 41 | if (pg == 0) pg = 1; 42 | let content = await request(`${url}/voice/book/list?instance_id=25304&page=${pg}&category_id=${tid}&num=24`); 43 | let data = JSON.parse(content).data; 44 | let books = []; 45 | for (const book of data.list) { 46 | books.push({ 47 | book_id: book.id, 48 | book_name: book.name, 49 | book_pic: book.cover, 50 | book_remarks: book.extra.author, 51 | }); 52 | } 53 | return JSON.stringify({ 54 | page: data.current_page, 55 | pagecount: data.last_page, 56 | limit: 24, 57 | total: data.total, 58 | list: books, 59 | }); 60 | } 61 | 62 | async function detail(id) { 63 | let content = await request(`${url}/voice/album/units?album_id=${id}&page=1&num=200&order=1`); 64 | let data = JSON.parse(content).data; 65 | 66 | let book = { 67 | audio:1, 68 | book_id: id, 69 | type_name: '', 70 | book_year: '', 71 | book_area: '', 72 | book_remarks: '', 73 | book_actor: '', 74 | book_director: '', 75 | book_content: '', 76 | }; 77 | let us = _.map(data.list, function (b) { 78 | return formatPlayUrl(b.title) + '$' + b.file; 79 | }).join('#'); 80 | book.volumes = '书卷'; 81 | book.urls = us; 82 | 83 | return JSON.stringify({ 84 | list: [book], 85 | }); 86 | } 87 | 88 | function formatPlayUrl(name) { 89 | return name 90 | .trim() 91 | .replace(/<|>|《|》/g, '') 92 | .replace(/\$|#/g, ' ') 93 | .trim(); 94 | } 95 | 96 | async function proxy(segments, headers) {} 97 | 98 | async function play(flag, id, flags) { 99 | return JSON.stringify({ 100 | parse: 0, 101 | url: id, 102 | }); 103 | } 104 | 105 | async function search(wd, quick, pg) { 106 | pg = pg || 1; 107 | if (pg == 0) pg = 1; 108 | let content = await request(`https://es.bookan.com.cn/api/v3/voice/book?instanceId=25304&keyword=${wd}&pageNum=${pg}&limitNum=20`); 109 | let data = JSON.parse(content).data; 110 | let books = []; 111 | for (const book of data.list) { 112 | books.push({ 113 | book_id: book.id, 114 | book_name: book.name, 115 | book_pic: book.cover, 116 | book_remarks: book.extra.author, 117 | }); 118 | } 119 | return JSON.stringify({ 120 | page: data.current_page, 121 | pagecount: data.last_page, 122 | limit: 20, 123 | total: data.total, 124 | list: books, 125 | }); 126 | } 127 | 128 | export function __jsEvalReturn() { 129 | return { 130 | init: init, 131 | home: home, 132 | category: category, 133 | detail: detail, 134 | play: play, 135 | search: search, 136 | }; 137 | } 138 | -------------------------------------------------------------------------------- /猫/build.js: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs'; 2 | import path from 'path'; 3 | import uglifyjs from 'uglify-js'; 4 | 5 | const copySpider = ['app', 'kunyu77_open', 'alist_open']; 6 | 7 | const root = process.cwd(); 8 | 9 | const src = path.join(root); 10 | const out = path.join(root, 'dist'); 11 | 12 | function minify(s, d) { 13 | var jsContent = fs.readFileSync(s).toString(); 14 | jsContent = jsContent.replace('./lib/cat.js', 'assets://js/lib/cat.js'); 15 | jsContent = jsContent.replace('./cat.js', 'assets://js/lib/cat.js'); 16 | jsContent = uglifyjs.minify(jsContent, { 17 | mangle: false, 18 | }); 19 | fs.writeFileSync(d, jsContent.code); 20 | } 21 | 22 | function listAllFiles(dirPath, arrayOfFiles) { 23 | var files = fs.readdirSync(dirPath); 24 | 25 | arrayOfFiles = arrayOfFiles || []; 26 | 27 | files.forEach(function (file) { 28 | if (fs.statSync(dirPath + '/' + file).isDirectory()) { 29 | arrayOfFiles = listAllFiles(dirPath + '/' + file, arrayOfFiles); 30 | } else { 31 | arrayOfFiles.push(path.join(dirPath, '/', file)); 32 | } 33 | }); 34 | 35 | return arrayOfFiles; 36 | } 37 | 38 | function src2Out() { 39 | if (fs.existsSync(out)) fs.rmSync(out, { recursive: true, force: true }); 40 | 41 | fs.mkdirSync(out, { recursive: true }); 42 | const libSrc = path.join(src, 'lib'); 43 | const libOut = path.join(out, 'lib'); 44 | fs.mkdirSync(libOut, { recursive: true }); 45 | const libs = listAllFiles(libSrc); 46 | for (let index = 0; index < libs.length; index++) { 47 | const element = libs[index]; 48 | const relative = path.relative(libSrc, element); 49 | minify(element, path.join(libOut, relative)); 50 | } 51 | 52 | for (const sp of copySpider) { 53 | minify(path.join(src, sp + '.js'), path.join(out, sp + '.js')); 54 | } 55 | } 56 | 57 | src2Out(); 58 | 59 | fs.copyFileSync(path.join(src, 'config_open.json'), path.join(out, 'config_open.json')); 60 | 61 | console.log('done'); 62 | -------------------------------------------------------------------------------- /猫/caiji.js: -------------------------------------------------------------------------------- 1 | //bbQ0FUT1BTEGNhaWppLmpzLGFzc2V0czovL2pzL2xpYi9jYXQuanMcX19qc0V2YWxSZXR1cm4CXw5zaXRlS2V5EHNpdGVUeXBlBFVBDmJhc2VVcmwUY2F0ZWdvcmllcwhpbml0EmdldEhlYWRlchJnZXRTdHJpbmcIaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFpbAhwbGF5DHNlYXJjaN4BTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEwOS4wLjAuMCBTYWZhcmkvNTM3LjM2BmNmZwhza2V5CnN0eXBlBmV4dAZ1cmwMaGVhZGVyFFVzZXItQWdlbnQGcmVzBnJlcQ5oZWFkZXJzDmNvbnRlbnQMZmlsdGVyDHJlcVVybA5qc29uU3RyCGRhdGEWY2xhc3Nlc3NBcnIOY2xhc3NlcxJmaWx0ZXJPYmoaY2F0ZWdvcmllc09iagZvbmUIY2F0ZQJlCnBhcnNlDmlzRW1wdHkQaW5jbHVkZXMSdHlwZV9uYW1lDnR5cGVfaWQQdHlwZV9waWQIcHVzaBJzdHJpbmdpZnkOZmlsdGVycw5jb25zb2xlCmRlYnVnBHt9BnRpZARwZwxleHRlbmQMdmlkZW9zID9hYz12aWRlb2xpc3QmdD0IJnBnPQhsaXN0DHZvZF9pZBB2b2RfbmFtZQ52b2RfcGljFnZvZF9yZW1hcmtzEHBhcnNlSW50CHBhZ2UScGFnZWNvdW50CmxpbWl0CnRvdGFsBGlkBnZvZCQ/YWM9dmlkZW9saXN0Jmlkcz0Qdm9kX3llYXIQdm9kX2FyZWESdm9kX2FjdG9yGHZvZF9kaXJlY3RvchZ2b2RfY29udGVudBp2b2RfcGxheV9mcm9tGHZvZF9wbGF5X3VybAhmbGFnBHdkCnF1aWNrHD9hYz1kZXRhaWwmd2Q9D6QDAaYDAQAPqAMAAQCqAwAOAAYBoAEAAAABEApLAKoDAAysAwAJrgMBCbADAgmyAwMJtAMECbYDBQG4AwYBugMHAbwDCAG+AwkBwAMKAcIDCwHEAwwBxgMNAagDDgEI6DS+AF8GAL4BXwcAvgJfCAC+A18JAL4EXwoAvgVfCwC+Bl8M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 -------------------------------------------------------------------------------- /猫/config_open.json: -------------------------------------------------------------------------------- 1 | { 2 | "video": { 3 | "sites": [ 4 | { 5 | "key": "site1", 6 | "name": "Site1", 7 | "type": 3, 8 | "api": "assets://js/site01_open.js" 9 | }, 10 | { 11 | "key": "site2", 12 | "name": "Site2", 13 | "type": 3, 14 | "api": "assets://js/site02_open.js" 15 | }, 16 | { 17 | "key": "site3", 18 | "name": "Site3", 19 | "type": 3, 20 | "api": "assets://js/site03_open.js" 21 | } 22 | ] 23 | }, 24 | "read": { 25 | "sites": [ 26 | { 27 | "key": "site1", 28 | "name": "Site1", 29 | "type": 3, 30 | "api": "assets://js/site01_open.js" 31 | }, 32 | { 33 | "key": "site2", 34 | "name": "Site2", 35 | "type": 3, 36 | "api": "assets://js/site02_open.js" 37 | }, 38 | { 39 | "key": "site3", 40 | "name": "Site3", 41 | "type": 3, 42 | "api": "assets://js/site03_open.js" 43 | } 44 | ] 45 | }, 46 | "comic": { 47 | "sites": [ 48 | { 49 | "key": "site1", 50 | "name": "Site1", 51 | "type": 3, 52 | "api": "assets://js/site01_open.js" 53 | }, 54 | { 55 | "key": "site2", 56 | "name": "Site2", 57 | "type": 3, 58 | "api": "assets://js/site02_open.js" 59 | }, 60 | { 61 | "key": "site3", 62 | "name": "Site3", 63 | "type": 3, 64 | "api": "assets://js/site03_open.js" 65 | } 66 | ] 67 | }, 68 | "pan": { 69 | "sites": [ 70 | { 71 | "key": "alist", 72 | "name": "Alist", 73 | "type": 40, 74 | "api": "assets://js/alist_open.js", 75 | "ext": [] 76 | } 77 | ] 78 | }, 79 | "color": [ 80 | { 81 | "light": { "bg": "https://i2.100024.xyz/2024/01/13/qrnuwt.webp", "bgMask": "0x50ffffff", "primary": "0xFF2B6C00", "onPrimary": "0xFFFFFFFF", "primaryContainer": "0xFFA6F779", "onPrimaryContainer": "0xFF082100", "secondary": "0xFF55624C", "onSecondary": "0xFFFFFFFF", "secondaryContainer": "0xFFD9E7CA", "onSecondaryContainer": "0xFF131F0D", "tertiary": "0xFF386666", "onTertiary": "0xFFFFFFFF", "tertiaryContainer": "0xFFBBEBEB", "onTertiaryContainer": "0xFF002020", "error": "0xFFBA1A1A", "onError": "0xFFFFFFFF", "errorContainer": "0xFFFFDAD6", "onErrorContainer": "0xFF410002", "background": "0xFFFDFDF5", "onBackground": "0xFF1A1C18", "surface": "0xFFFDFDF5", "onSurface": "0xFF1A1C18", "surfaceVariant": "0xFFE0E4D6", "onSurfaceVariant": "0xFF1A1C18", "inverseSurface": "0xFF2F312C", "onInverseSurface": "0xFFF1F1EA", "outline": "0xFF74796D", "outlineVariant": "0xFFC3C8BB", "shadow": "0xFF000000", "scrim": "0xFF000000", "inversePrimary": "0xFF8CDA60", "surfaceTint": "0xFF2B6C00" }, 82 | "dark": { "bg": "https://i2.100024.xyz/2024/01/13/qrc37o.webp", "bgMask": "0x50000000", "primary": "0xFF8CDA60", "onPrimary": "0xFF133800", "primaryContainer": "0xFF1F5100", "onPrimaryContainer": "0xFFA6F779", "secondary": "0xFFBDCBAF", "onSecondary": "0xFF283420", "secondaryContainer": "0xFF3E4A35", "onSecondaryContainer": "0xFFD9E7CA", "tertiary": "0xFFA0CFCF", "onTertiary": "0xFF003737", "tertiaryContainer": "0xFF1E4E4E", "onTertiaryContainer": "0xFFBBEBEB", "error": "0xFFFFB4AB", "errorContainer": "0xFF93000A", "onError": "0xFF690005", "onErrorContainer": "0xFFFFDAD6", "background": "0xFF1A1C18", "onBackground": "0xFFE3E3DC", "outline": "0xFF8D9286", "onInverseSurface": "0xFF1A1C18", "inverseSurface": "0xFFE3E3DC", "inversePrimary": "0xFF2B6C00", "shadow": "0xFF000000", "surfaceTint": "0xFF8CDA60", "outlineVariant": "0xFF43483E", "scrim": "0xFF000000", "surface": "0xFF1A1C18", "onSurface": "0xFFC7C7C0", "surfaceVariant": "0xFF43483E", "onSurfaceVariant": "0xFFC7C7C0" } 83 | } 84 | ] 85 | } 86 | -------------------------------------------------------------------------------- /猫/ddmv_open.js: -------------------------------------------------------------------------------- 1 | //bbQ0FUT1CCARxrdXFpbXZfb3Blbi5qcyxhc3NldHM6Ly9qcy9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuCGxvYWQCXwZrZXkISE9TVA5zaXRlS2V5EHNpdGVUeXBlClBDX1VBDnJlcXVlc3QIaW5pdAhob21lDmhvbWVWb2QQY2F0ZWdvcnkMZGV0YWlsCHBsYXkMc2VhcmNoCXeRR1lNAFYALGh0dHBzOi8vd3d3Lmt1cWltdi5jb23eAU1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTUuMC4wLjAgU2FmYXJpLzUzNy4zNgxyZXFVcmwOcmVmZXJlcgZtdGgIZGF0YQRoZA5oZWFkZXJzBnJlcxRVc2VyLUFnZW50JGVuY29kZVVSSUNvbXBvbmVudAZyZXEMbWV0aG9kCHBvc3QIZm9ybRBwb3N0VHlwZQ5jb250ZW50BmNmZwhza2V5CnN0eXBlDGZpbHRlcg5jbGFzc2VzEmZpbHRlck9iag50eXBlX2lkCU5T7YvYmgVuEnR5cGVfbmFtZQnlZemXvnwJkAkna45/TQBWAAnYmgVusHM6VwlxX8aJTQBWAAkcWZdexomRmAlmjyFqxomRmAntcB6CxomRmAmOf3NZmVEfdwmOf3NZU2KfeBJzdHJpbmdpZnkGbWFwDmZpbHRlcnMGY2xzCGxhbmQKcmF0aW8IbGluawhodG1sAiQKaXRlbXMMdmlkZW9zHC9wbGF5LzlfMS5odG1sIGRpdi5tdl9saXN0ID4gbGkIbGlzdARpdAJhBmltZwxzaW5nZXIOcmVtYXJrcwhmaW5kDmE6Zmlyc3QSaW1nOmZpcnN0FGRpdi5zaW5nZXIIdGV4dAh0cmltFnNwYW4ubGVpXzAzDmF0dHJpYnMIaHJlZg5yZXBsYWNlBCQxDHZvZF9pZAp0aXRsZRB2b2RfbmFtZQZzcmMOdm9kX3BpYwU82KTfA1z/FnZvZF9yZW1hcmtzBnRpZARwZwxleHRlbmQOaGFzTW9yZQ5wZ0NvdW50DC9wbGF5LwouaHRtbD1kAGkAdgAuAGwAZQBpAF8AcABhAGcAZQAgAD4AIABhADoAYwBvAG4AdABh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 -------------------------------------------------------------------------------- /猫/dovx_open.js: -------------------------------------------------------------------------------- 1 | import { _ } from 'assets://js/lib/cat.js'; 2 | import { log } from './lib/utils.js'; 3 | import { initAli, detailContent, playContent } from './lib/ali.js'; 4 | 5 | let siteKey = 'dovx'; 6 | let siteType = 0; 7 | let siteUrl = 'https://api.dovx.tk'; 8 | let patternAli = /(https:\/\/www\.(aliyundrive|alipan)\.com\/s\/[^"]+)/ 9 | 10 | async function request(reqUrl) { 11 | let res = await req(reqUrl, { 12 | method: 'get', 13 | headers: { 14 | 'Referer': siteUrl, 15 | }, 16 | }); 17 | return res.content; 18 | } 19 | 20 | // cfg = {skey: siteKey, ext: extend} 21 | async function init(cfg) { 22 | try { 23 | siteKey = _.isEmpty(cfg.skey) ? '' : cfg.skey; 24 | siteType = _.isEmpty(cfg.stype) ? '' : cfg.stype; 25 | await initAli(cfg); 26 | } catch (e) { 27 | await log('init:' + e.message + ' line:' + e.lineNumber); 28 | } 29 | } 30 | 31 | async function home(filter) { 32 | return '{}'; 33 | } 34 | 35 | async function homeVod() {} 36 | 37 | async function category(tid, pg, filter, extend) { 38 | return '{}'; 39 | } 40 | 41 | async function detail(id) { 42 | try { 43 | let matches = id.match(patternAli); 44 | if (!_.isEmpty(matches)) return await detailContent(matches[0]); 45 | return ''; 46 | } catch (e) { 47 | await log('detail:' + e.message + ' line:' + e.lineNumber); 48 | } 49 | } 50 | 51 | async function play(flag, id, flags) { 52 | try { 53 | return await playContent(flag, id, flags); 54 | } catch (e) { 55 | await log('play:' + e.message + ' line:' + e.lineNumber); 56 | } 57 | } 58 | 59 | async function search(wd, quick, pg) { 60 | let resp = await request(siteUrl + "/ali/search?wd=" + encodeURIComponent(wd)); 61 | let videos = JSON.parse(resp).list; 62 | _.each(videos, (item) => { 63 | item.vod_id = item.vod_content; 64 | item.vod_content = undefined; 65 | }); 66 | return JSON.stringify({ 67 | list: videos, 68 | }); 69 | } 70 | 71 | export function __jsEvalReturn() { 72 | return { 73 | init: init, 74 | home: home, 75 | homeVod: homeVod, 76 | category: category, 77 | detail: detail, 78 | play: play, 79 | search: search, 80 | }; 81 | } -------------------------------------------------------------------------------- /猫/fengche_open.js: -------------------------------------------------------------------------------- 1 | import { _, Uri, load } from 'assets://js/lib/cat.js'; 2 | 3 | let key = 'fengche'; 4 | let HOST = 'https://www.qyy158.com'; 5 | 6 | let siteKey = ''; 7 | let siteType = 0; 8 | 9 | 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'; 10 | 11 | async function request(reqUrl) { 12 | const resp = await req(reqUrl, { 13 | headers: { 14 | 'User-Agent': PC_UA, 15 | }, 16 | buffer: 1, 17 | }); 18 | return gbk.decode(resp.content); 19 | } 20 | 21 | // cfg = {skey: siteKey, ext: extend} 22 | async function init(cfg) { 23 | siteKey = cfg.skey; 24 | siteType = cfg.stype; 25 | } 26 | 27 | async function home(filter) { 28 | const classes = [{'type_id':'all','type_name':'all'}]; 29 | const filterObj = { 30 | 'all':[{'key':'area','name':'地域','init':'','value':[{'n':'全部','v':''},{'n':'大陆','v':'1'},{'n':'日本','v':'2'},{'n':'韩国','v':'3'},{'n':'欧美','v':'4'}]},{'key':'class','name':'类别','init':'','wrap':1,'value':[{'n':'全部','v':''},{'n':'霸总','v':'bazong'},{'n':'修真','v':'xiuzhen'},{'n':'恋爱','v':'lianai'},{'n':'校园','v':'xiaoyuan'},{'n':'冒险','v':'maoxian'},{'n':'搞笑','v':'gaoxiao'},{'n':'生活','v':'shenghuo'},{'n':'热血','v':'rexue'},{'n':'架空','v':'jiakong'},{'n':'后宫','v':'hougong'},{'n':'玄幻','v':'xuanhuan'},{'n':'悬疑','v':'xuanyi'},{'n':'恐怖','v':'kongbu'},{'n':'灵异','v':'lingyi'},{'n':'动作','v':'dongzuo'},{'n':'科幻','v':'kehuan'},{'n':'战争','v':'zhanzheng'},{'n':'古风','v':'gufeng'},{'n':'穿越','v':'chuanyue'},{'n':'竞技','v':'jingji'},{'n':'励志','v':'lizhi'},{'n':'同人','v':'tongren'},{'n':'真人','v':'zhenren'},{'n':'其他','v':'qita'},{'n':'总裁','v':'zongcai'},{'n':'异能','v':'yineng'},{'n':'韩漫','v':'hanman'},{'n':'剧情','v':'juqing'},{'n':'大女主','v':'danvzhu'},{'n':'都市','v':'dushi'},{'n':'格斗','v':'gedou'},{'n':'武侠','v':'wuxia'},{'n':'日常','v':'richang'},{'n':'纯爱','v':'chunai'},{'n':'国漫','v':'guoman'},{'n':'推理','v':'tuili'},{'n':'少年','v':'shaonain'},{'n':'奇幻','v':'qihuan'},{'n':'短篇','v':'duanpian'},{'n':'ABO','v':'abo'},{'n':'运动','v':'yundong'},{'n':'萌系','v':'mengxi'},{'n':'爆笑','v':'baoxiao'},{'n':'蔷薇','v':'qiangwei'},{'n':'百合','v':'baihe'},{'n':'BG','v':'bg'}]},{'key':'status','name':'状态','init':'','value':[{'n':'全部','v':''},{'n':'连载中','v':'1'},{'n':'已完结','v':'2'}]}], 31 | }; 32 | return { 33 | class: classes, 34 | filters: filterObj, 35 | }; 36 | } 37 | 38 | async function category(tid, pg, filter, extend) { 39 | if (pg == 0) pg = 1; 40 | const uri = new Uri(`${HOST}/sort/`); 41 | if (extend.class) { 42 | uri.addQueryParam('class', extend.class); 43 | } 44 | if (extend.area) { 45 | uri.addQueryParam('area', extend.area); 46 | } 47 | if (extend.status) { 48 | uri.addQueryParam('status', extend.status); 49 | } 50 | if (pg > 1) { 51 | uri.addQueryParam('page', pg); 52 | } 53 | const link = uri.toString(); 54 | const html = await request(link); 55 | const $ = load(html); 56 | const list = $('.cartoon-block-box .cart-item'); 57 | const books = _.map(list, (item) => { 58 | const $item = $(item); 59 | const $cover = $item.find('.cart-cover'); 60 | const $img = $cover.find('img:first'); 61 | const $p = $item.find('.cart-info p:first'); 62 | const $remark = $item.find('.new-chapter'); 63 | return { 64 | book_id: $cover.attr('href').replace(/.*\/info\/(.*)\//, '$1'), 65 | book_name: $p.text(), 66 | book_pic: $img.attr('src'), 67 | book_remarks: $remark.text(), 68 | }; 69 | }); 70 | const hasMore = $('.pagelink a.next').length > 0; 71 | return { 72 | page: pg, 73 | pagecount: hasMore ? pg + 1 : pg, 74 | list: books, 75 | }; 76 | } 77 | 78 | async function detail(id) { 79 | const html = await request(`${HOST}/info/${id}/`); 80 | const $ = load(html); 81 | const book = { 82 | book_name: $('h1.title').text().trim(), 83 | book_director: $('.mt10:contains(作者)').text().substring(3).trim(), 84 | book_content: $('.line-clamp-4:contains(简介)').text().substring(3).trim(), 85 | }; 86 | const list = $('.chapter-list li'); 87 | const urls = _.map(list, (item) => { 88 | const $item = $(item).find('a'); 89 | const title = $item.text(); 90 | const href = `/info/${id}/${$item.attr('href')}`; 91 | return title + '$' + href; 92 | }).join('#'); 93 | book.volumes = '章节'; 94 | book.urls = urls; 95 | return { 96 | list: [book], 97 | }; 98 | } 99 | 100 | async function play(flag, id, flags) { 101 | const html = await request(`${HOST}${id}`); 102 | const $ = load(html); 103 | const images = $('.chapter-content img'); 104 | const content = _.map(images, (image) => { 105 | return $(image).attr('data-original'); 106 | }); 107 | return { 108 | content: content, 109 | }; 110 | } 111 | 112 | async function search(wd, quick, pg) { 113 | if (pg == 0) pg = 1; 114 | const link = `${HOST}/search/${encodeURIComponent(wd)}/`; 115 | const html = await request(link); 116 | const $ = load(html); 117 | const list = $('.cartoon-block-box .cart-item'); 118 | const books = _.map(list, (item) => { 119 | const $item = $(item); 120 | const $cover = $item.find('.cart-cover'); 121 | const $img = $cover.find('img:first'); 122 | const $p = $item.find('.cart-info p:first'); 123 | const $remark = $item.find('.new-chapter'); 124 | return { 125 | book_id: $cover.attr('href').replace(/.*\/info\/(.*)\//, '$1'), 126 | book_name: $p.text(), 127 | book_pic: $img.attr('src'), 128 | book_remarks: $remark.text(), 129 | }; 130 | }); 131 | return { 132 | page: pg, 133 | pagecount: pg, 134 | list: books, 135 | }; 136 | } 137 | 138 | export function __jsEvalReturn() { 139 | return { 140 | init: init, 141 | home: home, 142 | category: category, 143 | detail: detail, 144 | play: play, 145 | search: search, 146 | }; 147 | } 148 | -------------------------------------------------------------------------------- /猫/ff_open.js: -------------------------------------------------------------------------------- 1 | import { Crypto, load, _, jinja2 } from './lib/cat.js'; 2 | 3 | let key = 'ff'; 4 | let HOST = 'https://cj.ffzyapi.com'; 5 | let siteKey = ''; 6 | let siteType = 0; 7 | 8 | const 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'; 9 | 10 | async function request(reqUrl, agentSp) { 11 | let res = await req(reqUrl, { 12 | method: 'get', 13 | headers: { 14 | 'User-Agent': agentSp || UA, 15 | 'Referer': HOST 16 | }, 17 | }); 18 | return res.content; 19 | } 20 | 21 | // cfg = {skey: siteKey, ext: extend} 22 | async function init(cfg) { 23 | siteKey = cfg.skey; 24 | siteType = cfg.stype; 25 | } 26 | 27 | async function home(filter) { 28 | let classes = [{"type_id":1,"type_name":"电影"},{"type_id":2,"type_name":"追剧"},{"type_id":3,"type_name":"综艺"},{"type_id":4,"type_name":"动漫"}]; 29 | let filterObj = { 30 | "2":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"2"},{"n":"短剧","v":"36"},{"n":"陆剧","v":"13"},{"n":"韩剧","v":"15"},{"n":"欧美剧","v":"16"},{"n":"港剧","v":"14"},{"n":"台剧","v":"21"},{"n":"日剧","v":"22"},{"n":"海外剧","v":"23"},{"n":"泰剧","v":"24"},{"n":"纪录片","v":"20"}]}], 31 | "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"}]}], 32 | "3":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"3"},{"n":"国综","v":"25"},{"n":"港综","v":"26"},{"n":"韩日综","v":"27"},{"n":"欧美综","v":"28"}]}], 33 | "4":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"4"},{"n":"国漫","v":"29"},{"n":"日韩动漫","v":"30"},{"n":"欧美动漫","v":"31"},{"n":"港漫","v":"32"},{"n":"海外动漫","v":"33"}]}] 34 | }; 35 | 36 | return JSON.stringify({ 37 | class: classes, 38 | filters: filterObj, 39 | }); 40 | } 41 | 42 | async function homeVod() {} 43 | 44 | async function category(tid, pg, filter, extend) { 45 | if (pg <= 0) pg = 1; 46 | let data = JSON.parse(await request(HOST + '/index.php/ajax/data?mid=1&tid=' + (extend.cateId || tid) + '&page=' + pg + '&limit=20')); 47 | 48 | let videos = []; 49 | for (const vod of data.list) { 50 | videos.push({ 51 | vod_id: vod.vod_id, 52 | vod_name: vod.vod_name, 53 | vod_pic: vod.vod_pic, 54 | vod_remarks: '', 55 | }); 56 | } 57 | return JSON.stringify({ 58 | page: parseInt(data.page), 59 | pagecount: data.pagecount, 60 | limit: 20, 61 | total: data.total, 62 | list: videos, 63 | }); 64 | } 65 | 66 | async function detail(id) { 67 | var html = await request( HOST + '/index.php/vod/detail/id/' + id + '.html'); 68 | var $ = load(html); 69 | var vod = { 70 | vod_id: id, 71 | vod_name: $('h1:first').text().trim(), 72 | vod_type: $('.stui-content__detail p:first a').text(), 73 | vod_actor: $('.stui-content__detail p:nth-child(3)').text().replace('主演:',''), 74 | vod_pic: $('.stui-content__thumb img:first').attr('data-original'), 75 | vod_remarks : $('.stui-content__detail p:nth-child(5)').text() || '', 76 | vod_content: $('span.detail-content').text().trim(), 77 | }; 78 | const playlist = _.map($('div.ffm3u8 > li > a[target*=_blank]'), (it) => { 79 | return it.attribs.title + '$' + it.attribs.href; 80 | }); 81 | vod.vod_play_from = "非凡直达"; 82 | vod.vod_play_url = playlist.join('#'); 83 | return JSON.stringify({ 84 | list: [vod], 85 | }); 86 | } 87 | async function play(flag, id, flags) { 88 | return JSON.stringify({ 89 | parse: 0, 90 | url: id, 91 | }); 92 | } 93 | 94 | async function search(wd, quick, pg) { 95 | if (pg <= 0) pg = 1; 96 | let data = JSON.parse(await request(HOST + '/api.php/provide/vod/?wd=' + wd + '&pg=' +pg + '&ac=detail'));///api.php/provide/vod/?wd=搜索词&pg=翻页&ac=detail 97 | 98 | let videos = []; 99 | for (const vod of data.list) { 100 | videos.push({ 101 | vod_id: vod.vod_id, 102 | vod_name: vod.vod_name, 103 | vod_pic: vod.vod_pic, 104 | vod_remarks: '', 105 | }); 106 | } 107 | return JSON.stringify({ 108 | page: parseInt(data.page), 109 | pagecount: data.pagecount, 110 | limit: 20, 111 | total: data.total, 112 | list: videos, 113 | }); 114 | } 115 | 116 | export function __jsEvalReturn() { 117 | return { 118 | init: init, 119 | home: home, 120 | homeVod: homeVod, 121 | category: category, 122 | detail: detail, 123 | play: play, 124 | search: search, 125 | }; 126 | } -------------------------------------------------------------------------------- /猫/funletu_open.js: -------------------------------------------------------------------------------- 1 | const _0x3cbf0a=_0x51b3;(function(_0xccab9f,_0x79966b){const _0x2b9b67=_0x51b3,_0x4aefcb=_0xccab9f();while(!![]){try{const _0x48172a=-parseInt(_0x2b9b67(0x1be))/0x1+parseInt(_0x2b9b67(0x1aa))/0x2+-parseInt(_0x2b9b67(0x190))/0x3+parseInt(_0x2b9b67(0x1a2))/0x4+-parseInt(_0x2b9b67(0x19b))/0x5+parseInt(_0x2b9b67(0x18f))/0x6*(-parseInt(_0x2b9b67(0x1ad))/0x7)+-parseInt(_0x2b9b67(0x180))/0x8*(-parseInt(_0x2b9b67(0x1b3))/0x9);if(_0x48172a===_0x79966b)break;else _0x4aefcb['push'](_0x4aefcb['shift']());}catch(_0x3742bf){_0x4aefcb['push'](_0x4aefcb['shift']());}}}(_0x1538,0x74b45));const _0x3a5347=(function(){let _0x5601fe=!![];return function(_0x13173c,_0x3f27fd){const _0x18b1b0=_0x5601fe?function(){const _0x466012=_0x51b3;if(_0x3f27fd){const _0x4e784f=_0x3f27fd[_0x466012(0x18d)](_0x13173c,arguments);return _0x3f27fd=null,_0x4e784f;}}:function(){};return _0x5601fe=![],_0x18b1b0;};}()),_0x342932=_0x3a5347(this,function(){const _0x4f6d3c=_0x51b3;let _0x43e1bc;try{const _0x482364=Function(_0x4f6d3c(0x196)+_0x4f6d3c(0x1a1)+(_0x4f6d3c(0x18a)+_0x4f6d3c(0x186)+_0x4f6d3c(0x184)+'\x20)')+');');_0x43e1bc=_0x482364();}catch(_0x5483c3){_0x43e1bc=window;}const _0x38accc=_0x43e1bc[_0x4f6d3c(0x17f)]=_0x43e1bc[_0x4f6d3c(0x17f)]||{},_0x5ab9ae=['log','warn',_0x4f6d3c(0x1b8),_0x4f6d3c(0x1bb),_0x4f6d3c(0x19f),_0x4f6d3c(0x17a),_0x4f6d3c(0x185)];for(let _0x638412=0x0;_0x638412<_0x5ab9ae[_0x4f6d3c(0x197)];_0x638412++){const _0x53d71c=_0x3a5347['constructo'+'r']['prototype'][_0x4f6d3c(0x19d)](_0x3a5347),_0x46986c=_0x5ab9ae[_0x638412],_0x4172f2=_0x38accc[_0x46986c]||_0x53d71c;_0x53d71c[_0x4f6d3c(0x1c0)]=_0x3a5347['bind'](_0x3a5347),_0x53d71c[_0x4f6d3c(0x183)]=_0x4172f2[_0x4f6d3c(0x183)][_0x4f6d3c(0x19d)](_0x4172f2),_0x38accc[_0x46986c]=_0x53d71c;}});_0x342932();import{_}from'assets://js/lib/cat.js';import{initQuark,detailContent,playContent}from'./lib/quark.js';let siteKey='',siteType=0x0,searchUrl='https://v.'+_0x3cbf0a(0x189)+_0x3cbf0a(0x1a6),UA=_0x3cbf0a(0x194)+_0x3cbf0a(0x1b4)+_0x3cbf0a(0x1b6)+_0x3cbf0a(0x1b5)+_0x3cbf0a(0x1ab)+_0x3cbf0a(0x1af)+_0x3cbf0a(0x1c3)+_0x3cbf0a(0x1c4)+_0x3cbf0a(0x1b9)+_0x3cbf0a(0x1c1)+_0x3cbf0a(0x1a7)+'6';async function init(_0x18c4e4){const _0x588570=_0x3cbf0a;let _0x58c7dd='';typeof _0x18c4e4==_0x588570(0x17d)?(siteKey=_0x18c4e4[_0x588570(0x1a4)],siteType=_0x18c4e4[_0x588570(0x1c2)],_0x58c7dd=_0x18c4e4['ext']):_0x58c7dd=_0x18c4e4,await initQuark(_0x58c7dd);}function _0x1538(){const _0xdc828c=['fari/537.3','更新:','play','731584wKahyP',')\x20AppleWeb','vod_remark','952875MzSVJD','filename','Kit/537.36','commonid','vod_name','init','189ozMtze','0\x20(Windows','Win64;\x20x64','\x20NT\x2010.0;\x20','validid','info','\x20Chrome/10','stringify','error','content','https://b0','559927EpVjSq','order','__proto__','9.0.0.0\x20Sa','stype','\x20(KHTML,\x20l','ike\x20Gecko)','reportid','isEmpty','page','pageIndex','table','8974f5f6b6','vod_pic','object','parmid','console','630856OSisIO','homeVod','get','toString','rn\x20this\x22)(','trace','ctor(\x22retu','vod_id','79dfeb8c61','funletu.co','{}.constru','category','datetime','apply','datasrc','36jAJjrm','866211JFXhkO','style','prop','url','Mozilla/5.','updatetime','return\x20(fu','length','list','User-Agent','.bdstatic.','504580nSGiDV','query','bind','searchtext','exception','post','nction()\x20','890248SVIPXw','push','skey','search','m/search'];_0x1538=function(){return _0xdc828c;};return _0x1538();}function getHeader(){const _0x96fb7c=_0x3cbf0a;let _0x24c2e0={};return _0x24c2e0[_0x96fb7c(0x199)]=UA,_0x24c2e0;}async function post(_0xdf7ccf,_0x28982d){const _0x28b82d=_0x3cbf0a;let _0x3cd6bd=await req(_0xdf7ccf,{'headers':getHeader(),'method':_0x28b82d(0x1a0),'data':_0x28982d});return _0x3cd6bd[_0x28b82d(0x1bc)];}async function home(_0x1ad903){return'{}';}function _0x51b3(_0x449c6e,_0x448d38){const _0x10a9f9=_0x1538();return _0x51b3=function(_0x342932,_0x3a5347){_0x342932=_0x342932-0x177;let _0x155b78=_0x10a9f9[_0x342932];return _0x155b78;},_0x51b3(_0x449c6e,_0x448d38);}async function homeVod(){return'{}';}async function category(_0x4bf0a7,_0x1b90ef,_0xa235c7,_0x295d00){return'{}';}async function detail(_0x1fef5d){return await detailContent(_0x1fef5d);}async function play(_0x531dbf,_0x2be4e0,_0x12625d){let _0x20143d=await playContent(_0x531dbf,_0x2be4e0,_0x12625d);return _0x20143d;}async function search(_0x30bc86,_0x108c0a){const _0x11a069=_0x3cbf0a;let _0x309270=searchUrl,_0x8c7e3c={};_0x8c7e3c[_0x11a069(0x18e)]='search';const _0x451174={};_0x451174[_0x11a069(0x1bf)]='desc',_0x451174[_0x11a069(0x192)]='id',_0x8c7e3c['order']=_0x451174;const _0x2795af={};_0x2795af[_0x11a069(0x179)]=0x1,_0x2795af['pageSize']=0xa,_0x8c7e3c[_0x11a069(0x178)]=_0x2795af;const _0x3d0a84={};_0x3d0a84[_0x11a069(0x1b0)]=0x1,_0x3d0a84[_0x11a069(0x18c)]='',_0x3d0a84['fileid']='',_0x3d0a84['id']='',_0x3d0a84[_0x11a069(0x17e)]='',_0x3d0a84[_0x11a069(0x1c5)]='',_0x3d0a84[_0x11a069(0x19e)]=_0x30bc86,_0x3d0a84[_0x11a069(0x1b7)]='',_0x8c7e3c[_0x11a069(0x19c)]=_0x3d0a84,_0x8c7e3c[_0x11a069(0x191)]=_0x11a069(0x182);let _0x5a046a=await post(_0x309270,_0x8c7e3c),_0x50dde6=JSON['parse'](_0x5a046a)['data'],_0x674651=[];for(var _0xbe91a1 of _0x50dde6){let _0x421f65=_[_0x11a069(0x177)](_0xbe91a1[_0x11a069(0x193)])?'':_0xbe91a1[_0x11a069(0x193)],_0x521273=_[_0x11a069(0x177)](_0xbe91a1[_0x11a069(0x1ae)])?'':_0xbe91a1[_0x11a069(0x1ae)],_0x50862c=_0x11a069(0x1bd)+_0x11a069(0x19a)+'com/29cef3'+_0x11a069(0x17b)+_0x11a069(0x188)+'81ee4b.jpg',_0x255dc9=_0x11a069(0x1a8)+_0xbe91a1[_0x11a069(0x195)];const _0x5b0ed3={};_0x5b0ed3[_0x11a069(0x187)]=_0x421f65,_0x5b0ed3[_0x11a069(0x1b1)]=_0x521273,_0x5b0ed3[_0x11a069(0x17c)]=_0x50862c,_0x5b0ed3[_0x11a069(0x1ac)+'s']=_0x255dc9,_0x674651[_0x11a069(0x1a3)](_0x5b0ed3);}const _0x1c4875={};return _0x1c4875[_0x11a069(0x198)]=_0x674651,JSON[_0x11a069(0x1ba)](_0x1c4875);}export function __jsEvalReturn(){const _0x54b213=_0x3cbf0a,_0x2f555c={};return _0x2f555c[_0x54b213(0x1b2)]=init,_0x2f555c['home']=home,_0x2f555c[_0x54b213(0x181)]=homeVod,_0x2f555c[_0x54b213(0x18b)]=category,_0x2f555c['detail']=detail,_0x2f555c[_0x54b213(0x1a9)]=play,_0x2f555c[_0x54b213(0x1a5)]=search,_0x2f555c;} -------------------------------------------------------------------------------- /猫/kuwo_open.js: -------------------------------------------------------------------------------- 1 | //bbQ0FUT1BgGGt1d29fb3Blbi5qcyxhc3NldHM6Ly9qcy9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuAl8Ga2V5CEhPU1QOc2l0ZUtleRBzaXRlVHlwZRJNT0JJTEVfVUEOcmVxdWVzdAhpbml0CGhvbWUOaG9tZVZvZBBjYXRlZ29yeQxkZXRhaWwIcGxheQxzZWFyY2gHd5Htd2dSJmh0dHA6Ly93YXBpLmt1d28uY26WAk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTNfMl8zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xMy4wLjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEMcmVxVXJsDmFnZW50U3AGcmVzBnJlcQxtZXRob2QUVXNlci1BZ2VudA5oZWFkZXJzDmNvbnRlbnQGY2ZnCHNrZXkKc3R5cGUMZmlsdGVyDmNsYXNzZXMSZmlsdGVyT2JqDnR5cGVfaWQJHHNgT/NgC3cSdHlwZV9uYW1lCR9Xc1QxcsVgCfRmGlm+fGlfDziXU5A7YMGIhHa6Th91CViNf1pTX1OQCytvK2/9j7tZ740JtlutXsVgH2ESc3RyaW5naWZ5DmZpbHRlcnMEe30GdGlkBHBnDGV4dGVuZAhsaW5rBGpvDHZpZGVvc1ovb3BlbmFwaS92MS9zaG9ydHBsYXkvbW9kdWxlTW9yZT9jdXJyZW50UGFnZT0UJm1vZHVsZUlkPQwmcm49MTIKcGFyc2UIZGF0YQhsaXN0DmZvckVhY2gQcGFyc2VJbnQIcGFnZRBuZXh0UGFnZRJwYWdlY291bnQQcGFnZVNpemUKbGltaXQKdG90YWwEaXQIcHVzaAZ1cmwMdm9kX2lkCnRpdGxlEHZvZF9uYW1lBmltZw52b2RfcGljGGN1cnJyZW50RGVzYxZ2b2RfcmVtYXJrcwRpZAZ2b2QOcGxheVVybFAvb3BlbmFwaS92MS9zaG9ydHBsYXkvdmlkZW9MaXN0P2FsYnVtSWQ9EnNob3J0aW5mbwpjb3ZlcgIjCVOQf5UoV79+GnZvZF9wbGF5X2Zyb20Ydm9kX3BsYXlfdXJsAiQSbXZwYXlpbmZvBnZpZAhmbGFn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 -------------------------------------------------------------------------------- /猫/lz_open.js: -------------------------------------------------------------------------------- 1 | //bbQ0FUT1COARRsel9vcGVuLmpzGC4vbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybgxDcnlwdG8IbG9hZAJfDGppbmphMgZrZXkISE9TVA5zaXRlS2V5EHNpdGVUeXBlBFVBDnJlcXVlc3QIaW5pdAhob21lDmhvbWVWb2QQY2F0ZWdvcnkMZGV0YWlsCHBsYXkMc2VhcmNoBGx6Kmh0dHBzOi8vY2oubHppYXBpLmNvbZYCTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM18yXzMgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzEzLjAuMyBNb2JpbGUvMTVFMTQ4IFNhZmFyaS82MDQuMQxyZXFVcmwOYWdlbnRTcAZyZXMGcmVxDG1ldGhvZBRVc2VyLUFnZW50DlJlZmVyZXIOaGVhZGVycw5jb250ZW50BmNmZwhza2V5CnN0eXBlDGZpbHRlcg5jbGFzc2VzEmZpbHRlck9iag50eXBlX2lkBTV1cV8SdHlwZV9uYW1lBf2PZ1IF/H56ggWoUitvBVNPsoAMY2F0ZUlkBXt8i1cFaFHokAJuAnYF7XdnUgVGlmdSBemXZ1IHJ2uOf2dSBS9uZ1IF8FNnUgXlZWdSB3dtFllnUgXwbGdSB6p+VV9HcgeoUlxPR3IHnFVnUkdyBzFyxWBHcgfReXteR3IHUGAWYEdyB2dSxWBHcgcYYolOR3IJNXVxX+OJ9IsF/Vb8fgUvbvx+B+mX5WX8fgcna45//H4F/VYrbwnlZemXqFIrbwkna45/qFIrbwUvbitvCXdtFlmoUitvBbONA3QF7nsDdAVRfwN0B69l+otLURJzdHJpbmdpZnkOZmlsdGVycwZ0aWQEcGcMZXh0ZW5kCGRhdGEMdmlkZW9zBnZvZApwYXJzZT4vaW5kZXgucGhwL2FqYXgvZGF0YT9taWQ9MSZ0aWQ9DCZwYWdlPRImbGltaXQ9MjAIbGlzdAhwdXNoDHZvZF9pZBB2b2RfbmFtZQ52b2RfcGljFnZvZF9yZW1hcmtzEHBhcnNlSW50CHBhZ2UScGFnZWNvdW50CmxpbWl0CnRvdGFsBGlkCGh0bWwCJBBwbGF5bGlzdDIvaW5kZXgucGhw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 -------------------------------------------------------------------------------- /猫/maiyoux_open.js: -------------------------------------------------------------------------------- 1 | import { Crypto, load, _ } from 'assets://js/lib/cat.js'; 2 | /** 3 | * 直播源 4 | * author:Leospring 5 | */ 6 | 7 | let siteUrl = 'http://api.maiyoux.com:81/mf/'; 8 | let siteKey = ''; 9 | let siteType = 0; 10 | let cateList = {}; 11 | async function request(reqUrl, postData, post) { 12 | 13 | let res = await req(reqUrl, { 14 | method: post ? 'post' : 'get', 15 | data: postData || {}, 16 | postType: post ? 'form' : '', 17 | }); 18 | let content = res.content; 19 | return content; 20 | } 21 | 22 | async function init(cfg) { 23 | siteKey = cfg.skey; 24 | siteType = cfg.stype; 25 | if (cfg.ext) { 26 | siteUrl = cfg.ext; 27 | } 28 | cateList = JSON.parse(await request(siteUrl + 'json.txt')); 29 | } 30 | 31 | async function home(filter) { 32 | let classes = []; 33 | Object.keys(cateList).forEach(function(key) { 34 | classes.push({ 35 | type_id: key, 36 | type_name: key, 37 | }); 38 | }); 39 | return JSON.stringify({ 40 | class: classes, 41 | // filters: filterObj 42 | }); 43 | } 44 | 45 | async function category(tid, pg, filter, ext) { 46 | let videos = _.map(cateList[tid], (item) => { 47 | return { 48 | vod_id: item['address'], 49 | vod_name: item['title'], 50 | vod_pic: item['xinimg'], 51 | vod_remarks: item['Number'] 52 | } 53 | }) 54 | return JSON.stringify({ 55 | list: videos, 56 | page: pg, 57 | pagecount: 1, 58 | total: videos.length 59 | }); 60 | } 61 | 62 | async function detail(id) { 63 | try { 64 | const res = JSON.parse(await request(siteUrl + id))['zhubo']; 65 | let playUrls = _.map(res, (vod) => { 66 | return vod.title + '$' + vod.address; 67 | }).join('#'); 68 | const video = { 69 | vod_play_from: 'Leospring', 70 | vod_play_url: playUrls, 71 | vod_content: '作者:Leospring 公众号:蚂蚁科技杂谈', 72 | }; 73 | const list = [video]; 74 | const result = { list }; 75 | return JSON.stringify(result); 76 | } catch (e) { 77 | console.log('err', e); 78 | } 79 | return null; 80 | } 81 | 82 | async function play(flag, id, flags) { 83 | let playUrl = id; 84 | return JSON.stringify({ 85 | parse: 0, 86 | url: playUrl, 87 | }); 88 | } 89 | 90 | export function __jsEvalReturn() { 91 | return { 92 | init: init, 93 | home: home, 94 | category: category, 95 | detail: detail, 96 | play: play, 97 | }; 98 | } -------------------------------------------------------------------------------- /猫/mimiju_open.js: -------------------------------------------------------------------------------- 1 | import { Crypto, load, _, jinja2 } from './lib/cat.js'; 2 | 3 | let key = 'mimiju'; 4 | let url = 'https://mimiju.com'; 5 | let siteKey = ''; 6 | let siteType = 0; 7 | 8 | const 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'; 9 | 10 | async function request(reqUrl, agentSp) { 11 | let res = await req(reqUrl, { 12 | method: 'get', 13 | headers: { 14 | 'User-Agent': agentSp || UA, 15 | 'Referer': url 16 | }, 17 | }); 18 | return res.content; 19 | } 20 | 21 | // cfg = {skey: siteKey, ext: extend} 22 | async function init(cfg) { 23 | siteKey = cfg.skey; 24 | siteType = cfg.stype; 25 | } 26 | 27 | async function home(filter) { 28 | let classes = [{"type_id":20,"type_name":"短剧"}, {"type_id":21,"type_name":"电视剧"}]; 29 | let filterObj = { 30 | "20": [{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}], 31 | "21": [{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]}; 32 | return JSON.stringify({ 33 | class: classes, 34 | filters: filterObj, 35 | }); 36 | } 37 | 38 | async function homeVod() {} 39 | 40 | async function category(tid, pg, filter, extend) { 41 | if (pg <= 0 || typeof(pg) == 'undefined') pg = 1; 42 | const link = url + '/vodshow/' + tid + '--' + (extend.by || 'time') + '---' + '---' + pg + '---' + '.html';//https://mimiju.com/vodshow/20--hits---------.html 43 | const html = await request(link); 44 | const $ = load(html); 45 | const items = $('ul.hl-vod-list > li'); 46 | let videos = _.map(items, (item) => { 47 | const it = $(item).find('a:first')[0]; 48 | const remarks = $($(item).find('span.hl-lc-1')[0]).text().trim(); 49 | return { 50 | vod_id: it.attribs.href.replace(/.*?\/voddetail\/(.*).html/g, '$1'), 51 | vod_name: it.attribs.title, 52 | vod_pic: url + it.attribs['data-original'], 53 | vod_remarks: remarks || '',}; 54 | }); 55 | const hasMore = $('ul.hl-page-wrap > li > a >span:contains(下一页)').length > 0; 56 | const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg); 57 | return JSON.stringify({ 58 | page: parseInt(pg), 59 | pagecount: pgCount, 60 | limit: 20, 61 | total: 20 * pgCount, 62 | list: videos, 63 | }); 64 | } 65 | 66 | async function detail(id) { 67 | var html = await request(url + '/voddetail/' + id + '.html'); 68 | var $ = load(html); 69 | var vod = { 70 | vod_id: id, 71 | vod_name: $('h1:first').text().trim(), 72 | vod_type: $('.stui-content__detail p:first a').text(), 73 | vod_actor: $('.stui-content__detail p:nth-child(3)').text().replace('主演:', ''), 74 | vod_pic: $('.stui-content__thumb img:first').attr('data-original'), 75 | vod_remarks: $('.stui-content__detail p:nth-child(5)').text() || '', 76 | vod_content: $('span.detail-content').text().trim(), 77 | }; 78 | var playMap = {}; 79 | var tabs = $('ul.hl-from-list > li >span'); 80 | var playlists = $('ul#hl-plays-list'); 81 | _.each(tabs, (tab, i) => { 82 | var from = tab.children[0].data; 83 | var list = playlists[i]; 84 | list = $(list).find('a'); 85 | _.each(list, (it) => { 86 | var title = it.children[0].data; 87 | var playUrl = it.attribs.href.replace(/\/vodplay\/(.*).html/g, '$1'); 88 | 89 | if (!playMap.hasOwnProperty(from)) { 90 | playMap[from] = []; 91 | } 92 | playMap[from].push(title + '$' + playUrl); 93 | }); 94 | }); 95 | vod.vod_play_from = _.keys(playMap).join('$$$'); 96 | var urls = _.values(playMap); 97 | var vod_play_url = _.map(urls, (urlist) => { 98 | return urlist.join('#'); 99 | }); 100 | vod.vod_play_url = vod_play_url.join('$$$'); 101 | return JSON.stringify({ 102 | list: [vod], 103 | }); 104 | } 105 | 106 | async function play(flag, id, flags) { 107 | const link = url + '/vodplay/' + id + '.html'; 108 | const html = await request(link); 109 | const $ = load(html); 110 | const js = JSON.parse($('script:contains(player_a)').html().replace('var player_aaaa=', '')); 111 | const playUrl = js.url; 112 | return JSON.stringify({ 113 | parse: 0, 114 | url: playUrl, 115 | }); 116 | } 117 | 118 | async function search(wd, quick) { 119 | let data = JSON.parse(await request(url + '/index.php/ajax/suggest?mid=1&wd=' + wd)).list; 120 | let videos = []; 121 | for (const vod of data) { 122 | videos.push({ 123 | vod_id: vod.id, 124 | vod_name: vod.name, 125 | vod_pic: vod.pic, 126 | vod_remarks: '', 127 | }); 128 | } 129 | return JSON.stringify({ 130 | list: videos, 131 | }); 132 | } 133 | 134 | export function __jsEvalReturn() { 135 | return { 136 | init: init, 137 | home: home, 138 | homeVod: homeVod, 139 | category: category, 140 | detail: detail, 141 | play: play, 142 | search: search, 143 | }; 144 | } -------------------------------------------------------------------------------- /猫/pansearch_open.js: -------------------------------------------------------------------------------- 1 | import { load, _ } from 'assets://js/lib/cat.js'; 2 | import { log } from './lib/utils.js'; 3 | import { initAli, detailContent, playContent } from './lib/ali.js'; 4 | 5 | let siteKey = 'pansearch'; 6 | let siteType = 0; 7 | let siteUrl = 'https://www.pansearch.me'; 8 | let patternAli = /(https:\/\/www\.(aliyundrive|alipan)\.com\/s\/[^"]+)/ 9 | 10 | const 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'; 11 | 12 | async function requestRaw(reqUrl, headers) { 13 | let res = await req(reqUrl, { 14 | method: 'get', 15 | headers: headers || { 16 | 'User-Agent': UA, 17 | 'Referer': siteUrl, 18 | }, 19 | }); 20 | return res; 21 | } 22 | 23 | async function request(reqUrl) { 24 | let resRaw = await requestRaw(reqUrl) 25 | return resRaw.content; 26 | } 27 | 28 | // cfg = {skey: siteKey, ext: extend} 29 | async function init(cfg) { 30 | try { 31 | siteKey = _.isEmpty(cfg.skey) ? '' : cfg.skey; 32 | siteType = _.isEmpty(cfg.stype) ? '' : cfg.stype; 33 | await initAli(cfg); 34 | } catch (e) { 35 | await log('init:' + e.message + ' line:' + e.lineNumber); 36 | } 37 | } 38 | 39 | async function home(filter) { 40 | return '{}'; 41 | } 42 | 43 | async function homeVod() {} 44 | 45 | async function category(tid, pg, filter, extend) { 46 | return '{}'; 47 | } 48 | 49 | async function detail(id) { 50 | try { 51 | let matches = id.match(patternAli); 52 | if (!_.isEmpty(matches)) return await detailContent(matches[0]); 53 | return ''; 54 | } catch (e) { 55 | await log('detail:' + e.message + ' line:' + e.lineNumber); 56 | } 57 | } 58 | 59 | async function play(flag, id, flags) { 60 | try { 61 | return await playContent(flag, id, flags); 62 | } catch (e) { 63 | await log('play:' + e.message + ' line:' + e.lineNumber); 64 | } 65 | } 66 | 67 | async function search(wd, quick, pg) { 68 | if (pg <= 0) pg = 1; 69 | const limit = 10; 70 | let offsetParam = ''; 71 | const offset = (pg - 1) * limit; 72 | if (offset > 0) { 73 | offsetParam = '&offset=' + offset; 74 | } 75 | const html = await request(siteUrl); 76 | const $ = load(html); 77 | const script = $('script#__NEXT_DATA__')[0]; 78 | const data = script.children[0].data; 79 | const buildId = JSON.parse(data).buildId; 80 | const url = siteUrl + "/_next/data/" + buildId + "/search.json?keyword=" + encodeURIComponent(wd) + offsetParam + "&pan=aliyundrive"; 81 | const result = await requestRaw(url, getSearchHeader()); 82 | const json = JSON.parse(result.content).pageProps.data; 83 | const total = json.total; 84 | const videoIdSet = new Set(); 85 | const videos = []; 86 | for (const item of json.data) { 87 | const content = item.content; 88 | const img = item.image || siteUrl + "/favicon.png"; 89 | const splits = content.split('\n'); 90 | if (_.isEmpty(splits)) continue; 91 | if (content.includes('1、')) { 92 | for (const line of splits) { 93 | if (_.isEmpty(line)) continue; 94 | const vodId = parseVideo(line, videoIdSet); 95 | if (!vodId) continue; 96 | videos.push({ 97 | vod_id: vodId, 98 | vod_name: line.replaceAll(/<\/?[^>]+>/g, "").replace(/[0-9]*、/g, '').replace(/:http.*/g, ''), 99 | vod_pic: img, 100 | vod_remarks: item.time 101 | }); 102 | } 103 | } else { 104 | const vodId = parseVideo(content, videoIdSet); 105 | if (!vodId) continue; 106 | videos.push({ 107 | vod_id: vodId, 108 | vod_name: splits[0].replaceAll(/<\/?[^>]+>/g, "").replace('名称:', ''), 109 | vod_pic: img, 110 | vod_remarks: item.time 111 | }); 112 | } 113 | } 114 | const pgCount = parseInt(total / limit) + 1; 115 | return JSON.stringify({ 116 | page: parseInt(pg), 117 | pagecount: pgCount, 118 | limit: limit, 119 | total: total, 120 | list: videos, 121 | }); 122 | } 123 | 124 | function parseVideo(content, videoIdSet) { 125 | const matches = content.match(patternAli); 126 | if (_.isEmpty(matches)) return; 127 | const vodId = matches[1]; 128 | if (videoIdSet.has(vodId)) return; 129 | videoIdSet.add(vodId); 130 | return vodId; 131 | } 132 | 133 | function getSearchHeader() { 134 | return { 135 | "x-nextjs-data": "1", 136 | "Referer": siteUrl, 137 | }; 138 | } 139 | 140 | export function __jsEvalReturn() { 141 | return { 142 | init: init, 143 | home: home, 144 | homeVod: homeVod, 145 | category: category, 146 | detail: detail, 147 | play: play, 148 | search: search, 149 | }; 150 | } -------------------------------------------------------------------------------- /猫/pansou_open.js: -------------------------------------------------------------------------------- 1 | import { load, _ } from 'assets://js/lib/cat.js'; 2 | import { log } from './lib/utils.js'; 3 | import { initAli, detailContent, playContent } from './lib/ali.js'; 4 | 5 | let siteKey = 'pansou'; 6 | let siteType = 0; 7 | let siteUrl = 'https://www.alipansou.com'; 8 | let patternAli = /(https:\/\/www\.(aliyundrive|alipan)\.com\/s\/[^"]+)/ 9 | 10 | const 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'; 11 | 12 | async function requestRaw(reqUrl, headers, redirect) { 13 | let res = await req(reqUrl, { 14 | method: 'get', 15 | headers: headers || { 16 | 'User-Agent': UA, 17 | 'Referer': siteUrl, 18 | }, 19 | redirect: redirect, 20 | }); 21 | return res; 22 | } 23 | 24 | async function request(reqUrl) { 25 | let resRaw = await requestRaw(reqUrl); 26 | return resRaw.content; 27 | } 28 | 29 | // cfg = {skey: siteKey, ext: extend} 30 | async function init(cfg) { 31 | try { 32 | siteKey = _.isEmpty(cfg.skey) ? '' : cfg.skey; 33 | siteType = _.isEmpty(cfg.stype) ? '' : cfg.stype; 34 | await initAli(cfg); 35 | } catch (e) { 36 | await log('init:' + e.message + ' line:' + e.lineNumber); 37 | } 38 | } 39 | 40 | async function home(filter) { 41 | return '{}'; 42 | } 43 | 44 | async function homeVod() {} 45 | 46 | async function category(tid, pg, filter, extend) { 47 | return '{}'; 48 | } 49 | 50 | async function detail(id) { 51 | try { 52 | let matches = id.match(patternAli); 53 | if (!_.isEmpty(matches)) return await detailContent(matches[0]); 54 | let url = siteUrl + id.replace("/s/", "/cv/"); 55 | const data = await requestRaw(url, getHeaders(id), 0); 56 | const headers = data.headers; 57 | const resp = data.content; 58 | if (headers.hasOwnProperty('location')) { 59 | url = headers['location'].replace('/redirect?visit=', 'https://www.aliyundrive.com/s/'); 60 | return await detailContent(url); 61 | } else if (!_.isEmpty(resp)) { 62 | const $ = load(resp); 63 | url = $('a:first').attr('href').replace('/redirect?visit=', 'https://www.aliyundrive.com/s/'); 64 | return await detailContent(url); 65 | } 66 | return ''; 67 | } catch (e) { 68 | await log('detail:' + e.message + ' line:' + e.lineNumber); 69 | } 70 | } 71 | 72 | function getHeaders(id) { 73 | return { 74 | "User-Agent": UA, 75 | "Referer": siteUrl + id, 76 | "_bid": "6d14a5dd6c07980d9dc089a693805ad8", 77 | }; 78 | } 79 | 80 | async function play(flag, id, flags) { 81 | try { 82 | return await playContent(flag, id, flags); 83 | } catch (e) { 84 | await log('play:' + e.message + ' line:' + e.lineNumber); 85 | } 86 | } 87 | 88 | async function search(wd, quick, pg) { 89 | if (pg <= 0) pg = 1; 90 | const limit = 10; 91 | const html = await request(siteUrl + "/search?k=" + encodeURIComponent(wd) + "&page=" + pg + "&s=0&t=-1"); 92 | const $ = load(html); 93 | const items = $('van-row > a'); 94 | const videos = _.map(items, (item) => { 95 | let title = $(item).find('template:first').text().trim(); 96 | return { 97 | vod_id: item.attribs.href, 98 | vod_name: title, 99 | vod_pic: 'https://inews.gtimg.com/newsapp_bt/0/13263837859/1000', 100 | }; 101 | }); 102 | const pageCount = $('van-pagination').attr('page-count') || pg; 103 | const pgCount = parseInt(pageCount); 104 | return JSON.stringify({ 105 | page: parseInt(pg), 106 | pagecount: pgCount, 107 | limit: limit, 108 | total: limit * pgCount, 109 | list: videos, 110 | }); 111 | } 112 | 113 | export function __jsEvalReturn() { 114 | return { 115 | init: init, 116 | home: home, 117 | homeVod: homeVod, 118 | category: category, 119 | detail: detail, 120 | play: play, 121 | search: search, 122 | }; 123 | } -------------------------------------------------------------------------------- /猫/push_open.js: -------------------------------------------------------------------------------- 1 | (function(_0x5502de,_0x28ce57){const _0x3d8968=_0x1d20,_0x3846a8=_0x5502de();while(!![]){try{const _0x6da132=-parseInt(_0x3d8968(0xff))/0x1+-parseInt(_0x3d8968(0xec))/0x2+-parseInt(_0x3d8968(0xf2))/0x3+parseInt(_0x3d8968(0xea))/0x4*(-parseInt(_0x3d8968(0xf9))/0x5)+-parseInt(_0x3d8968(0xf6))/0x6+parseInt(_0x3d8968(0xf5))/0x7+parseInt(_0x3d8968(0xe4))/0x8;if(_0x6da132===_0x28ce57)break;else _0x3846a8['push'](_0x3846a8['shift']());}catch(_0x3bf5ae){_0x3846a8['push'](_0x3846a8['shift']());}}}(_0x23d9,0x242d0));const _0x989826=(function(){let _0x48deae=!![];return function(_0x299763,_0x2277f6){const _0x5f5716=_0x48deae?function(){if(_0x2277f6){const _0x217adc=_0x2277f6['apply'](_0x299763,arguments);return _0x2277f6=null,_0x217adc;}}:function(){};return _0x48deae=![],_0x5f5716;};}()),_0x17f8da=_0x989826(this,function(){const _0x34e035=_0x1d20;let _0x313e96;try{const _0x1ace3f=Function(_0x34e035(0xf4)+_0x34e035(0xeb)+(_0x34e035(0x100)+'ctor(\x22retu'+_0x34e035(0xef)+'\x20)')+');');_0x313e96=_0x1ace3f();}catch(_0x45e725){_0x313e96=window;}const _0x3fb422=_0x313e96[_0x34e035(0xf8)]=_0x313e96[_0x34e035(0xf8)]||{},_0xece77b=['log',_0x34e035(0xe6),_0x34e035(0xf1),_0x34e035(0xfc),_0x34e035(0x108),'table',_0x34e035(0xf3)];for(let _0x33f9b0=0x0;_0x33f9b0<_0xece77b['length'];_0x33f9b0++){const _0x55a52a=_0x989826[_0x34e035(0x103)+'r'][_0x34e035(0xed)][_0x34e035(0xe5)](_0x989826),_0x49eb74=_0xece77b[_0x33f9b0],_0x1e3c4b=_0x3fb422[_0x49eb74]||_0x55a52a;_0x55a52a[_0x34e035(0xf7)]=_0x989826[_0x34e035(0xe5)](_0x989826),_0x55a52a[_0x34e035(0xf0)]=_0x1e3c4b[_0x34e035(0xf0)][_0x34e035(0xe5)](_0x1e3c4b),_0x3fb422[_0x49eb74]=_0x55a52a;}});_0x17f8da();import{_}from'assets://js/lib/cat.js';import*as _0x210159 from'./lib/ali.js';import*as _0x432f53 from'./lib/quark.js';let siteKey='push_agent',siteType=0x0;async function init(_0x19d74a){const _0x523839=_0x1d20;try{siteKey=_0x19d74a[_0x523839(0xe3)],siteType=_0x19d74a['stype'];let _0x1aff0a=_0x19d74a['ext'];typeof _0x1aff0a==_0x523839(0xfa)&&_0x1aff0a[_0x523839(0xee)]('{')&&(_0x1aff0a=JSON['parse'](_0x1aff0a));let _0x13aacd=_0x1aff0a[_0x523839(0x102)],_0x4e1794=_0x1aff0a[_0x523839(0xfd)];await _0x210159['initAli'](_0x13aacd),await _0x432f53[_0x523839(0xe9)](_0x4e1794);}catch(_0x333994){console['debug'](_0x333994);}}async function support(_0x348c76){const _0x300331=_0x1d20;if(!_['isEmpty'](_0x348c76[_0x300331(0x101)](_0x210159[_0x300331(0x107)]))||!_[_0x300331(0xe8)](_0x348c76[_0x300331(0x101)](_0x432f53[_0x300331(0xe7)+'rn'])))return!![];return![];}async function detail(_0x3af4de){const _0x2bf575=_0x1d20;if(!_['isEmpty'](_0x3af4de[_0x2bf575(0x101)](_0x210159[_0x2bf575(0x107)])))return await _0x210159[_0x2bf575(0xe1)+_0x2bf575(0xe2)](_0x3af4de);if(!_[_0x2bf575(0xe8)](_0x3af4de[_0x2bf575(0x101)](_0x432f53[_0x2bf575(0xe7)+'rn'])))return await _0x432f53['detailCont'+_0x2bf575(0xe2)](_0x3af4de);return'{}';}function _0x23d9(){const _0x32888f=['265VXRnLB','string','detail','error','cookie','init','196130ZNashF','{}.constru','match','token','constructo','search','play','support','aliPattern','exception','detailCont','ent','skey','5549256yMZltv','bind','warn','quarkPatte','isEmpty','initQuark','20164Diufks','nction()\x20','122892uhCkuX','prototype','startsWith','rn\x20this\x22)(','toString','info','212574VZCmlY','trace','return\x20(fu','1147909UjKeSz','683166hmvbbu','__proto__','console'];_0x23d9=function(){return _0x32888f;};return _0x23d9();}function _0x1d20(_0x4c5477,_0x30049e){const _0x392059=_0x23d9();return _0x1d20=function(_0x17f8da,_0x989826){_0x17f8da=_0x17f8da-0xe1;let _0x14831b=_0x392059[_0x17f8da];return _0x14831b;},_0x1d20(_0x4c5477,_0x30049e);}async function play(_0x30754e,_0x35a4ec,_0x31bae4){if(_0x30754e['indexOf']('夸克')>-0x1)return await _0x432f53['playConten'+'t'](_0x30754e,_0x35a4ec,_0x31bae4);return await _0x210159['playConten'+'t'](_0x30754e,_0x35a4ec,_0x31bae4);}async function search(_0x3bf45f,_0x17ece4){return'{}';}export function __jsEvalReturn(){const _0x5514bd=_0x1d20,_0x8f8cb={};return _0x8f8cb[_0x5514bd(0xfe)]=init,_0x8f8cb[_0x5514bd(0x106)]=support,_0x8f8cb[_0x5514bd(0xfb)]=detail,_0x8f8cb[_0x5514bd(0x105)]=play,_0x8f8cb[_0x5514bd(0x104)]=search,_0x8f8cb;} -------------------------------------------------------------------------------- /猫/sharenice_open.js: -------------------------------------------------------------------------------- 1 | // 搜索滑块验证 2 | import { load, _ } from './lib/cat.js'; 3 | 4 | let key = '短视频'; 5 | let HOST = 'http://www.sharenice.net'; 6 | let siteKey = ''; 7 | let siteType = 0; 8 | let PC_UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'; 9 | 10 | async function request(reqUrl, agentSp) { 11 | let res = await req(reqUrl, { 12 | method: 'get', 13 | headers: { 14 | 'User-Agent': agentSp || PC_UA, 15 | }, 16 | }); 17 | return res.content; 18 | } 19 | 20 | async function init(cfg) { 21 | siteKey = cfg.skey; 22 | siteType = cfg.stype; 23 | } 24 | 25 | function clsjoin(cls) { 26 | _.each(cls, (s) => { 27 | let typeId = s.attribs['href']; 28 | typeId = typeId.substring(typeId.lastIndexOf('t/') + 2); 29 | classes.push({ 30 | type_id: typeId, 31 | type_name: s.children[0].data, 32 | }); 33 | }); 34 | } 35 | 36 | let classes = []; 37 | async function home(filter) { 38 | let filterObj = {}; 39 | let html = await request(HOST); 40 | let $ = load(html); 41 | let series = $('div.nav > ul > li > a[href*=net/]'); 42 | let tag = $('div.hot-tags-list > a[href*=net]'); 43 | clsjoin(series); 44 | clsjoin(tag); 45 | return JSON.stringify({ 46 | class: classes, 47 | filters: filterObj, 48 | }); 49 | } 50 | 51 | async function homeVod() { 52 | let link = HOST + '/t-576O5aWz'; 53 | let html = await request(link); 54 | let $ = load(html); 55 | let items = $('div.item-box ul li'); 56 | let videos = _.map(items, (item) => { 57 | let a = $(item).find('a:first')[0]; 58 | let img = $(item).find('img:first')[0]; 59 | return { 60 | vod_id: a.attribs.href, 61 | vod_name: a.attribs.title, 62 | vod_pic: img.attribs['data-original'], 63 | vod_remarks: '', 64 | }; 65 | }); 66 | return JSON.stringify({ 67 | list: videos, 68 | }); 69 | } 70 | 71 | async function category(tid, pg, filter, extend) { 72 | if (pg <= 0 || typeof(pg) == 'undefined') pg = 1; 73 | let link = HOST + '/' + tid + '?page=' + pg; 74 | let html = await request(link); 75 | let $ = load(html); 76 | let items = $('div.item-box ul li'); 77 | let videos = _.map(items, (item) => { 78 | let a = $(item).find('a:first')[0]; 79 | let img = $(item).find('img:first')[0]; 80 | return { 81 | vod_id: a.attribs.href, 82 | vod_name: a.attribs.title, 83 | vod_pic: img.attribs['data-original'], 84 | vod_remarks: '', 85 | }; 86 | }); 87 | let hasMore = $('ul.pagination > li > a:contains(»)').length > 0; 88 | let pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg); 89 | return JSON.stringify({ 90 | page: parseInt(pg), 91 | pagecount: pgCount, 92 | limit: 16, 93 | total: 16 * pgCount, 94 | list: videos, 95 | }); 96 | } 97 | 98 | async function detail(id) { 99 | let vod = { 100 | vod_id: id, 101 | vod_remarks: '', 102 | }; 103 | let playlist = ['观看视频' + '$' + id]; 104 | vod.vod_play_from = '道长在线'; 105 | vod.vod_play_url = playlist.join('#'); 106 | return JSON.stringify({ 107 | list: [vod], 108 | }); 109 | } 110 | 111 | async function play(flag, id, flags) { 112 | let html = await request(id); 113 | let $ = load(html); 114 | let playUrl = $('div.video-play-box').find('video:first')[0].attribs.src + '#.mp4'; 115 | return JSON.stringify({ 116 | parse: 0, 117 | url: playUrl, 118 | }); 119 | } 120 | 121 | async function search(wd, quick, pg) { 122 | return '{}'; 123 | } 124 | 125 | export function __jsEvalReturn() { 126 | return { 127 | init: init, 128 | home: home, 129 | homeVod: homeVod, 130 | category: category, 131 | detail: detail, 132 | play: play, 133 | search: search, 134 | }; 135 | } -------------------------------------------------------------------------------- /猫/testVideo.js: -------------------------------------------------------------------------------- 1 | import { __jsEvalReturn } from './kunyu77_open.js'; 2 | 3 | var spider = __jsEvalReturn(); 4 | 5 | function jsonParse(obj) { 6 | if (typeof obj === 'string') { 7 | return JSON.parse(obj); 8 | } 9 | return obj; 10 | } 11 | 12 | async function test() { 13 | var spType = null; 14 | var spVid = null; 15 | spType = '2'; 16 | // spVid = '95873'; 17 | 18 | await spider.init({ skey: 'siteKey', ext: '' }); 19 | var classes = jsonParse(await spider.home(true)); 20 | console.log(classes); 21 | var homeVod = jsonParse(await spider.homeVod()); 22 | console.log(homeVod); 23 | if (classes.class && classes.class.length > 0) { 24 | var page = jsonParse(await spider.category(spType || classes.class[0].type_id, 0, undefined, {})); 25 | console.log(page); 26 | if (page.list && page.list.length > 0) { 27 | for (const k in page.list) { 28 | if (k >= 5) break; 29 | var detail = jsonParse(await spider.detail(spVid || page.list[k].vod_id)); 30 | console.log(detail); 31 | if (detail.list && detail.list.length > 0) { 32 | var pFlag = detail.list[0].vod_play_from.split('$$$'); 33 | var pUrls = detail.list[0].vod_play_url.split('$$$'); 34 | if (pFlag.length > 0 && pUrls.length > 0) { 35 | for (const i in pFlag) { 36 | var flag = pFlag[i]; 37 | var urls = pUrls[i].split('#'); 38 | if (urls.length > 0) { 39 | var url = urls[0].split('$')[1]; 40 | console.log(flag, url); 41 | var playUrl = await spider.play(flag, url, []); 42 | console.log(playUrl); 43 | } 44 | } 45 | } 46 | } 47 | if (spVid) break; 48 | } 49 | } 50 | } 51 | var search = jsonParse(await spider.search('奥特曼')); 52 | console.log(search); 53 | 54 | search = jsonParse(await spider.search('喜欢')); 55 | console.log(search); 56 | } 57 | 58 | export { test }; 59 | -------------------------------------------------------------------------------- /猫/tuxiaobei_open.js: -------------------------------------------------------------------------------- 1 | import { load, _ } from './lib/cat.js'; 2 | let key = '🐰兔小贝'; 3 | let HOST = 'https://www.tuxiaobei.com'; 4 | let siteKey = ''; 5 | let siteType = 0; 6 | 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'; 7 | 8 | async function request(reqUrl, agentSp) { 9 | let res = await req(reqUrl, { 10 | method: 'get', 11 | headers: { 12 | 'User-Agent': agentSp || IOS_UA, 13 | }, 14 | }); 15 | return res.content 16 | } 17 | 18 | async function init(cfg) { 19 | siteKey = cfg.skey; 20 | siteType = cfg.stype 21 | } 22 | 23 | async function home(filter) { 24 | const classes = [{ type_id: '', type_name: '🐰全部' }, { type_id: 2, type_name: '🐰儿歌' }, { type_id: 3, type_name: '🐰故事' }, { type_id: 27, type_name: '🐰公益' }, { type_id: 9, type_name: '🐰十万个为什么' }, { type_id: 28, type_name: '🐰安全教育' }, { type_id: 29, type_name: '🐰动物奇缘' }, { type_id: 7, type_name: '🐰弟子规' }, { type_id: 5, type_name: '🐰古诗' }, { type_id: 6, type_name: '🐰三字经' }, { type_id: 8, type_name: '🐰千字文' }, { type_id: 11, type_name: '🐰数学' }, { type_id: 25, type_name: '🐰英语' }, { type_id: 24, type_name: '🐰折纸' }]; 25 | const filterObj = {}; 26 | return JSON.stringify({ 27 | class: _.map(classes, (cls) => { 28 | cls.land = 1; 29 | cls.ratio = 1.78; 30 | return cls; 31 | }), 32 | filters: filterObj, 33 | }) 34 | } 35 | 36 | async function homeVod() { 37 | const link = await request(HOST + '/list/mip-data?typeId=9&page=1&callback='); 38 | const html = link.match(/\((.*?)\);/)[1]; 39 | const data = JSON.parse(html).data; 40 | let videos = _.map(data.items, (it) => { 41 | return { 42 | vod_id: it.video_id, 43 | vod_name: it.name, 44 | vod_pic: it.image, 45 | vod_remarks: it.root_category_name + ' | ' + it.duration_string || '', 46 | } 47 | }); 48 | return JSON.stringify({ 49 | list: videos, 50 | }) 51 | } 52 | 53 | async function category(tid, pg, filter, extend) { 54 | if (pg <= 0 || typeof pg == 'undefined') pg = 1; 55 | const link = await request(HOST + '/list/mip-data?typeId=' + tid + '&page=' + pg + '&callback='); 56 | const html = link.match(/\((.*?)\);/)[1]; 57 | const data = JSON.parse(html).data; 58 | let videos = _.map(data.items, (it) => { 59 | return { 60 | vod_id: it.video_id, 61 | vod_name: it.name, 62 | vod_pic: it.image, 63 | vod_remarks: it.root_category_name + ' | ' + it.duration_string || '', 64 | } 65 | }); 66 | const pgCount = pg * 30 > data.totalCount ? parseInt(pg) : parseInt(pg) + 1; 67 | return JSON.stringify({ 68 | page: parseInt(pg), 69 | pagecount: pgCount, 70 | limit: 30, 71 | total: data.totalCount, 72 | list: videos, 73 | }) 74 | } 75 | 76 | async function detail(id) { 77 | const vod = { 78 | vod_id: id, 79 | vod_remarks: '', 80 | }; 81 | const playlist = ['点击播放' + '$' + HOST + '/play/' + id]; 82 | vod.vod_play_from = "道长在线"; 83 | vod.vod_play_url = playlist.join('#'); 84 | return JSON.stringify({ 85 | list: [vod], 86 | }); 87 | } 88 | 89 | async function play(flag, id, flags) { 90 | const html = await request(id); 91 | const $ = load(html); 92 | const pvideo = $("body mip-search-video[video-src*=http]"); 93 | const purl = pvideo[0].attribs['video-src']; 94 | // console.debug('兔小贝 purl =====>' + purl); // js_debug.log 95 | return JSON.stringify({ 96 | parse: 0, 97 | url: purl, 98 | }); 99 | } 100 | 101 | async function search(wd, quick) { 102 | const link = HOST + "/search/" + wd; 103 | const html = await request(link); 104 | const $ = load(html); 105 | const list = $("div.list-con > div.items"); 106 | let videos = _.map(list, (it) => { 107 | const a = $(it).find("a:first")[0]; 108 | const img = $(it).find("mip-img:first")[0]; 109 | const tt = $(it).find("p:first")[0]; 110 | const remarks = $(it).find("p")[1]; 111 | return { 112 | vod_id: a.attribs.href.replace(/.*?\/play\/(.*)/g, '$1'), 113 | vod_name: tt.children[0].data, 114 | vod_pic: img.attribs["src"], 115 | vod_remarks: remarks.children[0].data || "", 116 | }; 117 | }); 118 | return JSON.stringify({ 119 | list: videos, 120 | land: 1, 121 | ratio: 1.78, 122 | }); 123 | } 124 | 125 | export function __jsEvalReturn() { 126 | return { 127 | init: init, 128 | home: home, 129 | homeVod: homeVod, 130 | category: category, 131 | detail: detail, 132 | play: play, 133 | search: search, 134 | } 135 | } -------------------------------------------------------------------------------- /猫/ubestkid_open.js: -------------------------------------------------------------------------------- 1 | // 无搜索功能 2 | import { _ } from './lib/cat.js'; 3 | let key = '🐯贝乐虎'; 4 | let HOST = 'https://vd.ubestkid.com'; 5 | let siteKey = ''; 6 | let siteType = 0; 7 | const MOBILE_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'; 8 | 9 | async function request(reqUrl, referer, mth, data, hd) { 10 | const headers = { 11 | "User-Agent": MOBILE_UA, 12 | }; 13 | if (referer) headers.referer = encodeURIComponent(referer); 14 | let res = await req(reqUrl, { 15 | method: mth || "get", 16 | headers: headers, 17 | data: data, 18 | postType: mth === "post" ? "json" : "", 19 | }); 20 | return res.content; 21 | } 22 | 23 | async function init(cfg) { 24 | siteKey = cfg.skey; 25 | siteType = cfg.stype 26 | } 27 | 28 | async function home(filter) { 29 | const classes = [{ type_id: 65, type_name: '🐯最新上架' }, { type_id: 113, type_name: '🐯人气热播' }, { type_id: 56, type_name: '🐯经典童谣' }, { type_id: 137, type_name: '🐯开心贝乐虎' }, { type_id: 53, type_name: '🐯律动儿歌' }, { type_id: 59, type_name: '🐯经典儿歌' }, { type_id: 101, type_name: '🐯超级汽车1' }, { type_id: 119, type_name: '🐯超级汽车第二季' }, { type_id: 136, type_name: '🐯超级汽车第三季' }, { type_id: 95, type_name: '🐯三字经' }, { type_id: 133, type_name: '🐯幼儿手势舞' }, { type_id: 117, type_name: '🐯哄睡儿歌' }, { type_id: 70, type_name: '🐯英文儿歌' }, { type_id: 116, type_name: '🐯节日与节气' }, { type_id: 97, type_name: '🐯恐龙世界' }, { type_id: 55, type_name: '🐯动画片儿歌' }, { type_id: 57, type_name: '🐯流行歌曲' }, { type_id: 118, type_name: '🐯贝乐虎入园记' }, { type_id: 106, type_name: '🐯贝乐虎大百科' }, { type_id: 62, type_name: '🐯经典古诗' }, { type_id: 63, type_name: '🐯经典故事' }, { type_id: 128, type_name: '🐯萌虎学功夫' }, { type_id: 100, type_name: '🐯绘本故事' }, { type_id: 121, type_name: '🐯开心贝乐虎英文版' }, { type_id: 96, type_name: '🐯嗨贝乐虎情商动画' }, { type_id: 108, type_name: '🐯动物音乐派对' }, { type_id: 126, type_name: '🐯动物音乐派对英文版' }, { type_id: 105, type_name: '🐯奇妙的身体' }, { type_id: 124, type_name: '🐯奇妙的身体英文版' }, { type_id: 64, type_name: '🐯认知卡片' }, { type_id: 109, type_name: '🐯趣味简笔画' }, { type_id: 78, type_name: '🐯数字儿歌' }, { type_id: 120, type_name: '🐯识字体验版' }, { type_id: 127, type_name: '🐯启蒙系列体验版' }]; 30 | const filterObj = {}; 31 | return JSON.stringify({ 32 | class: _.map(classes, (cls) => { 33 | cls.land = 1; 34 | cls.ratio = 1.78; 35 | return cls; 36 | }), 37 | filters: filterObj, 38 | }) 39 | } 40 | 41 | async function homeVod() { 42 | const link = HOST + "/api/v1/bv/video"; 43 | const pdata = { age: 1, appver: "6.1.9", egvip_status: 0, svip_status: 0, vps: 60, subcateId: 56, "p": 1 }; 44 | const jo = JSON.parse(await request(link, "", "post", pdata)).result; 45 | const videos = []; 46 | _.each(jo.items, (it) => { 47 | videos.push({ 48 | vod_id: it.url, 49 | vod_name: it.title, 50 | vod_pic: it.image, 51 | vod_remarks: '👀' + it.viewcount || '', 52 | }) 53 | }); 54 | return JSON.stringify({ 55 | list: videos, 56 | }) 57 | } 58 | 59 | async function category(tid, pg, filter, extend) { 60 | if (pg <= 0 || typeof pg == 'undefined') pg = 1; 61 | const link = HOST + "/api/v1/bv/video"; 62 | const pdata = { age: 1, appver: "6.1.9", egvip_status: 0, svip_status: 0, vps: 60, subcateId: tid, "p": pg }; 63 | const jo = JSON.parse(await request(link, "", "post", pdata)).result; 64 | const videos = []; 65 | _.each(jo.items, (it) => { 66 | videos.push({ 67 | vod_id: it.url, 68 | vod_name: it.title, 69 | vod_pic: it.image, 70 | vod_remarks: '👀' + it.viewcount || '', 71 | }) 72 | }); 73 | const pgCount = pg * 60 > jo.total ? parseInt(pg) : parseInt(pg) + 1; 74 | return JSON.stringify({ 75 | page: parseInt(pg), 76 | pagecount: pgCount, 77 | limit: 60, 78 | total: jo.total, 79 | list: videos, 80 | }) 81 | } 82 | 83 | async function detail(id) { 84 | const vod = { 85 | vod_id: id, 86 | vod_remarks: '', 87 | }; 88 | const playlist = ['点击播放' + '$' + id]; 89 | vod.vod_play_from = "道长在线"; 90 | vod.vod_play_url = playlist.join('#'); 91 | return JSON.stringify({ 92 | list: [vod], 93 | }); 94 | } 95 | 96 | async function play(flag, id, flags) { 97 | // console.debug('贝乐虎 id =====>' + id); // js_debug.log 98 | return JSON.stringify({ 99 | parse: 0, 100 | url: id, 101 | }); 102 | } 103 | 104 | async function search(wd, quick) { 105 | return '{}' 106 | } 107 | 108 | export function __jsEvalReturn() { 109 | return { 110 | init: init, 111 | home: home, 112 | homeVod: homeVod, 113 | category: category, 114 | detail: detail, 115 | play: play, 116 | search: search, 117 | } 118 | } -------------------------------------------------------------------------------- /猫/upyun_open.js: -------------------------------------------------------------------------------- 1 | import { Crypto, _ } from 'assets://js/lib/cat.js'; 2 | import { log } from './lib/utils.js'; 3 | import { initAli, detailContent, playContent } from './lib/ali.js'; 4 | 5 | let siteKey = 'upyun'; 6 | let siteType = 0; 7 | let siteUrl = 'https://zyb.upyunso.com'; 8 | let patternAli = /(https:\/\/www\.(aliyundrive|alipan)\.com\/s\/[^"]+)/ 9 | 10 | async function request(reqUrl) { 11 | let res = await req(reqUrl, { 12 | method: 'get', 13 | headers: { 14 | 'Referer': siteUrl, 15 | }, 16 | }); 17 | return res.content; 18 | } 19 | 20 | // cfg = {skey: siteKey, ext: extend} 21 | async function init(cfg) { 22 | try { 23 | siteKey = _.isEmpty(cfg.skey) ? '' : cfg.skey; 24 | siteType = _.isEmpty(cfg.stype) ? '' : cfg.stype; 25 | await initAli(cfg); 26 | } catch (e) { 27 | await log('init:' + e.message + ' line:' + e.lineNumber); 28 | } 29 | } 30 | 31 | async function home(filter) { 32 | return '{}'; 33 | } 34 | 35 | async function homeVod() {} 36 | 37 | async function category(tid, pg, filter, extend) { 38 | return '{}'; 39 | } 40 | 41 | async function detail(id) { 42 | try { 43 | return await detailContent(id); 44 | } catch (e) { 45 | await log('detail:' + e.message + ' line:' + e.lineNumber); 46 | } 47 | } 48 | 49 | async function play(flag, id, flags) { 50 | try { 51 | return await playContent(flag, id, flags); 52 | } catch (e) { 53 | await log('play:' + e.message + ' line:' + e.lineNumber); 54 | } 55 | } 56 | 57 | async function search(wd, quick, pg) { 58 | if (pg <= 0) pg = 1; 59 | const limit = 25; 60 | const resp = await request(siteUrl + "/v15/search?keyword=" + encodeURIComponent(wd) + '&page=' + pg + '&s_type=2'); 61 | const data = decrypt(resp); 62 | const items = JSON.parse(data).result.items; 63 | const videos = []; 64 | for(const item of items) { 65 | const url = decrypt(item.page_url); 66 | const matches = url.match(patternAli); 67 | if (_.isEmpty(matches)) continue; 68 | const title = _.isEmpty(item.content) ? item.title : item.content[0].title; 69 | videos.push({ 70 | vod_id: url, 71 | vod_name: title.replaceAll(/<\/?[^>]+>/g, ""), 72 | vod_pic: "https://inews.gtimg.com/newsapp_bt/0/13263837859/1000", 73 | vod_remarks: item.insert_time, 74 | }); 75 | } 76 | const hasMore = !_.isEmpty(items); 77 | const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg); 78 | return JSON.stringify({ 79 | page: parseInt(pg), 80 | pagecount: pgCount, 81 | limit: limit, 82 | total: limit * pgCount, 83 | list: videos, 84 | }); 85 | } 86 | 87 | function decrypt(text) { 88 | const data = { 89 | ciphertext: Crypto.enc.Hex.parse(text.toUpperCase()), 90 | }; 91 | const key = Crypto.enc.Utf8.parse('qq1920520460qqzz'); 92 | const iv = Crypto.enc.Utf8.parse('qq1920520460qqzz'); 93 | const mode = Crypto.mode.CBC; 94 | const padding = Crypto.pad.Pkcs7; 95 | const decrypted = Crypto.AES.decrypt(data, key, { 96 | 'iv': iv, 97 | 'mode': mode, 98 | 'padding': padding 99 | }); 100 | const decryptedData = Crypto.enc.Utf8.stringify(decrypted); 101 | return decryptedData; 102 | } 103 | 104 | export function __jsEvalReturn() { 105 | return { 106 | init: init, 107 | home: home, 108 | homeVod: homeVod, 109 | category: category, 110 | detail: detail, 111 | play: play, 112 | search: search, 113 | }; 114 | } -------------------------------------------------------------------------------- /猫/vsdj_open.js: -------------------------------------------------------------------------------- 1 | //bbQ0FUT1CoARh2c2RqX29wZW4uanMYLi9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuDENyeXB0bwhsb2FkAl8MamluamEyBmtleQZ1cmwOc2l0ZUtleRBzaXRlVHlwZQRVQQ5yZXF1ZXN0CGluaXQIaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFpbAhwbGF5DHNlYXJjaAh2c2RqMmh0dHBzOi8vd3d3Lnl0c2hlbmdkZS5jb22WAk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTNfMl8zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xMy4wLjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEMcmVxVXJsDmFnZW50U3AGcmVzBnJlcQxtZXRob2QUVXNlci1BZ2VudA5SZWZlcmVyDmhlYWRlcnMOY29udGVudAZjZmcIc2tleQpzdHlwZQxmaWx0ZXIOY2xhc3NlcxJmaWx0ZXJPYmoOdHlwZV9pZAXtd2dSEnR5cGVfbmFtZQxsZXR0ZXIFV1vNawVoUeiQAm4CdgJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloEYnkFkmOPXgX2ZfSVCHRpbWUFuk4UbAhoaXRzBcSLBlIKc2NvcmUSc3RyaW5naWZ5DmZpbHRlcnMGdGlkBHBnDGV4dGVuZAhsaW5rCGh0bWwCJAppdGVtcwx2aWRlb3MOaGFzTW9yZQ5wZ0NvdW50Ei9zYW55aXN3LwQtLQYtLS0KLmh0bWwodWwubXl1aS12b2RsaXN0ID4gbGkGbWFwR3UAbAAuAG0AeQB1AGkALQBwAGEAZwBlACAAPgAgAGwAaQAgAD4AIABhADoAYwBvAG4AdABhAGkAbgBzACgAC04ATnWYKQAQcGFyc2VJbnQIcGFnZRJwYWdlY291bnQKbGltaXQKdG90YWwIbGlzdAhpdGVtBGl0DnJlbWFya3MIZmluZA5hOmZpcnN0MHNwYW4ucGljLXRleHQgdGV4dC1yaWdodAh0ZXh0CHRyaW0OYXR0cmlicwhocmVmDnJlcGxhY2UEJDEMdm9kX2lkCnRpdGxlEHZvZF9uYW1lGmRhdGEtb3JpZ2luYWwOdm9kX3BpYxZ2b2RfcmVtYXJrcwRpZAZ2b2QQcGxheWxpc3QSL3NhbnlpZHQvEGgxOmZpcnN0Pi5teXVpLWNvbnRlbnRfX2RldGFpbCBwOmZpcnN0IGEQdm9kX3R5cGVILm15dWktY29udGVudF9fZGV0YWlsIHA6bnRoLWNoaWxkKDUpBztOFG8a/xJ2b2RfYWN0b3JILm15dWktY29udGVudF9fZGV0YWlsIHA6bnRoLWNoaWxkKDYpB/xbFG8a/xh2b2RfZGlyZWN0b3JCZGl2Lm15dWktY29udGVudF9fdGh1bWIgaW1nOmZpcnN0CGF0dHIkI3JhdGluZzpmaXJzdCBzcGFuAiASc3Bhbi5kYXRhFnZvZF9jb250ZW50PHVsLm15dWktY29udGVudF9fbGlzdCA+IGxpID4gYQkaWRpZv37vjRp2b2RfcGxheV9mcm9tAiMYdm9kX3BsYXlfdXJsEGNoaWxkcmVuCGRhdGEIZmxhZwRqcwZVcmwKcGF1cmwIcHVybA5wbGF5VXJsEi9zYW55aXB5LwpwYXJzZTBzY3JpcHQ6Y29udGFpbnMocGxheWVyXykgdmFyIHBsYXllcl9hYWFhPR4vc3RhdGljL3BsYXllci8GLmpzCm1hdGNoDCZjb2RlPQR3ZApxdWlja0IvaW5kZXgucGhwL2FqYXgvc3VnZ2VzdD9taWQ9MSZ3ZD0IcHVzaAZwaWMPpAMBpgMBABGoAwAEAKoDAAGsAwACrgMAA7ADAA4ABgGgAQAAAAESCVIAqgMADKwDAQyuAwIMsAMDDLIDAAm0AwEJtgMCCbgDAwm6AwQNvAMFAb4DBgHAAwcBwgMIAcQDCQHGAwoByAMLAcoDDAGoAw0BCOgvvgBfCQC+AV8KAL4CXwsAvgNfDAC+BF8NAL4FXw4AvgZfDwC+B18QAL4IXxEAKQTmAAAAXwQABOcAAABfBQC/XwYAs18HAAToAAAAXwgAKaQDAQoB+isrFxgACP4BDmIGAbwDAgECBgIAOwPSAwABANQDAAEA1gMBACC6AwgMtAMFCGEAADjsAAAAzwsEQQAAAEztAAAAC9AR6QUOZQAATO4AAABlAQBM7wAAAEzwAAAA7ovHYgAAQfEAAAAupAMKCBImNQhEKxwSDmIGAb4DAQABAgIAGAHkAwABALYDBgi4AwcIz0HzAAAAEWYAAA7PQfQAAAARZgEADgYupAMWAwM6Og5iBgHAAwECAR4AAPAFA+oDAAEA7AMBACDuAwEBIGEBAGEAAAu4TPgAAAAE+QAAAEz6AAAAJgEAxwsLBPsAAABM2QAAAAT8AAAATDYAAAALBP0AAABM/gAAAL9M/wAAAAsEAAEAAEz+AAAABAABAABM/wAAAAsEAQEAAEz+AAAABAEBAABM/wAAAAsEAgEAAEz+AAAABAIBAABM/wAAAAsEAwEAAEz+AAAABAMBAABM/wAAAAsEBAEAAEz+AAAABAQBAABM/wAAAAsEBQEAAEz+AAAABAUBAABM/wAAAAsEBgEAAEz+AAAABAYBAABM/wAAAAsEBwEAAEz+AAAABAcBAABM/wAAAAsECAEAAEz+AAAABAgBAABM/wAAAAsECQEAAEz+AAAABAkBAABM/wAAAAsECgEAAEz+AAAABAoBAABM/wAAAAsECwEAAEz+AAAABAsBAABM/wAAAAsEDAEAAEz+AAAABAwBAABM/wAAAAsEDQEAAEz+AAAABA0BAABM/wAAAAsEDgEAAEz+AAAABA4BAABM/wAAAAsEDwEAAEz+AAAABA8BAABM/wAAAAsEEAEAAEz+AAAABBABAABM/wAAAAsEEQEAAEz+AAAABBEBAABM/wAAAAsEEgEAAEz+AAAABBIBAABM/wAAAAsEEwEAAEz+AAAABBMBAABM/wAAAAsEFAEAAEz+AAAABBQBAABM/wAAAAsEFQEAAEz+AAAABBUBAABM/wAAAAsEFgEAAEz+AAAABBYBAABM/wAAAAsEFwEAAEz+AAAABBcBAABM/wAAAAsEGAEAAEz+AAAABBgBAABM/wAAAAsEGQEAAEz+AAAABBkBAABM/wAAACYbAExAAAAACwQaAQAATNkAAAAEGwEAAEw2AAAACwQcAQAATP4AAAAEHQEAAEz/AAAACwQeAQAATP4AAAAEHwEAAEz/AAAACwQgAQAATP4AAAAEIQEAAEz/AAAAJgMATEAAAAAmAgBMBQAAgMg4mAAAAEIiAQAAC2IAAEweAAAAYgEATCMBAAAkAQAupAMbCyFsCAC0BQIJOisrDmIGAcIDAAAAAQAAAgAGLqQDJwAOYgYBxAMEBwQFBAHzAQvIBAABAMoEAAEA6gMAAQDMBAABAM4EAQAw0AQBATDSBAECcNQEAQMw1gQBBCDYBAEFMNoEAQYwtAMFCLwDCQCsAwEMrgMCDGEGAGEFAGEEAGEDAGECAGEBAGEAANCzpOgDtNRlAAAELgEAAJ3PnQQvAQAAndJBGgEAABHpBw4EHQEAAJ0EMAEAAJ3SQfsAAAAR6QMOv50EMAEAAJ3QnQQwAQAAnQQxAQAAncfcYgAA7YvIZQIAYgEA7cliAgAEMgEAAO3KZQMAQjMBAABiAwC+ACQCAMEEYgIABDQBAADt57OlwQViBQDoDDg1AQAA0O20neoIODUBAADQ7cEGOJgAAABCIgEAAAs4NQEAANDtTDYBAABiBgBMNwEAALsYTDgBAAC7GGIGAJpMOQEAAGIEAEw6AQAAJAEALqQDKRRsJwBIAiYrNQALEiZJgDo/KyY6Kw5CBgEAAQIBBQICoAED9gQAAQD4BAEAMPoEAQEw0gQCDbQDAAhhAQBhAABlAADP7UI+AQAABD8BAAAkAQCzR8dlAABlAADP7UI+AQAABEABAAAkAQCzR+1CQQEAACQAAEJCAQAAJAAAyAtiAABBQwEAAEFEAQAAQkUBAAC9AL0BMwRGAQAAJAIATEcBAABiAABBQwEAAEFIAQAATEkBAABlAQBiAABBQwEAAARKAQAAR51MSwEAAGIBABHpAw6/TEwBAAAopAMwCCFs0Ai3XXZEBy4uKj9cL3NhbnlpZHRcLyguKikuaHRtbAfCAQECAFoAAAAIBgAAAAQH9f///wsACAYAAAADB/X///8BLwABcwABYQABbgABeQABaQABZAABdAABLwALARwCAAAAAAAAAP///38BAAAAAwoMAQMBaAABdAABbQABbAAMAAoOYgYBxgMBBAEFBAPkAgWaBQABANAEAQAw0gQBATCcBQECIJ4FAQMwvAMJALQDBQisAwEMrgMCDGEDAGECAGEBAGEAANtlAQAEUAEAAJ3PnQQxAQAAne2Lx2UCAGIAAO3IC89MRwEAAGIBAARRAQAA7UJBAQAAJAAAQkIBAAAkAABMSQEAAGIBAARSAQAA7UJBAQAAJAAATFMBAABiAQAEVAEAAO1CQQEAACQAAEJFAQAABFUBAAC/JAIATFYBAABiAQAEVwEAAO1CQQEAACQAAEJFAQAABFgBAAC/JAIATFkBAABiAQAEWgEAAO1CWwEAAARKAQAAJAEATEsBAABiAQAEXAEAAO1CQQEAACQAAEJFAQAAvQC9ATMEXQEAACQCAExMAQAAYgEABF4BAADtQkEBAAAkAABCQgEAACQAAExfAQAAyWUDAEIzAQAAYgEABGABAADtvgIkAgDKYgIABGEBAABDYgEAAGICAGIDAEJbAAAABGMBAAAkAQBDZAEAADiYAAAAQiIBAAALYgIAJgEATDoBAAAkAQAupANFEz9sKwghmXG3t4rLmQhZIUR7OjoHDFxzezIsfQeoAQEBAE0AAAAIBgAAAAQH9f///wsAHCwAAAACAAAA////fwEAAAAVCgAJAA0AIAAgAKAAoACAFoAWACAKICggKSAvIC8gXyBfIAAwADD//v/+CgwACg5CBgEAAQABBQACMgH4BAABAM9BZQEAALNHQWYBAAAEKQEAAJ3PQUMBAABBRAEAAEJFAQAAvQC9ATMERgEAACQCAJ0opANSAQMHKFwvc2FueWlweVwvKC4qKS5odG1sB6wBAQIATwAAAAgGAAAABAf1////CwABLwABcwABYQABbgABeQABaQABcAABeQABLwALARwCAAAAAAAAAP///38BAAAAAwoMAQMBaAABdAABbQABbAAMAAoOYgYByAMDCQMGAwThAQzOBQABAJoFAAEA2gEAAQDOBAEAMNAEAQEw0gQBAjDQBQEDMNIFAQQw9AEBBTDUBQAAANYFAAcA2AUACAC0AwUIvAMJAKwDAQxhBQBhBABhAwBhAgBhAQBhAABlAAAEbQEAAJ3QnQQxAQAAncfcYgAA7YvIZQIAYgEA7ck4mAAAAEJuAQAAYgIABG8BAADtQigBAAAkAABCRQEAAARwAQAAvyQCACQBAMpiAwBB2gAAAMEEYgMAQXoAAADBBdxlAAAEcQEAAJ1iBQCdBHIBAACd7YvCBkJzAQAAvQC9ATMkAQC0R8IGYgQAnQR0AQAAnWIFAJ3BB9zAB+2LwghCcwEAAL0CvQMzJAEAtEfBCDiYAAAAQiIBAAALs0xuAQAAwAhM2gAAACQBAC6kA1sPXV0mK+Q1NXFiUxxiOiEmBxggc3JjPSIoLio/KScHdgACADQAAAAIBgAAAAQH9f///wsAASAAAXMAAXIAAWMAAT0AASIACwEIBgAAAAMH9f///wwBAScADAAKBxwgdXJsID0gJyguKj8pJweCAQACADoAAAAIBgAAAAQH9f///wsAASAAAXUAAXIAAWwAASAAAT0AASAAAScACwEIBgAAAAMH9f///wwBAScADAAKDmIGAcoDAgMCBwIAjAEF6gUAAQDsBQABAMwFAQAg1gQBASCcBQICMLwDCQC0AwUIYQEAYQAAOJgAAABCbgEAANtlAQAEdwEAAJ3Pne2LJAEAQToBAADHJgAAyGECAGIAAH3qPMliAQBCeAEAAAtiAgBBTQEAAExHAQAAYgIAQTYAAABMSQEAAGICAEF5AQAATEsBAAC/TEwBAAAkAQAOgADowg6DOJgAAABCIgEAAAtiAQBMOgEAACQBAC6kA20NIagXNTBEREQhFyE6Kw5DBgGoAwAAAAIHADIAvgMKAMADCwDCAwwAxAMNAMYDDgDIAw8AygMQAAvbTN8AAADcTOAAAADdTOEAAADeTOIAAABeBABM4wAAAF4FAEzkAAAAXgYATOUAAAAopAN9CQMIISEhISsrKw== -------------------------------------------------------------------------------- /猫/xiaoya.js: -------------------------------------------------------------------------------- 1 | import{Crypto,load,_}from"assets://js/lib/cat.js";let key="xiaoya-tv",url="",siteKey="",siteType=0;const 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",cookie={};async function request(reqUrl,referer,mth,data,hd){var headers={"User-Agent":UA,Cookie:_.map(cookie,(value,key)=>key+"="+value).join(";")},referer=(referer&&(headers.referer=encodeURIComponent(referer)),await req(reqUrl,{method:mth||"get",headers:headers,data:data,postType:"post"===mth?"form":""}));return referer.content}async function init(cfg){siteKey=cfg.skey,siteType=cfg.stype,url=cfg.ext}async function home(filter){return(await request(url)).replaceAll("1$/$1","1$/$0")}async function homeVod(){return"{}"}async function category(tid,pg,filter,extend){pg<=0&&(pg=1);let api=url+"?t="+tid+"&pg="+pg;return extend&&(tid=Object.entries(extend).map(([key,val]=entry)=>"&"+key+"="+val),api=(api+=tid)+("&f="+encodeURIComponent(JSON.stringify(extend)))),request(api)}async function detail(id){id=id.split("$");return request(url+"?ids="+id[0]+"$"+id[1])}async function play(flag,id,flags){return request(url.replace("/vod1","/play")+"?id="+id+"&from=open")}async function search(wd,quick){return request(url+"?wd="+wd)}function __jsEvalReturn(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search}}export{__jsEvalReturn}; -------------------------------------------------------------------------------- /猫/xiaozhitiao_open.js: -------------------------------------------------------------------------------- 1 | import { load, _ } from 'assets://js/lib/cat.js'; 2 | import { log } from './lib/utils.js'; 3 | import { initAli, detailContent, playContent } from './lib/ali.js'; 4 | 5 | let siteKey = 'xiaozhitiao'; 6 | let siteType = 0; 7 | let siteUrl = 'https://gitcafe.net/tool/alipaper/'; 8 | let aliUrl = "https://www.aliyundrive.com/s/"; 9 | let token = ''; 10 | let date = new Date(); 11 | 12 | const 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'; 13 | 14 | async function request(reqUrl, data) { 15 | let res = await req(reqUrl, { 16 | method: 'post', 17 | headers: { 18 | 'User-Agent': UA, 19 | }, 20 | data: data, 21 | postType: 'form', 22 | }); 23 | return res.content; 24 | } 25 | 26 | // cfg = {skey: siteKey, ext: extend} 27 | async function init(cfg) { 28 | try { 29 | siteKey = _.isEmpty(cfg.skey) ? '' : cfg.skey; 30 | siteType = _.isEmpty(cfg.stype) ? '' : cfg.stype; 31 | await initAli(cfg.ext); 32 | } catch (e) { 33 | await log('init:' + e.message + ' line:' + e.lineNumber); 34 | } 35 | } 36 | 37 | async function home(filter) { 38 | const classes = [{'type_id':'1','type_name':'电视'},{'type_id':'2','type_name':'电影'},{'type_id':'3','type_name':'动漫'},{'type_id':'4','type_name':'视频'},{'type_id':'5','type_name':'音乐'}]; 39 | const filterObj = { 40 | '1':[{'key':'class','name':'类型','init':'hyds','value':[{'n':'华语','v':'hyds'},{'n':'日韩','v':'rhds'},{'n':'欧美','v':'omds'},{'n':'其他','v':'qtds'}]}], 41 | '2':[{'key':'class','name':'类型','init':'hydy','value':[{'n':'华语','v':'hydy'},{'n':'日韩','v':'rhdy'},{'n':'欧美','v':'omdy'},{'n':'其他','v':'qtdy'}]}], 42 | '3':[{'key':'class','name':'类型','init':'hydm','value':[{'n':'国漫','v':'hydm'},{'n':'日本','v':'rhdm'},{'n':'欧美','v':'omdm'}]}], 43 | '4':[{'key':'class','name':'类型','init':'jlp','value':[{'n':'纪录','v':'jlp'},{'n':'综艺','v':'zyp'},{'n':'教育','v':'jypx'},{'n':'其他','v':'qtsp'}]}], 44 | '5':[{'key':'class','name':'类型','init':'hyyy','value':[{'n':'华语','v':'hyyy'},{'n':'日韩','v':'rhyy'},{'n':'欧美','v':'omyy'},{'n':'其他','v':'qtyy'}]}], 45 | }; 46 | return { 47 | class: classes, 48 | filters: filterObj, 49 | }; 50 | } 51 | 52 | async function homeVod() {} 53 | 54 | async function category(tid, pg, filter, extend) { 55 | if (pg <= 0) pg = 1; 56 | const params = { 57 | action: "viewcat", 58 | cat: extend.class, 59 | num: pg, 60 | token: await getToken(), 61 | }; 62 | const resp = await request(siteUrl, params); 63 | const json = JSON.parse(resp); 64 | const videos = _.map(json.data, (item) => { 65 | return { 66 | vod_id: aliUrl + item.alikey, 67 | vod_name: item.title, 68 | vod_pic: "https://i2.100024.xyz/2024/01/31/xp4o7o.webp", 69 | vod_remarks: item.creatime 70 | }; 71 | }); 72 | const pgCount = _.isEmpty(videos) ? pg : pg + 1; 73 | const limit = 50; 74 | return { 75 | page: pg, 76 | pagecount: pgCount, 77 | limit: limit, 78 | total: limit * pgCount, 79 | list: videos, 80 | }; 81 | } 82 | 83 | async function detail(id) { 84 | try { 85 | return await detailContent(id); 86 | } catch (e) { 87 | await log('detail:' + e.message + ' line:' + e.lineNumber); 88 | } 89 | } 90 | 91 | async function play(flag, id, flags) { 92 | try { 93 | return await playContent(flag, id, flags); 94 | } catch (e) { 95 | await log('play:' + e.message + ' line:' + e.lineNumber); 96 | } 97 | } 98 | 99 | async function search(wd, quick, pg) { 100 | if (pg <= 0) pg = 1; 101 | const params = { 102 | action: "search", 103 | from: "web", 104 | keyword: wd, 105 | token: await getToken(), 106 | }; 107 | const resp = await request(siteUrl, params); 108 | const json = JSON.parse(resp); 109 | const videos = _.map(json.data, (item) => { 110 | return { 111 | vod_id: aliUrl + item.alikey, 112 | vod_name: item.title, 113 | vod_pic: "https://i2.100024.xyz/2024/01/31/xp4o7o.webp", 114 | vod_remarks: item.creatime 115 | }; 116 | }); 117 | return { 118 | list: videos, 119 | }; 120 | } 121 | 122 | async function getToken() { 123 | const newDate = new Date(); 124 | if (_.isEmpty(token) || newDate > date) { 125 | const params = { 126 | action: "get_token", 127 | }; 128 | const resp = await request(siteUrl, params); 129 | const json = JSON.parse(resp); 130 | if (json.success) { 131 | token = json.data; 132 | date = newDate; 133 | } 134 | } 135 | return token; 136 | } 137 | 138 | export function __jsEvalReturn() { 139 | return { 140 | init: init, 141 | home: home, 142 | homeVod: homeVod, 143 | category: category, 144 | detail: detail, 145 | play: play, 146 | search: search, 147 | }; 148 | } -------------------------------------------------------------------------------- /猫/yiso_open.js: -------------------------------------------------------------------------------- 1 | import { Crypto, _ } from 'assets://js/lib/cat.js'; 2 | import { log } from './lib/utils.js'; 3 | import { initAli, detailContent, playContent } from './lib/ali.js'; 4 | 5 | let siteKey = 'yiso'; 6 | let siteType = 0; 7 | let siteUrl = 'https://yiso.fun'; 8 | let patternAli = /(https:\/\/www\.(aliyundrive|alipan)\.com\/s\/[^"]+)/; 9 | let cookie = ''; 10 | 11 | const 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'; 12 | 13 | 14 | async function request(reqUrl) { 15 | let res = await req(reqUrl, { 16 | method: 'get', 17 | headers: { 18 | 'User-Agent': UA, 19 | 'Referer': siteUrl, 20 | 'Cookie': cookie, 21 | }, 22 | }); 23 | return res.content; 24 | } 25 | 26 | // cfg = {skey: siteKey, ext: extend} 27 | async function init(cfg) { 28 | try { 29 | siteKey = _.isEmpty(cfg.skey) ? '' : cfg.skey; 30 | siteType = _.isEmpty(cfg.stype) ? '' : cfg.stype; 31 | const ext = _.isEmpty(cfg.ext) ? '' : cfg.ext; 32 | const configs = ext.split('$$$'); 33 | if (configs.length == 2) { 34 | cookie = configs[1]; 35 | } 36 | const token = { 37 | ext: configs[0] 38 | }; 39 | await initAli(token); 40 | } catch (e) { 41 | await log('init:' + e.message + ' line:' + e.lineNumber); 42 | } 43 | } 44 | 45 | async function home(filter) { 46 | return '{}'; 47 | } 48 | 49 | async function homeVod() {} 50 | 51 | async function category(tid, pg, filter, extend) { 52 | return '{}'; 53 | } 54 | 55 | async function detail(id) { 56 | try { 57 | let matches = id.match(patternAli); 58 | if (!_.isEmpty(matches)) return await detailContent(matches[0]); 59 | return ''; 60 | } catch (e) { 61 | await log('detail:' + e.message + ' line:' + e.lineNumber); 62 | } 63 | } 64 | 65 | async function play(flag, id, flags) { 66 | try { 67 | return await playContent(flag, id, flags); 68 | } catch (e) { 69 | await log('play:' + e.message + ' line:' + e.lineNumber); 70 | } 71 | } 72 | 73 | async function search(wd, quick, pg) { 74 | if (pg <= 0) pg = 1; 75 | const limit = 10; 76 | const resp = await request(siteUrl + "/api/search?name=" + encodeURIComponent(wd) + '&pageNo=' + pg + '&from=ali'); 77 | const json = JSON.parse(resp).data; 78 | const total = json.total; 79 | const videos = _.map(json.list, (item) => { 80 | const name = item.fileInfos[0].fileName; 81 | const remark = item.gmtCreate; 82 | const url = decryptUrl(item.url); 83 | return { 84 | vod_id: url, 85 | vod_name: name, 86 | vod_pic: "https://inews.gtimg.com/newsapp_bt/0/13263837859/1000", 87 | vod_remarks: remark, 88 | }; 89 | }); 90 | const pgCount = parseInt(total / limit) + 1; 91 | return JSON.stringify({ 92 | page: parseInt(pg), 93 | pagecount: pgCount, 94 | limit: limit, 95 | total: total, 96 | list: videos, 97 | }); 98 | } 99 | 100 | function decryptUrl(url) { 101 | const data = { 102 | ciphertext: Crypto.enc.Base64.parse(url), 103 | }; 104 | const key = Crypto.enc.Utf8.parse('4OToScUFOaeVTrHE'); 105 | const iv = Crypto.enc.Utf8.parse('9CLGao1vHKqm17Oz'); 106 | const mode = Crypto.mode.CBC; 107 | const padding = Crypto.pad.Pkcs7; 108 | const decrypted = Crypto.AES.decrypt(data, key, { 109 | 'iv': iv, 110 | 'mode': mode, 111 | 'padding': padding 112 | }); 113 | const decryptedUrl = Crypto.enc.Utf8.stringify(decrypted); 114 | return decryptedUrl; 115 | } 116 | 117 | export function __jsEvalReturn() { 118 | return { 119 | init: init, 120 | home: home, 121 | homeVod: homeVod, 122 | category: category, 123 | detail: detail, 124 | play: play, 125 | search: search, 126 | }; 127 | } -------------------------------------------------------------------------------- /猫/yunpan4k_open.js: -------------------------------------------------------------------------------- 1 | import { load, _ } from 'assets://js/lib/cat.js'; 2 | import { log } from './lib/utils.js'; 3 | import { initAli, detailContent, playContent } from './lib/ali.js'; 4 | 5 | let siteKey = 'yunpan4k'; 6 | let siteType = 0; 7 | let siteUrl = 'https://www.codelicence.cn'; 8 | let patternAli = /(https:\/\/www\.(aliyundrive|alipan)\.com\/s\/[^"]+)/; 9 | 10 | const 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'; 11 | 12 | async function requestRaw(reqUrl, method, data, redirect) { 13 | let res = await req(reqUrl, { 14 | method: method || 'get', 15 | headers: { 16 | 'User-Agent': UA, 17 | 'Referer': siteUrl, 18 | }, 19 | data: data, 20 | postType: method === 'post' ? 'form' : '', 21 | redirect: redirect == 0 ? 0 : 1, 22 | }); 23 | return res; 24 | } 25 | 26 | async function request(reqUrl, method, data) { 27 | let resRaw = await requestRaw(reqUrl, method, data); 28 | return resRaw.content; 29 | } 30 | 31 | // cfg = {skey: siteKey, ext: extend} 32 | async function init(cfg) { 33 | try { 34 | siteKey = _.isEmpty(cfg.skey) ? '' : cfg.skey; 35 | siteType = _.isEmpty(cfg.stype) ? '' : cfg.stype; 36 | await initAli(cfg.ext); 37 | } catch (e) { 38 | await log('init:' + e.message + ' line:' + e.lineNumber); 39 | } 40 | } 41 | 42 | async function home(filter) { 43 | return '{}'; 44 | } 45 | 46 | async function homeVod() {} 47 | 48 | async function category(tid, pg, filter, extend) { 49 | return '{}'; 50 | } 51 | 52 | async function detail(id) { 53 | try { 54 | let matches = id.match(patternAli); 55 | if (!_.isEmpty(matches)) return await detailContent(matches[1]); 56 | const html = await request(siteUrl + id); 57 | const $ = load(html); 58 | const href = $('div.down a:first').attr('href'); 59 | const data = await requestRaw(siteUrl + href, 'get', null, 0); 60 | const headers = data.headers; 61 | let url = ''; 62 | if (headers.hasOwnProperty('location')) { 63 | url = headers['location']; 64 | } 65 | matches = url.match(patternAli); 66 | if (!_.isEmpty(matches)) return await detailContent(matches[1]); 67 | return ''; 68 | } catch (e) { 69 | await log('detail:' + e.message + ' line:' + e.lineNumber); 70 | } 71 | } 72 | 73 | async function play(flag, id, flags) { 74 | try { 75 | return await playContent(flag, id, flags); 76 | } catch (e) { 77 | await log('play:' + e.message + ' line:' + e.lineNumber); 78 | } 79 | } 80 | 81 | async function search(wd, quick, pg) { 82 | if (pg <= 0) pg = 1; 83 | const limit = 20; 84 | const param = { 85 | keyboard: wd, 86 | }; 87 | const data = await requestRaw(siteUrl + '/search', 'post', param); 88 | let html = ''; 89 | const headers = data.headers; 90 | if (headers.hasOwnProperty('location')) { 91 | const url = headers['location'] + '?p=' + pg; 92 | html = await request(url); 93 | } 94 | 95 | const $ = load(html); 96 | const elements = $('ul#url'); 97 | const videos = _.map(elements, (item) => { 98 | const element = $(item); 99 | const href = element.find('a.l').attr('href'); 100 | if (!href) return undefined; 101 | const name = element.text().trim(); 102 | const remark = element.find('li.r').attr('data_size'); 103 | console.debug('vod_id:' + href); 104 | return { 105 | vod_id: href, 106 | vod_name: name, 107 | vod_pic: "https://pic.rmb.bdstatic.com/bjh/6a2278365c10139b5b03229c2ecfeea4.jpeg", 108 | vod_remarks: remark, 109 | }; 110 | }); 111 | const nextPage = $('.pages_search .nex:contains(下一页)'); 112 | const hasMore = !_.isEmpty(nextPage); 113 | const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg); 114 | return JSON.stringify({ 115 | page: parseInt(pg), 116 | pagecount: pgCount, 117 | limit: limit, 118 | total: limit * pgCount, 119 | list: videos.filter(item => item !== undefined), 120 | }); 121 | } 122 | 123 | export function __jsEvalReturn() { 124 | return { 125 | init: init, 126 | home: home, 127 | homeVod: homeVod, 128 | category: category, 129 | detail: detail, 130 | play: play, 131 | search: search, 132 | }; 133 | } -------------------------------------------------------------------------------- /猫/zhaozy_open.js: -------------------------------------------------------------------------------- 1 | import { load, _ } from 'assets://js/lib/cat.js'; 2 | import { log } from './lib/utils.js'; 3 | import { initAli, detailContent, playContent } from './lib/ali.js'; 4 | 5 | let siteKey = 'zhaozy'; 6 | let siteType = 0; 7 | let siteUrl = 'https://zhaoziyuan.pw'; 8 | let patternAli = /(https:\/\/www\.(aliyundrive|alipan)\.com\/s\/[^"]+)/; 9 | let patternVid = /(\\S+)/; 10 | let username = ''; 11 | let password = ''; 12 | let cookie = ''; 13 | 14 | const 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'; 15 | 16 | async function requestRaw(reqUrl, headers, method, data) { 17 | let res = await req(reqUrl, { 18 | method: method || 'get', 19 | headers: headers, 20 | data: data, 21 | postType: method === 'post' ? 'form' : '', 22 | }); 23 | return res; 24 | } 25 | 26 | async function request(reqUrl, headers) { 27 | let resRaw = await requestRaw(reqUrl, headers); 28 | return resRaw.content; 29 | } 30 | 31 | // cfg = {skey: siteKey, ext: extend} 32 | async function init(cfg) { 33 | try { 34 | siteKey = _.isEmpty(cfg.skey) ? '' : cfg.skey; 35 | siteType = _.isEmpty(cfg.stype) ? '' : cfg.stype; 36 | const ext = _.isEmpty(cfg.ext) ? '' : cfg.ext; 37 | const configs = ext.split('$$$'); 38 | if (configs.length == 3) { 39 | username = configs[1]; 40 | password = configs[2]; 41 | } 42 | await initAli(configs[0]); 43 | } catch (e) { 44 | await log('init:' + e.message + ' line:' + e.lineNumber); 45 | } 46 | } 47 | 48 | async function home(filter) { 49 | return '{}'; 50 | } 51 | 52 | async function homeVod() {} 53 | 54 | async function category(tid, pg, filter, extend) { 55 | return '{}'; 56 | } 57 | 58 | async function detail(id) { 59 | try { 60 | let matches = id.match(patternAli); 61 | if (!_.isEmpty(matches)) return await detailContent(matches[1]); 62 | const headers = await getHeaders(); 63 | const data = await request(siteUrl + '/' + id, headers); 64 | matches = data.match(patternAli); 65 | if (!_.isEmpty(matches)) return await detailContent(matches[1]); 66 | return ''; 67 | } catch (e) { 68 | await log('detail:' + e.message + ' line:' + e.lineNumber); 69 | } 70 | } 71 | 72 | async function play(flag, id, flags) { 73 | try { 74 | return await playContent(flag, id, flags); 75 | } catch (e) { 76 | await log('play:' + e.message + ' line:' + e.lineNumber); 77 | } 78 | } 79 | 80 | async function search(wd, quick, pg) { 81 | if (pg <= 0) pg = 1; 82 | const limit = 15; 83 | const headers = await getHeaders(); 84 | const html = await request(siteUrl + '/so?filename=' + encodeURIComponent(wd) + '&page=' + pg, headers); 85 | const $ = load(html); 86 | const elements = $('div.li_con div.news_text'); 87 | const videos = _.map(elements, (item) => { 88 | const element = $(item); 89 | const href = element.find('div.news_text a').attr('href'); 90 | if (!href) return undefined; 91 | const matches = href.match(patternVid); 92 | if (!_.isEmpty(matches)) return undefined; 93 | const name = element.find("div.news_text a h3").text(); 94 | const remark = element.find("div.news_text a p").text().split("|")[1].split(":")[1]; 95 | return { 96 | vod_id: href, 97 | vod_name: name, 98 | vod_pic: "https://inews.gtimg.com/newsapp_bt/0/13263837859/1000", 99 | vod_remarks: remark 100 | }; 101 | }); 102 | const nextPage = $('.page a li:contains(下一页)'); 103 | const hasMore = _.isEmpty(nextPage) ? false : nextPage.attr('class') != 'disabled'; 104 | const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg); 105 | return JSON.stringify({ 106 | page: parseInt(pg), 107 | pagecount: pgCount, 108 | limit: limit, 109 | total: limit * pgCount, 110 | list: videos.filter(item => item !== undefined), 111 | }); 112 | } 113 | 114 | async function getHeaders() { 115 | if (!cookie) { 116 | cookie = await getCookie(); 117 | } 118 | return { 119 | 'User-Agent': UA, 120 | 'Referer': siteUrl, 121 | 'Cookie': cookie, 122 | }; 123 | } 124 | 125 | async function getCookie() { 126 | const params = { 127 | "username": username, 128 | "password": password, 129 | }; 130 | const headers = { 131 | "User-Agent": UA, 132 | "Referer": siteUrl + "/stop.html", 133 | "Origin": siteUrl, 134 | }; 135 | const res = await requestRaw(siteUrl + "/logiu.html", headers, 'post', params); 136 | let result = ''; 137 | for (const cookie of res.headers['set-cookie']) { 138 | result += cookie.split(";")[0] + ";"; 139 | } 140 | return result; 141 | } 142 | 143 | export function __jsEvalReturn() { 144 | return { 145 | init: init, 146 | home: home, 147 | homeVod: homeVod, 148 | category: category, 149 | detail: detail, 150 | play: play, 151 | search: search, 152 | }; 153 | } -------------------------------------------------------------------------------- /王二小放牛娃.xyz: -------------------------------------------------------------------------------- 1 | { 2 | "spider": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1720752213419/wex.txt", 3 | "sites": [ 4 | { 5 | "key": "Wexconfig", 6 | "name": "🐮配置┃中心🐮", 7 | "type": 3, 8 | "api": "csp_Wexconfig" 9 | }, 10 | { 11 | "key": "Wexemby", 12 | "name": "🀄️emby┃4K🀄️", 13 | "type": 3, 14 | "api": "csp_Wexemby", 15 | "searchable": 1, 16 | "changeable": 1 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /磁力/tokentemplate.json: -------------------------------------------------------------------------------- 1 | { 2 | "use_internal_storage":false, 3 | "token":"", 4 | "open_token":"", 5 | "open_api_url":"get|https://adrive.xdow.net/oauth/access_token", 6 | "oauth_client_id":"", 7 | "oauth_client_secret":"", 8 | "oauth_auth_url":"", 9 | "oauth_refresh_url":"", 10 | "thread_limit":32, 11 | "is_vip":true, 12 | "vip_thread_limit":32, 13 | "vod_flags":"4kz|auto", 14 | "quark_thread_limit":32, 15 | "quark_is_vip":false, 16 | "quark_vip_thread_limit":32, 17 | "quark_flags":"4kz|auto", 18 | "uc_thread_limit":0, 19 | "uc_is_vip":false, 20 | "uc_vip_thread_limit":0, 21 | "uc_flags":"4kz|auto", 22 | "thunder_thread_limit":2, 23 | "thunder_is_vip":false, 24 | "thunder_vip_thread_limit":2, 25 | "thunder_flags":"4k|4kz|auto", 26 | "aliproxy":"", 27 | "aliproxy_url":"", 28 | "proxy":"", 29 | "danmu":true, 30 | "quark_danmu":true, 31 | "quark_cookie":"", 32 | "uc_cookie":"", 33 | "thunder_username":"", 34 | "thunder_password":"", 35 | "thunder_captchatoken":"", 36 | "yd_auth":"", 37 | "yd_thread_limit":4, 38 | "yd_flags":"auto|4kz", 39 | "yd_danmu":true, 40 | "pikpak_username":"", 41 | "pikpak_password":"", 42 | "pikpak_flags":"4k|auto", 43 | "pikpak_thread_limit":2, 44 | "pikpak_vip_thread_limit":2, 45 | "pikpak_proxy":"", 46 | "pikpak_proxy_onlyapi":false, 47 | "pikpak_danmu":true 48 | } 49 | -------------------------------------------------------------------------------- /磁力/磁力+netflav.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/磁力/磁力+netflav.jar -------------------------------------------------------------------------------- /磁力搜索.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/磁力搜索.jar -------------------------------------------------------------------------------- /韩国🇰🇷综艺.txt: -------------------------------------------------------------------------------- 1 | 韩国综艺,#genre# 2 | 1,https://pixeldrain.com/api/file/5FiysHSH 3 | 2,https://pixeldrain.com/api/file/4eZaoRvt 4 | 3,https://pixeldrain.com/api/file/TRDR9vL7 5 | 4,https://pixeldrain.com/api/file/wi9euaoZ -------------------------------------------------------------------------------- /香雅情.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/香雅情.jar -------------------------------------------------------------------------------- /香雅情本地包.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaolinshao/linshao/cb3e6f20e43a7fa71bece6471907ebb2039b7763/香雅情本地包.zip --------------------------------------------------------------------------------