├── Choler ├── Module │ ├── douyin.sgmodule │ ├── rrsp.sgmodule │ ├── youku.sgmodule │ └── youtube.sgmodule ├── Ruleset │ ├── Adblock.list │ ├── Blocked.list │ ├── Spotify.list │ └── Unblock.list └── Script │ ├── Aweme.js │ ├── QQNews.js │ ├── Toutiao.js │ ├── WeChat.js │ ├── YouTube.js │ ├── douyin.js │ ├── douyin_qx.js │ ├── policy.js │ └── rrsp.js ├── Get_Cookie_New.conf ├── Get_Cookie_Remote.conf ├── Js.conf ├── Js_local_WorkingCopy.conf ├── Meeta ├── QuantumultX │ └── Scripting.txt ├── README.md └── Surge │ ├── Custom_Js │ └── lottery_xyft.js │ ├── List │ ├── bt.list │ └── c.conf │ └── Scripting │ ├── Calendar.js │ ├── StoneRead.js │ ├── aimeiju.js │ ├── bananavideo.js │ ├── bili.js │ ├── cushawmovie.js │ ├── hourlyWeather.js │ ├── kuwovip.js │ ├── meweather.js │ ├── mkdzz.js │ ├── mlottery.js │ ├── smallvideo.js │ ├── watermelonvideo.js │ ├── wechatread.js │ ├── wifi_proxy.js │ ├── wymh.js │ └── yun_analyze.js ├── NavePnow ├── Filter │ ├── QuantumultX │ │ ├── Apple_News.list │ │ ├── Facebook.list │ │ ├── Instagram.list │ │ └── Twitter.list │ └── Surge │ │ ├── Apple_News.list │ │ ├── Facebook.list │ │ ├── Instagram.list │ │ └── Twitter.list ├── LICENSE ├── README.md ├── README_EN.md └── Scripts │ ├── 10010+.js │ ├── 10010+_qx.js │ ├── JSBox │ ├── NUS_NextBus.js │ └── Singtel+.js │ ├── checkin.js │ ├── checkin_1point.js │ ├── filter_conversion.js │ ├── google_script │ ├── calendar.js │ ├── server.js │ ├── singtel.js │ └── ss-checkin.js │ ├── script_id.js │ ├── weather.js │ ├── weather_advanced │ ├── weather.js │ └── weather_dark.js │ ├── weather_qx.js │ ├── weibo │ ├── checkin_qx.js │ ├── checkin_surge.js │ ├── get_cookie_qx.js │ └── get_cookie_surge.js │ └── zubajie.js ├── NeteaseMusic.list ├── Neurogram-R ├── AppMonitor.js ├── AppPricer.html ├── AppPricer.js ├── Douban.js ├── Q-Search.js ├── README.md ├── Surge-QX-Smart.html ├── checkin.js └── module │ └── Q-Search.sgmodule ├── NobyDa ├── 52pojie-DailyBonus │ └── 52pojie.js ├── BDTieBa-DailyBonus │ └── TieBa.js ├── Bilibili-DailyBonus │ └── Manga.js ├── JD-DailyBonus │ └── JD_DailyBonus.js ├── QuantumultX │ ├── AdRule.list │ ├── AdRuleTest.list │ ├── File │ │ ├── 91.js │ │ ├── ColorWeather.js │ │ ├── DiDaQingDan.js │ │ ├── VSCO │ │ ├── Wechat.js │ │ ├── Zymh.js │ │ ├── aimeiju.js │ │ ├── bdmh.js │ │ ├── bilibiliAccount.js │ │ ├── bilibiliFeed.js │ │ ├── bilibiliHot.js │ │ ├── bilibiliRank.js │ │ ├── bilibiliReply.js │ │ ├── bilibiliTab.js │ │ ├── bilibiliViewRelate.js │ │ ├── bilifj.js │ │ ├── dapian.js │ │ ├── kmh.js │ │ ├── vsco.js │ │ ├── wb_ad.js │ │ ├── wb_launch.js │ │ ├── wnyd.js │ │ ├── wykaola.js │ │ ├── xjsp.js │ │ └── xxys.js │ ├── Js.conf │ ├── Js_local_WorkingCopy.conf │ ├── Js_local_WorkingCopy_Cookie.conf │ └── Rewrite_lhie1.conf ├── README.md ├── Surge │ ├── AdRule.list │ ├── AdRuleRegex.list │ ├── AdRuleTest.list │ ├── Download.list │ ├── JS │ │ ├── 91ShortVideo.js │ │ ├── Aweme.js │ │ ├── Bahamut.js │ │ ├── BaiduCloud.js │ │ ├── CamScanner.js │ │ ├── FaceApp.js │ │ ├── Kaola.js │ │ ├── Keep.js │ │ ├── KuWoMusicDownload.js │ │ ├── Kuwo.js │ │ ├── NiChi.js │ │ ├── PicsArt.js │ │ ├── QQNews.js │ │ ├── Splice.js │ │ ├── Super.js │ │ ├── Termius.js │ │ ├── Toutiao.js │ │ ├── VUE.js │ │ ├── WeChat.js │ │ ├── Wps.js │ │ ├── YouTube.js │ │ ├── Zhihu-ad-answer.js │ │ ├── Zhihu-ad-feed.js │ │ ├── Zhihu-ad-market.js │ │ ├── Zhihu-ad-recommend.js │ │ ├── dqsj.js │ │ ├── gyroscope.js │ │ ├── jibjab.js │ │ ├── luqi.js │ │ ├── ngdy.js │ │ ├── syjl.js │ │ ├── test.js │ │ ├── vivavideo.js │ │ ├── wxzb.js │ │ ├── yyzs.js │ │ └── zhibo.js │ └── Module │ │ ├── GetCookie.sgmodule │ │ └── RewriteRules.sgmodule └── iQIYI-DailyBonus │ └── iQIYI.js ├── Q-Search_All_in_one.conf ├── QuantumultX.conf ├── README.md ├── Script ├── 115lx.js ├── 91.js ├── BiliHD.js ├── Bilibili.js ├── BilibiliUnlock.js ├── Diyidan.js ├── HTJZ.js ├── ITHome.js ├── JAV101.js ├── Pacdebug.js ├── Pdfexpert.vip.js ├── Smh.js ├── VideoStar.js ├── Wanliyingshi.js ├── XMind.js ├── YYeTs.js ├── ZhiHu_All.js ├── abaenglish.vip.js ├── aimeiju.js ├── altstore.js ├── bandwagon.js ├── bear.js ├── bilibili.unblock.playurl.min.js ├── bilibili.unblock.season.min.js ├── bilibili_space_qx.js ├── blockBikaUpdate.js ├── china_unicom.js ├── clarity.js ├── cpdq.js ├── cupdasher.js ├── cyxy.js ├── dayone-pre.js ├── dayone.js ├── fantastical.js ├── fit.js ├── hanjuTV.js ├── hjsp.js ├── hnsyhb.js ├── jdyTV.js ├── jxydt.js ├── kkyy.js ├── lake.js ├── llyd.js ├── mb.js ├── mkl.js ├── mmfy.js ├── mryy.js ├── myxj.js ├── nomo.js ├── peak.js ├── pear.js ├── photoshop.js ├── pillow.js ├── pock.js ├── qrxs.js ├── quanx.js ├── qx.md ├── qyxj.js ├── revenuecat.js ├── rrtv.js ├── sdxz.js ├── shimo.js ├── sjyjgj.js ├── smart.js ├── smy.js ├── sololearn.js ├── themekuwo.js ├── wnsm.js ├── wps.js ├── wszs.js ├── xcz.js ├── xiaoshuimian.js ├── xunjie.js ├── xxysad.js ├── ydybj.js ├── zgtyzb.js └── znzj.js ├── Scripts.conf ├── Task ├── 360.js ├── Tengxunnews.js ├── WeChatLottery_new.js ├── china_telecom.js ├── cmbchina.js ├── ct_cookie.js ├── ct_sign.js ├── ctrip.js ├── ctrip_cookie.js ├── daysmatter.js ├── dianshijia.js ├── elemGetCookies.js ├── elemSign.js ├── exchangeRate.js ├── hourlyWeather.js ├── icbc_cookie.js ├── icbc_sign.js ├── jdczf.js ├── jdczfcookie.js ├── jddj.js ├── kuaishou.js ├── lkyl.js ├── lol.js ├── loulancheck.js ├── makal.js ├── minute_forecast.js ├── nCoV.js ├── nCoVrumors.js ├── sinanews.js ├── telecomInfinity.js ├── testflight.js ├── time.js ├── tongc_cookie.js ├── tongc_info.js ├── tongc_sign.js ├── trainquery.js ├── translate.js ├── tvpreview.js ├── txnews.js ├── txnews2.js ├── weather.js ├── weibo.js ├── xmly_wc.js ├── xmspeed.js ├── youth.js ├── yubaSign.js └── zongheng.js ├── Task_Local.conf ├── Task_Remote.conf ├── chavyleung ├── 10000 │ ├── 10000.cookie.js │ ├── 10000.js │ └── README.md ├── 10010 │ ├── 10010.cookie.js │ ├── 10010.js │ └── README.md ├── 10086 │ ├── 10086.cookie.js │ ├── 10086.js │ └── README.md ├── .prettierrc ├── .vscode │ └── settings.json ├── QuantumultX_AppStore_Local_Cookie.conf ├── QuantumultX_Local_Cookie.conf ├── QuantumultX_Local_Task.conf ├── QuantumultX_Remote_Task.conf ├── README.md ├── acfun │ ├── README.md │ ├── acfun.cookie.js │ └── acfun.js ├── apktw │ ├── README.md │ ├── apktw.cookie.js │ └── apktw.js ├── bcz │ ├── README.md │ ├── bcz.cookie.js │ └── bcz.js ├── bilibili │ ├── README.md │ ├── bilibili.cookie.js │ ├── bilibili.js │ └── bilibili.silver2coin.js ├── bubei │ ├── README.md │ └── bubei.js ├── chavy.js ├── csdn │ ├── README.md │ ├── csdn.cookie.js │ └── csdn.js ├── dbsj │ ├── README.md │ ├── dbsj.cookie.js │ └── dbsj.js ├── dongqiudi │ ├── README.md │ ├── dongqiudi.cookie.js │ └── dongqiudi.js ├── duokan │ ├── README.md │ ├── duokan.cookie.js │ └── duokan.js ├── everphoto │ ├── README.md │ ├── everphoto.cookie.js │ └── everphoto.js ├── fandeng │ ├── README.md │ ├── fandeng.cookie.js │ └── fandeng.js ├── feng │ ├── README.md │ ├── feng.cookie.js │ └── feng.js ├── fenqile │ ├── README.md │ ├── fenqile.cookie.js │ └── fenqile.js ├── flyertea │ ├── README.md │ ├── flyertea.cookie.js │ └── flyertea.js ├── gdoil │ ├── README.md │ ├── gdoil.cookie.js │ └── gdoil.js ├── haidilao │ ├── README.md │ └── hdl.js ├── hellobike │ ├── README.md │ └── hellobike.js ├── hycan │ ├── README.md │ ├── hycan.cookie.js │ └── hycan.js ├── jddj │ ├── README.md │ ├── jddj.cookie.js │ └── jddj.js ├── maomicd │ ├── README.md │ ├── maomicd.cookie.js │ └── maomicd.js ├── mcdd │ ├── README.md │ ├── mcdd.cookie.js │ └── mcdd.js ├── meituan │ ├── README.md │ ├── meituan.cookie.js │ └── meituan.js ├── mgtv │ ├── README.md │ ├── mgtv.cookie.js │ └── mgtv.js ├── midu │ ├── README.md │ ├── midu.cookie.js │ ├── miduRead.js │ ├── miduRead.py │ ├── miduSign.js │ └── miduSign.py ├── mihoyo │ ├── README.md │ ├── mihoyo.cookie.js │ └── mihoyo.js ├── neteasemusic │ ├── README.md │ ├── neteasemusic.cookie.js │ ├── neteasemusic.js │ └── quanx │ │ ├── README.md │ │ ├── neteasemusic.cookie.js │ │ └── neteasemusic.js ├── neteasenews │ ├── README.md │ ├── README.old.md │ ├── neteasenews.cookie.js │ ├── neteasenews.js │ └── 抓包步骤 │ │ ├── 第10步.png │ │ ├── 第1步.png │ │ ├── 第2步.png │ │ ├── 第3步.png │ │ ├── 第4-5步.png │ │ ├── 第6步.png │ │ ├── 第7步.png │ │ ├── 第8步.png │ │ └── 第9步.png ├── nio │ ├── README.md │ ├── nio.cookie.js │ └── nio.js ├── qimao │ ├── README.md │ └── qmnovel.js ├── qmkg │ ├── README.md │ ├── qmkg.cookie.js │ └── qmkg.js ├── qqmusic │ ├── README.md │ ├── qqmusic.cookie.js │ └── qqmusic.js ├── qtt │ ├── README.md │ ├── qtt.cookie.js │ └── qtt.js ├── qunar │ ├── README.md │ ├── qunar.cookie.js │ └── qunar.js ├── rrtv │ ├── README.md │ ├── rrtv.cookie.js │ └── rrtv.js ├── sfexpress │ ├── README.md │ ├── sfexpress.cookie.js │ └── sfexpress.js ├── smzdm │ ├── README.md │ ├── quanx │ │ ├── README.md │ │ ├── smzdm.cookie.js │ │ └── smzdm.js │ ├── smzdm.cookie.js │ └── smzdm.js ├── suning │ ├── README.md │ ├── suning.cookie.js │ └── suning.js ├── tieba │ ├── README.md │ ├── tieba.cookie.js │ └── tieba.js ├── tncj │ ├── README.md │ └── tncj.min.js ├── v2ex │ ├── README.md │ ├── quanx │ │ ├── README.md │ │ ├── v2ex.cookie.js │ │ └── v2ex.js │ ├── v2ex.cookie.js │ └── v2ex.js ├── videoqq │ ├── README.md │ ├── videoqq.cookie.js │ └── videoqq.js ├── wmmeituan │ ├── README.md │ ├── wmmeituan.cookie.js │ └── wmmeituan.js ├── wps │ ├── README.md │ ├── wps.cookie.js │ └── wps.js ├── wykl │ ├── README.md │ ├── wykl.cookie.js │ └── wykl.js ├── ximalaya │ ├── README.md │ ├── ximalaya.cookie.js │ └── ximalaya.js ├── yanxuan │ ├── README.md │ ├── yanxuan.cookie.js │ └── yanxuan.js ├── zaker │ ├── README.md │ └── zaker.js ├── zimuzu │ ├── README.md │ ├── zimuzu.cookie.js │ └── zimuzu.js ├── zsfc │ ├── README.md │ └── zsfc.js └── zxhc │ ├── README.md │ ├── zxhc.cookie.js │ └── zxhc.js ├── langkhach ├── Adguard.js ├── Adguard.rsp ├── Appmonitor.js ├── Bright.rsp ├── CamScaner.js ├── Faded.js ├── Fantastical.js ├── Gyroscope.vip.js ├── Lightroom.js ├── MuscleBooster.js ├── Ncov.js ├── Pdfexpert.vip.js ├── QuantumultX │ ├── Fake_Local-workingcopy.txt │ ├── Fake_Vip.txt │ ├── Quantumult_Fakevip_LangKhach.txt │ └── Quantumult_Fakevip_LangKhach_workingcopy.txt ├── Sharp3DPro.js ├── Surge │ ├── DataFlow.js │ ├── IAP_PREMIUM_LangKhach_Release.conf │ ├── IAP_Premium_LangKhach.conf │ ├── Outbound Mode.js │ ├── appprice.js │ ├── dnspod.js │ ├── modules │ │ ├── GameMod.sgmodule │ │ ├── Old_iPA_Downloader.sgmodule │ │ └── Q-Search.sgmodule │ ├── ncov.js │ ├── nextdns_linkedip.js │ ├── old_ipa.js │ ├── rules │ │ ├── Antirevoke.list │ │ ├── Apple.list │ │ ├── AppleTV.list │ │ ├── Applenew.list │ │ ├── BlockOTA.list │ │ ├── Direct.list │ │ ├── Facebook.list │ │ ├── GoogleDrive.list │ │ ├── HBO.list │ │ ├── Kakaotalk.list │ │ ├── MyViettel.list │ │ ├── Netflix.list │ │ ├── Speedtest.list │ │ ├── Spotify.list │ │ ├── YouTubeMusic.list │ │ └── Youtube.list │ ├── servers │ │ ├── Ads.list │ │ ├── Appcake.list │ │ ├── Final.list │ │ └── winscribe.list │ └── weather.js ├── Terminus.js ├── Textnow.js ├── Unfold.vip.js ├── VideoStar.js ├── altstore.js ├── appprice.js ├── beautyplusvip.js ├── blinkist.js ├── boom.vip.rsp ├── busuu.vip.js ├── calm.vip.js ├── camera360.vip.js ├── cleancacheulysses.js ├── dayone.js ├── dayone.surge.js ├── documents.js ├── draft.js ├── drops.js ├── duolingo.js ├── elevate.vip.js ├── elsa-header.js ├── elsa-response.js ├── endel.js ├── grammarly.js ├── instasize.vip.js ├── itranslate.js ├── jibjab.vip.js ├── kinemaster.js ├── lingokids.vip.js ├── memrise.vip.js ├── mimo.vip.js ├── mondly.vip.js ├── monkey.js ├── musicalm.js ├── musixmatch.miao.js ├── nhaccuatui.js ├── nichi.js ├── nomo.js ├── over.vip.js ├── photoshop.js ├── picsArt.vip.js ├── planner5d.js ├── playerxtreme.js ├── productive.js ├── proxy.js ├── pushover.js ├── quanx.js ├── remove-nonematch.js ├── revenuecat.js ├── shopee_checkin.js ├── shopee_cookie.js ├── shred.js ├── sololearn.js ├── speak&translate.js ├── splice.js ├── syn.me.js ├── ulike.js ├── ulysses.js ├── verify_receipt.js ├── videoshow.vip.js ├── vivavideo.vip.js ├── vsco.js ├── weather.js ├── workingcopy.js ├── youtube.surge.js ├── zingmp3.downloadsong.js ├── zingmp3.getsong.js ├── zingmp3.js └── zingtvvipv1.js ├── onewayticket255 ├── README.md ├── ad.list ├── bilibili_playurl_qx.js ├── bilibili_season_qx.js ├── module │ ├── ad.sgmodule │ ├── bilibili.sgmodule │ └── zhihu.sgmodule ├── snell │ ├── README.md │ └── main.js ├── surge_bilibili_account.js ├── surge_bilibili_feed.js ├── surge_bilibili_live.js ├── surge_bilibili_reply.js ├── surge_bilibili_space.js ├── surge_bilibili_tab.js ├── surge_bilibili_view_relate.js ├── surge_zhihu_answer.js ├── surge_zhihu_feed.js ├── surge_zhihu_people.js └── surge_zhihu_recommend.js ├── sazs34 ├── QuantumultX.conf ├── README.md ├── all_in │ └── README.md ├── all_in_one.js ├── all_in_one.md ├── assets │ ├── all_in_one.jpg │ ├── assets │ │ ├── image-20200107183838878.png │ │ ├── image-20200108093853445.png │ │ ├── image-20200108093902427.png │ │ └── image-20200108093910463.png │ ├── image-20191231110606761.png │ ├── image-20191231111239380.png │ ├── image-20191231112457531.png │ ├── image-20191231113149665.png │ ├── image-20191231143831929.png │ ├── image-20200103155051082.png │ ├── image-20200103155101146.png │ └── weather_pro.md ├── cookie │ ├── cookie_10000.js │ ├── cookie_52pojie.js │ ├── cookie_baidu_tieba_app.js │ ├── cookie_baidu_tieba_h5.js │ ├── cookie_iqiyi.js │ ├── cookie_jd_bonus.js │ ├── cookie_netease_music.js │ └── cookie_v2ex.js ├── smart.js └── task │ ├── sign_10000.js │ ├── sign_52pojie.js │ ├── sign_baidu_tieba_v2.js │ ├── sign_iqiyi_bonus.js │ ├── sign_jd_bonus.js │ ├── sign_netease_music.js │ ├── sign_v2ex.js │ ├── weather_dark.js │ ├── weather_hour.js │ ├── weather_pro.js │ ├── weather_pro2.js │ └── weather_week.js └── yichahucha ├── README.md ├── clock_in.js ├── cron_daily.js ├── eval_script.js ├── eval_script ├── qx.txt └── sg.sgmodule ├── jd_price.js ├── jd_price_lite.js ├── nf_rating.js ├── nf_rating_season.js ├── qx_sub.txt ├── sg_sub.sgmodule ├── tb_pre.js ├── tb_price.js ├── tb_price_lite.js ├── tool.js ├── wb_ad.js └── wb_launch.js /Choler/Module/rrsp.sgmodule: -------------------------------------------------------------------------------- 1 | #!name=人人视频 2 | #!desc=您的海外追剧神器 3 | #!system=ios 4 | 5 | [Rule] 6 | AND,((USER-AGENT,PUClient*), (NOT,((DOMAIN-SUFFIX,rr.tv)))),REJECT 7 | URL-REGEX,^https?:\/\/api\.rr\.tv\/(?:ad\/getAll$|storage/business/rootName/app/homePage),REJECT 8 | 9 | [Script] 10 | rrsp_video = type=http-response,requires-body=true,pattern=^https?:\/\/api\.rr\.tv\/watch\/v\d\/get_movie_info,script-path=https://Choler.github.io/Surge/Script/rrsp.js 11 | rrsp_banner = type=http-response,requires-body=true,pattern=^https?:\/\/api\.rr\.tv\/v\dplus\/index\/channel$,script-path=https://Choler.github.io/Surge/Script/rrsp.js 12 | 13 | [MITM] 14 | hostname = %APPEND% api.rr.tv -------------------------------------------------------------------------------- /Choler/Module/youku.sgmodule: -------------------------------------------------------------------------------- 1 | #!name=优酷 2 | #!desc=视频去片头广告 3 | #!system=ios 4 | 5 | [General] 6 | force-http-engine-hosts = %APPEND% vali.cp31.ott.cibntv.net 7 | 8 | [Rule] 9 | URL-REGEX,^http:\/\/vali\.cp31\.ott\.cibntv\.net\/youku\/,REJECT-TINYGIF -------------------------------------------------------------------------------- /Choler/Module/youtube.sgmodule: -------------------------------------------------------------------------------- 1 | #!name=YouTube 2 | #!desc=跳过片头广告 3 | #!system=ios 4 | 5 | [Rule] 6 | # 如果您是 YouTube Premium,请不要开启此模块。 7 | URL-REGEX,^https?:\/\/[\w-]+\.googlevideo\.com\/.+&(oad|ctier),REJECT-TINYGIF 8 | 9 | [MITM] 10 | hostname = %APPEND% *.googlevideo.com -------------------------------------------------------------------------------- /Choler/Ruleset/Spotify.list: -------------------------------------------------------------------------------- 1 | USER-AGENT,Spotify* 2 | DOMAIN-SUFFIX,pscdn.co 3 | DOMAIN-SUFFIX,scdn.co 4 | DOMAIN-SUFFIX,spotify.com 5 | DOMAIN-SUFFIX,spoti.fi -------------------------------------------------------------------------------- /Choler/Script/QQNews.js: -------------------------------------------------------------------------------- 1 | /* 2 | [Script] 3 | http-response https://r\.inews\.qq.com\/get(QQNewsUnreadList|RecommendList) requires-body=1,max-size=-1,script-path=https://Choler.github.io/Surge/Script/QQNews.js 4 | 5 | [MITM] 6 | hostname = r.inews.qq.com 7 | */ 8 | 9 | var obj = JSON.parse($response.body); 10 | delete obj.adList; 11 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /Choler/Script/Toutiao.js: -------------------------------------------------------------------------------- 1 | /* 2 | [Script] 3 | http-response ^https?://[\s\S]*\.snssdk\.com/api/news/feed/v88/ requires-body=1,max-size=-1,script-path=https://Choler.github.io/Surge/Script/Toutiao.js 4 | 5 | [MITM] 6 | hostname = *.snssdk.com 7 | */ 8 | 9 | var obj = JSON.parse($response.body); 10 | if (obj.data) { 11 | for (var i = obj.data.length - 1; i >= 0; i--) { 12 | if (obj.data[i].content.indexOf("raw_ad_data") > 0) { 13 | obj.data.splice(i, 1); 14 | } 15 | } 16 | } 17 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /Choler/Script/WeChat.js: -------------------------------------------------------------------------------- 1 | /* 2 | [Script] 3 | http-request ^https://mp\.weixin\.qq\.com/mp/getappmsgad script-path=https://Choler.github.io/Surge/Script/WeChat.js 4 | 5 | [MITM] 6 | hostname = mp.weixin.qq.com 7 | */ 8 | 9 | var data = { 10 | body: "{}", 11 | headers: { 12 | "Content-Type": "application/json" 13 | } 14 | }; 15 | $done({response: data}); -------------------------------------------------------------------------------- /Choler/Script/YouTube.js: -------------------------------------------------------------------------------- 1 | /* 2 | [Script] 3 | http-request ^https://[\s\S]*\.googlevideo\.com/.*&(oad|ctier) script-path=https://Choler.github.io/Surge/Script/YouTube.js 4 | 5 | [MITM] 6 | hostname = *.googlevideo.com 7 | */ 8 | 9 | var data = { 10 | body: "{}", 11 | headers: { 12 | "Content-Type": "multipart/byteranges" 13 | } 14 | }; 15 | $done({response: data}); -------------------------------------------------------------------------------- /Choler/Script/rrsp.js: -------------------------------------------------------------------------------- 1 | const path1 = "channel"; 2 | const path2 = "get_movie_info"; 3 | 4 | if ($request.method != "OPTIONS") { 5 | if ($request.url.indexOf(path1) != -1) { 6 | banner(); 7 | } else if ($request.url.indexOf(path2) != -1) { 8 | movie(); 9 | } 10 | } else { 11 | $done({}); 12 | } 13 | 14 | function banner() { 15 | let obj = JSON.parse($response.body); 16 | if (obj.data.sections) { 17 | for (var i = obj.data.sections.length - 1; i >= 0; i--) { 18 | if (obj.data.sections[i].sectionType === "AD") { 19 | obj.data.sections.splice(i, 1); 20 | } 21 | } 22 | } 23 | $done({ body: JSON.stringify(obj) }); 24 | } 25 | 26 | function movie() { 27 | let obj = JSON.parse($response.body); 28 | obj.data.m3u8.openingLength = obj.data.m3u8.startingLength; 29 | $done({ body: JSON.stringify(obj) }); 30 | } -------------------------------------------------------------------------------- /Meeta/QuantumultX/Scripting.txt: -------------------------------------------------------------------------------- 1 | ;Meeta_script脚本适配Quantumult X ,其他脚本后续添加, 有问题欢迎反馈,TG频道: @meetashare 2 | 3 | hostname = *.api.vcinema.cn, api2.gkaorlz.com, *.kuwo.cn, ios.xiaoxiaoapps.com 4 | 5 | ;南瓜电影 6 | ^https?:\/\/p\.doras\.api\.vcinema\.cn\/v5.0\/user/ url script-response-body https://meetagit.github.io/MeetaRules/Surge/Scripting/cushawmovie.js 7 | 8 | ;西瓜视频(https://www.xg1.app/) 9 | ^https?:\/\/api2\.gkaorlz\.com\:8080\/api\/user\/ url script-response-body https://meetagit.github.io/MeetaRules/Surge/Scripting/watermelonvideo.js 10 | 11 | ;酷我音乐SVIP 12 | ^https?:\/\/.*\.kuwo\.cn url script-response-body https://meetagit.github.io/MeetaRules/Surge/Scripting/kuwovip.js 13 | 14 | ;小小影视(http://tinyurl.com/y4thsp99) 15 | ;^https?:\/\/ios\.xiaoxiaoapps\.com\/ url script-response-body https://meetagit.github.io/MeetaRules/Surge/Scripting/smallvideo.js 16 | 17 | -------------------------------------------------------------------------------- /Meeta/README.md: -------------------------------------------------------------------------------- 1 | # MeetaRules 2 | ## [查看TG频道](https://t.me/meetaclub) 3 | ## [TG交流群](https://t.me/joinchat/H0wr10TATOAQplouUXYNrQ) 4 | 5 | # remove 6 | -------------------------------------------------------------------------------- /Meeta/Surge/Custom_Js/lottery_xyft.js: -------------------------------------------------------------------------------- 1 | // 幸运飞艇(Made by Meeta) 2 | // cron "0 0/5 13-23 * * *" script-path=https://meetagit.github.io/MeetaRules/Surge/Custom_Js/lottery_xyft.js 3 | // 该api 由 @zaxbaby 私人购买,免费分享,所以请大家不要滥用 4 | // ps :未经允许不允许以此谋利 5 | // TG频道:@meetashare 6 | 7 | const api = "http://vip.manycai.com/K25d41658517f18/xyft-1.json"; 8 | $httpClient.get(api, function(error, response, data){ 9 | if(error){ 10 | console.log(error); 11 | $done(); 12 | }else{ 13 | var obj = JSON.parse(data); 14 | //console.log(obj); 15 | //let name = obj[0].lotterycode; 16 | let code = obj[0].code; 17 | let opendate = obj[0].opendate; 18 | let title = "幸运飞艇-开奖信息"; 19 | let subtitle = "中奖号码:"+code; 20 | let mation = "开奖时间:"+opendate+"\nMeeta wish you hit the jackpot !"; 21 | $notification.post(title, subtitle, mation); 22 | } 23 | $done(); 24 | } 25 | ); 26 | -------------------------------------------------------------------------------- /Meeta/Surge/List/bt.list: -------------------------------------------------------------------------------- 1 | // Mac Download 2 | PROCESS-NAME,aria2c 3 | PROCESS-NAME,fdm 4 | PROCESS-NAME,Folx 5 | PROCESS-NAME,NetTransport 6 | PROCESS-NAME,Thunder 7 | PROCESS-NAME,Transmission 8 | PROCESS-NAME,uTorrent 9 | PROCESS-NAME,WebTorrent 10 | PROCESS-NAME,WebTorrent Helper 11 | 12 | // bt 13 | 14 | DOMAIN-KEYWORD,announce 15 | DOMAIN-KEYWORD,torrent 16 | DOMAIN-KEYWORD,tracker 17 | DOMAIN-SUFFIX,smtp 18 | DOMAIN-KEYWORD,aria2 19 | URL-REGEX,(Subject|HELO|SMTP) 20 | URL-REGEX,(api|ps|sv|offnavi|newvector|ulog.imap|newloc)(.map|).(baidu|n.shifen).com 21 | URL-REGEX,(.+.|^)(360|so|qihoo|360safe|qhimg|360totalsecurity|yunpan).(cn|com) 22 | URL-REGEX,(.+.)?(torrent|announce.php?passkey=|tracker|BitTorrent|bt_key|ed2k|find_node|get_peers|info_hash|magnet:|peer_id=|sandai|Thunder|XLLiveUD|xunlei)(..+)? 23 | 24 | // 迅雷 25 | URL-REGEX,(.?)(xunlei|sandai|Thunder|XLLiveUD)(.) 26 | 27 | // 360有毒服务 28 | URL-REGEX,(.+\.|^)(360|so)\.(cn|com) 29 | -------------------------------------------------------------------------------- /Meeta/Surge/Scripting/StoneRead.js: -------------------------------------------------------------------------------- 1 | let path = '/api/apiClient/index'; 2 | var obj = JSON.parse(body) 3 | if (url.indexOf(path) != -1) { 4 | obj["data"]["vvip_deadline"] = "3044071653"; 5 | obj["data" ]["vvip"] = "1"; 6 | obj["data" ]["u_credits"] = "666666" 7 | 8 | } 9 | JSON.stringify(obj) 10 | 11 | // Made by Meeta (石头阅读) 12 | 13 | // https?:\/\/app\.stoneread\.com/api\/apiClient\/index\?data 14 | // hostname = app.stoneread.com 15 | -------------------------------------------------------------------------------- /Meeta/Surge/Scripting/aimeiju.js: -------------------------------------------------------------------------------- 1 | var body = $response.body; 2 | var url = $request.url; 3 | const path1 = "/app/ios/user/index"; 4 | const path2 = "/app/ios/vod/show"; 5 | const path3 = "/app/ios/ads/index"; 6 | 7 | if (url.indexOf(path1) != -1){ 8 | let obj = JSON.parse(body); 9 | obj.data.user["viptime"] = "2066-01-01 08:00:00"; 10 | obj.data.user["cion"] = "66666"; 11 | obj.data.user["vip"] = "1"; 12 | body = JSON.stringify(obj); 13 | } 14 | 15 | if (url.indexOf(path2) != -1){ 16 | let obj = JSON.parse(body); 17 | obj.data["looktime"] = -1; 18 | obj.data["vip"] = "4"; 19 | body = JSON.stringify(obj); 20 | } 21 | 22 | if (url.indexOf(path3) != -1){ 23 | let obj = JSON.parse(body); 24 | obj.data["pic"] = "http://ww1.sinaimg.cn/large/0076dY5Wgy1g36mmbdvv7j30gf0zkwf2.jpg"; 25 | obj.data["url"] = "https://t.me/meetaclub"; 26 | body = JSON.stringify(obj); 27 | } 28 | 29 | $done({body}); 30 | 31 | 32 | 33 | // Made by Meeta(爱美剧)(官网下载:app.meiju2018.com) 34 | // https?:\/\/mjappaz.yefu365.com\/index.php\/app\/ios\/ 35 | // hostname = mjappaz.yefu365.com 36 | -------------------------------------------------------------------------------- /Meeta/Surge/Scripting/hourlyWeather.js: -------------------------------------------------------------------------------- 1 | const weaapi = "https://www.tianqiapi.com/api/?version=v6&appid=13333885&appsecret=v8OEJUMb" 2 | 3 | $httpClient.get(weaapi, function(error, response, data){ 4 | if (error){ 5 | console.log(error); 6 | $done(); 7 | } else { 8 | var obj = JSON.parse(data); 9 | console.log(obj); 10 | var city = "所在城市: " + obj.city+ " • " + obj.tem + "℃" ;; 11 | var wea = "天气状况: " + obj.wea +" • " + obj.tem2 + "℃~" + obj.tem1 + "℃" 12 | var air = "当前风力: " + obj.win + " • "+obj.win_speed + " 风速" + obj.win_meter + "\n空气指数: " +obj.air + " • "+ obj.air_level +" | 湿度 • " + obj.humidity+" | 能见度 • "+obj.visibility+ "\n友情提示: " + obj.air_tips + "\n更新时间: " + obj.update_time; 13 | let wmation = [city,wea,air]; 14 | $notification.post(wmation[0], wmation[1], wmation[2]); 15 | $done(); 16 | } 17 | } 18 | ); 19 | 20 | /* 每时天气(Made by Meeta) 21 | 文本编辑模式下复制粘贴 22 | cron "* * * *" script-path=https://meetagit.github.io/MeetaRules/Surge/Scripting/hourlyWeather.js 23 | 天气预报每小时通过通知栏提醒一次(可以自己修改提醒频率); 24 | 向通知中心发送通知,Surge iOS 上需开启通知总开关; 25 | 欢迎大家使用 26 | 欢迎关注TG频道:@meetashare 27 | */ 28 | -------------------------------------------------------------------------------- /Meeta/Surge/Scripting/kuwovip.js: -------------------------------------------------------------------------------- 1 | var body = $response.body; 2 | var url = $request.url; 3 | const path1 = "/AdService/kaiping/"; 4 | const path2 = "/vip/v2/user/vip"; 5 | 6 | function ad_kaiping() { 7 | let obj = JSON.parse(body); 8 | obj.url = "http://ww1.sinaimg.cn/large/0076dY5Wgy1g36mmbdvv7j30gf0zkwf2.jpg"; 9 | body = JSON.stringify(obj); 10 | } 11 | 12 | function svip_kuwo() { 13 | let obj = JSON.parse(body); 14 | obj.data["isNewUser"] = "2"; 15 | obj.data["vipLuxuryExpire"] = "1835312949000"; 16 | obj.data["time"] = "1961170340993"; 17 | obj.data["isYearUser"] = "2"; 18 | obj.data["vipmExpire"] = "1835312949000"; 19 | obj.data["vipOverSeasExpire"] = "1835312949000"; 20 | obj.data["vipExpire"] = "1835312949000"; 21 | obj.data["vip3Expire"] = "1835312949000"; 22 | body = JSON.stringify(obj); 23 | } 24 | 25 | if (url.indexOf(path1) != -1){ 26 | ad_kaiping() 27 | 28 | } 29 | 30 | if (url.indexOf(path2) != -1){ 31 | svip_kuwo() 32 | 33 | } 34 | 35 | 36 | $done({body}); 37 | 38 | 39 | /* Made by Meeta(酷我音乐) 40 | https?:\/\/.*\.kuwo\.cn 41 | */ 42 | 43 | 44 | -------------------------------------------------------------------------------- /Meeta/Surge/Scripting/mkdzz.js: -------------------------------------------------------------------------------- 1 | /* 2 | 快递追踪(Made by Meeta) 3 | 完善中,还有较大改造空间 4 | 5 | cron "0 0 8-20/1 * * *" script-path=mkdzz.js 6 | 7 | https://meetagit.github.io/MeetaRules/Surge/Scripting/mkdzz.js 8 | 9 | 10 | 向通知中心发送通知,Surge iOS 上需开启通知总开关; 11 | 欢迎大家使用 12 | 欢迎关注TG频道:@meetashare 13 | 14 | 常用快递公司代码: 15 | ("顺丰" "shunfeng"), 16 | ("中通" "zhongtong"), 17 | ("申通" "shentong"), 18 | ("圆通" "yuantong"), 19 | ("汇通" "huitongkuaidi"), 20 | ("韵达" "yunda"), 21 | ("EMS" "ems"), 22 | ("天天" "tiantian"), 23 | ("德邦" "debangwuliu") 24 | */ 25 | 26 | 27 | 28 | 29 | // 请在下方""内填入您的快递单号 30 | var kdnum = ""; 31 | 32 | // 请在""内填入快递公司代码 (下面注释部分列举了常用快递公司的代码) 33 | var kdcom = ""; 34 | 35 | const kdurl = "http://www.135cha.com/model/ajax.php?type="+kdcom+"&no="+kdnum; 36 | function getkdmatioin(data){ 37 | var obj = JSON.parse(data); 38 | //console.log(obj); 39 | let kdname = obj["com"]; 40 | let updatetime = obj.data[0]["time"]; 41 | let kdcontext = obj.data[0]["context"]; 42 | let mm = [kdname, updatetime, kdcontext]; 43 | return mm 44 | 45 | 46 | } 47 | 48 | $httpClient.get(kdurl, function(error, response, data){ 49 | if (error){ 50 | console.log(error); 51 | $done(); 52 | } else { 53 | var mm = getkdmatioin(data); 54 | var title = "Meeta快递追踪:您的"+mm[0]+"快递 Coming"; 55 | var subtitle = "更新时间:"+mm[1]; 56 | var mation = "最新信息:"+mm[2]; 57 | $notification.post(title, subtitle, mation); 58 | $done(); 59 | } 60 | } 61 | ); 62 | 63 | -------------------------------------------------------------------------------- /Meeta/Surge/Scripting/mlottery.js: -------------------------------------------------------------------------------- 1 | /* 2 | 彩票开奖助手(Made by Meeta) 3 | 4 | 5 | cron "* * 22 * * *" script-path=https://meetagit.github.io/MeetaRules/Surge/Scripting/mlottery.js 6 | 7 | 向通知中心发送通知,Surge iOS 上需开启通知总开关; 8 | 欢迎大家使用,要中大奖哟! 9 | 欢迎关注TG频道:@meetashare 10 | */ 11 | 12 | 13 | const k = ["qg1.ashx?lotCode=10039","qg1.ashx?lotCode=10040","qg2.ashx?lotCode=10041"]; 14 | 15 | 16 | for(var i=0;i Apple News 2 | DOMAIN,gspe1-ssl.ls.apple.com,Apple News 3 | DOMAIN,gspe1-ssl.ls.apple.com,Apple News 4 | USER-AGENT,AppleNews*,Apple News 5 | DOMAIN,gateway.icloud.com,Apple News 6 | DOMAIN-SUFFIX,apple.news,Apple News 7 | DOMAIN,news-client.apple.com,Apple News 8 | DOMAIN,news-edge.apple.com,Apple News 9 | DOMAIN,news-events.apple.com,Apple News 10 | DOMAIN,apple.comscoreresearch.com,Apple News 11 | -------------------------------------------------------------------------------- /NavePnow/Filter/QuantumultX/Facebook.list: -------------------------------------------------------------------------------- 1 | HOST-KEYWORD, FACEBOOK, Facebook 2 | HOST-SUFFIX, FBCDN.NET, Facebook 3 | -------------------------------------------------------------------------------- /NavePnow/Filter/QuantumultX/Instagram.list: -------------------------------------------------------------------------------- 1 | # > Instagram 2 | host-keyword, instagram, Instagram 3 | host-keyword, cdninstagram, Instagram 4 | HOST-SUFFIX, CDNINSTAGRAM.COM, Instagram 5 | HOST-SUFFIX, INSTAGRAM.COM, Instagram 6 | -------------------------------------------------------------------------------- /NavePnow/Filter/QuantumultX/Twitter.list: -------------------------------------------------------------------------------- 1 | # > Twitter 2 | DOMAIN-SUFFIX,pscp.tv, Twitter 3 | DOMAIN-SUFFIX,periscope.tv, Twitter 4 | DOMAIN-SUFFIX,t.co, Twitter 5 | DOMAIN-SUFFIX,twimg.co, Twitter 6 | DOMAIN-SUFFIX,twimg.com, Twitter 7 | DOMAIN-SUFFIX,twitpic.com, Twitter 8 | DOMAIN-SUFFIX,vine.co, Twitter 9 | DOMAIN-KEYWORD,twitter, Twitter 10 | -------------------------------------------------------------------------------- /NavePnow/Filter/Surge/Apple_News.list: -------------------------------------------------------------------------------- 1 | # > Apple News 2 | DOMAIN,gspe1-ssl.ls.apple.com,Apple News 3 | DOMAIN,gspe1-ssl.ls.apple.com,Apple News 4 | USER-AGENT,AppleNews*,Apple News 5 | DOMAIN,gateway.icloud.com,Apple News 6 | DOMAIN-SUFFIX,apple.news,Apple News 7 | DOMAIN,news-client.apple.com,Apple News 8 | DOMAIN,news-edge.apple.com,Apple News 9 | DOMAIN,news-events.apple.com,Apple News 10 | DOMAIN,apple.comscoreresearch.com,Apple News 11 | -------------------------------------------------------------------------------- /NavePnow/Filter/Surge/Facebook.list: -------------------------------------------------------------------------------- 1 | DOMAIN-KEYWORD, FACEBOOK, Facebook 2 | DOMAIN-SUFFIX, FBCDN.NET, Facebook 3 | -------------------------------------------------------------------------------- /NavePnow/Filter/Surge/Instagram.list: -------------------------------------------------------------------------------- 1 | # > Instagram 2 | DOMAIN-KEYWORD, instagram, Instagram 3 | DOMAIN-KEYWORD, cdninstagram, Instagram 4 | DOMAIN-SUFFIX, CDNINSTAGRAM.COM, Instagram 5 | DOMAIN-SUFFIX, INSTAGRAM.COM, Instagram 6 | -------------------------------------------------------------------------------- /NavePnow/Filter/Surge/Twitter.list: -------------------------------------------------------------------------------- 1 | # > Twitter 2 | DOMAIN-SUFFIX,pscp.tv, Twitter 3 | DOMAIN-SUFFIX,periscope.tv, Twitter 4 | DOMAIN-SUFFIX,t.co, Twitter 5 | DOMAIN-SUFFIX,twimg.co, Twitter 6 | DOMAIN-SUFFIX,twimg.com, Twitter 7 | DOMAIN-SUFFIX,twitpic.com, Twitter 8 | DOMAIN-SUFFIX,vine.co, Twitter 9 | DOMAIN-KEYWORD,twitter, Twitter 10 | -------------------------------------------------------------------------------- /NavePnow/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Wang Yifan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /NavePnow/Scripts/filter_conversion.js: -------------------------------------------------------------------------------- 1 | //put your surge or quanx filter link here 2 | const url = 'https://raw.githubusercontent.com/Leped/Unlock/master/Unlock.list' 3 | 4 | async function handleRequest(request) { 5 | const init = { 6 | headers: { 7 | 'content-type': 'text;charset=UTF-8', 8 | }, 9 | } 10 | const response = await fetch(url, init) 11 | const results = await gatherResponse(response) 12 | return new Response(results, init) 13 | //return new Response(results) 14 | } 15 | addEventListener('fetch', event => { 16 | return event.respondWith(handleRequest(event.request)) 17 | }) 18 | 19 | async function gatherResponse(response) { 20 | var text = response.text() 21 | // put your conversion regex expression here 22 | var text_result = text.then(function (value) { 23 | 24 | value = value.replace(/host/g, "DOMAIN") 25 | value = value.replace(/keyword/g, "KEYWORD") 26 | //console.log(value) 27 | return value 28 | }); 29 | 30 | return text_result 31 | } 32 | -------------------------------------------------------------------------------- /NavePnow/Scripts/script_id.js: -------------------------------------------------------------------------------- 1 | //remote script url 2 | const url = 'https://raw.githubusercontent.com/langkhach270389/Scripting/master/Terminus.js' 3 | // id number 4 | const id = "1234567" 5 | async function handleRequest(request) { 6 | const init = { 7 | headers: { 8 | 'content-type': 'text;charset=UTF-8', 9 | }, 10 | } 11 | const response = await fetch(url, init) 12 | //const response = await fetch(url) 13 | const results = await gatherResponse(response) 14 | return new Response(results, init) 15 | //return new Response(results) 16 | } 17 | addEventListener('fetch', event => { 18 | return event.respondWith(handleRequest(event.request)) 19 | }) 20 | 21 | async function gatherResponse(response) { 22 | const body = await response.body 23 | const newStatus = response.status 24 | const headers = response.headers 25 | var text = response.text() 26 | var text_result = text.then(function(value) 27 | { 28 | 29 | //value = value.replace(/host/g, "DOMAIN") 30 | //value = value.replace(/keyword/g, "KEYWORD") 31 | value = "/** \n* @supported "+ id +"\n*/\n\n" + value 32 | /** 33 | * @supported FA9BF7EE1A24 34 | */ 35 | return value 36 | }); 37 | 38 | return text_result 39 | } 40 | 41 | -------------------------------------------------------------------------------- /NavePnow/Scripts/weibo/get_cookie_qx.js: -------------------------------------------------------------------------------- 1 | /* 2 | Weibo Super Talk Check in Get Cookie. 3 | Made by NavePnow 4 | The following URL check in once 5 | https: //weibo.com/p/:id/super_index 6 | 7 | [rewrite_local] 8 | https:\/\/weibo\.com\/p\/aj\/general\/button\?ajwvr=6&api=http:\/\/i\.huati\.weibo\.com\/aj\/super\/checkin url script-response-body get_cookie_qx.js 9 | 10 | MITM = weibo.com 11 | */ 12 | if ($request.headers['Cookie']) { 13 | var url = $request.url; 14 | var super_id = url.match(/id.*?(?=&loc)/) 15 | super_id = super_id[0].replace("id=", "") 16 | var cookie = $request.headers['Cookie']; 17 | //$notification.post("", super_id, super_cookie) 18 | var super_cookie = $prefs.setValueForKey(cookie, "super_cookie"); 19 | if(!super_cookie) 20 | { 21 | $notify("写入微博超话Cookie失败!", "超话id: " + super_id, "请重试") 22 | } 23 | else { 24 | $notify("写入微博超话Cookie成功🎉", "超话id: " + super_id, "您可以手动禁用此脚本") 25 | } 26 | } else { 27 | $notify("写入微博超话Cookie失败!", "超话id: " + super_id, "请退出账号, 重复步骤") 28 | } 29 | 30 | $done({}) -------------------------------------------------------------------------------- /NavePnow/Scripts/weibo/get_cookie_surge.js: -------------------------------------------------------------------------------- 1 | /* 2 | Weibo Super Talk Check in Get Cookie. 3 | Made by NavePnow 4 | The following URL check in once 5 | https: //weibo.com/p/:id/super_index 6 | 7 | [Script] 8 | http-request https:\/\/weibo\.com\/p\/aj\/general\/button\?ajwvr=6&api=http:\/\/i\.huati\.weibo\.com\/aj\/super\/checkin max-size=0,script-path=get_cookie.js 9 | 10 | MITM = weibo.com 11 | */ 12 | if ($request.headers['Cookie']) { 13 | var url = $request.url; 14 | var super_id = url.match(/id.*?(?=&loc)/) 15 | super_id = super_id[0].replace("id=", "") 16 | var cookie = $request.headers['Cookie']; 17 | //$notification.post("", super_id, super_cookie) 18 | var super_cookie = $persistentStore.write(cookie, "super_cookie"); 19 | if(!super_cookie) 20 | { 21 | $notification.post("写入微博超话Cookie失败!", "超话id: " + super_id, "请重试") 22 | } 23 | else { 24 | $notification.post("写入微博超话Cookie成功🎉", "超话id: " + super_id, "您可以手动禁用此脚本") 25 | } 26 | } else { 27 | $notification.post("写入微博超话Cookie失败!", "超话id: " + super_id, "请退出账号, 重复步骤") 28 | } 29 | 30 | $done({}) -------------------------------------------------------------------------------- /NavePnow/Scripts/zubajie.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj = { 3 | "result": { 4 | "first": 0, 5 | "page": 0, 6 | "pageSize": 10, 7 | "rows": [], 8 | "total": 0 9 | }, 10 | "status": 1 11 | } 12 | $done({body: JSON.stringify(obj)}); 13 | -------------------------------------------------------------------------------- /NeteaseMusic.list: -------------------------------------------------------------------------------- 1 | user-agent, NeteaseMusic*, 🎸解锁网易云音乐 2 | user-agent, NeteaseMusic**, 🎸解锁网易云音乐 3 | user-agent, 网易云音乐*, 🎸解锁网易云音乐 4 | user-agent, 网易云音乐**, 🎸解锁网易云音乐 5 | user-agent, %E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90*, 🎸解锁网易云音乐 6 | user-agent, %E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90**, 🎸解锁网易云音乐 7 | 8 | host-suffix,music.163.com,🎸解锁网易云音乐 9 | host-suffix,interface.music.163.com,🎸解锁网易云音乐 10 | host-suffix,interface3.music.163.com,🎸解锁网易云音乐 11 | host-suffix,apm.music.163.com,🎸解锁网易云音乐 12 | host-suffix,apm3.music.163.com,🎸解锁网易云音乐 13 | IP-CIDR,59.111.181.38/32,🎸解锁网易云音乐 14 | IP-CIDR,59.111.181.60/32,🎸解锁网易云音乐 15 | IP-CIDR,223.252.199.66/32,🎸解锁网易云音乐 16 | IP-CIDR,223.252.199.67/32,🎸解锁网易云音乐 17 | IP-CIDR,59.111.160.195/32,🎸解锁网易云音乐 18 | IP-CIDR,59.111.160.197/32,🎸解锁网易云音乐 19 | IP-CIDR,47.100.127.239/32,🎸解锁网易云音乐 20 | IP-CIDR,118.24.63.156/32,🎸解锁网易云音乐 21 | IP-CIDR,193.112.159.225/32,🎸解锁网易云音乐 22 | IP-CIDR,39.105.63.80/32,🎸解锁网易云音乐 23 | IP-CIDR,59.111.181.35/32,🎸解锁网易云音乐 24 | IP-CIDR,115.236.118.33/32,🎸解锁网易云音乐 25 | IP-CIDR,115.236.121.1/32,🎸解锁网易云音乐 26 | IP-CIDR,112.13.122.1/32,🎸解锁网易云音乐 27 | IP-CIDR,112.13.119.17/32,🎸解锁网易云音乐 28 | IP-CIDR,103.126.92.132/32,🎸解锁网易云音乐 29 | IP-CIDR,103.126.92.13/32,🎸解锁网易云音乐 30 | IP-CIDR,45.254.48.1/32,🎸解锁网易云音乐 -------------------------------------------------------------------------------- /Neurogram-R/README.md: -------------------------------------------------------------------------------- 1 | # Surge -------------------------------------------------------------------------------- /Neurogram-R/module/Q-Search.sgmodule: -------------------------------------------------------------------------------- 1 | #!name=Q-Search 2 | #!desc=Safari Search Add-ons by Neurogram 3 | 4 | 5 | [URL Rewrite] 6 | ^https:\/\/duckduckgo.com\/\?q=bd\+([^&]+).+ https://www.baidu.com/s?wd=$1 302 7 | ^https:\/\/duckduckgo.com\/\?q=db\+([^&]+).+ https://m.douban.com/search/?query=$1 302 8 | ^https:\/\/duckduckgo.com\/\?q=gh\+([^&]+).+ https://github.com/search?q=$1 302 9 | ^https:\/\/duckduckgo.com\/\?q=gm\+([^&]+).+ https://www.google.com/search?&tbm=isch&q=$1 302 10 | ^https:\/\/duckduckgo.com\/\?q=yd\+([^&]+).+ http://dict.youdao.com/search?q=$1 302 11 | ^https:\/\/duckduckgo.com\/\?q=ddg\+([^&]+).+ https://duckduckgo.com/?ia=about&q=$1 302 12 | ^https:\/\/duckduckgo.com\/\?q=([^&]+).+ https://www.google.com/search?q=$1 302 13 | 14 | 15 | [MITM] 16 | hostname = %APPEND% duckduckgo.com 17 | -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/ColorWeather.js: -------------------------------------------------------------------------------- 1 | /* 2 | CaiYun Weather (ColorWeather) unlock Vip 3 | 4 | QX 1.0.0: 5 | ^https:\/\/biz\.caiyunapp\.com\/v2\/user\?app_name\=weather url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/ColorWeather.js 6 | 7 | MitM = biz.caiyunapp.com 8 | */ 9 | 10 | var _0xe0e0=["\x62\x6F\x64\x79","\x70\x61\x72\x73\x65","\x78\x79\x5F\x76\x69\x70\x5F\x65\x78\x70\x69\x72\x65","\x72\x65\x73\x75\x6C\x74","\x69\x73\x5F\x76\x69\x70","\x76\x69\x70\x5F\x65\x78\x70\x69\x72\x65\x64\x5F\x61\x74","\x69\x73\x5F\x78\x79\x5F\x76\x69\x70","\x73\x74\x72\x69\x6E\x67\x69\x66\x79"];var body=$response[_0xe0e0[0]];var obj=JSON[_0xe0e0[1]](body);obj[_0xe0e0[3]][_0xe0e0[2]]= 4096483190;obj[_0xe0e0[3]][_0xe0e0[4]]= true;obj[_0xe0e0[3]][_0xe0e0[5]]= 4096483190;obj[_0xe0e0[3]][_0xe0e0[6]]= true;body= JSON[_0xe0e0[7]](obj);$done(body) -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/DiDaQingDan.js: -------------------------------------------------------------------------------- 1 | /* 2 | TickTick (Tick list) unlock pro 3 | QX: 4 | ^https:\/\/(ticktick|dida365)\.com\/api\/v2\/user\/status url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/DiDaQingDan.js 5 | 6 | hostname = dida365.com, ticktick.com 7 | */ 8 | 9 | var _0xf36b=["\x62\x6F\x64\x79","\x70\x61\x72\x73\x65","\x70\x72\x6F\x45\x6E\x64\x44\x61\x74\x65","\x32\x30\x39\x39\x2D\x30\x31\x2D\x30\x31\x54\x30\x30\x3A\x30\x30\x3A\x30\x30\x2E\x30\x30\x30\x2B\x30\x30\x30\x30","\x6E\x65\x65\x64\x53\x75\x62\x73\x63\x72\x69\x62\x65","\x70\x72\x6F","\x73\x74\x72\x69\x6E\x67\x69\x66\x79"];var body=$response[_0xf36b[0]];var obj=JSON[_0xf36b[1]](body);obj[_0xf36b[2]]= _0xf36b[3];obj[_0xf36b[4]]= false;obj[_0xf36b[5]]= true;body= JSON[_0xf36b[6]](obj);$done(body) 10 | -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/VSCO: -------------------------------------------------------------------------------- 1 | {"user_subscription":{"expires_on_sec":1655536094,"is_intro_period":false,"expired":false,"payment_type":2,"user_id":54624336,"source":1,"is_trial_period":true,"starts_on_sec":1560831070,"intro_offer_consumed":true,"is_active":true,"canceled_at_sec":null,"auto_renew":true,"is_in_grace_period":false,"last_verified_sec":1560831070,"invalid_reason":null,"subscription_code":"VSCOANNUAL"}} -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/Wechat.js: -------------------------------------------------------------------------------- 1 | /* 2 | Remove the WeChat public account bottom ad 3 | 4 | QX: 5 | ^https?:\/\/mp\.weixin\.qq\.com\/mp\/getappmsgad url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/Wechat.js 6 | 7 | Surge4: 8 | http-response ^https?:\/\/mp\.weixin\.qq\.com\/mp\/getappmsgad requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/Wechat.js 9 | 10 | Surge & QX MITM = mp.weixin.qq.com, 11 | */ 12 | 13 | var obj = JSON.parse($response.body); 14 | obj.advertisement_num = 0; 15 | obj.advertisement_info = []; 16 | delete obj.appid; 17 | $done({body: JSON.stringify(obj)}); 18 | 19 | //by Choler 20 | -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/Zymh.js: -------------------------------------------------------------------------------- 1 | /* 2 | 知音漫客 unlock vip 3 | 4 | QX: 5 | ^https://getuserinfo-globalapi.zymk.cn/app_api/v5/(getuserinfo|coin_account|getuserinfo_ticket|getcomicinfo)/ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/Zymh.js 6 | 7 | Surge4: 8 | http-response ^https://getuserinfo-globalapi.zymk.cn/app_api/v5/(getuserinfo|coin_account|getuserinfo_ticket|getcomicinfo)/ requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/Zymh.js 9 | 10 | Surge & QX MITM = getuserinfo-globalapi.zymk.cn 11 | */ 12 | 13 | let url = $request.url; 14 | let body = JSON.parse($response.body); 15 | 16 | let user = '/app_api/v5/getuserinfo/'; 17 | let coin = '/app_api/v5/coin_account/'; 18 | let ticket = '/app_api/v5/getuserinfo_ticket/'; 19 | let free = '/app_api/v5/getcomicinfo/'; 20 | 21 | if (url.indexOf(user) != -1) { 22 | body.data.coins = 6666; 23 | body.data.isvip = 1; 24 | body.data.recommend = 6666; 25 | body.data.Cticket = 6666; 26 | body.data.Cgold = 6666; 27 | } 28 | else if (url.indexOf(coin) != -1) { 29 | body.data.coins = 6666; 30 | body.data.golds = 6666; 31 | } 32 | else if (url.indexOf(ticket) != -1) { 33 | body.data.Cticket = 6666; 34 | } 35 | 36 | else if (url.indexOf(free) != -1) { 37 | body.data.price = 0; 38 | body.data.download_price = 0; 39 | } 40 | 41 | body = JSON.stringify(body); 42 | 43 | $done({body}); 44 | 45 | //by mieqq -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/bdmh.js: -------------------------------------------------------------------------------- 1 | /* 2 | 蜜桃漫画 unlock vip 3 | 4 | QX: 5 | ^https?:\/\/(bd|bdapp|mitaoapp)\.(4008109966|yeduapp)\.(net|com)\/\/index\.php\/api\/User\/userLogin url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bdmh.js 6 | 7 | Surge4: 8 | http-response ^https?:\/\/(bd|bdapp|mitaoapp)\.(4008109966|yeduapp)\.(net|com)\/\/index\.php\/api\/User\/userLogin requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bdmh.js 9 | */ 10 | 11 | var body = $response.body; 12 | var obj = JSON.parse(body); 13 | 14 | obj.data.user_info.isvip = "1"; 15 | obj.data.user_info.is_pay = "1"; 16 | obj.data.user_info.egold = "66666"; 17 | obj.data.user_info.vip_days = "66666"; 18 | obj.data.user_info.vip_start_time = "1502969604"; 19 | obj.data.user_info.vip_overtime = "2066-06-06 06:00:00"; 20 | obj.data.user_info.name = "脚本禁止牟利,TG频道@NobyDa"; 21 | obj.data.user_info.avatar = "https://avatars3.githubusercontent.com/u/53217160?s=400&v=4"; 22 | 23 | body = JSON.stringify(obj); 24 | $done({body}); -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/bilibiliReply.js: -------------------------------------------------------------------------------- 1 | /* 2 | ^https://app.bilibili.com/x/resource/show/tab\?access_key url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliTab.js 3 | ^https://app.bilibili.com/x/v2/feed/index\?access_key url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliFeed.js 4 | ^https://app.bilibili.com/x/v2/account/mine\?access_key url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliAccount.js 5 | ^https://app.bilibili.com/x/v2/view\?access_key url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliViewRelate.js 6 | ^https://app.bilibili.com/x/v2/rank url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliRank.js 7 | ^https://api.bilibili.com/x/v2/reply/main\?access_key url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliReply.js 8 | ^https://app.bilibili.com/x/v2/show/popular/index\?access_key url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliHot.js 9 | 10 | mitm = ap*.bilibili.com 11 | 12 | by onewayticket255 13 | */ 14 | let body = $response.body 15 | body=JSON.parse(body) 16 | delete body['data']['notice'] 17 | body=JSON.stringify(body) 18 | $done({body}) 19 | -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/bilibiliTab.js: -------------------------------------------------------------------------------- 1 | /* 2 | bilibili home page module customization whitelist. by onewayticket255 3 | 4 | QX: 5 | ^https://app.bilibili.com/x/resource/show/tab\?access_key url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliTab.js 6 | 7 | Surge4: 8 | http-response ^https://app.bilibili.com/x/resource/show/tab\?access_key requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliTab.js 9 | 10 | Surge & QX MITM = app.bilibili.com 11 | */ 12 | 13 | let whitelist=['追番','推荐','直播','热门','影视'] 14 | 15 | let body = $response.body 16 | body=JSON.parse(body) 17 | 18 | body['data']['tab'].forEach((element, index) => { 19 | if(!(whitelist.includes(element['name']))) body['data']['tab'].splice(index,1) 20 | }); 21 | 22 | body['data']['bottom'].forEach((element, index)=> { 23 | if(element['pos']==4){ 24 | body['data']['bottom'].splice(index,1) 25 | } 26 | }) 27 | 28 | body=JSON.stringify(body) 29 | $done({body}) -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/bilifj.js: -------------------------------------------------------------------------------- 1 | /* 2 | bilibili fan drama open 1080P+ 3 | 4 | QX: 5 | ^https?:\/\/api\.bilibili\.com\/pgc\/player\/api\/playurl url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilifj.js 6 | 7 | Surge4: 8 | http-response ^https?:\/\/api\.bilibili\.com\/pgc\/player\/api\/playurl requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilifj.js 9 | 10 | Surge & QX MITM = api.bilibili.com 11 | */ 12 | 13 | var body = $response.body; 14 | var url = $request.url; 15 | 16 | const path1 = '/pgc/player/api/playurl'; 17 | 18 | if (url.indexOf(path1) != -1) { 19 | let obj = JSON.parse(body); 20 | obj["quality"] = obj["accept_quality"][0]; 21 | body = JSON.stringify(obj); 22 | } 23 | 24 | $done({body}); -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/dapian.js: -------------------------------------------------------------------------------- 1 | /* 2 | 大片 unlock vip 3 | 4 | QX: 5 | ^https?:\/\/api\.vnision\.com\/v1\/(users\/|banners) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/dapian.js 6 | 7 | Surge4: 8 | http-response ^https?:\/\/api\.vnision\.com\/v1\/(users\/|banners) requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/dapian.js 9 | 10 | Surge & QX MITM = api.vnision.com 11 | */ 12 | 13 | var body = $response.body; 14 | var url = $request.url; 15 | 16 | const vip = '/v1/users/'; 17 | const ad = '/v1/banners'; 18 | 19 | if (url.indexOf(vip) != -1) { 20 | let obj = JSON.parse(body); 21 | obj.user.is_member = 1; 22 | body = JSON.stringify(obj); 23 | } 24 | 25 | if (url.indexOf(ad) != -1) { 26 | let obj = JSON.parse(body); 27 | delete obj.banners 28 | body = JSON.stringify(obj); 29 | } 30 | 31 | $done({body}); -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/kmh.js: -------------------------------------------------------------------------------- 1 | /* 2 | 看漫画极速版 unlock vip, currently off the shelf 3 | 4 | QX: 5 | ^https?:\/\/getuserinfo\.321mh\.com\/app_api\/v5\/getuserinfo\/ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/kmh.js 6 | 7 | Surge4: 8 | http-response ^https?:\/\/getuserinfo\.321mh\.com\/app_api\/v5\/getuserinfo\/ requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/kmh.js 9 | 10 | Surge & QX MITM = getuserinfo.321mh.com 11 | */ 12 | 13 | var body = $response.body; 14 | var url = $request.url; 15 | const path = "/app_api/v5/getuserinfo/"; 16 | let obj = JSON.parse(body); 17 | if (url.indexOf(path) != -1) { 18 | obj["isvip"] = "1"; 19 | body = JSON.stringify(obj); 20 | } 21 | $done({body}); 22 | 23 | // From HoGer 24 | -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/vsco.js: -------------------------------------------------------------------------------- 1 | /* 2 | VSCO unlock vip 3 | 4 | QX: 5 | ^https?:\/\/vsco\.co\/api\/subscriptions\/2.1\/user-subscriptions\/ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/vsco.js 6 | 7 | Surge4: 8 | http-response ^https?:\/\/vsco\.co\/api\/subscriptions\/2.1\/user-subscriptions\/ requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/vsco.js 9 | 10 | Surge & QX MITM = vsco.co 11 | */ 12 | 13 | var body = $response.body; 14 | var url = $request.url; 15 | 16 | const path1 = '/api/subscriptions/2.1/user-subscriptions/'; 17 | 18 | let obj = JSON.parse(body); 19 | 20 | if (url.indexOf(path1) != -1) { 21 | obj.user_subscription["expires_on_sec"] = 1655536094; 22 | obj.user_subscription["expired"] = false; 23 | obj.user_subscription["payment_type"] = 2; 24 | obj.user_subscription["is_trial_period"] = true; 25 | obj.user_subscription["starts_on_sec"] = 1560831070; 26 | obj.user_subscription["is_active"] = true; 27 | obj.user_subscription["auto_renew"] = true; 28 | obj.user_subscription["last_verified_sec"] = 1560831070; 29 | obj.user_subscription["subscription_code"] = "VSCOANNUAL"; 30 | obj.user_subscription["user_id"] = 54624336; 31 | obj.user_subscription["source"] = 1; 32 | body = JSON.stringify(obj); 33 | } 34 | 35 | $done({body}); 36 | 37 | // 自用 转载需注明出处 38 | // TG频道: https://t.me/NobyDa -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/wnyd.js: -------------------------------------------------------------------------------- 1 | /* 2 | Netease snail reading unlock vip 3 | 4 | QX: 5 | ^https?:\/\/p\.du\.163\.com\/gain\/readtime\/info\.json url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/wnyd.js 6 | 7 | Surge4: 8 | http-response ^https?:\/\/p\.du\.163\.com\/gain\/readtime\/info\.json requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/wnyd.js 9 | 10 | Surge & QX MITM = p.du.163.com 11 | */ 12 | 13 | var body = $response.body; 14 | var obj = JSON.parse(body); 15 | 16 | obj.tradeEndTime = 1679685290000; 17 | body = JSON.stringify(obj); 18 | $done({body}); 19 | 20 | //By yxiaocai & JO2EY 21 | -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/wykaola.js: -------------------------------------------------------------------------------- 1 | /* 2 | Netease koala removes ads 3 | 4 | QX: 5 | ^https://sp\.kaola\.com/api/openad$ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/wykaola.js 6 | 7 | Surge4: 8 | http-response ^https://sp\.kaola\.com/api/openad$ requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/wykaola.js 9 | 10 | Surge & QX MITM = sp.kaola.com 11 | */ 12 | 13 | var obj = JSON.parse($response.body); 14 | obj = null; 15 | $done({body: JSON.stringify(obj)}); 16 | 17 | //by Choler -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/xjsp.js: -------------------------------------------------------------------------------- 1 | /* 2 | Banana video unlock vip 3 | app download link : http://tinyurl.com/y57j6hjg 4 | 5 | QX 1.0.0: 6 | ^https?:\/\/.*\.(fuli|xiang(jiao|xiang))apps\.com\/(ucp\/index|getGlobalData|.+\/reqplay\/) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/xjsp.js 7 | 8 | Surge 4.0: 9 | http-response https?:\/\/.*\.(fuli|xiang(jiao|xiang))apps\.com\/(ucp\/index|getGlobalData|.+\/reqplay\/) requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/xjsp.js 10 | 11 | Surge & QX MITM = ios.fuliapps.com, apple.fuliapps.com, ios.xiangjiaoapps.com, apple.xiangjiaoapps.com, *.xiangxiangapps.com 12 | */ 13 | 14 | var obj = JSON.parse($response.body); 15 | if ($request.url.indexOf("/ucp/index") != -1){ 16 | obj.data.uinfo.down_daily_remainders = "666"; 17 | obj.data.uinfo.play_daily_remainders = "666"; 18 | obj.data.uinfo["next_upgrade_need"] = "0"; 19 | obj.data.user.isvip = "1"; 20 | obj.data.user.gicon = "V5"; 21 | obj.data.user.gid = "5"; 22 | } 23 | if ($request.url.indexOf("/getGlobalData") != -1){ 24 | obj.data.app_launch_times_adshow = "0"; 25 | obj.data.adgroups = ""; 26 | obj.data.iOS_adgroups =""; 27 | } 28 | if ($request.url.indexOf("/reqplay/") != -1){ 29 | obj.retcode = "0"; 30 | if(obj.data.hasOwnProperty("httpurl_preview")){ 31 | var playurl = obj.data["httpurl_preview"]; 32 | obj.data["httpurl"] = playurl; 33 | }; 34 | } 35 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/xxys.js: -------------------------------------------------------------------------------- 1 | /* 2 | XiaoXiaoYingShi unlock Vip 3 | QX: 4 | https:\/\/.*\.xiaoxiao.*\.com\/(vod\/reqplay\/|ucp/index|getGlobalData) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/xxys.js 5 | Surge: 6 | http-response https:\/\/.*\.xiaoxiao.*\.com\/(vod\/reqplay\/|ucp/index|getGlobalData) requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/xxys.js 7 | 8 | MITM = *.xiaoxiao*.com 9 | */ 10 | 11 | const path1 = "/ucp/index"; 12 | const path2 = "/vod/reqplay/"; 13 | const ad = 'getGlobalData'; 14 | let obj = JSON.parse($response.body); 15 | 16 | if ($request.url.indexOf(path1) != -1){ 17 | obj.data.uinfo["down_daily_remainders"] = "666"; 18 | obj.data.uinfo["play_daily_remainders"] = "666"; 19 | obj.data.uinfo["curr_group"] = "5"; 20 | obj.data.user["isvip"] = "1"; 21 | obj.data.user["goldcoin"] = "666"; 22 | } 23 | if ($request.url.indexOf(path2) != -1){ 24 | obj.retcode = "0"; 25 | obj.data.lastplayindex = "1"; 26 | if(obj.data.hasOwnProperty("httpurl_preview")){ 27 | var playurl = obj.data["httpurl_preview"]; 28 | obj.data["httpurl"] = playurl; 29 | }; 30 | } 31 | 32 | if ($request.url.indexOf(ad) != -1) { 33 | delete obj.data.adrows 34 | delete obj.data.adgroups 35 | } 36 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /NobyDa/QuantumultX/Js_local_WorkingCopy_Cookie.conf: -------------------------------------------------------------------------------- 1 | # This local subscription is used to resolve the cookie acquisition of QX task scripts, only available for QX 1.0.5 (188+) and above, you can disable it manually after use to avoid meaningless MITM. 2 | 3 | hostname = *.iqiyi.com, www.52pojie.cn, c.tieba.baidu.com, api.m.jd.com, manga.bilibili.com, 4 | 5 | # iQIYI Get cookie 6 | https?:\/\/.*\.iqiyi\.com\/.*authcookie= url script-request-header NobyDa/iQIYI-DailyBonus/iQIYI.js 7 | 8 | # 52pojie Get cookie 9 | https:\/\/www\.52pojie\.cn\/home\.php\?mod=space url script-request-header NobyDa/52pojie-DailyBonus/52pojie.js 10 | 11 | # Tieba Get cookie 12 | https?:\/\/c\.tieba\.baidu\.com\/c\/s\/login url script-request-header NobyDa/BDTieBa-DailyBonus/TieBa.js 13 | 14 | # JingDong Get cookie 15 | https:\/\/api\.m\.jd\.com\/client\.action.*functionId=signBean url script-request-header NobyDa/JD-DailyBonus/JD_DailyBonus.js 16 | 17 | # Bilibili manga Get cookie 18 | https:\/\/manga\.bilibili\.com\/.*\.User\/GetWallet url script-request-header NobyDa/Bilibili-DailyBonus/Manga.js -------------------------------------------------------------------------------- /NobyDa/Surge/Download.list: -------------------------------------------------------------------------------- 1 | # Mac Download 2 | PROCESS-NAME,aria2c 3 | PROCESS-NAME,fdm 4 | PROCESS-NAME,Folx 5 | PROCESS-NAME,NetTransport 6 | PROCESS-NAME,Thunder 7 | PROCESS-NAME,Transmission 8 | PROCESS-NAME,uTorrent 9 | PROCESS-NAME,WebTorrent 10 | PROCESS-NAME,WebTorrent Helper 11 | PROCESS-NAME,DownloadService 12 | PROCESS-NAME,Weiyun 13 | 14 | # bt 15 | DOMAIN-KEYWORD,aria2 16 | DOMAIN-KEYWORD,xunlei 17 | DOMAIN-KEYWORD,yunpan 18 | DOMAIN-KEYWORD,Thunder 19 | DOMAIN-KEYWORD,XLLiveUD 20 | URL-REGEX,(torrent|announce.php\?passkey=|tracker|BitTorrent|bt_key|ed2k|find_node|get_peers|info_hash|magnet:|peer_id=) 21 | -------------------------------------------------------------------------------- /NobyDa/Surge/JS/BaiduCloud.js: -------------------------------------------------------------------------------- 1 | /* 2 | Baidu netdisc unlocks online video play speed. 3 | 4 | Surge4.0: 5 | http-response https:\/\/pan\.baidu\.com\/rest\/2\.0\/membership\/user requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/BaiduCloud.js 6 | 7 | QX1.0.0: 8 | https:\/\/pan\.baidu\.com\/rest\/2\.0\/membership\/user url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/BaiduCloud.js 9 | 10 | MITM = pan.baidu.com 11 | */ 12 | 13 | let obj = JSON.parse($response.body); 14 | obj = { 15 |  "product_infos": [{ 16 |    "product_id": "5310897792128633390", 17 |    "start_time": 1417260485, 18 |    "end_time": 2147483648, 19 |    "buy_time": "1417260485", 20 |    "cluster": "offlinedl", 21 |    "detail_cluster": "offlinedl", 22 |    "product_name": "gz_telecom_exp" 23 | }, { 24 |    "product_name": "svip2_nd", 25 |    "product_description": "超级会员", 26 |    "function_num": 0, 27 |    "start_time": 1553702399, 28 |    "buy_description": "", 29 |    "buy_time": 0, 30 |    "product_id": "1", 31 |    "auto_upgrade_to_svip": 0, 32 |    "end_time": 1672502399, 33 |    "cluster": "vip", 34 |    "detail_cluster": "svip", 35 |    "status": 0 36 | }], 37 |  "currenttime": 1573473597, 38 |  "reminder": { 39 |    "reminderWithContent": [], 40 |    "advertiseContent": [] 41 | }, 42 |  "request_id": 7501873289383874371 43 | }; 44 | $done({body: JSON.stringify(obj)}); 45 | 46 | //Key data from thor filter -------------------------------------------------------------------------------- /NobyDa/Surge/JS/CamScanner.js: -------------------------------------------------------------------------------- 1 | /* 2 | CamScanner unlocks pro, Cloud scanning is not available. 3 | 4 | QuanX 1.0.0: [rewrite_local] 5 | ^https:\/\/(api|api-cs)\.intsig\.net\/purchase\/cs\/query_property\? url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/CamScanner.js 6 | 7 | Quan: [REWRITE] 8 | https:\/\/(api|api-cs)\.intsig\.net\/purchase\/cs\/query_property\? url simple-response SFRUUC8xLjEgMjAwIE9LCgp7CiAiZGF0YSI6IHsKICAicHNubF92aXBfcHJvcGVydHkiOiB7CiAgICJleHBpcnkiOiAiMTY0MzczMTIwMCIKICB9CiB9Cn0= 9 | 10 | Surge4.0: [Script] 11 | http-response https:\/\/(api|api-cs)\.intsig\.net\/purchase\/cs\/query_property\? requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/CamScanner.js 12 | 13 | QX & Q & Surge Mitm = ap*.intsig.net, 14 | */ 15 | 16 | let obj = JSON.parse($response.body); 17 | obj = {"data":{"psnl_vip_property":{"expiry":"1643731200"}}}; 18 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/FaceApp.js: -------------------------------------------------------------------------------- 1 | /* 2 | [Script] 3 | http-response ^https?:\/\/api\.faceapp\.io(.*)\/api\/v.*\/auth\/user\/credentials requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/FaceApp.js 4 | 5 | [MITM] 6 | hostname = api.faceapp.io 7 | */ 8 | 9 | let headers = $response.headers; 10 | let obj = JSON.parse($response.body); 11 | 12 | obj = {"subscription_apple":{"subscription_exp":3042979200,"product_id":"p"}}; 13 | 14 | delete headers['X-FaceApp-ErrorCode']; 15 | 16 | $done({ 17 | body: JSON.stringify(obj), 18 | headers: headers, 19 | status: 200, 20 | }); 21 | -------------------------------------------------------------------------------- /NobyDa/Surge/JS/Kaola.js: -------------------------------------------------------------------------------- 1 | /* 2 | [Script] 3 | http-request ^https://sp\.kaola\.com/api/openad$ script-path=https://Choler.github.io/Surge/Script/Kaola.js 4 | 5 | [MITM] 6 | hostname = sp.kaola.com 7 | */ 8 | 9 | var data = { 10 | body: "{}", 11 | headers: { 12 | "Content-Type": "application/json" 13 | } 14 | }; 15 | $done({response: data}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/Keep.js: -------------------------------------------------------------------------------- 1 | /* 2 | Keep app unlock private lessons and action libraries. 3 | There is a bug in the QX app. This script may not work, but the surge does not have this problem. 4 | 5 | QX1.0.0: 6 | ^https:\/\/api\.gotokeep\.com\/(.+\/subject|.+\/dynamic) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Keep.js 7 | 8 | Surge4.0: 9 | http-response https:\/\/api\.gotokeep\.com\/(.+\/subject|.+\/dynamic) requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Keep.js 10 | 11 | MITM = api.gotokeep.com 12 | */ 13 | 14 | let url = $request.url; 15 | let body = $response.body; 16 | let obj = JSON.parse(body); 17 | 18 | const path1 = 'dynamic'; 19 | const path2 = 'subject'; 20 | 21 | if (url.indexOf(path1) != -1) { 22 | obj.data.permission.isMembership = true; 23 | obj.data.permission.membership = true; 24 | obj.data.permission.inSuit = true; 25 | } 26 | if (url.indexOf(path2) != -1) { 27 | for (var i = 0; i < obj.data.subjectInfos.length; i++) { 28 | obj.data.subjectInfos[i].needPay = false; 29 | } 30 | } 31 | body = JSON.stringify(obj); 32 | $done({body}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/KuWoMusicDownload.js: -------------------------------------------------------------------------------- 1 | /* 2 | KuWo music unlock lossless download, need to use with KuWo music VIP script. 3 | 4 | Surge4.0: 5 | http-request https?:\/\/musicpay\.kuwo.cn\/music\.pay\?uid=\d+ script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/KuWoMusicDownload.js 6 | #Vip script: 7 | http-response ^https?:\/\/vip1\.kuwo\.cn\/(vip\/v2\/user\/vip|vip\/spi/mservice) requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Kuwo.js 8 | 9 | QX1.0.0: 10 | ^https?:\/\/musicpay\.kuwo\.cn\/music\.pay\?uid\=\d+ url 302 http://musicpay.kuwo.cn/music.pay?uid=1 11 | #Vip script: 12 | ^https?:\/\/vip1\.kuwo\.cn\/(vip\/v2\/user\/vip|vip\/spi/mservice) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Kuwo.js 13 | 14 | Surge & QX MITM = vip1.kuwo.cn 15 | */ 16 | 17 | let url = $request.url.replace(/uid=\d+/g, "uid=1"); 18 | $done({url}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/Kuwo.js: -------------------------------------------------------------------------------- 1 | /* 2 | KuWo music unlock vip 3 | 4 | QX1.0.0: 5 | ^https?:\/\/vip1\.kuwo\.cn\/(vip\/v2\/user\/vip|vip\/spi/mservice) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Kuwo.js 6 | 7 | Surge4.0: 8 | http-response ^https?:\/\/vip1\.kuwo\.cn\/(vip\/v2\/user\/vip|vip\/spi/mservice) requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Kuwo.js 9 | http-request ^https?:\/\/musicpay\.kuwo.cn\/music\.pay\?uid=\d+ script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/KuWoMusicDownload.js 10 | 11 | MITM = vip1.kuwo.cn 12 | */ 13 | 14 | var body = $response.body; 15 | var url = $request.url; 16 | var obj = JSON.parse(body); 17 | 18 | const vip = '/vip/v2/user/vip'; 19 | const time = '/vip/spi/mservice'; 20 | 21 | if (url.indexOf(vip) != -1) { 22 | obj.data["isNewUser"] = "2"; 23 | obj.data["vipLuxuryExpire"] = "1835312949000"; 24 | obj.data["time"] = "1961170340993"; 25 | obj.data["isYearUser"] = "2"; 26 | obj.data["vipmExpire"] = "1835312949000"; 27 | obj.data["vipOverSeasExpire"] = "1835312949000"; 28 | obj.data["vipExpire"] = "1835312949000"; 29 | obj.data["vip3Expire"] = "1835312949000"; 30 | body = JSON.stringify(obj); 31 | } 32 | 33 | if (url.indexOf(time) != -1) { 34 | obj["isVIPMAutoPay"] = 2; 35 | obj["isVIPLuxAutoPay"] = 2; 36 | body = JSON.stringify(obj); 37 | } 38 | 39 | $done({body}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/NiChi.js: -------------------------------------------------------------------------------- 1 | /* 2 | NiChi app unlocks material 3 | Because QX limits the maximum rewrite size of the response body, So this script may not work under a certain version of QX. 4 | If your QX version is greater than 1.0.1 (130) then it is recommended to point to the local script path and enable AlwaysOn. 5 | 6 | Surge4.0: 7 | http-response https?:\/\/mp\.bybutter\.com\/mood\/(official-templates|privileges) requires-body=1,max-size=524288,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/NiChi.js 8 | 9 | QX 1.0.0: 10 | ^https?:\/\/mp\.bybutter\.com\/mood\/(official-templates|privileges) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/NiChi.js 11 | 12 | Surge & QX Mitm = mp.bybutter.com 13 | */ 14 | 15 | body = $response.body.replace(/preview/g, "free").replace(/view/g, "unlimited").replace(/true/g, "false"); 16 | $done({body}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/PicsArt.js: -------------------------------------------------------------------------------- 1 | /* 2 | PicsArt app unlocks pro 3 | 4 | Surge4.0: 5 | http-response https:\/\/api\.(picsart|meiease)\.c(n|om)\/users\/show\/me\.json requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/PicsArt.js 6 | 7 | QX1.0.0 8 | ^https:\/\/api\.(picsart|meiease)\.c(n|om)\/users\/show\/me\.json url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/PicsArt.js 9 | 10 | Surge & QX Mitm = api.picsart.c*, api.meiease.c* 11 | */ 12 | 13 | let obj = JSON.parse($response.body); 14 | obj.subscription.granted = "true"; 15 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/QQNews.js: -------------------------------------------------------------------------------- 1 | /* 2 | [Script] 3 | http-response https://r\.inews\.qq.com\/get(QQNewsUnreadList|RecommendList) requires-body=1,max-size=-1,script-path=https://Choler.github.io/Surge/Script/QQNews.js 4 | 5 | [MITM] 6 | hostname = r.inews.qq.com 7 | */ 8 | 9 | var obj = JSON.parse($response.body); 10 | delete obj.adList; 11 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/Splice.js: -------------------------------------------------------------------------------- 1 | /* 2 | Splice app unlock pro. 3 | 4 | Surge4.0: 5 | http-response https:\/\/splice\.oracle\.\w+\.com\/devices\/me requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Splice.js 6 | 7 | QX 1.0.0: 8 | https:\/\/splice\.oracle\.\w+\.com\/devices\/me url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Splice.js 9 | 10 | Surge & QX Mitm = splice.oracle.*.com 11 | */ 12 | 13 | var obj = JSON.parse($response.body); 14 | obj['will_renew_subscription'] = true; 15 | obj['is_subscribed'] = true; 16 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/Termius.js: -------------------------------------------------------------------------------- 1 | /* 2 | Termius unlocks local pro v 3 | (From the author @Maasea) 4 | 5 | Surge4: 6 | http-response https:\/\/api\.termius\.com\/api\/v3\/bulk\/account\/ requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Termius.js 7 | 8 | QX: 9 | https:\/\/api\.termius\.com\/api\/v3\/bulk\/account\/ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Termius.js 10 | 11 | Surge & QX MITM = api.termius.com 12 | */ 13 | 14 | let obj=JSON.parse($response.body) 15 | obj.account["pro_mode"] = true; 16 | obj.account["plan_type"] = "Premium"; 17 | obj.account["user_type"] = "Premium"; 18 | obj.account["current_period"]["until"] = "2099-10-10T03:27:34"; 19 | $done({body:JSON.stringify(obj)}) -------------------------------------------------------------------------------- /NobyDa/Surge/JS/Toutiao.js: -------------------------------------------------------------------------------- 1 | /* 2 | [Script] 3 | http-response ^https://[a-zA-Z]*\.snssdk\.com/api/news/feed/v88/ requires-body=1,max-size=-1,script-path=https://Choler.github.io/Surge/Script/Toutiao.js 4 | 5 | [MITM] 6 | hostname = *.snssdk.com 7 | */ 8 | 9 | var obj = JSON.parse($response.body); 10 | if (obj.data) { 11 | for (var i = obj.data.length - 1; i >= 0; i--) { 12 | if (obj.data[i].content.indexOf("raw_ad_data") > 0) { 13 | obj.data.splice(i, 1); 14 | } 15 | } 16 | } 17 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/VUE.js: -------------------------------------------------------------------------------- 1 | /* 2 | VUE Vlog app unlocks pro 3 | 4 | Surge4.0: 5 | http-response https:\/\/api\.vuevideo\.net\/api\/v1\/(users\/.+\/profile|subtitle\/prepare) requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/VUE.js 6 | 7 | QX 1.0.0: 8 | ^https:\/\/api\.vuevideo\.net\/api\/v1\/(users\/.+\/profile|subtitle\/prepare) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/VUE.js 9 | 10 | Surge & QX Mitm = api.vuevideo.net 11 | */ 12 | 13 | body = $response.body.replace(/\"isPremium\":false/, "\"isPremium\":true").replace(/\"valid\":false/, "\"valid\":true") 14 | $done({body}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/WeChat.js: -------------------------------------------------------------------------------- 1 | /* 2 | [Script] 3 | http-request ^https://mp\.weixin\.qq\.com/mp/getappmsgad script-path=https://Choler.github.io/Surge/Script/WeChat.js 4 | 5 | [MITM] 6 | hostname = mp.weixin.qq.com 7 | */ 8 | 9 | var data = { 10 | body: "{}", 11 | headers: { 12 | "Content-Type": "application/json" 13 | } 14 | }; 15 | $done({response: data}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/Wps.js: -------------------------------------------------------------------------------- 1 | /* 2 | 国区wps 3 | 4 | [Script] 5 | http-response ^https?:\/\/account\.wps\.cn\/api\/users requires-body=1,max-size=-1,script-path=https://raw.githubusercontent.com/eHpo1/Surge/master/Script/wps.js 6 | 7 | [MITM] 8 | hostname = account.wps.cn 9 | */ 10 | 11 | var obj = JSON.parse($response.body); 12 | 13 | var id = obj.userid; 14 | 15 | obj = { 16 | exp: 0, 17 | level: 3, 18 | privilege: [ 19 | { spid: "data_recover", times: 0, expire_time: 1631619709 }, 20 | { spid: "ocr", times: 0, expire_time: 1631619709 }, 21 | { spid: "pdf2doc", times: 0, expire_time: 1631619709 }, 22 | { spid: "pdf_merge", times: 0, expire_time: 1631619709 }, 23 | { spid: "pdf_sign", times: 0, expire_time: 1631619709 }, 24 | { spid: "pdf_split", times: 0, expire_time: 1631619709 } 25 | ], 26 | result: "ok", 27 | total_buy: 0, 28 | total_cost: -30, 29 | userid: 0000, 30 | vip: { 31 | name: "超级会员", 32 | has_ad: 0, 33 | memberid: 40, 34 | expire_time: 1631619709, 35 | enabled: [ 36 | { memberid: 40, name: "超级会员", expire_time: 1631619709 }, 37 | { memberid: 20, name: "WPS会员", expire_time: 1631619709 }, 38 | { memberid: 12, name: "稻壳会员", expire_time: 1631619709 } 39 | ] 40 | }, 41 | wealth: 0, 42 | expire_time: 1631619709 43 | }; 44 | 45 | obj.userid = id; 46 | 47 | $done({ body: JSON.stringify(obj) }); 48 | 49 | // by eHpo1 -------------------------------------------------------------------------------- /NobyDa/Surge/JS/YouTube.js: -------------------------------------------------------------------------------- 1 | /* 2 | [Script] 3 | http-request ^https://[\s\S]*\.googlevideo\.com/.*&(oad|ctier) script-path=https://Choler.github.io/Surge/Script/YouTube.js 4 | 5 | [MITM] 6 | hostname = *.googlevideo.com 7 | */ 8 | 9 | var data = { 10 | body: "{}", 11 | headers: { 12 | "Content-Type": "multipart/byteranges" 13 | } 14 | }; 15 | $done({response: data}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/Zhihu-ad-answer.js: -------------------------------------------------------------------------------- 1 | //regex: ^https://api.zhihu.com/.*/questions 2 | //Original author: onewayticket255 3 | 4 | let body = $response.body 5 | body=JSON.parse(body) 6 | if (body['ad_info']) { 7 | delete body['ad_info'] 8 | }; 9 | if (body.data) { 10 | body['data'].forEach((element, index)=> { 11 | if(element['author']['name']=="盐选推荐"){ 12 | body['data'].splice(index,1) 13 | } 14 | }) 15 | }; 16 | body=JSON.stringify(body) 17 | $done({body}) -------------------------------------------------------------------------------- /NobyDa/Surge/JS/Zhihu-ad-feed.js: -------------------------------------------------------------------------------- 1 | /* 2 | Remove Zhihu ads 3 | 4 | Regex: ^https://api.zhihu.com/moments\?(action|feed_type) 5 | */ 6 | 7 | let body = $response.body 8 | body=JSON.parse(body) 9 | body['data'].forEach((element, index)=>{ 10 | if(element.hasOwnProperty('ad')){ 11 | body['data'].splice(index,1) 12 | } 13 | }) 14 | body=JSON.stringify(body) 15 | $done({body}) 16 | 17 | // by onewayticket255 -------------------------------------------------------------------------------- /NobyDa/Surge/JS/Zhihu-ad-market.js: -------------------------------------------------------------------------------- 1 | /* 2 | Remove Zhihu ads 3 | 4 | Regex: ^https://api.zhihu.com/market/header 5 | */ 6 | 7 | let body = $response.body 8 | body=JSON.parse(body) 9 | body['sub_webs'].splice(0,1) 10 | body['sub_webs'].splice(1,1) 11 | body=JSON.stringify(body) 12 | $done({body}) 13 | 14 | // by onewayticket255 -------------------------------------------------------------------------------- /NobyDa/Surge/JS/Zhihu-ad-recommend.js: -------------------------------------------------------------------------------- 1 | /* 2 | Remove Zhihu ads 3 | 4 | Regex: ^https://api.zhihu.com/topstory/recommend 5 | */ 6 | 7 | let body = $response.body 8 | body=JSON.parse(body) 9 | body['data'].forEach((element, index)=> { 10 | if(element['card_type']=='slot_event_card'||element.hasOwnProperty('ad')){ 11 | body['data'].splice(index,1) 12 | } 13 | }) 14 | body=JSON.stringify(body) 15 | $done({body}) 16 | 17 | // by onewayticket255 -------------------------------------------------------------------------------- /NobyDa/Surge/JS/dqsj.js: -------------------------------------------------------------------------------- 1 | /* 2 | DaQianShiJie unlock 3 | 4 | Surge4: 5 | http-response ^https:\/\/api\.mvmtv\.com\/index\.php.*(c=user.*a=info|a=addr.*vid=.*) requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/dqsj.js 6 | 7 | QX: 8 | ^https:\/\/api\.mvmtv\.com\/index\.php.*(c=user.*a=info|a=addr.*vid=.*) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/dqsj.js 9 | 10 | Surge & QX MITM = api.mvmtv.com 11 | */ 12 | 13 | let obj = JSON.parse($response.body); 14 | let url = $request.url; 15 | const play = 'vid='; 16 | const vip = 'c=user'; 17 | 18 | if (url.indexOf(vip) != -1) { 19 | obj.data["is_expire"] = 5; 20 | } else if (url.indexOf(play) != -1) { 21 | let playurl = obj.data.play[0].mp4 22 | obj.data.play[0].sd = playurl; 23 | obj.data.play[0].fhd = playurl; 24 | obj.data.play[0].hd = playurl; 25 | } 26 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/gyroscope.js: -------------------------------------------------------------------------------- 1 | /* 2 | Gyroscope unlock pro (Script author: @Maasea ) 3 | Surge: 4 | http-response ^https:\/\/api\.gyrosco\.pe\/v1\/account\/$ requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/gyroscope.js 5 | 6 | QuantumultX: 7 | ^https:\/\/api\.gyrosco\.pe\/v1\/account\/$ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/gyroscope.js 8 | 9 | QX & Surge MITM = api.gyrosco.pe 10 | */ 11 | 12 | let obj = JSON.parse($response.body); 13 | obj.user["active_until_time"] = "2099-01-01T00:00:00Z"; 14 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/jibjab.js: -------------------------------------------------------------------------------- 1 | /* 2 | JibJab unlock 3 | 4 | Surge4: 5 | http-response https:\/\/origin-prod-phoenix\.jibjab\.com\/v1\/user requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/jibjab.js 6 | 7 | QX: 8 | https:\/\/origin-prod-phoenix\.jibjab\.com\/v1\/user url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/jibjab.js 9 | 10 | Surge & QX MITM = origin-prod-phoenix.jibjab.com 11 | */ 12 | 13 | let obj = JSON.parse($response.body); 14 | obj.data.attributes["is-paid"] = true; 15 | obj.data.attributes["email"] = "禁止牟利,TG频道@NobyDa"; 16 | $done({body: JSON.stringify(obj)}); 17 | -------------------------------------------------------------------------------- /NobyDa/Surge/JS/luqi.js: -------------------------------------------------------------------------------- 1 | let obj = JSON.parse($response.body); 2 | obj.data.is_vip = 1; 3 | obj.data.vip_endtime = 1630296877; 4 | $done({body: JSON.stringify(obj)}); 5 | -------------------------------------------------------------------------------- /NobyDa/Surge/JS/syjl.js: -------------------------------------------------------------------------------- 1 | /* 2 | Watermark sprite vip (Author: Alex0510) 3 | Surge4: 4 | http-response https:\/\/api1\.dobenge\.cn\/api\/user\/getuserinfo requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/syjl.js 5 | 6 | QX: 7 | https:\/\/api1\.dobenge\.cn\/api\/user\/getuserinfo url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/syjl.js 8 | 9 | Surge & QX MITM = api1.dobenge.cn 10 | */ 11 | 12 | let obj = JSON.parse($response.body); 13 | obj.data["is_vip"] = 1; 14 | obj.data["vip_end_time"] = "2066-06-06"; 15 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/test.js: -------------------------------------------------------------------------------- 1 | //22.28 2 | -------------------------------------------------------------------------------- /NobyDa/Surge/JS/vivavideo.js: -------------------------------------------------------------------------------- 1 | /* 2 | Vivavideo unlock vip 3 | Script data comes from @hiepkimcdtk55 4 | 5 | Surge4: 6 | http-response ^https:\/\/viva\.v21xy\.com\/api\/rest\/u\/vip requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/vivavideo.js 7 | QX: 8 | ^https:\/\/viva\.v21xy\.com\/api\/rest\/u\/vip url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/vivavideo.js 9 | 10 | Surge & QX MITM = viva.v21xy.com 11 | */ 12 | 13 | var obj = JSON.parse($response.body); 14 | obj = { 15 | "autoRenewProductId": "premium_platinum_yearly", 16 | "iosDeviceProductVo": { 17 | "premiumVipWeekly": 3, 18 | "premiumGoldMonthly": 3, 19 | "premiumPlatinumMonthly": 3, 20 | "premiumGoldYearly": 3, 21 | "premiumPlatinumYearly": 2, 22 | "premiumPlatinumHalfYearly": 3, 23 | "premiumVipYearly": 3 24 | }, 25 | "isTrialPeriod": true, 26 | "endTime": 4081109070000, 27 | "platform": 2, 28 | "vipType": "premium_platinum_yearly", 29 | "duidDgest": "DIIe86X35", 30 | "autoRenewStatus": 1, 31 | "startTime": 1556241871000, 32 | "systemDate": 1556965441014 33 | }; 34 | 35 | $done({body: JSON.stringify(obj)}); 36 | 37 | // Descriptions -------------------------------------------------------------------------------- /NobyDa/Surge/JS/wxzb.js: -------------------------------------------------------------------------------- 1 | /* 2 | Vientiane live download link:https://m.51168.tv/ 3 | Surge4: 4 | http-response https:\/\/u\.kanghuayun\.com\/api\/v2\/info requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/wxzb.js 5 | 6 | QX: 7 | https:\/\/u\.kanghuayun\.com\/api\/v2\/info url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/wxzb.js 8 | 9 | Surge & QX MITM = u.kanghuayun.com 10 | */ 11 |   let obj = JSON.parse($response.body); 12 |   obj.data.nickname = "脚本禁止牟利,TG频道@NobyDa"; 13 |   obj.data.tstime = 59169305884; 14 |   obj.data.vip_expire_time = 59169305884; 15 |   obj.data.tsvip = 1; 16 |   obj.data.vip_level = 3; 17 |   $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /NobyDa/Surge/JS/yyzs.js: -------------------------------------------------------------------------------- 1 | /* 2 | Surge: 3 | 4 | [Script] 5 | http-response ^https?:\/\/(i|newdrugs)\.dxy\.cn\/(snsapi\/username\/|app\/user\/(pro\/stat\?|init\?timestamp=)) requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/yyzs.js 6 | 7 | [MITM] 8 | hostname = newdrugs.dxy.cn 9 | */ 10 | 11 | const path1 = "/snsapi/username/"; 12 | const path2 = "/app/user/pro/stat?"; 13 | const path3 = "/app/user/init?timestamp="; 14 | 15 | const url = $request.url; 16 | let body = $response.body; 17 | 18 | if (url.indexOf(path1) != -1){ 19 | body = JSON.parse(body); 20 | body.items.expertUser = true; 21 | body.items.expert = true; 22 | body.items.expertStatus = 1; 23 | body.items.professional = true; 24 | body = JSON.stringify(body); 25 | } 26 | 27 | if (url.indexOf(path2) != -1){ 28 | body = JSON.parse(body); 29 | body.data.isActive = true; 30 | body = JSON.stringify(body); 31 | } 32 | 33 | if (url.indexOf(path3) != -1){ 34 | body = JSON.parse(body); 35 | body.data.isProActive = true; 36 | body.data.expireDate = 2048; 37 | body.data.memberDiscount = true; 38 | body.data.iapPurchaseVO.purchase = true; 39 | body.data.iapPurchaseVO.message = null; 40 | body.data.iapPurchaseVO.error = null; 41 | body = JSON.stringify(body); 42 | } 43 | 44 | $done({body}) 45 | 46 | // by Primovist -------------------------------------------------------------------------------- /NobyDa/Surge/JS/zhibo.js: -------------------------------------------------------------------------------- 1 | let obj = JSON.parse($response.body); 2 | let url = $request.url; 3 | 4 | const ylm = '/api/public/?service=Live.checkLive'; 5 | const xml = '/api/public//?service=Live.roomCharge'; 6 | const cs = '/lg/video/loadVideoFees.do'; 7 | 8 | if (url.indexOf(ylm) != -1) { 9 | obj.data.info[0].type = "0"; 10 | } 11 | if (url.indexOf(xml) != -1) { 12 | obj.data.code = 0; 13 | } 14 | if (url.indexOf(cs) != -1) { 15 | obj.body.videoModel.fees = 1; 16 | } 17 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /NobyDa/Surge/Module/GetCookie.sgmodule: -------------------------------------------------------------------------------- 1 | #!name=Get cookie. By NobyDa 2 | #!desc=该模块适用于定时签到脚本的Cookie获取. 集成: 京东, 吾爱破解, 爱奇艺, 哔哩哔哩漫画, 百度贴吧, 您可以在使用后手动将其禁用,以免产生不必要的MITM. 3 | #!system=ios 4 | 5 | [Script] 6 | 7 | 吾爱Cookie = type=http-request,pattern=https:\/\/www\.52pojie\.cn\/home\.php\?,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/52pojie-DailyBonus/52pojie.js 8 | 9 | 爱奇艺Cookie = type=http-request,pattern=https?:\/\/.*\.iqiyi\.com\/.*authcookie=,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/iQIYI-DailyBonus/iQIYI.js 10 | 11 | 哔哩漫画Cookie = type=http-request,pattern=https:\/\/manga\.bilibili\.com\/.*\.User\/GetWallet,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Bilibili-DailyBonus/Manga.js 12 | 13 | 贴吧Cookie = type=http-request,pattern=https?:\/\/c\.tieba\.baidu\.com\/c\/s\/login,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/BDTieBa-DailyBonus/TieBa.js 14 | 15 | 京东签到Cookie = type=http-request,pattern=https:\/\/api\.m\.jd\.com\/client\.action.*functionId=signBean,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/JD-DailyBonus/JD_DailyBonus.js 16 | 17 | [MITM] 18 | hostname = %APPEND% *.iqiyi.com, www.52pojie.cn, api.m.jd.com, manga.bilibili.com, c.tieba.baidu.com -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | nzw9314库直接调用 2 | 3 | 不用改分支 4 | 5 | 本地配置: 6 | 7 | 建立本地文件夹目录iCloud Drive / QuantumultX / Scripts / nzw9314或我的iPhone / QuantumultX / Scripts / nzw9314 8 | 9 | NO.1 WoringCopy挂载我的仓库:https : //github.com/JungegeCN/QuantumultX.git 10 | 11 | https://raw.githubusercontent.com/JungegeCN/QuantumultX/master/Js_local_WorkingCopy.conf脚本订阅。 12 | 13 | https://raw.githubusercontent.com/JungegeCN/QuantumultX/master/Js_Local_WorkingCopy_Cookie.conf获取Cookie订阅,适用于商店版本v1.0.5-build192 14 | 15 | https://raw.githubusercontent.com/JungegeCN/QuantumultX/master/Get_Cookie_New.conf获取Cookie,商店版及TFv1.0.6-build212 + 16 | 17 | 获取Cookie订阅根据QuantumultX版本二选一,仅在Cookie获取或重新启用时,不需要时向右滑动。 18 | 19 | https://raw.githubusercontent.com/JungegeCN/QuantumultX/master/Task_Local.conf定时任务配置,目前无法订阅,请手动根据个人需求复制内容和修改时间。 20 | 21 | https://raw.githubusercontent.com/JungegeCN/QuantumultX/master/NeteaseMusic.list 网易云远程分流订阅 22 | 23 | NO.2商1.0.0或TF远程配置: 24 | 25 | https://raw.githubusercontent.com/JungegeCN/QuantumultX/master/Js.conf脚本远程订阅 26 | 27 | https://raw.githubusercontent.com/JungegeCN/QuantumultX/master/Get_Cookie_Remote.conf获取Cookie远程订阅,仅在Cookie获取或有效时启用,不需要时右滑动位置。 28 | 29 | https://raw.githubusercontent.com/JungegeCN/QuantumultX/master/Task_Remote.conf定时任务远程配置,目前无法订阅,请手动根据个人需求复制内容及修改时间 30 | -------------------------------------------------------------------------------- /Script/BilibiliUnlock.js: -------------------------------------------------------------------------------- 1 | let obj = JSON.parse($response.body); 2 | obj["result"]["user_status"]["vip"] = 1; 3 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /Script/Diyidan.js: -------------------------------------------------------------------------------- 1 | /* 2 | 第一弹 去广告+原画 (By Miao Miao) 3 | 4 | Surge4: 5 | http-response ^https:\/\/api\.diyidan\.net\/v0\.3\/(user\/personal_homepage|vip_user\/info|tv_series\/index\?appChanne) requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/nzw9314/QuantumultX/master/Script/Diyidan.js 6 | 7 | QuantumultX(远程): 8 | ^https:\/\/api\.diyidan\.net\/v0\.3\/(user\/personal_homepage|vip_user\/info|tv_series\/index\?appChanne) url script-response-body https://raw.githubusercontent.com/nzw9314/QuantumultX/master/Script/Diyidan.js 9 | 10 | QuantumultX(本地): 11 | ^https:\/\/api\.diyidan\.net\/v0\.3\/(user\/personal_homepage|vip_user\/info|tv_series\/index\?appChanne) url script-response-body Diyidan.js 12 | 13 | */ 14 | 15 | let url = $request.url; 16 | const path1 = "user/personal_homepage"; 17 | const path2 = "vip_user/info"; 18 | const path3 = "tv_series/index?appChannel"; 19 | let obj = JSON.parse($response.body); 20 | 21 | if (url.indexOf(path1) != -1) { 22 | // 去广告 23 | delete obj["data"]["vipArticle"]; 24 | delete obj["data"]["bannerList"]; 25 | obj["data"]["iconList"] = obj["data"]["iconList"].filter(i => { 26 | return ![5, 25, 27].includes(i.functionId); 27 | }); 28 | } 29 | if (url.indexOf(path2) != -1) { 30 | obj["data"]["isMember"] = true; 31 | } 32 | if (url.indexOf(path3) != -1) { 33 | delete obj["data"]["advertisement"]; 34 | } 35 | 36 | $done({ 37 | body: JSON.stringify(obj) 38 | }); 39 | -------------------------------------------------------------------------------- /Script/HTJZ.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj={ 3 | "data": { 4 | "level": 2, 5 | "status": 1, 6 | "openTime": "2099-10-20", 7 | "startTime": "2099-10-20", 8 | "endTime": "2099-10-20", 9 | "shareToken": "" 10 | }, 11 | "code": 0, 12 | "msg": "返回成功" 13 | }; 14 | $done({body: JSON.stringify(obj)}); 15 | // 16 | -------------------------------------------------------------------------------- /Script/ITHome.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @supported 3 | */ 4 | 5 | function indexAD(obj) { 6 | // 去除 IT 之家首页滚动板块广告 7 | let del_num = []; 8 | for (item of obj) { 9 | if (item["isad"]) { 10 | del_num.unshift(obj.indexOf(item)); 11 | } 12 | } 13 | for (n of del_num) { 14 | obj.splice(n, 1); 15 | } 16 | return obj; 17 | } 18 | 19 | function newslistAD(obj) { 20 | // 去除 IT 之家新闻列表广告 21 | let data = obj["newslist"]; 22 | let del_num = []; 23 | for (item of data) { 24 | if ("aid" in item) { 25 | del_num.unshift(data.indexOf(item)); 26 | } 27 | } 28 | for (n of del_num) { 29 | data.splice(n, 1); 30 | } 31 | obj["newslist"] = data; 32 | return obj; 33 | } 34 | 35 | let obj = JSON.parse($response.body); 36 | if (obj["newslist"] == undefined) { 37 | $done({ body: JSON.stringify(indexAD(obj)) }); 38 | } else { 39 | $done({ body: JSON.stringify(newslistAD(obj)) }); 40 | } -------------------------------------------------------------------------------- /Script/JAV101.js: -------------------------------------------------------------------------------- 1 | /* Quantumult X 脚本: 啪啪啪研究所vip❤凉意 下载链接🔗推荐码:NDHJVB 2 | https://zhhml.cn?code=NDHJVB&channelCode=share 3 | 4 | [rewrite_local] 5 | #JAV101无限观看 6 | ^https\:\/\/api\..*\.cn\/v1\/user\/info url script-response-body JAV101.js 7 | [mitm] hostname = api.*.cn, 8 | 9 | */ 10 | 11 | let obj = JSON.parse($response.body); 12 | obj.response.expiry = 9576796302; 13 | obj.response.level = 2; 14 | $done({body: JSON.stringify(obj)}); 15 | -------------------------------------------------------------------------------- /Script/Pacdebug.js: -------------------------------------------------------------------------------- 1 | var PROXY_DIRECT="DIRECT"; 2 | var DIRECT="DIRECT"; 3 | var BLACK= "PROXY 127.0.0.1:80" 4 | var DEBUG="PROXY 127.0.0.1:8423"; 5 | var WHITE=PROXY_DIRECT; 6 | function s(u,r){return shExpMatch(u,r);}function d(h,r){return dnsDomainIs(h,r);}function n(h,r,m){return isInNet(h,r,m);}function e(u){var h;if(u.indexOf("://")>-1){h=u.split('/')[2];}else{h=u.split('/')[0];}h=h.split(':')[0];var s=h.split('.').reverse();return s;} 7 | function FindProxyForURL(url,host){var u=url.toLowerCase();var h=host.toLowerCase();var a=e(u); 8 | var b=a[0];var c=a[1];var f=c.length;var t=c[f-1];var z=c[f-2]; 9 | if(d(h,"ocsp.apple.com")){return BLACK;} 10 | //if(d(h,"ocsp.apple.com")){return BLACK;} 11 | return PROXY_DIRECT;} 12 | -------------------------------------------------------------------------------- /Script/Pdfexpert.vip.js: -------------------------------------------------------------------------------- 1 | var obj= { 2 | "originalTransactionId": "20000618444996", 3 | "subscriptionState": "trial", 4 | "isInGracePeriod": false, 5 | "subscriptionExpirationDate": "13:15 03/11/2099", 6 | "subscriptionAutoRenewStatus": "autoRenewOn", 7 | "isEligibleForIntroPeriod": false, 8 | "isPDFExpert6User": false, 9 | "subscriptionReceiptId": "1572178404000" 10 | }; 11 | 12 | $done({body: JSON.stringify(obj)}); 13 | 14 | // -------------------------------------------------------------------------------- /Script/Smh.js: -------------------------------------------------------------------------------- 1 | /* 2 | ^https:\/\/m\.samh\.xndm\.tech\/userapi\/info\/v1\/getuserinfo url script-response-body Smh.js 3 | hostname=m.samh.xndm.tech 4 | */ 5 | 6 | 7 | 8 | 9 | var body = $response.body; 10 | var url = $request.url; 11 | var obj = JSON.parse(body); 12 | const ad = 'https://pangolin.snssdk.com/api/ad/union/sdk/get_ads/'; 13 | const vip = 'userapi/info/v1/getuserinfo'; 14 | 15 | 16 | if (url.indexOf(vip) != -1) { 17 | obj.data["viplevel"] = "3"; 18 | obj.data["diamondViptime"]="1775575867000" 19 | 20 | body = JSON.stringify(obj); 21 | } 22 | if ($request.url.indexOf(ad) != -1) { 23 | delete obj.data.message; 24 | } 25 | $done({body: JSON.stringify(obj)}); 26 | -------------------------------------------------------------------------------- /Script/Wanliyingshi.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | By LTribe 4 | Quantumult X 脚本:万里影视解锁VIP无限时长 5 | 6 | 万里影视App Store版 : http://t.cn/A6zB6tlH 7 | 备用下载地址:http://t.cn/A6zB6IIG 8 | 9 | [rewrite_local] 10 | # 解锁万里影视VIP无限时长 (by LTribe) 11 | ^http?:\/\/.*\.arten.cn/login/login url script-response-body Wanliyingshi.js 12 | 13 | [mitm] 14 | hostname = *.arten.cn, 15 | 16 | */ 17 | 18 | let obj = JSON.parse($response.body); 19 | obj.msg.time = 4102464235; 20 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /Script/XMind.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj = { 4 | "raw_data": "DBcBHgojrvPgruIJMfb4KK/76CmjxSHSp9KipRwOnQUuf+Gt2FncFUzNvxZydUeXEzDZt/XWEm91lHFYrvT0f2AFap2L4psLI/34sKU9VLGH7kFsBYlexU/nifBtosMJqQxL4TU1pjvjl+1uyWsFAeGR42aEnVhQWgvJB5Ovcd0=", 5 | "license": { 6 | "status": "sub", 7 | "expireTime": 3070928235000 8 | }, 9 | "_code": 200 10 | } 11 | 12 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /Script/YYeTs.js: -------------------------------------------------------------------------------- 1 | let body = $response.body; 2 | body = JSON.parse(body); 3 | if (-1 != $request.url.indexOf('init')) { 4 | body['adSwitch'] = []; 5 | body['adUpdateTime'] += 86400*365; 6 | // 关闭弹幕功能 7 | // body['barrageIp'] = ""; 8 | } 9 | if (-1 != $request.url.indexOf('ads')) { 10 | // 留下影片推荐,防止轮播位置空白 11 | body['ads'] = body['ads'].filter( 12 | function (item) { 13 | if (6 != item.adType) { 14 | return false; 15 | } 16 | if (-1 == item.click.indexOf('yyets://')) { 17 | return false; 18 | } 19 | return true; 20 | }); 21 | } 22 | body = JSON.stringify(body); 23 | $done({body}); 24 | /** 25 | * MITM: ctrl.playcvn.com 26 | * 人人影视字幕组(https://itunes.apple.com/cn/app/%E4%BA%BA%E4%BA%BA%E5%BD%B1%E8%A7%86%E5%AD%97%E5%B9%95%E7%BB%84/id1052761459) 27 | * 应用有广告缓存,可能需要重装 28 | * http-response http://ctrl.playcvn.com/app/(init|ads) requires-body=true,script-path=YYeTs.js 29 | */ 30 | -------------------------------------------------------------------------------- /Script/ZhiHu_All.js: -------------------------------------------------------------------------------- 1 | /* by Huson 2 | QX: 3 | ^https:\/\/api\.zhihu\.com\/answers\/.*\/comments\/featured-comment url reject-img 4 | ^https:\/\/api\.zhihu\.com\/appview\/api\/v4\/answers\/.*\/recommendations url reject-img 5 | ^https:\/\/api\.zhihu\.com\/(moments\?(action|feed_type)|topstory\/recommend|v\d\/questions|market\/header|people\/) url script-response-body https://raw.githubusercontent.com/0x01-0xff/ProxyConf/master/js/ZhiHu_All.js 6 | [MITM] 7 | hostname = api.zhihu.com 8 | */ 9 | 10 | let body = $response.body; 11 | let url = $request.url; 12 | body = JSON.parse(body); 13 | 14 | if (url.indexOf('moments') != -1 || url.indexOf('recommend') != -1) { 15 | // feed recommend 16 | body['data'].forEach((element, index)=> { 17 | if (element.hasOwnProperty('ad') || element['card_type'] == 'slot_event_card') { 18 | body['data'].splice(index,1); 19 | } 20 | }); 21 | } 22 | 23 | if (url.indexOf('questions') != -1) { 24 | // answer 25 | delete body['ad_info']; 26 | body['data'].forEach((element, index)=> { 27 | if (element['author']['name'] == "盐选推荐") { 28 | body['data'].splice(index,1); 29 | } 30 | }); 31 | } 32 | if (url.indexOf('people') != -1) { 33 | // people 34 | delete body['mcn_user_info']; 35 | } 36 | 37 | if (url.indexOf('market') != -1) { 38 | // market 39 | body['sub_webs'].splice(0,1); 40 | body['sub_webs'].splice(1,1); 41 | } 42 | 43 | body = JSON.stringify(body); 44 | $done({body}); -------------------------------------------------------------------------------- /Script/abaenglish.vip.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj={ 3 | "request_date": "2020-01-04T13:45:50Z", 4 | "request_date_ms": 1578145550873, 5 | "subscriber": { 6 | "entitlements": {}, 7 | "first_seen": "2020-01-03T15:21:58Z", 8 | "non_subscriptions": {}, 9 | "original_app_user_id": "22683069", 10 | "original_application_version": "475", 11 | "original_purchase_date": "2019-11-10T14:07:55Z", 12 | "other_purchases": {}, 13 | "subscriptions": { 14 | "12m_freetrial_2018": { 15 | "billing_issues_detected_at": null, 16 | "expires_date": "2120-01-10T15:35:13Z", 17 | "is_sandbox": false, 18 | "original_purchase_date": "2020-01-03T15:35:13Z", 19 | "period_type": "trial", 20 | "purchase_date": "2020-01-03T15:35:13Z", 21 | "store": "app_store", 22 | "unsubscribe_detected_at": null 23 | } 24 | } 25 | } 26 | }; 27 | 28 | $done({body: JSON.stringify(obj)}); 29 | 30 | // Descriptions 31 | -------------------------------------------------------------------------------- /Script/altstore.js: -------------------------------------------------------------------------------- 1 | let obj = JSON.parse($response.body); 2 | obj ={ 3 | "data": { 4 | "attributes": { 5 | "first_name": "barry", 6 | "full_name": "barry chen" 7 | }, 8 | "id": "30618536", 9 | "relationships": { 10 | "memberships": { 11 | "data": [{ 12 | "id": "e3a5c718-d930-4b92-a8b9-677f4699c9a4", 13 | "type": "tier" 14 | }] 15 | } 16 | }, 17 | "type": "member" 18 | }, 19 | "included": [{ 20 | "attributes": { 21 | "full_name": "barry chen", 22 | "patron_status": "active_patron" 23 | }, 24 | "id": "e3a5c718-d930-4b92-a8b9-677f4699c9a4", 25 | "type": "member" 26 | }], 27 | "links": { 28 | "self":"https://www.patreon.com/api/oauth2/v2/user/30618536" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Script/bilibili_space_qx.js: -------------------------------------------------------------------------------- 1 | /* 2 | [rewrite_local] 3 | ^https:\/\/app\.bilibili\.com\/x\/v2\/space\?access_key url script-response-body bilibili_space_qx.js 4 | [mitm] 5 | hostname = app.bilibili.com 6 | */ 7 | 8 | let url = $request.url 9 | let regex = /vmid=(\d*)/ 10 | let vmid= regex.exec(url) 11 | let mid = vmid[1] 12 | let api = `https://space.bilibili.com/ajax/member/getSubmitVideos?mid=${mid}&pagesize=10&order=stow` 13 | var Url = { 14 | url: api, 15 | method: "GET" 16 | }; 17 | 18 | $task.fetch(Url).then(response => { 19 | body=JSON.parse(response.body) 20 | let info="" 21 | body['data']['vlist'].forEach((element, index)=> { 22 | index++ 23 | let scheme=`bilibili://av/${element['aid']}` 24 | info+=index+": "+element['title']+"\n"+scheme+"\n" 25 | }) 26 | $notify('收藏排行前10','长按进入', info); 27 | $done({}); 28 | }, reason => { 29 | $notify("收藏排行获取失败", "", reason.error); 30 | $done({}); 31 | }); -------------------------------------------------------------------------------- /Script/blockBikaUpdate.js: -------------------------------------------------------------------------------- 1 | // ^https:\/\/api\.wakamoment\.ga\/init\?platform\=ios url script-request-header xxx.js 2 | 3 | 4 | let obj = JSON.parse($response.body); 5 | 6 | obj.data.latestApplication["version"] = "2.1.2.1"; 7 | obj.data["version"] = "2.1.2.1"; 8 | 9 | $done({ 10 | body: JSON.stringify(obj) 11 | }); 12 | 13 | "data":{ 14 | "latestApplication" : { 15 | "version" : "2.1.2.2" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Script/china_unicom.js: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | ^https?://m.client.10010.com/uniAdmsInterface/getHomePageAd url script-response-body china_unicom.js 4 | 5 | hostname=m.client.10010.com 6 | */ 7 | 8 | const url = $request.url 9 | var body = $response.body 10 | const path1 = "/uniAdmsInterface/getHomePageAd" 11 | if (url.indexOf(path1) != -1) { 12 | let obj = JSON.parse(body); 13 | if (obj.diffNetCard_A7) obj.diffNetCard_A7 = []; 14 | obj.homeAdv_A5.advCntList = []; 15 | body = JSON.stringify(obj); 16 | $done({ body }); 17 | } 18 | 19 | -------------------------------------------------------------------------------- /Script/clarity.js: -------------------------------------------------------------------------------- 1 | /* 2 | 克拉壁纸解锁付费壁纸 3 | 4 | Surge4: 5 | http-response ^https:\/\/claritywallpaper\.com\/clarity\/api\/(userInfo|special\/queryByCatalogAll) requires-body=1,max-size=262144,script-path=resources/js/clarity.js 6 | QX: 7 | ^https:\/\/claritywallpaper\.com\/clarity\/api\/(userInfo|special\/queryByCatalogAll) url script-response-body clarity.js 8 | 9 | Surge & QX MITM = claritywallpaper.com 10 | */ 11 | var body = $response.body; 12 | var url = $request.url; 13 | var obj = JSON.parse(body); 14 | 15 | const userinfo = '/userInfo'; 16 | 17 | const setfree = '/special/queryByCatalogAll'; 18 | 19 | if (url.indexOf(setfree) != -1) { 20 | for (var i = 0; i < obj.data.length; i++) { 21 | obj.data[i].isFree = true; 22 | } 23 | body = JSON.stringify(obj); 24 | } 25 | 26 | if (url.indexOf(userinfo) != -1) { 27 | obj.data.level = 5; 28 | obj.data.expireTime = 4070965662; 29 | body = JSON.stringify(obj); 30 | } 31 | 32 | $done({body}); -------------------------------------------------------------------------------- /Script/cpdq.js: -------------------------------------------------------------------------------- 1 | /* 2 | 菜谱大全 unlock vip 3 | 4 | #菜谱大全解锁vip 5 | https?:\/\/api\.jiaonizuocai\.com url script-response-body cpdq.js 6 | 7 | 8 | MITM = api.jiaonizuocai.com 9 | */ 10 | 11 | var body = $response.body; 12 | var url = $request.url; 13 | var obj = JSON.parse(body); 14 | 15 | const vip = '/v4/User/getUserData'; 16 | const dish = '/v4/dish/info'; 17 | const sb = '/v4/User/getDeviceInfo'; 18 | const bd = '/v4/User/bindVipCus'; 19 | 20 | if (url.indexOf(vip) != -1) { 21 | obj["data"]["data"]["vip"]["is_open_vip"] = "1"; 22 | obj["data"]["data"]["vip"]["is_vip"] = "2"; 23 | body = JSON.stringify(obj); 24 | } 25 | 26 | if (url.indexOf(dish) != -1) { 27 | obj["data"]["power"]["detail"]["video"]["common"]["isShow"] = "0"; 28 | body = JSON.stringify(obj); 29 | } 30 | 31 | if (url.indexOf(sb) != -1) { 32 | obj["data"]["is_vip"] = "2"; 33 | body = JSON.stringify(obj); 34 | } 35 | 36 | if (url.indexOf(bd) != -1) { 37 | obj["data"]["state"] = "2"; 38 | body = JSON.stringify(obj); 39 | } 40 | 41 | $done({body}); -------------------------------------------------------------------------------- /Script/cyxy.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj={ 3 | "point": {}, 4 | "user": { 5 | "status": "", 6 | "point": 168168, 7 | "audio_used_time": 0, 8 | "mvp_count": 477, 9 | "continuous_reading_count": 1, 10 | "updated_at": 1572729413, 11 | "doc_trans_block": false, 12 | "id": "5adb1b2ea4387f000be7ccb3", 13 | "be_liked_count": 0, 14 | "daily_comment_count": 0, 15 | "reading_page_count": 447, 16 | "type": "registered", 17 | "email": "", 18 | "username": "***8888", 19 | "daily_share_count": 0, 20 | "translation_count": 553, 21 | "biz": { 22 | "xy_vip_expire": 1999999999572020700, 23 | "platform_name": "caiyun", 24 | "phone_num": "15735012326", 25 | "name": "***2326", 26 | "grade": "积雨云", 27 | "is_xy_vip": true, 28 | "last_acted_at": 1569311538.545543, 29 | "platform_id": "", 30 | "score": 2000, 31 | "avatar": "https://images.unsplash.com/photo-1570328738505-305ad03ccc9f?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb&dl=lee-luis-CpPbh112yk0-unsplash.jpg", 32 | "_id": "5adb1b2ea4387f000be7ccb3", 33 | "is_xy_auto_renewal": false 34 | }, 35 | "audio_remaining_time": null, 36 | "daily_sentence_count": 0, 37 | "created_at": 1524308783, 38 | "free_download_count": 6, 39 | "avatar_url": "https://caiyunapp.com/imgs/webtrs/default.png", 40 | "reading_time_this_week": 45701, 41 | "_id": "5adb1b2ea4387f000be7ccb3" 42 | }, 43 | "rc": 0 44 | }; 45 | $done({body: JSON.stringify(obj)}); 46 | // 47 | 48 | -------------------------------------------------------------------------------- /Script/dayone-pre.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | 本脚本是 dayone.js 的附属脚本,需与主脚本配合使用。具体使用方式请查看主脚本说明 4 | Surge 5 | http-request ^https:\/\/dayone\.me\/api\/users$ debug=1,script-path=scripts/dayone-pre.js 6 | 7 | QX 8 | ^https:\/\/dayone\.me\/api\/users$ url script-response-body dayone-pre.js 9 | MitM = dayone.me 10 | 11 | */ 12 | 13 | 14 | const headers = $request.headers 15 | delete headers["If-None-Match"] 16 | $done({headers}) 17 | -------------------------------------------------------------------------------- /Script/fantastical.js: -------------------------------------------------------------------------------- 1 | /* 2 | ^https:\/\/api\.flexibits\.com\/v1\/(auth|account)\/(device|details|appstore-receipt)\/$ url script-response-body fantastical.js 3 | hostname=api.flexibits.com 4 | */ 5 | 6 | let url=$request.url; 7 | let obj=JSON.parse($response.body); 8 | 9 | if(url.indexOf('device')!=-1){ 10 | 11 | obj.status="success"; 12 | obj.subscription={ 13 | "autorenew": true, 14 | "expiration": "2099-12-31T16:49:37Z", 15 | "expires": "2099-12-31T16:49:37Z" 16 | }; 17 | obj.scope=["notify", "weather", "keyvalue-watch", "keyvalue-verification", "schedjoules", "scheduling", "account", "keyvalue", "fantastical"]; 18 | 19 | } 20 | 21 | if(url.indexOf('details')!=-1){ 22 | 23 | obj.subscription={ 24 | "autorenew": true, 25 | "expiration": "2099-12-31T16:49:37.000000Z", 26 | "uuid": "f1da7c78-e964-4367-915c-886edc794959", 27 | "subscription_type": "AppStore", 28 | "is_expired": false, 29 | "trial": false 30 | }; 31 | } 32 | 33 | if(url.indexOf('appstore-receipt')!=-1){ 34 | 35 | obj.autorenew=true; 36 | obj.expiration="2099-12-31T16:49:37.000000Z"; 37 | obj.subscription_type="AppStore"; 38 | obj.is_expired=false; 39 | obj.trial=false; 40 | } 41 | 42 | $done({body:JSON.stringify(obj)}); -------------------------------------------------------------------------------- /Script/fit.js: -------------------------------------------------------------------------------- 1 | /* 2 | QX: 3 | [rewrite_local] 4 | 5 | #Fit健身会员 (by黑黑酱) 6 | ^https:\/\/bea\.sportq\.com\/SFitWeb\/sfit\/getUserBaseInfo url script-response-body fit.js 7 | 8 | [MITM] 9 | hostname:bea.sportq.com 10 | 11 | */ 12 | 13 | re('"isVip":"\\d','"isVip":"1') 14 | 15 | function re() { 16 | var body = $response.body; 17 | if (arguments[0].includes("@")) { 18 | var regs = arguments[0].split("@"); 19 | var strs = arguments[1].split("@"); 20 | for (i = 0;i < regs.length;i++) { 21 | var reg = new RegExp(regs[i],"g"); 22 | body = body.replace(reg, strs[i]); 23 | } 24 | } 25 | else { 26 | var reg = new RegExp(arguments[0],"g"); 27 | body = body.replace(reg, arguments[1]); 28 | } 29 | $done(body); 30 | } 31 | -------------------------------------------------------------------------------- /Script/hanjuTV.js: -------------------------------------------------------------------------------- 1 | /* Quantumult X 脚本: 韩剧tv(原名爱美剧) VIP❤凉意 韩剧tv 下载链接: https://h5.hjapi.bjxkhc.com/piglet_web/index.html#/shareGetRedBag?code=10000071 2 | [rewrite_local] 3 | #韩剧tv解锁全部特权 4 | ^https\:\/\/hjapi\.bjxkhc\.com\/v2d2\/users\/.*\/member url script-response-body hanjuTV.js 5 | [mitm] hostname = *.bjxkhc.com, 6 | */ 7 | let obj = JSON.parse($response.body); 8 | obj.data.member = 9576796302; 9 | obj.data.member_fhd = 4092599349; 10 | obj.data.member_download = 9576796302; 11 | obj.data.member_share_screen = 9576796302; 12 | obj.data.silver = 6796302; 13 | obj.data.member_barrage = 9576796302 14 | $done({ 15 | body: JSON.stringify(obj) 16 | } 17 | ); -------------------------------------------------------------------------------- /Script/hjsp.js: -------------------------------------------------------------------------------- 1 | /* 2 | 花椒视频解锁VIP 3 | http://user.shywck.com/user/userinfo 4 | */ 5 | 6 | 7 | body = $response.body.replace(/.+/, "r2E18C9eded9yAup6iRND3cJpuvlH0xMj3haW7LLQ2Ql3QH3Ugtzp+puIMQNDGNAuYHySilwAzFklM4SIn/AqrOf6MzJCQZ43+PsMSgtnGYceWLgqScXVCwXFQXKR0Cxm7uDE1nEz+hfJnKq9oD6sgNiz7KibxRv1n1mQyXUPkCusDvhverqxX73YhJ5EWJGt5ITAcPg8WeE7FDPFRLvbA==") 8 | $done({body}); 9 | -------------------------------------------------------------------------------- /Script/hnsyhb.js: -------------------------------------------------------------------------------- 1 | /* 2 | 洪恩双语绘本 unlock Vip by 军哥哥 3 | 4 | app 下载地址:https://t.cn/AiCEguqn 5 | 6 | 电报频道:https://t.me/ThorHCC 7 | 电报群组:https://t.me/f4thorHCC 8 | QQ资源群:189519867 9 | QQ吹牛群:316864309 10 | 11 | QX: 12 | 13 | [rewrite_local]👇 14 | 15 | https:\/\/bookapi\.ihuman\.com\/(v1\/get\_user\_info|v1\/get\_purchase\_list) url script-response-body hnsyhb.js 16 | 17 | 18 | MITM = bookapi.ihuman.com 19 | 20 | */ 21 | 22 | const path1 = "/v1/get_purchase_list"; 23 | const path2 = "/v1/get_user_info"; 24 | 25 | let key = {"expire_time":7955110875,"vip_type":1,"last_product_id":"com.ihuman.book.sub.vip1y"}; 26 | 27 | let obj = JSON.parse($response.body); 28 | 29 | if ($request.url.indexOf(path1) != -1){ 30 | obj.result["vip_status"] = key; 31 | } 32 | if ($request.url.indexOf(path2) != -1){ 33 | obj.result.userinfo["vip_status"] = key; 34 | 35 | } 36 | 37 | 38 | $done({body: JSON.stringify(obj)}); 39 | -------------------------------------------------------------------------------- /Script/jdyTV.js: -------------------------------------------------------------------------------- 1 | /* Quantumult X 脚本: 筋斗云影院❤凉意 下载链接: http://jdytv.cn/app/index/qudao.html?uid=Mjg3NzQ= 2 | //显示到期时间后即可关闭Quantumult X,开着代理可能无法播放视频 3 | [rewrite_local] 4 | #筋斗云tv破解到期时间 5 | ^http\:\/\/jdytv\.cn\/login\/login\/veifys url script-response-body jdyTV.js 6 | [mitm] hostname = jdytv.cn, 7 | */ 8 | let obj = JSON.parse($response.body); 9 | obj.msg.time = 9576796302; 10 | $done({ 11 | body: JSON.stringify(obj) 12 | } 13 | ); -------------------------------------------------------------------------------- /Script/jxydt.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj= { 3 | "code": 0, 4 | "msg": "OK", 5 | "result": { 6 | "vipstatus": 1, 7 | "isexpert": true, 8 | "endtime": "2022-11-02", 9 | "vipType": 0, 10 | "begintime": "2019-11-03", 11 | "isRenewals": 1, 12 | "vipLevel": 0, 13 | "openCourseIds": [], 14 | "choreographySkills": 0, 15 | "has_append_service": 0, 16 | "vipDaysOverdue": -1, 17 | "vipResidualDay": 999, 18 | "imeiVIPOrderBindStatus": 1 19 | } 20 | }; 21 | $done({body: JSON.stringify(obj)}); 22 | // 23 | -------------------------------------------------------------------------------- /Script/kkyy.js: -------------------------------------------------------------------------------- 1 | re('"is_vip":\\d@"end_time":\\d+','"is_vip":1@"end_time":1741575902') 2 | 3 | function re() { 4 | var body = $response.body; 5 | if (arguments[0].includes("@")) { 6 | var regs = arguments[0].split("@"); 7 | var strs = arguments[1].split("@"); 8 | for (i = 0;i < regs.length;i++) { 9 | var reg = new RegExp(regs[i],"g"); 10 | body = body.replace(reg, strs[i]); 11 | } 12 | } 13 | else { 14 | var reg = new RegExp(arguments[0],"g"); 15 | body = body.replace(reg, arguments[1]); 16 | } 17 | $done(body); 18 | } -------------------------------------------------------------------------------- /Script/lake.js: -------------------------------------------------------------------------------- 1 | let body= $response.body; 2 | var obj = JSON.parse(body); 3 | obj= 4 | [ 5 | { 6 | "product_id": "com.lake.coloring.sub.all1.yearly1", 7 | "expired": false, 8 | "purchase_date": "2020-01-17T08:38:43.000Z", 9 | "expires": "2030-01-24T08:38:43.000Z" 10 | } 11 | ] 12 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /Script/llyd.js: -------------------------------------------------------------------------------- 1 | /* 2 | 流利说•阅读 Qx 3 | 4 | 因缓存机制,使用脚本后可能需要重装一次「流利说•阅读」后方可生效;生效标志是点进详解不再有限制 5 | 6 | ^https?:\/\/vira\.llsapp\.com\/api\/v2\/readings\/(accessible|limitation) url script-response-body llyd.js 7 | 8 | MitM = vira.llsapp.com 9 | 10 | */ 11 | 12 | if ($response.statusCode == 200 && $request.method == 'GET') { 13 | const bodyObj = JSON.parse($response.body); 14 | 15 | if ($request.url.indexOf('limitation') != -1) { 16 | bodyObj.modules = []; 17 | bodyObj.auditionDuration = 72000; 18 | } else { 19 | bodyObj.from = 1482071586 20 | bodyObj.to = 1671373986 21 | } 22 | 23 | $done({body: JSON.stringify(bodyObj)}) 24 | } else { 25 | $done({}) 26 | } 27 | -------------------------------------------------------------------------------- /Script/mb.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj={ 3 | "code": 0, 4 | "msg": null, 5 | "data": { 6 | "level": 2 , 7 | "phone": null, 8 | "encryptPassword": null, 9 | "name": "大雄脚本组", 10 | "id": 4960640, 11 | "passSecure": false, 12 | "vipEndDate": "20330912" 13 | } 14 | }; 15 | $done({body: JSON.stringify(obj)}); 16 | // 17 | -------------------------------------------------------------------------------- /Script/mkl.js: -------------------------------------------------------------------------------- 1 | /* 2 | https://app.api.versa-ai.com/pay/order/iap/check url script-response-body mkl.js 3 | hostname=app.api.versa-ai.com 4 | */ 5 | 6 | 7 | 8 | 9 | let obj = JSON.parse($response.body); 10 | 11 | obj.result.paySuccess = true, 12 | obj.result.expireDate = 1867418130000, 13 | obj.result.days = 9999, 14 | obj.result.trialPeriod = true, 15 | obj.result.sandbox = true 16 | 17 | $done({body: JSON.stringify(obj)}); 18 | -------------------------------------------------------------------------------- /Script/mmfy.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj={ 3 | "code": 10000, 4 | "message": "success", 5 | "userinfo": { 6 | "usertoken": "WYxpMuKBIFzWZ0UEUh2487GdzAM92WMtHJuRBnGzXN1VWfpKgMoX4kbszZ4XlfVo1Mof9DgkIazDJc5-4d_7wSC1IeraiWGRO1qF", 7 | "nickname": "", 8 | "head_portrait": "", 9 | "username": "hd_2727de42b01a97eeea7dcd448f656fc4", 10 | "nowtime": 1574604433, 11 | "lastloginip": "47.103.92.104", 12 | "lastlogintime": 1574604408, 13 | "createtime": 1574604381, 14 | "bindmobile": "", 15 | "bindemail": "", 16 | "ispwd": 0, 17 | "uid": 141896378, 18 | "accounttype": 5, 19 | "vip": [], 20 | "vip_valid": 1, 21 | "vip_deadline": 1669099631 22 | } 23 | }; 24 | $done({body: JSON.stringify(obj)}); 25 | // 26 | -------------------------------------------------------------------------------- /Script/mryy.js: -------------------------------------------------------------------------------- 1 | /* 2 | //每日英语阅读/每日外刊 3 | by:chamberlen 4 | //^https:\/\/dict\.eudic\.net\/jingting\/GetThisChapterTaskStatus? url script-response-body mryy.js 5 | 6 | mitm = dict.eudic.net 7 | */ 8 | let obj=JSON.parse($response.body); 9 | obj.tasks[0].finished= true; 10 | obj.tasks[0].task_action.user_purchase_status = "1"; 11 | //obj.tasks[0].optional = true; 12 | //obj.tasks[0].finish_star = "1"; 13 | $done({body:JSON.stringify(obj)}) 14 | -------------------------------------------------------------------------------- /Script/myxj.js: -------------------------------------------------------------------------------- 1 | /* 2 | [rewrite_local] 3 | #美颜相机一次性解锁内购(by黑黑酱) 4 | ^https:\/\/api\.meiyan\.com\/iap\/verify\.json url script-response-body myxj.js 5 | 6 | Surge4.0: https://api.meiyan.com/iap/verify.json 7 | 8 | [MITM] 9 | hostname:api.meiyan.com 10 | 11 | */ 12 | 13 | 14 | var obj = JSON.parse($response.body); 15 | 16 | obj = { 17 | "meta": { 18 | "app_validate_result": 0, 19 | "bundleName": "pay", 20 | "code": 0, 21 | "msg": "success", 22 | "enabled": true, 23 | "paid": true, 24 | "user": null, 25 | "id": 56990, 26 | "subscription": 0, 27 | "request_uri": "/iap/verify", 28 | "error": "" 29 | }, 30 | "response": { 31 | "status": 1 32 | } 33 | } 34 | 35 | $done({body: JSON.stringify(obj)}); 36 | -------------------------------------------------------------------------------- /Script/peak.js: -------------------------------------------------------------------------------- 1 | /* 2 | //peak解锁pro 3 | 4 | by:chamberlen 5 | 6 | [rewrite_local] 7 | 8 | ^https:\/\/billing\.peakcloud\.org\/billing\/2\/user\/me? url script-response-body peak.js 9 | 10 | //MITM=billing.peakcloud.org 11 | 12 | 13 | */ 14 | let obj=JSON.parse($response.body); 15 | obj={ 16 | "response": { 17 | "bbuid": "NKoKXsjJnw", 18 | "usedIntroOfferPeriod": false, 19 | "class": "UserModuleBillingResponse", 20 | "is_in_billing_retry": false, 21 | "modules": [{ 22 | "class": "BillingModuleResponse", 23 | "name": "com.brainbow.module.peak.PeakModule", 24 | "subscription": { 25 | "status": 0, 26 | "statusdate": 0, 27 | "source": { 28 | "id": "com.brainbow.peak.arsub_1wtrial_12m3499", 29 | "cancelable": false, 30 | "provider": "itunes", 31 | "type": "trial" 32 | }, 33 | "bbuid": "NKoKXsjJnw", 34 | "endTime": 1899724030000, 35 | "startTime": 1577884030503, 36 | "pro": true 37 | } 38 | }] 39 | }, 40 | "metaResponse": { 41 | "code": 0 42 | } 43 | } 44 | 45 | 46 | $done({body: JSON.stringify(obj)}) 47 | -------------------------------------------------------------------------------- /Script/pear.js: -------------------------------------------------------------------------------- 1 | /* 2 | app下载地址:https://t.cn/A6htR2an 3 | 4 | #圈Xpear解锁会员 5 | ^https:\/\/(www\.baidu.com2\.club|ayk\.tmdidi\.com|m\.pearkin\.com|souhu\.mett\.me|bkcd\.b-cdn\.net)\/(api\/movie\/WatchMovie|api\/Account\/CheckVip|api\/account\/IndexDetail) url script-response-body pear.js 6 | 7 | MITM = bkcd.b-cdn.net, souhu.mett.me, ayk.tmdidi.com, m.pearkin.com, www.baidu.com2.club 8 | 9 | */ 10 | 11 | var body = $response.body; 12 | var url = $request.url; 13 | var obj = JSON.parse(body); 14 | 15 | const vip = '/api/movie/WatchMovie'; 16 | 17 | const checkvip = '/api/Account/CheckVip'; 18 | 19 | const vipinfo = '/api/account/IndexDetail'; 20 | 21 | if (url.indexOf(vip) != -1) { 22 | obj["canWath"] = "true"; 23 | body = JSON.stringify(obj); 24 | } 25 | 26 | if (url.indexOf(checkvip) != -1) { 27 | obj["data"] = "1"; 28 | obj["value"] = "true"; 29 | body = JSON.stringify(obj); 30 | } 31 | if (url.indexOf(vipinfo) != -1) { 32 | obj["nickName"] = "好心人"; 33 | obj["vipLevel"] = "101"; 34 | obj["vipEndTime"] = "2222-02-22"; 35 | obj["cartoonVip"] = "true"; 36 | body = JSON.stringify(obj); 37 | } 38 | $done({body}); -------------------------------------------------------------------------------- /Script/photoshop.js: -------------------------------------------------------------------------------- 1 | /* 2 | 解锁 Photoshop for iPad 3 | 4 | ^https:\/\/lcs-mobile-cops\.adobe\.io\/mobile_profile\/nul\/v1$ url script-response-body photoshop.js 5 | 6 | Mitm = lcs-mobile-cops.adobe.io 7 | 8 | 作者 @ImSingee,请勿分享此脚本 9 | 10 | */ 11 | 12 | const bodyJson = JSON.parse($response.body) 13 | 14 | bodyJson.mobileProfile.profileStatus = 'PROFILE_AVAILABLE' 15 | 16 | bodyJson.mobileProfile.legacyProfile = '{}' 17 | bodyJson.mobileProfile.relationshipProfile = '{}' 18 | 19 | JSON.stringify(bodyJson) -------------------------------------------------------------------------------- /Script/pillow.js: -------------------------------------------------------------------------------- 1 | /*https:\/\/api\.revenuecat\.com\/v1\/(subscribers|receipts) url script-response-body pillow.js 2 | hostname= api.revenuecat.com 3 | */ 4 | 5 | var obj = {"request_date":"2020-02-15T07:09:49Z", 6 | "request_date_ms":"1581750589992", 7 | "subscriber":{ 8 | "entitlements":{ 9 | "premium":{ 10 | "expires_date":"2055-02-22T07:07:58Z", 11 | "product_identifier":"com.neybox.pillow.premium.year", 12 | "purchase_date":"2020-02-15T07:07:58Z"} 13 | }, 14 | "first_seen":"2020-02-14T20:28:01Z", 15 | "last_seen":"2020-02-14T20:28:01Z", 16 | "non_subscriptions":{}, 17 | "original_app_user_id":"D1D6D98B-EF51-48AF-9876-7352ABCEFD60", 18 | "original_application_version":"216", 19 | "original_purchase_date":"2020-02-14T20:26:59Z", 20 | "other_purchases":{}, 21 | "subscriptions":{ 22 | "com.neybox.pillow.premium.year":{ 23 | "billing_issues_detected_at":null, 24 | "expires_date":"2055-02-22T07:07:58Z", 25 | "is_sandbox":false, 26 | "original_purchase_date":"2020-02-15T07:07:58Z", 27 | "period_type":"trial", 28 | "purchase_date":"2020-02-15T07:07:58Z", 29 | "store":"app_store", 30 | "unsubscribe_detected_at":null} 31 | } 32 | } 33 | } 34 | $done({body: JSON.stringify(obj)}); 35 | -------------------------------------------------------------------------------- /Script/pock.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj= { 3 | "status": "ok", 4 | "data": { 5 | "contact_id": 27326, 6 | "name": "大雄脚本组", 7 | "firstname": "脚本组", 8 | "lastname": "大雄", 9 | "email": "", 10 | "userpic": "https://pocketlists.com/wa-data/public/contacts/photos/26/73/27326/1472772364.512x512.jpg", 11 | "userpic_minor": "", 12 | "update_datetime": 1574144842, 13 | "signup_date": "2019-11-19", 14 | "subscription_type": "premium", 15 | "subscription_expires": "2022-11-25", 16 | "family_id": null, 17 | "family_invitation_key": null, 18 | "family_role": "adult", 19 | "family_hash": null, 20 | "device_stat": { 21 | "desktop_first_login_datetime": 0, 22 | "mobile_first_login_datetime": 1574144846, 23 | "desktop_last_login_datetime": 0, 24 | "mobile_last_login_datetime": 1574144846, 25 | "desktop_login_counter": 0, 26 | "mobile_login_counter": 1 27 | } 28 | } 29 | }; 30 | $done({body: JSON.stringify(obj)}); 31 | // 32 | -------------------------------------------------------------------------------- /Script/qrxs.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | /* 奇热小说 5 | 进入收费章节-点击"立即解锁" 6 | #rewrite 7 | ^https://api.weiqire.com/api3/(visitor/|user/unlockCharpter) url script-response-body qrxs.js 8 | #mitm 9 | hostname = api.weiqire.com 10 | */ 11 | 12 | 13 | 14 | var body = $response.body; 15 | var url = $request.url; 16 | var obj = JSON.parse(body); 17 | 18 | const path1 = '/api3/visitor/'; 19 | 20 | if(url.indexOf(path1) != -1){ 21 | obj.data.enough = 1;} 22 | else { 23 | var reg1 = new RegExp("bid=(\\d+)"); 24 | var reg2 = new RegExp("sort=(\\d+)"); 25 | var bid = url.match(reg1); 26 | var sort = url.match(reg2); 27 | obj.status = "success"; 28 | obj.msg = "操作成功"; 29 | obj.code = 1; 30 | obj.data.bid = parseInt(bid[1]); 31 | obj.data.sort = [parseInt(sort[1])]; 32 | } 33 | body = JSON.stringify(obj); 34 | $done({body}); 35 | -------------------------------------------------------------------------------- /Script/quanx.js: -------------------------------------------------------------------------------- 1 | var body = $response.body; 2 | body = '\/*\n@supported B422643B7EE6\n*\/\n' + body; 3 | 4 | $done(body); -------------------------------------------------------------------------------- /Script/qx.md: -------------------------------------------------------------------------------- 1 | aHR0cD1hMS5hcC5mYXN0cXZwbi5jb206Mjk5ODAsIHVzZXJuYW1lPTM3NDE2MTgwNjg0NDc1NTk2OSwgcGFzc3dvcmQ9OGJjNmU2ZjItNTUzMC00ZmY2LWEyZGEtYWU5YWY5ZjNiNzRiLCBvdmVyLXRscz10cnVlLCB0bHMtdmVyaWZpY2F0aW9uPXRydWUsIGZhc3Qtb3Blbj1mYWxzZSwgdWRwLXJlbGF5PWZhbHNlLCB0YWc955S15oql6aKR6YGTdC5tZS9UaG9ySENDCgpodHRwPWEyLmFwLmZhc3RxdnBuLmNvbToyOTk4MCwgdXNlcm5hbWU9Mzc0MTYxODA2ODQ0NzU1OTY5LCBwYXNzd29yZD04YmM2ZTZmMi01NTMwLTRmZjYtYTJkYS1hZTlhZjlmM2I3NGIsIG92ZXItdGxzPXRydWUsIHRscy12ZXJpZmljYXRpb249dHJ1ZSwgZmFzdC1vcGVuPWZhbHNlLCB1ZHAtcmVsYXk9ZmFsc2UsIHRhZz3kuIDplK7ov57orqLpmIUKCmh0dHA9YTMuYXAuZmFzdHF2cG4uY29tOjI5OTgwLCB1c2VybmFtZT0zNzQxNjE4MDY4NDQ3NTU5NjksIHBhc3N3b3JkPThiYzZlNmYyLTU1MzAtNGZmNi1hMmRhLWFlOWFmOWYzYjc0Yiwgb3Zlci10bHM9dHJ1ZSwgdGxzLXZlcmlmaWNhdGlvbj10cnVlLCBmYXN0LW9wZW49ZmFsc2UsIHVkcC1yZWxheT1mYWxzZSwgdGFnPeS4jeiDveeUqOWKoOe+pAoKaHR0cD1hNC5hcC5mYXN0cXZwbi5jb206Mjk5ODAsIHVzZXJuYW1lPTM3NDE2MTgwNjg0NDc1NTk2OSwgcGFzc3dvcmQ9OGJjNmU2ZjItNTUzMC00ZmY2LWEyZGEtYWU5YWY5ZjNiNzRiLCBvdmVyLXRscz10cnVlLCB0bHMtdmVyaWZpY2F0aW9uPXRydWUsIGZhc3Qtb3Blbj1mYWxzZSwgdWRwLXJlbGF5PWZhbHNlLCB0YWc95Yqg576k5pu05paw 2 | -------------------------------------------------------------------------------- /Script/qyxj.js: -------------------------------------------------------------------------------- 1 | /* 2 | 轻颜相机 Ulike 蒸汽波相机(vaporcam) 三合一解锁VIP 3 | https://(commerce-.*api|pay).(faceu|wecut).(com|mobi)/(commerce|apple)/(iosAppVerifyReceipt.php|v1/subscription/user_info) url script-response-body nzw9314/Script/qyxj.js 4 | 5 | hostname= commerce-i18n-api.faceu.mobi,commerce-api.faceu.mobi, pay.wecut.com 6 | */ 7 | 8 | const path1 = "/commerce/v1/subscription/user_info"; 9 | const path2 = "/apple/iosAppVerifyReceipt.php"; 10 | 11 | let obj = JSON.parse($response.body); 12 | 13 | if ($request.url.indexOf(path1) != -1){ 14 | obj.data.start_time = 1584674770; 15 | obj.data.end_time = 4077660370; 16 | obj.data.is_cancel_subscribe = true; 17 | obj.data.flag = true; 18 | } 19 | if ($request.url.indexOf(path2) != -1){ 20 | obj.data = { 21 | "isValid": 1, 22 | "expiresTs": 4077660370 23 | } 24 | } 25 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /Script/sdxz.js: -------------------------------------------------------------------------------- 1 | /* Quantumult X 脚本: 闪电下载vip❤凉意 下载链接🔗 http://bbs.flashdown365.com/download.html 2 | 3 | [rewrite_local] 4 | #闪电下载vip 5 | ^http\:\/\/app\.flashdown365\.com\/ios\/login url script-response-body sdxz.js 6 | [mitm] hostname = app.flashdown365.com, 7 | 8 | */ 9 | 10 | let obj = JSON.parse($response.body); 11 | obj.body.isvip = true 12 | $done({body: JSON.stringify(obj)}); 13 | -------------------------------------------------------------------------------- /Script/shimo.js: -------------------------------------------------------------------------------- 1 | /* 2 | 石墨文档解锁VIP未测试,自行测试 3 | https://api.shimo.im/users/ 4 | */ 5 | 6 | let obj = JSON.parse($response.body); 7 | 8 | obj.membership = { 9 | "accountTypeExpiredAt": "2099-04-30T16:00:00.000Z", 10 | "accountTypeCreatedAt": "2020-03-25T13:09:31.000Z", 11 | "accountType": "personal_premium", 12 | "isEnterprisePremium": true, 13 | "isExpired": false, 14 | "isNewDing": false, 15 | "isOfficial": true 16 | } 17 | 18 | $done({body: JSON.stringify(obj)}); 19 | -------------------------------------------------------------------------------- /Script/sjyjgj.js: -------------------------------------------------------------------------------- 1 | /* 2 | 手机硬件管家VIP Pro 3 | http:\/\/api\.591master\.com\:8081\/(1.0|3.6.8)\/ui(forum|common)\/(downloadwallpaper|getuser) 4 | */ 5 | 6 | 7 | 8 | 9 | const path1 = "/3.6.8/uicommon/getuser"; 10 | const path2 = "/1.0/uiforum/downloadwallpaper"; 11 | 12 | 13 | let obj = JSON.parse($response.body); 14 | 15 | if ($request.url.indexOf(path1) != -1){ 16 | obj.data.expireTime = 1867600302, 17 | obj.data.isVip = true, 18 | obj.data.expExpireTime = 1867600302, 19 | obj.data.score = 666 20 | } 21 | if ($request.url.indexOf(path2) != -1){ 22 | obj = { 23 | "errno": 0, 24 | "errmsg": "OK", 25 | "data": "aXVNbR5r7cLe0FSpoXFuPw==" 26 | } 27 | } 28 | $done({body: JSON.stringify(obj)}); 29 | -------------------------------------------------------------------------------- /Script/smy.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj={ 3 | "status": "1000", 4 | "msg": "请求成功", 5 | "result": { 6 | "isvip": "true", 7 | "romspace": "200", 8 | "nickname": "大雄脚本组", 9 | "expiretime": "2099-11-24", 10 | "registertime": "2019-11-24", 11 | "ocrtimes": "8", 12 | "tel": "", 13 | "openid": "o-mlS1LoIQf9gVWRzJbVnoD27ujE", 14 | "sessionid": "211CCEE5BD0EC77BA9ACB21A13ED46FA", 15 | "userid": "196757", 16 | "token": "fca54885bb27d82844256ccb705c892e0cf7e2d095246e2ef44e6057", 17 | "password": "", 18 | "headimg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1573121472669&di=2c11ef9ea7c89c76d14632e9e456c67f&imgtype=0&src=http%3A%2F%2Ftx.haiqq.com%2Fuploads%2Fallimg%2F170826%2F04451MY6-2.jpg", 19 | "iosversionid": "false", 20 | "logintype": "3", 21 | "state": "1", 22 | "comment": "true", 23 | "share": "true", 24 | "signcount": "0", 25 | "signstate": "false", 26 | "message": "登录成功", 27 | "messagestate": "false", 28 | "totalocrtimes": "99", 29 | "checked": 0, 30 | "cloud_count": "0" 31 | } 32 | }; 33 | $done({body: JSON.stringify(obj)}); 34 | // 35 | -------------------------------------------------------------------------------- /Script/sololearn.js: -------------------------------------------------------------------------------- 1 | /* 2 | QX: ^https:\/\/api\.sololearn\.com\/(authenticateDevice|challenge\/GetContestFeed|Profile\/GetProfile)$ url script-response-body sololearn.js 3 | 4 | Surge: http-response ^https:\/\/api\.sololearn\.com\/(authenticateDevice|challenge\/GetContestFeed|Profile\/GetProfile)$ requires-body=1,max-size=0,script-path=resources/js/sololearn.js 5 | 6 | hostname=api.sololearn.com 7 | */ 8 | 9 | let url=$request.url; 10 | let obj=JSON.parse($response.body); 11 | 12 | if (url.endsWith('authenticateDevice')) { 13 | obj.user.badge="platinum|platinum_mod|pro"; 14 | obj.user.accessLevel=65520; 15 | obj.user.isPro=true; 16 | obj.user.proExpireDate="2099-01-31T00:00:00"; 17 | } 18 | 19 | if (url.endsWith('GetContestFeed')) { 20 | let num=obj.feed.length; 21 | if (num==0) { 22 | $done({}); 23 | } else { 24 | for (var i=0;i { 37 | var msg = JSON.parse(response.body).msg; 38 | if (msg == "SUCCESS") { 39 | var msg = "签到成功"; 40 | } 41 | $notify("360扫地机", msg, ""); 42 | }, 43 | reason => { 44 | // reason.error 45 | $notify("360扫地机", "", JSON.parse(reason.error).msg); // Error! 46 | } 47 | ); 48 | } -------------------------------------------------------------------------------- /Task/weather.js: -------------------------------------------------------------------------------- 1 | var appid="47273245"; 2 | var appsecret="BCK1QTW5"; 3 | 4 | var wurl = { 5 | url: "https://www.tianqiapi.com/api/?version=v6&appid=" + appid + "&appsecret=" + appsecret, 6 | }; 7 | 8 | $task.fetch(wurl).then(response => { 9 | var obj = JSON.parse(response.body); 10 | var city = obj.city; 11 | var noweather = obj.wea; 12 | var wind_dir = obj.win; 13 | var wind_sc = obj.win_speed; 14 | var hum = obj.humidity; 15 | var lowtmp = obj.tem2; 16 | var hightmp = obj.tem1; 17 | var air = obj.air_pm25; 18 | var airlevel =obj.air_level; 19 | var airtips = obj.air_tips; 20 | var updatetime = obj.date + " " + obj.update_time; 21 | 22 | var title = city + "天气: "+ noweather +", " + "气温: " + lowtmp +" °C " + "~" + hightmp +" °C " 23 | var mation = "风向: " + wind_dir + "·" + wind_sc + " | " + "湿度: " + hum + " | " + "PM2.5: " + air + " " + airlevel 24 | var tips = "建议: " + airtips 25 | var update = "更新于: " + updatetime 26 | $notify(title, mation, tips, update); 27 | 28 | }, reason => { 29 | $notify("错误", "", reason.error); 30 | }); -------------------------------------------------------------------------------- /chavyleung/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "arrowParens": "always", 4 | "singleQuote": true, 5 | "printWidth": 400 6 | } 7 | -------------------------------------------------------------------------------- /chavyleung/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.formatOnPaste": true, 3 | "editor.formatOnSave": true, 4 | "editor.formatOnType": true, 5 | "minify.minifyExistingOnSave": true, 6 | "minify.js": { 7 | "mangle": true, 8 | "output": { 9 | "ascii_only": true, 10 | "comments": true 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /chavyleung/README.md: -------------------------------------------------------------------------------- 1 | # Chavy Scripts 2 | 3 | [脚本投票地址](https://t.me/chavyscripts) -------------------------------------------------------------------------------- /chavyleung/neteasemusic/neteasemusic.cookie.js: -------------------------------------------------------------------------------- 1 | const cookieName = '网易云音乐' 2 | const cookieKey = 'chavy_cookie_neteasemusic' 3 | const cookieVal = $request.headers['Cookie'] 4 | 5 | if (cookieVal) { 6 | let cookie = $persistentStore.write(cookieVal, cookieKey) 7 | if (cookie) { 8 | let msg = `${cookieName}` 9 | $notification.post(msg, 'Cookie写入成功', '详见日志') 10 | console.log(msg) 11 | console.log(cookieVal) 12 | } 13 | } 14 | 15 | $done({}) 16 | -------------------------------------------------------------------------------- /chavyleung/neteasemusic/quanx/neteasemusic.cookie.js: -------------------------------------------------------------------------------- 1 | const cookieName = '网易云音乐' 2 | const cookieKey = 'chavy_cookie_neteasemusic' 3 | const cookieVal = $request.headers['Cookie'] 4 | 5 | if (cookieVal) { 6 | let cookie = $prefs.setValueForKey(cookieVal, cookieKey) 7 | if (cookie) { 8 | let msg = `${cookieName}` 9 | $notify(msg, 'Cookie写入成功', '详见日志') 10 | console.log(msg) 11 | console.log(cookieVal) 12 | } 13 | } 14 | 15 | $done({}) 16 | -------------------------------------------------------------------------------- /chavyleung/neteasenews/抓包步骤/第10步.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/chavyleung/neteasenews/抓包步骤/第10步.png -------------------------------------------------------------------------------- /chavyleung/neteasenews/抓包步骤/第1步.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/chavyleung/neteasenews/抓包步骤/第1步.png -------------------------------------------------------------------------------- /chavyleung/neteasenews/抓包步骤/第2步.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/chavyleung/neteasenews/抓包步骤/第2步.png -------------------------------------------------------------------------------- /chavyleung/neteasenews/抓包步骤/第3步.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/chavyleung/neteasenews/抓包步骤/第3步.png -------------------------------------------------------------------------------- /chavyleung/neteasenews/抓包步骤/第4-5步.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/chavyleung/neteasenews/抓包步骤/第4-5步.png -------------------------------------------------------------------------------- /chavyleung/neteasenews/抓包步骤/第6步.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/chavyleung/neteasenews/抓包步骤/第6步.png -------------------------------------------------------------------------------- /chavyleung/neteasenews/抓包步骤/第7步.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/chavyleung/neteasenews/抓包步骤/第7步.png -------------------------------------------------------------------------------- /chavyleung/neteasenews/抓包步骤/第8步.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/chavyleung/neteasenews/抓包步骤/第8步.png -------------------------------------------------------------------------------- /chavyleung/neteasenews/抓包步骤/第9步.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/chavyleung/neteasenews/抓包步骤/第9步.png -------------------------------------------------------------------------------- /chavyleung/smzdm/quanx/smzdm.cookie.js: -------------------------------------------------------------------------------- 1 | const cookieName = '什么值得买' 2 | const cookieKey = 'chavy_cookie_smzdm' 3 | const cookieVal = $request.headers['Cookie'] 4 | 5 | if (cookieVal) { 6 | let cookie = $prefs.setValueForKey(cookieVal, cookieKey) 7 | if (cookie) { 8 | let msg = `${cookieName}` 9 | $notify(msg, 'Cookie写入成功', '详见日志') 10 | console.log(msg) 11 | console.log(cookieVal) 12 | } 13 | } 14 | 15 | $done({}) 16 | -------------------------------------------------------------------------------- /chavyleung/smzdm/quanx/smzdm.js: -------------------------------------------------------------------------------- 1 | const cookieName = '什么值得买' 2 | const cookieKey = 'chavy_cookie_smzdm' 3 | const cookieVal = $prefs.valueForKey(cookieKey) 4 | 5 | function sign() { 6 | let url = { 7 | url: `https://zhiyou.smzdm.com/user/checkin/jsonp_checkin`, 8 | headers: { 9 | Cookie: cookieVal 10 | } 11 | } 12 | url.headers['Referer'] = 'http://www.smzdm.com/' 13 | url.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36' 14 | 15 | $task.fetch(url).then((response) => { 16 | let data = response.body 17 | let result = JSON.parse(data) 18 | let title = `${cookieName}` 19 | // 签到成功 20 | if (result && result.data && result.error_code == 0) { 21 | let subTitle = `签到结果: 成功` 22 | let detail = `累计: ${result.data.checkin_num}次, 经验: ${result.data.exp}, 金币: ${result.data.gold}, 积分: ${result.data.point}` 23 | $notify(title, subTitle, detail) 24 | } 25 | // 登录失效 26 | else if (result && result.data && result.error_code == 99) { 27 | let subTitle = `签到结果: 失败` 28 | let detail = `说明: 登录失效, 请重新获取Cookie` 29 | $notify(title, subTitle, detail) 30 | } 31 | // 签到失败 32 | else { 33 | let subTitle = `签到结果: 失败` 34 | let detail = `编码: ${result.error_code}, 说明: ${result.error_msg}` 35 | $notify(title, subTitle, detail) 36 | } 37 | console.log(`${cookieName}, data: ${data}`) 38 | }) 39 | } 40 | 41 | sign() 42 | -------------------------------------------------------------------------------- /chavyleung/smzdm/smzdm.cookie.js: -------------------------------------------------------------------------------- 1 | const cookieName = '什么值得买' 2 | const cookieKey = 'chavy_cookie_smzdm' 3 | const cookieVal = $request.headers['Cookie'] 4 | 5 | if (cookieVal) { 6 | let cookie = $persistentStore.write(cookieVal, cookieKey) 7 | if (cookie) { 8 | let msg = `${cookieName}` 9 | $notification.post(msg, 'Cookie写入成功', '详见日志') 10 | console.log(msg) 11 | console.log(cookieVal) 12 | } 13 | } 14 | 15 | $done({}) 16 | -------------------------------------------------------------------------------- /chavyleung/smzdm/smzdm.js: -------------------------------------------------------------------------------- 1 | const cookieName = '什么值得买' 2 | const cookieKey = 'chavy_cookie_smzdm' 3 | const cookieVal = $persistentStore.read(cookieKey) 4 | 5 | function sign() { 6 | let url = { 7 | url: `https://zhiyou.smzdm.com/user/checkin/jsonp_checkin`, 8 | headers: { 9 | Cookie: cookieVal 10 | } 11 | } 12 | url.headers['Referer'] = 'http://www.smzdm.com/' 13 | url.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36' 14 | 15 | $httpClient.get(url, (error, response, data) => { 16 | let result = JSON.parse(data) 17 | let title = `${cookieName}` 18 | // 签到成功 19 | if (result && result.data && result.error_code == 0) { 20 | let subTitle = `签到结果: 成功` 21 | let detail = `累计: ${result.data.checkin_num}次, 经验: ${result.data.exp}, 金币: ${result.data.gold}, 积分: ${result.data.point}` 22 | $notification.post(title, subTitle, detail) 23 | } 24 | // 登录失效 25 | else if (result && result.data && result.error_code == 99) { 26 | let subTitle = `签到结果: 失败` 27 | let detail = `说明: 登录失效, 请重新获取Cookie` 28 | $notification.post(title, subTitle, detail) 29 | } 30 | // 签到失败 31 | else { 32 | let subTitle = `签到结果: 失败` 33 | let detail = `编码: ${result.error_code}, 说明: ${result.error_msg}` 34 | $notification.post(title, subTitle, detail) 35 | } 36 | console.log(`${cookieName}, data: ${data}`) 37 | }) 38 | 39 | $done({}) 40 | } 41 | 42 | sign() 43 | -------------------------------------------------------------------------------- /chavyleung/tncj/README.md: -------------------------------------------------------------------------------- 1 | # 头脑吃鸡 2 | 3 | > 代码已同时兼容 Surge & QuanX, 使用同一份签到脚本即可 4 | 5 | ## 配置 (Surge) 6 | 7 | ```properties 8 | [MITM] 9 | tncj.hortorgames.com 10 | 11 | [Script] 12 | http-response ^https://tncj.hortorgames.com/chicken/fight/(answer|findQuiz) requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/chavyleung/scripts/master/tncj/tncj.min.js 13 | ``` 14 | 15 | ## 配置 (QuanX) 16 | 17 | ```properties 18 | [MITM] 19 | tncj.hortorgames.com 20 | 21 | [rewrite_local] 22 | ^https://tncj.hortorgames.com/chicken/fight/(answer|findQuiz) url script-response-body tncj.min.js 23 | 24 | ``` 25 | 26 | ## 感谢 27 | 28 | [@LeeeMooo](https://github.com/LeeeMooo) 29 | -------------------------------------------------------------------------------- /chavyleung/v2ex/quanx/v2ex.cookie.js: -------------------------------------------------------------------------------- 1 | const cookieName = 'V2EX' 2 | const cookieKey = 'chavy_cookie_v2ex' 3 | const cookieVal = $request.headers['Cookie'] 4 | 5 | if (cookieVal) { 6 | let cookie = $prefs.setValueForKey(cookieVal, cookieKey) 7 | if (cookie) { 8 | let msg = `${cookieName}` 9 | $notify(msg, 'Cookie写入成功', '详见日志') 10 | console.log(msg) 11 | console.log(cookieVal) 12 | } 13 | } 14 | 15 | $done({}) 16 | -------------------------------------------------------------------------------- /chavyleung/v2ex/v2ex.cookie.js: -------------------------------------------------------------------------------- 1 | const cookieName = 'V2EX' 2 | const cookieKey = 'chavy_cookie_v2ex' 3 | const cookieVal = $request.headers['Cookie'] 4 | 5 | if (cookieVal) { 6 | let cookie = $persistentStore.write(cookieVal, cookieKey) 7 | if (cookie) { 8 | let msg = `${cookieName}` 9 | $notification.post(msg, 'Cookie写入成功', '详见日志') 10 | console.log(msg) 11 | console.log(cookieVal) 12 | } 13 | } 14 | 15 | $done({}) 16 | -------------------------------------------------------------------------------- /langkhach/Adguard.js: -------------------------------------------------------------------------------- 1 | let obj = JSON.parse($response.body); 2 | obj={"products":[{"product_id":"com.adguard.lifetimePurchase","premium_status":"ACTIVE"}]}; 3 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /langkhach/Adguard.rsp: -------------------------------------------------------------------------------- 1 | {"products":[{"product_id":"com.adguard.lifetimePurchase","premium_status":"ACTIVE"}]} -------------------------------------------------------------------------------- /langkhach/CamScaner.js: -------------------------------------------------------------------------------- 1 | let obj = JSON.parse($response.body); 2 | obj = {"data":{"psnl_vip_property":{"expiry":"4073275762"}}}; 3 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /langkhach/Faded.js: -------------------------------------------------------------------------------- 1 | let obj= JSON.parse($response.body); 2 | obj= { 3 | "status": 200, 4 | "message": "OK", 5 | "data": true, 6 | "subscriptionValid": true 7 | }; 8 | $done({body: JSON.stringify(obj)}); 9 | -------------------------------------------------------------------------------- /langkhach/Fantastical.js: -------------------------------------------------------------------------------- 1 | /* 2 | ^https:\/\/api\.flexibits\.com\/v1\/(auth|account)\/(device|details|appstore-receipt)\/$ url script-response-body fantastical.js 3 | hostname=api.flexibits.com 4 | */ 5 | 6 | let url=$request.url; 7 | let obj=JSON.parse($response.body); 8 | 9 | if(url.indexOf('device')!=-1){ 10 | 11 | obj.status="success"; 12 | obj.subscription={ 13 | "autorenew": true, 14 | "expiration": "2099-12-31T16:49:37Z", 15 | "expires": "2099-12-31T16:49:37Z" 16 | }; 17 | obj.scope=["notify", "weather", "keyvalue-watch", "keyvalue-verification", "schedjoules", "scheduling", "account", "keyvalue", "fantastical"]; 18 | 19 | } 20 | 21 | if(url.indexOf('details')!=-1){ 22 | 23 | obj.subscription={ 24 | "autorenew": true, 25 | "expiration": "2099-12-31T16:49:37.000000Z", 26 | "uuid": "f1da7c78-e964-4367-915c-886edc794959", 27 | "subscription_type": "AppStore", 28 | "is_expired": false, 29 | "trial": false 30 | }; 31 | } 32 | 33 | if(url.indexOf('appstore-receipt')!=-1){ 34 | 35 | obj.autorenew=true; 36 | obj.expiration="2099-12-31T16:49:37.000000Z"; 37 | obj.subscription_type="AppStore"; 38 | obj.is_expired=false; 39 | obj.trial=false; 40 | } 41 | 42 | $done({body:JSON.stringify(obj)}); -------------------------------------------------------------------------------- /langkhach/Gyroscope.vip.js: -------------------------------------------------------------------------------- 1 | 2 | let obj = JSON.parse($response.body); 3 | obj.user["active_until_time"] = "2099-01-01T00:00:00Z"; 4 | $done({body: JSON.stringify(obj)}); 5 | //bynubyta -------------------------------------------------------------------------------- /langkhach/Lightroom.js: -------------------------------------------------------------------------------- 1 | body = $response.body.replace(/while.{7}\n/, ""); 2 | let obj = JSON.parse(body); 3 | obj.entitlement.status="subscriber"; 4 | obj.current_subs={ 5 | "product_id": "lightroom", 6 | "store": "adobe", 7 | "purchase_date": "2019-10-10T16:32:10.254954Z", 8 | "sao": { 9 | "inpkg_CCES": "0", 10 | "inpkg_CCLE": "1", 11 | "inpkg_CCSN": "0", 12 | "inpkg_CCSV": "0", 13 | "inpkg_LCCC": "0", 14 | "inpkg_LPES": "0", 15 | "inpkg_LRBRL": "0", 16 | "inpkg_LRMAC": "0", 17 | "inpkg_LRMC": "0", 18 | "inpkg_LRMP": "0", 19 | "inpkg_LRTB": "0", 20 | "inpkg_PHLT": "0", 21 | "inpkg_PHLT2": "0", 22 | "inpkg_PLES": "0", 23 | "storage_quota": "100" 24 | } 25 | }; 26 | obj.entitlement.storage={ 27 | "used": 0, 28 | "limit": 1154487209165, 29 | "display_limit": 1099511627776, 30 | "warn": 992137445376 31 | }; 32 | obj.avatar.placeholder=true; 33 | body = JSON.stringify(obj); 34 | $done({body}); 35 | -------------------------------------------------------------------------------- /langkhach/MuscleBooster.js: -------------------------------------------------------------------------------- 1 | /* 2 | Surge: 3 | [Script] 4 | Muscle Booster = type=http-response,pattern=^https:\/\/menscoach-api\.asqq\.io\/prod\/user$,requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/langkhach270389/Scripting/master/MuscleBooster.js 5 | 6 | Quantumult X: 7 | [rewrite_local] 8 | ^https:\/\/menscoach-api\.asqq\.io\/prod\/user$ url script-response-body langkhach/MuscleBooster.js 9 | 10 | MITM: menscoach-api.asqq.io 11 | */ 12 | 13 | let obj = JSON.parse($response.body); 14 | obj.is_paid = true; 15 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /langkhach/Pdfexpert.vip.js: -------------------------------------------------------------------------------- 1 | var obj= { 2 | "originalTransactionId": "20000618444996", 3 | "subscriptionState": "trial", 4 | "isInGracePeriod": false, 5 | "subscriptionExpirationDate": "13:15 03/11/2099", 6 | "subscriptionAutoRenewStatus": "autoRenewOn", 7 | "isEligibleForIntroPeriod": false, 8 | "isPDFExpert6User": false, 9 | "subscriptionReceiptId": "1572178404000" 10 | }; 11 | 12 | $done({body: JSON.stringify(obj)}); 13 | 14 | // -------------------------------------------------------------------------------- /langkhach/Sharp3DPro.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Quantumult X 4 | unlock Shapr:3D PRO 5 | 6 | [rewrite_local] 7 | # unlock Shapr3D 8 | ^https?:\/\/prod\.api\.shapr3d\.com\/user-management\/profile-with-device url script-response-body Shapr3D.js 9 | 10 | [mitm] 11 | hostname = prod.api.shapr3d.com, 12 | 13 | */ 14 | 15 | let obj = JSON.parse($response.body); 16 | obj.subscriptionType = "pro_year"; 17 | obj.subscriptionExpires = "2100-01-01T00:00:00.000Z"; 18 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /langkhach/Surge/dnspod.js: -------------------------------------------------------------------------------- 1 | const url = 'http://119.29.29.29/d?dn=' + $domain; 2 | if ($network.v4.primaryInterface === 'en0') { 3 | $httpClient.get(url, function(error, response, data) { 4 | if (error) { 5 | $done({server: '8.8.8.8'}); 6 | } else { 7 | $done({addresses: data.split(';'), ttl: 600}); 8 | } 9 | }); 10 | } else { 11 | $done({server: '8.8.8.8'}); 12 | } -------------------------------------------------------------------------------- /langkhach/Surge/modules/GameMod.sgmodule: -------------------------------------------------------------------------------- 1 | #!name=🎲 Game Mode 2 | #!desc= Always Real Ip Hosts 3 | #!system=ios 4 | 5 | [General] 6 | always-real-ip = %APPEND% *.srv.nintendo.net, *.stun.playstation.net, xbox.*.microsoft.com, *.xboxlive.com, *.momo.vn, -------------------------------------------------------------------------------- /langkhach/Surge/modules/Old_iPA_Downloader.sgmodule: -------------------------------------------------------------------------------- 1 | #!name=Old_iPA_Downloader by @Lãng Khách 2 | #!desc=Requires: Computers need to trust root Surge certificate and set proxy rule domain-keyword: -buy.itunes.apple.com. (iOS. Open AppleStore search app. Share app into shortcut Old_iPA_Downloader, choose version app. PC: Open iTunes search and click Get). Done (Check \Music\iTunes\iTunes Media\Mobile Applications) 3 | #!system=ios 4 | //Link shortcut: https://www.icloud.com/shortcuts/bdbba3de9c8d42fe858bf210d20e5603 5 | 6 | [Script] 7 | 8 | old_ipa.js = type=http-request,pattern=(https:\/\/(.+\-|)buy\.itunes\.apple\.com\/WebObjects\/MZBuy.woa\/wa\/buyProduct)|(https:\/\/api\.unlimapps\.com\/.+\/apple_apps\/.+\/versions\?=),requires-body=1,max-size=0,debug=1,script-path=https://raw.githubusercontent.com/langkhach270389/Scripting/master/Surge/old_ipa.js 9 | 10 | 11 | [MITM] 12 | hostname = %APPEND% *-buy.itunes.apple.com, api.unlimapps.com, 13 | -------------------------------------------------------------------------------- /langkhach/Surge/modules/Q-Search.sgmodule: -------------------------------------------------------------------------------- 1 | #!name=Q-Search 2 | #!desc=Safari Search Add-ons 3 | 4 | //safari set default search duckduckgo 5 | [URL Rewrite] 6 | ^https:\/\/duckduckgo.com\/\?q=gh\+([^&]+).+ https://github.com/search?q=$1 302 7 | ^https:\/\/duckduckgo.com\/\?q=gm\+([^&]+).+ https://www.google.com/search?&tbm=isch&q=$1 302 8 | ^https:\/\/duckduckgo.com\/\?q=ph\+([^&]+).+ https://pornhub.com/video/search?search=$1 302 9 | ^https:\/\/duckduckgo.com\/\?q=so\+([^&]+).+ https://stackoverflow.com/search?q=$1 302 10 | ^https:\/\/duckduckgo.com\/\?q=se\+([^&]+).+ https://stackexchange.com/search?q=$1 302 11 | ^https:\/\/duckduckgo.com\/\?q=wa\+([^&]+).+ https://www.wolframalpha.com/input/?i=$1 302 12 | ^https:\/\/duckduckgo.com\/\?q=([^&]+).+ https://www.google.com/search?q=$1 302 13 | [MITM] 14 | hostname = %APPEND% duckduckgo.com -------------------------------------------------------------------------------- /langkhach/Surge/ncov.js: -------------------------------------------------------------------------------- 1 | /* 2 | Surge V4 ios, Mac 3 | Api by junookyo 4 | 5 | [Script] 6 | cron "0 0 6-23/3 * * *" script-path=ncov.js 7 | 8 | 9 | MITM = code.junookyo.xyz 10 | */ 11 | var ncovUrl = { 12 | url: 'https://code.junookyo.xyz/api/ncov-moh/data.json', 13 | } 14 | $httpClient.post(ncovUrl, function(error, response, data){ 15 | if (error) { 16 | $notification.post("NCOV", "", "Bad connection") 17 | $done(); 18 | } 19 | else{ 20 | if(response.status == 200) 21 | { 22 | let obj= JSON.parse(data); 23 | if(obj["success"]) 24 | { 25 | obj= obj["data"]; 26 | $notification.post("NCOV ","","🇻🇳 VN: Số người nhiễm: " + obj["vietnam"]["cases"] +", Người chết: " + obj["vietnam"]["deaths"] + ", Hồi phục: " + obj["vietnam"]["recovered"] +"\n🌍 Global: Số người nhiễm: " + obj["global"]["cases"] +", Người chết: " + obj["global"]["deaths"] + ", Hồi phục: " + obj["global"]["recovered"]); 27 | $done(); 28 | } 29 | } 30 | else{ 31 | $notification.post("NCOV", "", "API ERROR"); 32 | } 33 | } 34 | }); 35 | -------------------------------------------------------------------------------- /langkhach/Surge/nextdns_linkedip.js: -------------------------------------------------------------------------------- 1 | //Script event auto linked ipv4 nextdns: network-change 2 | 3 | async function launch() { 4 | await linkedip(); 5 | $done(); 6 | } 7 | launch() 8 | function linkedip(){ 9 | $httpClient.post('https://link-ip.nextdns.io/3994b1/40bcbadb4693c2a5', function(error, response, data){ 10 | if (error) { 11 | console.log('❌'); 12 | } else { 13 | console.log('🔔'+ data); 14 | } 15 | }); 16 | } -------------------------------------------------------------------------------- /langkhach/Surge/old_ipa.js: -------------------------------------------------------------------------------- 1 | /* 2 | Old_iPA_Downloader by LangKhach 3 | */ 4 | var url = $request.url; 5 | var obj = $request.body; 6 | 7 | const api= "unlimapps"; 8 | const buy= "buyProduct"; 9 | 10 | if(url.indexOf(api) != -1){ 11 | var appidget = url.match(/\d{6,}$/); 12 | console.log("🟢\n appid: " + appidget); 13 | $persistentStore.write(appidget.toString(),"appid"); 14 | $notification.post('Old_iPA_Dowloader', 'iTunes PC search app and click Get', 'By @Lãng Khách'); 15 | $done({body}); 16 | } 17 | if(url.indexOf(buy) != -1){ 18 | var appid= $persistentStore.read("appid"); 19 | var body= obj.replace(/\d{6,}/, appid); 20 | console.log('🟢 Old_iPA_Downloader \nappid: ' + appid); 21 | $notification.post("Old_iPA_Downloader rewrite stustus: OK","",""); 22 | $done({body}); 23 | } -------------------------------------------------------------------------------- /langkhach/Surge/rules/Antirevoke.list: -------------------------------------------------------------------------------- 1 | DOMAIN,ocsp.apple.com 2 | -------------------------------------------------------------------------------- /langkhach/Surge/rules/Apple.list: -------------------------------------------------------------------------------- 1 | USER-AGENT,%E5%9C%B0%E5%9B%BE* 2 | USER-AGENT,%E8%AE%BE%E7%BD%AE* 3 | USER-AGENT,*com.apple.mobileme.fmip1 4 | USER-AGENT,*WeatherFoundation* 5 | USER-AGENT,AppleNews* 6 | USER-AGENT,AppStore* 7 | USER-AGENT,com.apple.appstored* 8 | USER-AGENT,com.apple.geod* 9 | USER-AGENT,com.apple.Maps 10 | USER-AGENT,com.apple.news* 11 | USER-AGENT,FindMyFriends* 12 | USER-AGENT,FindMyiPhone* 13 | USER-AGENT,FMDClient* 14 | USER-AGENT,FMFD* 15 | USER-AGENT,fmflocatord* 16 | USER-AGENT,geod* 17 | USER-AGENT,locationd* 18 | USER-AGENT,Maps* 19 | USER-AGENT,TestFlight* 20 | DOMAIN,apple.comscoreresearch.com 21 | DOMAIN-SUFFIX,apple.cn 22 | DOMAIN-SUFFIX,apple.com 23 | DOMAIN-SUFFIX,apple.news 24 | DOMAIN-SUFFIX,icloud.com 25 | DOMAIN-SUFFIX,icloud-content.com 26 | DOMAIN-SUFFIX,itunes.com 27 | DOMAIN-SUFFIX,me.com 28 | DOMAIN-SUFFIX,mzstatic.com -------------------------------------------------------------------------------- /langkhach/Surge/rules/AppleTV.list: -------------------------------------------------------------------------------- 1 | # > Apple TV 2 | DOMAIN,np-edge.itunes.apple.com 3 | DOMAIN,play-edge.itunes.apple.com 4 | DOMAIN-SUFFIX,tv.apple.com -------------------------------------------------------------------------------- /langkhach/Surge/rules/Applenew.list: -------------------------------------------------------------------------------- 1 | # > Apple News 2 | DOMAIN,gspe1-ssl.ls.apple.com 3 | DOMAIN,gspe1-ssl.ls.apple.com 4 | USER-AGENT,AppleNews* 5 | DOMAIN,gateway.icloud.com 6 | DOMAIN-SUFFIX,apple.news 7 | DOMAIN,news-client.apple.com 8 | DOMAIN,news-edge.apple.com 9 | DOMAIN,news-events.apple.com 10 | DOMAIN,apple.comscoreresearch.com -------------------------------------------------------------------------------- /langkhach/Surge/rules/BlockOTA.list: -------------------------------------------------------------------------------- 1 | DOMAIN,gdmf.apple.com 2 | DOMAIN,gdmf.apple.com.akadns.net 3 | DOMAIN,mesu.apple.com 4 | DOMAIN,mesu-cdn.apple.com.akadns.net 5 | DOMAIN,mesu-cdn.origin-apple.com.akadns.net 6 | DOMAIN,mesu.g.aaplimg.com 7 | DOMAIN,appldnld.apple.com 8 | DOMAIN,appldnld.apple.com.akadns.net 9 | -------------------------------------------------------------------------------- /langkhach/Surge/rules/Direct.list: -------------------------------------------------------------------------------- 1 | USER-AGENT,*MoMo* 2 | -------------------------------------------------------------------------------- /langkhach/Surge/rules/Facebook.list: -------------------------------------------------------------------------------- 1 | # Facebook 2 | DOMAIN-KEYWORD,facebook 3 | DOMAIN-KEYWORD,fbcdn 4 | -------------------------------------------------------------------------------- /langkhach/Surge/rules/GoogleDrive.list: -------------------------------------------------------------------------------- 1 | USER-AGENT,Google.Drive* 2 | USER-AGENT,com.google.Drive* 3 | USER-AGENT, %E4%BA%91%E7%AB%AF%E7%A1%AC%E7%9B%98* 4 | DOMAIN-SUFFIX,docs.google.com -------------------------------------------------------------------------------- /langkhach/Surge/rules/HBO.list: -------------------------------------------------------------------------------- 1 | # > HBO NOW & HBO GO 2 | USER-AGENT,HBO%20NOW* 3 | DOMAIN-SUFFIX,execute-api.ap-southeast-1.amazonaws.com 4 | DOMAIN-SUFFIX,hbo.com 5 | DOMAIN-SUFFIX,hbogo.com 6 | DOMAIN-SUFFIX,hboasia.com 7 | DOMAIN-SUFFIX,hbogo.com 8 | DOMAIN-SUFFIX,hbogoasia.com 9 | DOMAIN-SUFFIX,hbogoasia.hk -------------------------------------------------------------------------------- /langkhach/Surge/rules/Kakaotalk.list: -------------------------------------------------------------------------------- 1 | DOMAIN-SUFFIX,item.kakao.com 2 | DOMAIN-SUFFIX,booking-loco.kakao.com 3 | DOMAIN-SUFFIX,open.kakao.com 4 | DOMAIN-SUFFIX,open.kakaocdn.net -------------------------------------------------------------------------------- /langkhach/Surge/rules/MyViettel.list: -------------------------------------------------------------------------------- 1 | //My Viettel 2 | IP-CIDR,171.244.149.206/32 3 | DOMAIN-SUFFIX,vietteltelecom.vn 4 | IP-CIDR,10.60.102.165/32 5 | USER-AGENT,My%20Viettel* -------------------------------------------------------------------------------- /langkhach/Surge/rules/Netflix.list: -------------------------------------------------------------------------------- 1 | USER-AGENT,Argo* 2 | DOMAIN-SUFFIX,netflix.com 3 | DOMAIN-SUFFIX,netflix.net 4 | DOMAIN-SUFFIX,nflxext.com 5 | DOMAIN-SUFFIX,nflximg.com 6 | DOMAIN-SUFFIX,nflximg.net 7 | DOMAIN-SUFFIX,nflxso.net 8 | DOMAIN-SUFFIX,nflxvideo.net 9 | DOMAIN-KEYWORD,netflix 10 | DOMAIN-KEYWORD,nflx 11 | -------------------------------------------------------------------------------- /langkhach/Surge/rules/Speedtest.list: -------------------------------------------------------------------------------- 1 | # > Fast 2 | DOMAIN-SUFFIX,fast.com 3 | 4 | # > Speedtest 5 | USER-AGENT,SpeedTest* 6 | DOMAIN-KEYWORD,speedtest 7 | DOMAIN-SUFFIX,speedtest.net 8 | DOMAIN-SUFFIX,ooklaserver.net 9 | URL-REGEX,speedtest\d.macau.ctm.net:8080 10 | DOMAIN-SUFFIX,88-f.net 11 | DOMAIN,st.pautina-telecom.ru 12 | DOMAIN-SUFFIX,goodnet.su -------------------------------------------------------------------------------- /langkhach/Surge/rules/Spotify.list: -------------------------------------------------------------------------------- 1 | # > Spotify 2 | USER-AGENT,Spotify* 3 | DOMAIN-SUFFIX,pscdn.co 4 | DOMAIN-SUFFIX,scdn.co 5 | DOMAIN-SUFFIX,spotify.com 6 | DOMAIN-SUFFIX,spoti.fi -------------------------------------------------------------------------------- /langkhach/Surge/rules/YouTubeMusic.list: -------------------------------------------------------------------------------- 1 | # > Youtube_Music 2 | USER-AGENT,*YouTubeMusic* 3 | USER-AGENT,*com.google.ios.youtubemusic* -------------------------------------------------------------------------------- /langkhach/Surge/rules/Youtube.list: -------------------------------------------------------------------------------- 1 | # > YouTube 2 | USER-AGENT,com.google.ios.youtube* 3 | USER-AGENT,YouTube*,YouTube 4 | DOMAIN-SUFFIX,googlevideo.com 5 | DOMAIN-SUFFIX,youtube.com 6 | DOMAIN,youtubei.googleapis.com -------------------------------------------------------------------------------- /langkhach/Surge/servers/Ads.list: -------------------------------------------------------------------------------- 1 | 🚫 ad-gif = reject-tinygif 2 | 🔴 ad-block = reject 3 | 🟢 ad-pass = direct, interface = en0, -------------------------------------------------------------------------------- /langkhach/Surge/servers/Appcake.list: -------------------------------------------------------------------------------- 1 | 🔴 update-block = reject 2 | 🟢 update-install-pass = direct -------------------------------------------------------------------------------- /langkhach/Surge/servers/Final.list: -------------------------------------------------------------------------------- 1 | 🟢 Wifi = direct, interface=en0, allow-other-interface=true 2 | 🔵 Cellular = direct, interface=pdp_ip0, allow-other-interface=true -------------------------------------------------------------------------------- /langkhach/Surge/servers/winscribe.list: -------------------------------------------------------------------------------- 1 | 🇺🇸 = socks5, socks-us.windscribe.com, 1080, username=xxx, password=xxx 2 | 🇳🇿 = socks5, socks-nl.windscribe.com, 1080, username=xxx, password=notshare 3 | -------------------------------------------------------------------------------- /langkhach/Terminus.js: -------------------------------------------------------------------------------- 1 | let obj=JSON.parse($response.body) 2 | obj.account["pro_mode"] = true; 3 | obj.account["plan_type"] = "Premium"; 4 | obj.account["user_type"] = "Premium"; 5 | obj.account["current_period"]["until"] = "2099-10-10T03:27:34"; 6 | $done({body:JSON.stringify(obj)}) 7 | //bynubyta -------------------------------------------------------------------------------- /langkhach/Textnow.js: -------------------------------------------------------------------------------- 1 | /* 2 | ^https:\/\/api\.textnow\.me\/api2.0\/users\/.* url script-response-body langkhach/Textnow.js 3 | */var obj = JSON.parse($response.body); 4 | obj['show_ads'] = false; 5 | obj['premium_calling'] = true; 6 | $done({body: JSON.stringify(obj)}); 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /langkhach/altstore.js: -------------------------------------------------------------------------------- 1 | let obj = JSON.parse($response.body); 2 | obj ={ 3 | "data": { 4 | "attributes": { 5 | "first_name": "barry", 6 | "full_name": "barry chen" 7 | }, 8 | "id": "30618536", 9 | "relationships": { 10 | "memberships": { 11 | "data": [{ 12 | "id": "e3a5c718-d930-4b92-a8b9-677f4699c9a4", 13 | "type": "tier" 14 | }] 15 | } 16 | }, 17 | "type": "member" 18 | }, 19 | "included": [{ 20 | "attributes": { 21 | "full_name": "barry chen", 22 | "patron_status": "active_patron" 23 | }, 24 | "id": "e3a5c718-d930-4b92-a8b9-677f4699c9a4", 25 | "type": "member" 26 | }], 27 | "links": { 28 | "self":"https://www.patreon.com/api/oauth2/v2/user/30618536" 29 | } 30 | } 31 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /langkhach/beautyplusvip.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | 4 | obj= { 5 | "status": 0, 6 | "expires_date": "9999-06-06 19:57:41" 7 | }; 8 | $done({body: JSON.stringify(obj)}); 9 | 10 | 11 | // Mô tả 12 | -------------------------------------------------------------------------------- /langkhach/blinkist.js: -------------------------------------------------------------------------------- 1 | let obj=JSON.parse($response.body); 2 | let url = $request.url; 3 | const cons1= "https://api.blinkist.com/v4/me"; 4 | const cons2= "https://api.blinkist.com/v4/me.json"; 5 | const cons3= "https://api.blinkist.com/v4/me/access"; 6 | if((url===cons1)||(url===cons2)) 7 | { 8 | obj["user"]["trial_ending_at"]="2099-11-07T19:26:12.000+00:00"; 9 | obj["user"]["free_access_ending_at"] = "2099-11-02T10:43:43.483+00:00"; 10 | obj["user"]["subscription_period_ending_at"]= "2099-11-02T10:43:43.483+00:00"; 11 | obj["user"]["access_type"]= "premium"; 12 | obj["user"]["access_source"]="itunes"; 13 | obj["user"]["features"]= 14 | [ 15 | "read", 16 | "text_marker", 17 | "audio", 18 | "send_to_kindle", 19 | "evernote", 20 | "minute", 21 | "sync_to_evernote", 22 | "home_row_localization" 23 | ]; 24 | obj["user"]["current_minute_id"]= "onboarding_4"; 25 | obj["user"] ["current_minute_id_expires_at"]= "2099-11-06T23:00:00.000Z"; 26 | obj["user"] ["minute_subscribed_at"]= "2019-11-01T14:46:17.000Z"; 27 | } 28 | if(url===cons3) 29 | { 30 | obj["user_access"]["type"]="premium"; 31 | obj["user_access"]["marketplace"]= "itunes"; obj["user_access"]["valid_until"]= "2099-11-07T19:26:12.000+00:00"; 32 | obj["user_access"]["premium"]= "softpaywall"; 33 | } 34 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /langkhach/busuu.vip.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj.data.is_premium= true; 3 | obj.data.access.tier= "plus"; 4 | $done({body: JSON.stringify(obj)}); 5 | -------------------------------------------------------------------------------- /langkhach/calm.vip.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj["subscription"]= { 4 | "in_free_trial_window": true, 5 | "subscription_plan": "com.calm.yearly.trial.one_week.usd_50", 6 | "began": "2019-04-22T12:12:54.000Z", 7 | "is_lifetime": true, 8 | "valid": true, 9 | "is_renewable": true, 10 | "is_in_billing_retry_period": false, 11 | "will_renew": true, 12 | "expires": "2099-04-29T12:12:54.000Z", 13 | "user_id": "KgagpU1URv", 14 | "type": "ios", 15 | "is_canceled": false, 16 | "free_trial_began": "2019-04-22T12:12:54.000Z", 17 | "coupon_used": false, 18 | "has_ever_done_free_trial": true, 19 | "is_free": false, 20 | "ios_details": { 21 | "product_id": "com.calm.yearly.trial.one_week.usd_50", 22 | "began": "2019-04-22T12:12:54.000Z", 23 | "is_free_trial": true, 24 | "id": "540000370675471", 25 | "is_canceled": false, 26 | "is_renewable": true, 27 | "free_trial_ended": "2099-04-29T12:12:54.000Z", 28 | "free_trial_began": "2019-04-22T12:12:54.000Z", 29 | "will_renew": true, 30 | "original_transaction_id": "540000370675471", 31 | "expires": "2099-04-29T12:12:54.000Z" 32 | }, 33 | "free_trial_ended": "2099-04-29T12:12:54.000Z" 34 | }; 35 | 36 | $done({body: JSON.stringify(obj)}); 37 | 38 | -------------------------------------------------------------------------------- /langkhach/camera360.vip.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj= 3 | { 4 | "status": 200, 5 | "data": { 6 | "sandbox": 1, 7 | "purchaseTime": 1571682188, 8 | "giftVip": 0, 9 | "productId": "VIP_yearly_29.99", 10 | "appleVip": 1, 11 | "expireTime": 4096532852, 12 | "operationVip": 1, 13 | "errorCode": 0 14 | }, 15 | "message": "ok", 16 | "exetime": "1572056389212-1572056391362", 17 | "serverTime": 1572056391.3622 18 | }; 19 | $done({body: JSON.stringify(obj)}); 20 | -------------------------------------------------------------------------------- /langkhach/cleancacheulysses.js: -------------------------------------------------------------------------------- 1 | /*http-request ^https:\/\/sk\.ulysses\.app\/api\/v1\/user_offers$ script-path= cleancacheulysses.js 2 | */ 3 | 4 | //mitm: sk.ulysses.app 5 | 6 | 7 | const headers = $request.headers 8 | delete headers["If-None-Match"] 9 | $done({headers}) -------------------------------------------------------------------------------- /langkhach/dayone.js: -------------------------------------------------------------------------------- 1 | if ($response.statusCode == 200) { 2 | if ($request.url.endsWith("account-status")) { 3 | 4 | $done({body: JSON.stringify({ 5 | "expirationDate": 1893427199000, 6 | "startDate": 1546272000000, 7 | "subscriptionPlan": "com.bloombuilt.dayoneios.subscription.premium.yearly_discounted_trial", 8 | "lastRenewalDate": 1546531200000, 9 | "subscriptionName": "premium", 10 | "bundleReason": "purchase", 11 | "cancellationDate": 0 12 | } )}); 13 | 14 | } else { 15 | const bodyJson = JSON.parse($response.body); 16 | 17 | bodyJson.featureBundle = {"bundleName":"premium","features":[{"name":"imagesPerEntry","limit":30,"canUpgrade":false},{"name":"printingDiscount","canUpgrade":false},{"name":"syncMac","canUpgrade":false},{"name":"prioritySupport","canUpgrade":false},{"name":"sync","canUpgrade":false},{"name":"journalLimit","limit":100,"canUpgrade":false},{"name":"audioPerEntry","limit":10,"canUpgrade":false}]}; 18 | 19 | $done({body: JSON.stringify(bodyJson)}); 20 | } 21 | } else { 22 | $done({}); 23 | } 24 | -------------------------------------------------------------------------------- /langkhach/dayone.surge.js: -------------------------------------------------------------------------------- 1 | if ($response.status == 200) { 2 | if ($request.url.endsWith("account-status")) { 3 | $done({body: JSON.stringify({ 4 | "expirationDate": 1893427199000, 5 | "startDate": 1546272000000, 6 | "subscriptionPlan": "com.bloombuilt.dayoneios.subscription.premium.yearly_discounted_trial", 7 | "lastRenewalDate": 1546531200000, 8 | "subscriptionName": "premium", 9 | "bundleReason": "purchase", 10 | "cancellationDate": 0 11 | } )}); 12 | } 13 | else { let body= $response.body; 14 | let obj= JSON.parse(body); 15 | const feature= {"bundleName":"premium","features":[{"name":"imagesPerEntry","limit":30,"canUpgrade":false},{"name":"printingDiscount","canUpgrade":false},{"name":"syncMac","canUpgrade":false},{"name":"prioritySupport","canUpgrade":false},{"name":"sync","canUpgrade":false},{"name":"journalLimit","limit":100,"canUpgrade":false},{"name":"audioPerEntry","limit":10,"canUpgrade":false}]}; 16 | if(body.indexOf("featureBundle") !=-1) 17 | { 18 | obj["featureBundle"]= feature; 19 | } 20 | else { 21 | obj["bundle"]= feature; 22 | } 23 | $done({body: JSON.stringify(obj)}); 24 | } 25 | } else { 26 | $done({}); 27 | } 28 | -------------------------------------------------------------------------------- /langkhach/documents.js: -------------------------------------------------------------------------------- 1 | 2 | var obj= { 3 | "originalTransactionId" : "20000625420102", 4 | "subscriptionState" : "trial", 5 | "isInGracePeriod" : false, 6 | "subscriptionExpirationDate" : "17:48 25/11/2099", 7 | "isDocuments6User" : true, 8 | "isEligibleForIntroPeriod" : false, 9 | "subscriptionAutoRenewStatus" : "autoRenewOff", 10 | "subscriptionReceiptId" : "1530908572000" 11 | }; 12 | 13 | $done({body: JSON.stringify(obj)}); 14 | 15 | // Descriptions -------------------------------------------------------------------------------- /langkhach/draft.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj= { 4 | "active_expires_at" : "2029-01-01T00:00:00Z", 5 | "is_subscription_active" : true, 6 | "active_subscription_type" : "premium", 7 | "is_blocked" : false 8 | }; 9 | 10 | $done({body: JSON.stringify(obj)}); 11 | 12 | // Descriptions -------------------------------------------------------------------------------- /langkhach/duolingo.js: -------------------------------------------------------------------------------- 1 | var body = $response.body; 2 | var url = $request.url; 3 | var obj = JSON.parse(body); 4 | obj['num_sessions_remaining_to_unlock'] = 0; 5 | obj['tier'] = 4; 6 | if(!obj['active']) 7 | { 8 | obj['active'] = {}; 9 | } 10 | obj['active']['collab_goal_accepted'] = false; 11 | obj['active']['complete'] = false; 12 | if(!obj['active']['contest']){ 13 | obj['active']['contest'] = {} 14 | } 15 | obj['active']['contest']['contest_end'] = '2099-11-04T00:00:00Z' 16 | obj['active']['contest']['contest_start'] = '2019-10-28T00:00:00Z' 17 | obj['active']['contest']['contest_state'] = 'ACTIVE' 18 | obj['active']['contest']['registration_end'] = '2099-11-03T00:00:00Z' 19 | obj['active']['contest']['registration_state'] = 'OPEN' 20 | body = JSON.stringify(obj); 21 | $done({body}); 22 | -------------------------------------------------------------------------------- /langkhach/elevate.vip.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj.user.is_on_free_trial= false; 3 | obj.user.subscription_expiration_date_epoch= 4100909894; 4 | obj.user.current_subscription= { 5 | "sku": "com.elevateapp.elevate.renewable.year_subscription_16", 6 | "duration": "annual", 7 | "store": "App Store" 8 | }; 9 | obj.user.can_purchase= false; 10 | 11 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /langkhach/elsa-header.js: -------------------------------------------------------------------------------- 1 | let headers = $request.headers 2 | headers["x-session-token"]= "F3S0w0bysBQFdbjtxpFurrFv2ItBBcBkVQxUddQW+9vjt2JXM751ksqq5GAWpkl+kk9nhig9BGh9JhYHQaokmendY6zLZDscHiRkZD2HrdJclKVCLordAARJhYIrf5C+5OSK6ax2TA45CKi8S09FEtYXN4noXO7gt42NT6WPIv6DKhdIwVxQuIAMLU5abmpMTDlyWeI4ulBWcOQbuZWWZg=="; 3 | $done({headers}) -------------------------------------------------------------------------------- /langkhach/elsa-response.js: -------------------------------------------------------------------------------- 1 | 2 | var obj = JSON.parse($response.body); 3 | if($request.method=="GET") 4 | { 5 | obj["subscriptions"] = [ 6 | { 7 | "expire_at": "21190505", 8 | "subscription": "lifetime_membership", 9 | "days_to_end": 36469, 10 | "created_at": "20190529151809" 11 | } 12 | ]; 13 | $done({body: JSON.stringify(obj)}); 14 | } 15 | -------------------------------------------------------------------------------- /langkhach/endel.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj["subscription_info"]= { 4 | "type" : "IOS", 5 | "valid_until" : 1873089612.367564 6 | }; 7 | 8 | $done({body: JSON.stringify(obj)}); 9 | 10 | // Descriptions -------------------------------------------------------------------------------- /langkhach/grammarly.js: -------------------------------------------------------------------------------- 1 | let obj = JSON.parse($response.body) 2 | obj.isPremium = true; 3 | $done({body:JSON.stringify(obj)}) -------------------------------------------------------------------------------- /langkhach/instasize.vip.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj= { 4 | "data": { 5 | "id": "2354993", 6 | "type": "ios_subscriptions", 7 | "attributes": { 8 | "intro_offer_period": false, 9 | "created_at": "2019-04-26T18:59:13.664Z", 10 | "expires_at": "2119-05-03T18:59:11.000Z", 11 | "trial": true, 12 | "validated_on_request": true, 13 | "renewal_info": { 14 | "auto_renew": true, 15 | "auto_renew_product_type": "instasize_premium_plus_subscription" 16 | }, 17 | "original_transaction_id": "540000371928348", 18 | "updated_at": "2019-04-26T18:59:23.144Z", 19 | "pay_as_you_go": false, 20 | "updated_by": "validation", 21 | "payments_count": 0, 22 | "product_type": "instasize_premium_plus_subscription", 23 | "environment": "Production", 24 | "status": "active", 25 | "intro_price_expires_at": null 26 | } 27 | } 28 | }; 29 | 30 | $done({body: JSON.stringify(obj)}); 31 | 32 | // Mô tả 33 | -------------------------------------------------------------------------------- /langkhach/itranslate.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj= {"licenses": [{"is_trial_period": true, "product_id": "com.itranslate.pro.yearly", "original_transaction_id": "20000627379146", "expires_date_ms": 4099246456000, "bundle_id": "com.outerspaceapps.itranslate", "transaction_id": "20000627379146"}, {"is_trial_period": true, "product_id": "com.itranslate.pro.yearly", "original_transaction_id": "20000627379146", "expires_date_ms": 4099246456000, "bundle_id": "com.outerspaceapps.itranslate", "transaction_id": "20000627379146"}]}; 4 | 5 | $done({body: JSON.stringify(obj)}); 6 | 7 | // Descriptions -------------------------------------------------------------------------------- /langkhach/jibjab.vip.js: -------------------------------------------------------------------------------- 1 | let obj = JSON.parse($response.body); 2 | obj.data.attributes["is-paid"] = true; 3 | $done({body: JSON.stringify(obj)}); 4 | //bynubyta -------------------------------------------------------------------------------- /langkhach/kinemaster.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj= { 4 | "is_valid_device" : true, 5 | "has_valid_subscription" : true, 6 | "expiration_date_ms" : 4097755192000, 7 | "is_table_resettable" : true, 8 | "subscription_product_id" : "com.kinemaster.sub.annual.ia2", 9 | "state_code" : 0 10 | }; 11 | 12 | $done({body: JSON.stringify(obj)}); 13 | 14 | // Descriptions -------------------------------------------------------------------------------- /langkhach/lingokids.vip.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj["info"]["subscriptions"]= [ 4 | { 5 | "status": "active", 6 | "product": "unlimited", 7 | "duration_unit": "months", 8 | "id": 805063, 9 | "platform": "apple", 10 | "duration_value": 1, 11 | "starts_at": 1572617692, 12 | "ends_at": 4099821292, 13 | "auto_renew_status": true, 14 | "plan_id": "lk.ios.s1m.t1m.p15.v1", 15 | "state": "active" 16 | }]; 17 | 18 | $done({body: JSON.stringify(obj)}); 19 | 20 | // Descriptions -------------------------------------------------------------------------------- /langkhach/memrise.vip.js: -------------------------------------------------------------------------------- 1 | let obj = JSON.parse($response.body); 2 | let url = $request.url; 3 | const cons1 = "me/"; 4 | const cons2 = "dashboard/"; 5 | const cons3 = "following/"; 6 | 7 | if(url.endsWith(cons1)) { 8 | obj["profile"]["is_pro"] = true; 9 | } 10 | 11 | if(url.endsWith(cons2)) { 12 | obj["user"]["is_premium"] = true; 13 | } 14 | 15 | if(url.indexOf(cons3) != -1 ) { 16 | obj["users"][0]["is_premium"] = true; 17 | } 18 | $done({body: JSON.stringify(obj)}); 19 | -------------------------------------------------------------------------------- /langkhach/mimo.vip.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj= { 4 | "source": "ios", 5 | "status": "active", 6 | "interval": "yearly", 7 | "billingInfo": { 8 | "currency": "USD", 9 | "nextBillingPrice": 59.98999999999999 10 | }, 11 | "subscriptions": [ 12 | { 13 | "source": "ios", 14 | "status": "active", 15 | "interval": "yearly", 16 | "billingInfo": { 17 | "currency": "USD", 18 | "nextBillingPrice": 59.98999999999999 19 | }, 20 | "intervalCount": 1, 21 | "activeUntil": "2099-10-10T08:04:21+00:00", 22 | "createdAt": "2019-10-03T08:04:21+00:00", 23 | "clientSecret": "", 24 | "isActive": true 25 | } 26 | ], 27 | "intervalCount": 1, 28 | "activeUntil": "2099-10-10T08:04:21+00:00", 29 | "createdAt": "2019-10-03T08:04:21+00:00", 30 | "clientSecret": "", 31 | "isActive": true 32 | }; 33 | 34 | $done({body: JSON.stringify(obj)}); 35 | -------------------------------------------------------------------------------- /langkhach/mondly.vip.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj["pucharses"]= [10]; 4 | obj["subscriptions"]= { 5 | "10": "2099-09-09 05:05:05" 6 | }; 7 | obj["subscription"]= { 8 | "10": "2099-09-09 05:05:05" 9 | }; 10 | obj["parsed_transactions"]= [ 11 | "540000370283138" 12 | ]; 13 | $done({body: JSON.stringify(obj)}); 14 | -------------------------------------------------------------------------------- /langkhach/monkey.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj.data.purchased= 4 | { 5 | "product_list": [ 6 | ], 7 | "is_active": true, 8 | "time_expire": 0, 9 | "pay_inapp": true, 10 | "is_free": false 11 | }; 12 | $done({body: JSON.stringify(obj)}); 13 | 14 | // Descriptionsp -------------------------------------------------------------------------------- /langkhach/musicalm.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj["data"]["is_premium"]=1; 4 | obj["meta"]["current_subscription_expiration_date"]= "2 November 2099"; 5 | obj["meta"]["current_subscription_expiry_date"]= "2099-11-09 04:48:25"; 6 | $done({body: JSON.stringify(obj)}); 7 | 8 | // Descriptions -------------------------------------------------------------------------------- /langkhach/musixmatch.miao.js: -------------------------------------------------------------------------------- 1 | let obj=JSON.parse($response.body); 2 | let usr=obj.message.body; 3 | usr.app_config.trial=false; 4 | usr.app_config.active_products=[ 5 | { 6 | "product_id" : "com.musixmatch.offers.removeads.autorenewable.oneyear", 7 | "start_date" : "2019-10-27T16:27:38.000Z", 8 | "creation_date" : "2019-10-27T16:27:38.000Z", 9 | "credits" : 10, 10 | "end_date" : "2099-11-03T17:27:38.000Z", 11 | "product_type" : "subscription", 12 | "features" : { 13 | "no_ads" : 1, 14 | "clean_metadata" : 1, 15 | "party_mode" : 1, 16 | "lyrics_offline" : 1 17 | } 18 | } 19 | ], 20 | 21 | usr.app_config.reference= "active"; 22 | usr.app_config.last_modified="Fri Nov 08 2019 17:35:48 GMT+0000 (UTC)"; 23 | $done({body: JSON.stringify(obj)}); -------------------------------------------------------------------------------- /langkhach/nhaccuatui.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | let url = $request.url; 3 | var cons = "users/info"; 4 | if(url.indexOf(cons) != -1) 5 | { 6 | obj.data.VIPExpire= "27/03/9999 00:00:00"; 7 | obj.data.isVIP= true; 8 | } 9 | $done({body: JSON.stringify(obj)}); 10 | -------------------------------------------------------------------------------- /langkhach/nichi.js: -------------------------------------------------------------------------------- 1 | body = $response.body.replace(/preview/g, "free").replace(/view/g, "unlimited").replace(/true/g, "false"); 2 | $done({body}); -------------------------------------------------------------------------------- /langkhach/over.vip.js: -------------------------------------------------------------------------------- 1 | var body = $response.body; 2 | let obj = JSON.parse(body); 3 | obj.user.subscription["isSubscriptionActive"] = true; 4 | obj.user.subscription["entitlement"] = ["OVER_PRO"]; 5 | $done({body:JSON.stringify(obj)}); 6 | 7 | -------------------------------------------------------------------------------- /langkhach/photoshop.js: -------------------------------------------------------------------------------- 1 | let obj = JSON.parse($response.body) 2 | let pro= obj["mobileProfile"]; 3 | pro["profileStatus"] = "PROFILE_AVAILABLE"; 4 | pro["legacyProfile"] = "{}"; 5 | pro["relationshipProfile"] = "[]"; 6 | $done({body: JSON.stringify(obj)}) -------------------------------------------------------------------------------- /langkhach/picsArt.vip.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj.subscription= { 4 | "granted": true 5 | }; 6 | $done({body: JSON.stringify(obj)}); 7 | 8 | // Mô tả 9 | -------------------------------------------------------------------------------- /langkhach/planner5d.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj= 4 | { 5 | "accessDays": 999999999, 6 | "allSets": 1, 7 | "error": 0, 8 | "m": { 9 | "r": "999999999", 10 | "useSubscriptions": true, 11 | "expiredSubscription": "999999999", 12 | "subscription": "com.planner5d.planner5d.subscription.yearly" 13 | } 14 | }; 15 | 16 | $done({body: JSON.stringify(obj)}); 17 | 18 | // Descriptions 19 | -------------------------------------------------------------------------------- /langkhach/playerxtreme.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj= 4 | { 5 | "res": "OK", 6 | "response": { 7 | "result": "0", 8 | "purchases": [{ 9 | "productID": "com.pentaloop.playerx.addon.pro", 10 | "purchaseDate": "2019-12-14 21:31:16 Etc/GMT", 11 | "originalPurchaseDate": "2019-12-14 21:31:16 Etc/GMT", 12 | "type": "0", 13 | "isTrialPeriod": "false" 14 | }] 15 | } 16 | }; 17 | 18 | $done({body: JSON.stringify(obj)}); 19 | 20 | // Descriptions -------------------------------------------------------------------------------- /langkhach/productive.js: -------------------------------------------------------------------------------- 1 | var obj = 'NrhWQe0eCWjK87jNSzCeR6kCEXJC+XjEAMd6fgwyNTkyAgWt2Ej2RM2amodpkQHVpBovl\/a1MAKQ2fcsM+EUha2gYEg1Y8IV5AXSnsD+hWsIIb3JhIibc4XeDn3FZmEUZJECESNOQ50W0V9piL1UJEKd0yTEpaG0JRKzcJOQF4MCoD6dRQN8VpNRg\/IY\/7iyfrTYpv0gvNNmi08upsDVO\/m0DO1qvY8WR0Cwk\/4bLl8xpwDH3IFF7xt6Sy9MdTGczXwsdtzZVIY004W+6DXGmt00eJSD6fmsUGDTLDUK9rhqFPpDg2+Y3ISVnlFih3gHL0Xv1o2QcvZKZf4APAHuY4jrz2Z8jZ35HMH28\/2htiejLzCtCMLqDcNzcdtczk43CWaiRcL8rQhN3\/eylOu2dLD4KPAoaoyY5PXWDgTLgNfDqRaZAcPWyHT6pEjiUrArKD\/1kGqgOBFaLngUIHcxHGn5M2SNawBCv1XUdCijvckCPzw4KIyEykV9\/+4yM\/0Jz2BxwKMMdaTJlFw4cJ0ohyipPqak4aOLbsQg1Ezpchc='; 2 | $done({body: obj}); -------------------------------------------------------------------------------- /langkhach/proxy.js: -------------------------------------------------------------------------------- 1 | /* 2 | list raw example: http://spys.me/proxy.txt 3 | //Surge4 4 | http-response ^http:\/\/spys\.me\/proxy\.txt$ requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/langkhach270389/Scripting/master/proxy.js 5 | 6 | // 7 | FreeProxy = url-test, url=http://www.google.com/generate_204, policy-path=http://spys.me/proxy.txt, update-interval=3600, timeout=0, interval=0, tolerance=0 8 | // 9 | */ 10 | var obj= $response.body; 11 | var proxy= []; 12 | obj= obj.match(/((\d{1,3}\.){3}\d{1,3}):(\d+).+([A-Z]){2}.+(S\s\+).+\n/g); 13 | for (var i = 0; i < obj.length; i++) { 14 | proxy[i]= obj[i].match(/[A-Z]{2}-[A-Z]{1}-S/) + "_" +i + " = http, " + obj[i]; 15 | } 16 | console.log(proxy); 17 | $done({body: proxy.toString().replace(/[A-Z]{2},/g, "\n [A-Z]{2}").replace(/\n,/g, "\n").replace(/:/g, ", ")}); 18 | -------------------------------------------------------------------------------- /langkhach/pushover.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | 3 | obj["user"]["is_ios_licensed"]= true; 4 | 5 | $done({body: JSON.stringify(obj)}); 6 | 7 | // Descriptions -------------------------------------------------------------------------------- /langkhach/quanx.js: -------------------------------------------------------------------------------- 1 | /* 2 | hostname = raw.githubusercontent.com, *.github.io, 3 | ^https:\/\/(raw.githubusercontent|\w+\.github)\.(com|io)\/.*\.js$ url script-response-body quanx.js 4 | */ 5 | var body = $response.body; 6 | body = '\/*\n@supported F06A2C1CA3BE\n*\/\n' + body; 7 | $done(body); -------------------------------------------------------------------------------- /langkhach/remove-nonematch.js: -------------------------------------------------------------------------------- 1 | const headers = $request.headers 2 | delete headers["If-None-Match"] 3 | $done({headers}) -------------------------------------------------------------------------------- /langkhach/revenuecat.js: -------------------------------------------------------------------------------- 1 | let obj = JSON.parse($response.body); 2 | obj["subscriber"]["subscriptions"]= { 3 | "revenuecat.pro.yearly": { 4 | "is_sandbox": false, 5 | "period_type": "active", 6 | "billing_issues_detected_at": null, 7 | "unsubscribe_detected_at": null, 8 | "expires_date": "2099-12-01T03:51:32Z", 9 | "original_purchase_date": "2019-10-31T02:51:33Z", 10 | "purchase_date": "2019-10-31T02:51:32Z", 11 | "store": "app_store" 12 | } 13 | }; 14 | obj["subscriber"]["entitlements"]= { 15 | "pro": { 16 | "expires_date": "2099-12-01T03:51:32Z", 17 | "product_identifier": "revenuecat.pro.yearly", 18 | "purchase_date": "2019-10-31T02:51:32Z" 19 | } 20 | }; 21 | $done({body: JSON.stringify(obj)}); 22 | -------------------------------------------------------------------------------- /langkhach/shopee_checkin.js: -------------------------------------------------------------------------------- 1 | /* 2 | [Script] 3 | cron "0 6 * * *" script-path=Shopee_checkin.js 4 | 5 | http-request ^https:\/\/shopee\.vn\/me\/setting max-size=0,script-path=shopee_getcookie.js 6 | 7 | MITM = shopee.vn 8 | */ 9 | var shopeeUrl = { 10 | url: 'https://shopee.vn/mkt/coins/api/v2/checkin', 11 | headers: { 12 | Cookie: $persistentStore.read("CookieSP"), 13 | } 14 | } 15 | $httpClient.post(shopeeUrl, function(error, response, data){ 16 | if (error) { 17 | $notification.post("Shopee checkin", "", "Lỗi kết nối‼️") 18 | $done(); 19 | } 20 | else{ 21 | if(response.status == 200) 22 | { 23 | let obj= JSON.parse(data); 24 | if(obj["data"]["success"]) 25 | { 26 | var user = obj["data"]["username"]; 27 | var coins = obj["data"]["increase_coins"]; 28 | $notification.post("Shopee " + user, "", "Đã nhận được " + coins + "💰"); 29 | $done(); 30 | } 31 | } 32 | else{ 33 | $notification.post("Shopee Cookie đã hết hạn‼️", "", "Hãy đăng nhập lại 🔓"); 34 | } 35 | } 36 | }); 37 | -------------------------------------------------------------------------------- /langkhach/shopee_cookie.js: -------------------------------------------------------------------------------- 1 | /* 2 | Shoppe Check in Get Cookie. 3 | The following URL check in once 4 | https://shopee.vn 5 | 6 | http-request ^https:\/\/shopee\.vn\/me\/setting max-size=0,script-path=shopee_getcookie.js 7 | 8 | MITM = shopee.vn 9 | */ 10 | 11 | if ($request.headers['Cookie']) { 12 | var headerSP = $request.headers['Cookie']; 13 | var cookie = $persistentStore.write(headerSP, "CookieSP"); 14 | if (!cookie){ 15 | $notification.post("Shopee Cookie lỗi‼️", "", "Đăng nhập lại") 16 | } else { 17 | $notification.post("Shopee Cookie done🎉🎉", "", "") 18 | } 19 | } else { 20 | $notification.post("Shopee lỗi đọc cookiee‼️", "", "Đăng nhập lại") 21 | } 22 | $done({}) -------------------------------------------------------------------------------- /langkhach/sololearn.js: -------------------------------------------------------------------------------- 1 | /* 2 | QX: ^https:\/\/api\.sololearn\.com\/(authenticateDevice|challenge\/GetContestFeed|Profile\/GetProfile)$ url script-response-body langkhach/sololearn.js 3 | 4 | Surge: http-response ^https:\/\/api\.sololearn\.com\/(authenticateDevice|challenge\/GetContestFeed|Profile\/GetProfile)$ requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/langkhach270389/Scripting/master/sololearn.js 5 | 6 | hostname=api.sololearn.com 7 | */ 8 | 9 | let url=$request.url; 10 | let obj=JSON.parse($response.body); 11 | 12 | if (url.endsWith('authenticateDevice')) { 13 | obj.user.badge="platinum|platinum_mod|pro"; 14 | obj.user.accessLevel=65520; 15 | obj.user.isPro=true; 16 | obj.user.proExpireDate="2099-01-31T00:00:00"; 17 | } 18 | 19 | if (url.endsWith('GetContestFeed')) { 20 | let num=obj.feed.length; 21 | if (num==0) { 22 | $done({}); 23 | } else { 24 | for (var i=0;i { 27 | if(response.statusCode == 404) { 28 | $notify('获取播放链接失败', '使用原始链接', 'biliplus未收录此资源或服务器错误') 29 | $done({}) 30 | } else { 31 | //$notify('获取播放链接成功', '使用大会员链接', 'success'); 32 | $done(response.body); 33 | } 34 | }, reason => { 35 | $notify('获取播放链接失败', '使用原始链接', 'biliplus未收录此资源或服务器错误') 36 | $done({}) 37 | }); -------------------------------------------------------------------------------- /onewayticket255/bilibili_season_qx.js: -------------------------------------------------------------------------------- 1 | /* 2 | quantumult x: 3 | [rewrite_local] 4 | ^https:\/\/api\.bilibili\.com\/pgc\/view\/app\/season url script-response-body bilibili_season_qx.js 5 | [mitm] 6 | hostname=api.bilibili.com 7 | 8 | Original author:@onewayticket255 9 | */ 10 | 11 | let url = $request.url 12 | 13 | function getParams(key) { 14 | let regex = new RegExp(`${key}=(\\d*?)&`) 15 | let tmp = regex.exec(url) 16 | if (tmp) { 17 | return tmp[1] 18 | } 19 | } 20 | 21 | let season_id = getParams("season_id") 22 | 23 | if (season_id) { 24 | let api = `https://bilibili.mlyx.workers.dev/?season_id=${season_id}` 25 | 26 | var biliUrl = { 27 | url: api, 28 | method: "GET" 29 | }; 30 | 31 | $task.fetch(biliUrl).then(response => { 32 | if(response.statusCode == 404) { 33 | $notify('获取播放链接失败', '使用原始链接', 'biliplus未收录此资源或服务器错误') 34 | $done({}) 35 | } else { 36 | //$notify('获取播放链接成功', '使用大会员链接', 'success') 37 | $done(response.body) 38 | } 39 | }, reason => { 40 | $notify('获取播放链接失败', '使用原始链接', 'biliplus未收录此资源或服务器错误') 41 | $done({}) 42 | }); 43 | } else { 44 | $done({}) 45 | } -------------------------------------------------------------------------------- /onewayticket255/module/zhihu.sgmodule: -------------------------------------------------------------------------------- 1 | #!name= zhihu 2 | #!desc= Remove zhihu ads 3 | #!system=ios 4 | 5 | [Rule] 6 | USER-AGENT,AVOS*,REJECT-TINYGIF 7 | URL-REGEX,https://www.zhihu.com/api/v4/mcn/,REJECT 8 | URL-REGEX,https://api.zhihu.com/(ab|adx|xen|club|fringe|zst|commercial|ad-style-service|market/popover|search/(top|tab|preset)|.*(guide|recommendations|extended|featured-comment-ad)),REJECT 9 | AND,((USER-AGENT,osee2*), (NOT,((DOMAIN-SUFFIX,zhihu.com))), (NOT,((DOMAIN-SUFFIX,zhimg.com)))),REJECT-TINYGIF 10 | 11 | 12 | [MITM] 13 | hostname = %APPEND% www.zhihu.com, api.zhihu.com 14 | 15 | 16 | [Script] 17 | zhihu people = type=http-response,requires-body=1,max-size=0,pattern=https://api.zhihu.com/people/,script-path=https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20zhihu%20people.js 18 | zhihu feed = type=http-response,requires-body=1,max-size=0,pattern=https://api.zhihu.com/moments/recommend,script-path=https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20zhihu%20feed.js 19 | zhihu recommend = type=http-response,requires-body=1,max-size=0,pattern=https://api.zhihu.com/topstory/recommend,script-path=https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20zhihu%20recommend.js 20 | zhihu answer = type=http-response,requires-body=1,max-size=0,pattern=https://api.zhihu.com/v4/questions,script-path=https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20zhihu%20answer.js 21 | 22 | -------------------------------------------------------------------------------- /onewayticket255/snell/README.md: -------------------------------------------------------------------------------- 1 | ## Automatically Update Snell 2 | image 3 | 4 | ## Requirements 5 | Ubuntu 6 | [Bark](https://github.com/Finb/Bark)(Optional) 7 | 8 | ## Usage 9 | ``` 10 | apt install nodejs unzip curl 11 | mkdir snell 12 | cd snell 13 | curl -O -L https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/snell/main.js 14 | nohup node main.js [YOUR_BARK_ID](Optional) 15 | ``` 16 | ## Surge 17 | ``` 18 | snellv2 = snell, YOUR_IP, 2333, psk=password, obfs=http, obfs-host=bing.com, tfo=true 19 | ``` -------------------------------------------------------------------------------- /onewayticket255/surge_bilibili_feed.js: -------------------------------------------------------------------------------- 1 | let body = $response.body 2 | body=JSON.parse(body) 3 | body['data']['items'].forEach((element, index)=> { 4 | if(element.hasOwnProperty('ad_info')||element.hasOwnProperty('banner_item')||element['card_type']!='small_cover_v2'){ 5 | body['data']['items'].splice(index,1) 6 | } 7 | }) 8 | body=JSON.stringify(body) 9 | $done({body}) 10 | -------------------------------------------------------------------------------- /onewayticket255/surge_bilibili_live.js: -------------------------------------------------------------------------------- 1 | let body = $response.body 2 | body=JSON.parse(body) 3 | body['data']['activity_banner_info']=null 4 | body=JSON.stringify(body) 5 | $done({body}) 6 | -------------------------------------------------------------------------------- /onewayticket255/surge_bilibili_reply.js: -------------------------------------------------------------------------------- 1 | let body = $response.body 2 | body=JSON.parse(body) 3 | delete body['data']['notice'] 4 | body=JSON.stringify(body) 5 | $done({body}) -------------------------------------------------------------------------------- /onewayticket255/surge_bilibili_space.js: -------------------------------------------------------------------------------- 1 | let url = $request.url 2 | let regex = /vmid=(\d*)/ 3 | let vmid = regex.exec(url) 4 | let mid = vmid[1] 5 | let api = `https://space.bilibili.com/ajax/member/getSubmitVideos?mid=${mid}&pagesize=10&order=stow` 6 | $httpClient.get(api, (error, response, body) => { 7 | if (error) { 8 | $done({}) 9 | } 10 | else { 11 | console.log(body) 12 | body = JSON.parse(body) 13 | let info = "" 14 | body['data']['vlist'].forEach((element, index) => { 15 | index++ 16 | let scheme = `bilibili://av/${element['aid']}` 17 | info += index + ": " + element['title'] + "\n" + scheme + "\n" 18 | }) 19 | $notification.post('收藏排行前10', '长按进入', info) 20 | $done({}) 21 | } 22 | }) -------------------------------------------------------------------------------- /onewayticket255/surge_bilibili_view_relate.js: -------------------------------------------------------------------------------- 1 | let body = $response.body 2 | body=JSON.parse(body) 3 | body['data']['relates'].forEach((element, index)=> { 4 | if(element.hasOwnProperty('is_ad')||!element.hasOwnProperty('aid')){ 5 | body['data']['relates'].splice(index,1) 6 | } 7 | }) 8 | delete body['data']['cms'] 9 | body=JSON.stringify(body) 10 | $done({body}) 11 | -------------------------------------------------------------------------------- /onewayticket255/surge_zhihu_answer.js: -------------------------------------------------------------------------------- 1 | let body = $response.body 2 | body=JSON.parse(body) 3 | delete body['ad_info'] 4 | body['data'].forEach((element, index)=> { 5 | if(element['author']['name']=="盐选推荐"||element['author']['name']=="盐选科普"){ 6 | body['data'].splice(index,1) 7 | } 8 | }) 9 | body=JSON.stringify(body) 10 | $done({body}) 11 | -------------------------------------------------------------------------------- /onewayticket255/surge_zhihu_feed.js: -------------------------------------------------------------------------------- 1 | let body = $response.body 2 | body=JSON.parse(body) 3 | body['data'].forEach((element, index)=>{ 4 | if(element.hasOwnProperty('ad')){ 5 | body['data'].splice(index,1) 6 | } 7 | }) 8 | body=JSON.stringify(body) 9 | $done({body}) 10 | -------------------------------------------------------------------------------- /onewayticket255/surge_zhihu_people.js: -------------------------------------------------------------------------------- 1 | let body = $response.body 2 | body=JSON.parse(body) 3 | delete body['mcn_user_info'] 4 | body=JSON.stringify(body) 5 | $done({body}) 6 | 7 | -------------------------------------------------------------------------------- /onewayticket255/surge_zhihu_recommend.js: -------------------------------------------------------------------------------- 1 | let body = $response.body 2 | body=JSON.parse(body) 3 | body['data'].forEach((element, index)=> { 4 | if(element['card_type']=='slot_event_card'||element.hasOwnProperty('ad')){ 5 | body['data'].splice(index,1) 6 | } 7 | }) 8 | body=JSON.stringify(body) 9 | $done({body}) 10 | -------------------------------------------------------------------------------- /sazs34/all_in/README.md: -------------------------------------------------------------------------------- 1 | 原一键签到脚本是两个文件 2 | 3 | 现在已经合二为一 4 | 5 | 具体内容见 6 | 7 | [https://github.com/sazs34/TaskConfig/blob/master/all_in_one.md#](../all_in_one.md)多合一签到脚本 -------------------------------------------------------------------------------- /sazs34/assets/all_in_one.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/sazs34/assets/all_in_one.jpg -------------------------------------------------------------------------------- /sazs34/assets/assets/image-20200107183838878.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/sazs34/assets/assets/image-20200107183838878.png -------------------------------------------------------------------------------- /sazs34/assets/assets/image-20200108093853445.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/sazs34/assets/assets/image-20200108093853445.png -------------------------------------------------------------------------------- /sazs34/assets/assets/image-20200108093902427.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/sazs34/assets/assets/image-20200108093902427.png -------------------------------------------------------------------------------- /sazs34/assets/assets/image-20200108093910463.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/sazs34/assets/assets/image-20200108093910463.png -------------------------------------------------------------------------------- /sazs34/assets/image-20191231110606761.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/sazs34/assets/image-20191231110606761.png -------------------------------------------------------------------------------- /sazs34/assets/image-20191231111239380.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/sazs34/assets/image-20191231111239380.png -------------------------------------------------------------------------------- /sazs34/assets/image-20191231112457531.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/sazs34/assets/image-20191231112457531.png -------------------------------------------------------------------------------- /sazs34/assets/image-20191231113149665.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/sazs34/assets/image-20191231113149665.png -------------------------------------------------------------------------------- /sazs34/assets/image-20191231143831929.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/sazs34/assets/image-20191231143831929.png -------------------------------------------------------------------------------- /sazs34/assets/image-20200103155051082.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/sazs34/assets/image-20200103155051082.png -------------------------------------------------------------------------------- /sazs34/assets/image-20200103155101146.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X-Y-TT/QuantumultX/74a1a78fc61cee8c34b51903f88620dc7de23aa5/sazs34/assets/image-20200103155101146.png -------------------------------------------------------------------------------- /sazs34/cookie/cookie_iqiyi.js: -------------------------------------------------------------------------------- 1 | /* 2 | iQIYI Checkin Get Cookie. by NobyDa 3 | 4 | After launching iQIYI app. You can disable this script when a success notification pops up. 5 | Note that the following config is only a local script configuration, please put this script into Quantumult X/Script 6 | 7 | [rewrite_local] 8 | https:\/\/passport\.iqiyi\.com\/apis\/user\/info\.action.*authcookie url script-response-body MyConfig/js/cookie_iqiyi.js 9 | 10 | MITM = passport.iqiyi.com 11 | */ 12 | 13 | var regex = /authcookie=([A-Za-z0-9]+)/; 14 | var iQIYI = regex.exec($request.url)[1]; 15 | 16 | if ($prefs.valueForKey("CookieQY") != undefined) { 17 | if ($prefs.valueForKey("CookieQY") != iQIYI) { 18 | var cookie = $prefs.setValueForKey(iQIYI, "CookieQY"); 19 | if (!cookie){ 20 | $notify("更新爱奇艺签到Cookie失败‼️", "", "") 21 | } else { 22 | $notify("更新爱奇艺签到Cookie成功 🎉", "", "") 23 | } 24 | } 25 | } else { 26 | var cookie = $prefs.setValueForKey(iQIYI, "CookieQY"); 27 | if (!cookie){ 28 | $notify("首次写入爱奇艺Cookie失败‼️", "", "") 29 | } else { 30 | $notify("首次写入爱奇艺Cookie成功 🎉", "", "") 31 | } 32 | } 33 | $done({}) 34 | /* 35 | var cookie = $prefs.setValueForKey(iQIYI, "CookieQY"); 36 | 37 | if (!cookie){ 38 | $notify("写入爱奇艺Cookie失败‼️‼️", "", "请重试") 39 | } else { 40 | $notify("写入爱奇艺Cookie成功🎉", "", "您可以手动禁用此脚本") 41 | console.log("爱奇艺Cookie : \n" + $prefs.valueForKey("CookieQY")) 42 | } 43 | $done({}) 44 | */ -------------------------------------------------------------------------------- /sazs34/cookie/cookie_jd_bonus.js: -------------------------------------------------------------------------------- 1 | /* 2 | JingDong Check in Get Cookie. by NobyDa 3 | 4 | Need to manually log in to the https://bean.m.jd.com checkin to get cookie. When QX pops up to get a successful notification, you can disable the script. 5 | Note that the following config is only a local script configuration, please put this script into Quantumult X/Script 6 | 7 | [rewrite_local] 8 | https:\/\/api\.m\.jd\.com\/client\.action.*functionId=signBeanIndex url script-response-body cookie_jd_bonus.js 9 | 10 | [mitm] 11 | hostname = api.m.jd.com 12 | */ 13 | let cookieName = `CookieJD`; 14 | let headerCookie = $request.headers["Cookie"]; 15 | let historyCookie = $prefs.valueForKey(cookieName); 16 | if (historyCookie) { 17 | if (historyCookie != headerCookie) { 18 | var cookie = $prefs.setValueForKey(headerCookie, cookieName); 19 | if (!cookie) { 20 | $notify("更新京东Cookie失败‼️‼️", "", "请重试"); 21 | } else { 22 | $notify("更新京东Cookie成功🎉", "", "无需禁用脚本,仅cookie改变时才会重新获取"); 23 | } 24 | } 25 | } else { 26 | var cookie = $prefs.setValueForKey(headerCookie, cookieName); 27 | if (!cookie) { 28 | $notify("首次写入京东Cookie失败‼️‼️", "", "请重试"); 29 | } else { 30 | $notify("首次写入京东Cookie成功🎉", "", "无需禁用脚本,仅cookie改变时才会重新获取"); 31 | } 32 | } 33 | $done({}); -------------------------------------------------------------------------------- /sazs34/cookie/cookie_netease_music.js: -------------------------------------------------------------------------------- 1 | /* 2 | [rewrite_local] 3 | ^https?:\/\/music\.163\.com url script-response-body MyConfig/js/cookie_netease_music.js 4 | 5 | [mitm] 6 | hostname = music.163.com 7 | */ 8 | let cookieName = `CookieWY`; 9 | let headerCookie = $request.headers["Cookie"]; 10 | let historyCookie = $prefs.valueForKey(cookieName); 11 | if (historyCookie) { 12 | if (historyCookie != headerCookie) { 13 | var cookie = $prefs.setValueForKey(headerCookie, cookieName); 14 | if (!cookie) { 15 | $notify("更新网易Cookie失败‼️‼️", "", "请重试"); 16 | } else { 17 | $notify("更新网易Cookie成功🎉", "", "无需禁用脚本,仅cookie改变时才会重新获取"); 18 | } 19 | } 20 | } else { 21 | var cookie = $prefs.setValueForKey(headerCookie, cookieName); 22 | if (!cookie) { 23 | $notify("首次写入网易Cookie失败‼️‼️", "", "请重试"); 24 | } else { 25 | $notify("首次写入网易Cookie成功🎉", "", "无需禁用脚本,仅cookie改变时才会重新获取"); 26 | } 27 | } 28 | $done({}); -------------------------------------------------------------------------------- /sazs34/cookie/cookie_v2ex.js: -------------------------------------------------------------------------------- 1 | let cookieName = `CookieV2ex`; 2 | let headerCookie = $request.headers["Cookie"]; 3 | let historyCookie = $prefs.valueForKey(cookieName); 4 | if (historyCookie) { 5 | if (historyCookie != headerCookie) { 6 | var cookie = $prefs.setValueForKey(headerCookie, cookieName); 7 | if (!cookie) { 8 | $notify("更新V2EX Cookie失败‼️‼️", "", "请重试"); 9 | } else { 10 | $notify("更新V2EXCookie成功🎉", "", "无需禁用脚本,仅cookie改变时才会重新获取"); 11 | } 12 | } 13 | } else { 14 | var cookie = $prefs.setValueForKey(headerCookie, cookieName); 15 | if (!cookie) { 16 | $notify("首次写入V2EX Cookie失败‼️‼️", "", "请重试"); 17 | } else { 18 | $notify("首次写入V2EX Cookie成功🎉", "", "无需禁用脚本,仅cookie改变时才会重新获取"); 19 | } 20 | } 21 | $done({}); -------------------------------------------------------------------------------- /sazs34/task/sign_iqiyi_bonus.js: -------------------------------------------------------------------------------- 1 | var bonus = { 2 | url: 'https://tc.vip.iqiyi.com/taskCenter/task/queryUserTask?autoSign=yes&P00001=' + $prefs.valueForKey("CookieQY"), 3 | }; 4 | $task.fetch(bonus).then(response => { 5 | var obj = JSON.parse(response.body); 6 | if (obj.msg == "成功") { 7 | if (obj.data.signInfo.code == "A00000") { 8 | console.log("success response: \n" + response.body); 9 | $notify("爱奇艺签到", "", obj.data.signInfo.msg + "!获得" + obj.data.signInfo.data.acquireGiftList[0] + ", 已连续签到" + obj.data.signInfo.data.continueSignDaysSum + "天 🎉"); 10 | } else { 11 | console.log("failure response: \n" + response.body); 12 | $notify("爱奇艺签到", "", "失败, " + obj.data.signInfo.msg + "⚠️"); 13 | } 14 | } else { 15 | $notify("爱奇艺签到,Cookie无效‼️‼️", "", response.body); 16 | } 17 | }, reason => { 18 | $notify("爱奇艺签到,请求失败‼️‼️‼", "", reason.error); 19 | }); -------------------------------------------------------------------------------- /yichahucha/eval_script/qx.txt: -------------------------------------------------------------------------------- 1 | hostname = api.weibo.cn,mapi.weibo.com,*.uve.weibo.com,trade-acs.m.taobao.com,api.m.jd.com,ios.prod.ftl.netflix.com 2 | 3 | ^https?://ios\.prod\.ftl\.netflix\.com/iosui/user/.+path=%5B%22videos%22%2C%\d+%22%2C%22summary%22%5D url script-request-header eval_script.js 4 | 5 | ^https?://ios\.prod\.ftl\.netflix\.com/iosui/user/.+path=%5B%22videos%22%2C%\d+%22%2C%22summary%22%5D url script-response-body eval_script.js 6 | 7 | ^https?://ios\.prod\.ftl\.netflix\.com/iosui/warmer/.+type=show-ath url script-response-body eval_script.js 8 | 9 | ^https?://api\.m\.jd\.com/client\.action\?functionId=(wareBusiness|serverConfig) url script-response-body eval_script.js 10 | 11 | ^http://.+/amdc/mobileDispatch url script-request-body eval_script.js 12 | 13 | ^https?://trade-acs\.m\.taobao\.com/gw/mtop\.taobao\.detail\.getdetail url script-response-body eval_script.js 14 | 15 | ^https?://(sdk|wb)app\.uve\.weibo\.com(/interface/sdk/sdkad.php|/wbapplua/wbpullad.lua) url script-response-body eval_script.js 16 | 17 | ^https?://m?api\.weibo\.c(n|om)/2/(statuses/(unread|extend|positives/get|(friends|video)(/|_)(mix)?timeline)|stories/(video_stream|home_list)|(groups|fangle)/timeline|profile/statuses|comments/build_comments|photo/recommend_list|service/picfeed|searchall|cardlist|page|!/photos/pic_recommend_status|video/tiny_stream_video_list) url script-response-body eval_script.js -------------------------------------------------------------------------------- /yichahucha/tb_pre.js: -------------------------------------------------------------------------------- 1 | let headers = $request.headers 2 | let body = $request.body 3 | if (headers["User-Agent"].indexOf("%E6%89%8B%E6%9C%BA%E6%B7%98%E5%AE%9D") != -1) { 4 | let json = Qs2Json(body) 5 | let domain = json.domain.split(" ") 6 | let i = domain.length; 7 | while (i--) { 8 | const block = "trade-acs.m.taobao.com" 9 | const element = domain[i]; 10 | if (element == block) { 11 | domain.splice(i, 1); 12 | } 13 | } 14 | json.domain = domain.join(" ") 15 | body = Json2Qs(json) 16 | } 17 | $done({ 18 | body 19 | }) 20 | 21 | function Qs2Json(url) { 22 | var search = url.substring(url.lastIndexOf("?") + 1); 23 | var obj = {}; 24 | var reg = /([^?&=]+)=([^?&=]*)/g; 25 | search.replace(reg, function(rs, $1, $2) { 26 | var name = decodeURIComponent($1); 27 | var val = decodeURIComponent($2); 28 | val = String(val); 29 | obj[name] = val; 30 | return rs; 31 | }); 32 | return obj; 33 | } 34 | 35 | function Json2Qs(json) { 36 | var temp = []; 37 | for (var k in json) { 38 | temp.push(k + "=" + json[k]); 39 | } 40 | return temp.join("&"); 41 | } -------------------------------------------------------------------------------- /yichahucha/wb_launch.js: -------------------------------------------------------------------------------- 1 | /* 2 | README:https://github.com/yichahucha/surge/tree/master 3 | */ 4 | 5 | const path1 = "/interface/sdk/sdkad.php"; 6 | const path2 = "/wbapplua/wbpullad.lua"; 7 | 8 | const url = $request.url; 9 | var body = $response.body; 10 | 11 | if (url.indexOf(path1) != -1) { 12 | let re = /\{.*\}/; 13 | body = body.match(re); 14 | var obj = JSON.parse(body); 15 | if (obj.background_delay_display_time) obj.background_delay_display_time = 60*60*24*365; 16 | if (obj.show_push_splash_ad) obj.show_push_splash_ad = false; 17 | if (obj.ads) obj.ads = []; 18 | body = JSON.stringify(obj) + 'OK'; 19 | } 20 | 21 | if (url.indexOf(path2) != -1) { 22 | var obj = JSON.parse(body); 23 | if (obj.cached_ad && obj.cached_ad.ads) obj.cached_ad.ads = []; 24 | body = JSON.stringify(obj); 25 | } 26 | 27 | $done({body}); 28 | --------------------------------------------------------------------------------