From 24c5d09b0e09f89c1c11f602384e85298cfa8e1b Mon Sep 17 00:00:00 2001 From: king Date: Sun, 10 Aug 2025 10:48:19 +0800 Subject: [PATCH] update Spotify --- Loon/plugin/blockAds.plugin | 16 +- QuantumultX/rewrite/rewrite.snippet | 12 +- Scripts/bilibili/bilibiliShare.cookie.js | 41 ---- Scripts/bilibili/bilibiliShare.js | 37 ---- Scripts/bilibili/json.js | 210 -------------------- Scripts/bilibili/protoA.js | 3 - Scripts/bilibili/protoC.js | 3 - Surge/module/blockAds.module | 10 +- boxjs/fmz200_boxjs.json | 233 +---------------------- 9 files changed, 18 insertions(+), 547 deletions(-) delete mode 100644 Scripts/bilibili/bilibiliShare.cookie.js delete mode 100644 Scripts/bilibili/bilibiliShare.js delete mode 100644 Scripts/bilibili/json.js delete mode 100644 Scripts/bilibili/protoA.js delete mode 100644 Scripts/bilibili/protoC.js diff --git a/Loon/plugin/blockAds.plugin b/Loon/plugin/blockAds.plugin index 338ea11c..edd54dde 100644 --- a/Loon/plugin/blockAds.plugin +++ b/Loon/plugin/blockAds.plugin @@ -11,7 +11,7 @@ #!system=iOS, iPadOS #!system_version = #!loon_version = -#!date=2025-08-02 15:47:00 +#!date=2025-08-10 10:37:00 #!remark=下方的所有规则都标注了对应的hostname,可能存在错误或者遗漏,欢迎反馈。对于无法/可选MITM的hostname都特别做了“如开启可自行添加主机名”提示,如果提示后面没有标注主机名则包含所有主机名,否则只包含提示语后面的主机名。 ############################################# # "reject" 策略返回 HTTP 状态码 404,不附带任何额外内容 @@ -89,7 +89,7 @@ quda_enable = switch,true,false,tag=去哒-脚本开关 reddit_enable = switch,true,false,tag=Reddit-脚本开关 rfrfuipk_enable = switch,true,false,tag=人人视频-脚本开关 -# Spotify +# > Spotify tab=switch, true, tag=Spotify-移除底栏创建按钮, desc=此开关控制是否移除底栏创建按钮 useractivity=switch, true, tag=Spotify-启用Apple设备接力, desc=此开关控制是否使用Apple设备接力 @@ -384,10 +384,6 @@ DOMAIN-KEYWORD, asiad.byteactivity, REJECT # >>>>>>>>>>>>>>> ✅ S ✅ <<<<<<<<<<<<<< -# > Spotify -AND, ((DOMAIN, spclient.wg.spotify.com), (PROTOCOL, QUIC)), REJECT -AND, ((DOMAIN, gae2-spclient.spotify.com), (PROTOCOL, QUIC)), REJECT -AND, ((DOMAIN, guc3-spclient.spotify.com), (PROTOCOL, QUIC)), REJECT @@ -2366,8 +2362,8 @@ https://api.rr.tv/storage/business/rootName/app/homePage\?dataType=JSON reject-d # >>>>>>>>>>>>>>> ✅ S ✅ <<<<<<<<<<<<<< # > Spotify # hostname = gae2-spclient.spotify.com, guc3-spclient.spotify.com, spclient.wg.spotify.com -^https?:\/\/(?:gae2-spclient|guc3-spclient|spclient\.wg)\.spotify\.com(?::443)?\/pendragon\/ reject-dict -^https?:\/\/(gae2-spclient|guc3-spclient|spclient\.wg)\.spotify\.com(?::443)?\/artistview\/v1\/artist\/(.*)&platform=iphone header https://$1.spotify.com/artistview/v1/artist/$2&platform=ipad +^https:\/\/(?:\w+-spclient|spclient\.wg)\.spotify\.com(?::443)?\/pendragon\/ reject-dict +^https:\/\/(?:\w+-spclient|spclient\.wg)\.spotify\.com(?::443)?\/artistview\/v1\/artist\/(.*)&platform=iphone header https://$1.spotify.com/artistview/v1/artist/$2&platform=ipad # > Soul # hostname = 47.110.187.87, ssp.soulapp.cn, chat-live.soulapp.cn, api-chat.soulapp.cn, api-account.soulapp.cn, api-global.soulapp.me, api-a.soulapp.cn, api-pay.soulapp.cn, gateway-mobile-gray.soulapp.cn, post.soulapp.cn, api-user.soulapp.cn @@ -4270,7 +4266,7 @@ http-response https://api.rr.tv/user/profile script-path=https://raw.githubuserc # >>>>>>>>>>>>>>> ✅ S ✅ <<<<<<<<<<<<<< # > Spotify -http-response ^https?:\/\/(?:gae2-spclient|guc3-spclient|spclient\.wg)\.spotify\.com(?::443)?\/(?:bootstrap|user-customization-service) script-path=https://raw.githubusercontent.com/001ProMax/Surge/refs/heads/main/Script/Spotify.Crack.Dev.js, requires-body=true, binary-body-mode=true, timeout=3, argument=[{tab},{useractivity}], tag=Spotify去广告 +http-response ^https:\/\/(?:\w+-spclient|spclient\.wg)\.spotify\.com(?::443)?\/(?:bootstrap|user-customization-service) script-path=https://raw.githubusercontent.com/001ProMax/Surge/refs/heads/main/Script/Spotify.Crack.Dev.js, requires-body=true, binary-body-mode=true, timeout=3, argument=[{tab},{useractivity}], tag=Protobuf # > Soul # 替换信息收集 @@ -4481,5 +4477,5 @@ http-response ^https?:\/\/zgrb\.epicc\.com\.cn\/G-HAPP\/mpageconfig\/myPageConfi # MITM:中间人攻击,解密/跳过相关域名的内容,"-"开头为跳过 # ===================================== [MITM] -hostname = *.gamersky.com, apis.folidaymall.com, emisdatacenteraws.hafoo.com, spamblocker-api.zeekstudio.com, marketing.cmschina.com, www.tailgdd.com, x.seeyouyima.com, axxd.xmseeyouyima.com, config-service.seeyouyima.com, gw3.ykccn.com, webapi.qmai.cn, miniapp.qmai.cn, ads.ysepay.com, mobile-consumer-sapp.chery.cn, order-app-api.lbdj.com, plt.yorentown.com, lawsonapi.yorentown.com, ecloud.tppension.cntaiping.com, cache.bydauto.com.cn, app-v1.ecoliving168.com, api.51credit.com, patient-api.suh.cn, userpms-api.suh.cn, se-api.djiits.com, dudian-oss.oss-cn-shenzhen.aliyuncs.com, imagepc.ctaiot.com, a.line.me, ad.line-scdn.net, buy.line.me, cix.line-apps.com, crs-event.line.me, d.line-scdn.net, gw.line.naver.jp, legy.line-apps.com, nelo2-col.linecorp.com, obs.line-scdn.net, scdn.line-apps.com, sch.line.me, static.line-scdn.net, uts-front.line-apps.com, w.line.me, vue3-api.zhixiny.cn, mbank5.jsbchina.cn, mobileapi.xiamenair.com, appapi.caiyicloud.com, res1.hubcloud.com.cn, vapp.tmuyun.com, api2.yaduo.com, api.gongkaoleida.com, magev6.if.qidian.com, syh.zybang.com, www.zybang.com, pzoap.moedot.net, app.api.d3yuiw4.com, app-izz.zhengzhou.gov.cn, creditcard.bankcomm.com, *.byteimg.com.*, www.cntv.cn, *.townmalls.cn, chat-live.soulapp.cn, api.flydigi.com, www.ymm56.com, app.ceair.com, mcsp.cloudpnr.com, saas-ad.cloudpnr.com, g.alicdn.com, api.huachenjie.com, open.e.kuaishou.cn, ad.shunchangzhixing.com, img01.51jobcdn.com, appapi.51job*.com, cupid.51job*.com, api5.youonbike.com, mgesq.api.mgtv.com, *.hitv.com, qiye.gaoding.com, gw.chuangkit.com, zlsdk.1rtb.net, web2.realtech-inc.com, sdk.1rtb.net, gw.xiaocantech.com, delivery-api.imdada.cn, adservice.sigmob.cn, api.u51.com, gateway.36kr.com, xxyx-client-api.xiaoxiaoyouxuan.com, statistic.live.126.net, zgrb.epicc.com.cn, ecssmobile.e-chinalife.com, compus.xiaofubao.com, imgx.jampp.com, ad.life.360.cn, wanciwangdata.oss-cn-beijing.aliyuncs.com, recite.perfectlingo.com, ggc.miguvideo.com, public-deliver9.miguvideo.com, display*-sc.miguvideo.com, recommend-dy.miguvideo.com, app-sc.miguvideo.com, common-sc.miguvideo.com, ggx*.miguvideo.com, ggic*.miguvideo.com, b-api.ins.miaopai.com, social.blued.cn, api.petkit.cn, ams-cdn.cdtft.cn, e.weather.com.cn, beehiveapi.58.com, apio.zhengqi100.com, res.hongyibo.com.cn, misc-api-prd-mx.wandafilm.com, e-static.aia.com.cn, api.sogaha.cn, api-miprint.hannto.com, api.indeedpower.com, alt-r.my.com, m.pvp.xoyo.com, *.pipix.com, daijia.kuaidadi.com, as.xiaojukeji.com, preprod.cdzghome.com, api.xbxxhz.com, sfo.mddcloud.com.cn, mob.mddcloud.com.cn, toblog.ctobsnssdk.com, t-dsp.pinduoduo.com, mobads-pre-config.cdn.bcebos.com, sdk1xyajs.data.kuiniuca.com, conf-darwin.xycdn.com, *.ubixioe.com, www.xiaoxiongmeishu.com, gateway.benewtech.cn, ntt-app.benewtech.cn, api-access.pangolin-sdk-toutiao-b.com, api-access.pangolin-sdk-toutiao.com, api-access.pangolin-sdk-toutiao1.com, dsp-x.jd.com, api-cfg.wtzw.com, p1-lm.adukwai.com, bk.bingo.qq.com, maicai.api.ddxq.mobi, gw.api.ddxq.mobi, user.api.ddxq.mobi, c.zhangle.com, midc.cdn-static.abchina.com.cn, enjoy.cdn-static.abchina.com, ocrifs.ejoy.sinopec.com, apicloud.zol.com, minipro.95504.net, service.haiersmarthomes.com, gugongmini.dpm.org.cn, wechat.tf.cn, chl.tf.cn, mbasecc.bas.cmbchina.com, mbasecc.bcs.cmbchina.com, intellicc.bas.cmbchina.com, bohe.sfo-tx-shanghai-01.saas.sensorsdata.cn, api.boohee.com, lego.boohee.com, status.boohee.com, cdn.133.cn, acs.youku.com, push.m.youku.com, un-acs.youku.com, gw.alicdn.com, tiku.fenbi.com, napi.ithome.com, www.1314zhilv.com, mobile.flightradar24.com, api.17kjs.com, interface.aomiapp.com, oxadmin.cp.com.cn, home.umetrip.com, discardrp.umetrip.com, startup.umetrip.com, dictvip-business.youdao.com, dict.youdao.com, api-overmind.youdao.com, cdke.youdao.com, live.inst-service.htsc.com, gql.reddit.com, gql-fed.reddit.com, imcs.citicbank.com, mkt-gateway.tuhu.cn, tianqi.2345.com, shcss.suning.com, oneapp-api.faw-vw.com, lens.leoao.com, www.binance.info, www.yingwangtech.net, www.binance.com, api.hengdianfilm.com, ump.sz.creditcard.ecitic.com, tbgapplet.carlsberg.asia, mbmodule-openapi.paas.cmbchina.com, api.zhihu.com, appcloud2.zhihu.com, m-cloud.zhihu.com, www.zhihu.com, zhuanlan.zhihu.com, link.zhihu.com, open-cms-api.quark.cn, vv.video.qq.com, evs.500.com, dq.dxy.cn, m.you.163.com, open-cms-api.uc.cn, *.yuxueyuan.cn, pan-api.bitqiu.com, iapi.bishijie.com, run.api.qyfxgd.cn, gongdu.youshu.cc, api.21ec74.com, ztoread.ziroom.com, iphone.ac.qq.com, api.00bang.cn, app.hbooker.com, api.sfacg.com, api3.cls.cn, gateway-api.dushu365.com, external.fcbox.com, dsp.fcbox.com, bdsp-x.jd.com, app.homeinns.com, pic.edaijia.cn, cdn-evone-ceph.echargenet.com, mlol.qt.qq.com, gg.caixin.com, cn-acs.m.cainiao.com, zjdr666.com, adapi.izuiyou.com, access.mypikpak.com, open.fitdays.cn, ap.dongdianqiu.com, 103.91.210.141, js-ad.ayximgs.com, pipi.4kya.com, tft-app.cdtft.cn, t1.market.xiaomi.com, b.appsimg.com, ios.sspai.com, zconfig.alibabausercontent.com, easyreadfs.nosdn.127.net, sp.kaola.com, mapi.dangdang.com, client.qunar.com, slapi.oray.net, api.internetofcity.cn, lcen.xiaote.net, venus.yhd.com, api.shenyin.name, mage*.if.qidian.com, e.dangdang.com, adproxy.autohome.com.cn, explorer.tratao.com, overseas.weico.cc, 118.178.214.118, client.mail.163.com, api.psy-1.com, cdn.*.chelaileapp.cn, *.laichon.com, api-ad-product.huxiu.com, jad-api.jin10.com, appactive.1234567.com.cn, service.busi.inke.cn, dispatcher.camera360.com, 47.110.187.87, ssp.soulapp.cn, api-account.soulapp.cn, api-global.soulapp.me, api-a.soulapp.cn, api-pay.soulapp.cn, gateway-mobile-gray.soulapp.cn, api-chat.soulapp.cn, post.soulapp.cn, api-user.soulapp.cn, beta-api.crunchyroll.com, helper.2bulu.com, tagit.hyhuo.com, top-widgets-api.xiaozujian.com, truthsocial.com, *mangaapi.manhuaren.*, apis.lifeweek.com.cn, yanxuan.nosdn.127.net, *.peopleapp.com, new-app-api.ylyk.com, *.58cdn.com.cn, creditcardapp.bankcomm.com, lchttpapi.xczim.com, *.chelaile.net.cn, api.xiaoyi.com, api.douban.com, sso.ifanr.com, s3plus.meituan.net, cdb.meituan.com, *.hoopchina.com, goblin.hupu.com, gmp.lakala.com, wallet.lakala.com, hz.yxzq.com, api.winbull8.com, editor.sm.cn, p0.pipi.cn, 182.92.244.70, ad.myfriday.cn, ios-api.lucklyworld.com, www.onstar.com.cn, facade-api.black-unique.com, cstore-en-public-tx.seewo.com, oneapph5.dongfeng-nissan.com.cn, cds.wifi188.com, homefront.qunar.com, sh-gateway.shihuo.cn, cgbank.oss-cn-shenzhen.aliyuncs.com, imeres.baidu.com, api.taptapdada.com, a.sinopecsales.com, api.nj.nbtv.cn, v3.wufazhuce.com, ma-adx.ctrip.com, yun.tuitiger.com, www.pushplus.plus, ad.mcloud.139.com, fastbuyer.zbj.com, xhtz.oss-cn-guangzhou.aliyuncs.com, promote-trx.helipay.com, hfapp-service.qweather.net, api.ulife.group, api.sodalife.xyz, app.chinahxzq.com.cn, hdgateway.zto.com, mobile-api.imlaidian.com, wxs-weixin.sd.zhumanggroup.com, s.jiediankeji.com, smarket.dian.so, file.dian.so, aag.enmonster.com, hd.xiaojukeji.com, freight.xiaojukeji.com, capis*.didapinche.com, ad.xiaotucc.com, mapi.xiaotucc.com, adsoss.zhinengxiyifang.cn, api-marketing.zhinengxiyifang.cn, ads.zhinengxiyifang.cn, app.missevan.com, bd-api.kuwo.cn, h5app.kuwo.cn, bodianimgcdn.kuwo.cn, mgxhtj.kuwo.cn, nmobi.kuwo.cn, searchrecterm.kuwo.cn, audiobookpay.kuwo.cn, musicpay.kuwo.cn, vip1.kuwo.cn, pacdn.m.stock.pingan.com, manga.bilibili.com, bid.adview.cn, zua.zhidiantianxia.cn, app.10086.cn, mrp.mcloud.139.com, *.i18n-pglstatp.com, api.wmpvp.com, m.prod.app.hsbcfts.com.cn, p*.pstatp.com, mapi.txcmapp.com, api-one-wscn.awtmt.com, fintechappdr.cgws.com, m.qianbao.qq.com, j1.pupuapi.com, 54.222.159.138, ad.lofter.com, images.pinduoduo.com, lofter.lf127.net, client.tujia.com, www.gcores.com, app02.vgtime.com, www.vgtime.com, app.meruki.cn, qimg.cdnmama.com, ecapi.lkcoffee.com, capi.lkcoffee.com, m.lkcoffee.com, gsp.gacmotor.com, appdmkj.5idream.net, api.shanghaionstar.com, szdmobile.suzhou.gov.cn, api.bwton.com, z.onewo.com, plough.babytree.com, mapiweb.babytree.com, go.babytree.com, aimg.babytreeimg.com, *.ly.com, *.17usoft.com, *.17u.cn, mobilehotelapi.elong.com, quic-tcmapi.elong.com, blog.nilbt.com, www.banyuetanapp.com, ecard.shenzhentong.com, ccmsupport-sz.tenpay.com, dl.app.gtja.com, fuwu.nhsa.gov.cn, api?.sparke.cn, cube.elemecdn.com, nr-op.elemecdn.com, info.mina.xiaoaisound.com, marketing-aibox.v.mitvos.com, home.mi.com, tk.lanjiyin.com.cn, poplayer.template.alibaba.com, acs.m.taobao.com, amdc.m.taobao.com, guide-acs.m.taobao.com, api.alipan.com, member.alipan.com, acs-m.freshippo.com, mcs-mimp-web.sf-express.com, ucmp.sf-express.com, api.ncarzone.com, api.caiyunapp.com, wrapper.cyapi.cn, mres.aibank.com, direct.z-bank.com, mobile.1qianbao.com, middle.yun.139.com, mcmm.caiyun.feixin.10086.cn, cdn-oss.00bang.cn, mapi.sichuanair.com, b2baifanfan.baidu.com, app.badmintoncn.com, app.bilibili.com, api.bilibili.com, api.live.bilibili.com, grpc.biliapi.net, line3-h5-mobile-api.biligame.com, portal.zjzwfw.gov.cn, shopapi.io.mi.com, www.ahzs10000.com, quanguo.mygolbs.com, open.taou.com, h3.open.taou.com, sichuan.95504.net, app.10099.com.cn, sdk.alibaba.com.ailbaba.me, mrobot.pconline.com.cn, api.gameplus.qq.com, cdn.sdb.com.cn, creditcardapp.bankcomm.cn, router-app-api.jdcloud.com, api.yonghuivip.com, www.haixue.com, cdn.jlbank.com.cn, 3g.csair.com, gha.ghac.cn, webappcfg.paas.cmbchina.com, *.qyfxgd.cn, *.weilai555.com, *.ecoliving168.com, vip7.fzwdyy.cn, wcprd.hilton.com.cn, adx-cn.anythinktech.com, www.didapinche.com, client-api-v2.oray.com, sdk.alibaba.com, bgw.xinyue.qq.com, api.tipsoon.com, imeclient.openspeech.cn, m.360buyimg.com, business-cdn.shouji.sogou.com, ios.sogou.com, android.sogou.com, h5api.sginput.qq.com, m*.amap.com, optimus-ads.amap.com, pv.elife.icbc.com.cn, mangaapi.manhuaren.com, news.ssp.qq.com, ccsp-egmas.sf-express.com, zhidao.baidu.com, api.vistopia.com.cn, bp-api.bestv.com.cn, xyst.yuanfudao.com, mapi.appvipshop.com, guanyu.longfor.com, mp.weixin.qq.com, *.kingsoft-office-service.com, ptmpcap.caocaokeji.cn, pcauto.com.cn, mps.95508.com, i-lq.snssdk.com.*, img0*.luckincoffeecdn.com, app.zhoudamozi.com, apple.fuliapps.com, gurd.snssdk.com.*, peisongapi.meituan.com, cdn.cmgadx.com, api.gamer.com.tw, impservice.dictapp.youdao.com, api.gaoqingdianshi.com, cdn.dianshihome.com, *.kakamobi.cn, 47.100.65.202, youtubei.googleapis.com, app.wy.guahao.com, mapi.sfbest.com, *.xiangxiangapps.com, cmsfile.wifi8.com, prom.mobile.gome.com.cn, nnapp.cloudbae.cn, api.21jingji.com, a.qiumibao.com, jdread-api.jd.com, open.qyer.com, app-api.niu.com, us.l.qq.com, qde.qunar.com, res.pizzahut.com.cn, book.img.ireader.com, aes.acfun.cn, api-new.app.acfun.cn, images.cib.com.cn, jiucaigongshe.oss-cn-beijing.aliyuncs.com, mage.if.qidian.com, app.aa-ab.com, zone.guiderank-app.com, richmanrules.ksedt.com, richmanapi.jxedt.com, geetest.htsc.com, 119.29.29.*, api.m.mi.com, awg.enmonster.com, api.haohaozhu.cn, du.hupucdn.com, apps.api.ke.com, api.ycapp.yiche.com, omgup*.xiaojukeji.com, issuecdn.baidupcs.com, gab.122.gov.cn, www.oschina.net, m.ibuscloud.com, app.api.versa-ai.com, app-conf.ds.163.com, image*.benlailife.com, djcapp.game.qq.com, static.xyzq.cn, iobs.pingan.com.cn, app3.qdaily.com, api.mcd.cn, api.mgzf.com, open.e.kuaishou.com, osg-static.sgcc.com.cn, osg-service.sgcc.com.cn, app.dewu.com, cdn.poizon.com, supportda.ofo.com, r6.mo.baidu.com, res.mi.baidu.com, mbd.baidu.com, capi.mwee.cn, m.client.10010.com, m1.ad.10010.com, res.mall.10010.cn, app.yinxiang.com, img.meituan.net, baidu.com, *-release.wuta-cam.com, cdnmobibank.bankofbeijing.com.cn, mapi.mafengwo.cn, mada-travel.17u.cn, ebk.17u.cn, api.izuiyou.com, appconf.mail.163.com, api.dangdang.com, cmsapi.wifi8.com, daoyu.sdo.com, gw.aihuishou.com, bp-api.bestv.com.cn, bp-image.bestv.com.cn, portal-portm.meituan.com, mall.meituan.com, api.xiaoyuzhoufm.com, cdn-xyk-app.bankofbeijing.com.cn, thor.weidian.com, open3.vistastory.com, i.ys7.com, www.xiaohongshu.com, edith.xiaohongshu.com, ci.xiaohongshu.com, rec.xiaohongshu.com, so.xiaohongshu.com, api.caijingmobile.com, j5.dfcfw.com, capi.douyucdn.cn, icc.one, api.coolapk.com, ios.xiangjiaoapps.com, img.wukongtv.com, service.4gtv.tv, static.api.m.panda.tv, api-mifit*.huami.com, channel.beitaichufang.com, static.95508.com, wap.bank.ecitic.com, file.cibfintech.com, api*.futunn.com, mob.mddcloud.com, i.snssdk.com.*, images.client.vip.xunlei.com, api-shoulei-ssl.xunlei.com, elemecdn.com, l*.51fanli.net, app.zhuanzhuan.com, *.bdstatic.com, rs.creditcard.cmbc.com.cn, ocean.shuqireader.com, api.fengshows.com, api.touker.com, app.variflight.com, sofire.baidu.com, www.cmbc.com.cn, img01.10101111cdn.com, r.inews.qq.com, afd.baidu.com, appwk.baidu.com, ios.lantouzi.com, mpcs.suning.com, m.tuniu.com, api.jxedt.com, dns.jd.com, api.m.jd.com, m.jd.com, *.k.sohu.com, www.nfmovies.com, static01.versa-ai.com, gfp.veta.naver.com, mpos-pic.helipay.com, api.yikaobang.com.cn, god.gameyw.netease.com, image.spdbccc.com.cn, fbchina.flipchina.cn, media.qyer.com, webcast-open.douyin.com, beta-luna.douyin.com, ether-pack.pangolin-sdk-toutiao.com, api-access.pangolin-sdk-toutiao?.com, sf*-fe-tos.pglstatp-toutiao.com, restapi.iyunmai.com, static.shihuocdn.cn, weixin110.qq.com, appapi.huazhu.com, hweb-hotel.huazhu.com, hweb-manager.huazhu.com, lban.spdb.com.cn, wap.spdb.com, smart.789.image.mucang.cn, btrace.qq.com, img.dailmo.com, app.95598pay.com, reading-hl.snssdk.com, adproxy.autohome.com, ma.ofo.com, dl*.app.gtja.com, activity2.api.ofo.com, luckman.suning.com, app.xinpianchang.com, static.gameplus.qq.com, portal-xunyou.qingcdn.com, notch.qdaily.com, pan.baidu.com, tiebac.baidu.com, *.tieba.baidu.com, snailsleep.net, gslbali.ximalaya.com, search.ximalaya.com, searchwsa.ximalaya.com, mobile.ximalaya.com, mobilehera.ximalaya.com, mobwsa.ximalaya.com, m.ximalaya.com, mwsa.ximalaya.com, api.laifeng.com, fuss10.elemecdn.com, smkmp.96225.com, static.creditcard.hxb.com.cn, sf3-be-pack.pglstatp-toutiao.com, ossgw.alicdn.com, *.mgtv.com, oral.youdao.com, p.kuaidi100.com, video-dsp.pddpic.com, mlife.jf365.boc.cn, heic.alicdn.com, acs.m.goofish.com, g-acs.m.goofish.com, dinamicx.alibabausercontent.com, www.tsytv.com, app2.autoimg.cn, www.iyingdi.cn, m.baidu.com, webboot.zhangyue.com, api4.bybutter.com, security.wechat.com, api.xiachufang.com, 4gimg.map.qq.com, p.du.163.com, support.you.163.com, apiwz.midukanshu.com, tc.qq.com, img.admobile.top, api.pinduoduo.com, cheyouapi.ycapp.yiche.com, api.kkmh.com, ad.ysepay.com, ports3.gtimg.com, i*.hdslb.com, m.yap.yahoo.com, webcdn.m.qq.com, rtbapi.douyucdn.cn, dapis.mting.info, qidian.qpic.cn, games.mobileapi.hupu.com, emdcadvertise.eastmoney.com, mime.baidu.com, api.club.lenovo.cn, img.allahall.com, staticsns.cdn.bcebos.com, api.wfdata.club, dsa-mfp.fengshows.cn, flowplus.meituan.net, ssp.dzh.com.cn, adm.10jqka.com.cn, stat.10jqka.com.cn, api.xueqiu.com, open.xueqiu.com, stock.xueqiu.com, 39.103.79.14, 39.106.97.84, 47.95.49.75, 101.201.62.20, 101.201.62.26, 101.201.175.228, 124.250.48.3, 182.92.145.50, 182.92.251.113, ios.fuliapps.com, pt-starimg.didistatic.com, *.pipiapps.com, adstatic.peopleapp.com, otheve.beacon.qq.com, ptf.flyertrip.com, api.qbb6.com, res.xiaojukeji.com, conf.diditaxi.com.cn, yunbusiness.ccb.com, img.alicdn.com, capis.didapinche.com, ms.jr.jd.com, m.creditcard.ecitic.com, img.gdoil.cn, api.hanju.koudaibaobao.com, api.jr.mi.com, upload-bbs.mihoyo.com, gw-passenger.01zhuanche.com, img.yun.01zhuanche, ndstatic.cdn.bcebos.com, fc-video.cdn.bcebos.com, rp.hpplay.cn, dyncdn.me, pss.txffp.com, dxy.com, staticlive.douyucdn.cn, edit.sinaapp.com, www1.elecfans.com, *.googlevideo.com, pocketuni.net, j-image.missfresh.cn, cms.daydaycook.com, api.cloud.189.cn, mobile.cebbank.com, yghsh.cebbank.com, y.gtimg.cn, music.y.qq.com, dss0.bdstatic.com, tb1.bdstatic.com, tb2.bdstatic.com, ss0.bdstatic.com, gss0.bdstatic.com, newclient.map.baidu.com, ossweb-img.qq.com, mea.meitudata.com, adui.tg.meitu.com, list-app-m.i4.cn, api.daydaycook.com, learn.chaoxing.com, ipv4.music.163.com, interface9.music.163.com, interface.music.163.com, interface3.music.163.com, res.kfc.com.cn, gw.kaola.com, api.huomao.com, mi.gdt.qq.com, fmapp.chinafamilymart.com.cn, app-gw.csdn.net, gw.csdn.net, app.58.com, cap.caocaokeji.cn, live-ads.huya.com, cdn.wup.huya.com, cdnfile1.msstatic.com, business.msstatic.com, ct.xiaojukeji.com, homepage-api.smzdm.com, haojia-api.smzdm.com, app-api.smzdm.com, user-api.smzdm.com, article-api.smzdm.com, qianbao.smzdm.com, s-api.smzdm.com, haojia.m.smzdm.com, adpai.thepaper.cn, www.baidu.com, *.tv.sohu.com, ih2.ireader.com, common.diditaxi.com.cn, display.wting.info, kano.guahao.cn, i-lq.snssdk.com, cloud.189.cn, ad.12306.cn, dl-cu-hz.lechange.cn, gae2-spclient.spotify.com, guc3-spclient.spotify.com, spclient.wg.spotify.com, dsp-impr2.youdao.com, api.rr.tv, *.pglstatp-toutiao.com, mobile.yangkeduo.com, api.yangkeduo.com, xyz.cnki.net, api.bjxkhc.com, d.psbc.com, fm.fenqile.com, client.app.coc.10086.cn, img.ddrk.me, ddrk.me, img.jiemian.com, message.shuqireader.com, ut2.shuqistat.com, dsp.toutiao.com, sq.sljkj.com, img-tailor.11222.cn, feedback.uc.cn, *.shuqireader.com, 101.91.69.26, gateway.shouqiev.com, api.gotokeep.com, kad.gotokeep.com, static1.keepcdn.com, mbank.grcbank.com, -i.vip.iqiyi.com, *.iqiyi.com, api-sams.walmartmobile.cn, api.htp.ad-scope.com.cn, appgw.ddpai.com, init.sms.mob.com, www.flyert.com, hcz-member.pingan.com.cn, jp.rsscc.com, jt.rsscc.com, appapi.51job*.com, cupid.51job*.com, api-ac.liepin.com, api-wanda.liepin.com, intellicc.bcs.cmbchina.com, api-cslp-emt.amazon.cn, m.airchina.com.cn, apphw.ddpai.com, waimai-guide.ele.me, 39.98.135.211 +hostname = *.gamersky.com, apis.folidaymall.com, emisdatacenteraws.hafoo.com, spamblocker-api.zeekstudio.com, marketing.cmschina.com, www.tailgdd.com, x.seeyouyima.com, axxd.xmseeyouyima.com, config-service.seeyouyima.com, gw3.ykccn.com, webapi.qmai.cn, miniapp.qmai.cn, ads.ysepay.com, mobile-consumer-sapp.chery.cn, order-app-api.lbdj.com, plt.yorentown.com, lawsonapi.yorentown.com, ecloud.tppension.cntaiping.com, cache.bydauto.com.cn, app-v1.ecoliving168.com, api.51credit.com, patient-api.suh.cn, userpms-api.suh.cn, se-api.djiits.com, dudian-oss.oss-cn-shenzhen.aliyuncs.com, imagepc.ctaiot.com, a.line.me, ad.line-scdn.net, buy.line.me, cix.line-apps.com, crs-event.line.me, d.line-scdn.net, gw.line.naver.jp, legy.line-apps.com, nelo2-col.linecorp.com, obs.line-scdn.net, scdn.line-apps.com, sch.line.me, static.line-scdn.net, uts-front.line-apps.com, w.line.me, vue3-api.zhixiny.cn, mbank5.jsbchina.cn, mobileapi.xiamenair.com, appapi.caiyicloud.com, res1.hubcloud.com.cn, vapp.tmuyun.com, api2.yaduo.com, api.gongkaoleida.com, magev6.if.qidian.com, syh.zybang.com, www.zybang.com, pzoap.moedot.net, app.api.d3yuiw4.com, app-izz.zhengzhou.gov.cn, creditcard.bankcomm.com, *.byteimg.com.*, www.cntv.cn, *.townmalls.cn, chat-live.soulapp.cn, api.flydigi.com, www.ymm56.com, app.ceair.com, mcsp.cloudpnr.com, saas-ad.cloudpnr.com, g.alicdn.com, api.huachenjie.com, open.e.kuaishou.cn, ad.shunchangzhixing.com, img01.51jobcdn.com, appapi.51job*.com, cupid.51job*.com, api5.youonbike.com, mgesq.api.mgtv.com, *.hitv.com, qiye.gaoding.com, gw.chuangkit.com, zlsdk.1rtb.net, web2.realtech-inc.com, sdk.1rtb.net, gw.xiaocantech.com, delivery-api.imdada.cn, adservice.sigmob.cn, api.u51.com, gateway.36kr.com, xxyx-client-api.xiaoxiaoyouxuan.com, statistic.live.126.net, zgrb.epicc.com.cn, ecssmobile.e-chinalife.com, compus.xiaofubao.com, imgx.jampp.com, ad.life.360.cn, wanciwangdata.oss-cn-beijing.aliyuncs.com, recite.perfectlingo.com, ggc.miguvideo.com, public-deliver9.miguvideo.com, display*-sc.miguvideo.com, recommend-dy.miguvideo.com, app-sc.miguvideo.com, common-sc.miguvideo.com, ggx*.miguvideo.com, ggic*.miguvideo.com, b-api.ins.miaopai.com, social.blued.cn, api.petkit.cn, ams-cdn.cdtft.cn, e.weather.com.cn, beehiveapi.58.com, apio.zhengqi100.com, res.hongyibo.com.cn, misc-api-prd-mx.wandafilm.com, e-static.aia.com.cn, api.sogaha.cn, api-miprint.hannto.com, api.indeedpower.com, alt-r.my.com, m.pvp.xoyo.com, *.pipix.com, daijia.kuaidadi.com, as.xiaojukeji.com, preprod.cdzghome.com, api.xbxxhz.com, sfo.mddcloud.com.cn, mob.mddcloud.com.cn, toblog.ctobsnssdk.com, t-dsp.pinduoduo.com, mobads-pre-config.cdn.bcebos.com, sdk1xyajs.data.kuiniuca.com, conf-darwin.xycdn.com, *.ubixioe.com, www.xiaoxiongmeishu.com, gateway.benewtech.cn, ntt-app.benewtech.cn, api-access.pangolin-sdk-toutiao-b.com, api-access.pangolin-sdk-toutiao.com, api-access.pangolin-sdk-toutiao1.com, dsp-x.jd.com, api-cfg.wtzw.com, p1-lm.adukwai.com, bk.bingo.qq.com, maicai.api.ddxq.mobi, gw.api.ddxq.mobi, user.api.ddxq.mobi, c.zhangle.com, midc.cdn-static.abchina.com.cn, enjoy.cdn-static.abchina.com, ocrifs.ejoy.sinopec.com, apicloud.zol.com, minipro.95504.net, service.haiersmarthomes.com, gugongmini.dpm.org.cn, wechat.tf.cn, chl.tf.cn, mbasecc.bas.cmbchina.com, mbasecc.bcs.cmbchina.com, intellicc.bas.cmbchina.com, bohe.sfo-tx-shanghai-01.saas.sensorsdata.cn, api.boohee.com, lego.boohee.com, status.boohee.com, cdn.133.cn, acs.youku.com, push.m.youku.com, un-acs.youku.com, gw.alicdn.com, tiku.fenbi.com, napi.ithome.com, www.1314zhilv.com, mobile.flightradar24.com, api.17kjs.com, interface.aomiapp.com, oxadmin.cp.com.cn, home.umetrip.com, discardrp.umetrip.com, startup.umetrip.com, dictvip-business.youdao.com, dict.youdao.com, api-overmind.youdao.com, cdke.youdao.com, live.inst-service.htsc.com, gql.reddit.com, gql-fed.reddit.com, imcs.citicbank.com, mkt-gateway.tuhu.cn, tianqi.2345.com, shcss.suning.com, oneapp-api.faw-vw.com, lens.leoao.com, www.binance.info, www.yingwangtech.net, www.binance.com, api.hengdianfilm.com, ump.sz.creditcard.ecitic.com, tbgapplet.carlsberg.asia, mbmodule-openapi.paas.cmbchina.com, api.zhihu.com, appcloud2.zhihu.com, m-cloud.zhihu.com, www.zhihu.com, zhuanlan.zhihu.com, link.zhihu.com, open-cms-api.quark.cn, vv.video.qq.com, evs.500.com, dq.dxy.cn, m.you.163.com, open-cms-api.uc.cn, *.yuxueyuan.cn, pan-api.bitqiu.com, iapi.bishijie.com, run.api.qyfxgd.cn, gongdu.youshu.cc, api.21ec74.com, ztoread.ziroom.com, iphone.ac.qq.com, api.00bang.cn, app.hbooker.com, api.sfacg.com, api3.cls.cn, gateway-api.dushu365.com, external.fcbox.com, dsp.fcbox.com, bdsp-x.jd.com, app.homeinns.com, pic.edaijia.cn, cdn-evone-ceph.echargenet.com, mlol.qt.qq.com, gg.caixin.com, cn-acs.m.cainiao.com, zjdr666.com, adapi.izuiyou.com, access.mypikpak.com, open.fitdays.cn, ap.dongdianqiu.com, 103.91.210.141, js-ad.ayximgs.com, pipi.4kya.com, tft-app.cdtft.cn, t1.market.xiaomi.com, b.appsimg.com, ios.sspai.com, zconfig.alibabausercontent.com, easyreadfs.nosdn.127.net, sp.kaola.com, mapi.dangdang.com, client.qunar.com, slapi.oray.net, api.internetofcity.cn, lcen.xiaote.net, venus.yhd.com, api.shenyin.name, mage*.if.qidian.com, e.dangdang.com, adproxy.autohome.com.cn, explorer.tratao.com, overseas.weico.cc, 118.178.214.118, client.mail.163.com, api.psy-1.com, cdn.*.chelaileapp.cn, *.laichon.com, api-ad-product.huxiu.com, jad-api.jin10.com, appactive.1234567.com.cn, service.busi.inke.cn, dispatcher.camera360.com, 47.110.187.87, ssp.soulapp.cn, api-account.soulapp.cn, api-global.soulapp.me, api-a.soulapp.cn, api-pay.soulapp.cn, gateway-mobile-gray.soulapp.cn, api-chat.soulapp.cn, post.soulapp.cn, api-user.soulapp.cn, beta-api.crunchyroll.com, helper.2bulu.com, tagit.hyhuo.com, top-widgets-api.xiaozujian.com, truthsocial.com, *mangaapi.manhuaren.*, apis.lifeweek.com.cn, yanxuan.nosdn.127.net, *.peopleapp.com, new-app-api.ylyk.com, *.58cdn.com.cn, creditcardapp.bankcomm.com, lchttpapi.xczim.com, *.chelaile.net.cn, api.xiaoyi.com, api.douban.com, sso.ifanr.com, s3plus.meituan.net, cdb.meituan.com, *.hoopchina.com, goblin.hupu.com, gmp.lakala.com, wallet.lakala.com, hz.yxzq.com, api.winbull8.com, editor.sm.cn, p0.pipi.cn, 182.92.244.70, ad.myfriday.cn, ios-api.lucklyworld.com, www.onstar.com.cn, facade-api.black-unique.com, cstore-en-public-tx.seewo.com, oneapph5.dongfeng-nissan.com.cn, cds.wifi188.com, homefront.qunar.com, sh-gateway.shihuo.cn, cgbank.oss-cn-shenzhen.aliyuncs.com, imeres.baidu.com, api.taptapdada.com, a.sinopecsales.com, api.nj.nbtv.cn, v3.wufazhuce.com, ma-adx.ctrip.com, yun.tuitiger.com, www.pushplus.plus, ad.mcloud.139.com, fastbuyer.zbj.com, xhtz.oss-cn-guangzhou.aliyuncs.com, promote-trx.helipay.com, hfapp-service.qweather.net, api.ulife.group, api.sodalife.xyz, app.chinahxzq.com.cn, hdgateway.zto.com, mobile-api.imlaidian.com, wxs-weixin.sd.zhumanggroup.com, s.jiediankeji.com, smarket.dian.so, file.dian.so, aag.enmonster.com, hd.xiaojukeji.com, freight.xiaojukeji.com, capis*.didapinche.com, ad.xiaotucc.com, mapi.xiaotucc.com, adsoss.zhinengxiyifang.cn, api-marketing.zhinengxiyifang.cn, ads.zhinengxiyifang.cn, app.missevan.com, bd-api.kuwo.cn, h5app.kuwo.cn, bodianimgcdn.kuwo.cn, mgxhtj.kuwo.cn, nmobi.kuwo.cn, searchrecterm.kuwo.cn, audiobookpay.kuwo.cn, musicpay.kuwo.cn, vip1.kuwo.cn, pacdn.m.stock.pingan.com, manga.bilibili.com, bid.adview.cn, zua.zhidiantianxia.cn, app.10086.cn, mrp.mcloud.139.com, *.i18n-pglstatp.com, api.wmpvp.com, m.prod.app.hsbcfts.com.cn, p*.pstatp.com, mapi.txcmapp.com, api-one-wscn.awtmt.com, fintechappdr.cgws.com, m.qianbao.qq.com, j1.pupuapi.com, 54.222.159.138, ad.lofter.com, images.pinduoduo.com, lofter.lf127.net, client.tujia.com, www.gcores.com, app02.vgtime.com, www.vgtime.com, app.meruki.cn, qimg.cdnmama.com, ecapi.lkcoffee.com, capi.lkcoffee.com, m.lkcoffee.com, gsp.gacmotor.com, appdmkj.5idream.net, api.shanghaionstar.com, szdmobile.suzhou.gov.cn, api.bwton.com, z.onewo.com, plough.babytree.com, mapiweb.babytree.com, go.babytree.com, aimg.babytreeimg.com, *.ly.com, *.17usoft.com, *.17u.cn, mobilehotelapi.elong.com, quic-tcmapi.elong.com, blog.nilbt.com, www.banyuetanapp.com, ecard.shenzhentong.com, ccmsupport-sz.tenpay.com, dl.app.gtja.com, fuwu.nhsa.gov.cn, api?.sparke.cn, cube.elemecdn.com, nr-op.elemecdn.com, info.mina.xiaoaisound.com, marketing-aibox.v.mitvos.com, home.mi.com, tk.lanjiyin.com.cn, poplayer.template.alibaba.com, acs.m.taobao.com, amdc.m.taobao.com, guide-acs.m.taobao.com, api.alipan.com, member.alipan.com, acs-m.freshippo.com, mcs-mimp-web.sf-express.com, ucmp.sf-express.com, api.ncarzone.com, api.caiyunapp.com, wrapper.cyapi.cn, mres.aibank.com, direct.z-bank.com, mobile.1qianbao.com, middle.yun.139.com, mcmm.caiyun.feixin.10086.cn, cdn-oss.00bang.cn, mapi.sichuanair.com, b2baifanfan.baidu.com, app.badmintoncn.com, app.bilibili.com, api.bilibili.com, api.live.bilibili.com, grpc.biliapi.net, line3-h5-mobile-api.biligame.com, portal.zjzwfw.gov.cn, shopapi.io.mi.com, www.ahzs10000.com, quanguo.mygolbs.com, open.taou.com, h3.open.taou.com, sichuan.95504.net, app.10099.com.cn, sdk.alibaba.com.ailbaba.me, mrobot.pconline.com.cn, api.gameplus.qq.com, cdn.sdb.com.cn, creditcardapp.bankcomm.cn, router-app-api.jdcloud.com, api.yonghuivip.com, www.haixue.com, cdn.jlbank.com.cn, 3g.csair.com, gha.ghac.cn, webappcfg.paas.cmbchina.com, *.qyfxgd.cn, *.weilai555.com, *.ecoliving168.com, vip7.fzwdyy.cn, wcprd.hilton.com.cn, adx-cn.anythinktech.com, www.didapinche.com, client-api-v2.oray.com, sdk.alibaba.com, bgw.xinyue.qq.com, api.tipsoon.com, imeclient.openspeech.cn, m.360buyimg.com, business-cdn.shouji.sogou.com, ios.sogou.com, android.sogou.com, h5api.sginput.qq.com, m*.amap.com, optimus-ads.amap.com, pv.elife.icbc.com.cn, mangaapi.manhuaren.com, news.ssp.qq.com, ccsp-egmas.sf-express.com, zhidao.baidu.com, api.vistopia.com.cn, bp-api.bestv.com.cn, xyst.yuanfudao.com, mapi.appvipshop.com, guanyu.longfor.com, mp.weixin.qq.com, *.kingsoft-office-service.com, ptmpcap.caocaokeji.cn, pcauto.com.cn, mps.95508.com, i-lq.snssdk.com.*, img0*.luckincoffeecdn.com, app.zhoudamozi.com, apple.fuliapps.com, gurd.snssdk.com.*, peisongapi.meituan.com, cdn.cmgadx.com, api.gamer.com.tw, impservice.dictapp.youdao.com, api.gaoqingdianshi.com, cdn.dianshihome.com, *.kakamobi.cn, 47.100.65.202, youtubei.googleapis.com, app.wy.guahao.com, mapi.sfbest.com, *.xiangxiangapps.com, cmsfile.wifi8.com, prom.mobile.gome.com.cn, nnapp.cloudbae.cn, api.21jingji.com, a.qiumibao.com, jdread-api.jd.com, open.qyer.com, app-api.niu.com, us.l.qq.com, qde.qunar.com, res.pizzahut.com.cn, book.img.ireader.com, aes.acfun.cn, api-new.app.acfun.cn, images.cib.com.cn, jiucaigongshe.oss-cn-beijing.aliyuncs.com, mage.if.qidian.com, app.aa-ab.com, zone.guiderank-app.com, richmanrules.ksedt.com, richmanapi.jxedt.com, geetest.htsc.com, 119.29.29.*, api.m.mi.com, awg.enmonster.com, api.haohaozhu.cn, du.hupucdn.com, apps.api.ke.com, api.ycapp.yiche.com, omgup*.xiaojukeji.com, issuecdn.baidupcs.com, gab.122.gov.cn, www.oschina.net, m.ibuscloud.com, app.api.versa-ai.com, app-conf.ds.163.com, image*.benlailife.com, djcapp.game.qq.com, static.xyzq.cn, iobs.pingan.com.cn, app3.qdaily.com, api.mcd.cn, api.mgzf.com, open.e.kuaishou.com, osg-static.sgcc.com.cn, osg-service.sgcc.com.cn, app.dewu.com, cdn.poizon.com, supportda.ofo.com, r6.mo.baidu.com, res.mi.baidu.com, mbd.baidu.com, capi.mwee.cn, m.client.10010.com, m1.ad.10010.com, res.mall.10010.cn, app.yinxiang.com, img.meituan.net, baidu.com, *-release.wuta-cam.com, cdnmobibank.bankofbeijing.com.cn, mapi.mafengwo.cn, mada-travel.17u.cn, ebk.17u.cn, api.izuiyou.com, appconf.mail.163.com, api.dangdang.com, cmsapi.wifi8.com, daoyu.sdo.com, gw.aihuishou.com, bp-api.bestv.com.cn, bp-image.bestv.com.cn, portal-portm.meituan.com, mall.meituan.com, api.xiaoyuzhoufm.com, cdn-xyk-app.bankofbeijing.com.cn, thor.weidian.com, open3.vistastory.com, i.ys7.com, www.xiaohongshu.com, edith.xiaohongshu.com, ci.xiaohongshu.com, rec.xiaohongshu.com, so.xiaohongshu.com, api.caijingmobile.com, j5.dfcfw.com, capi.douyucdn.cn, icc.one, api.coolapk.com, ios.xiangjiaoapps.com, img.wukongtv.com, service.4gtv.tv, static.api.m.panda.tv, api-mifit*.huami.com, channel.beitaichufang.com, static.95508.com, wap.bank.ecitic.com, file.cibfintech.com, api*.futunn.com, mob.mddcloud.com, i.snssdk.com.*, images.client.vip.xunlei.com, api-shoulei-ssl.xunlei.com, elemecdn.com, l*.51fanli.net, app.zhuanzhuan.com, *.bdstatic.com, rs.creditcard.cmbc.com.cn, ocean.shuqireader.com, api.fengshows.com, api.touker.com, app.variflight.com, sofire.baidu.com, www.cmbc.com.cn, img01.10101111cdn.com, r.inews.qq.com, afd.baidu.com, appwk.baidu.com, ios.lantouzi.com, mpcs.suning.com, m.tuniu.com, api.jxedt.com, dns.jd.com, api.m.jd.com, m.jd.com, *.k.sohu.com, www.nfmovies.com, static01.versa-ai.com, gfp.veta.naver.com, mpos-pic.helipay.com, api.yikaobang.com.cn, god.gameyw.netease.com, image.spdbccc.com.cn, fbchina.flipchina.cn, media.qyer.com, webcast-open.douyin.com, beta-luna.douyin.com, ether-pack.pangolin-sdk-toutiao.com, api-access.pangolin-sdk-toutiao?.com, sf*-fe-tos.pglstatp-toutiao.com, restapi.iyunmai.com, static.shihuocdn.cn, weixin110.qq.com, appapi.huazhu.com, hweb-hotel.huazhu.com, hweb-manager.huazhu.com, lban.spdb.com.cn, wap.spdb.com, smart.789.image.mucang.cn, btrace.qq.com, img.dailmo.com, app.95598pay.com, reading-hl.snssdk.com, adproxy.autohome.com, ma.ofo.com, dl*.app.gtja.com, activity2.api.ofo.com, luckman.suning.com, app.xinpianchang.com, static.gameplus.qq.com, portal-xunyou.qingcdn.com, notch.qdaily.com, pan.baidu.com, tiebac.baidu.com, *.tieba.baidu.com, snailsleep.net, gslbali.ximalaya.com, search.ximalaya.com, searchwsa.ximalaya.com, mobile.ximalaya.com, mobilehera.ximalaya.com, mobwsa.ximalaya.com, m.ximalaya.com, mwsa.ximalaya.com, api.laifeng.com, fuss10.elemecdn.com, smkmp.96225.com, static.creditcard.hxb.com.cn, sf3-be-pack.pglstatp-toutiao.com, ossgw.alicdn.com, *.mgtv.com, oral.youdao.com, p.kuaidi100.com, video-dsp.pddpic.com, mlife.jf365.boc.cn, heic.alicdn.com, acs.m.goofish.com, g-acs.m.goofish.com, dinamicx.alibabausercontent.com, www.tsytv.com, app2.autoimg.cn, www.iyingdi.cn, m.baidu.com, webboot.zhangyue.com, api4.bybutter.com, security.wechat.com, api.xiachufang.com, 4gimg.map.qq.com, p.du.163.com, support.you.163.com, apiwz.midukanshu.com, tc.qq.com, img.admobile.top, api.pinduoduo.com, cheyouapi.ycapp.yiche.com, api.kkmh.com, ad.ysepay.com, ports3.gtimg.com, i*.hdslb.com, m.yap.yahoo.com, webcdn.m.qq.com, rtbapi.douyucdn.cn, dapis.mting.info, qidian.qpic.cn, games.mobileapi.hupu.com, emdcadvertise.eastmoney.com, mime.baidu.com, api.club.lenovo.cn, img.allahall.com, staticsns.cdn.bcebos.com, api.wfdata.club, dsa-mfp.fengshows.cn, flowplus.meituan.net, ssp.dzh.com.cn, adm.10jqka.com.cn, stat.10jqka.com.cn, api.xueqiu.com, open.xueqiu.com, stock.xueqiu.com, 39.103.79.14, 39.106.97.84, 47.95.49.75, 101.201.62.20, 101.201.62.26, 101.201.175.228, 124.250.48.3, 182.92.145.50, 182.92.251.113, ios.fuliapps.com, pt-starimg.didistatic.com, *.pipiapps.com, adstatic.peopleapp.com, otheve.beacon.qq.com, ptf.flyertrip.com, api.qbb6.com, res.xiaojukeji.com, conf.diditaxi.com.cn, yunbusiness.ccb.com, img.alicdn.com, capis.didapinche.com, ms.jr.jd.com, m.creditcard.ecitic.com, img.gdoil.cn, api.hanju.koudaibaobao.com, api.jr.mi.com, upload-bbs.mihoyo.com, gw-passenger.01zhuanche.com, img.yun.01zhuanche, ndstatic.cdn.bcebos.com, fc-video.cdn.bcebos.com, rp.hpplay.cn, dyncdn.me, pss.txffp.com, dxy.com, staticlive.douyucdn.cn, edit.sinaapp.com, www1.elecfans.com, *.googlevideo.com, pocketuni.net, j-image.missfresh.cn, cms.daydaycook.com, api.cloud.189.cn, mobile.cebbank.com, yghsh.cebbank.com, y.gtimg.cn, music.y.qq.com, dss0.bdstatic.com, tb1.bdstatic.com, tb2.bdstatic.com, ss0.bdstatic.com, gss0.bdstatic.com, newclient.map.baidu.com, ossweb-img.qq.com, mea.meitudata.com, adui.tg.meitu.com, list-app-m.i4.cn, api.daydaycook.com, learn.chaoxing.com, ipv4.music.163.com, interface9.music.163.com, interface.music.163.com, interface3.music.163.com, res.kfc.com.cn, gw.kaola.com, api.huomao.com, mi.gdt.qq.com, fmapp.chinafamilymart.com.cn, app-gw.csdn.net, gw.csdn.net, app.58.com, cap.caocaokeji.cn, live-ads.huya.com, cdn.wup.huya.com, cdnfile1.msstatic.com, business.msstatic.com, ct.xiaojukeji.com, homepage-api.smzdm.com, haojia-api.smzdm.com, app-api.smzdm.com, user-api.smzdm.com, article-api.smzdm.com, qianbao.smzdm.com, s-api.smzdm.com, haojia.m.smzdm.com, adpai.thepaper.cn, www.baidu.com, *.tv.sohu.com, ih2.ireader.com, common.diditaxi.com.cn, display.wting.info, kano.guahao.cn, i-lq.snssdk.com, cloud.189.cn, ad.12306.cn, dl-cu-hz.lechange.cn, *-spclient.spotify.com, spclient.wg.spotify.com, dsp-impr2.youdao.com, api.rr.tv, *.pglstatp-toutiao.com, mobile.yangkeduo.com, api.yangkeduo.com, xyz.cnki.net, api.bjxkhc.com, d.psbc.com, fm.fenqile.com, client.app.coc.10086.cn, img.ddrk.me, ddrk.me, img.jiemian.com, message.shuqireader.com, ut2.shuqistat.com, dsp.toutiao.com, sq.sljkj.com, img-tailor.11222.cn, feedback.uc.cn, *.shuqireader.com, 101.91.69.26, gateway.shouqiev.com, api.gotokeep.com, kad.gotokeep.com, static1.keepcdn.com, mbank.grcbank.com, -i.vip.iqiyi.com, *.iqiyi.com, api-sams.walmartmobile.cn, api.htp.ad-scope.com.cn, appgw.ddpai.com, init.sms.mob.com, www.flyert.com, hcz-member.pingan.com.cn, jp.rsscc.com, jt.rsscc.com, appapi.51job*.com, cupid.51job*.com, api-ac.liepin.com, api-wanda.liepin.com, intellicc.bcs.cmbchina.com, api-cslp-emt.amazon.cn, m.airchina.com.cn, apphw.ddpai.com, waimai-guide.ele.me, 39.98.135.211 diff --git a/QuantumultX/rewrite/rewrite.snippet b/QuantumultX/rewrite/rewrite.snippet index a01550f6..f1b73624 100644 --- a/QuantumultX/rewrite/rewrite.snippet +++ b/QuantumultX/rewrite/rewrite.snippet @@ -10,7 +10,7 @@ #!system = iOS, iPadOS #!system_version = #!loon_version = -#!date=2025-08-02 15:47:00 +#!date=2025-08-10 10:37:00 #!remark=下方的所有规则都标注了对应的hostname,可能存在错误或者遗漏,欢迎反馈。对于无法/可选MITM的hostname都特别做了“如开启可自行添加主机名”提示,如果提示后面没有标注主机名则包含所有主机名,否则只包含提示语后面的主机名。 ############################################# # "reject" 策略返回 HTTP 状态码 404,不附带任何额外内容 @@ -2146,10 +2146,10 @@ https://api.rr.tv/storage/business/rootName/app/homePage\?dataType=JSON url reje # >>>>>>>>>>>>>>> ✅ S ✅ <<<<<<<<<<<<<< # > Spotify -# hostname = gae2-spclient.spotify.com, guc3-spclient.spotify.com, spclient.wg.spotify.com -^https?:\/\/(?:gae2-spclient|guc3-spclient|spclient\.wg)\.spotify\.com(?::443)?\/pendragon\/ url reject-dict -^https?:\/\/(gae2-spclient|guc3-spclient|spclient\.wg)\.spotify\.com(?::443)?\/artistview\/v1\/artist\/(.*)&platform=iphone url 302 https://$1.spotify.com/artistview/v1/artist/$2&platform=ipad -^https?:\/\/(?:gae2-spclient|guc3-spclient|spclient\.wg)\.spotify\.com(?::443)?\/(?:bootstrap|user-customization-service) url script-request-body https://raw.githubusercontent.com/001ProMax/Surge/refs/heads/main/Script/Spotify.Crack.Dev.js +# hostname = *-spclient.spotify.com, spclient.wg.spotify.com +^https:\/\/(?:\w+-spclient|spclient\.wg)\.spotify\.com(?::443)?\/pendragon\/ url reject-dict +^https:\/\/(?:\w+-spclient|spclient\.wg)\.spotify\.com(?::443)?\/artistview\/v1\/artist\/(.*)&platform=iphone url 302 https://$1.spotify.com/artistview/v1/artist/$2&platform=ipad +^https:\/\/(?:\w+-spclient|spclient\.wg)\.spotify\.com(?::443)?\/(?:bootstrap|user-customization-service) url script-request-body https://raw.githubusercontent.com/001ProMax/Surge/refs/heads/main/Script/Spotify.Crack.Dev.js # > Soul # hostname = 47.110.187.87, ssp.soulapp.cn, chat-live.soulapp.cn, api-account.soulapp.cn, api-global.soulapp.me, api-a.soulapp.cn, api-pay.soulapp.cn, gateway-mobile-gray.soulapp.cn, api-chat.soulapp.cn, post.soulapp.cn, api-user.soulapp.cn @@ -3837,4 +3837,4 @@ http:\/\/.+\.gamersky.com/.+/lists/getListElements url jsonjq-response-body '.li # 去重后的hostname,将对以下域名进行MITM(MAN-IN-THE-MIDDLE:中间人攻击) -hostname = *.gamersky.com, emisdatacenteraws.hafoo.com, spamblocker-api.zeekstudio.com, marketing.cmschina.com, www.tailgdd.com, mobile-consumer-sapp.chery.cn, order-app-api.lbdj.com, plt.yorentown.com, lawsonapi.yorentown.com, ecloud.tppension.cntaiping.com, cache.bydauto.com.cn, app-v1.ecoliving168.com, patient-api.suh.cn, userpms-api.suh.cn, se-api.djiits.com, dudian-oss.oss-cn-shenzhen.aliyuncs.com, imagepc.ctaiot.com, a.line.me, ad.line-scdn.net, buy.line.me, cix.line-apps.com, crs-event.line.me, d.line-scdn.net, gw.line.naver.jp, legy.line-apps.com, nelo2-col.linecorp.com, obs.line-scdn.net, scdn.line-apps.com, sch.line.me, static.line-scdn.net, uts-front.line-apps.com, w.line.me, vue3-api.zhixiny.cn, mbank5.jsbchina.cn, mobileapi.xiamenair.com, appapi.caiyicloud.com, res1.hubcloud.com.cn, vapp.tmuyun.com, api2.yaduo.com, api.gongkaoleida.com, magev6.if.qidian.com, syh.zybang.com, www.zybang.com, pzoap.moedot.net, app.api.d3yuiw4.com, app-izz.zhengzhou.gov.cn, creditcard.bankcomm.com, *.byteimg.com.*, www.cntv.cn, *.townmalls.cn, chat-live.soulapp.cn, api.flydigi.com, www.ymm56.com, app.ceair.com, mcsp.cloudpnr.com, saas-ad.cloudpnr.com, g.alicdn.com, api.huachenjie.com, open.e.kuaishou.cn, ad.shunchangzhixing.com, img01.51jobcdn.com, api5.youonbike.com, mgesq.api.mgtv.com, *.hitv.com, qiye.gaoding.com, gw.chuangkit.com, zlsdk.1rtb.net, web2.realtech-inc.com, sdk.1rtb.net, gw.xiaocantech.com, delivery-api.imdada.cn, adservice.sigmob.cn, api.u51.com, gateway.36kr.com, xxyx-client-api.xiaoxiaoyouxuan.com, statistic.live.126.net, zgrb.epicc.com.cn, compus.xiaofubao.com, imgx.jampp.com, ad.life.360.cn, wanciwangdata.oss-cn-beijing.aliyuncs.com, recite.perfectlingo.com, ggc.miguvideo.com, public-deliver9.miguvideo.com, display*-sc.miguvideo.com, recommend-dy.miguvideo.com, app-sc.miguvideo.com, common-sc.miguvideo.com, ggx*.miguvideo.com, ggic*.miguvideo.com, b-api.ins.miaopai.com, social.blued.cn, api.petkit.cn, ams-cdn.cdtft.cn, e.weather.com.cn, beehiveapi.58.com, apio.zhengqi100.com, res.hongyibo.com.cn, misc-api-prd-mx.wandafilm.com, e-static.aia.com.cn, api.sogaha.cn, api-miprint.hannto.com, api.indeedpower.com, alt-r.my.com, m.pvp.xoyo.com, *.pipix.com, daijia.kuaidadi.com, as.xiaojukeji.com, preprod.cdzghome.com, api.xbxxhz.com, api.petkit.cn, sfo.mddcloud.com.cn, mob.mddcloud.com.cn, toblog.ctobsnssdk.com, t-dsp.pinduoduo.com, mobads-pre-config.cdn.bcebos.com, sdk1xyajs.data.kuiniuca.com, conf-darwin.xycdn.com, *.ubixioe.com, www.xiaoxiongmeishu.com, gateway.benewtech.cn, ntt-app.benewtech.cn, open.e.kuaishou.cn, api-access.pangolin-sdk-toutiao-b.com, api-access.pangolin-sdk-toutiao.com, api-access.pangolin-sdk-toutiao1.com, dsp-x.jd.com, api-cfg.wtzw.com, p1-lm.adukwai.com, bk.bingo.qq.com, maicai.api.ddxq.mobi, gw.api.ddxq.mobi, user.api.ddxq.mobi, c.zhangle.com, midc.cdn-static.abchina.com.cn, enjoy.cdn-static.abchina.com, ocrifs.ejoy.sinopec.com, apicloud.zol.com, minipro.95504.net, service.haiersmarthomes.com, gugongmini.dpm.org.cn, wechat.tf.cn, chl.tf.cn, mbasecc.bas.cmbchina.com, mbasecc.bcs.cmbchina.com, intellicc.bas.cmbchina.com, bohe.sfo-tx-shanghai-01.saas.sensorsdata.cn, api.boohee.com, bohe.sfo-tx-shanghai-01.saas.sensorsdata.cn, lego.boohee.com, status.boohee.com, cdn.133.cn, acs.youku.com, push.m.youku.com, un-acs.youku.com, gw.alicdn.com, tiku.fenbi.com, napi.ithome.com, vapp.tmuyun.com, www.1314zhilv.com, mobile.flightradar24.com, api.17kjs.com, interface.aomiapp.com, oxadmin.cp.com.cn, home.umetrip.com, discardrp.umetrip.com, startup.umetrip.com, dictvip-business.youdao.com, dict.youdao.com, api-overmind.youdao.com, cdke.youdao.com, live.inst-service.htsc.com, gql.reddit.com, gql-fed.reddit.com, imcs.citicbank.com, mkt-gateway.tuhu.cn, tianqi.2345.com, shcss.suning.com, shcss.suning.com, oneapp-api.faw-vw.com, lens.leoao.com, www.binance.info, www.yingwangtech.net, www.binance.com, api.hengdianfilm.com, ump.sz.creditcard.ecitic.com, tbgapplet.carlsberg.asia, mbmodule-openapi.paas.cmbchina.com, api.zhihu.com, appcloud2.zhihu.com, m-cloud.zhihu.com, www.zhihu.com, zhuanlan.zhihu.com, link.zhihu.com, open-cms-api.quark.cn, vv.video.qq.com, evs.500.com, dq.dxy.cn, m.you.163.com, open-cms-api.uc.cn, *.yuxueyuan.cn, pan-api.bitqiu.com, iapi.bishijie.com, run.api.qyfxgd.cn, gongdu.youshu.cc, api.21ec74.com, ztoread.ziroom.com, iphone.ac.qq.com, api.00bang.cn, app.hbooker.com, api.sfacg.com, api3.cls.cn, gateway-api.dushu365.com, external.fcbox.com, dsp.fcbox.com, bdsp-x.jd.com, dsp-x.jd.com, app.homeinns.com, pic.edaijia.cn, cdn-evone-ceph.echargenet.com, mlol.qt.qq.com, gg.caixin.com, cn-acs.m.cainiao.com, zjdr666.com, adapi.izuiyou.com, access.mypikpak.com, open.fitdays.cn, ap.dongqiudi.com, 103.91.210.141, js-ad.ayximgs.com, pipi.4kya.com, tft-app.cdtft.cn, t1.market.xiaomi.com, b.appsimg.com, ios.sspai.com, zconfig.alibabausercontent.com, easyreadfs.nosdn.127.net, sp.kaola.com, mapi.dangdang.com, client.qunar.com, slapi.oray.net, api.internetofcity.cn, lcen.xiaote.net, venus.yhd.com, api.shenyin.name, mage*.if.qidian.com, e.dangdang.com, adproxy.autohome.com.cn, explorer.tratao.com, overseas.weico.cc, 118.178.214.118, client.mail.163.com, api.psy-1.com, cdn.*.chelaileapp.cn, *.laichon.com, api-ad-product.huxiu.com, jad-api.jin10.com, appactive.1234567.com.cn, service.busi.inke.cn, dispatcher.camera360.com, 47.110.187.87, ssp.soulapp.cn, api-account.soulapp.cn, api-global.soulapp.me, api-a.soulapp.cn, api-pay.soulapp.cn, gateway-mobile-gray.soulapp.cn, api-chat.soulapp.cn, post.soulapp.cn, api-user.soulapp.cn, beta-api.crunchyroll.com, helper.2bulu.com, tagit.hyhuo.com, top-widgets-api.xiaozujian.com, truthsocial.com, *mangaapi.manhuaren.*, apis.lifeweek.com.cn, yanxuan.nosdn.127.net, *.peopleapp.com, new-app-api.ylyk.com, *.58cdn.com.cn, creditcardapp.bankcomm.com, lchttpapi.xczim.com, *.chelaile.net.cn, api.xiaoyi.com, api.douban.com, sso.ifanr.com, s3plus.meituan.net, cdb.meituan.com, *.hoopchina.com, goblin.hupu.com, gmp.lakala.com, wallet.lakala.com, hz.yxzq.com, api.winbull8.com, editor.sm.cn, p0.pipi.cn, 182.92.244.70, ad.myfriday.cn, ios-api.lucklyworld.com, www.onstar.com.cn, facade-api.black-unique.com, cstore-en-public-tx.seewo.com, oneapph5.dongfeng-nissan.com.cn, cds.wifi188.com, homefront.qunar.com, sh-gateway.shihuo.cn, cgbank.oss-cn-shenzhen.aliyuncs.com, imeres.baidu.com, api.taptapdada.com, a.sinopecsales.com, api.nj.nbtv.cn, v3.wufazhuce.com, ma-adx.ctrip.com, yun.tuitiger.com, www.pushplus.plus, ad.mcloud.139.com, fastbuyer.zbj.com, xhtz.oss-cn-guangzhou.aliyuncs.com, promote-trx.helipay.com, hfapp-service.qweather.net, api.ulife.group, api.sodalife.xyz, app.chinahxzq.com.cn, hdgateway.zto.com, mobile-api.imlaidian.com, wxs-weixin.sd.zhumanggroup.com, s.jiediankeji.com, smarket.dian.so, file.dian.so, aag.enmonster.com, hd.xiaojukeji.com, freight.xiaojukeji.com, capis*.didapinche.com, ad.xiaotucc.com, mapi.xiaotucc.com, adsoss.zhinengxiyifang.cn, api-marketing.zhinengxiyifang.cn, ads.zhinengxiyifang.cn, app.missevan.com, bd-api.kuwo.cn, h5app.kuwo.cn, bodianimgcdn.kuwo.cn, mgxhtj.kuwo.cn, nmobi.kuwo.cn, searchrecterm.kuwo.cn, audiobookpay.kuwo.cn, musicpay.kuwo.cn, vip1.kuwo.cn, pacdn.m.stock.pingan.com, manga.bilibili.com, bid.adview.cn, zua.zhidiantianxia.cn, app.10086.cn, mrp.mcloud.139.com, *.i18n-pglstatp.com, api.wmpvp.com, m.prod.app.hsbcfts.com.cn, p*.pstatp.com, mapi.txcmapp.com, api-one-wscn.awtmt.com, fintechappdr.cgws.com, m.qianbao.qq.com, j1.pupuapi.com, 54.222.159.138, ad.lofter.com, images.pinduoduo.com, lofter.lf127.net, client.tujia.com, www.gcores.com, app02.vgtime.com, www.vgtime.com, app.meruki.cn, qimg.cdnmama.com, ecapi.lkcoffee.com, capi.lkcoffee.com, m.lkcoffee.com, gsp.gacmotor.com, appdmkj.5idream.net, www.onstar.com.cn, api.shanghaionstar.com, szdmobile.suzhou.gov.cn, ad.shunchangzhixing.com, api.bwton.com, z.onewo.com, plough.babytree.com, mapiweb.babytree.com, go.babytree.com, aimg.babytreeimg.com, *.ly.com, *.17usoft.com, *.17u.cn, mobilehotelapi.elong.com, quic-tcmapi.elong.com, blog.nilbt.com, www.banyuetanapp.com, ecard.shenzhentong.com, ccmsupport-sz.tenpay.com, dl.app.gtja.com, fuwu.nhsa.gov.cn, api?.sparke.cn, cube.elemecdn.com, nr-op.elemecdn.com, info.mina.xiaoaisound.com, marketing-aibox.v.mitvos.com, home.mi.com, tk.lanjiyin.com.cn, poplayer.template.alibaba.com, acs.m.taobao.com, amdc.m.taobao.com, guide-acs.m.taobao.com, api.alipan.com, member.alipan.com, acs-m.freshippo.com, mcs-mimp-web.sf-express.com, ucmp.sf-express.com, api.ncarzone.com, api.caiyunapp.com, wrapper.cyapi.cn, mres.aibank.com, direct.z-bank.com, mobile.1qianbao.com, middle.yun.139.com, mcmm.caiyun.feixin.10086.cn, cdn-oss.00bang.cn, mapi.sichuanair.com, b2baifanfan.baidu.com, app.badmintoncn.com, portal.zjzwfw.gov.cn, shopapi.io.mi.com, www.ahzs10000.com, quanguo.mygolbs.com, open.taou.com, h3.open.taou.com, sichuan.95504.net, app.10099.com.cn, sdk.alibaba.com.ailbaba.me, mrobot.pconline.com.cn, api.gameplus.qq.com, cdn.sdb.com.cn, creditcardapp.bankcomm.cn, router-app-api.jdcloud.com, api.yonghuivip.com, cdn.jlbank.com.cn, 3g.csair.com, gha.ghac.cn, webappcfg.paas.cmbchina.com, *.qyfxgd.cn, *.weilai555.com, *.ecoliving168.com, vip7.fzwdyy.cn, wcprd.hilton.com.cn, adx-cn.anythinktech.com, www.didapinche.com, client-api-v2.oray.com, sdk.alibaba.com, bgw.xinyue.qq.com, api.tipsoon.com, imeclient.openspeech.cn, m.360buyimg.com, business-cdn.shouji.sogou.com, ios.sogou.com, android.sogou.com, h5api.sginput.qq.com, m*.amap.com, optimus-ads.amap.com, pv.elife.icbc.com.cn, mangaapi.manhuaren.com, news.ssp.qq.com, ccsp-egmas.sf-express.com, zhidao.baidu.com, api.vistopia.com.cn, xyst.yuanfudao.com, mapi.appvipshop.com, guanyu.longfor.com, mp.weixin.qq.com, *.kingsoft-office-service.com, ptmpcap.caocaokeji.cn, pcauto.com.cn, mps.95508.com, i-lq.snssdk.com.*, img0*.luckincoffeecdn.com, app.zhoudamozi.com, apple.fuliapps.com, gurd.snssdk.com.*, peisongapi.meituan.com, cdn.kuaidi100.com, cdn.cmgadx.com, api.gamer.com.tw, impservice.dictapp.youdao.com, api.gaoqingdianshi.com, cdn.dianshihome.com, *.kakamobi.cn, 47.100.65.202, youtubei.googleapis.com, app.wy.guahao.com, mapi.sfbest.com, *.xiangxiangapps.com, cmsfile.wifi8.com, prom.mobile.gome.com.cn, nnapp.cloudbae.cn, api.21jingji.com, a.qiumibao.com, jdread-api.jd.com, open.qyer.com, app-api.niu.com, us.l.qq.com, qde.qunar.com, res.pizzahut.com.cn, book.img.ireader.com, aes.acfun.cn, api-new.app.acfun.cn, images.cib.com.cn, jiucaigongshe.oss-cn-beijing.aliyuncs.com, mage.if.qidian.com, app.aa-ab.com, zone.guiderank-app.com, richmanrules.ksedt.com, richmanapi.jxedt.com, geetest.htsc.com, 119.29.29.*, api.m.mi.com, awg.enmonster.com, api.haohaozhu.cn, du.hupucdn.com, apps.api.ke.com, api.ycapp.yiche.com, omgup*.xiaojukeji.com, issuecdn.baidupcs.com, gab.122.gov.cn, www.oschina.net, m.ibuscloud.com, app.api.versa-ai.com, ok.166.net, image*.benlailife.com, home.mi.com, djcapp.game.qq.com, static.xyzq.cn, iobs.pingan.com.cn, app3.qdaily.com, api.mcd.cn, api.mgzf.com, open.e.kuaishou.com, osg-static.sgcc.com.cn, osg-service.sgcc.com.cn, app.dewu.com, cdn.poizon.com, supportda.ofo.com, r6.mo.baidu.com, res.mi.baidu.com, mbd.baidu.com, capi.mwee.cn, m.client.10010.com, m1.ad.10010.com, res.mall.10010.cn, app.yinxiang.com, img.meituan.net, baidu.com, *-release.wuta-cam.com, cdnmobibank.bankofbeijing.com.cn, mapi.mafengwo.cn, mada-travel.17u.cn, ebk.17u.cn, api.izuiyou.com, appconf.mail.163.com, api.dangdang.com, cmsapi.wifi8.com, daoyu.sdo.com, gw.aihuishou.com, bp-api.bestv.com.cn, bp-image.bestv.com.cn, portal-portm.meituan.com, mall.meituan.com, cdn-xyk-app.bankofbeijing.com.cn, thor.weidian.com, open3.vistastory.com, i.ys7.com, so.xiaohongshu.com, www.xiaohongshu.com, edith.xiaohongshu.com, ci.xiaohongshu.com, rec.xiaohongshu.com, api.caijingmobile.com, j5.dfcfw.com, capi.douyucdn.cn, icc.one, api.coolapk.com, ios.xiangjiaoapps.com, img.wukongtv.com, service.4gtv.tv, static.api.m.panda.tv, api-mifit*.huami.com, channel.beitaichufang.com, static.95508.com, wap.bank.ecitic.com, file.cibfintech.com, api*.futunn.com, mob.mddcloud.com, i.snssdk.com.*, images.client.vip.xunlei.com, api-shoulei-ssl.xunlei.com, elemecdn.com, l*.51fanli.net, app.zhuanzhuan.com, *.bdstatic.com, rs.creditcard.cmbc.com.cn, ocean.shuqireader.com, api.fengshows.com, sh-gateway.shihuo.cn, api.touker.com, app.variflight.com, sofire.baidu.com, www.cmbc.com.cn, img01.10101111cdn.com, r.inews.qq.com, gslbali.ximalaya.com, search.ximalaya.com, searchwsa.ximalaya.com, mobile.ximalaya.com, mobilehera.ximalaya.com, mobwsa.ximalaya.com, m.ximalaya.com, mwsa.ximalaya.com, afd.baidu.com, appwk.baidu.com, ios.lantouzi.com, mpcs.suning.com, m.tuniu.com, api.jxedt.com, dns.jd.com, api.m.jd.com, m.jd.com, *.k.sohu.com, www.nfmovies.com, static01.versa-ai.com, gfp.veta.naver.com, mpos-pic.helipay.com, api.yikaobang.com.cn, god.gameyw.netease.com, image.spdbccc.com.cn, fbchina.flipchina.cn, media.qyer.com, webcast-open.douyin.com, ether-pack.pangolin-sdk-toutiao.com, api-access.pangolin-sdk-toutiao?.com, sf*-fe-tos.pglstatp-toutiao.com, restapi.iyunmai.com, static.shihuocdn.cn, weixin110.qq.com, appapi.huazhu.com, hweb-hotel.huazhu.com, hweb-manager.huazhu.com, lban.spdb.com.cn, wap.spdb.com, smart.789.image.mucang.cn, btrace.qq.com, img.dailmo.com, app.95598pay.com, reading-hl.snssdk.com, adproxy.autohome.com, ma.ofo.com, dl*.app.gtja.com, activity2.api.ofo.com, luckman.suning.com, app.xinpianchang.com, static.gameplus.qq.com, portal-xunyou.qingcdn.com, notch.qdaily.com, pan.baidu.com, tiebac.baidu.com, *.tieba.baidu.com, snailsleep.net, api.laifeng.com, fuss10.elemecdn.com, smkmp.96225.com, static.creditcard.hxb.com.cn, sf3-be-pack.pglstatp-toutiao.com, ossgw.alicdn.com, *.mgtv.com, oral.youdao.com, p.kuaidi100.com, mlife.jf365.boc.cn, heic.alicdn.com, acs.m.goofish.com, g-acs.m.goofish.com, dinamicx.alibabausercontent.com, www.tsytv.com, app2.autoimg.cn, www.iyingdi.cn, m.baidu.com, webboot.zhangyue.com, api4.bybutter.com, security.wechat.com, api.xiachufang.com, 4gimg.map.qq.com, p.du.163.com, support.you.163.com, apiwz.midukanshu.com, tc.qq.com, img.admobile.top, api.pinduoduo.com, cheyouapi.ycapp.yiche.com, api.kkmh.com, ad.ysepay.com, ports3.gtimg.com, i*.hdslb.com, m.yap.yahoo.com, webcdn.m.qq.com, rtbapi.douyucdn.cn, dapis.mting.info, qidian.qpic.cn, games.mobileapi.hupu.com, emdcadvertise.eastmoney.com, mime.baidu.com, api.club.lenovo.cn, img.allahall.com, staticsns.cdn.bcebos.com, api.wfdata.club, dsa-mfp.fengshows.cn, flowplus.meituan.net, ssp.dzh.com.cn, adm.10jqka.com.cn, stat.10jqka.com.cn, api.xueqiu.com, open.xueqiu.com, stock.xueqiu.com, 39.103.79.14, 39.106.97.84, 47.95.49.75, 101.201.62.20, 101.201.62.26, 101.201.175.228, 124.250.48.3, 182.92.145.50, 182.92.251.113, ios.fuliapps.com, pt-starimg.didistatic.com, omgup*.xiaojukeji.com, *.pipiapps.com, adstatic.peopleapp.com, otheve.beacon.qq.com, ptf.flyertrip.com, api.qbb6.com, res.xiaojukeji.com, conf.diditaxi.com.cn, yunbusiness.ccb.com, img.alicdn.com, capis.didapinche.com, ms.jr.jd.com, m.creditcard.ecitic.com, img.gdoil.cn, api.hanju.koudaibaobao.com, api.jr.mi.com, upload-bbs.mihoyo.com, gw-passenger.01zhuanche.com, img.yun.01zhuanche, ndstatic.cdn.bcebos.com, fc-video.cdn.bcebos.com, rp.hpplay.cn, dyncdn.me, pss.txffp.com, capis*.didapinche.com, dxy.com, staticlive.douyucdn.cn, edit.sinaapp.com, www1.elecfans.com, *.googlevideo.com, pocketuni.net, x.seeyouyima.com, axxd.xmseeyouyima.com, config-service.seeyouyima.com, j-image.missfresh.cn, cms.daydaycook.com, api.cloud.189.cn, mobile.cebbank.com, yghsh.cebbank.com, y.gtimg.cn, dss0.bdstatic.com, tb1.bdstatic.com, tb2.bdstatic.com, ss0.bdstatic.com, gss0.bdstatic.com, newclient.map.baidu.com, ossweb-img.qq.com, mea.meitudata.com, adui.tg.meitu.com, list-app-m.i4.cn, api.daydaycook.com, learn.chaoxing.com, interface.music.163.com, interface?.music.163.com, ipv4.music.163.com, mrobot.pconline.com.cn, res.kfc.com.cn, gw.kaola.com, api.huomao.com, mi.gdt.qq.com, fmapp.chinafamilymart.com.cn, app-gw.csdn.net, gw.csdn.net, app.58.com, cap.caocaokeji.cn, live-ads.huya.com, cdn.wup.huya.com, cdnfile1.msstatic.com, business.msstatic.com, ct.xiaojukeji.com, homepage-api.smzdm.com, haojia-api.smzdm.com, app-api.smzdm.com, user-api.smzdm.com, article-api.smzdm.com, qianbao.smzdm.com, s-api.smzdm.com, haojia.m.smzdm.com, adpai.thepaper.cn, www.baidu.com, *.tv.sohu.com, ih2.ireader.com, common.diditaxi.com.cn, display.wting.info, kano.guahao.cn, i-lq.snssdk.com, cloud.189.cn, ad.12306.cn, dl-cu-hz.lechange.cn, gae2-spclient.spotify.com, guc3-spclient.spotify.com, spclient.wg.spotify.com, dsp-impr2.youdao.com, api.rr.tv, *.pglstatp-toutiao.com, mobile.yangkeduo.com, api.yangkeduo.com, xyz.cnki.net, api.bjxkhc.com, d.psbc.com, fm.fenqile.com, client.app.coc.10086.cn, img.ddrk.me, ddrk.me, img.jiemian.com, message.shuqireader.com, ut2.shuqistat.com, dsp.toutiao.com, sq.sljkj.com, img-tailor.11222.cn, feedback.uc.cn, *.shuqireader.com, 101.91.69.26, gateway.shouqiev.com, api.gotokeep.com, kad.gotokeep.com, static1.keepcdn.com, mbank.grcbank.com, -i.vip.iqiyi.com, *.iqiyi.com, api-sams.walmartmobile.cn, api.htp.ad-scope.com.cn, appgw.ddpai.com, init.sms.mob.com, www.flyert.com, hcz-member.pingan.com.cn, jp.rsscc.com, jt.rsscc.com, appapi.51job*.com, cupid.51job*.com, api-ac.liepin.com, api-wanda.liepin.com, manga.bilibili.com, intellicc.bcs.cmbchina.com, api-cslp-emt.amazon.cn, m.airchina.com.cn, apphw.ddpai.com, waimai-guide.ele.me, 39.98.135.211, api.51credit.com, booking.bestwehotel.com, webapi.qmai.cn, miniapp.qmai.cn, gw3.ykccn.com, ec.ems.com.cn, ump.ems.com.cn, clubmed.bd.clubmedmnp.com, api.xiaoyuzhoufm.com, apis.folidaymall.com +hostname = *.gamersky.com, emisdatacenteraws.hafoo.com, spamblocker-api.zeekstudio.com, marketing.cmschina.com, www.tailgdd.com, mobile-consumer-sapp.chery.cn, order-app-api.lbdj.com, plt.yorentown.com, lawsonapi.yorentown.com, ecloud.tppension.cntaiping.com, cache.bydauto.com.cn, app-v1.ecoliving168.com, patient-api.suh.cn, userpms-api.suh.cn, se-api.djiits.com, dudian-oss.oss-cn-shenzhen.aliyuncs.com, imagepc.ctaiot.com, a.line.me, ad.line-scdn.net, buy.line.me, cix.line-apps.com, crs-event.line.me, d.line-scdn.net, gw.line.naver.jp, legy.line-apps.com, nelo2-col.linecorp.com, obs.line-scdn.net, scdn.line-apps.com, sch.line.me, static.line-scdn.net, uts-front.line-apps.com, w.line.me, vue3-api.zhixiny.cn, mbank5.jsbchina.cn, mobileapi.xiamenair.com, appapi.caiyicloud.com, res1.hubcloud.com.cn, vapp.tmuyun.com, api2.yaduo.com, api.gongkaoleida.com, magev6.if.qidian.com, syh.zybang.com, www.zybang.com, pzoap.moedot.net, app.api.d3yuiw4.com, app-izz.zhengzhou.gov.cn, creditcard.bankcomm.com, *.byteimg.com.*, www.cntv.cn, *.townmalls.cn, chat-live.soulapp.cn, api.flydigi.com, www.ymm56.com, app.ceair.com, mcsp.cloudpnr.com, saas-ad.cloudpnr.com, g.alicdn.com, api.huachenjie.com, open.e.kuaishou.cn, ad.shunchangzhixing.com, img01.51jobcdn.com, api5.youonbike.com, mgesq.api.mgtv.com, *.hitv.com, qiye.gaoding.com, gw.chuangkit.com, zlsdk.1rtb.net, web2.realtech-inc.com, sdk.1rtb.net, gw.xiaocantech.com, delivery-api.imdada.cn, adservice.sigmob.cn, api.u51.com, gateway.36kr.com, xxyx-client-api.xiaoxiaoyouxuan.com, statistic.live.126.net, zgrb.epicc.com.cn, compus.xiaofubao.com, imgx.jampp.com, ad.life.360.cn, wanciwangdata.oss-cn-beijing.aliyuncs.com, recite.perfectlingo.com, ggc.miguvideo.com, public-deliver9.miguvideo.com, display*-sc.miguvideo.com, recommend-dy.miguvideo.com, app-sc.miguvideo.com, common-sc.miguvideo.com, ggx*.miguvideo.com, ggic*.miguvideo.com, b-api.ins.miaopai.com, social.blued.cn, api.petkit.cn, ams-cdn.cdtft.cn, e.weather.com.cn, beehiveapi.58.com, apio.zhengqi100.com, res.hongyibo.com.cn, misc-api-prd-mx.wandafilm.com, e-static.aia.com.cn, api.sogaha.cn, api-miprint.hannto.com, api.indeedpower.com, alt-r.my.com, m.pvp.xoyo.com, *.pipix.com, daijia.kuaidadi.com, as.xiaojukeji.com, preprod.cdzghome.com, api.xbxxhz.com, api.petkit.cn, sfo.mddcloud.com.cn, mob.mddcloud.com.cn, toblog.ctobsnssdk.com, t-dsp.pinduoduo.com, mobads-pre-config.cdn.bcebos.com, sdk1xyajs.data.kuiniuca.com, conf-darwin.xycdn.com, *.ubixioe.com, www.xiaoxiongmeishu.com, gateway.benewtech.cn, ntt-app.benewtech.cn, open.e.kuaishou.cn, api-access.pangolin-sdk-toutiao-b.com, api-access.pangolin-sdk-toutiao.com, api-access.pangolin-sdk-toutiao1.com, dsp-x.jd.com, api-cfg.wtzw.com, p1-lm.adukwai.com, bk.bingo.qq.com, maicai.api.ddxq.mobi, gw.api.ddxq.mobi, user.api.ddxq.mobi, c.zhangle.com, midc.cdn-static.abchina.com.cn, enjoy.cdn-static.abchina.com, ocrifs.ejoy.sinopec.com, apicloud.zol.com, minipro.95504.net, service.haiersmarthomes.com, gugongmini.dpm.org.cn, wechat.tf.cn, chl.tf.cn, mbasecc.bas.cmbchina.com, mbasecc.bcs.cmbchina.com, intellicc.bas.cmbchina.com, bohe.sfo-tx-shanghai-01.saas.sensorsdata.cn, api.boohee.com, bohe.sfo-tx-shanghai-01.saas.sensorsdata.cn, lego.boohee.com, status.boohee.com, cdn.133.cn, acs.youku.com, push.m.youku.com, un-acs.youku.com, gw.alicdn.com, tiku.fenbi.com, napi.ithome.com, vapp.tmuyun.com, www.1314zhilv.com, mobile.flightradar24.com, api.17kjs.com, interface.aomiapp.com, oxadmin.cp.com.cn, home.umetrip.com, discardrp.umetrip.com, startup.umetrip.com, dictvip-business.youdao.com, dict.youdao.com, api-overmind.youdao.com, cdke.youdao.com, live.inst-service.htsc.com, gql.reddit.com, gql-fed.reddit.com, imcs.citicbank.com, mkt-gateway.tuhu.cn, tianqi.2345.com, shcss.suning.com, shcss.suning.com, oneapp-api.faw-vw.com, lens.leoao.com, www.binance.info, www.yingwangtech.net, www.binance.com, api.hengdianfilm.com, ump.sz.creditcard.ecitic.com, tbgapplet.carlsberg.asia, mbmodule-openapi.paas.cmbchina.com, api.zhihu.com, appcloud2.zhihu.com, m-cloud.zhihu.com, www.zhihu.com, zhuanlan.zhihu.com, link.zhihu.com, open-cms-api.quark.cn, vv.video.qq.com, evs.500.com, dq.dxy.cn, m.you.163.com, open-cms-api.uc.cn, *.yuxueyuan.cn, pan-api.bitqiu.com, iapi.bishijie.com, run.api.qyfxgd.cn, gongdu.youshu.cc, api.21ec74.com, ztoread.ziroom.com, iphone.ac.qq.com, api.00bang.cn, app.hbooker.com, api.sfacg.com, api3.cls.cn, gateway-api.dushu365.com, external.fcbox.com, dsp.fcbox.com, bdsp-x.jd.com, dsp-x.jd.com, app.homeinns.com, pic.edaijia.cn, cdn-evone-ceph.echargenet.com, mlol.qt.qq.com, gg.caixin.com, cn-acs.m.cainiao.com, zjdr666.com, adapi.izuiyou.com, access.mypikpak.com, open.fitdays.cn, ap.dongqiudi.com, 103.91.210.141, js-ad.ayximgs.com, pipi.4kya.com, tft-app.cdtft.cn, t1.market.xiaomi.com, b.appsimg.com, ios.sspai.com, zconfig.alibabausercontent.com, easyreadfs.nosdn.127.net, sp.kaola.com, mapi.dangdang.com, client.qunar.com, slapi.oray.net, api.internetofcity.cn, lcen.xiaote.net, venus.yhd.com, api.shenyin.name, mage*.if.qidian.com, e.dangdang.com, adproxy.autohome.com.cn, explorer.tratao.com, overseas.weico.cc, 118.178.214.118, client.mail.163.com, api.psy-1.com, cdn.*.chelaileapp.cn, *.laichon.com, api-ad-product.huxiu.com, jad-api.jin10.com, appactive.1234567.com.cn, service.busi.inke.cn, dispatcher.camera360.com, 47.110.187.87, ssp.soulapp.cn, api-account.soulapp.cn, api-global.soulapp.me, api-a.soulapp.cn, api-pay.soulapp.cn, gateway-mobile-gray.soulapp.cn, api-chat.soulapp.cn, post.soulapp.cn, api-user.soulapp.cn, beta-api.crunchyroll.com, helper.2bulu.com, tagit.hyhuo.com, top-widgets-api.xiaozujian.com, truthsocial.com, *mangaapi.manhuaren.*, apis.lifeweek.com.cn, yanxuan.nosdn.127.net, *.peopleapp.com, new-app-api.ylyk.com, *.58cdn.com.cn, creditcardapp.bankcomm.com, lchttpapi.xczim.com, *.chelaile.net.cn, api.xiaoyi.com, api.douban.com, sso.ifanr.com, s3plus.meituan.net, cdb.meituan.com, *.hoopchina.com, goblin.hupu.com, gmp.lakala.com, wallet.lakala.com, hz.yxzq.com, api.winbull8.com, editor.sm.cn, p0.pipi.cn, 182.92.244.70, ad.myfriday.cn, ios-api.lucklyworld.com, www.onstar.com.cn, facade-api.black-unique.com, cstore-en-public-tx.seewo.com, oneapph5.dongfeng-nissan.com.cn, cds.wifi188.com, homefront.qunar.com, sh-gateway.shihuo.cn, cgbank.oss-cn-shenzhen.aliyuncs.com, imeres.baidu.com, api.taptapdada.com, a.sinopecsales.com, api.nj.nbtv.cn, v3.wufazhuce.com, ma-adx.ctrip.com, yun.tuitiger.com, www.pushplus.plus, ad.mcloud.139.com, fastbuyer.zbj.com, xhtz.oss-cn-guangzhou.aliyuncs.com, promote-trx.helipay.com, hfapp-service.qweather.net, api.ulife.group, api.sodalife.xyz, app.chinahxzq.com.cn, hdgateway.zto.com, mobile-api.imlaidian.com, wxs-weixin.sd.zhumanggroup.com, s.jiediankeji.com, smarket.dian.so, file.dian.so, aag.enmonster.com, hd.xiaojukeji.com, freight.xiaojukeji.com, capis*.didapinche.com, ad.xiaotucc.com, mapi.xiaotucc.com, adsoss.zhinengxiyifang.cn, api-marketing.zhinengxiyifang.cn, ads.zhinengxiyifang.cn, app.missevan.com, bd-api.kuwo.cn, h5app.kuwo.cn, bodianimgcdn.kuwo.cn, mgxhtj.kuwo.cn, nmobi.kuwo.cn, searchrecterm.kuwo.cn, audiobookpay.kuwo.cn, musicpay.kuwo.cn, vip1.kuwo.cn, pacdn.m.stock.pingan.com, manga.bilibili.com, bid.adview.cn, zua.zhidiantianxia.cn, app.10086.cn, mrp.mcloud.139.com, *.i18n-pglstatp.com, api.wmpvp.com, m.prod.app.hsbcfts.com.cn, p*.pstatp.com, mapi.txcmapp.com, api-one-wscn.awtmt.com, fintechappdr.cgws.com, m.qianbao.qq.com, j1.pupuapi.com, 54.222.159.138, ad.lofter.com, images.pinduoduo.com, lofter.lf127.net, client.tujia.com, www.gcores.com, app02.vgtime.com, www.vgtime.com, app.meruki.cn, qimg.cdnmama.com, ecapi.lkcoffee.com, capi.lkcoffee.com, m.lkcoffee.com, gsp.gacmotor.com, appdmkj.5idream.net, www.onstar.com.cn, api.shanghaionstar.com, szdmobile.suzhou.gov.cn, ad.shunchangzhixing.com, api.bwton.com, z.onewo.com, plough.babytree.com, mapiweb.babytree.com, go.babytree.com, aimg.babytreeimg.com, *.ly.com, *.17usoft.com, *.17u.cn, mobilehotelapi.elong.com, quic-tcmapi.elong.com, blog.nilbt.com, www.banyuetanapp.com, ecard.shenzhentong.com, ccmsupport-sz.tenpay.com, dl.app.gtja.com, fuwu.nhsa.gov.cn, api?.sparke.cn, cube.elemecdn.com, nr-op.elemecdn.com, info.mina.xiaoaisound.com, marketing-aibox.v.mitvos.com, home.mi.com, tk.lanjiyin.com.cn, poplayer.template.alibaba.com, acs.m.taobao.com, amdc.m.taobao.com, guide-acs.m.taobao.com, api.alipan.com, member.alipan.com, acs-m.freshippo.com, mcs-mimp-web.sf-express.com, ucmp.sf-express.com, api.ncarzone.com, api.caiyunapp.com, wrapper.cyapi.cn, mres.aibank.com, direct.z-bank.com, mobile.1qianbao.com, middle.yun.139.com, mcmm.caiyun.feixin.10086.cn, cdn-oss.00bang.cn, mapi.sichuanair.com, b2baifanfan.baidu.com, app.badmintoncn.com, portal.zjzwfw.gov.cn, shopapi.io.mi.com, www.ahzs10000.com, quanguo.mygolbs.com, open.taou.com, h3.open.taou.com, sichuan.95504.net, app.10099.com.cn, sdk.alibaba.com.ailbaba.me, mrobot.pconline.com.cn, api.gameplus.qq.com, cdn.sdb.com.cn, creditcardapp.bankcomm.cn, router-app-api.jdcloud.com, api.yonghuivip.com, cdn.jlbank.com.cn, 3g.csair.com, gha.ghac.cn, webappcfg.paas.cmbchina.com, *.qyfxgd.cn, *.weilai555.com, *.ecoliving168.com, vip7.fzwdyy.cn, wcprd.hilton.com.cn, adx-cn.anythinktech.com, www.didapinche.com, client-api-v2.oray.com, sdk.alibaba.com, bgw.xinyue.qq.com, api.tipsoon.com, imeclient.openspeech.cn, m.360buyimg.com, business-cdn.shouji.sogou.com, ios.sogou.com, android.sogou.com, h5api.sginput.qq.com, m*.amap.com, optimus-ads.amap.com, pv.elife.icbc.com.cn, mangaapi.manhuaren.com, news.ssp.qq.com, ccsp-egmas.sf-express.com, zhidao.baidu.com, api.vistopia.com.cn, xyst.yuanfudao.com, mapi.appvipshop.com, guanyu.longfor.com, mp.weixin.qq.com, *.kingsoft-office-service.com, ptmpcap.caocaokeji.cn, pcauto.com.cn, mps.95508.com, i-lq.snssdk.com.*, img0*.luckincoffeecdn.com, app.zhoudamozi.com, apple.fuliapps.com, gurd.snssdk.com.*, peisongapi.meituan.com, cdn.kuaidi100.com, cdn.cmgadx.com, api.gamer.com.tw, impservice.dictapp.youdao.com, api.gaoqingdianshi.com, cdn.dianshihome.com, *.kakamobi.cn, 47.100.65.202, youtubei.googleapis.com, app.wy.guahao.com, mapi.sfbest.com, *.xiangxiangapps.com, cmsfile.wifi8.com, prom.mobile.gome.com.cn, nnapp.cloudbae.cn, api.21jingji.com, a.qiumibao.com, jdread-api.jd.com, open.qyer.com, app-api.niu.com, us.l.qq.com, qde.qunar.com, res.pizzahut.com.cn, book.img.ireader.com, aes.acfun.cn, api-new.app.acfun.cn, images.cib.com.cn, jiucaigongshe.oss-cn-beijing.aliyuncs.com, mage.if.qidian.com, app.aa-ab.com, zone.guiderank-app.com, richmanrules.ksedt.com, richmanapi.jxedt.com, geetest.htsc.com, 119.29.29.*, api.m.mi.com, awg.enmonster.com, api.haohaozhu.cn, du.hupucdn.com, apps.api.ke.com, api.ycapp.yiche.com, omgup*.xiaojukeji.com, issuecdn.baidupcs.com, gab.122.gov.cn, www.oschina.net, m.ibuscloud.com, app.api.versa-ai.com, ok.166.net, image*.benlailife.com, home.mi.com, djcapp.game.qq.com, static.xyzq.cn, iobs.pingan.com.cn, app3.qdaily.com, api.mcd.cn, api.mgzf.com, open.e.kuaishou.com, osg-static.sgcc.com.cn, osg-service.sgcc.com.cn, app.dewu.com, cdn.poizon.com, supportda.ofo.com, r6.mo.baidu.com, res.mi.baidu.com, mbd.baidu.com, capi.mwee.cn, m.client.10010.com, m1.ad.10010.com, res.mall.10010.cn, app.yinxiang.com, img.meituan.net, baidu.com, *-release.wuta-cam.com, cdnmobibank.bankofbeijing.com.cn, mapi.mafengwo.cn, mada-travel.17u.cn, ebk.17u.cn, api.izuiyou.com, appconf.mail.163.com, api.dangdang.com, cmsapi.wifi8.com, daoyu.sdo.com, gw.aihuishou.com, bp-api.bestv.com.cn, bp-image.bestv.com.cn, portal-portm.meituan.com, mall.meituan.com, cdn-xyk-app.bankofbeijing.com.cn, thor.weidian.com, open3.vistastory.com, i.ys7.com, so.xiaohongshu.com, www.xiaohongshu.com, edith.xiaohongshu.com, ci.xiaohongshu.com, rec.xiaohongshu.com, api.caijingmobile.com, j5.dfcfw.com, capi.douyucdn.cn, icc.one, api.coolapk.com, ios.xiangjiaoapps.com, img.wukongtv.com, service.4gtv.tv, static.api.m.panda.tv, api-mifit*.huami.com, channel.beitaichufang.com, static.95508.com, wap.bank.ecitic.com, file.cibfintech.com, api*.futunn.com, mob.mddcloud.com, i.snssdk.com.*, images.client.vip.xunlei.com, api-shoulei-ssl.xunlei.com, elemecdn.com, l*.51fanli.net, app.zhuanzhuan.com, *.bdstatic.com, rs.creditcard.cmbc.com.cn, ocean.shuqireader.com, api.fengshows.com, sh-gateway.shihuo.cn, api.touker.com, app.variflight.com, sofire.baidu.com, www.cmbc.com.cn, img01.10101111cdn.com, r.inews.qq.com, gslbali.ximalaya.com, search.ximalaya.com, searchwsa.ximalaya.com, mobile.ximalaya.com, mobilehera.ximalaya.com, mobwsa.ximalaya.com, m.ximalaya.com, mwsa.ximalaya.com, afd.baidu.com, appwk.baidu.com, ios.lantouzi.com, mpcs.suning.com, m.tuniu.com, api.jxedt.com, dns.jd.com, api.m.jd.com, m.jd.com, *.k.sohu.com, www.nfmovies.com, static01.versa-ai.com, gfp.veta.naver.com, mpos-pic.helipay.com, api.yikaobang.com.cn, god.gameyw.netease.com, image.spdbccc.com.cn, fbchina.flipchina.cn, media.qyer.com, webcast-open.douyin.com, ether-pack.pangolin-sdk-toutiao.com, api-access.pangolin-sdk-toutiao?.com, sf*-fe-tos.pglstatp-toutiao.com, restapi.iyunmai.com, static.shihuocdn.cn, weixin110.qq.com, appapi.huazhu.com, hweb-hotel.huazhu.com, hweb-manager.huazhu.com, lban.spdb.com.cn, wap.spdb.com, smart.789.image.mucang.cn, btrace.qq.com, img.dailmo.com, app.95598pay.com, reading-hl.snssdk.com, adproxy.autohome.com, ma.ofo.com, dl*.app.gtja.com, activity2.api.ofo.com, luckman.suning.com, app.xinpianchang.com, static.gameplus.qq.com, portal-xunyou.qingcdn.com, notch.qdaily.com, pan.baidu.com, tiebac.baidu.com, *.tieba.baidu.com, snailsleep.net, api.laifeng.com, fuss10.elemecdn.com, smkmp.96225.com, static.creditcard.hxb.com.cn, sf3-be-pack.pglstatp-toutiao.com, ossgw.alicdn.com, *.mgtv.com, oral.youdao.com, p.kuaidi100.com, mlife.jf365.boc.cn, heic.alicdn.com, acs.m.goofish.com, g-acs.m.goofish.com, dinamicx.alibabausercontent.com, www.tsytv.com, app2.autoimg.cn, www.iyingdi.cn, m.baidu.com, webboot.zhangyue.com, api4.bybutter.com, security.wechat.com, api.xiachufang.com, 4gimg.map.qq.com, p.du.163.com, support.you.163.com, apiwz.midukanshu.com, tc.qq.com, img.admobile.top, api.pinduoduo.com, cheyouapi.ycapp.yiche.com, api.kkmh.com, ad.ysepay.com, ports3.gtimg.com, i*.hdslb.com, m.yap.yahoo.com, webcdn.m.qq.com, rtbapi.douyucdn.cn, dapis.mting.info, qidian.qpic.cn, games.mobileapi.hupu.com, emdcadvertise.eastmoney.com, mime.baidu.com, api.club.lenovo.cn, img.allahall.com, staticsns.cdn.bcebos.com, api.wfdata.club, dsa-mfp.fengshows.cn, flowplus.meituan.net, ssp.dzh.com.cn, adm.10jqka.com.cn, stat.10jqka.com.cn, api.xueqiu.com, open.xueqiu.com, stock.xueqiu.com, 39.103.79.14, 39.106.97.84, 47.95.49.75, 101.201.62.20, 101.201.62.26, 101.201.175.228, 124.250.48.3, 182.92.145.50, 182.92.251.113, ios.fuliapps.com, pt-starimg.didistatic.com, omgup*.xiaojukeji.com, *.pipiapps.com, adstatic.peopleapp.com, otheve.beacon.qq.com, ptf.flyertrip.com, api.qbb6.com, res.xiaojukeji.com, conf.diditaxi.com.cn, yunbusiness.ccb.com, img.alicdn.com, capis.didapinche.com, ms.jr.jd.com, m.creditcard.ecitic.com, img.gdoil.cn, api.hanju.koudaibaobao.com, api.jr.mi.com, upload-bbs.mihoyo.com, gw-passenger.01zhuanche.com, img.yun.01zhuanche, ndstatic.cdn.bcebos.com, fc-video.cdn.bcebos.com, rp.hpplay.cn, dyncdn.me, pss.txffp.com, capis*.didapinche.com, dxy.com, staticlive.douyucdn.cn, edit.sinaapp.com, www1.elecfans.com, *.googlevideo.com, pocketuni.net, x.seeyouyima.com, axxd.xmseeyouyima.com, config-service.seeyouyima.com, j-image.missfresh.cn, cms.daydaycook.com, api.cloud.189.cn, mobile.cebbank.com, yghsh.cebbank.com, y.gtimg.cn, dss0.bdstatic.com, tb1.bdstatic.com, tb2.bdstatic.com, ss0.bdstatic.com, gss0.bdstatic.com, newclient.map.baidu.com, ossweb-img.qq.com, mea.meitudata.com, adui.tg.meitu.com, list-app-m.i4.cn, api.daydaycook.com, learn.chaoxing.com, interface.music.163.com, interface?.music.163.com, ipv4.music.163.com, mrobot.pconline.com.cn, res.kfc.com.cn, gw.kaola.com, api.huomao.com, mi.gdt.qq.com, fmapp.chinafamilymart.com.cn, app-gw.csdn.net, gw.csdn.net, app.58.com, cap.caocaokeji.cn, live-ads.huya.com, cdn.wup.huya.com, cdnfile1.msstatic.com, business.msstatic.com, ct.xiaojukeji.com, homepage-api.smzdm.com, haojia-api.smzdm.com, app-api.smzdm.com, user-api.smzdm.com, article-api.smzdm.com, qianbao.smzdm.com, s-api.smzdm.com, haojia.m.smzdm.com, adpai.thepaper.cn, www.baidu.com, *.tv.sohu.com, ih2.ireader.com, common.diditaxi.com.cn, display.wting.info, kano.guahao.cn, i-lq.snssdk.com, cloud.189.cn, ad.12306.cn, dl-cu-hz.lechange.cn, *-spclient.spotify.com, spclient.wg.spotify.com, dsp-impr2.youdao.com, api.rr.tv, *.pglstatp-toutiao.com, mobile.yangkeduo.com, api.yangkeduo.com, xyz.cnki.net, api.bjxkhc.com, d.psbc.com, fm.fenqile.com, client.app.coc.10086.cn, img.ddrk.me, ddrk.me, img.jiemian.com, message.shuqireader.com, ut2.shuqistat.com, dsp.toutiao.com, sq.sljkj.com, img-tailor.11222.cn, feedback.uc.cn, *.shuqireader.com, 101.91.69.26, gateway.shouqiev.com, api.gotokeep.com, kad.gotokeep.com, static1.keepcdn.com, mbank.grcbank.com, -i.vip.iqiyi.com, *.iqiyi.com, api-sams.walmartmobile.cn, api.htp.ad-scope.com.cn, appgw.ddpai.com, init.sms.mob.com, www.flyert.com, hcz-member.pingan.com.cn, jp.rsscc.com, jt.rsscc.com, appapi.51job*.com, cupid.51job*.com, api-ac.liepin.com, api-wanda.liepin.com, manga.bilibili.com, intellicc.bcs.cmbchina.com, api-cslp-emt.amazon.cn, m.airchina.com.cn, apphw.ddpai.com, waimai-guide.ele.me, 39.98.135.211, api.51credit.com, booking.bestwehotel.com, webapi.qmai.cn, miniapp.qmai.cn, gw3.ykccn.com, ec.ems.com.cn, ump.ems.com.cn, clubmed.bd.clubmedmnp.com, api.xiaoyuzhoufm.com, apis.folidaymall.com diff --git a/Scripts/bilibili/bilibiliShare.cookie.js b/Scripts/bilibili/bilibiliShare.cookie.js deleted file mode 100644 index de4f650a..00000000 --- a/Scripts/bilibili/bilibiliShare.cookie.js +++ /dev/null @@ -1,41 +0,0 @@ -/*********************************** - > 应用名称:Bilibili大会员通用破解模板-获取共享cookie - > 软件版本:7.63.0 - > 解锁说明:解锁VIP番剧和影视 - > 更新时间:2024-09-03 - 使用方法: - 1、找一个有大会员的账号,将本脚本加入重写用于获取共享cookie - 2、打开B站随便播放一个视频,提示“B站会员获取共享cookie成功”即可【可能会疯狂获取】,此时关闭这个脚本!! - 3、在脚本日志中会打印获取到的数据Key和Value,按照BoxJS对应的Key填入,点击保存 - 4、将脚本https://raw.githubusercontent.com/fmz200/wool_scripts/main/Scripts/bilibili/bilibiliShare.js加入重写 - 5、打开自己的B站,测试可用性。 - - QX配置: - [rewrite_local] - # Bilibili大会员(2024-01-14) - ^https?:\/\/((app|api)\.(\w{2,15})?\.(com|cn)).*player.*\.(v3|v2|v1).*Play(URL|View|Conf).*$ url script-request-header https://raw.githubusercontent.com/fmz200/wool_scripts/main/Scripts/bilibili/bilibiliShare.cookie.js - - [mitm] - hostname = app.bilibili.com, grpc.biliapi.net,*.biliapi.net,app.bilibili.com,api.bilibili.com,api.live.bilibili.com,api.vc.bilibili.com,dataflow.biliapi.com,124.239.240.*,101.89.57.66, 218.94.210.66,240e:b1:9801:206:11:0:0:* - - ***********************************/ -const $ = new Env("Bilibili大会员通用破解模板-获取共享cookie"); -const req_url = $request.url; -const req_headers = $request.headers; - -console.log(`当前url:${req_url}`); -// 遍历头部对象并打印每个字段和值 -console.log("遍历头部对象并打印每个字段和值开始❇️"); -for (const headerField in req_headers) { - console.log(`${headerField}:❣️${req_headers[headerField]}`); -} -console.log("遍历头部对象并打印每个字段和值结束🍓"); - -// TODO: 塞到缓存中可从BoxJS一键复制 -// $.write(cacheValue, '#fmz200_bilibili_share'); -$.notify('B站会员获取共享cookie成功✅', "可到脚本日志中查看具体内容", ""); - -/*********************************** API *************************************/ -function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;"POST"===e&&(s=this.post);const i=new Promise(((e,i)=>{s.call(this,t,((t,s,o)=>{t?i(t):e(s)}))}));return t.timeout?((t,e=1e3)=>Promise.race([t,new Promise(((t,s)=>{setTimeout((()=>{s(new Error("请求超时"))}),e)}))]))(i,t.timeout):i}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.logLevels={debug:0,info:1,warn:2,error:3},this.logLevelPrefixs={debug:"[DEBUG] ",info:"[INFO] ",warn:"[WARN] ",error:"[ERROR] "},this.logLevel="info",this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.encoding="utf-8",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}getEnv(){return"undefined"!=typeof $environment&&$environment["surge-version"]?"Surge":"undefined"!=typeof $environment&&$environment["stash-version"]?"Stash":"undefined"!=typeof module&&module.exports?"Node.js":"undefined"!=typeof $task?"Quantumult X":"undefined"!=typeof $loon?"Loon":"undefined"!=typeof $rocket?"Shadowrocket":void 0}isNode(){return"Node.js"===this.getEnv()}isQuanX(){return"Quantumult X"===this.getEnv()}isSurge(){return"Surge"===this.getEnv()}isLoon(){return"Loon"===this.getEnv()}isShadowrocket(){return"Shadowrocket"===this.getEnv()}isStash(){return"Stash"===this.getEnv()}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null,...s){try{return JSON.stringify(t,...s)}catch{return e}}getjson(t,e){let s=e;if(this.getdata(t))try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise((e=>{this.get({url:t},((t,s,i)=>e(i)))}))}runScript(t,e){return new Promise((s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let o=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");o=o?1*o:20,o=e&&e.timeout?e.timeout:o;const[r,a]=i.split("@"),n={url:`http://${a}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:o},headers:{"X-Key":r,Accept:"*/*"},policy:"DIRECT",timeout:o};this.post(n,((t,e,i)=>s(i)))})).catch((t=>this.logErr(t)))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),o=JSON.stringify(this.data);s?this.fs.writeFileSync(t,o):i?this.fs.writeFileSync(e,o):this.fs.writeFileSync(t,o)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let o=t;for(const t of i)if(o=Object(o)[t],void 0===o)return s;return o}lodash_set(t,e,s){return Object(t)!==t||(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce(((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{}),t)[e[e.length-1]]=s),t}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),o=s?this.getval(s):"";if(o)try{const t=JSON.parse(o);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,o]=/^@(.*?)\.(.*?)$/.exec(e),r=this.getval(i),a=i?"null"===r?null:r||"{}":"{}";try{const e=JSON.parse(a);this.lodash_set(e,o,t),s=this.setval(JSON.stringify(e),i)}catch(e){const r={};this.lodash_set(r,o,t),s=this.setval(JSON.stringify(r),i)}}else s=this.setval(t,e);return s}getval(t){switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":return $persistentStore.read(t);case"Quantumult X":return $prefs.valueForKey(t);case"Node.js":return this.data=this.loaddata(),this.data[t];default:return this.data&&this.data[t]||null}}setval(t,e){switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":return $persistentStore.write(t,e);case"Quantumult X":return $prefs.setValueForKey(t,e);case"Node.js":return this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0;default:return this.data&&this.data[e]||null}}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.cookie&&void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar)))}get(t,e=(()=>{})){switch(t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"],delete t.headers["content-type"],delete t.headers["content-length"]),t.params&&(t.url+="?"+this.queryStr(t.params)),void 0===t.followRedirect||t.followRedirect||((this.isSurge()||this.isLoon())&&(t["auto-redirect"]=!1),this.isQuanX()&&(t.opts?t.opts.redirection=!1:t.opts={redirection:!1})),this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":default:this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,((t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status?s.status:s.statusCode,s.status=s.statusCode),e(t,s,i)}));break;case"Quantumult X":this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then((t=>{const{statusCode:s,statusCode:i,headers:o,body:r,bodyBytes:a}=t;e(null,{status:s,statusCode:i,headers:o,body:r,bodyBytes:a},r,a)}),(t=>e(t&&t.error||"UndefinedError")));break;case"Node.js":let s=require("iconv-lite");this.initGotEnv(t),this.got(t).on("redirect",((t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}})).then((t=>{const{statusCode:i,statusCode:o,headers:r,rawBody:a}=t,n=s.decode(a,this.encoding);e(null,{status:i,statusCode:o,headers:r,rawBody:a,body:n},n)}),(t=>{const{message:i,response:o}=t;e(i,o,o&&s.decode(o.rawBody,this.encoding))}));break}}post(t,e=(()=>{})){const s=t.method?t.method.toLocaleLowerCase():"post";switch(t.body&&t.headers&&!t.headers["Content-Type"]&&!t.headers["content-type"]&&(t.headers["content-type"]="application/x-www-form-urlencoded"),t.headers&&(delete t.headers["Content-Length"],delete t.headers["content-length"]),void 0===t.followRedirect||t.followRedirect||((this.isSurge()||this.isLoon())&&(t["auto-redirect"]=!1),this.isQuanX()&&(t.opts?t.opts.redirection=!1:t.opts={redirection:!1})),this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":default:this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient[s](t,((t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status?s.status:s.statusCode,s.status=s.statusCode),e(t,s,i)}));break;case"Quantumult X":t.method=s,this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then((t=>{const{statusCode:s,statusCode:i,headers:o,body:r,bodyBytes:a}=t;e(null,{status:s,statusCode:i,headers:o,body:r,bodyBytes:a},r,a)}),(t=>e(t&&t.error||"UndefinedError")));break;case"Node.js":let i=require("iconv-lite");this.initGotEnv(t);const{url:o,...r}=t;this.got[s](o,r).then((t=>{const{statusCode:s,statusCode:o,headers:r,rawBody:a}=t,n=i.decode(a,this.encoding);e(null,{status:s,statusCode:o,headers:r,rawBody:a,body:n},n)}),(t=>{const{message:s,response:o}=t;e(s,o,o&&i.decode(o.rawBody,this.encoding))}));break}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}queryStr(t){let e="";for(const s in t){let i=t[s];null!=i&&""!==i&&("object"==typeof i&&(i=JSON.stringify(i)),e+=`${s}=${i}&`)}return e=e.substring(0,e.length-1),e}msg(e=t,s="",i="",o={}){const r=t=>{const{$open:e,$copy:s,$media:i,$mediaMime:o}=t;switch(typeof t){case void 0:return t;case"string":switch(this.getEnv()){case"Surge":case"Stash":default:return{url:t};case"Loon":case"Shadowrocket":return t;case"Quantumult X":return{"open-url":t};case"Node.js":return}case"object":switch(this.getEnv()){case"Surge":case"Stash":case"Shadowrocket":default:{const r={};let a=t.openUrl||t.url||t["open-url"]||e;a&&Object.assign(r,{action:"open-url",url:a});let n=t["update-pasteboard"]||t.updatePasteboard||s;if(n&&Object.assign(r,{action:"clipboard",text:n}),i){let t,e,s;if(i.startsWith("http"))t=i;else if(i.startsWith("data:")){const[t]=i.split(";"),[,o]=i.split(",");e=o,s=t.replace("data:","")}else{e=i,s=(t=>{const e={JVBERi0:"application/pdf",R0lGODdh:"image/gif",R0lGODlh:"image/gif",iVBORw0KGgo:"image/png","/9j/":"image/jpg"};for(var s in e)if(0===t.indexOf(s))return e[s];return null})(i)}Object.assign(r,{"media-url":t,"media-base64":e,"media-base64-mime":o??s})}return Object.assign(r,{"auto-dismiss":t["auto-dismiss"],sound:t.sound}),r}case"Loon":{const s={};let o=t.openUrl||t.url||t["open-url"]||e;o&&Object.assign(s,{openUrl:o});let r=t.mediaUrl||t["media-url"];return i?.startsWith("http")&&(r=i),r&&Object.assign(s,{mediaUrl:r}),console.log(JSON.stringify(s)),s}case"Quantumult X":{const o={};let r=t["open-url"]||t.url||t.openUrl||e;r&&Object.assign(o,{"open-url":r});let a=t["media-url"]||t.mediaUrl;i?.startsWith("http")&&(a=i),a&&Object.assign(o,{"media-url":a});let n=t["update-pasteboard"]||t.updatePasteboard||s;return n&&Object.assign(o,{"update-pasteboard":n}),console.log(JSON.stringify(o)),o}case"Node.js":return}default:return}};if(!this.isMute)switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":default:$notification.post(e,s,i,r(o));break;case"Quantumult X":$notify(e,s,i,r(o));break;case"Node.js":break}if(!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}debug(...t){this.logLevels[this.logLevel]<=this.logLevels.debug&&(t.length>0&&(this.logs=[...this.logs,...t]),console.log(`${this.logLevelPrefixs.debug}${t.map((t=>t??String(t))).join(this.logSeparator)}`))}info(...t){this.logLevels[this.logLevel]<=this.logLevels.info&&(t.length>0&&(this.logs=[...this.logs,...t]),console.log(`${this.logLevelPrefixs.info}${t.map((t=>t??String(t))).join(this.logSeparator)}`))}warn(...t){this.logLevels[this.logLevel]<=this.logLevels.warn&&(t.length>0&&(this.logs=[...this.logs,...t]),console.log(`${this.logLevelPrefixs.warn}${t.map((t=>t??String(t))).join(this.logSeparator)}`))}error(...t){this.logLevels[this.logLevel]<=this.logLevels.error&&(t.length>0&&(this.logs=[...this.logs,...t]),console.log(`${this.logLevelPrefixs.error}${t.map((t=>t??String(t))).join(this.logSeparator)}`))}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.map((t=>t??String(t))).join(this.logSeparator))}logErr(t,e){switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":case"Quantumult X":default:this.log("",`❗️${this.name}, 错误!`,e,t);break;case"Node.js":this.log("",`❗️${this.name}, 错误!`,e,void 0!==t.message?t.message:t,t.stack);break}}wait(t){return new Promise((e=>setTimeout(e,t)))}done(t={}){const e=((new Date).getTime()-this.startTime)/1e3;switch(this.log("",`🔔${this.name}, 结束! 🕛 ${e} 秒`),this.log(),this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":case"Quantumult X":default:$done(t);break;case"Node.js":process.exit(1)}}}(t,e)} -/*****************************************************************************/ - diff --git a/Scripts/bilibili/bilibiliShare.js b/Scripts/bilibili/bilibiliShare.js deleted file mode 100644 index bcbf0cae..00000000 --- a/Scripts/bilibili/bilibiliShare.js +++ /dev/null @@ -1,37 +0,0 @@ -/*********************************** - > 应用名称:Bilibili大会员通用破解模板 - > 软件版本:7.63.0 - > 解锁说明:解锁VIP番剧和影视 - > 更新时间:2024-09-03 - 使用方法:https://raw.githubusercontent.com/fmz200/wool_scripts/main/Scripts/bilibili/bilibiliShare.cookie.js - - QX配置: - [rewrite_local] - # Bilibili大会员(2024-01-14) - ^https?:\/\/((app|api)\.(\w{2,15})?\.(com|cn)).*player.*\.(v3|v2|v1).*Play(URL|View|Conf).*$ url script-request-header https://raw.githubusercontent.com/fmz200/wool_scripts/main/Scripts/bilibili/bilibiliShare.js - - [mitm] - hostname = app.bilibili.com, grpc.biliapi.net,*.biliapi.net,app.bilibili.com,api.bilibili.com,api.live.bilibili.com,api.vc.bilibili.com,dataflow.biliapi.com,124.239.240.*,101.89.57.66, 218.94.210.66,240e:b1:9801:206:11:0:0:* - - ***********************************/ -const $ = new Env("Bilibili大会员通用破解模板"); - -let modifiedHeaders = $request['headers']; - -modifiedHeaders['Cookie'] = $.getdata('Cookie'); -modifiedHeaders['x-bili-device-bin'] = $.getdata('x-bili-device-bin'); -modifiedHeaders['Authorization'] = $.getdata('Authorization'); -modifiedHeaders['User-Agent'] = $.getdata('User-Agent'); -modifiedHeaders['buvid'] = $.getdata('buvid'); -modifiedHeaders['x-bili-metadata-bin'] = $.getdata('x-bili-metadata-bin'); -modifiedHeaders['x-bili-locale-bin'] = $.getdata('x-bili-locale-bin'); -modifiedHeaders['x-bili-network-bin'] = $.getdata('x-bili-network-bin'); -modifiedHeaders['x-bili-fawkes-req-bin'] = $.getdata('x-bili-fawkes-req-bin'); -modifiedHeaders['x-bili-trace-id'] = $.getdata('x-bili-trace-id'); - -$done({'headers': modifiedHeaders}); - - -/*********************************** API *************************************/ -function Env(t,e){class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;"POST"===e&&(s=this.post);const i=new Promise(((e,i)=>{s.call(this,t,((t,s,o)=>{t?i(t):e(s)}))}));return t.timeout?((t,e=1e3)=>Promise.race([t,new Promise(((t,s)=>{setTimeout((()=>{s(new Error("请求超时"))}),e)}))]))(i,t.timeout):i}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.logLevels={debug:0,info:1,warn:2,error:3},this.logLevelPrefixs={debug:"[DEBUG] ",info:"[INFO] ",warn:"[WARN] ",error:"[ERROR] "},this.logLevel="info",this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.encoding="utf-8",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}getEnv(){return"undefined"!=typeof $environment&&$environment["surge-version"]?"Surge":"undefined"!=typeof $environment&&$environment["stash-version"]?"Stash":"undefined"!=typeof module&&module.exports?"Node.js":"undefined"!=typeof $task?"Quantumult X":"undefined"!=typeof $loon?"Loon":"undefined"!=typeof $rocket?"Shadowrocket":void 0}isNode(){return"Node.js"===this.getEnv()}isQuanX(){return"Quantumult X"===this.getEnv()}isSurge(){return"Surge"===this.getEnv()}isLoon(){return"Loon"===this.getEnv()}isShadowrocket(){return"Shadowrocket"===this.getEnv()}isStash(){return"Stash"===this.getEnv()}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null,...s){try{return JSON.stringify(t,...s)}catch{return e}}getjson(t,e){let s=e;if(this.getdata(t))try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise((e=>{this.get({url:t},((t,s,i)=>e(i)))}))}runScript(t,e){return new Promise((s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let o=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");o=o?1*o:20,o=e&&e.timeout?e.timeout:o;const[r,a]=i.split("@"),n={url:`http://${a}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:o},headers:{"X-Key":r,Accept:"*/*"},policy:"DIRECT",timeout:o};this.post(n,((t,e,i)=>s(i)))})).catch((t=>this.logErr(t)))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),o=JSON.stringify(this.data);s?this.fs.writeFileSync(t,o):i?this.fs.writeFileSync(e,o):this.fs.writeFileSync(t,o)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let o=t;for(const t of i)if(o=Object(o)[t],void 0===o)return s;return o}lodash_set(t,e,s){return Object(t)!==t||(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce(((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{}),t)[e[e.length-1]]=s),t}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),o=s?this.getval(s):"";if(o)try{const t=JSON.parse(o);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,o]=/^@(.*?)\.(.*?)$/.exec(e),r=this.getval(i),a=i?"null"===r?null:r||"{}":"{}";try{const e=JSON.parse(a);this.lodash_set(e,o,t),s=this.setval(JSON.stringify(e),i)}catch(e){const r={};this.lodash_set(r,o,t),s=this.setval(JSON.stringify(r),i)}}else s=this.setval(t,e);return s}getval(t){switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":return $persistentStore.read(t);case"Quantumult X":return $prefs.valueForKey(t);case"Node.js":return this.data=this.loaddata(),this.data[t];default:return this.data&&this.data[t]||null}}setval(t,e){switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":return $persistentStore.write(t,e);case"Quantumult X":return $prefs.setValueForKey(t,e);case"Node.js":return this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0;default:return this.data&&this.data[e]||null}}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.cookie&&void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar)))}get(t,e=(()=>{})){switch(t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"],delete t.headers["content-type"],delete t.headers["content-length"]),t.params&&(t.url+="?"+this.queryStr(t.params)),void 0===t.followRedirect||t.followRedirect||((this.isSurge()||this.isLoon())&&(t["auto-redirect"]=!1),this.isQuanX()&&(t.opts?t.opts.redirection=!1:t.opts={redirection:!1})),this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":default:this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,((t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status?s.status:s.statusCode,s.status=s.statusCode),e(t,s,i)}));break;case"Quantumult X":this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then((t=>{const{statusCode:s,statusCode:i,headers:o,body:r,bodyBytes:a}=t;e(null,{status:s,statusCode:i,headers:o,body:r,bodyBytes:a},r,a)}),(t=>e(t&&t.error||"UndefinedError")));break;case"Node.js":let s=require("iconv-lite");this.initGotEnv(t),this.got(t).on("redirect",((t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}})).then((t=>{const{statusCode:i,statusCode:o,headers:r,rawBody:a}=t,n=s.decode(a,this.encoding);e(null,{status:i,statusCode:o,headers:r,rawBody:a,body:n},n)}),(t=>{const{message:i,response:o}=t;e(i,o,o&&s.decode(o.rawBody,this.encoding))}));break}}post(t,e=(()=>{})){const s=t.method?t.method.toLocaleLowerCase():"post";switch(t.body&&t.headers&&!t.headers["Content-Type"]&&!t.headers["content-type"]&&(t.headers["content-type"]="application/x-www-form-urlencoded"),t.headers&&(delete t.headers["Content-Length"],delete t.headers["content-length"]),void 0===t.followRedirect||t.followRedirect||((this.isSurge()||this.isLoon())&&(t["auto-redirect"]=!1),this.isQuanX()&&(t.opts?t.opts.redirection=!1:t.opts={redirection:!1})),this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":default:this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient[s](t,((t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status?s.status:s.statusCode,s.status=s.statusCode),e(t,s,i)}));break;case"Quantumult X":t.method=s,this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then((t=>{const{statusCode:s,statusCode:i,headers:o,body:r,bodyBytes:a}=t;e(null,{status:s,statusCode:i,headers:o,body:r,bodyBytes:a},r,a)}),(t=>e(t&&t.error||"UndefinedError")));break;case"Node.js":let i=require("iconv-lite");this.initGotEnv(t);const{url:o,...r}=t;this.got[s](o,r).then((t=>{const{statusCode:s,statusCode:o,headers:r,rawBody:a}=t,n=i.decode(a,this.encoding);e(null,{status:s,statusCode:o,headers:r,rawBody:a,body:n},n)}),(t=>{const{message:s,response:o}=t;e(s,o,o&&i.decode(o.rawBody,this.encoding))}));break}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}queryStr(t){let e="";for(const s in t){let i=t[s];null!=i&&""!==i&&("object"==typeof i&&(i=JSON.stringify(i)),e+=`${s}=${i}&`)}return e=e.substring(0,e.length-1),e}msg(e=t,s="",i="",o={}){const r=t=>{const{$open:e,$copy:s,$media:i,$mediaMime:o}=t;switch(typeof t){case void 0:return t;case"string":switch(this.getEnv()){case"Surge":case"Stash":default:return{url:t};case"Loon":case"Shadowrocket":return t;case"Quantumult X":return{"open-url":t};case"Node.js":return}case"object":switch(this.getEnv()){case"Surge":case"Stash":case"Shadowrocket":default:{const r={};let a=t.openUrl||t.url||t["open-url"]||e;a&&Object.assign(r,{action:"open-url",url:a});let n=t["update-pasteboard"]||t.updatePasteboard||s;if(n&&Object.assign(r,{action:"clipboard",text:n}),i){let t,e,s;if(i.startsWith("http"))t=i;else if(i.startsWith("data:")){const[t]=i.split(";"),[,o]=i.split(",");e=o,s=t.replace("data:","")}else{e=i,s=(t=>{const e={JVBERi0:"application/pdf",R0lGODdh:"image/gif",R0lGODlh:"image/gif",iVBORw0KGgo:"image/png","/9j/":"image/jpg"};for(var s in e)if(0===t.indexOf(s))return e[s];return null})(i)}Object.assign(r,{"media-url":t,"media-base64":e,"media-base64-mime":o??s})}return Object.assign(r,{"auto-dismiss":t["auto-dismiss"],sound:t.sound}),r}case"Loon":{const s={};let o=t.openUrl||t.url||t["open-url"]||e;o&&Object.assign(s,{openUrl:o});let r=t.mediaUrl||t["media-url"];return i?.startsWith("http")&&(r=i),r&&Object.assign(s,{mediaUrl:r}),console.log(JSON.stringify(s)),s}case"Quantumult X":{const o={};let r=t["open-url"]||t.url||t.openUrl||e;r&&Object.assign(o,{"open-url":r});let a=t["media-url"]||t.mediaUrl;i?.startsWith("http")&&(a=i),a&&Object.assign(o,{"media-url":a});let n=t["update-pasteboard"]||t.updatePasteboard||s;return n&&Object.assign(o,{"update-pasteboard":n}),console.log(JSON.stringify(o)),o}case"Node.js":return}default:return}};if(!this.isMute)switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":default:$notification.post(e,s,i,r(o));break;case"Quantumult X":$notify(e,s,i,r(o));break;case"Node.js":break}if(!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}debug(...t){this.logLevels[this.logLevel]<=this.logLevels.debug&&(t.length>0&&(this.logs=[...this.logs,...t]),console.log(`${this.logLevelPrefixs.debug}${t.map((t=>t??String(t))).join(this.logSeparator)}`))}info(...t){this.logLevels[this.logLevel]<=this.logLevels.info&&(t.length>0&&(this.logs=[...this.logs,...t]),console.log(`${this.logLevelPrefixs.info}${t.map((t=>t??String(t))).join(this.logSeparator)}`))}warn(...t){this.logLevels[this.logLevel]<=this.logLevels.warn&&(t.length>0&&(this.logs=[...this.logs,...t]),console.log(`${this.logLevelPrefixs.warn}${t.map((t=>t??String(t))).join(this.logSeparator)}`))}error(...t){this.logLevels[this.logLevel]<=this.logLevels.error&&(t.length>0&&(this.logs=[...this.logs,...t]),console.log(`${this.logLevelPrefixs.error}${t.map((t=>t??String(t))).join(this.logSeparator)}`))}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.map((t=>t??String(t))).join(this.logSeparator))}logErr(t,e){switch(this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":case"Quantumult X":default:this.log("",`❗️${this.name}, 错误!`,e,t);break;case"Node.js":this.log("",`❗️${this.name}, 错误!`,e,void 0!==t.message?t.message:t,t.stack);break}}wait(t){return new Promise((e=>setTimeout(e,t)))}done(t={}){const e=((new Date).getTime()-this.startTime)/1e3;switch(this.log("",`🔔${this.name}, 结束! 🕛 ${e} 秒`),this.log(),this.getEnv()){case"Surge":case"Loon":case"Stash":case"Shadowrocket":case"Quantumult X":default:$done(t);break;case"Node.js":process.exit(1)}}}(t,e)} -/*****************************************************************************/ diff --git a/Scripts/bilibili/json.js b/Scripts/bilibili/json.js deleted file mode 100644 index e50270d6..00000000 --- a/Scripts/bilibili/json.js +++ /dev/null @@ -1,210 +0,0 @@ -// 2024-10-19 12:35 - -const url = $request.url; -if (!$response.body) $done({}); -let obj = JSON.parse($response.body); - -if (url.includes("/x/resource/show/tab/v2")) { - // 底部选项卡 - if (obj?.data?.bottom?.length > 0) { - const sortLists = ["首页", "动态", "我的"]; - obj.data.bottom = obj.data.bottom - .filter((i) => sortLists?.includes(i?.name)) - .sort((a, b) => sortLists.indexOf(a?.name) - sortLists.indexOf(b?.name)); - } - // 首页导航栏 - if (obj?.data?.tab?.length > 0) { - const sortLists = ["推荐", "热门", "影视", "动画"]; - obj.data.tab = obj.data.tab - .filter((i) => sortLists?.includes(i?.name)) - .sort((a, b) => sortLists.indexOf(a?.name) - sortLists.indexOf(b?.name)); - } - // 右上角按钮 - if (obj?.data?.top?.length > 0) { - obj.data.top = obj.data.top.filter((i) => i?.name === "消息"); - if (obj?.data?.top?.[0]?.pos) { - obj.data.top[0].pos = 1; - } - } -} else if (url.includes("/x/v2/account/mine?")) { - // 我的页面 - const del = ["rework_v1", "vip_section", "vip_section_v2"]; - for (let i of del) { - // 不必要项目 - delete obj.data[i]; - } - if (obj?.data?.sections_v2?.length > 0) { - let newSects = []; - for (let item of obj.data.sections_v2) { - delete item.button; - if (item?.style) { - if (item?.style === 1 || item?.style === 2) { - if (item?.title) { - if (item?.title === "创作中心" || item?.title === "推荐服务") { - // 创作中心 推荐服务 - continue; - } else if (item?.title === "更多服务") { - delete item.title; - if (item?.items?.length > 0) { - let newItems = []; - for (let i of item.items) { - if (/user_center\/feedback/g.test(i?.uri)) { - // 联系客服 - newItems.push(i); - } else if (/user_center\/setting/g.test(i?.uri)) { - // 设置 - newItems.push(i); - } else { - continue; - } - } - item.items = newItems; - } - } - } - } else { - // 其他style - continue; - } - } - newSects.push(item); - } - obj.data.sections_v2 = newSects; - } - // 非会员开启本地会员标识 - if (obj?.data?.vip) { - if (obj?.data?.vip?.status === 0) { - obj.data.vip_type = 2; - obj.data.vip.type = 2; - obj.data.vip.status = 1; - obj.data.vip.due_date = 3818419199; // Unix 时间戳 2090-12-31 23:59:59 - obj.data.vip.label = { - path: "", - text: "年度大会员", - label_theme: "annual_vip", - text_color: "#FFFFFF", - bg_style: 1, - bg_color: "#FB7299", - border_color: "", - image: "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png" - }; - obj.data.vip.nickname_color = "#FB7299"; - obj.data.vip.role = 3; - } - } -} else if (url.includes("/x/v2/account/mine/ipad")) { - // ipad我的页面 - delete obj.data.ipad_upper_sections; // 投稿 创作首页 稿件管理 有奖活动 - if (obj?.data?.ipad_recommend_sections?.length > 0) { - // 789我的关注 790我的消息 791我的钱包 792直播中心 793大会员 794我的课程 2542我的游戏 - const itemList = [789, 790]; - obj.data.ipad_recommend_sections = obj.data.ipad_recommend_sections.filter((i) => itemList?.includes(i.id)); - } - if (obj?.data?.ipad_more_sections?.length > 0) { - // 797我的客服 798设置 1070青少年守护 - const itemList = [797, 798]; - obj.data.ipad_more_sections = obj.data.ipad_more_sections.filter((i) => itemList?.includes(i.id)); - } -} else if (url.includes("/x/v2/account/myinfo")) { - // 非会员开启会员专属清晰度 - if (obj?.data?.vip) { - if (obj?.data?.vip?.status === 0) { - obj.data.vip.type = 2; - obj.data.vip.status = 1; - obj.data.vip.due_date = 3818419199; // Unix 时间戳 2090-12-31 23:59:59 - obj.data.vip.role = 3; - } - } -} else if (url.includes("/x/v2/feed/index?")) { - // 首页推荐信息流 - if (obj?.data?.items?.length > 0) { - // 白名单 - obj.data.items = obj.data.items.filter((i) => i?.card_goto === "av"); - } - if (obj?.data?.config?.toast?.has_toast) { - obj.data.config.toast.has_toast = false; - } -} else if (url.includes("/x/v2/feed/index/story")) { - // 竖屏模式信息流 - if (obj?.data?.items?.length > 0) { - // vertical_live 直播内容 - // vertical_pgc 大会员专享 - let newItems = []; - for (let item of obj.data.items) { - if (item?.hasOwnProperty("ad_info")) { - continue; - } else if (["vertical_ad_av", "vertical_live", "vertical_pgc"]?.includes(item?.card_goto)) { - continue; - } else { - delete item.creative_entrance; // 推荐话题搜索框 - delete item.story_cart_icon; // 相关话题图标 - newItems.push(item); - } - } - obj.data.items = newItems; - } -} else if (url.includes("/x/v2/search/square")) { - // 搜索框 - if (obj?.data) { - obj.data = { type: "history", title: "搜索历史", search_hotword_revision: 2 }; - } -} else if (url.includes("/x/v2/splash")) { - // 开屏广告 - if (obj?.data) { - const item = ["account", "event_list", "preload", "show"]; - item.forEach((i) => { - delete obj.data[i]; - }); - if (obj?.data?.max_time) { - obj.data.max_time = 0; - } - if (obj?.data?.min_interval) { - obj.data.min_interval = 31536000; - } - if (obj?.data?.pull_interval) { - obj.data.pull_interval = 31536000; - } - if (obj?.data?.list?.length > 0) { - for (let i of obj.data.list) { - i.duration = 0; - i.enable_pre_download = false; - i.begin_time = 3818332800; // Unix 时间戳 2090-12-31 00:00:00 - i.end_time = 3818419199; // Unix 时间戳 2090-12-31 23:59:59 - } - } - } -} else if (url.includes("/pgc/page/bangumi") || url.includes("/pgc/page/cinema/tab")) { - // 观影页 - if (obj.result?.modules?.length > 0) { - obj.result.modules.forEach((i) => { - if (i?.style?.startsWith("banner")) { - if (i?.items?.length > 0) { - i.items = i.items.filter((ii) => ii?.link?.includes("play")); - } - } else if (i?.style?.startsWith("function")) { - if (i?.items?.length > 0) { - i.items = i.items.filter((ii) => ii?.blink?.startsWith("bilibili")); - } - } else if ([241, 1283, 1284, 1441]?.includes(i?.module_id)) { - if (i?.items?.length > 0) { - i.items = []; - } - } else if (i?.style?.startsWith("tip")) { - if (i?.items?.length > 0) { - i.items = []; - } - } - }); - } -} else if (url.includes("/xlive/app-room/v1/index/getInfoByRoom")) { - // 直播 - delete obj.data.activity_banner_info; - if (obj?.data?.shopping_info) { - obj.data.shopping_info = { is_show: 0 }; - } - if (obj?.data?.new_tab_info?.outer_list?.length > 0) { - obj.data.new_tab_info.outer_list = obj.data.new_tab_info.outer_list.filter((i) => i?.biz_id !== 33); - } -} - -$done({ body: JSON.stringify(obj) }); diff --git a/Scripts/bilibili/protoA.js b/Scripts/bilibili/protoA.js deleted file mode 100644 index 001d85c4..00000000 --- a/Scripts/bilibili/protoA.js +++ /dev/null @@ -1,3 +0,0 @@ -// Build: 2023/9/5 22:23:15 -(()=>{console.time=function(n){this._times=this._times||{},this._times[n]=Date.now()};console.timeEnd=function(n){if(this._times&&this._times[n]){let e=Date.now()-this._times[n];console.log(`${n}: ${e}ms`),delete this._times[n]}else console.log(`Timer with label ${n} does not exist.`)};function Kn(n){"use strict";function e(){}function t(){}var r=String.fromCharCode,i={}.toString,s=i.call(n.SharedArrayBuffer),l=i(),o=n.Uint8Array,a=o||Array,f=o?ArrayBuffer:a,u=f.isView||function(E){return E&&"length"in E},p=i.call(f.prototype);f=t.prototype;var g=n.TextEncoder,d=new(o?Uint16Array:a)(32);e.prototype.decode=function(E){if(!u(E)){var S=i.call(E);if(S!==p&&S!==s&&S!==l)throw TypeError("Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'");E=o?new a(E):E||[]}for(var B=S="",k=0,N=E.length|0,K=N-32|0,U,T,V=0,z=0,L,C=0,R=-1;k>4){case 15:if(L=E[k=k+1|0]&255,L>>6!==2||247>6===2?z+4|0:24,T=T+256&768;case 13:case 12:L=E[k=k+1|0]&255,V<<=6,V|=(T&31)<<6|L&63,z=z+7|0,k>6===2&&V>>z&&1114112>V?(T=V,V=V-65536|0,0<=V&&(R=(V>>10)+55296|0,T=(V&1023)+56320|0,31>C?(d[C]=R,C=C+1|0,R=-1):(L=R,R=T,T=L))):(T>>=8,k=k-T-1|0,T=65533),V=z=0,U=k<=K?32:N-k|0;default:d[C]=T;continue;case 11:case 10:case 9:case 8:}d[C]=65533}if(B+=r(d[0],d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15],d[16],d[17],d[18],d[19],d[20],d[21],d[22],d[23],d[24],d[25],d[26],d[27],d[28],d[29],d[30],d[31]),32>C&&(B=B.slice(0,C-32|0)),k>>31,R=-1,B.length=U)B[N]=U;else{if(2047>=U)B[N]=192|U>>6;else{e:{if(55296<=U)if(56319>=U){var T=E.charCodeAt(k=k+1|0)|0;if(56320<=T&&57343>=T){if(U=(U<<10)+T-56613888|0,65535>18,B[N=N+1|0]=128|U>>12&63,B[N=N+1|0]=128|U>>6&63,B[N=N+1|0]=128|U&63;continue}break e}U=65533}else 57343>=U&&(U=65533);!K&&k<<1>12,B[N=N+1|0]=128|U>>6&63}B[N=N+1|0]=128|U&63}}return o?B.subarray(0,N):B.slice(0,N)},n.TextDecoder=e,n.TextEncoder=t}var y=Kn(globalThis);var P=Uint8Array,ie=Uint16Array,Jn=Int32Array,tn=new P([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),nn=new P([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Yn=new P([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),rn=function(n,e){for(var t=new ie(31),r=0;r<31;++r)t[r]=e+=1<>1|(I&21845)<<1,J=(J&52428)>>2|(J&13107)<<2,J=(J&61680)>>4|(J&3855)<<4,Ce[I]=((J&65280)>>8|(J&255)<<8)>>1;var J,I,fe=function(n,e,t){for(var r=n.length,i=0,s=new ie(e);i>a]=f}else for(o=new ie(r),i=0;i>15-n[i]);return o},ue=new P(288);for(I=0;I<144;++I)ue[I]=8;var I;for(I=144;I<256;++I)ue[I]=9;var I;for(I=256;I<280;++I)ue[I]=7;var I;for(I=280;I<288;++I)ue[I]=8;var I,ln=new P(32);for(I=0;I<32;++I)ln[I]=5;var I;var qn=fe(ue,9,1);var Hn=fe(ln,5,1),Le=function(n){for(var e=n[0],t=1;te&&(e=n[t]);return e},M=function(n,e,t){var r=e/8|0;return(n[r]|n[r+1]<<8)>>(e&7)&t},De=function(n,e){var t=e/8|0;return(n[t]|n[t+1]<<8|n[t+2]<<16)>>(e&7)},Qn=function(n){return(n+7)/8|0},er=function(n,e,t){(e==null||e<0)&&(e=0),(t==null||t>n.length)&&(t=n.length);var r=new P(t-e);return r.set(n.subarray(e,t)),r};var tr=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],G=function(n,e,t){var r=new Error(e||tr[n]);if(r.code=n,Error.captureStackTrace&&Error.captureStackTrace(r,G),!t)throw r;return r},nr=function(n,e,t,r){var i=n.length,s=r?r.length:0;if(!i||e.f&&!e.l)return t||new P(0);var l=!t||e.i!=2,o=e.i;t||(t=new P(i*3));var a=function(Ht){var Qt=t.length;if(Ht>Qt){var en=new P(Math.max(Qt*2,Ht));en.set(t),t=en}},f=e.f||0,u=e.p||0,p=e.b||0,g=e.l,d=e.d,E=e.m,S=e.n,B=i*8;do{if(!g){f=M(n,u,1);var k=M(n,u+1,3);if(u+=3,k)if(k==1)g=qn,d=Hn,E=9,S=5;else if(k==2){var T=M(n,u,31)+257,V=M(n,u+10,15)+4,z=T+M(n,u+5,31)+1;u+=14;for(var L=new P(z),C=new P(19),R=0;R>4;if(N<16)L[R++]=N;else{var ne=0,ye=0;for(N==16?(ye=3+M(n,u,3),u+=2,ne=L[R-1]):N==17?(ye=3+M(n,u,7),u+=3):N==18&&(ye=11+M(n,u,127),u+=7);ye--;)L[R++]=ne}}var Xt=L.subarray(0,T),_=L.subarray(T);E=Le(Xt),S=Le(_),g=fe(Xt,E,1),d=fe(_,S,1)}else G(1);else{var N=Qn(u)+4,K=n[N-4]|n[N-3]<<8,U=N+K;if(U>i){o&&G(0);break}l&&a(p+K),t.set(n.subarray(N,U),p),e.b=p+=K,e.p=u=U*8,e.f=f;continue}if(u>B){o&&G(0);break}}l&&a(p+131072);for(var Gn=(1<>4;if(u+=ne&15,u>B){o&&G(0);break}if(ne||G(2),re<256)t[p++]=re;else if(re==256){Fe=u,g=null;break}else{var Zt=re-254;if(re>264){var R=re-257,le=tn[R];Zt=M(n,u,(1<>4;Re||G(3),u+=Re&15;var _=Zn[Se];if(Se>3){var le=nn[Se];_+=De(n,u)&(1<B){o&&G(0);break}l&&a(p+131072);var Ve=p+Zt;if(p<_){var qt=s-_,jn=Math.min(_,Ve);for(qt+p<0&&G(3);p>3&1)+(e>>4&1);r>0;r-=!n[t++]);return t+(e&2)},sr=function(n){var e=n.length;return(n[e-4]|n[e-3]<<8|n[e-2]<<16|n[e-1]<<24)>>>0};function fn(n,e){var t=ir(n);return t+8>n.length&&G(6,"invalid gzip data"),nr(n.subarray(t,-8),{i:2},e&&e.out||new P(sr(n)),e&&e.dictionary)}var or=typeof TextDecoder<"u"&&new TextDecoder,ar=0;try{or.decode(rr,{stream:!0}),ar=1}catch{}function Q(n){let e=typeof n;if(e=="object"){if(Array.isArray(n))return"array";if(n===null)return"null"}return e}function se(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}var Y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),ve=[];for(let n=0;n>4,l=s,i=2;break;case 2:t[r++]=(l&15)<<4|(s&60)>>2,l=s,i=3;break;case 3:t[r++]=(l&3)<<6|s,i=0;break}}if(i==1)throw Error("invalid base64 string.");return t.subarray(0,r)}function hn(n){let e="",t=0,r,i=0;for(let s=0;s>2],i=(r&3)<<4,t=1;break;case 1:e+=Y[i|r>>4],i=(r&15)<<2,t=2;break;case 2:e+=Y[i|r>>6],e+=Y[r&63],t=0;break}return t&&(e+=Y[i],e+="=",t==1&&(e+="=")),e}var m;(function(n){n.symbol=Symbol.for("protobuf-ts/unknown"),n.onRead=(t,r,i,s,l)=>{(e(r)?r[n.symbol]:r[n.symbol]=[]).push({no:i,wireType:s,data:l})},n.onWrite=(t,r,i)=>{for(let{no:s,wireType:l,data:o}of n.list(r))i.tag(s,l).raw(o)},n.list=(t,r)=>{if(e(t)){let i=t[n.symbol];return r?i.filter(s=>s.no==r):i}return[]},n.last=(t,r)=>n.list(t,r).slice(-1)[0];let e=t=>t&&Array.isArray(t[n.symbol])})(m||(m={}));var c;(function(n){n[n.Varint=0]="Varint",n[n.Bit64=1]="Bit64",n[n.LengthDelimited=2]="LengthDelimited",n[n.StartGroup=3]="StartGroup",n[n.EndGroup=4]="EndGroup",n[n.Bit32=5]="Bit32"})(c||(c={}));function cn(){let n=0,e=0;for(let r=0;r<28;r+=7){let i=this.buf[this.pos++];if(n|=(i&127)<>4,!(t&128))return this.assertBounds(),[n,e];for(let r=3;r<=31;r+=7){let i=this.buf[this.pos++];if(e|=(i&127)<>>s,o=!(!(l>>>7)&&e==0),a=(o?l|128:l)&255;if(t.push(a),!o)return}let r=n>>>28&15|(e&7)<<4,i=!!(e>>3);if(t.push((i?r|128:r)&255),!!i){for(let s=3;s<31;s=s+7){let l=e>>>s,o=!!(l>>>7),a=(o?l|128:l)&255;if(t.push(a),!o)return}t.push(e>>>31&1)}}var be=65536*65536;function We(n){let e=n[0]=="-";e&&(n=n.slice(1));let t=1e6,r=0,i=0;function s(l,o){let a=Number(n.slice(l,o));i*=t,r=r*t+a,r>=be&&(i=i+(r/be|0),r=r%be)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),[e,r,i]}function Ne(n,e){if(e<=2097151)return""+(be*e+(n>>>0));let t=n&16777215,r=(n>>>24|e<<8)>>>0&16777215,i=e>>16&65535,s=t+r*6777216+i*6710656,l=r+i*8147497,o=i*2,a=1e7;s>=a&&(l+=Math.floor(s/a),s%=a),l>=a&&(o+=Math.floor(l/a),l%=a);function f(u,p){let g=u?String(u):"";return p?"0000000".slice(g.length)+g:g}return f(o,0)+f(l,o)+f(s,1)}function $e(n,e){if(n>=0){for(;n>127;)e.push(n&127|128),n=n>>>7;e.push(n)}else{for(let t=0;t<9;t++)e.push(n&127|128),n=n>>7;e.push(1)}}function mn(){let n=this.buf[this.pos++],e=n&127;if(!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,!(n&128))return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;n&128&&t<10;t++)n=this.buf[this.pos++];if(n&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function lr(){let n=new DataView(new ArrayBuffer(8));return globalThis.BigInt!==void 0&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"?{MIN:BigInt("-9223372036854775808"),MAX:BigInt("9223372036854775807"),UMIN:BigInt("0"),UMAX:BigInt("18446744073709551615"),C:BigInt,V:n}:void 0}var A=lr();function pn(n){if(!n)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}var dn=/^-?[0-9]+$/,Ee=65536*65536,xe=class{constructor(e,t){this.lo=e|0,this.hi=t|0}isZero(){return this.lo==0&&this.hi==0}toNumber(){let e=this.hi*Ee+(this.lo>>>0);if(!Number.isSafeInteger(e))throw new Error("cannot convert to safe number");return e}},F=class extends xe{static from(e){if(A)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=A.C(e);case"number":if(e===0)return this.ZERO;e=A.C(e);case"bigint":if(!e)return this.ZERO;if(eA.UMAX)throw new Error("ulong too large");return A.V.setBigUint64(0,e,!0),new F(A.V.getInt32(0,!0),A.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!dn.test(e))throw new Error("string is no integer");let[t,r,i]=We(e);if(t)throw new Error("signed value");return new F(r,i);case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");if(e<0)throw new Error("signed value for ulong");return new F(e,e/Ee)}throw new Error("unknown value "+typeof e)}toString(){return A?this.toBigInt().toString():Ne(this.lo,this.hi)}toBigInt(){return pn(A),A.V.setInt32(0,this.lo,!0),A.V.setInt32(4,this.hi,!0),A.V.getBigUint64(0,!0)}};F.ZERO=new F(0,0);var O=class extends xe{static from(e){if(A)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=A.C(e);case"number":if(e===0)return this.ZERO;e=A.C(e);case"bigint":if(!e)return this.ZERO;if(eA.MAX)throw new Error("ulong too large");return A.V.setBigInt64(0,e,!0),new O(A.V.getInt32(0,!0),A.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!dn.test(e))throw new Error("string is no integer");let[t,r,i]=We(e),s=new O(r,i);return t?s.negate():s;case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");return e>0?new O(e,e/Ee):new O(-e,-e/Ee).negate()}throw new Error("unknown value "+typeof e)}isNegative(){return(this.hi&2147483648)!==0}negate(){let e=~this.hi,t=this.lo;return t?t=~t+1:e+=1,new O(t,e)}toString(){if(A)return this.toBigInt().toString();if(this.isNegative()){let e=this.negate();return"-"+Ne(e.lo,e.hi)}return Ne(this.lo,this.hi)}toBigInt(){return pn(A),A.V.setInt32(0,this.lo,!0),A.V.setInt32(4,this.hi,!0),A.V.getBigInt64(0,!0)}};O.ZERO=new O(0,0);var gn={readUnknownField:!0,readerFactory:n=>new Pe(n)};function wn(n){return n?Object.assign(Object.assign({},gn),n):gn}var Pe=class{constructor(e,t){this.varint64=cn,this.uint32=mn,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0})}tag(){let e=this.uint32(),t=e>>>3,r=e&7;if(t<=0||r<0||r>5)throw new Error("illegal tag: field no "+t+" wire type "+r);return[t,r]}skip(e){let t=this.pos;switch(e){case c.Varint:for(;this.buf[this.pos++]&128;);break;case c.Bit64:this.pos+=4;case c.Bit32:this.pos+=4;break;case c.LengthDelimited:let r=this.uint32();this.pos+=r;break;case c.StartGroup:let i;for(;(i=this.tag()[1])!==c.EndGroup;)this.skip(i);break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(t,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return new O(...this.varint64())}uint64(){return new F(...this.varint64())}sint64(){let[e,t]=this.varint64(),r=-(e&1);return e=(e>>>1|(t&1)<<31)^r,t=t>>>1^r,new O(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return new F(this.sfixed32(),this.sfixed32())}sfixed64(){return new O(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}};function x(n,e){if(!n)throw new Error(e)}var fr=34028234663852886e22,ur=-34028234663852886e22,hr=4294967295,cr=2147483647,mr=-2147483648;function Z(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>cr||nhr||n<0)throw new Error("invalid uint 32: "+n)}function oe(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>fr||nnew _e};function vn(n){return n?Object.assign(Object.assign({},yn),n):yn}var _e=class{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let i=0;i>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(ee(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return Z(e),$e(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){oe(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){ee(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){Z(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return Z(e),e=(e<<1^e>>31)>>>0,$e(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),r=new DataView(t.buffer),i=O.from(e);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),r=new DataView(t.buffer),i=F.from(e);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(t)}int64(e){let t=O.from(e);return ke(t.lo,t.hi,this.buf),this}sint64(e){let t=O.from(e),r=t.hi>>31,i=t.lo<<1^r,s=(t.hi<<1|t.lo>>>31)^r;return ke(i,s,this.buf),this}uint64(e){let t=F.from(e);return ke(t.lo,t.hi,this.buf),this}};var bn={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0},kn={ignoreUnknownFields:!1};function Me(n){return n?Object.assign(Object.assign({},kn),n):kn}function he(n){return n?Object.assign(Object.assign({},bn),n):bn}var v=Symbol.for("protobuf-ts/message-type");function Ge(n){let e=!1,t=[];for(let r=0;r!i.includes(l))||!r&&i.some(l=>!s.known.includes(l)))return!1;if(t<1)return!0;for(let l of s.oneofs){let o=e[l];if(!En(o))return!1;if(o.oneofKind===void 0)continue;let a=this.fields.find(f=>f.localName===o.oneofKind);if(!a||!this.field(o[o.oneofKind],a,r,t))return!1}for(let l of this.fields)if(l.oneof===void 0&&!this.field(e[l.localName],l,r,t))return!1;return!0}field(e,t,r,i){let s=t.repeat;switch(t.kind){case"scalar":return e===void 0?t.opt:s?this.scalars(e,t.T,i,t.L):this.scalar(e,t.T,t.L);case"enum":return e===void 0?t.opt:s?this.scalars(e,h.INT32,i):this.scalar(e,h.INT32);case"message":return e===void 0?!0:s?this.messages(e,t.T(),r,i):this.message(e,t.T(),r,i);case"map":if(typeof e!="object"||e===null)return!1;if(i<2)return!0;if(!this.mapKeys(e,t.K,i))return!1;switch(t.V.kind){case"scalar":return this.scalars(Object.values(e),t.V.T,i,t.V.L);case"enum":return this.scalars(Object.values(e),h.INT32,i);case"message":return this.messages(Object.values(e),t.V.T(),r,i)}break}return!0}message(e,t,r,i){return r?t.isAssignable(e,i):t.is(e,i)}messages(e,t,r,i){if(!Array.isArray(e))return!1;if(i<2)return!0;if(r){for(let s=0;sparseInt(s)),t,r);case h.BOOL:return this.scalars(i.slice(0,r).map(s=>s=="true"?!0:s=="false"?!1:s),t,r);default:return this.scalars(i,t,r,W.STRING)}}};function $(n,e){switch(e){case W.BIGINT:return n.toBigInt();case W.NUMBER:return n.toNumber();default:return n.toString()}}var Be=class{constructor(e){this.info=e}prepare(){var e;if(this.fMap===void 0){this.fMap={};let t=(e=this.info.fields)!==null&&e!==void 0?e:[];for(let r of t)this.fMap[r.name]=r,this.fMap[r.jsonName]=r,this.fMap[r.localName]=r}}assert(e,t,r){if(!e){let i=Q(r);throw(i=="number"||i=="boolean")&&(i=r.toString()),new Error(`Cannot parse JSON ${i} for ${this.info.typeName}#${t}`)}}read(e,t,r){this.prepare();let i=[];for(let[s,l]of Object.entries(e)){let o=this.fMap[s];if(!o){if(!r.ignoreUnknownFields)throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${s}`);continue}let a=o.localName,f;if(o.oneof){if(i.includes(o.oneof))throw new Error(`Multiple members of the oneof group "${o.oneof}" of ${this.info.typeName} are present in JSON.`);i.push(o.oneof),f=t[o.oneof]={oneofKind:a}}else f=t;if(o.kind=="map"){if(l===null)continue;this.assert(se(l),o.name,l);let u=f[a];for(let[p,g]of Object.entries(l)){this.assert(g!==null,o.name+" map value",null);let d;switch(o.V.kind){case"message":d=o.V.T().internalJsonRead(g,r);break;case"enum":if(d=this.enum(o.V.T(),g,o.name,r.ignoreUnknownFields),d===!1)continue;break;case"scalar":d=this.scalar(g,o.V.T,o.V.L,o.name);break}this.assert(d!==void 0,o.name+" map value",g);let E=p;o.K==h.BOOL&&(E=E=="true"?!0:E=="false"?!1:E),E=this.scalar(E,o.K,W.STRING,o.name).toString(),u[E]=d}}else if(o.repeat){if(l===null)continue;this.assert(Array.isArray(l),o.name,l);let u=f[a];for(let p of l){this.assert(p!==null,o.name,null);let g;switch(o.kind){case"message":g=o.T().internalJsonRead(p,r);break;case"enum":if(g=this.enum(o.T(),p,o.name,r.ignoreUnknownFields),g===!1)continue;break;case"scalar":g=this.scalar(p,o.T,o.L,o.name);break}this.assert(g!==void 0,o.name,l),u.push(g)}}else switch(o.kind){case"message":if(l===null&&o.T().typeName!="google.protobuf.Value"){this.assert(o.oneof===void 0,o.name+" (oneof member)",null);continue}f[a]=o.T().internalJsonRead(l,r,f[a]);break;case"enum":let u=this.enum(o.T(),l,o.name,r.ignoreUnknownFields);if(u===!1)continue;f[a]=u;break;case"scalar":f[a]=this.scalar(l,o.T,o.L,o.name);break}}}enum(e,t,r,i){if(e[0]=="google.protobuf.NullValue"&&x(t===null,`Unable to parse field ${this.info.typeName}#${r}, enum ${e[0]} only accepts null.`),t===null)return 0;switch(typeof t){case"number":return x(Number.isInteger(t),`Unable to parse field ${this.info.typeName}#${r}, enum can only be integral number, got ${t}.`),t;case"string":let s=t;e[2]&&t.substring(0,e[2].length)===e[2]&&(s=t.substring(e[2].length));let l=e[1][s];return typeof l>"u"&&i?!1:(x(typeof l=="number",`Unable to parse field ${this.info.typeName}#${r}, enum ${e[0]} has no value for "${t}".`),l)}x(!1,`Unable to parse field ${this.info.typeName}#${r}, cannot parse enum value from ${typeof t}".`)}scalar(e,t,r,i){let s;try{switch(t){case h.DOUBLE:case h.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""){s="empty string";break}if(typeof e=="string"&&e.trim().length!==e.length){s="extra whitespace";break}if(typeof e!="string"&&typeof e!="number")break;let l=Number(e);if(Number.isNaN(l)){s="not a number";break}if(!Number.isFinite(l)){s="too large or small";break}return t==h.FLOAT&&oe(l),l;case h.INT32:case h.FIXED32:case h.SFIXED32:case h.SINT32:case h.UINT32:if(e===null)return 0;let o;if(typeof e=="number"?o=e:e===""?s="empty string":typeof e=="string"&&(e.trim().length!==e.length?s="extra whitespace":o=Number(e)),o===void 0)break;return t==h.UINT32?ee(o):Z(o),o;case h.INT64:case h.SFIXED64:case h.SINT64:if(e===null)return $(O.ZERO,r);if(typeof e!="number"&&typeof e!="string")break;return $(O.from(e),r);case h.FIXED64:case h.UINT64:if(e===null)return $(F.ZERO,r);if(typeof e!="number"&&typeof e!="string")break;return $(F.from(e),r);case h.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case h.STRING:if(e===null)return"";if(typeof e!="string"){s="extra whitespace";break}try{encodeURIComponent(e)}catch(a){a="invalid UTF8";break}return e;case h.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return un(e)}}catch(l){s=l.message}this.assert(!1,i+(s?" - "+s:""),e)}};var Oe=class{constructor(e){var t;this.fields=(t=e.fields)!==null&&t!==void 0?t:[]}write(e,t){let r={},i=e;for(let s of this.fields){if(!s.oneof){let f=this.field(s,i[s.localName],t);f!==void 0&&(r[t.useProtoFieldName?s.name:s.jsonName]=f);continue}let l=i[s.oneof];if(l.oneofKind!==s.localName)continue;let o=s.kind=="scalar"||s.kind=="enum"?Object.assign(Object.assign({},t),{emitDefaultValues:!0}):t,a=this.field(s,l[s.localName],o);x(a!==void 0),r[t.useProtoFieldName?s.name:s.jsonName]=a}return r}field(e,t,r){let i;if(e.kind=="map"){x(typeof t=="object"&&t!==null);let s={};switch(e.V.kind){case"scalar":for(let[a,f]of Object.entries(t)){let u=this.scalar(e.V.T,f,e.name,!1,!0);x(u!==void 0),s[a.toString()]=u}break;case"message":let l=e.V.T();for(let[a,f]of Object.entries(t)){let u=this.message(l,f,e.name,r);x(u!==void 0),s[a.toString()]=u}break;case"enum":let o=e.V.T();for(let[a,f]of Object.entries(t)){x(f===void 0||typeof f=="number");let u=this.enum(o,f,e.name,!1,!0,r.enumAsInteger);x(u!==void 0),s[a.toString()]=u}break}(r.emitDefaultValues||Object.keys(s).length>0)&&(i=s)}else if(e.repeat){x(Array.isArray(t));let s=[];switch(e.kind){case"scalar":for(let a=0;a0||r.emitDefaultValues)&&(i=s)}else switch(e.kind){case"scalar":i=this.scalar(e.T,t,e.name,e.opt,r.emitDefaultValues);break;case"enum":i=this.enum(e.T(),t,e.name,e.opt,r.emitDefaultValues,r.enumAsInteger);break;case"message":i=this.message(e.T(),t,e.name,r);break}return i}enum(e,t,r,i,s,l){if(e[0]=="google.protobuf.NullValue")return null;if(t===void 0){x(i);return}if(!(t===0&&!s&&!i))return x(typeof t=="number"),x(Number.isInteger(t)),l||!e[1].hasOwnProperty(t)?t:e[2]?e[2]+e[1][t]:e[1][t]}message(e,t,r,i){return t===void 0?i.emitDefaultValues?null:void 0:e.internalJsonWrite(t,i)}scalar(e,t,r,i,s){if(t===void 0){x(i);return}let l=s||i;switch(e){case h.INT32:case h.SFIXED32:case h.SINT32:return t===0?l?0:void 0:(Z(t),t);case h.FIXED32:case h.UINT32:return t===0?l?0:void 0:(ee(t),t);case h.FLOAT:oe(t);case h.DOUBLE:return t===0?l?0:void 0:(x(typeof t=="number"),Number.isNaN(t)?"NaN":t===Number.POSITIVE_INFINITY?"Infinity":t===Number.NEGATIVE_INFINITY?"-Infinity":t);case h.STRING:return t===""?l?"":void 0:(x(typeof t=="string"),t);case h.BOOL:return t===!1?l?!1:void 0:(x(typeof t=="boolean"),t);case h.UINT64:case h.FIXED64:x(typeof t=="number"||typeof t=="string"||typeof t=="bigint");let o=F.from(t);return o.isZero()&&!l?void 0:o.toString();case h.INT64:case h.SFIXED64:case h.SINT64:x(typeof t=="number"||typeof t=="string"||typeof t=="bigint");let a=O.from(t);return a.isZero()&&!l?void 0:a.toString();case h.BYTES:return x(t instanceof Uint8Array),t.byteLength?hn(t):l?"":void 0}}};function me(n,e=W.STRING){switch(n){case h.BOOL:return!1;case h.UINT64:case h.FIXED64:return $(F.ZERO,e);case h.INT64:case h.SFIXED64:case h.SINT64:return $(O.ZERO,e);case h.DOUBLE:case h.FLOAT:return 0;case h.BYTES:return new Uint8Array(0);case h.STRING:return"";default:return 0}}var Te=class{constructor(e){this.info=e}prepare(){var e;if(!this.fieldNoToField){let t=(e=this.info.fields)!==null&&e!==void 0?e:[];this.fieldNoToField=new Map(t.map(r=>[r.no,r]))}}read(e,t,r,i){this.prepare();let s=i===void 0?e.len:e.pos+i;for(;e.post.no-r.no)}}write(e,t,r){this.prepare();for(let s of this.fields){let l,o,a=s.repeat,f=s.localName;if(s.oneof){let u=e[s.oneof];if(u.oneofKind!==f)continue;l=u[f],o=!0}else l=e[f],o=!1;switch(s.kind){case"scalar":case"enum":let u=s.kind=="enum"?h.INT32:s.T;if(a)if(x(Array.isArray(l)),a==ce.PACKED)this.packed(t,u,s.no,l);else for(let p of l)this.scalar(t,u,s.no,p,!0);else l===void 0?x(s.opt):this.scalar(t,u,s.no,l,o||s.opt);break;case"message":if(a){x(Array.isArray(l));for(let p of l)this.message(t,r,s.T(),s.no,p)}else this.message(t,r,s.T(),s.no,l);break;case"map":x(typeof l=="object"&&l!==null);for(let[p,g]of Object.entries(l))this.mapEntry(t,r,s,p,g);break}}let i=r.writeUnknownFields;i!==!1&&(i===!0?m.onWrite:i)(this.info.typeName,e,t)}mapEntry(e,t,r,i,s){e.tag(r.no,c.LengthDelimited),e.fork();let l=i;switch(r.K){case h.INT32:case h.FIXED32:case h.UINT32:case h.SFIXED32:case h.SINT32:l=Number.parseInt(i);break;case h.BOOL:x(i=="true"||i=="false"),l=i=="true";break}switch(this.scalar(e,r.K,1,l,!0),r.V.kind){case"scalar":this.scalar(e,r.V.T,2,s,!0);break;case"enum":this.scalar(e,h.INT32,2,s,!0);break;case"message":this.message(e,t,r.V.T(),2,s);break}e.join()}message(e,t,r,i,s){s!==void 0&&(r.internalBinaryWrite(s,e.tag(i,c.LengthDelimited).fork(),t),e.join())}scalar(e,t,r,i,s){let[l,o,a]=this.scalarInfo(t,i);(!a||s)&&(e.tag(r,l),e[o](i))}packed(e,t,r,i){if(!i.length)return;x(t!==h.BYTES&&t!==h.STRING),e.tag(r,c.LengthDelimited),e.fork();let[,s]=this.scalarInfo(t);for(let l=0;lte}])}create(e){let t={commandDms:[]};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posze}])}create(e){let t={};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posnew An(n,e,t),Surge:(n,e,t)=>new Un(n,e,t)};var Xe=class extends H{getFn(n,e,t){let r=Xe.clientAdapter[e]||e;return super.getFn(n,r,t)}setFn(n,e,t,r){let i=Xe.clientAdapter[e]||e;return super.setFn(n,i,t,r)}init(){try{this.request=this.createProxy($request),this.response=this.createProxy($response)}catch(n){this.log(n.toString())}}getVal(n){return $persistentStore.read(n)}setVal(n,e){$persistentStore.write(n,e)}msg(n=this.name,e="",t="",r){$notification.post(n,e,t,{url:r??""})}async fetch(n){return await new Promise((e,t)=>{let{method:r,body:i,bodyBytes:s,...l}=n,o=s??i,a=o instanceof Uint8Array;$httpClient[r.toLowerCase()]({...l,body:o,"binary-mode":a},(f,u,p)=>{f&&t(f);let g=a?"bodyBytes":"body";e({status:u.status,headers:u.headers,[g]:p})})})}done(n){let e=n.response??n,t,r;e.bodyBytes?(t=e.bodyBytes,delete e.bodyBytes,r={...n},r.response?r.response.body=t:r.body=t):r=n,$done(r)}},Un=Xe;Un.clientAdapter={bodyBytes:"body"};var q=class extends H{static transferBodyBytes(n,e){return n instanceof ArrayBuffer?e==="Uint8Array"?new Uint8Array(n):n:n instanceof Uint8Array&&e==="ArrayBuffer"?n.buffer.slice(n.byteOffset,n.byteLength+n.byteOffset):n}init(){try{this.request=this.createProxy($request),this.response=this.createProxy($response)}catch(n){this.log(n.toString())}}getFn(n,e,t){let r=q.clientAdapter[e]||e,i=super.getFn(n,r,t);return e==="bodyBytes"&&(i=q.transferBodyBytes(i,"Uint8Array")),i}setFn(n,e,t,r){let i=q.clientAdapter[e]||e,s=t;return e==="bodyBytes"&&(s=q.transferBodyBytes(s,"Uint8Array")),super.setFn(n,i,s,r)}getVal(n){return $prefs.valueForKey(n)?.replace(/\0/g,"")}setVal(n,e){$prefs.setValueForKey(n,e)}msg(n=this.name,e="",t="",r){$notify(n,e,t,{"open-url":r??""})}async fetch(n){return await new Promise(e=>{let t={url:"",method:"GET"};for(let[r,i]of Object.entries(n))r==="id"?t.sessionIndex=i:r==="bodyBytes"?t.bodyBytes=q.transferBodyBytes(i,"ArrayBuffer"):t[r]=i;n.bodyBytes&&delete t.body,$task.fetch(t).then(r=>{let i={status:200,headers:{}};for(let[s,l]of Object.entries(r))s==="sessionIndex"?i.id=l:s==="bodyBytes"?i.bodyBytes=q.transferBodyBytes(l,"Uint8Array"):s==="statusCode"?i.status=l:i[s]=l;e(i)})})}done(n){let e=n.response??n,t={};for(let[r,i]of Object.entries(e))r==="status"?t.status=`HTTP/1.1 ${i}`:r==="bodyBytes"?t.bodyBytes=q.transferBodyBytes(i,"ArrayBuffer"):t[r]=i;$done(t)}},An=q;An.clientAdapter={id:"sessionIndex",status:"statusCode"};var pr=H.getInstance("Bilibili Helper",{debug:!1});function dr(n){let e=gr(n.length),t=new Uint8Array(5+n.length);return t[0]=0,t.set(e,1),t.set(n,5),t}function gr(n){let e=new ArrayBuffer(4);return new DataView(e).setUint32(0,n,!1),new Uint8Array(e)}function X(n,e){let t=n.toBinary(e);pr.done({bodyBytes:dr(t)})}var He=class extends b{constructor(){super("ModeStatus",[{no:1,name:"modes",kind:"message",repeat:1,T:()=>Ze}])}create(e){let t={modes:[]};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posqe}])}create(e){let t={id:0,name:"",f4:0};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posf.typeName===i);if(!l)throw new globalThis.Error("Unable to convert google.protobuf.Any with typeUrl '"+e.typeUrl+"' to JSON. The specified type "+i+" is not available in the type registry.");let o=l.fromBinary(e.value,{readUnknownField:!1}),a=l.internalJsonWrite(o,s);return(i.startsWith("google.protobuf.")||!se(a))&&(a={value:a}),a["@type"]=e.typeUrl,a}internalJsonRead(e,t,r){var i;if(!se(e))throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON "+Q(e)+".");if(typeof e["@type"]!="string"||e["@type"]=="")return this.create();let s=this.typeUrlToName(e["@type"]),l=(i=t?.typeRegistry)===null||i===void 0?void 0:i.find(a=>a.typeName==s);if(!l)throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON. The specified type "+s+" is not available in the type registry.");let o;if(s.startsWith("google.protobuf.")&&e.hasOwnProperty("value"))o=l.fromJson(e.value,t);else{let a=Object.assign({},e);delete a["@type"],o=l.fromJson(a,t)}return r===void 0&&(r=this.create()),r.typeUrl=e["@type"],r.value=l.toBinary(o),r}typeNameToUrl(e){if(!e.length)throw new Error("invalid type name: "+e);return"type.googleapis.com/"+e}typeUrlToName(e){if(!e.length)throw new Error("invalid type url: "+e);let t=e.lastIndexOf("/"),r=t>0?e.substring(t+1):e;if(!r.length)throw new Error("invalid type url: "+e);return r}create(e){let t={typeUrl:"",value:new Uint8Array(0)};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posD}])}create(e){let t={};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posD}])}create(e){let t={};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posj},{no:4,name:"duration",kind:"scalar",T:3,L:0},{no:5,name:"aid",kind:"scalar",T:3,L:0}])}create(e){let t={duration:0n,aid:0n};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posj},{no:31,name:"cm_config",kind:"message",T:()=>rt},{no:41,name:"cm_ipad",kind:"message",T:()=>it}])}create(e){let t={cms:[]};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posj}])}create(e){let t={};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posct}])}create(e){let t={items:[]};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.pos["DynamicType",ae]},{no:2,name:"item_type",kind:"enum",T:()=>["DynamicType",ae]},{no:5,name:"has_fold",kind:"scalar",T:5},{no:6,name:"server_info",kind:"scalar",T:9}])}create(e){let t={cardType:0,itemType:0,hasFold:0,serverInfo:""};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posgt},{no:2,name:"update_num",kind:"scalar",T:3,L:0},{no:3,name:"history_offset",kind:"scalar",T:9},{no:4,name:"update_baseline",kind:"scalar",T:9},{no:5,name:"has_more",kind:"scalar",T:8}])}create(e){let t={list:[],updateNum:0n,historyOffset:"",updateBaseline:"",hasMore:!1};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.poswt},{no:3,name:"topic_list",kind:"message",T:()=>yt}])}create(e){let t={};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posxt}])}create(e){let t={};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.poste}])}create(e){let t={commandDms:[]};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.pos["viewunite.v1.RelateCardType",ge]}])}create(e){let t={relateCardType:0};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posTt}])}create(e){let t={cards:[]};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.pos["viewunite.v1.ModuleType",de]},{no:22,name:"relates",kind:"message",oneof:"data",T:()=>Ut}])}create(e){let t={type:0,data:{oneofKind:void 0}};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posAt}])}create(e){let t={title:"",modules:[]};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.pos["viewunite.v1.TabType",Lt]},{no:2,name:"introduction",kind:"message",oneof:"tab",T:()=>Ft}])}create(e){let t={tabType:0,tab:{oneofKind:void 0}};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posRt}])}create(e){let t={tabModule:[]};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posD},{no:2,name:"ads_control",kind:"message",T:()=>D},{no:3,name:"source_content",kind:"message",repeat:1,T:()=>D}])}create(e){let t={sourceContent:[]};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posSt},{no:7,name:"cm",kind:"message",T:()=>Vt}])}create(e){let t={};return globalThis.Object.defineProperty(t,v,{enumerable:!1,value:this}),e!==void 0&&w(this,t,e),t}internalBinaryRead(e,t,r,i){let s=i??this.create(),l=e.pos+t;for(;e.posr.name==="teenagers");t?.f5?.f1&&(t.f5.f1=0,X(tt,e))}function Sn(n){let e=ft.fromBinary(n);delete e.cmConfig,delete e.cmIpad,e.cms.length=0,X(ft,e)}function Vn(n){let e=ht.fromBinary(n);delete e.cm,X(ht,e)}function Ln(n){let e=dt.fromBinary(n);e.items=e.items.filter(t=>!t.linktype.endsWith("_ad")),X(dt,e)}function Dn(n){let e=Et.fromBinary(n);delete e.topicList,e.dynamicList.list=e.dynamicList.list.filter(t=>t.cardType!==ae.ad),X(Et,e)}function Cn(n){let e=Ot.fromBinary(n);delete e.dm,X(Ot,e)}function Wn(n){let e=zt.fromBinary(n);delete e.cm,e.tab.tabModule.forEach(t=>{if(t.tab.oneofKind!=="introduction")return;let r=t.tab.introduction.modules.find(i=>i.type===de.RELATED_RECOMMEND);r?.data?.oneofKind!=="relates"||!r.data.relates.cards||(r.data.relates.cards=r.data.relates.cards.filter(i=>i.relateCardType===ge.AV))}),X(zt,e)}var wr=/(?.+):\/\/(?[^/]+)\/?(?[^?]+)?\??(?.*)?/,we=class{constructor(e=""){if(this.name="URL v1.0.2",!e)throw new Error("Empty URL");this.parse(e)}parse(e){let{scheme:t,host:r,path:i="",params:s}=e.match(wr)?.groups??{};this.scheme=t,this.host=r,this.path=i,this.params=s?s.split("&").reduce((l,o)=>{let[a,f]=o.split("=");return l[a]=f,l},{}):{}}toString(){let e=this.scheme+"://"+this.host+"/"+this.path;return this.params&&(e+="?"+Object.entries(this.params).reduce((t,[r,i],s)=>t+(s?"&":"")+r+"="+i,"")),e}};var Kt=H.getInstance("Bilibili Helper",{debug:!1}),yr=Kt.request.url,Pn=Kt.response.bodyBytes,vr=new we(yr).path,br=typeof $utils=="object"&&typeof $utils?.ungzip=="function"?$utils.ungzip:fn,kr=Pn.slice(0,5),jt=Pn.slice(5);kr[0]&&(jt=br(jt));var $n={"v1.DM/DmView":Fn,"v1.Teenagers/ModeStatus":Rn,"v1.Reply/MainList":Vn,"v1.Search/SearchAll":Ln,"v2.Dynamic/DynAll":Dn,"viewunite.v1.View/View":Wn,"view.v1.View/ViewProgress":Cn,"view.v1.View/View":Sn};for(let n in $n)if(vr.endsWith(n)){$n[n](jt);break}Kt.exit();})(); diff --git a/Scripts/bilibili/protoC.js b/Scripts/bilibili/protoC.js deleted file mode 100644 index d8c3526a..00000000 --- a/Scripts/bilibili/protoC.js +++ /dev/null @@ -1,3 +0,0 @@ -// Build: 2024/9/21 20:11:53 -(()=>{console.time=function(r){this._times=this._times||{},this._times[r]=Date.now()};console.timeEnd=function(r){if(this._times&&this._times[r]){let e=Date.now()-this._times[r];console.log(`${r}: ${e}ms`),delete this._times[r]}else console.log(`Timer with label ${r} does not exist.`)};function ir(r){"use strict";function e(){}function t(){}var i=String.fromCharCode,n={}.toString,s=n.call(r.SharedArrayBuffer),f=n(),o=r.Uint8Array,l=o||Array,a=o?ArrayBuffer:l,c=a.isView||function(v){return v&&"length"in v},g=n.call(a.prototype);a=t.prototype;var w=r.TextEncoder,y=new(o?Uint16Array:l)(32);e.prototype.decode=function(v){if(!c(v)){var L=n.call(v);if(L!==g&&L!==s&&L!==f)throw TypeError("Failed to execute 'decode' on 'TextDecoder': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'");v=o?new l(v):v||[]}for(var B=L="",k=0,T=v.length|0,V=T-32|0,E,U,F=0,K=0,C,A=0,W=-1;k>4){case 15:if(C=v[k=k+1|0]&255,C>>6!==2||247>6===2?K+4|0:24,U=U+256&768;case 13:case 12:C=v[k=k+1|0]&255,F<<=6,F|=(U&31)<<6|C&63,K=K+7|0,k>6===2&&F>>K&&1114112>F?(U=F,F=F-65536|0,0<=F&&(W=(F>>10)+55296|0,U=(F&1023)+56320|0,31>A?(y[A]=W,A=A+1|0,W=-1):(C=W,W=U,U=C))):(U>>=8,k=k-U-1|0,U=65533),F=K=0,E=k<=V?32:T-k|0;default:y[A]=U;continue;case 11:case 10:case 9:case 8:}y[A]=65533}if(B+=i(y[0],y[1],y[2],y[3],y[4],y[5],y[6],y[7],y[8],y[9],y[10],y[11],y[12],y[13],y[14],y[15],y[16],y[17],y[18],y[19],y[20],y[21],y[22],y[23],y[24],y[25],y[26],y[27],y[28],y[29],y[30],y[31]),32>A&&(B=B.slice(0,A-32|0)),k>>31,W=-1,B.length=E)B[T]=E;else{if(2047>=E)B[T]=192|E>>6;else{e:{if(55296<=E)if(56319>=E){var U=v.charCodeAt(k=k+1|0)|0;if(56320<=U&&57343>=U){if(E=(E<<10)+U-56613888|0,65535>18,B[T=T+1|0]=128|E>>12&63,B[T=T+1|0]=128|E>>6&63,B[T=T+1|0]=128|E&63;continue}break e}E=65533}else 57343>=E&&(E=65533);!V&&k<<1>12,B[T=T+1|0]=128|E>>6&63}B[T=T+1|0]=128|E&63}}return o?B.subarray(0,T):B.slice(0,T)},r.TextDecoder=e,r.TextEncoder=t}var b=ir(globalThis);var $=Uint8Array,ae=Uint16Array,rr=Int32Array,li=new $([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),fi=new $([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),sr=new $([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ui=function(r,e){for(var t=new ae(31),i=0;i<31;++i)t[i]=e+=1<>1|(x&21845)<<1,J=(J&52428)>>2|(J&13107)<<2,J=(J&61680)>>4|(J&3855)<<4,je[x]=((J&65280)>>8|(J&255)<<8)>>1;var J,x,he=function(r,e,t){for(var i=r.length,n=0,s=new ae(e);n>l]=a}else for(o=new ae(i),n=0;n>15-r[n]);return o},de=new $(288);for(x=0;x<144;++x)de[x]=8;var x;for(x=144;x<256;++x)de[x]=9;var x;for(x=256;x<280;++x)de[x]=7;var x;for(x=280;x<288;++x)de[x]=8;var x,pi=new $(32);for(x=0;x<32;++x)pi[x]=5;var x;var lr=he(de,9,1);var fr=he(pi,5,1),_e=function(r){for(var e=r[0],t=1;te&&(e=r[t]);return e},z=function(r,e,t){var i=e/8|0;return(r[i]|r[i+1]<<8)>>(e&7)&t},$e=function(r,e){var t=e/8|0;return(r[t]|r[t+1]<<8|r[t+2]<<16)>>(e&7)},ur=function(r){return(r+7)/8|0},cr=function(r,e,t){return(e==null||e<0)&&(e=0),(t==null||t>r.length)&&(t=r.length),new $(r.subarray(e,t))};var hr=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],G=function(r,e,t){var i=new Error(e||hr[r]);if(i.code=r,Error.captureStackTrace&&Error.captureStackTrace(i,G),!t)throw i;return i},dr=function(r,e,t,i){var n=r.length,s=i?i.length:0;if(!n||e.f&&!e.l)return t||new $(0);var f=!t,o=f||e.i!=2,l=e.i;f&&(t=new $(n*3));var a=function(si){var oi=t.length;if(si>oi){var ai=new $(Math.max(oi*2,si));ai.set(t),t=ai}},c=e.f||0,g=e.p||0,w=e.b||0,y=e.l,v=e.d,L=e.m,B=e.n,k=n*8;do{if(!y){c=z(r,g,1);var T=z(r,g+1,3);if(g+=3,T)if(T==1)y=lr,v=fr,L=9,B=5;else if(T==2){var F=z(r,g,31)+257,K=z(r,g+10,15)+4,C=F+z(r,g+5,31)+1;g+=14;for(var A=new $(C),W=new $(19),M=0;M>4;if(V<16)A[M++]=V;else{var se=0,ke=0;for(V==16?(ke=3+z(r,g,3),g+=2,se=A[M-1]):V==17?(ke=3+z(r,g,7),g+=3):V==18&&(ke=11+z(r,g,127),g+=7);ke--;)A[M++]=se}}var ti=A.subarray(0,F),X=A.subarray(F);L=_e(ti),B=_e(X),y=he(ti,L,1),v=he(X,B,1)}else G(1);else{var V=ur(g)+4,E=r[V-4]|r[V-3]<<8,U=V+E;if(U>n){l&&G(0);break}o&&a(w+E),t.set(r.subarray(V,U),w),e.b=w+=E,e.p=g=U*8,e.f=c;continue}if(g>k){l&&G(0);break}}o&&a(w+131072);for(var er=(1<>4;if(g+=se&15,g>k){l&&G(0);break}if(se||G(2),oe<256)t[w++]=oe;else if(oe==256){Ce=g,y=null;break}else{var ni=oe-254;if(oe>264){var M=oe-257,ce=li[M];ni=z(r,g,(1<>4;We||G(3),g+=We&15;var X=ar[Pe];if(Pe>3){var ce=fi[Pe];X+=$e(r,g)&(1<k){l&&G(0);break}o&&a(w+131072);var ii=w+ni;if(w>3&1)+(e>>4&1);i>0;i-=!r[t++]);return t+(e&2)},gr=function(r){var e=r.length;return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0};function mi(r,e){var t=mr(r);return t+8>r.length&&G(6,"invalid gzip data"),dr(r.subarray(t,-8),{i:2},e&&e.out||new $(gr(r)),e&&e.dictionary)}var yr=typeof TextDecoder<"u"&&new TextDecoder,wr=0;try{yr.decode(pr,{stream:!0}),wr=1}catch{}function Q(r){let e=typeof r;if(e=="object"){if(Array.isArray(r))return"array";if(r===null)return"null"}return e}function le(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)}var q="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),ve=[];for(let r=0;r>4,f=s,n=2;break;case 2:t[i++]=(f&15)<<4|(s&60)>>2,f=s,n=3;break;case 3:t[i++]=(f&3)<<6|s,n=0;break}}if(n==1)throw Error("invalid base64 string.");return t.subarray(0,i)}function yi(r){let e="",t=0,i,n=0;for(let s=0;s>2],n=(i&3)<<4,t=1;break;case 1:e+=q[n|i>>4],n=(i&15)<<2,t=2;break;case 2:e+=q[n|i>>6],e+=q[i&63],t=0;break}return t&&(e+=q[n],e+="=",t==1&&(e+="=")),e}var h;(function(r){r.symbol=Symbol.for("protobuf-ts/unknown"),r.onRead=(t,i,n,s,f)=>{(e(i)?i[r.symbol]:i[r.symbol]=[]).push({no:n,wireType:s,data:f})},r.onWrite=(t,i,n)=>{for(let{no:s,wireType:f,data:o}of r.list(i))n.tag(s,f).raw(o)},r.list=(t,i)=>{if(e(t)){let n=t[r.symbol];return i?n.filter(s=>s.no==i):n}return[]},r.last=(t,i)=>r.list(t,i).slice(-1)[0];let e=t=>t&&Array.isArray(t[r.symbol])})(h||(h={}));var u;(function(r){r[r.Varint=0]="Varint",r[r.Bit64=1]="Bit64",r[r.LengthDelimited=2]="LengthDelimited",r[r.StartGroup=3]="StartGroup",r[r.EndGroup=4]="EndGroup",r[r.Bit32=5]="Bit32"})(u||(u={}));function wi(){let r=0,e=0;for(let i=0;i<28;i+=7){let n=this.buf[this.pos++];if(r|=(n&127)<>4,!(t&128))return this.assertBounds(),[r,e];for(let i=3;i<=31;i+=7){let n=this.buf[this.pos++];if(e|=(n&127)<>>s,o=!(!(f>>>7)&&e==0),l=(o?f|128:f)&255;if(t.push(l),!o)return}let i=r>>>28&15|(e&7)<<4,n=!!(e>>3);if(t.push((n?i|128:i)&255),!!n){for(let s=3;s<31;s=s+7){let f=e>>>s,o=!!(f>>>7),l=(o?f|128:f)&255;if(t.push(l),!o)return}t.push(e>>>31&1)}}var Ne=65536*65536;function Me(r){let e=r[0]=="-";e&&(r=r.slice(1));let t=1e6,i=0,n=0;function s(f,o){let l=Number(r.slice(f,o));n*=t,i=i*t+l,i>=Ne&&(n=n+(i/Ne|0),i=i%Ne)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),[e,i,n]}function Te(r,e){if(e>>>0<=2097151)return""+(Ne*e+(r>>>0));let t=r&16777215,i=(r>>>24|e<<8)>>>0&16777215,n=e>>16&65535,s=t+i*6777216+n*6710656,f=i+n*8147497,o=n*2,l=1e7;s>=l&&(f+=Math.floor(s/l),s%=l),f>=l&&(o+=Math.floor(f/l),f%=l);function a(c,g){let w=c?String(c):"";return g?"0000000".slice(w.length)+w:w}return a(o,0)+a(f,o)+a(s,1)}function ze(r,e){if(r>=0){for(;r>127;)e.push(r&127|128),r=r>>>7;e.push(r)}else{for(let t=0;t<9;t++)e.push(r&127|128),r=r>>7;e.push(1)}}function bi(){let r=this.buf[this.pos++],e=r&127;if(!(r&128))return this.assertBounds(),e;if(r=this.buf[this.pos++],e|=(r&127)<<7,!(r&128))return this.assertBounds(),e;if(r=this.buf[this.pos++],e|=(r&127)<<14,!(r&128))return this.assertBounds(),e;if(r=this.buf[this.pos++],e|=(r&127)<<21,!(r&128))return this.assertBounds(),e;r=this.buf[this.pos++],e|=(r&15)<<28;for(let t=5;r&128&&t<10;t++)r=this.buf[this.pos++];if(r&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}var O;function br(){let r=new DataView(new ArrayBuffer(8));O=globalThis.BigInt!==void 0&&typeof r.getBigInt64=="function"&&typeof r.getBigUint64=="function"&&typeof r.setBigInt64=="function"&&typeof r.setBigUint64=="function"?{MIN:BigInt("-9223372036854775808"),MAX:BigInt("9223372036854775807"),UMIN:BigInt("0"),UMAX:BigInt("18446744073709551615"),C:BigInt,V:r}:void 0}br();function ki(r){if(!r)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}var vi=/^-?[0-9]+$/,Ie=4294967296,xe=2147483648,Ue=class{constructor(e,t){this.lo=e|0,this.hi=t|0}isZero(){return this.lo==0&&this.hi==0}toNumber(){let e=this.hi*Ie+(this.lo>>>0);if(!Number.isSafeInteger(e))throw new Error("cannot convert to safe number");return e}},R=class extends Ue{static from(e){if(O)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=O.C(e);case"number":if(e===0)return this.ZERO;e=O.C(e);case"bigint":if(!e)return this.ZERO;if(eO.UMAX)throw new Error("ulong too large");return O.V.setBigUint64(0,e,!0),new R(O.V.getInt32(0,!0),O.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!vi.test(e))throw new Error("string is no integer");let[t,i,n]=Me(e);if(t)throw new Error("signed value for ulong");return new R(i,n);case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");if(e<0)throw new Error("signed value for ulong");return new R(e,e/Ie)}throw new Error("unknown value "+typeof e)}toString(){return O?this.toBigInt().toString():Te(this.lo,this.hi)}toBigInt(){return ki(O),O.V.setInt32(0,this.lo,!0),O.V.setInt32(4,this.hi,!0),O.V.getBigUint64(0,!0)}};R.ZERO=new R(0,0);var I=class extends Ue{static from(e){if(O)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=O.C(e);case"number":if(e===0)return this.ZERO;e=O.C(e);case"bigint":if(!e)return this.ZERO;if(eO.MAX)throw new Error("signed long too large");return O.V.setBigInt64(0,e,!0),new I(O.V.getInt32(0,!0),O.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!vi.test(e))throw new Error("string is no integer");let[t,i,n]=Me(e);if(t){if(n>xe||n==xe&&i!=0)throw new Error("signed long too small")}else if(n>=xe)throw new Error("signed long too large");let s=new I(i,n);return t?s.negate():s;case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");return e>0?new I(e,e/Ie):new I(-e,-e/Ie).negate()}throw new Error("unknown value "+typeof e)}isNegative(){return(this.hi&xe)!==0}negate(){let e=~this.hi,t=this.lo;return t?t=~t+1:e+=1,new I(t,e)}toString(){if(O)return this.toBigInt().toString();if(this.isNegative()){let e=this.negate();return"-"+Te(e.lo,e.hi)}return Te(this.lo,this.hi)}toBigInt(){return ki(O),O.V.setInt32(0,this.lo,!0),O.V.setInt32(4,this.hi,!0),O.V.getBigInt64(0,!0)}};I.ZERO=new I(0,0);var Ni={readUnknownField:!0,readerFactory:r=>new Ge(r)};function Bi(r){return r?Object.assign(Object.assign({},Ni),r):Ni}var Ge=class{constructor(e,t){this.varint64=wi,this.uint32=bi,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0})}tag(){let e=this.uint32(),t=e>>>3,i=e&7;if(t<=0||i<0||i>5)throw new Error("illegal tag: field no "+t+" wire type "+i);return[t,i]}skip(e){let t=this.pos;switch(e){case u.Varint:for(;this.buf[this.pos++]&128;);break;case u.Bit64:this.pos+=4;case u.Bit32:this.pos+=4;break;case u.LengthDelimited:let i=this.uint32();this.pos+=i;break;case u.StartGroup:let n;for(;(n=this.tag()[1])!==u.EndGroup;)this.skip(n);break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(t,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return new I(...this.varint64())}uint64(){return new R(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,new I(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return new R(this.sfixed32(),this.sfixed32())}sfixed64(){return new I(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}};function N(r,e){if(!r)throw new Error(e)}var kr=34028234663852886e22,vr=-34028234663852886e22,Nr=4294967295,Br=2147483647,Tr=-2147483648;function Z(r){if(typeof r!="number")throw new Error("invalid int 32: "+typeof r);if(!Number.isInteger(r)||r>Br||rNr||r<0)throw new Error("invalid uint 32: "+r)}function fe(r){if(typeof r!="number")throw new Error("invalid float 32: "+typeof r);if(Number.isFinite(r)&&(r>kr||rnew Ke};function xi(r){return r?Object.assign(Object.assign({},Ti),r):Ti}var Ke=class{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let n=0;n>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(ee(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return Z(e),ze(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){fe(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){ee(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){Z(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return Z(e),e=(e<<1^e>>31)>>>0,ze(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),n=I.from(e);return i.setInt32(0,n.lo,!0),i.setInt32(4,n.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),n=R.from(e);return i.setInt32(0,n.lo,!0),i.setInt32(4,n.hi,!0),this.raw(t)}int64(e){let t=I.from(e);return Be(t.lo,t.hi,this.buf),this}sint64(e){let t=I.from(e),i=t.hi>>31,n=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return Be(n,s,this.buf),this}uint64(e){let t=R.from(e);return Be(t.lo,t.hi,this.buf),this}};var Ii={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0},Ui={ignoreUnknownFields:!1};function Je(r){return r?Object.assign(Object.assign({},Ui),r):Ui}function pe(r){return r?Object.assign(Object.assign({},Ii),r):Ii}var Ee=Symbol.for("protobuf-ts/message-type");function qe(r){let e=!1,t=[];for(let i=0;i!n.includes(f))||!i&&n.some(f=>!s.known.includes(f)))return!1;if(t<1)return!0;for(let f of s.oneofs){let o=e[f];if(!Oi(o))return!1;if(o.oneofKind===void 0)continue;let l=this.fields.find(a=>a.localName===o.oneofKind);if(!l||!this.field(o[o.oneofKind],l,i,t))return!1}for(let f of this.fields)if(f.oneof===void 0&&!this.field(e[f.localName],f,i,t))return!1;return!0}field(e,t,i,n){let s=t.repeat;switch(t.kind){case"scalar":return e===void 0?t.opt:s?this.scalars(e,t.T,n,t.L):this.scalar(e,t.T,t.L);case"enum":return e===void 0?t.opt:s?this.scalars(e,d.INT32,n):this.scalar(e,d.INT32);case"message":return e===void 0?!0:s?this.messages(e,t.T(),i,n):this.message(e,t.T(),i,n);case"map":if(typeof e!="object"||e===null)return!1;if(n<2)return!0;if(!this.mapKeys(e,t.K,n))return!1;switch(t.V.kind){case"scalar":return this.scalars(Object.values(e),t.V.T,n,t.V.L);case"enum":return this.scalars(Object.values(e),d.INT32,n);case"message":return this.messages(Object.values(e),t.V.T(),i,n)}break}return!0}message(e,t,i,n){return i?t.isAssignable(e,n):t.is(e,n)}messages(e,t,i,n){if(!Array.isArray(e))return!1;if(n<2)return!0;if(i){for(let s=0;sparseInt(s)),t,i);case d.BOOL:return this.scalars(n.slice(0,i).map(s=>s=="true"?!0:s=="false"?!1:s),t,i);default:return this.scalars(n,t,i,S.STRING)}}};function P(r,e){switch(e){case S.BIGINT:return r.toBigInt();case S.NUMBER:return r.toNumber();default:return r.toString()}}var Re=class{constructor(e){this.info=e}prepare(){var e;if(this.fMap===void 0){this.fMap={};let t=(e=this.info.fields)!==null&&e!==void 0?e:[];for(let i of t)this.fMap[i.name]=i,this.fMap[i.jsonName]=i,this.fMap[i.localName]=i}}assert(e,t,i){if(!e){let n=Q(i);throw(n=="number"||n=="boolean")&&(n=i.toString()),new Error(`Cannot parse JSON ${n} for ${this.info.typeName}#${t}`)}}read(e,t,i){this.prepare();let n=[];for(let[s,f]of Object.entries(e)){let o=this.fMap[s];if(!o){if(!i.ignoreUnknownFields)throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${s}`);continue}let l=o.localName,a;if(o.oneof){if(f===null&&(o.kind!=="enum"||o.T()[0]!=="google.protobuf.NullValue"))continue;if(n.includes(o.oneof))throw new Error(`Multiple members of the oneof group "${o.oneof}" of ${this.info.typeName} are present in JSON.`);n.push(o.oneof),a=t[o.oneof]={oneofKind:l}}else a=t;if(o.kind=="map"){if(f===null)continue;this.assert(le(f),o.name,f);let c=a[l];for(let[g,w]of Object.entries(f)){this.assert(w!==null,o.name+" map value",null);let y;switch(o.V.kind){case"message":y=o.V.T().internalJsonRead(w,i);break;case"enum":if(y=this.enum(o.V.T(),w,o.name,i.ignoreUnknownFields),y===!1)continue;break;case"scalar":y=this.scalar(w,o.V.T,o.V.L,o.name);break}this.assert(y!==void 0,o.name+" map value",w);let v=g;o.K==d.BOOL&&(v=v=="true"?!0:v=="false"?!1:v),v=this.scalar(v,o.K,S.STRING,o.name).toString(),c[v]=y}}else if(o.repeat){if(f===null)continue;this.assert(Array.isArray(f),o.name,f);let c=a[l];for(let g of f){this.assert(g!==null,o.name,null);let w;switch(o.kind){case"message":w=o.T().internalJsonRead(g,i);break;case"enum":if(w=this.enum(o.T(),g,o.name,i.ignoreUnknownFields),w===!1)continue;break;case"scalar":w=this.scalar(g,o.T,o.L,o.name);break}this.assert(w!==void 0,o.name,f),c.push(w)}}else switch(o.kind){case"message":if(f===null&&o.T().typeName!="google.protobuf.Value"){this.assert(o.oneof===void 0,o.name+" (oneof member)",null);continue}a[l]=o.T().internalJsonRead(f,i,a[l]);break;case"enum":let c=this.enum(o.T(),f,o.name,i.ignoreUnknownFields);if(c===!1)continue;a[l]=c;break;case"scalar":a[l]=this.scalar(f,o.T,o.L,o.name);break}}}enum(e,t,i,n){if(e[0]=="google.protobuf.NullValue"&&N(t===null||t==="NULL_VALUE",`Unable to parse field ${this.info.typeName}#${i}, enum ${e[0]} only accepts null.`),t===null)return 0;switch(typeof t){case"number":return N(Number.isInteger(t),`Unable to parse field ${this.info.typeName}#${i}, enum can only be integral number, got ${t}.`),t;case"string":let s=t;e[2]&&t.substring(0,e[2].length)===e[2]&&(s=t.substring(e[2].length));let f=e[1][s];return typeof f>"u"&&n?!1:(N(typeof f=="number",`Unable to parse field ${this.info.typeName}#${i}, enum ${e[0]} has no value for "${t}".`),f)}N(!1,`Unable to parse field ${this.info.typeName}#${i}, cannot parse enum value from ${typeof t}".`)}scalar(e,t,i,n){let s;try{switch(t){case d.DOUBLE:case d.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""){s="empty string";break}if(typeof e=="string"&&e.trim().length!==e.length){s="extra whitespace";break}if(typeof e!="string"&&typeof e!="number")break;let f=Number(e);if(Number.isNaN(f)){s="not a number";break}if(!Number.isFinite(f)){s="too large or small";break}return t==d.FLOAT&&fe(f),f;case d.INT32:case d.FIXED32:case d.SFIXED32:case d.SINT32:case d.UINT32:if(e===null)return 0;let o;if(typeof e=="number"?o=e:e===""?s="empty string":typeof e=="string"&&(e.trim().length!==e.length?s="extra whitespace":o=Number(e)),o===void 0)break;return t==d.UINT32?ee(o):Z(o),o;case d.INT64:case d.SFIXED64:case d.SINT64:if(e===null)return P(I.ZERO,i);if(typeof e!="number"&&typeof e!="string")break;return P(I.from(e),i);case d.FIXED64:case d.UINT64:if(e===null)return P(R.ZERO,i);if(typeof e!="number"&&typeof e!="string")break;return P(R.from(e),i);case d.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case d.STRING:if(e===null)return"";if(typeof e!="string"){s="extra whitespace";break}try{encodeURIComponent(e)}catch(l){l="invalid UTF8";break}return e;case d.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return gi(e)}}catch(f){s=f.message}this.assert(!1,n+(s?" - "+s:""),e)}};var Le=class{constructor(e){var t;this.fields=(t=e.fields)!==null&&t!==void 0?t:[]}write(e,t){let i={},n=e;for(let s of this.fields){if(!s.oneof){let a=this.field(s,n[s.localName],t);a!==void 0&&(i[t.useProtoFieldName?s.name:s.jsonName]=a);continue}let f=n[s.oneof];if(f.oneofKind!==s.localName)continue;let o=s.kind=="scalar"||s.kind=="enum"?Object.assign(Object.assign({},t),{emitDefaultValues:!0}):t,l=this.field(s,f[s.localName],o);N(l!==void 0),i[t.useProtoFieldName?s.name:s.jsonName]=l}return i}field(e,t,i){let n;if(e.kind=="map"){N(typeof t=="object"&&t!==null);let s={};switch(e.V.kind){case"scalar":for(let[l,a]of Object.entries(t)){let c=this.scalar(e.V.T,a,e.name,!1,!0);N(c!==void 0),s[l.toString()]=c}break;case"message":let f=e.V.T();for(let[l,a]of Object.entries(t)){let c=this.message(f,a,e.name,i);N(c!==void 0),s[l.toString()]=c}break;case"enum":let o=e.V.T();for(let[l,a]of Object.entries(t)){N(a===void 0||typeof a=="number");let c=this.enum(o,a,e.name,!1,!0,i.enumAsInteger);N(c!==void 0),s[l.toString()]=c}break}(i.emitDefaultValues||Object.keys(s).length>0)&&(n=s)}else if(e.repeat){N(Array.isArray(t));let s=[];switch(e.kind){case"scalar":for(let l=0;l0||i.emitDefaultValues)&&(n=s)}else switch(e.kind){case"scalar":n=this.scalar(e.T,t,e.name,e.opt,i.emitDefaultValues);break;case"enum":n=this.enum(e.T(),t,e.name,e.opt,i.emitDefaultValues,i.enumAsInteger);break;case"message":n=this.message(e.T(),t,e.name,i);break}return n}enum(e,t,i,n,s,f){if(e[0]=="google.protobuf.NullValue")return!s&&!n?void 0:null;if(t===void 0){N(n);return}if(!(t===0&&!s&&!n))return N(typeof t=="number"),N(Number.isInteger(t)),f||!e[1].hasOwnProperty(t)?t:e[2]?e[2]+e[1][t]:e[1][t]}message(e,t,i,n){return t===void 0?n.emitDefaultValues?null:void 0:e.internalJsonWrite(t,n)}scalar(e,t,i,n,s){if(t===void 0){N(n);return}let f=s||n;switch(e){case d.INT32:case d.SFIXED32:case d.SINT32:return t===0?f?0:void 0:(Z(t),t);case d.FIXED32:case d.UINT32:return t===0?f?0:void 0:(ee(t),t);case d.FLOAT:fe(t);case d.DOUBLE:return t===0?f?0:void 0:(N(typeof t=="number"),Number.isNaN(t)?"NaN":t===Number.POSITIVE_INFINITY?"Infinity":t===Number.NEGATIVE_INFINITY?"-Infinity":t);case d.STRING:return t===""?f?"":void 0:(N(typeof t=="string"),t);case d.BOOL:return t===!1?f?!1:void 0:(N(typeof t=="boolean"),t);case d.UINT64:case d.FIXED64:N(typeof t=="number"||typeof t=="string"||typeof t=="bigint");let o=R.from(t);return o.isZero()&&!f?void 0:o.toString();case d.INT64:case d.SFIXED64:case d.SINT64:N(typeof t=="number"||typeof t=="string"||typeof t=="bigint");let l=I.from(t);return l.isZero()&&!f?void 0:l.toString();case d.BYTES:return N(t instanceof Uint8Array),t.byteLength?yi(t):f?"":void 0}}};function ge(r,e=S.STRING){switch(r){case d.BOOL:return!1;case d.UINT64:case d.FIXED64:return P(R.ZERO,e);case d.INT64:case d.SFIXED64:case d.SINT64:return P(I.ZERO,e);case d.DOUBLE:case d.FLOAT:return 0;case d.BYTES:return new Uint8Array(0);case d.STRING:return"";default:return 0}}var Fe=class{constructor(e){this.info=e}prepare(){var e;if(!this.fieldNoToField){let t=(e=this.info.fields)!==null&&e!==void 0?e:[];this.fieldNoToField=new Map(t.map(i=>[i.no,i]))}}read(e,t,i,n){this.prepare();let s=n===void 0?e.len:e.pos+n;for(;e.post.no-i.no)}}write(e,t,i){this.prepare();for(let s of this.fields){let f,o,l=s.repeat,a=s.localName;if(s.oneof){let c=e[s.oneof];if(c.oneofKind!==a)continue;f=c[a],o=!0}else f=e[a],o=!1;switch(s.kind){case"scalar":case"enum":let c=s.kind=="enum"?d.INT32:s.T;if(l)if(N(Array.isArray(f)),l==me.PACKED)this.packed(t,c,s.no,f);else for(let g of f)this.scalar(t,c,s.no,g,!0);else f===void 0?N(s.opt):this.scalar(t,c,s.no,f,o||s.opt);break;case"message":if(l){N(Array.isArray(f));for(let g of f)this.message(t,i,s.T(),s.no,g)}else this.message(t,i,s.T(),s.no,f);break;case"map":N(typeof f=="object"&&f!==null);for(let[g,w]of Object.entries(f))this.mapEntry(t,i,s,g,w);break}}let n=i.writeUnknownFields;n!==!1&&(n===!0?h.onWrite:n)(this.info.typeName,e,t)}mapEntry(e,t,i,n,s){e.tag(i.no,u.LengthDelimited),e.fork();let f=n;switch(i.K){case d.INT32:case d.FIXED32:case d.UINT32:case d.SFIXED32:case d.SINT32:f=Number.parseInt(n);break;case d.BOOL:N(n=="true"||n=="false"),f=n=="true";break}switch(this.scalar(e,i.K,1,f,!0),i.V.kind){case"scalar":this.scalar(e,i.V.T,2,s,!0);break;case"enum":this.scalar(e,d.INT32,2,s,!0);break;case"message":this.message(e,t,i.V.T(),2,s);break}e.join()}message(e,t,i,n,s){s!==void 0&&(i.internalBinaryWrite(s,e.tag(n,u.LengthDelimited).fork(),t),e.join())}scalar(e,t,i,n,s){let[f,o,l]=this.scalarInfo(t,n);(!l||s)&&(e.tag(i,f),e[o](n))}packed(e,t,i,n){if(!n.length)return;N(t!==d.BYTES&&t!==d.STRING),e.tag(i,u.LengthDelimited),e.fork();let[,s]=this.scalarInfo(t);for(let f=0;fte}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.commandDms=[],e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posXe}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posnew Si(r,e,t),Surge:(r,e,t)=>new Vi(r,e,t)};var et=class extends H{getFn(r,e,t){let i=et.clientAdapter[e]||e;return super.getFn(r,i,t)}setFn(r,e,t,i){let n=et.clientAdapter[e]||e;return super.setFn(r,n,t,i)}init(){try{this.request=this.createProxy($request),this.response=this.createProxy($response)}catch(r){this.log(r.toString())}}getVal(r){return $persistentStore.read(r)}setVal(r,e){$persistentStore.write(r,e)}msg(r=this.name,e="",t="",i){$notification.post(r,e,t,{url:i??""})}async fetch(r){return await new Promise((e,t)=>{let{method:i,body:n,bodyBytes:s,...f}=r,o=s??n,l=o instanceof Uint8Array;$httpClient[i.toLowerCase()]({...f,body:o,"binary-mode":l},(a,c,g)=>{a&&t(a);let w=l?"bodyBytes":"body";e({status:c.status,headers:c.headers,[w]:g})})})}done(r){let e=r.response??r,t,i;e.bodyBytes?(t=e.bodyBytes,delete e.bodyBytes,i={...r},i.response?i.response.body=t:i.body=t):i=r,$done(i)}},Vi=et;Vi.clientAdapter={bodyBytes:"body"};var Y=class extends H{static transferBodyBytes(r,e){return r instanceof ArrayBuffer?e==="Uint8Array"?new Uint8Array(r):r:r instanceof Uint8Array&&e==="ArrayBuffer"?r.buffer.slice(r.byteOffset,r.byteLength+r.byteOffset):r}init(){try{this.request=this.createProxy($request),this.response=this.createProxy($response)}catch(r){this.log(r.toString())}}getFn(r,e,t){let i=Y.clientAdapter[e]||e,n=super.getFn(r,i,t);return e==="bodyBytes"&&(n=Y.transferBodyBytes(n,"Uint8Array")),n}setFn(r,e,t,i){let n=Y.clientAdapter[e]||e,s=t;return e==="bodyBytes"&&(s=Y.transferBodyBytes(s,"Uint8Array")),super.setFn(r,n,s,i)}getVal(r){return $prefs.valueForKey(r)?.replace(/\0/g,"")}setVal(r,e){$prefs.setValueForKey(r,e)}msg(r=this.name,e="",t="",i){$notify(r,e,t,{"open-url":i??""})}async fetch(r){return await new Promise(e=>{let t={url:"",method:"GET"};for(let[i,n]of Object.entries(r))i==="id"?t.sessionIndex=n:i==="bodyBytes"?t.bodyBytes=Y.transferBodyBytes(n,"ArrayBuffer"):t[i]=n;r.bodyBytes&&delete t.body,$task.fetch(t).then(i=>{let n={status:200,headers:{}};for(let[s,f]of Object.entries(i))s==="sessionIndex"?n.id=f:s==="bodyBytes"?n.bodyBytes=Y.transferBodyBytes(f,"Uint8Array"):s==="statusCode"?n.status=f:n[s]=f;e(n)})})}done(r){let e=r.response??r,t={};for(let[i,n]of Object.entries(e))i==="status"?t.status=`HTTP/1.1 ${n}`:i==="bodyBytes"?t.bodyBytes=Y.transferBodyBytes(n,"ArrayBuffer"):t[i]=n;$done(t)}},Si=Y;Si.clientAdapter={id:"sessionIndex",status:"statusCode"};var Ir=H.getInstance("Bilibili Helper",{debug:!1});function Ur(r){let e=Er(r.length),t=new Uint8Array(5+r.length);return t[0]=0,t.set(e,1),t.set(r,5),t}function Er(r){let e=new ArrayBuffer(4);return new DataView(e).setUint32(0,r,!1),new Uint8Array(e)}function _(r,e){let t=r.toBinary(e);Ir.done({bodyBytes:Ur(t)})}var it=class extends m{constructor(){super("ModeStatus",[{no:1,name:"modes",kind:"message",repeat:1,T:()=>tt}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.modes=[],e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posnt}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.id=0,t.name="",t.f4=0,e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posa.typeName===n);if(!f)throw new globalThis.Error("Unable to convert google.protobuf.Any with typeUrl '"+e.typeUrl+"' to JSON. The specified type "+n+" is not available in the type registry.");let o=f.fromBinary(e.value,{readUnknownField:!1}),l=f.internalJsonWrite(o,s);return(n.startsWith("google.protobuf.")||!le(l))&&(l={value:l}),l["@type"]=e.typeUrl,l}internalJsonRead(e,t,i){var n;if(!le(e))throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON "+Q(e)+".");if(typeof e["@type"]!="string"||e["@type"]=="")return this.create();let s=this.typeUrlToName(e["@type"]),f=(n=t?.typeRegistry)===null||n===void 0?void 0:n.find(l=>l.typeName==s);if(!f)throw new globalThis.Error("Unable to parse google.protobuf.Any from JSON. The specified type "+s+" is not available in the type registry.");let o;if(s.startsWith("google.protobuf.")&&e.hasOwnProperty("value"))o=f.fromJson(e.value,t);else{let l=Object.assign({},e);delete l["@type"],o=f.fromJson(l,t)}return i===void 0&&(i=this.create()),i.typeUrl=e["@type"],i.value=f.toBinary(o),i}typeNameToUrl(e){if(!e.length)throw new Error("invalid type name: "+e);return"type.googleapis.com/"+e}typeUrlToName(e){if(!e.length)throw new Error("invalid type url: "+e);let t=e.lastIndexOf("/"),i=t>0?e.substring(t+1):e;if(!i.length)throw new Error("invalid type url: "+e);return i}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.typeUrl="",t.value=new Uint8Array(0),e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posD}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posD}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posj},{no:4,name:"duration",kind:"scalar",T:3,L:0},{no:5,name:"aid",kind:"scalar",T:3,L:0}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.duration=0n,t.aid=0n,e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posj}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posct},{no:10,name:"relates",kind:"message",repeat:1,T:()=>ut},{no:23,name:"label",kind:"message",T:()=>dt},{no:30,name:"cms",kind:"message",repeat:1,T:()=>j},{no:31,name:"cm_config",kind:"message",T:()=>lt},{no:41,name:"cm_ipad",kind:"message",T:()=>ft},{no:50,name:"special_cell_new",kind:"message",repeat:1,T:()=>pt}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.relates=[],t.cms=[],t.specialCellNew=[],e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posht}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.attention=0,t.guestAttention=0,t.favorite=0,t.like=0,t.dislike=0,t.coin=0,t.attentionLevel=0,t.favSeason=0,e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posj}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posUt}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.items=[],e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.pos["DynamicType",ne]},{no:2,name:"item_type",kind:"enum",T:()=>["DynamicType",ne]},{no:5,name:"has_fold",kind:"scalar",T:5},{no:6,name:"server_info",kind:"scalar",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.cardType=0,t.itemType=0,t.hasFold=0,t.serverInfo="",e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posLt},{no:2,name:"update_num",kind:"scalar",T:3,L:0},{no:3,name:"history_offset",kind:"scalar",T:9},{no:4,name:"update_baseline",kind:"scalar",T:9},{no:5,name:"has_more",kind:"scalar",T:8}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.list=[],t.updateNum=0n,t.historyOffset="",t.updateBaseline="",t.hasMore=!1,e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.pos["LiveState",Vt]},{no:11,name:"separator",kind:"scalar",T:8}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.name="",t.uid=0n,t.pos=0n,t.liveState=0,t.separator=!1,e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posue},{no:4,name:"show_live_num",kind:"scalar",T:5},{no:10,name:"list_second",kind:"message",repeat:1,T:()=>ue}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.list=[],t.showLiveNum=0,t.listSecond=[],e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posFt},{no:2,name:"up_list",kind:"message",T:()=>Dt},{no:3,name:"topic_list",kind:"message",T:()=>At}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posMt}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.poste}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.commandDms=[],e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.pos["viewunite.v1.RelateCardType",re]}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.relateCardType=0,e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posJt}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.cards=[],e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posZt},{no:2,name:"content",kind:"scalar",T:9}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.content="",e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.pos["viewunite.v1.ModuleType",ie]},{no:5,name:"head_line",kind:"message",oneof:"data",T:()=>Xt},{no:22,name:"relates",kind:"message",oneof:"data",T:()=>qt}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.type=0,t.data={oneofKind:void 0},e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posYt}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.title="",t.modules=[],e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.pos["viewunite.v1.TabType",sn]},{no:2,name:"introduction",kind:"message",oneof:"tab",T:()=>Ht}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.tabType=0,t.tab={oneofKind:void 0},e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posQt}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.tabModule=[],e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posD},{no:2,name:"ads_control",kind:"message",T:()=>D},{no:3,name:"source_content",kind:"message",repeat:1,T:()=>D}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.sourceContent=[],e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posrn}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posnn},{no:5,name:"tab",kind:"message",T:()=>en},{no:7,name:"cm",kind:"message",T:()=>tn}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posbn}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.poskn}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posvn}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.isSupport=!1,t.disabled=!1,e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posUn}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posVe}}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.arcConf={},e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posEn},{no:4,name:"unsupport_scene",kind:"scalar",repeat:1,T:5}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.isSupport=!1,t.disabled=!1,t.unsupportScene=[],e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posDn}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.items=[],e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posVn},{no:12,name:"topic_list",kind:"message",oneof:"item",T:()=>Sn}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.item={oneofKind:void 0},e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.poszn},{no:3,name:"tf_panel_customized",kind:"message",T:()=>Gn},{no:4,name:"user_flag_new",kind:"scalar",T:8}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.tipsId=0n,t.userFlagNew=!1,e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.posSe}}])}create(e){let t=globalThis.Object.create(this.messagePrototype);return t.rightBtnImg="",t.rightBtnText="",t.rightBtnTextColor="",t.rightBtnLink="",t.mainLabel="",t.operator="",t.subPanel={},e!==void 0&&p(this,t,e),t}internalBinaryRead(e,t,i,n){let s=n??this.create(),f=e.pos+t;for(;e.pos!["topicList","rcmdOneItem"].includes(t.item.oneofKind)),_($n,e)}function Pi(r){let e=ot.fromBinary(r),t=e.modes.find(i=>i.name==="teenagers");t?.f5?.f1&&(t.f5.f1=0,_(ot,e))}function _i(r){let e=In.fromBinary(r),t=e.playArc?.backgroundPlayConf;t&&(!t.isSupport||t.disabled)&&(t.isSupport=!0,t.disabled=!1,t.extraContent=null,_(In,e))}function $i(r){let e=An.fromBinary(r);e.playArcConf?.arcConf&&(Object.values(e.playArcConf.arcConf).forEach((t,i)=>{[2,9,23,36].includes(i)&&(t.isSupport=!0,t.disabled=!1,t.extraContent=null,t.unsupportScene.length=0)}),_(An,e))}function ji(r){let e=Zn.fromBinary(r);e?.tipsId&&(delete e.tfToast,delete e.tfPanelCustomized,_(Zn,e))}function Mi(r){let e=Mn.fromBinary(r);e.show="\u641C\u7D22\u89C6\u9891\u3001\u756A\u5267\u6216up\u4E3B",delete e.word,delete e.goto,delete e.value,delete e.uri,_(Mn,e)}function zi(r){let e=Tt.fromBinary(r);delete e.cmConfig,delete e.cmIpad,delete e.label,delete e.reqUser?.elecPlusBtn,e.specialCellNew.length=0,e.cms.length=0,e.relates=e.relates.filter(t=>!t.cm),_(Tt,e)}function Gi(r){let e=It.fromBinary(r);delete e.cm,_(It,e)}function Ki(r){let e=Rt.fromBinary(r);e.items=e.items.filter(t=>!t.linktype.endsWith("_ad")),_(Rt,e)}function Ji(r,e){let t=jt.fromBinary(r);delete t.topicList,e.isIpad||(t.upList?.showLiveNum?t.upList.listSecond.length&&(t.upList.listSecond[t.upList.listSecond.length-1].separator=!0,t.upList.list.unshift(...t.upList.listSecond),t.upList.listSecond.length=0):delete t.upList),t.dynamicList.list=t.dynamicList.list.filter(i=>![ne.ad,ne.live_rcmd].includes(i.cardType)),_(jt,t)}function qi(r){let e=Kt.fromBinary(r);delete e.dm,_(Kt,e)}function Xi(r){let e=wn.fromBinary(r);delete e.cm,delete e.reqUser?.elecPlusBtn,e.tab?.tabModule.forEach(t=>{if(t.tab.oneofKind!=="introduction")return;t.tab.introduction.modules=t.tab.introduction.modules.filter(s=>s.type!==ie.SPECIALTAG);let i=t.tab.introduction.modules.find(s=>s.type===ie.RELATED_RECOMMEND);i?.data.oneofKind==="relates"&&(i.data.relates.cards=i.data.relates.cards.filter(s=>![re.GAME,re.CM_TYPE,re.LIVE].includes(s.relateCardType)));let n=t.tab.introduction.modules.find(s=>s.type===ie.UGC_HEADLINE);n?.data.oneofKind==="headLine"&&delete n.data.headLine.label}),_(wn,e)}var Or=/(?.+):\/\/(?[^/]+)\/?(?[^?]+)?\??(?.*)?/,we=class{constructor(e=""){if(this.name="URL v1.0.2",!e)throw new Error("Empty URL");this.parse(e)}parse(e){let{scheme:t,host:i,path:n="",params:s}=e.match(Or)?.groups??{};this.scheme=t,this.host=i,this.path=n,this.params=s?s.split("&").reduce((f,o)=>{let[l,a]=o.split("=");return f[l]=a,f},{}):{}}toString(){let e=this.scheme+"://"+this.host+"/"+this.path;return this.params&&(e+="?"+Object.entries(this.params).reduce((t,[i,n],s)=>t+(s?"&":"")+i+"="+n,"")),e}};var be=H.getInstance("Bilibili Helper",{debug:!1}),Rr=be.request.url,Zi=be.request.headers,Hn=be.response.bodyBytes;Hn||be.exit();var Lr=new we(Rr).path,Fr=typeof $utils=="object"&&typeof $utils?.ungzip=="function"?$utils.ungzip:mi,Ar=Hn.slice(0,5),Yn=Hn.slice(5);Ar[0]&&(Yn=Fr(Yn));var Dr=Zi["User-Agent"]||Zi["user-agent"],Vr={isIpad:Dr?.includes("bili-hd")},Yi={"v1.DM/DmView":Ci,"v1.Teenagers/ModeStatus":Pi,"v1.Reply/MainList":Gi,"v1.Search/SearchAll":Ki,"v2.Dynamic/DynAll":Ji,"viewunite.v1.View/View":Xi,"view.v1.View/ViewProgress":qi,"view.v1.View/View":zi,"view.v1.View/TFInfo":ji,"playurl.v1.PlayURL/PlayView":_i,"playerunite.v1.Player/PlayViewUnite":$i,"v1.Popular/Index":Wi,"interface.v1.Search/DefaultWords":Mi};for(let r in Yi)if(Lr.endsWith(r)){Yi[r](Yn,Vr);break}be.exit();})(); diff --git a/Surge/module/blockAds.module b/Surge/module/blockAds.module index 3e161a03..9e23ae2c 100644 --- a/Surge/module/blockAds.module +++ b/Surge/module/blockAds.module @@ -9,7 +9,7 @@ #!tg-group=https://t.me/lanjieguanggao #!tag=去广告, fmz200, 奶思 #!system=ios -#!date=2025-08-02 15:47:00 +#!date=2025-08-10 10:37:00 #!remark=下方的所有规则都标注了对应的hostname,可能存在错误或者遗漏,欢迎反馈。对于无法/可选MITM的hostname都特别做了“如开启可自行添加主机名”提示,如果提示后面没有标注主机名则包含所有主机名,否则只包含提示语后面的主机名。 [Rule] @@ -752,7 +752,7 @@ https://access.mypikpak.com/access_controller/v1/area_accessible - reject ^https?:\/\/cms\.daydaycook\.com\.cn\/api\/cms\/advertisement\/ - reject ^https?:\/\/api\.daydaycook\.com\.cn\/daydaycook\/server\/ad\/ - reject -^https?:\/\/(gae2-spclient|guc3-spclient|spclient\.wg)\.spotify\.com\/artistview\/v1\/artist\/(.*)&platform=iphone https://$1.spotify.com/artistview/v1/artist/$2&platform=ipad +^https:\/\/(?:\w+-spclient|spclient\.wg)\.spotify\.com(?::443)?\/artistview\/v1\/artist\/(.*)&platform=iphone https://$1.spotify.com/artistview/v1/artist/$2&platform=ipad header # 国际版Soul去广告 https://api-global.soulapp.me/app/open/get - reject @@ -2096,7 +2096,7 @@ https://api.rr.tv/storage/business/rootName/app/homePage\?dataType=JSON data-typ ^https?:\/\/img0[1-9]{1}\.luckincoffeecdn\.com\/group\d/M00/[A-Z0-9]{2}/[A-Z0-9]{2}/[a-zA-Z0-9]{29}\.(jpg|jpeg)_\.webp data-type=text data=" " status-code=200 # hostname = gae2-spclient.spotify.com, guc3-spclient.spotify.com, spclient.wg.spotify.com -^https?:\/\/(?:gae2-spclient|guc3-spclient|spclient\.wg)\.spotify\.com\/(?:ad-|pendragon) data-type=text data="" status-code=200 +^https:\/\/(?:\w+-spclient|spclient\.wg)\.spotify\.com(?::443)?\/pendragon\/ data-type=text data="{}" status-code=200 header="Content-Type:application/json" # 信息流,帖子详情页等各种广告 ^https?:\/\/ssp\.soulapp\.cn\/api\/q data-type=text data="{}" status-code=200 header="Content-Type:application/json" @@ -3362,7 +3362,7 @@ rrtv_json = type=http-response, pattern=https://api.rr.tv/watch/v4, script-path= # RRTV_User_Info rrtv_json = type=http-response, pattern=https://api.rr.tv/user/profile, script-path=https://raw.githubusercontent.com/fmz200/wool_scripts/main/Scripts/rrtv_json.js, requires-body=true, timeout=60 -Spotify.Crack = type=http-response, pattern=^https?:\/\/(?:gae2-spclient|guc3-spclient|spclient\.wg)\.spotify\.com\/(?:bootstrap|user-customization-service), script-path=https://raw.githubusercontent.com/001ProMax/Surge/refs/heads/main/Script/Spotify.Crack.Dev.js, requires-body=true, binary-body-mode=true +Spotify.Crack = type=http-response, pattern=^https:\/\/(?:\w+-spclient|spclient\.wg)\.spotify\.com(?::443)?\/(?:bootstrap|user-customization-service), script-path=https://raw.githubusercontent.com/001ProMax/Surge/refs/heads/main/Script/Spotify.Crack.Dev.js, requires-body=true, binary-body-mode=true, timeout=3 # 替换信息收集 req_replace_body = type=http-request, pattern=^https:\/\/data-collector\.soulapp\.cn\/api\/data\/report\/v\d, script-path=https://raw.githubusercontent.com/fmz200/wool_scripts/main/Scripts/template/req_replace_body.js, requires-body=true, timeout=60 @@ -3588,4 +3588,4 @@ YouTube响应体 = type=http-response, pattern=^https:\/\/youtubei\.googleapis\. 中国人保我的页面 = type=http-response, pattern=^https?:\/\/zgrb\.epicc\.com\.cn\/G-HAPP\/mpageconfig\/myPageConfigList\/v, script-path=https://raw.githubusercontent.com/fmz200/wool_scripts/main/Scripts/picc/picc_ads.js, requires-body=true, timeout=60 [MITM] -hostname = %APPEND% *.gamersky.com, apis.folidaymall.com, emisdatacenteraws.hafoo.com, spamblocker-api.zeekstudio.com, marketing.cmschina.com, www.tailgdd.com, x.seeyouyima.com, axxd.xmseeyouyima.com, config-service.seeyouyima.com, gw3.ykccn.com, webapi.qmai.cn, miniapp.qmai.cn, ads.ysepay.com, mobile-consumer-sapp.chery.cn, order-app-api.lbdj.com, plt.yorentown.com, lawsonapi.yorentown.com, ecloud.tppension.cntaiping.com, cache.bydauto.com.cn, app-v1.ecoliving168.com, api.51credit.com, patient-api.suh.cn, userpms-api.suh.cn, se-api.djiits.com, dudian-oss.oss-cn-shenzhen.aliyuncs.com, imagepc.ctaiot.com, a.line.me, ad.line-scdn.net, buy.line.me, cix.line-apps.com, crs-event.line.me, d.line-scdn.net, gw.line.naver.jp, legy.line-apps.com, nelo2-col.linecorp.com, obs.line-scdn.net, scdn.line-apps.com, sch.line.me, static.line-scdn.net, uts-front.line-apps.com, w.line.me, vue3-api.zhixiny.cn, mbank5.jsbchina.cn, mobileapi.xiamenair.com, appapi.caiyicloud.com, res1.hubcloud.com.cn, vapp.tmuyun.com, api2.yaduo.com, api.gongkaoleida.com, magev6.if.qidian.com, syh.zybang.com, www.zybang.com, pzoap.moedot.net, app.api.d3yuiw4.com, app-izz.zhengzhou.gov.cn, creditcard.bankcomm.com, *.byteimg.com.*, www.cntv.cn, *.townmalls.cn, chat-live.soulapp.cn, api.flydigi.com, www.ymm56.com, app.ceair.com, mcsp.cloudpnr.com, saas-ad.cloudpnr.com, g.alicdn.com, api.huachenjie.com, open.e.kuaishou.cn, ad.shunchangzhixing.com, img01.51jobcdn.com, appapi.51job*.com, cupid.51job*.com, api5.youonbike.com, mgesq.api.mgtv.com, *.hitv.com, qiye.gaoding.com, gw.chuangkit.com, zlsdk.1rtb.net, web2.realtech-inc.com, sdk.1rtb.net, gw.xiaocantech.com, delivery-api.imdada.cn, adservice.sigmob.cn, api.u51.com, gateway.36kr.com, xxyx-client-api.xiaoxiaoyouxuan.com, statistic.live.126.net, zgrb.epicc.com.cn, ecssmobile.e-chinalife.com, compus.xiaofubao.com, imgx.jampp.com, ad.life.360.cn, wanciwangdata.oss-cn-beijing.aliyuncs.com, recite.perfectlingo.com, ggc.miguvideo.com, public-deliver9.miguvideo.com, display*-sc.miguvideo.com, recommend-dy.miguvideo.com, app-sc.miguvideo.com, common-sc.miguvideo.com, ggx*.miguvideo.com, ggic*.miguvideo.com, b-api.ins.miaopai.com, social.blued.cn, api.petkit.cn, ams-cdn.cdtft.cn, e.weather.com.cn, beehiveapi.58.com, apio.zhengqi100.com, res.hongyibo.com.cn, misc-api-prd-mx.wandafilm.com, e-static.aia.com.cn, api.sogaha.cn, api-miprint.hannto.com, api.indeedpower.com, alt-r.my.com, m.pvp.xoyo.com, *.pipix.com, daijia.kuaidadi.com, as.xiaojukeji.com, preprod.cdzghome.com, api.xbxxhz.com, sfo.mddcloud.com.cn, mob.mddcloud.com.cn, toblog.ctobsnssdk.com, t-dsp.pinduoduo.com, mobads-pre-config.cdn.bcebos.com, sdk1xyajs.data.kuiniuca.com, conf-darwin.xycdn.com, *.ubixioe.com, www.xiaoxiongmeishu.com, gateway.benewtech.cn, ntt-app.benewtech.cn, api-access.pangolin-sdk-toutiao-b.com, api-access.pangolin-sdk-toutiao.com, api-access.pangolin-sdk-toutiao1.com, dsp-x.jd.com, api-cfg.wtzw.com, p1-lm.adukwai.com, bk.bingo.qq.com, maicai.api.ddxq.mobi, gw.api.ddxq.mobi, user.api.ddxq.mobi, c.zhangle.com, midc.cdn-static.abchina.com.cn, enjoy.cdn-static.abchina.com, ocrifs.ejoy.sinopec.com, apicloud.zol.com, minipro.95504.net, service.haiersmarthomes.com, gugongmini.dpm.org.cn, wechat.tf.cn, chl.tf.cn, mbasecc.bas.cmbchina.com, mbasecc.bcs.cmbchina.com, intellicc.bas.cmbchina.com, bohe.sfo-tx-shanghai-01.saas.sensorsdata.cn, api.boohee.com, lego.boohee.com, status.boohee.com, cdn.133.cn, acs.youku.com, push.m.youku.com, un-acs.youku.com, gw.alicdn.com, tiku.fenbi.com, napi.ithome.com, www.1314zhilv.com, mobile.flightradar24.com, api.17kjs.com, interface.aomiapp.com, oxadmin.cp.com.cn, home.umetrip.com, discardrp.umetrip.com, startup.umetrip.com, dictvip-business.youdao.com, dict.youdao.com, api-overmind.youdao.com, cdke.youdao.com, live.inst-service.htsc.com, gql.reddit.com, gql-fed.reddit.com, imcs.citicbank.com, mkt-gateway.tuhu.cn, tianqi.2345.com, shcss.suning.com, oneapp-api.faw-vw.com, lens.leoao.com, www.binance.info, www.yingwangtech.net, www.binance.com, api.hengdianfilm.com, ump.sz.creditcard.ecitic.com, tbgapplet.carlsberg.asia, mbmodule-openapi.paas.cmbchina.com, api.zhihu.com, appcloud2.zhihu.com, m-cloud.zhihu.com, www.zhihu.com, zhuanlan.zhihu.com, link.zhihu.com, open-cms-api.quark.cn, vv.video.qq.com, evs.500.com, dq.dxy.cn, m.you.163.com, open-cms-api.uc.cn, *.yuxueyuan.cn, pan-api.bitqiu.com, iapi.bishijie.com, run.api.qyfxgd.cn, gongdu.youshu.cc, api.21ec74.com, ztoread.ziroom.com, iphone.ac.qq.com, api.00bang.cn, app.hbooker.com, api.sfacg.com, api3.cls.cn, gateway-api.dushu365.com, external.fcbox.com, dsp.fcbox.com, bdsp-x.jd.com, app.homeinns.com, pic.edaijia.cn, cdn-evone-ceph.echargenet.com, mlol.qt.qq.com, gg.caixin.com, cn-acs.m.cainiao.com, zjdr666.com, adapi.izuiyou.com, access.mypikpak.com, open.fitdays.cn, ap.dongdianqiu.com, 103.91.210.141, js-ad.ayximgs.com, pipi.4kya.com, tft-app.cdtft.cn, t1.market.xiaomi.com, b.appsimg.com, ios.sspai.com, zconfig.alibabausercontent.com, easyreadfs.nosdn.127.net, sp.kaola.com, mapi.dangdang.com, client.qunar.com, slapi.oray.net, api.internetofcity.cn, lcen.xiaote.net, venus.yhd.com, api.shenyin.name, mage*.if.qidian.com, e.dangdang.com, adproxy.autohome.com.cn, explorer.tratao.com, overseas.weico.cc, 118.178.214.118, client.mail.163.com, api.psy-1.com, cdn.*.chelaileapp.cn, *.laichon.com, api-ad-product.huxiu.com, jad-api.jin10.com, appactive.1234567.com.cn, service.busi.inke.cn, dispatcher.camera360.com, 47.110.187.87, ssp.soulapp.cn, api-account.soulapp.cn, api-global.soulapp.me, api-a.soulapp.cn, api-pay.soulapp.cn, gateway-mobile-gray.soulapp.cn, api-chat.soulapp.cn, post.soulapp.cn, api-user.soulapp.cn, beta-api.crunchyroll.com, helper.2bulu.com, tagit.hyhuo.com, top-widgets-api.xiaozujian.com, *mangaapi.manhuaren.*, apis.lifeweek.com.cn, yanxuan.nosdn.127.net, *.peopleapp.com, new-app-api.ylyk.com, *.58cdn.com.cn, creditcardapp.bankcomm.com, lchttpapi.xczim.com, *.chelaile.net.cn, api.xiaoyi.com, api.douban.com, sso.ifanr.com, s3plus.meituan.net, cdb.meituan.com, *.hoopchina.com, goblin.hupu.com, gmp.lakala.com, wallet.lakala.com, hz.yxzq.com, api.winbull8.com, editor.sm.cn, p0.pipi.cn, 182.92.244.70, ad.myfriday.cn, ios-api.lucklyworld.com, www.onstar.com.cn, facade-api.black-unique.com, cstore-en-public-tx.seewo.com, oneapph5.dongfeng-nissan.com.cn, cds.wifi188.com, homefront.qunar.com, sh-gateway.shihuo.cn, cgbank.oss-cn-shenzhen.aliyuncs.com, imeres.baidu.com, api.taptapdada.com, a.sinopecsales.com, api.nj.nbtv.cn, v3.wufazhuce.com, ma-adx.ctrip.com, yun.tuitiger.com, www.pushplus.plus, ad.mcloud.139.com, fastbuyer.zbj.com, xhtz.oss-cn-guangzhou.aliyuncs.com, promote-trx.helipay.com, hfapp-service.qweather.net, api.ulife.group, api.sodalife.xyz, app.chinahxzq.com.cn, hdgateway.zto.com, mobile-api.imlaidian.com, wxs-weixin.sd.zhumanggroup.com, s.jiediankeji.com, smarket.dian.so, file.dian.so, aag.enmonster.com, hd.xiaojukeji.com, freight.xiaojukeji.com, capis*.didapinche.com, ad.xiaotucc.com, mapi.xiaotucc.com, adsoss.zhinengxiyifang.cn, api-marketing.zhinengxiyifang.cn, ads.zhinengxiyifang.cn, app.missevan.com, bd-api.kuwo.cn, h5app.kuwo.cn, bodianimgcdn.kuwo.cn, mgxhtj.kuwo.cn, nmobi.kuwo.cn, searchrecterm.kuwo.cn, audiobookpay.kuwo.cn, musicpay.kuwo.cn, vip1.kuwo.cn, pacdn.m.stock.pingan.com, manga.bilibili.com, bid.adview.cn, zua.zhidiantianxia.cn, app.10086.cn, mrp.mcloud.139.com, *.i18n-pglstatp.com, api.wmpvp.com, m.prod.app.hsbcfts.com.cn, p*.pstatp.com, mapi.txcmapp.com, api-one-wscn.awtmt.com, fintechappdr.cgws.com, m.qianbao.qq.com, j1.pupuapi.com, 54.222.159.138, ad.lofter.com, images.pinduoduo.com, lofter.lf127.net, client.tujia.com, www.gcores.com, app02.vgtime.com, www.vgtime.com, app.meruki.cn, qimg.cdnmama.com, ecapi.lkcoffee.com, capi.lkcoffee.com, m.lkcoffee.com, gsp.gacmotor.com, appdmkj.5idream.net, api.shanghaionstar.com, szdmobile.suzhou.gov.cn, api.bwton.com, z.onewo.com, plough.babytree.com, mapiweb.babytree.com, go.babytree.com, aimg.babytreeimg.com, *.ly.com, *.17usoft.com, *.17u.cn, mobilehotelapi.elong.com, quic-tcmapi.elong.com, blog.nilbt.com, www.banyuetanapp.com, ecard.shenzhentong.com, ccmsupport-sz.tenpay.com, dl.app.gtja.com, fuwu.nhsa.gov.cn, api?.sparke.cn, cube.elemecdn.com, nr-op.elemecdn.com, info.mina.xiaoaisound.com, marketing-aibox.v.mitvos.com, home.mi.com, tk.lanjiyin.com.cn, poplayer.template.alibaba.com, acs.m.taobao.com, amdc.m.taobao.com, guide-acs.m.taobao.com, api.alipan.com, member.alipan.com, acs-m.freshippo.com, mcs-mimp-web.sf-express.com, ucmp.sf-express.com, api.ncarzone.com, api.caiyunapp.com, wrapper.cyapi.cn, mres.aibank.com, direct.z-bank.com, mobile.1qianbao.com, middle.yun.139.com, mcmm.caiyun.feixin.10086.cn, cdn-oss.00bang.cn, mapi.sichuanair.com, b2baifanfan.baidu.com, app.badmintoncn.com, app.bilibili.com, api.bilibili.com, api.live.bilibili.com, grpc.biliapi.net, line3-h5-mobile-api.biligame.com, portal.zjzwfw.gov.cn, shopapi.io.mi.com, www.ahzs10000.com, quanguo.mygolbs.com, open.taou.com, h3.open.taou.com, sichuan.95504.net, app.10099.com.cn, sdk.alibaba.com.ailbaba.me, mrobot.pconline.com.cn, api.gameplus.qq.com, cdn.sdb.com.cn, creditcardapp.bankcomm.cn, router-app-api.jdcloud.com, api.yonghuivip.com, www.haixue.com, cdn.jlbank.com.cn, 3g.csair.com, gha.ghac.cn, webappcfg.paas.cmbchina.com, *.qyfxgd.cn, *.weilai555.com, *.ecoliving168.com, vip7.fzwdyy.cn, wcprd.hilton.com.cn, adx-cn.anythinktech.com, www.didapinche.com, client-api-v2.oray.com, sdk.alibaba.com, bgw.xinyue.qq.com, api.tipsoon.com, imeclient.openspeech.cn, m.360buyimg.com, business-cdn.shouji.sogou.com, ios.sogou.com, android.sogou.com, h5api.sginput.qq.com, m*.amap.com, optimus-ads.amap.com, pv.elife.icbc.com.cn, mangaapi.manhuaren.com, news.ssp.qq.com, ccsp-egmas.sf-express.com, zhidao.baidu.com, api.vistopia.com.cn, bp-api.bestv.com.cn, xyst.yuanfudao.com, mapi.appvipshop.com, guanyu.longfor.com, mp.weixin.qq.com, *.kingsoft-office-service.com, ptmpcap.caocaokeji.cn, pcauto.com.cn, mps.95508.com, i-lq.snssdk.com.*, img0*.luckincoffeecdn.com, app.zhoudamozi.com, apple.fuliapps.com, gurd.snssdk.com.*, peisongapi.meituan.com, cdn.cmgadx.com, api.gamer.com.tw, impservice.dictapp.youdao.com, api.gaoqingdianshi.com, cdn.dianshihome.com, *.kakamobi.cn, 47.100.65.202, youtubei.googleapis.com, app.wy.guahao.com, mapi.sfbest.com, *.xiangxiangapps.com, cmsfile.wifi8.com, prom.mobile.gome.com.cn, nnapp.cloudbae.cn, api.21jingji.com, a.qiumibao.com, jdread-api.jd.com, open.qyer.com, app-api.niu.com, us.l.qq.com, qde.qunar.com, res.pizzahut.com.cn, book.img.ireader.com, aes.acfun.cn, api-new.app.acfun.cn, images.cib.com.cn, jiucaigongshe.oss-cn-beijing.aliyuncs.com, mage.if.qidian.com, app.aa-ab.com, zone.guiderank-app.com, richmanrules.ksedt.com, richmanapi.jxedt.com, geetest.htsc.com, 119.29.29.*, api.m.mi.com, awg.enmonster.com, api.haohaozhu.cn, du.hupucdn.com, apps.api.ke.com, api.ycapp.yiche.com, omgup*.xiaojukeji.com, issuecdn.baidupcs.com, gab.122.gov.cn, www.oschina.net, m.ibuscloud.com, app.api.versa-ai.com, app-conf.ds.163.com, image*.benlailife.com, djcapp.game.qq.com, static.xyzq.cn, iobs.pingan.com.cn, app3.qdaily.com, api.mcd.cn, api.mgzf.com, open.e.kuaishou.com, osg-static.sgcc.com.cn, osg-service.sgcc.com.cn, app.dewu.com, cdn.poizon.com, supportda.ofo.com, r6.mo.baidu.com, res.mi.baidu.com, mbd.baidu.com, capi.mwee.cn, m.client.10010.com, m1.ad.10010.com, res.mall.10010.cn, app.yinxiang.com, img.meituan.net, baidu.com, *-release.wuta-cam.com, cdnmobibank.bankofbeijing.com.cn, mapi.mafengwo.cn, mada-travel.17u.cn, ebk.17u.cn, api.izuiyou.com, appconf.mail.163.com, api.dangdang.com, cmsapi.wifi8.com, daoyu.sdo.com, gw.aihuishou.com, bp-image.bestv.com.cn, portal-portm.meituan.com, mall.meituan.com, api.xiaoyuzhoufm.com, cdn-xyk-app.bankofbeijing.com.cn, thor.weidian.com, open3.vistastory.com, i.ys7.com, so.xiaohongshu.com, www.xiaohongshu.com, edith.xiaohongshu.com, ci.xiaohongshu.com, rec.xiaohongshu.com, api.caijingmobile.com, j5.dfcfw.com, capi.douyucdn.cn, icc.one, api.coolapk.com, ios.xiangjiaoapps.com, img.wukongtv.com, service.4gtv.tv, static.api.m.panda.tv, api-mifit*.huami.com, channel.beitaichufang.com, static.95508.com, wap.bank.ecitic.com, file.cibfintech.com, api*.futunn.com, mob.mddcloud.com, i.snssdk.com.*, images.client.vip.xunlei.com, api-shoulei-ssl.xunlei.com, elemecdn.com, l*.51fanli.net, app.zhuanzhuan.com, *.bdstatic.com, rs.creditcard.cmbc.com.cn, ocean.shuqireader.com, api.fengshows.com, api.touker.com, app.variflight.com, sofire.baidu.com, www.cmbc.com.cn, img01.10101111cdn.com, r.inews.qq.com, gslbali.ximalaya.com, search.ximalaya.com, searchwsa.ximalaya.com, mobile.ximalaya.com, mobilehera.ximalaya.com, mobwsa.ximalaya.com, m.ximalaya.com, mwsa.ximalaya.com, afd.baidu.com, appwk.baidu.com, ios.lantouzi.com, mpcs.suning.com, m.tuniu.com, api.jxedt.com, dns.jd.com, api.m.jd.com, m.jd.com, *.k.sohu.com, www.nfmovies.com, static01.versa-ai.com, gfp.veta.naver.com, mpos-pic.helipay.com, api.yikaobang.com.cn, god.gameyw.netease.com, image.spdbccc.com.cn, fbchina.flipchina.cn, media.qyer.com, webcast-open.douyin.com, beta-luna.douyin.com, ether-pack.pangolin-sdk-toutiao.com, api-access.pangolin-sdk-toutiao?.com, sf*-fe-tos.pglstatp-toutiao.com, restapi.iyunmai.com, static.shihuocdn.cn, weixin110.qq.com, appapi.huazhu.com, hweb-hotel.huazhu.com, hweb-manager.huazhu.com, lban.spdb.com.cn, wap.spdb.com, smart.789.image.mucang.cn, btrace.qq.com, img.dailmo.com, app.95598pay.com, reading-hl.snssdk.com, adproxy.autohome.com, ma.ofo.com, dl*.app.gtja.com, activity2.api.ofo.com, luckman.suning.com, app.xinpianchang.com, static.gameplus.qq.com, portal-xunyou.qingcdn.com, notch.qdaily.com, pan.baidu.com, tiebac.baidu.com, *.tieba.baidu.com, snailsleep.net, api.laifeng.com, fuss10.elemecdn.com, smkmp.96225.com, static.creditcard.hxb.com.cn, sf3-be-pack.pglstatp-toutiao.com, ossgw.alicdn.com, *.mgtv.com, oral.youdao.com, p.kuaidi100.com, video-dsp.pddpic.com, mlife.jf365.boc.cn, heic.alicdn.com, acs.m.goofish.com, g-acs.m.goofish.com, dinamicx.alibabausercontent.com, www.tsytv.com, app2.autoimg.cn, www.iyingdi.cn, m.baidu.com, webboot.zhangyue.com, api4.bybutter.com, security.wechat.com, api.xiachufang.com, 4gimg.map.qq.com, p.du.163.com, support.you.163.com, apiwz.midukanshu.com, tc.qq.com, img.admobile.top, api.pinduoduo.com, cheyouapi.ycapp.yiche.com, api.kkmh.com, ad.ysepay.com, ports3.gtimg.com, i*.hdslb.com, m.yap.yahoo.com, webcdn.m.qq.com, rtbapi.douyucdn.cn, dapis.mting.info, qidian.qpic.cn, games.mobileapi.hupu.com, emdcadvertise.eastmoney.com, mime.baidu.com, api.club.lenovo.cn, img.allahall.com, staticsns.cdn.bcebos.com, api.wfdata.club, dsa-mfp.fengshows.cn, flowplus.meituan.net, ssp.dzh.com.cn, adm.10jqka.com.cn, stat.10jqka.com.cn, api.xueqiu.com, open.xueqiu.com, stock.xueqiu.com, 39.103.79.14, 39.106.97.84, 47.95.49.75, 101.201.62.20, 101.201.62.26, 101.201.175.228, 124.250.48.3, 182.92.145.50, 182.92.251.113, ios.fuliapps.com, pt-starimg.didistatic.com, *.pipiapps.com, adstatic.peopleapp.com, otheve.beacon.qq.com, ptf.flyertrip.com, api.qbb6.com, res.xiaojukeji.com, conf.diditaxi.com.cn, yunbusiness.ccb.com, img.alicdn.com, capis.didapinche.com, ms.jr.jd.com, m.creditcard.ecitic.com, img.gdoil.cn, api.hanju.koudaibaobao.com, api.jr.mi.com, imagev2.tx.xmcdn.com, upload-bbs.mihoyo.com, gw-passenger.01zhuanche.com, img.yun.01zhuanche, ndstatic.cdn.bcebos.com, fc-video.cdn.bcebos.com, rp.hpplay.cn, dyncdn.me, pss.txffp.com, dxy.com, staticlive.douyucdn.cn, edit.sinaapp.com, www1.elecfans.com, *.googlevideo.com, pocketuni.net, j-image.missfresh.cn, cms.daydaycook.com, api.cloud.189.cn, mobile.cebbank.com, yghsh.cebbank.com, y.gtimg.cn, music.y.qq.com, dss0.bdstatic.com, tb1.bdstatic.com, tb2.bdstatic.com, ss0.bdstatic.com, gss0.bdstatic.com, newclient.map.baidu.com, ossweb-img.qq.com, mea.meitudata.com, adui.tg.meitu.com, list-app-m.i4.cn, api.daydaycook.com, learn.chaoxing.com, ipv4.music.163.com, interface9.music.163.com, interface.music.163.com, interface3.music.163.com, res.kfc.com.cn, gw.kaola.com, api.huomao.com, mi.gdt.qq.com, fmapp.chinafamilymart.com.cn, app-gw.csdn.net, gw.csdn.net, app.58.com, cap.caocaokeji.cn, live-ads.huya.com, cdn.wup.huya.com, cdnfile1.msstatic.com, business.msstatic.com, ct.xiaojukeji.com, homepage-api.smzdm.com, haojia-api.smzdm.com, app-api.smzdm.com, user-api.smzdm.com, article-api.smzdm.com, qianbao.smzdm.com, s-api.smzdm.com, haojia.m.smzdm.com, adpai.thepaper.cn, www.baidu.com, *.tv.sohu.com, ih2.ireader.com, common.diditaxi.com.cn, display.wting.info, kano.guahao.cn, i-lq.snssdk.com, cloud.189.cn, ad.12306.cn, dl-cu-hz.lechange.cn, gae2-spclient.spotify.com, guc3-spclient.spotify.com, spclient.wg.spotify.com, dsp-impr2.youdao.com, api.rr.tv, *.pglstatp-toutiao.com, mobile.yangkeduo.com, api.yangkeduo.com, xyz.cnki.net, api.bjxkhc.com, d.psbc.com, fm.fenqile.com, client.app.coc.10086.cn, img.ddrk.me, ddrk.me, img.jiemian.com, message.shuqireader.com, ut2.shuqistat.com, dsp.toutiao.com, sq.sljkj.com, img-tailor.11222.cn, feedback.uc.cn, *.shuqireader.com, 101.91.69.26, gateway.shouqiev.com, api.gotokeep.com, kad.gotokeep.com, static1.keepcdn.com, mbank.grcbank.com, -i.vip.iqiyi.com, *.iqiyi.com, api-sams.walmartmobile.cn, api.htp.ad-scope.com.cn, appgw.ddpai.com, init.sms.mob.com, www.flyert.com, hcz-member.pingan.com.cn, jp.rsscc.com, jt.rsscc.com, api-ac.liepin.com, api-wanda.liepin.com, intellicc.bcs.cmbchina.com, api-cslp-emt.amazon.cn, m.airchina.com.cn, apphw.ddpai.com, waimai-guide.ele.me, 39.98.135.211 +hostname = %APPEND% *.gamersky.com, apis.folidaymall.com, emisdatacenteraws.hafoo.com, spamblocker-api.zeekstudio.com, marketing.cmschina.com, www.tailgdd.com, x.seeyouyima.com, axxd.xmseeyouyima.com, config-service.seeyouyima.com, gw3.ykccn.com, webapi.qmai.cn, miniapp.qmai.cn, ads.ysepay.com, mobile-consumer-sapp.chery.cn, order-app-api.lbdj.com, plt.yorentown.com, lawsonapi.yorentown.com, ecloud.tppension.cntaiping.com, cache.bydauto.com.cn, app-v1.ecoliving168.com, api.51credit.com, patient-api.suh.cn, userpms-api.suh.cn, se-api.djiits.com, dudian-oss.oss-cn-shenzhen.aliyuncs.com, imagepc.ctaiot.com, a.line.me, ad.line-scdn.net, buy.line.me, cix.line-apps.com, crs-event.line.me, d.line-scdn.net, gw.line.naver.jp, legy.line-apps.com, nelo2-col.linecorp.com, obs.line-scdn.net, scdn.line-apps.com, sch.line.me, static.line-scdn.net, uts-front.line-apps.com, w.line.me, vue3-api.zhixiny.cn, mbank5.jsbchina.cn, mobileapi.xiamenair.com, appapi.caiyicloud.com, res1.hubcloud.com.cn, vapp.tmuyun.com, api2.yaduo.com, api.gongkaoleida.com, magev6.if.qidian.com, syh.zybang.com, www.zybang.com, pzoap.moedot.net, app.api.d3yuiw4.com, app-izz.zhengzhou.gov.cn, creditcard.bankcomm.com, *.byteimg.com.*, www.cntv.cn, *.townmalls.cn, chat-live.soulapp.cn, api.flydigi.com, www.ymm56.com, app.ceair.com, mcsp.cloudpnr.com, saas-ad.cloudpnr.com, g.alicdn.com, api.huachenjie.com, open.e.kuaishou.cn, ad.shunchangzhixing.com, img01.51jobcdn.com, appapi.51job*.com, cupid.51job*.com, api5.youonbike.com, mgesq.api.mgtv.com, *.hitv.com, qiye.gaoding.com, gw.chuangkit.com, zlsdk.1rtb.net, web2.realtech-inc.com, sdk.1rtb.net, gw.xiaocantech.com, delivery-api.imdada.cn, adservice.sigmob.cn, api.u51.com, gateway.36kr.com, xxyx-client-api.xiaoxiaoyouxuan.com, statistic.live.126.net, zgrb.epicc.com.cn, ecssmobile.e-chinalife.com, compus.xiaofubao.com, imgx.jampp.com, ad.life.360.cn, wanciwangdata.oss-cn-beijing.aliyuncs.com, recite.perfectlingo.com, ggc.miguvideo.com, public-deliver9.miguvideo.com, display*-sc.miguvideo.com, recommend-dy.miguvideo.com, app-sc.miguvideo.com, common-sc.miguvideo.com, ggx*.miguvideo.com, ggic*.miguvideo.com, b-api.ins.miaopai.com, social.blued.cn, api.petkit.cn, ams-cdn.cdtft.cn, e.weather.com.cn, beehiveapi.58.com, apio.zhengqi100.com, res.hongyibo.com.cn, misc-api-prd-mx.wandafilm.com, e-static.aia.com.cn, api.sogaha.cn, api-miprint.hannto.com, api.indeedpower.com, alt-r.my.com, m.pvp.xoyo.com, *.pipix.com, daijia.kuaidadi.com, as.xiaojukeji.com, preprod.cdzghome.com, api.xbxxhz.com, sfo.mddcloud.com.cn, mob.mddcloud.com.cn, toblog.ctobsnssdk.com, t-dsp.pinduoduo.com, mobads-pre-config.cdn.bcebos.com, sdk1xyajs.data.kuiniuca.com, conf-darwin.xycdn.com, *.ubixioe.com, www.xiaoxiongmeishu.com, gateway.benewtech.cn, ntt-app.benewtech.cn, api-access.pangolin-sdk-toutiao-b.com, api-access.pangolin-sdk-toutiao.com, api-access.pangolin-sdk-toutiao1.com, dsp-x.jd.com, api-cfg.wtzw.com, p1-lm.adukwai.com, bk.bingo.qq.com, maicai.api.ddxq.mobi, gw.api.ddxq.mobi, user.api.ddxq.mobi, c.zhangle.com, midc.cdn-static.abchina.com.cn, enjoy.cdn-static.abchina.com, ocrifs.ejoy.sinopec.com, apicloud.zol.com, minipro.95504.net, service.haiersmarthomes.com, gugongmini.dpm.org.cn, wechat.tf.cn, chl.tf.cn, mbasecc.bas.cmbchina.com, mbasecc.bcs.cmbchina.com, intellicc.bas.cmbchina.com, bohe.sfo-tx-shanghai-01.saas.sensorsdata.cn, api.boohee.com, lego.boohee.com, status.boohee.com, cdn.133.cn, acs.youku.com, push.m.youku.com, un-acs.youku.com, gw.alicdn.com, tiku.fenbi.com, napi.ithome.com, www.1314zhilv.com, mobile.flightradar24.com, api.17kjs.com, interface.aomiapp.com, oxadmin.cp.com.cn, home.umetrip.com, discardrp.umetrip.com, startup.umetrip.com, dictvip-business.youdao.com, dict.youdao.com, api-overmind.youdao.com, cdke.youdao.com, live.inst-service.htsc.com, gql.reddit.com, gql-fed.reddit.com, imcs.citicbank.com, mkt-gateway.tuhu.cn, tianqi.2345.com, shcss.suning.com, oneapp-api.faw-vw.com, lens.leoao.com, www.binance.info, www.yingwangtech.net, www.binance.com, api.hengdianfilm.com, ump.sz.creditcard.ecitic.com, tbgapplet.carlsberg.asia, mbmodule-openapi.paas.cmbchina.com, api.zhihu.com, appcloud2.zhihu.com, m-cloud.zhihu.com, www.zhihu.com, zhuanlan.zhihu.com, link.zhihu.com, open-cms-api.quark.cn, vv.video.qq.com, evs.500.com, dq.dxy.cn, m.you.163.com, open-cms-api.uc.cn, *.yuxueyuan.cn, pan-api.bitqiu.com, iapi.bishijie.com, run.api.qyfxgd.cn, gongdu.youshu.cc, api.21ec74.com, ztoread.ziroom.com, iphone.ac.qq.com, api.00bang.cn, app.hbooker.com, api.sfacg.com, api3.cls.cn, gateway-api.dushu365.com, external.fcbox.com, dsp.fcbox.com, bdsp-x.jd.com, app.homeinns.com, pic.edaijia.cn, cdn-evone-ceph.echargenet.com, mlol.qt.qq.com, gg.caixin.com, cn-acs.m.cainiao.com, zjdr666.com, adapi.izuiyou.com, access.mypikpak.com, open.fitdays.cn, ap.dongdianqiu.com, 103.91.210.141, js-ad.ayximgs.com, pipi.4kya.com, tft-app.cdtft.cn, t1.market.xiaomi.com, b.appsimg.com, ios.sspai.com, zconfig.alibabausercontent.com, easyreadfs.nosdn.127.net, sp.kaola.com, mapi.dangdang.com, client.qunar.com, slapi.oray.net, api.internetofcity.cn, lcen.xiaote.net, venus.yhd.com, api.shenyin.name, mage*.if.qidian.com, e.dangdang.com, adproxy.autohome.com.cn, explorer.tratao.com, overseas.weico.cc, 118.178.214.118, client.mail.163.com, api.psy-1.com, cdn.*.chelaileapp.cn, *.laichon.com, api-ad-product.huxiu.com, jad-api.jin10.com, appactive.1234567.com.cn, service.busi.inke.cn, dispatcher.camera360.com, 47.110.187.87, ssp.soulapp.cn, api-account.soulapp.cn, api-global.soulapp.me, api-a.soulapp.cn, api-pay.soulapp.cn, gateway-mobile-gray.soulapp.cn, api-chat.soulapp.cn, post.soulapp.cn, api-user.soulapp.cn, beta-api.crunchyroll.com, helper.2bulu.com, tagit.hyhuo.com, top-widgets-api.xiaozujian.com, *mangaapi.manhuaren.*, apis.lifeweek.com.cn, yanxuan.nosdn.127.net, *.peopleapp.com, new-app-api.ylyk.com, *.58cdn.com.cn, creditcardapp.bankcomm.com, lchttpapi.xczim.com, *.chelaile.net.cn, api.xiaoyi.com, api.douban.com, sso.ifanr.com, s3plus.meituan.net, cdb.meituan.com, *.hoopchina.com, goblin.hupu.com, gmp.lakala.com, wallet.lakala.com, hz.yxzq.com, api.winbull8.com, editor.sm.cn, p0.pipi.cn, 182.92.244.70, ad.myfriday.cn, ios-api.lucklyworld.com, www.onstar.com.cn, facade-api.black-unique.com, cstore-en-public-tx.seewo.com, oneapph5.dongfeng-nissan.com.cn, cds.wifi188.com, homefront.qunar.com, sh-gateway.shihuo.cn, cgbank.oss-cn-shenzhen.aliyuncs.com, imeres.baidu.com, api.taptapdada.com, a.sinopecsales.com, api.nj.nbtv.cn, v3.wufazhuce.com, ma-adx.ctrip.com, yun.tuitiger.com, www.pushplus.plus, ad.mcloud.139.com, fastbuyer.zbj.com, xhtz.oss-cn-guangzhou.aliyuncs.com, promote-trx.helipay.com, hfapp-service.qweather.net, api.ulife.group, api.sodalife.xyz, app.chinahxzq.com.cn, hdgateway.zto.com, mobile-api.imlaidian.com, wxs-weixin.sd.zhumanggroup.com, s.jiediankeji.com, smarket.dian.so, file.dian.so, aag.enmonster.com, hd.xiaojukeji.com, freight.xiaojukeji.com, capis*.didapinche.com, ad.xiaotucc.com, mapi.xiaotucc.com, adsoss.zhinengxiyifang.cn, api-marketing.zhinengxiyifang.cn, ads.zhinengxiyifang.cn, app.missevan.com, bd-api.kuwo.cn, h5app.kuwo.cn, bodianimgcdn.kuwo.cn, mgxhtj.kuwo.cn, nmobi.kuwo.cn, searchrecterm.kuwo.cn, audiobookpay.kuwo.cn, musicpay.kuwo.cn, vip1.kuwo.cn, pacdn.m.stock.pingan.com, manga.bilibili.com, bid.adview.cn, zua.zhidiantianxia.cn, app.10086.cn, mrp.mcloud.139.com, *.i18n-pglstatp.com, api.wmpvp.com, m.prod.app.hsbcfts.com.cn, p*.pstatp.com, mapi.txcmapp.com, api-one-wscn.awtmt.com, fintechappdr.cgws.com, m.qianbao.qq.com, j1.pupuapi.com, 54.222.159.138, ad.lofter.com, images.pinduoduo.com, lofter.lf127.net, client.tujia.com, www.gcores.com, app02.vgtime.com, www.vgtime.com, app.meruki.cn, qimg.cdnmama.com, ecapi.lkcoffee.com, capi.lkcoffee.com, m.lkcoffee.com, gsp.gacmotor.com, appdmkj.5idream.net, api.shanghaionstar.com, szdmobile.suzhou.gov.cn, api.bwton.com, z.onewo.com, plough.babytree.com, mapiweb.babytree.com, go.babytree.com, aimg.babytreeimg.com, *.ly.com, *.17usoft.com, *.17u.cn, mobilehotelapi.elong.com, quic-tcmapi.elong.com, blog.nilbt.com, www.banyuetanapp.com, ecard.shenzhentong.com, ccmsupport-sz.tenpay.com, dl.app.gtja.com, fuwu.nhsa.gov.cn, api?.sparke.cn, cube.elemecdn.com, nr-op.elemecdn.com, info.mina.xiaoaisound.com, marketing-aibox.v.mitvos.com, home.mi.com, tk.lanjiyin.com.cn, poplayer.template.alibaba.com, acs.m.taobao.com, amdc.m.taobao.com, guide-acs.m.taobao.com, api.alipan.com, member.alipan.com, acs-m.freshippo.com, mcs-mimp-web.sf-express.com, ucmp.sf-express.com, api.ncarzone.com, api.caiyunapp.com, wrapper.cyapi.cn, mres.aibank.com, direct.z-bank.com, mobile.1qianbao.com, middle.yun.139.com, mcmm.caiyun.feixin.10086.cn, cdn-oss.00bang.cn, mapi.sichuanair.com, b2baifanfan.baidu.com, app.badmintoncn.com, app.bilibili.com, api.bilibili.com, api.live.bilibili.com, grpc.biliapi.net, line3-h5-mobile-api.biligame.com, portal.zjzwfw.gov.cn, shopapi.io.mi.com, www.ahzs10000.com, quanguo.mygolbs.com, open.taou.com, h3.open.taou.com, sichuan.95504.net, app.10099.com.cn, sdk.alibaba.com.ailbaba.me, mrobot.pconline.com.cn, api.gameplus.qq.com, cdn.sdb.com.cn, creditcardapp.bankcomm.cn, router-app-api.jdcloud.com, api.yonghuivip.com, www.haixue.com, cdn.jlbank.com.cn, 3g.csair.com, gha.ghac.cn, webappcfg.paas.cmbchina.com, *.qyfxgd.cn, *.weilai555.com, *.ecoliving168.com, vip7.fzwdyy.cn, wcprd.hilton.com.cn, adx-cn.anythinktech.com, www.didapinche.com, client-api-v2.oray.com, sdk.alibaba.com, bgw.xinyue.qq.com, api.tipsoon.com, imeclient.openspeech.cn, m.360buyimg.com, business-cdn.shouji.sogou.com, ios.sogou.com, android.sogou.com, h5api.sginput.qq.com, m*.amap.com, optimus-ads.amap.com, pv.elife.icbc.com.cn, mangaapi.manhuaren.com, news.ssp.qq.com, ccsp-egmas.sf-express.com, zhidao.baidu.com, api.vistopia.com.cn, bp-api.bestv.com.cn, xyst.yuanfudao.com, mapi.appvipshop.com, guanyu.longfor.com, mp.weixin.qq.com, *.kingsoft-office-service.com, ptmpcap.caocaokeji.cn, pcauto.com.cn, mps.95508.com, i-lq.snssdk.com.*, img0*.luckincoffeecdn.com, app.zhoudamozi.com, apple.fuliapps.com, gurd.snssdk.com.*, peisongapi.meituan.com, cdn.cmgadx.com, api.gamer.com.tw, impservice.dictapp.youdao.com, api.gaoqingdianshi.com, cdn.dianshihome.com, *.kakamobi.cn, 47.100.65.202, youtubei.googleapis.com, app.wy.guahao.com, mapi.sfbest.com, *.xiangxiangapps.com, cmsfile.wifi8.com, prom.mobile.gome.com.cn, nnapp.cloudbae.cn, api.21jingji.com, a.qiumibao.com, jdread-api.jd.com, open.qyer.com, app-api.niu.com, us.l.qq.com, qde.qunar.com, res.pizzahut.com.cn, book.img.ireader.com, aes.acfun.cn, api-new.app.acfun.cn, images.cib.com.cn, jiucaigongshe.oss-cn-beijing.aliyuncs.com, mage.if.qidian.com, app.aa-ab.com, zone.guiderank-app.com, richmanrules.ksedt.com, richmanapi.jxedt.com, geetest.htsc.com, 119.29.29.*, api.m.mi.com, awg.enmonster.com, api.haohaozhu.cn, du.hupucdn.com, apps.api.ke.com, api.ycapp.yiche.com, omgup*.xiaojukeji.com, issuecdn.baidupcs.com, gab.122.gov.cn, www.oschina.net, m.ibuscloud.com, app.api.versa-ai.com, app-conf.ds.163.com, image*.benlailife.com, djcapp.game.qq.com, static.xyzq.cn, iobs.pingan.com.cn, app3.qdaily.com, api.mcd.cn, api.mgzf.com, open.e.kuaishou.com, osg-static.sgcc.com.cn, osg-service.sgcc.com.cn, app.dewu.com, cdn.poizon.com, supportda.ofo.com, r6.mo.baidu.com, res.mi.baidu.com, mbd.baidu.com, capi.mwee.cn, m.client.10010.com, m1.ad.10010.com, res.mall.10010.cn, app.yinxiang.com, img.meituan.net, baidu.com, *-release.wuta-cam.com, cdnmobibank.bankofbeijing.com.cn, mapi.mafengwo.cn, mada-travel.17u.cn, ebk.17u.cn, api.izuiyou.com, appconf.mail.163.com, api.dangdang.com, cmsapi.wifi8.com, daoyu.sdo.com, gw.aihuishou.com, bp-image.bestv.com.cn, portal-portm.meituan.com, mall.meituan.com, api.xiaoyuzhoufm.com, cdn-xyk-app.bankofbeijing.com.cn, thor.weidian.com, open3.vistastory.com, i.ys7.com, so.xiaohongshu.com, www.xiaohongshu.com, edith.xiaohongshu.com, ci.xiaohongshu.com, rec.xiaohongshu.com, api.caijingmobile.com, j5.dfcfw.com, capi.douyucdn.cn, icc.one, api.coolapk.com, ios.xiangjiaoapps.com, img.wukongtv.com, service.4gtv.tv, static.api.m.panda.tv, api-mifit*.huami.com, channel.beitaichufang.com, static.95508.com, wap.bank.ecitic.com, file.cibfintech.com, api*.futunn.com, mob.mddcloud.com, i.snssdk.com.*, images.client.vip.xunlei.com, api-shoulei-ssl.xunlei.com, elemecdn.com, l*.51fanli.net, app.zhuanzhuan.com, *.bdstatic.com, rs.creditcard.cmbc.com.cn, ocean.shuqireader.com, api.fengshows.com, api.touker.com, app.variflight.com, sofire.baidu.com, www.cmbc.com.cn, img01.10101111cdn.com, r.inews.qq.com, gslbali.ximalaya.com, search.ximalaya.com, searchwsa.ximalaya.com, mobile.ximalaya.com, mobilehera.ximalaya.com, mobwsa.ximalaya.com, m.ximalaya.com, mwsa.ximalaya.com, afd.baidu.com, appwk.baidu.com, ios.lantouzi.com, mpcs.suning.com, m.tuniu.com, api.jxedt.com, dns.jd.com, api.m.jd.com, m.jd.com, *.k.sohu.com, www.nfmovies.com, static01.versa-ai.com, gfp.veta.naver.com, mpos-pic.helipay.com, api.yikaobang.com.cn, god.gameyw.netease.com, image.spdbccc.com.cn, fbchina.flipchina.cn, media.qyer.com, webcast-open.douyin.com, beta-luna.douyin.com, ether-pack.pangolin-sdk-toutiao.com, api-access.pangolin-sdk-toutiao?.com, sf*-fe-tos.pglstatp-toutiao.com, restapi.iyunmai.com, static.shihuocdn.cn, weixin110.qq.com, appapi.huazhu.com, hweb-hotel.huazhu.com, hweb-manager.huazhu.com, lban.spdb.com.cn, wap.spdb.com, smart.789.image.mucang.cn, btrace.qq.com, img.dailmo.com, app.95598pay.com, reading-hl.snssdk.com, adproxy.autohome.com, ma.ofo.com, dl*.app.gtja.com, activity2.api.ofo.com, luckman.suning.com, app.xinpianchang.com, static.gameplus.qq.com, portal-xunyou.qingcdn.com, notch.qdaily.com, pan.baidu.com, tiebac.baidu.com, *.tieba.baidu.com, snailsleep.net, api.laifeng.com, fuss10.elemecdn.com, smkmp.96225.com, static.creditcard.hxb.com.cn, sf3-be-pack.pglstatp-toutiao.com, ossgw.alicdn.com, *.mgtv.com, oral.youdao.com, p.kuaidi100.com, video-dsp.pddpic.com, mlife.jf365.boc.cn, heic.alicdn.com, acs.m.goofish.com, g-acs.m.goofish.com, dinamicx.alibabausercontent.com, www.tsytv.com, app2.autoimg.cn, www.iyingdi.cn, m.baidu.com, webboot.zhangyue.com, api4.bybutter.com, security.wechat.com, api.xiachufang.com, 4gimg.map.qq.com, p.du.163.com, support.you.163.com, apiwz.midukanshu.com, tc.qq.com, img.admobile.top, api.pinduoduo.com, cheyouapi.ycapp.yiche.com, api.kkmh.com, ad.ysepay.com, ports3.gtimg.com, i*.hdslb.com, m.yap.yahoo.com, webcdn.m.qq.com, rtbapi.douyucdn.cn, dapis.mting.info, qidian.qpic.cn, games.mobileapi.hupu.com, emdcadvertise.eastmoney.com, mime.baidu.com, api.club.lenovo.cn, img.allahall.com, staticsns.cdn.bcebos.com, api.wfdata.club, dsa-mfp.fengshows.cn, flowplus.meituan.net, ssp.dzh.com.cn, adm.10jqka.com.cn, stat.10jqka.com.cn, api.xueqiu.com, open.xueqiu.com, stock.xueqiu.com, 39.103.79.14, 39.106.97.84, 47.95.49.75, 101.201.62.20, 101.201.62.26, 101.201.175.228, 124.250.48.3, 182.92.145.50, 182.92.251.113, ios.fuliapps.com, pt-starimg.didistatic.com, *.pipiapps.com, adstatic.peopleapp.com, otheve.beacon.qq.com, ptf.flyertrip.com, api.qbb6.com, res.xiaojukeji.com, conf.diditaxi.com.cn, yunbusiness.ccb.com, img.alicdn.com, capis.didapinche.com, ms.jr.jd.com, m.creditcard.ecitic.com, img.gdoil.cn, api.hanju.koudaibaobao.com, api.jr.mi.com, imagev2.tx.xmcdn.com, upload-bbs.mihoyo.com, gw-passenger.01zhuanche.com, img.yun.01zhuanche, ndstatic.cdn.bcebos.com, fc-video.cdn.bcebos.com, rp.hpplay.cn, dyncdn.me, pss.txffp.com, dxy.com, staticlive.douyucdn.cn, edit.sinaapp.com, www1.elecfans.com, *.googlevideo.com, pocketuni.net, j-image.missfresh.cn, cms.daydaycook.com, api.cloud.189.cn, mobile.cebbank.com, yghsh.cebbank.com, y.gtimg.cn, music.y.qq.com, dss0.bdstatic.com, tb1.bdstatic.com, tb2.bdstatic.com, ss0.bdstatic.com, gss0.bdstatic.com, newclient.map.baidu.com, ossweb-img.qq.com, mea.meitudata.com, adui.tg.meitu.com, list-app-m.i4.cn, api.daydaycook.com, learn.chaoxing.com, ipv4.music.163.com, interface9.music.163.com, interface.music.163.com, interface3.music.163.com, res.kfc.com.cn, gw.kaola.com, api.huomao.com, mi.gdt.qq.com, fmapp.chinafamilymart.com.cn, app-gw.csdn.net, gw.csdn.net, app.58.com, cap.caocaokeji.cn, live-ads.huya.com, cdn.wup.huya.com, cdnfile1.msstatic.com, business.msstatic.com, ct.xiaojukeji.com, homepage-api.smzdm.com, haojia-api.smzdm.com, app-api.smzdm.com, user-api.smzdm.com, article-api.smzdm.com, qianbao.smzdm.com, s-api.smzdm.com, haojia.m.smzdm.com, adpai.thepaper.cn, www.baidu.com, *.tv.sohu.com, ih2.ireader.com, common.diditaxi.com.cn, display.wting.info, kano.guahao.cn, i-lq.snssdk.com, cloud.189.cn, ad.12306.cn, dl-cu-hz.lechange.cn, *-spclient.spotify.com, spclient.wg.spotify.com, dsp-impr2.youdao.com, api.rr.tv, *.pglstatp-toutiao.com, mobile.yangkeduo.com, api.yangkeduo.com, xyz.cnki.net, api.bjxkhc.com, d.psbc.com, fm.fenqile.com, client.app.coc.10086.cn, img.ddrk.me, ddrk.me, img.jiemian.com, message.shuqireader.com, ut2.shuqistat.com, dsp.toutiao.com, sq.sljkj.com, img-tailor.11222.cn, feedback.uc.cn, *.shuqireader.com, 101.91.69.26, gateway.shouqiev.com, api.gotokeep.com, kad.gotokeep.com, static1.keepcdn.com, mbank.grcbank.com, -i.vip.iqiyi.com, *.iqiyi.com, api-sams.walmartmobile.cn, api.htp.ad-scope.com.cn, appgw.ddpai.com, init.sms.mob.com, www.flyert.com, hcz-member.pingan.com.cn, jp.rsscc.com, jt.rsscc.com, api-ac.liepin.com, api-wanda.liepin.com, intellicc.bcs.cmbchina.com, api-cslp-emt.amazon.cn, m.airchina.com.cn, apphw.ddpai.com, waimai-guide.ele.me, 39.98.135.211 diff --git a/boxjs/fmz200_boxjs.json b/boxjs/fmz200_boxjs.json index 39672bc3..c967c0f4 100644 --- a/boxjs/fmz200_boxjs.json +++ b/boxjs/fmz200_boxjs.json @@ -5,7 +5,7 @@ "icon": "https://avatars.githubusercontent.com/u/57740735?s=60&v=4", "repo": "https://github.com/fmz200/wool_scripts", "desc": "订阅大多都支持多账号,协定数据格式如下:有主键的用JSON,没有主键的拼接用#分割用@。\n例如{\"uid1\": \"token1\", \"uid2\": \"token2\",\"uid3\": \"token3\"}和uid1#token1@uid2#token2@uid3#token3", - "date": "更新日期:2025-07-29 19:00:00", + "date": "更新日期:2025-08-10 10:00:00", "apps": [ { "id": "fmz200_xiaohongshu", @@ -514,101 +514,6 @@ "https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/testflight.png" ] }, - { - "id": "fmz200_ql_sync", - "name": "BoxJS与青龙数据同步", - "keys": [ - "ql_sync_keys", - "ql_sync_notify", - "@ql.ip", - "@ql.client_id", - "@ql.client_secret", - "@ql.username", - "@ql.password", - "@ql.env", - "@ql.mute", - "@ql.is_pwd" - ], - "settings": [ - { - "id": "ql_sync_keys", - "name": "需要同步的keys", - "val": "", - "type": "textarea", - "placeholder": "", - "autoGrow": true, - "rows": 2, - "desc": "以英文逗号分隔多个key,例如:key1,key2,key3 \n 如果要增加注释可以用格式@分隔key和注释,例如:key1@remark1,key2@remark2,key3@remark3 \n 以上两种格式可以混用" - }, - { - "id": "ql_sync_notify", - "name": "是否静默通知", - "val": "", - "type": "boolean", - "placeholder": "true or false", - "autoGrow": true, - "rows": 1, - "desc": "关闭后成功时将不会通知,同步失败会通知(暂时没做)" - }, - { - "id": "@ql.is_pwd", - "name": "开启密码登陆", - "val": false, - "type": "boolean", - "desc": "同步时,优先使用密码登陆" - }, - { - "id": "@ql.ip", - "name": "青龙登陆的域名或IP:端口号", - "val": "", - "type": "text", - "placeholder": "111.21.0.32:5700" - }, - { - "id": "@ql.client_id", - "name": "应用 Client ID", - "val": "", - "type": "text" - }, - { - "id": "@ql.client_secret", - "name": "应用 Client Secret", - "val": "", - "type": "text" - }, - { - "id": "@ql.username", - "name": "账号", - "val": "", - "type": "text" - }, - { - "id": "@ql.password", - "name": "密码", - "val": "", - "type": "text" - } - ], - "author": "@fmz200", - "repo": "https://raw.githubusercontent.com/fmz200/wool_scripts/main/Scripts/qinglong/ql_sync.js", - "icons": [ - "https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/ql.png", - "https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/ql.png" - ], - "scripts": [ - { - "name": "BoxJS同步到青龙", - "script": "https://raw.githubusercontent.com/fmz200/wool_scripts/main/Scripts/qinglong/ql_sync.js" - } - ], - "descs_html": [ - "青龙 docker 的安装方式请移步 tg 频道", - "青龙 docker 仓库:【github】", - "青龙 docker 频道:【电报频道】", - "去广告交流群:【去广告交流群】", - "应用client_id,client_secret获取请去青龙面板“系统设置->应用设置”中添加相关参数,优先以openapi方式同步" - ] - }, { "id": "fmz200_macat_signin", "name": "macat.vip网站签到", @@ -633,39 +538,6 @@ "https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/Macat.png" ] }, - { - "id": "fmz200_freeAppsToday", - "name": "今日限免APP", - "keys": [ - "freeAppsTodayKey" - ], - "descs_html": [ - "填写key可以使用bark推送,可以对不同平台和更新内容分组推送,不填使用自带通知推送,支持跳转商店" - ], - "settings": [ - { - "id": "freeAppsTodayKey", - "name": "bark的Key", - "val": "", - "desc": "", - "type": "textarea", - "autoGrow": false, - "rows": 4 - } - ], - "author": "@fmz200", - "repo": "https://github.com/fmz200/wool_scripts", - "scripts": [ - { - "name": "获取今日限免APP", - "script": "https://raw.githubusercontent.com/fmz200/wool_scripts/main/QuantumultX/scripts/freeAppsToday.js" - } - ], - "icons": [ - "https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/chxm1023/AppStore.png", - "https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/chxm1023/AppStore.png" - ] - }, { "id": "fmz200_CCB_life", "name": "建行生活签到", @@ -878,109 +750,6 @@ "https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/WeiboTalk.png", "https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/WeiboTalk.png" ] - }, - { - "id": "fmz200_bilibili_share", - "name": "哔哩哔哩共享会员模板", - "desc_html": "⚠️使用说明:有会员的用户获取headers发给你后填入下面对应的内容里,点击保存,打开B站测试可用性\n
点我查看使用说明】", - "keys": [ - "Cookie", - "x-bili-device-bin", - "wb_request_time", - "Authorization", - "User-Agent", - "buvid", - "x-bili-metadata-bin", - "x-bili-locale-bin", - "x-bili-network-bin", - "x-bili-fawkes-req-bin", - "x-bili-trace-id" - ], - "settings": [ - { - "id": "Cookie", - "name": "Cookie", - "val": false, - "type": "text", - "desc": "" - }, - { - "id": "x-bili-device-bin", - "name": "x-bili-device-bin", - "val": "", - "type": "text", - "desc": "" - }, - { - "id": "Authorization", - "name": "Authorization", - "val": "", - "type": "text", - "desc": "" - }, - { - "id": "User-Agent", - "name": "User-Agent", - "val": "", - "type": "textarea", - "autoGrow": true, - "rows": 4 - }, - { - "id": "buvid", - "name": "buvid", - "val": "", - "type": "textarea", - "autoGrow": true, - "rows": 4 - }, - { - "id": "x-bili-metadata-bin", - "name": "x-bili-metadata-bin", - "val": "", - "type": "textarea", - "autoGrow": true, - "rows": 4 - }, - { - "id": "x-bili-locale-bin", - "name": "x-bili-locale-bin", - "val": "", - "type": "textarea", - "autoGrow": true, - "rows": 4 - }, - { - "id": "x-bili-network-bin", - "name": "x-bili-network-bin", - "val": "", - "type": "textarea", - "autoGrow": true, - "rows": 4 - }, - { - "id": "x-bili-fawkes-req-bin", - "name": "x-bili-fawkes-req-bin", - "val": "", - "type": "textarea", - "autoGrow": true, - "rows": 4 - }, - { - "id": "x-bili-trace-id", - "name": "x-bili-trace-id", - "val": "", - "type": "textarea", - "autoGrow": true, - "rows": 4 - } - ], - "author": "@fmz200", - "repo": "https://github.com/fmz200/wool_scripts", - "icons": [ - "https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/BiliBili.png", - "https://raw.githubusercontent.com/fmz200/wool_scripts/main/icons/apps/BiliBili.png" - ] } ] }