├── 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+Bl8MAL4HXw0AvghfDgC+CV8PACm/4LPhBOQAAADiv18EACYAAF8FACmkAwEMAQA2Bg0NIRcABswCDmIGAbYDAQABAgQAYwHKAwABAKwDAQiuAwIIsgMECLQDBQjPQeYAAAARZgAADs9B5wAAABFmAQAOz0HoAAAAlwRIAAAAqegOz0HoAAAAEWYCAA7qMM9B6AAAAJcESQAAAKnoIc9B6AAAAEHpAAAAEWYCAA7PQegAAABB2gAAABFmAwAOBi6kAwkIAzo6TjpYU1QOQwYBuAMAAQADAQAWAdQDAQAgsAMDCGEAAAvHYgAABOsAAABxZQAASWIAACikAxQDEg1EDmIGAboDAQEBBAEAHQLSAwABANgDAQAguAMHAGEAADjtAAAAzwvb7EzuAAAA7ovHYgAAQe8AAAAupAMaBBImJhIOYgYBvAMBCgEJBACaAwvgAwABAOIDAQAw5AMBATDmAwICMOgDAgMw6gMCBCDsAwIFIO4DAgYg8AMDByDyAxEHIPQDFQIDsgMECLoDCACqAwAMtAMFCGEBAGEAAGUAAMfcYgAA7YvIbGsBAABhBgBhBQBhBABhAwBhAgA4mAAAAEL7AAAAYgEAJAEAyWICAEEeAAAAyiYAAMEEC8EFC8EGYQcAYgMAfeuwAMEHZQIAQvwAAABlAwAkAQCW6DBlAwBC/QAAAGIHAEH+AAAAJAEAaYcAAABiBgBiBwBB/gAAAHFiBwBB/wAAAEnqbWIHAEEAAQAAOEUAAACq6DZiBwBBAAEAALOq6FFiBABCAQEAAAtiBwBB/wAAAEz/AAAAYgcAQf4AAABM/gAAACQBAA7qKGIEAEIBAQAAC2IHAEH/AAAATP8AAABiBwBB/gAAAEz+AAAAJAEADoAAaU////8Og2UCAEL8AAAAZQMAJAEAluhCYQgAZQMAfeozwQhiBgBiCABHOEUAAACq6CJiBABCAQEAAAtiBgBiCABHTP8AAABiCABM/gAAACQBAA6AAOjLDoM4mAAAAEICAQAAC2IEAEweAAAAYgUATAMBAAAkAQAPLsEJbBcAAAA4BAEAAEIFAQAAwAkkAQAODuoCLwYupAMiICEXJmdYMBwSEj9Ye20NUz/HDcgwWDpOqSI6KysXK1MXDmIGAb4DAAAAAQAABgAEBgEAAC6kA0oBAw5iBgHAAwQFBAcCAPUBCY4EAAEAkAQAAQDgAwABAJIEAAEA4gMBADDkAwEBMOYDAQIwlAQBAyDwAwMEILIDBAi6AwgAYQMAYQIAYQEAYQAA0DhFAAAAqRHpBQ7Qs6ToA7TUZQAABAsBAACdz50EDAEAAJ3QncfcYgAA7YvIOJgAAABC+wAAAGIBACQBAMkmAADKYQQAYgIAQQ0BAAB96kTBBGIDAEIBAQAAC2IEAEEOAQAATA4BAABiBABBDwEAAEwPAQAAYgQAQRABAABMEAEAAGIEAEERAQAATBEBAAAkAQAOgADoug6DOJgAAABCAgEAAAs4EgEAANDtTBMBAABiAgBBFAEAAEwUAQAAOBIBAABiAgBBFQEAAO1MFQEAAGICAEEWAQAATBYBAABiAwBMDQEAACQBAC6kA08UP11nJlgXUzBEREREFyM6P0RiRCsOYgYBwgMBBQEEAwCcAgauBAABAOIDAQAw5AMBATDmAwECMPADAQMwsAQBBCCyAwQIugMIAKoDAAxhBABhAwBhAgBhAQBhAABlAAAEGQEAAJ3PncfcYgAA7YvIOJgAAABC+wAAAGIBACQBAMliAgBBDQEAALNHymUCAEL8AAAAYgMAJAEA6AcEBgEAAC4LYgMAQQ4BAABMDgEAAGIDAEEPAQAATA8BAABiAwBB/gAAAEz+AAAAYgMAQRABAABMEAEAAGIDAEEaAQAATBoBAABiAwBBGwEAAEwbAQAAYgMAQRwBAAAR6QMOv0wcAQAAYgMAQR0BAAAR6QMOv0wdAQAAYgMAQREBAAAR6QMOv0wRAQAAYgMAQR4BAABMHgEAAGIDAEEfAQAATB8BAABiAwBBIAEAAEwgAQAAwQQ4mAAAAEICAQAAC2IEACYBAEwNAQAAJAEALqQDaBhOPyZYOlMcCAhERERERERdXV1EREQOOjoOYgYBxAMDAAMEAAAbA8IEAAEArgQAAQDaAQABADiYAAAAQgIBAAALs0z7AAAA0EzpAAAAJAEALqQDhQEEAzohIQ5iBgHGAwMFAwcCANwBCMQEAAEAxgQAAQCQBAABAOIDAQAw5AMBATDmAwECMJQEAQMgsAQDBDCyAwQIugMIAGEDAGECAGEBAGEAANE4RQAAAKkR6QUO0bOk6AO01WUAAAQkAQAAnc+dBAwBAACd0Z3H3GIAAO2LyDiYAAAAQvsAAABiAQAkAQDJJgAAymEEAGICAEENAQAAfepEwQRiAwBCAQEAAAtiBABBDgEAAEwOAQAAYgQAQQ8BAABMDwEAAGIEAEEQAQAATBABAABiBABBEQEAAEwRAQAAJAEADoAA6LoOgziYAAAAQgIBAAALOBIBAABiAgBBEwEAAO1MEwEAAGICAEEUAQAATBQBAABiAwBMDQEAACQBAC6kA40BEj9dZyZYF1MwRERERBciOmJEKw5DBgGoAwAAAAIHADIAtgMGALwDCQC+AwoAwAMLAMIDDADEAw0AxgMOAAvbTNsAAADcTN4AAADdTN8AAADeTOAAAABeBABM4QAAAF4FAEziAAAAXgYATOMAAAAopAOjAQkDCCEhISErKys=
--------------------------------------------------------------------------------
/猫/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+otLURJzdHJpbmdpZnkOZmlsdGVycwZ0aWQEcGcMZXh0ZW5kCGRhdGEMdmlkZW9zBnZvZApwYXJzZT4vaW5kZXgucGhwL2FqYXgvZGF0YT9taWQ9MSZ0aWQ9DCZwYWdlPRImbGltaXQ9MjAIbGlzdAhwdXNoDHZvZF9pZBB2b2RfbmFtZQ52b2RfcGljFnZvZF9yZW1hcmtzEHBhcnNlSW50CHBhZ2UScGFnZWNvdW50CmxpbWl0CnRvdGFsBGlkCGh0bWwCJBBwbGF5bGlzdDIvaW5kZXgucGhwL3ZvZC9kZXRhaWwvaWQvCi5odG1sEGgxOmZpcnN0CHRleHQIdHJpbT4uc3R1aS1jb250ZW50X19kZXRhaWwgcDpmaXJzdCBhEHZvZF90eXBlSC5zdHVpLWNvbnRlbnRfX2RldGFpbCBwOm50aC1jaGlsZCgzKQ5yZXBsYWNlBztOFG8a/xJ2b2RfYWN0b3I8LnN0dWktY29udGVudF9fdGh1bWIgaW1nOmZpcnN0CGF0dHIaZGF0YS1vcmlnaW5hbEguc3R1aS1jb250ZW50X19kZXRhaWwgcDpudGgtY2hpbGQoNSkmc3Bhbi5kZXRhaWwtY29udGVudBZ2b2RfY29udGVudAZtYXBGZGl2Lmx6bTN1OCA+IGxpID4gYVt0YXJnZXQqPV9ibGFua10Jz5FQW/R2vo8adm9kX3BsYXlfZnJvbQIjGHZvZF9wbGF5X3VybARpdA5hdHRyaWJzCnRpdGxlCGhyZWYIZmxhZwZ1cmwEd2QKcXVpY2syL2FwaS5waHAvcHJvdmlkZS92b2QvP3dkPQgmcGc9FCZhYz1kZXRhaWwPpAMBpgMBABGoAwAEAKoDAAGsAwACrgMAA7ADAA4ABgGgAQAAAAESCVIAqgMADKwDAQyuAwIMsAMDDLIDAAm0AwEJtgMCCbgDAwm6AwQNvAMFAb4DBgHAAwcBwgMIAcQDCQHGAwoByAMLAcoDDAGoAw0BCOgvvgBfCQC+AV8KAL4CXwsAvgNfDAC+BF8NAL4FXw4AvgZfDwC+B18QAL4IXxEAKQTmAAAAXwQABOcAAABfBQC/XwYAs18HAAToAAAAXwgAKaQDAQoB+isrFxgACO4BDmIGAbwDAgECBgIAOwPSAwABANQDAAEA1gMBACC6AwgMtAMFCGEAADjsAAAAzwsEQQAAAEztAAAAC9AR6QUOZQAATO4AAABlAQBM7wAAAEzwAAAA7ovHYgAAQfEAAAAupAMKCBImNQhEKxwSDmIGAb4DAQABAgIAGAHkAwABALYDBgi4AwcIz0HzAAAAEWYAAA7PQfQAAAARZgEADgYupAMWAwM6Og5iBgHAAwECAQ4AJMIHA+oDAAEA7AMBACDuAwEBIGEBAGEAAAu0TPgAAAAE+QAAAEz6AAAAC7VM+AAAAAT7AAAATPoAAAALtkz4AAAABPwAAABM+gAAAAu3TPgAAAAE/QAAAEz6AAAAC7skTPgAAAAE/gAAAEz6AAAAJgUAxwsLBP8AAABM2QAAAAQAAQAATDYAAAALBAEBAABMAgEAAL0ATAMBAAALBAQBAABMAgEAAL0BTAMBAAALBAUBAABMAgEAAL0CTAMBAAALBAYBAABMAgEAAL0DTAMBAAALBAcBAABMAgEAAL0ETAMBAAALBAgBAABMAgEAAL0FTAMBAAALBAkBAABMAgEAAL0GTAMBAAALBAoBAABMAgEAAL0HTAMBAAALBAsBAABMAgEAAL0ITAMBAAALBAwBAABMAgEAAL0JTAMBAAALBA0BAABMAgEAAL0KTAMBAAAmCwBMQAAAACYBAEwCAACACwT/AAAATNkAAAAEAAEAAEw2AAAACwQBAQAATAIBAAC9C0wDAQAACwQOAQAATAIBAAC9DEwDAQAACwQPAQAATAIBAAC9DUwDAQAACwQQAQAATAIBAAC9DkwDAQAACwQRAQAATAIBAAC9D0wDAQAACwQSAQAATAIBAAC9EEwDAQAACwQTAQAATAIBAAC9EUwDAQAACwQUAQAATAIBAAC9EkwDAQAACwQVAQAATAIBAAC9E0wDAQAAJgkATEAAAAAmAQBMAQAAgAsE/wAAAEzZAAAABAABAABMNgAAAAsEAQEAAEwCAQAAvRRMAwEAAAsEFgEAAEwCAQAAvRVMAwEAAAsEFwEAAEwCAQAAvRZMAwEAAAsEGAEAAEwCAQAAvRdMAwEAAAsEGQEAAEwCAQAAvRhMAwEAACYFAExAAAAAJgEATAMAAIALBP8AAABM2QAAAAQAAQAATDYAAAALBAEBAABMAgEAAL0ZTAMBAAALBBoBAABMAgEAAL0aTAMBAAALBBsBAABMAgEAAL0bTAMBAAALBBwBAABMAgEAAL0cTAMBAAALBB0BAABMAgEAAL0dTAMBAAALBB4BAABMAgEAAL0eTAMBAAAmBgBMQAAAACYBAEwEAACACwT/AAAATNkAAAAEAAEAAEw2AAAACwQBAQAATAIBAAC9H0wDAQAACwQfAQAATAIBAAC9IEwDAQAACwQgAQAATAIBAAC9IUwDAQAACwQhAQAATAIBAAC9IkwDAQAACwQiAQAATAIBAAC9I0wDAQAAJgUATEAAAAAmAQBMJAAAgMg4mAAAAEIjAQAAC2IAAEweAAAAYgEATCQBAAAkAQAupAMbGyEAWgIIAOsBAgDHAQIAfwIAkQECAH8CCTorKwcCMgcENDYHBDEzBwQxNQcEMTYHBDE0BwQyMQcEMjIHBDIzBwQyNAcEMjAHAjEHAjYHAjcHAjgHAjkHBDEwBwQxMQcEMTIHBDM1BwIzBwQyNQcEMjYHBDI3BwQyOAcCNAcEMjkHBDMwBwQzMQcEMzIHBDMzBwQzNgcEMzcHBDM4BwQzOQcENDAOYgYBwgMAAAABAAACAAYupAMrAA5iBgHEAwQDBAcCAN8BB8oEAAEAzAQAAQDqAwABAM4EAAEA0AQBACDSBAEBINQEAwIwvAMJALQDBQhhAQBhAADQs6ToA7TUOJgAAABCKwEAANtlAQAELAEAAJ3SQf8AAAAR6QMOz50ELQEAAJ3QnQQuAQAAne2LJAEAxyYAAMhhAgBiAABBLwEAAH3qPMliAQBCMAEAAAtiAgBBMQEAAEwxAQAAYgIAQTIBAABMMgEAAGICAEEzAQAATDMBAAC/TDQBAAAkAQAOgADowg6DOJgAAABCIwEAAAs4NQEAAGIAAEE2AQAA7Uw2AQAAYgAAQTcBAABMNwEAALsUTDgBAABiAABBOQEAAEw5AQAAYgEATC8BAAAkAQAupAMtFCEmADQEF04wREREIRchOmJEJkQrDmIGAcYDAQQBBQQBlAIF9AQAAQD2BAAAAPgEAAEA1AQAAgD6BAEAMLwDCQC0AwUIrAMBDK4DAgxhAwDbZQEABD4BAACdz50EPwEAAJ3ti8dlAgDD7cgLz0wxAQAAxARAAQAA7UJBAQAAJAAAQkIBAAAkAABMMgEAAMQEQwEAAO1CQQEAACQAAExEAQAAxARFAQAA7UJBAQAAJAAAQkYBAAAERwEAAL8kAgBMSAEAAMQESQEAAO1CSgEAAARLAQAAJAEATDMBAADEBEwBAADtQkEBAAAkAAAR6QMOv0w0AQAAxARNAQAA7UJBAQAAJAAAQkIBAAAkAABMTgEAAMllAwBCTwEAAMQEUAEAAO2+ACQCAMrFBFEBAABDUgEAAMViAwBCWwAAAARTAQAAJAEAQ1QBAAA4mAAAAEIjAQAAC8UmAQBMLwEAACQBAC6kA0MSEmwhCCGPZ62AgI8ITyE6cTowDkIGAQABAAECAAAeAaoFAAEAz0FWAQAAQVcBAAAEPAEAAJ3PQVYBAABBWAEAAJ0opANPAQMOYgYByAMDAAMEAAAbA7IFAAEA9AQAAQDaAQABADiYAAAAQiMBAAALs0wrAQAA0ExaAQAAJAEALqQDWAQDOiEhDmIGAcoDAwMDBwIA1QEGtgUAAQC4BQABAMwEAAEA0AQBACDSBAEBINQEAwIwvAMJALQDBQhhAQBhAADRs6ToA7TVOJgAAABCKwEAANtlAQAEXQEAAJ3PnQReAQAAndGdBF8BAACd7YskAQDHJgAAyGECAGIAAEEvAQAAfeo8yWIBAEIwAQAAC2ICAEExAQAATDEBAABiAgBBMgEAAEwyAQAAYgIAQTMBAABMMwEAAL9MNAEAACQBAA6AAOjCDoM4mAAAAEIjAQAACzg1AQAAYgAAQTYBAADtTDYBAABiAABBNwEAAEw3AQAAuxRMOAEAAGIAAEE5AQAATDkBAABiAQBMLwEAACQBAC6kA18SISbWF04wREREIRchOmJEJkQrDkMGAagDAAAAAgcAMgC+AwoAwAMLAMIDDADEAw0AxgMOAMgDDwDKAxAAC9tM3wAAANxM4AAAAN1M4QAAAN5M4gAAAF4EAEzjAAAAXgUATOQAAABeBgBM5QAAACikA3UJAwghISEhKysr
--------------------------------------------------------------------------------
/猫/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 | //bbQ0FUT1CoARh2c2RqX29wZW4uanMYLi9saWIvY2F0LmpzHF9fanNFdmFsUmV0dXJuDENyeXB0bwhsb2FkAl8MamluamEyBmtleQZ1cmwOc2l0ZUtleRBzaXRlVHlwZQRVQQ5yZXF1ZXN0CGluaXQIaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFpbAhwbGF5DHNlYXJjaAh2c2RqMmh0dHBzOi8vd3d3Lnl0c2hlbmdkZS5jb22WAk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTNfMl8zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xMy4wLjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEMcmVxVXJsDmFnZW50U3AGcmVzBnJlcQxtZXRob2QUVXNlci1BZ2VudA5SZWZlcmVyDmhlYWRlcnMOY29udGVudAZjZmcIc2tleQpzdHlwZQxmaWx0ZXIOY2xhc3NlcxJmaWx0ZXJPYmoOdHlwZV9pZAXtd2dSEnR5cGVfbmFtZQxsZXR0ZXIFV1vNawVoUeiQAm4CdgJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloEYnkFkmOPXgX2ZfSVCHRpbWUFuk4UbAhoaXRzBcSLBlIKc2NvcmUSc3RyaW5naWZ5DmZpbHRlcnMGdGlkBHBnDGV4dGVuZAhsaW5rCGh0bWwCJAppdGVtcwx2aWRlb3MOaGFzTW9yZQ5wZ0NvdW50Ei9zYW55aXN3LwQtLQYtLS0KLmh0bWwodWwubXl1aS12b2RsaXN0ID4gbGkGbWFwR3UAbAAuAG0AeQB1AGkALQBwAGEAZwBlACAAPgAgAGwAaQAgAD4AIABhADoAYwBvAG4AdABhAGkAbgBzACgAC04ATnWYKQAQcGFyc2VJbnQIcGFnZRJwYWdlY291bnQKbGltaXQKdG90YWwIbGlzdAhpdGVtBGl0DnJlbWFya3MIZmluZA5hOmZpcnN0MHNwYW4ucGljLXRleHQgdGV4dC1yaWdodAh0ZXh0CHRyaW0OYXR0cmlicwhocmVmDnJlcGxhY2UEJDEMdm9kX2lkCnRpdGxl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
--------------------------------------------------------------------------------
/猫/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
--------------------------------------------------------------------------------
]