├── Choler ├── Ruleset │ ├── Adblock.list │ ├── Blocked.list │ ├── Spotify.list │ └── Unblock.list └── Script │ ├── Aweme.js │ ├── QQNews.js │ ├── Toutiao.js │ ├── WeChat.js │ └── YouTube.js ├── Filter ├── Apple_API.txt ├── Apple_CDN.txt ├── AsianMedia.txt ├── BacktoCN.list ├── Domestic.txt ├── Global.txt ├── GlobalMedia.txt ├── Liby.txt ├── NeteaseMusic.list ├── Netflix.txt ├── Region.txt ├── SubTelegram.txt ├── TikTok.list └── YouTube.txt ├── Get_Cookie_New.conf ├── Get_Cookie_Remote.conf ├── Js.conf ├── Js_Local_WorkingCopy_Cookie.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 │ ├── 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 ├── README.md ├── Surge-QX-Smart.html └── checkin.js ├── NobyDa ├── Bilibili-DailyBonus │ └── Manga.js ├── JD-DailyBonus │ └── JD_DailyBonus.js ├── QuantumultX │ ├── 52pojie-DailyBonus │ │ ├── 52pojie_DailyBonus_QX.js │ │ └── 52pojie_GetCookie_QX.js │ ├── 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 │ ├── TieBa-DailyBonus │ │ ├── TieBa_DailyBonus_QX.js │ │ └── TieBa_GetCookie_QX.js │ └── iQIYI-DailyBonus │ │ ├── iQIYI_DailyBonus_QX.js │ │ └── iQIYI_GetCookie_QX.js ├── README.md └── Surge │ ├── 52pojieDailyBonus │ ├── 52pojie.js │ └── Get-Cookie.js │ ├── 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 │ └── iQIYI-DailyBonus │ ├── iQIYI_DailyBonus.js │ └── iQIYI_GetCookie.js ├── QuantumultX.conf ├── README.md ├── Script ├── 115lx.js ├── 91.js ├── Bilibili.js ├── BilibiliUnlock.js ├── Diyidan.js ├── HTJZ.js ├── ITHome.js ├── Pacdebug.js ├── Pdfexpert.vip.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 ├── hanjuTV.js ├── hjsp.js ├── hnsyhb.js ├── jdyTV.js ├── jrrb.js ├── jxydt.js ├── lake.js ├── llyd.js ├── mb.js ├── mkl.js ├── mmfy.js ├── mryy.js ├── nomo.js ├── peak.js ├── pear.js ├── photoshop.js ├── pillow.js ├── pock.js ├── qrxs.js ├── quanx.js ├── qyxj.js ├── revenuecat.js ├── rrtv.js ├── shimo.js ├── sjyjgj.js ├── smart.js ├── smy.js ├── smzdm.js └── sololearn.js ├── Scripts.conf ├── Surge ├── Ruleset │ ├── Antirevoke.list │ ├── BlockOTA.list │ ├── GoogleDrive.list │ ├── Mail.list │ ├── Special.list │ ├── SpeedTest.list │ ├── Tide.list │ ├── TikTok.list │ └── UnlockNeteaseMusic.list └── Surge_Basic.conf ├── Task ├── 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 ├── icbc_cookie.js ├── icbc_sign.js ├── jdczf.js ├── jdczfcookie.js ├── jddj.js ├── kuaishou.js ├── lkyl.js ├── lol.js ├── loulancheck.js ├── minute_forecast.js ├── nCoV.js ├── nCoVrumors.js ├── testflight.js ├── time.js ├── tongc_cookie.js ├── tongc_info.js ├── tongc_sign.js ├── tvpreview.js ├── weather.js ├── xmly_wc.js └── yubaSign.js ├── Task_Local.conf ├── Task_Remote.conf ├── onewayticket255 ├── README.md ├── ad.list ├── bilibili_playurl_qx.js ├── bilibili_season_qx.js ├── snell │ ├── README.md │ └── main.js ├── surge_bilibili view_relate.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_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_sub │ ├── quanx.txt │ └── surge.txt ├── jd_price.js ├── jd_price_lite.js ├── nf_rating.js ├── sub_eval.conf ├── sub_script.conf ├── tb_price.js ├── tb_price_lite.js ├── tool.js ├── wb_ad.js └── wb_launch.js └── 分流订阅(自用) └── 分流订阅(自用).txt /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/Aweme.js: -------------------------------------------------------------------------------- 1 | if (typeof $response != "undefined") { 2 | var obj = JSON.parse($response.body); 3 | if (obj.data) { 4 | for (var i = obj.data.length - 1; i >= 0; i--) { 5 | if (obj.data[i].aweme.video) { 6 | if (obj.data[i].aweme.status.reviewed != 1) { 7 | obj.data[i].aweme.status.reviewed = 1; 8 | obj.data[i].aweme.video_control.allow_download = true; 9 | } 10 | if (obj.data[i].aweme.video.download_addr) { 11 | var play = obj.data[i].aweme.video.play_addr.url_list; 12 | obj.data[i].aweme.video.download_addr.url_list = play; 13 | } 14 | if (obj.data[i].aweme.video.download_suffix_logo_addr) { 15 | var download = obj.data[i].aweme.video.download_addr; 16 | obj.data[i].aweme.video.download_suffix_logo_addr = download; 17 | } 18 | } else { 19 | obj.data.aweme.splice(i, 1); 20 | } 21 | } 22 | } 23 | if (obj.aweme_list) { 24 | for (var i = obj.aweme_list.length - 1; i >= 0; i--) { 25 | if (obj.aweme_list[i].video) { 26 | if (obj.aweme_list[i].is_ads != false) { 27 | obj.aweme_list.splice(i, 1); 28 | } 29 | if (obj.aweme_list[i].status.reviewed != 1) { 30 | obj.aweme_list[i].status.reviewed = 1; 31 | obj.aweme_list[i].video_control.allow_download = true; 32 | } 33 | if (obj.aweme_list[i].video.download_addr) { 34 | var play = obj.aweme_list[i].video.play_addr.url_list; 35 | obj.aweme_list[i].video.download_addr.url_list = play; 36 | } 37 | if (obj.aweme_list[i].video.download_suffix_logo_addr) { 38 | var download = obj.aweme_list[i].video.download_addr; 39 | obj.aweme_list[i].video.download_suffix_logo_addr = download; 40 | } 41 | } else { 42 | obj.aweme_list.splice(i, 1); 43 | } 44 | } 45 | } 46 | $done({ body: JSON.stringify(obj) }); 47 | } else { 48 | $done({ url: $request.url.replace(/\/v\d\//, "/v1/") }); 49 | } -------------------------------------------------------------------------------- /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}); -------------------------------------------------------------------------------- /Filter/Apple_API.txt: -------------------------------------------------------------------------------- 1 | # Apple_API.list 2 | host-suffix, aaplimg.com, Apple_API 3 | host-suffix, apple.co, Apple_API 4 | host-suffix, apple.com, Apple_API 5 | host-suffix, apple-cloudkit.com, Apple_API 6 | host-suffix, appsto.re, Apple_API 7 | host-suffix, cdn-apple.com, Apple_API 8 | host-suffix, icloud.com, Apple_API 9 | host-suffix, icloud-content.com, Apple_API 10 | host-suffix, itunes.com, Apple_API 11 | host-suffix, me.com, Apple_API 12 | -------------------------------------------------------------------------------- /Filter/Apple_CDN.txt: -------------------------------------------------------------------------------- 1 | # Apple_CDN.list 2 | # > App Store 3 | user-agent, com.apple.appstored*, Apple_CDN 4 | host-suffix, mzstatic.com, Apple_CDN 5 | host, iosapps.itunes.apple.com, Apple_CDN 6 | host, osxapps.itunes.apple.com, Apple_CDN 7 | # > Update 8 | host, supportdownload.apple.com, Apple_CDN 9 | host, appldnld.apple.com, Apple_CDN 10 | host, swcdn.apple.com, Apple_CDN 11 | host, apptrailers.itunes.apple.com, Apple_CDN 12 | host, updates-http.cdn-apple.com, Apple_CDN 13 | -------------------------------------------------------------------------------- /Filter/AsianMedia.txt: -------------------------------------------------------------------------------- 1 | # AsianMedia.list 2 | # > Bilibili 3 | user-agent, *bili*, AsianMedia 4 | host-keyword, bilibili, AsianMedia 5 | host-suffix, acg.tv, AsianMedia 6 | host-suffix, acgvideo.com, AsianMedia 7 | host-suffix, b23.tv, AsianMedia 8 | host-suffix, biliapi.com, AsianMedia 9 | host-suffix, biliapi.net, AsianMedia 10 | host-suffix, bilibili.com, AsianMedia 11 | host-suffix, bilibili.tv, AsianMedia 12 | host-suffix, biligame.com, AsianMedia 13 | host-suffix, biligame.net, AsianMedia 14 | host-suffix, bilivideo.com, AsianMedia 15 | host-suffix, hdslb.com, AsianMedia 16 | host-suffix, im9.com, AsianMedia 17 | host, upos-hz-mirrorakam.akamaized.net, AsianMedia 18 | # > IQIYI 19 | user-agent, QIYI*, AsianMedia 20 | user-agent, iQiYi*, AsianMedia 21 | host-keyword, qiyi, AsianMedia 22 | host-suffix, 71.am.com, AsianMedia 23 | host-suffix, qy.net, AsianMedia 24 | ip-cidr, 101.227.0.0/16, AsianMedia 25 | ip-cidr, 101.224.0.0/13, AsianMedia 26 | ip-cidr, 119.176.0.0/12, AsianMedia 27 | # > letv 28 | host-suffix, api.mob.app.letv.com, AsianMedia 29 | # > MOO 30 | user-agent, MOO*, AsianMedia 31 | user-agent, TencentMidasConnect*, AsianMedia 32 | # > Tencent Video 33 | host-suffix, vv.video.qq.com, AsianMedia 34 | # > Youku 35 | ip-cidr, 106.11.0.0/16, AsianMedia 36 | -------------------------------------------------------------------------------- /Filter/Liby.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/Filter/Liby.txt -------------------------------------------------------------------------------- /Filter/NeteaseMusic.list: -------------------------------------------------------------------------------- 1 | DOMAIN-SUFFIX,interface.music.163.com,网易云音乐 2 | DOMAIN-SUFFIX,interface1.music.163.com,网易云音乐 3 | DOMAIN-SUFFIX,interface2.music.163.com,网易云音乐 4 | DOMAIN-SUFFIX,interface3.music.163.com,网易云音乐 5 | DOMAIN-SUFFIX,interface4.music.163.com,网易云音乐 6 | DOMAIN-SUFFIX,interface5.music.163.com,网易云音乐 7 | DOMAIN-SUFFIX,apm.music.163.com,网易云音乐 8 | DOMAIN-SUFFIX,apm3.music.163.com,网易云音乐 9 | DOMAIN-SUFFIX,man.netease.com,网易云音乐 10 | DOMAIN-SUFFIX,api.iplay.163.com,网易云音乐 11 | DOMAIN-SUFFIX,ac.dun.163yun.com,网易云音乐 12 | DOMAIN-SUFFIX,mr.da.netease.com,网易云音乐 13 | DOMAIN-SUFFIX,crash.163.com,网易云音乐 14 | DOMAIN-SUFFIX,imap.163.com,网易云音乐 15 | DOMAIN-SUFFIX,music.126.net,网易云音乐 16 | DOMAIN-SUFFIX,music.163.com,网易云音乐 17 | DOMAIN-KEYWORD,netease,网易云音乐 18 | IP-CIDR,59.111.181.60/32,网易云音乐 19 | IP-CIDR,223.252.199.66/32,网易云音乐 20 | IP-CIDR,223.252.199.67/32,网易云音乐 21 | IP-CIDR,59.111.160.195/32,网易云音乐 22 | IP-CIDR,59.111.160.197/32,网易云音乐 23 | IP-CIDR,59.111.181.35/32,网易云音乐 24 | IP-CIDR,59.111.181.38/32,网易云音乐 25 | IP-CIDR,39.105.63.80/32,网易云音乐 26 | IP-CIDR,47.100.127.239/32,网易云音乐 27 | IP-CIDR,118.24.63.156/32,网易云音乐 28 | IP-CIDR,193.112.159.225/32,网易云音乐 29 | IP-CIDR,59.111.181.155/32,网易云音乐 30 | IP-CIDR,115.236.118.33/32,网易云音乐 31 | IP-CIDR,59.111.128.0/17,网易云音乐 32 | IP-CIDR,115.236.112.0/20,网易云音乐 33 | IP-CIDR,223.252.192.0/19,网易云音乐 34 | IP-CIDR,101.71.154.241/32,网易云音乐 -------------------------------------------------------------------------------- /Filter/Netflix.txt: -------------------------------------------------------------------------------- 1 | # > Netflix 2 | user-agent, Argo*, Global 3 | host-suffix, netflix.com, Global 4 | host-suffix, netflix.net, Global 5 | host-suffix, nflxext.com, Global 6 | host-suffix, nflximg.com, Global 7 | host-suffix, nflximg.net, Global 8 | host-suffix, nflxso.net, Global 9 | host-suffix, nflxvideo.net, Global 10 | ip-cidr, 8.41.4.0/24, Global 11 | ip-cidr, 23.246.0.0/18, Global 12 | ip-cidr, 37.77.184.0/21, Global 13 | ip-cidr, 45.57.0.0/17, Global 14 | ip-cidr, 64.120.128.0/17, Global 15 | ip-cidr, 66.197.128.0/17, Global 16 | ip-cidr, 69.53.224.0/19, Global 17 | ip-cidr, 108.175.32.0/20, Global 18 | ip-cidr, 185.2.220.0/22, Global 19 | ip-cidr, 185.9.188.0/22, Global 20 | ip-cidr, 192.173.64.0/18, Global 21 | ip-cidr, 198.38.96.0/19, Global 22 | ip-cidr, 198.45.48.0/20, Global 23 | ip-cidr, 207.45.72.0/22, Global 24 | ip-cidr, 208.75.76.0/22, Global 25 | # > Fast 26 | host-suffix, fast.com, Global 27 | -------------------------------------------------------------------------------- /Filter/Region.txt: -------------------------------------------------------------------------------- 1 | # Region.list 2 | # > LAN 3 | host, localhost, Domestic 4 | host-suffix, local, Domestic 5 | ip-cidr, 0.0.0.0/8, Domestic 6 | ip-cidr, 10.0.0.0/8, Domestic 7 | ip-cidr, 127.0.0.0/8, Domestic 8 | ip-cidr, 169.254.0.0/16, Domestic 9 | ip-cidr, 172.16.0.0/12, Domestic 10 | ip-cidr, 192.0.2.0/24, Domestic 11 | ip-cidr, 192.168.0.0/16, Domestic 12 | ip-cidr, 198.18.0.0/15, Domestic 13 | ip-cidr, 198.51.100.0/24, Domestic 14 | ip-cidr, 203.0.113.0/24, Domestic 15 | ip-cidr, 224.0.0.0/4, Domestic 16 | ip-cidr, 240.0.0.0/4, Domestic 17 | # > China 18 | host-suffix, cn, Domestic 19 | host-suffix, xn--fiqs8s, Domestic 20 | geoip, cn, Domestic 21 | -------------------------------------------------------------------------------- /Filter/SubTelegram.txt: -------------------------------------------------------------------------------- 1 | # > Telegram 2 | host-suffix, t.me, Global 3 | host-suffix, tdesktop.com, Global 4 | host-suffix, telegra.ph, Global 5 | host-suffix, telegram.me, Global 6 | host-suffix, telegram.org, Global 7 | host-suffix, telesco.pe, Global 8 | ip-cidr, 91.108.4.0/22, Global 9 | ip-cidr, 91.108.8.0/22, Global 10 | ip-cidr, 91.108.12.0/22, Global 11 | ip-cidr, 91.108.16.0/22, Global 12 | ip-cidr, 91.108.56.0/22, Global 13 | ip-cidr, 149.154.160.0/20, Global -------------------------------------------------------------------------------- /Filter/TikTok.list: -------------------------------------------------------------------------------- 1 | # > TikTok 2 | USER-AGENT,TikTok*,TikTok 3 | DOMAIN-SUFFIX,muscdn.com,TikTok 4 | DOMAIN-SUFFIX,musical.ly,TikTok 5 | DOMAIN-SUFFIX,tiktokv.com,TikTok 6 | DOMAIN-SUFFIX,tiktokcdn.com,TikTok 7 | DOMAIN-KEYWORD,-tiktokcdn-com,TikTok -------------------------------------------------------------------------------- /Filter/YouTube.txt: -------------------------------------------------------------------------------- 1 | # > YouTube 2 | user-agent, com.google.ios.youtube*, Global 3 | user-agent, YouTube*, Global 4 | host-suffix, googlevideo.com, Global 5 | host-suffix, youtube.com, Global 6 | host, youtubei.googleapis.com, Global 7 | -------------------------------------------------------------------------------- /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/bananavideo.js: -------------------------------------------------------------------------------- 1 | /* 🍌️视频(Made by Meeta) 2 | 🍌️下载链接:http://tinyurl.com/y57j6hjg 3 | 4 | 1.文本编辑模式下复制粘贴 5 | http-response https?:\/\/ios\.fuliapps\.com\/ script-path=https://meetagit.github.io/MeetaRules/Surge/Scripting/bananavideo.js,requires-body=true 6 | 2.添加hostname = ios.fuliapps.com 7 | 欢迎关注TG频道:@meetashare 8 | */ 9 | 10 | 11 | 12 | 13 | var body = $response.body; 14 | var url = $request.url; 15 | const path1 = "/ucp/index"; 16 | const path2 = "/getGlobalData"; 17 | const path3 = "/vod/reqplay/" 18 | if (url.indexOf(path1) != -1){ 19 | let obj = JSON.parse(body); 20 | obj.data.uinfo.down_daily_remainders = "998"; 21 | obj.data.uinfo.play_daily_remainders = "998"; 22 | obj.data.uinfo.curr_group["gicon"] = "V6"; 23 | obj.data.uinfo.curr_group["gid"] = "6"; 24 | obj.data.uinfo.curr_group["minup"] = "1000000"; 25 | obj.data.uinfo.curr_group["gname"] = "尊贵VIP"; 26 | obj.data.uinfo["next_upgrade_need"] = "0"; 27 | obj.data.user.isvip = "1"; 28 | obj.data.user.nickname = "Meeta_share"; 29 | obj.data.user.gicon = "V6"; 30 | obj.data.user.gid = "6"; 31 | obj.data.user.avatar = "https://s2.ax1x.com/2019/07/11/ZRNrbq.th.jpg"; 32 | body = JSON.stringify(obj); 33 | } 34 | 35 | if (url.indexOf(path2) != -1){ 36 | let obj = JSON.parse(body); 37 | obj.data.app_launch_times_adshow = "0"; 38 | obj.data.adgroups = ""; 39 | obj.data.iOS_adgroups =""; 40 | body = JSON.stringify(obj); 41 | } 42 | if (url.indexOf(path3) != -1){ 43 | let obj = JSON.parse(body); 44 | obj.retcode = "0"; 45 | if(obj.data.hasOwnProperty("httpurl_preview")){ 46 | var playurl = obj.data["httpurl_preview"]; 47 | obj.data["httpurl"] = playurl; 48 | }; 49 | body = JSON.stringify(obj); 50 | } 51 | $done({body}); 52 | -------------------------------------------------------------------------------- /Meeta/Surge/Scripting/bili.js: -------------------------------------------------------------------------------- 1 | /* Made by Meeta(bilibili) 2 | update 0810 3 | 此次更新仅更新了Surge api 适用于Surge 3 4.0以后的版本 4 | 清晰度破解未测试(听说还有效),请各位自行测试 5 | 如有追番需求,请开大会员 6 | http-response https?:\/\/app\.bilibili\.com\/x\/ script-path=https://meetagit.github.io/MeetaRules/Surge/Scripting/bili.js,requires-body=true 7 | hostname = app.bilibili.com 8 | 欢迎关注TG频道:@meetashare 9 | */ 10 | 11 | var body = $response.body; 12 | var url = $request.url; 13 | let path1 = "/x/v2/account/mine"; 14 | let path2 = "/x/playurl" 15 | let path3 = "/x/v2/account/myinfo?" 16 | if (url.indexOf(path1) != -1){ 17 | let obj = JSON.parse(body); 18 | obj.data.bcoin = 2019; 19 | obj.data.coin = 520; 20 | obj.data.audio_type = 2; 21 | obj.data.vip_type = 2; 22 | obj.data.level = 8; 23 | obj.data.vip.due_date = 3041424000000; 24 | obj.data.vip.status = 1; 25 | obj.data.vip.vip_pay_type = 1; 26 | obj.data.vip_section.start_time = 1554912000; 27 | obj.data.vip_section.end_time = 1839081600; 28 | obj.data.vip_section_v2.title = "🍀Meeta(1080p60),vip仅自慰"; 29 | body = JSON.stringify(obj); 30 | 31 | } 32 | if (url.indexOf(path2) != -1){ 33 | let obj = JSON.parse(body); 34 | obj.data.quality = obj.data.accept_quality[0]; 35 | if(obj.data.quality = 116){obj.data.format = "flv_p60"}; 36 | if(obj.data.quality = 112){obj.data.format = "hdflv2"}; 37 | if(obj.data.quality = 74){obj.data.format = "flv720_p60"}; 38 | body = JSON.stringify(obj); 39 | 40 | } 41 | if (url.indexOf(path3) != -1){ 42 | let obj = JSON.parse(body); 43 | obj.data.level = 8; 44 | obj.data.type = 1; 45 | obj.data.due_date = 3041424000000; 46 | obj.data.vip.status = 1; 47 | obj.data.vip.vip_pay_type = 1; 48 | body = JSON.stringify(obj); 49 | } 50 | 51 | $done({body}); 52 | 53 | -------------------------------------------------------------------------------- /Meeta/Surge/Scripting/hourlyWeather.js: -------------------------------------------------------------------------------- 1 | const weaapi = "https://www.tianqiapi.com/api/?version=v6" 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 wea = obj.wea; 11 | var city = obj.city; 12 | var time = "天气更新于:"+obj.update_time; 13 | let wmation = [wea,time,city]; 14 | $notification.post(wmation[0], wmation[2], wmation[1]); 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/weather.js: -------------------------------------------------------------------------------- 1 | const lang = "zh" 2 | var lat_lon = "auto_ip" 3 | var api = "auto_api" 4 | //第三行引号内填入申请到的dark sky api 5 | //有问题请通过Telegram反馈 https://t.me/Leped_Bot 6 | //clear-day, partly-cloudy-day, cloudy, clear-night, rain, snow, sleet, wind, fog, or partly-cloudy-night 7 | //☀️🌤⛅️🌥☁️🌦🌧⛈🌩🌨❄️💧💦🌫☔️☂️ ☃️⛄️ 8 | async function launch() { 9 | await weather(); 10 | $done(); 11 | } 12 | 13 | launch() 14 | 15 | function weather() { 16 | let info = { 17 | url: "https://api.darksky.net/forecast/" + api + "/" + lat_lon + "?lang=" + lang + "&units=si&exclude=currently,minutely", //?lang=zh&units=si 18 | headers: {}, 19 | } 20 | $httpClient.get(info, async function (error, response, data) { 21 | if (error) { 22 | console.log(error); 23 | $notification.post("Dark Sky", lat_lon + '信息获取失败', error); 24 | } else { 25 | var obj = JSON.parse(data); 26 | console.log(obj); 27 | var hour_summary = obj.hourly.summary; 28 | var icon_text = obj.hourly.icon; 29 | var icon = "❓" 30 | if (icon_text == "clear-day") icon = "☀️"; 31 | if (icon_text == "partly-cloudy-day") icon = "🌤"; 32 | if (icon_text == "cloudy") icon = "☁️"; 33 | if (icon_text == "rain") icon = "🌧"; 34 | if (icon_text == "snow") icon = "☃️"; 35 | if (icon_text == "sleet") icon = "🌨"; 36 | if (icon_text == "wind") icon = "🌬"; 37 | if (icon_text == "fog") icon = "🌫"; 38 | if (icon_text == "partly-cloudy-night") icon = "🌑"; 39 | if (icon_text == "clear-night") icon = "🌑"; 40 | var daily_prec_chance = obj.daily.data[0].precipProbability; 41 | var daily_maxtemp = obj.daily.data[0].temperatureMax; 42 | var daily_mintemp = obj.daily.data[0].temperatureMin; 43 | $notification.post("Dark Sky", icon + " " + Math.round(daily_mintemp) + " - " + Math.round(daily_maxtemp) + " ☔️ " + (Number(daily_prec_chance) * 100).toFixed(1)+ "%", hour_summary); } 44 | }); 45 | } 46 | -------------------------------------------------------------------------------- /NavePnow/Scripts/weather_qx.js: -------------------------------------------------------------------------------- 1 | var lang = "zh" 2 | var lat_lon = "auto_ip" 3 | var api = "auto_api" 4 | //第三行引号内填入申请到的dark sky api 5 | //有问题请通过Telegram反馈 https://t.me/Leped_Bot 6 | //clear-day, partly-cloudy-day, cloudy, clear-night, rain, snow, sleet, wind, fog, or partly-cloudy-night 7 | //☀️🌤⛅️🌥☁️🌦🌧⛈🌩🌨❄️💧💦🌫☔️☂️ ☃️⛄️ 8 | var wurl = { 9 | //url: "https://free-api.heweather.net/s6/weather/now?&location=" + coordinate + "&key=" + key, 10 | url: "https://api.darksky.net/forecast/" + api + "/" + lat_lon + "?lang=" + lang + "&units=si&exclude=currently,minutely", 11 | }; 12 | 13 | 14 | $task.fetch(wurl).then(response => { 15 | var obj = JSON.parse(response.body); 16 | //console.log(obj); 17 | var hour_summary = obj.hourly.summary; 18 | var icon_text = obj.hourly.icon; 19 | var icon = "❓" 20 | if (icon_text == "clear-day") icon = "☀️"; 21 | if (icon_text == "partly-cloudy-day") icon = "🌤"; 22 | if (icon_text == "cloudy") icon = "☁️"; 23 | if (icon_text == "rain") icon = "🌧"; 24 | if (icon_text == "snow") icon = "☃️"; 25 | if (icon_text == "sleet") icon = "🌨"; 26 | if (icon_text == "wind") icon = "🌬"; 27 | if (icon_text == "fog") icon = "🌫"; 28 | if (icon_text == "partly-cloudy-night") icon = "🌑"; 29 | if (icon_text == "clear-night") icon = "🌑"; 30 | var daily_prec_chance = obj.daily.data[0].precipProbability; 31 | var daily_maxtemp = obj.daily.data[0].temperatureMax; 32 | var daily_mintemp = obj.daily.data[0].temperatureMin; 33 | //$notification.post("Dark Sky", icon + " " + Math.round(daily_mintemp) + " - " + Math.round(daily_maxtemp) + " ☔️% " + Math.round(Number(daily_prec_chance) * 100), hour_summary); 34 | $notify("Dark Sky", icon + " " + Math.round(daily_mintemp) + " - " + Math.round(daily_maxtemp) + " ☔️ " + (Number(daily_prec_chance) * 100).toFixed(1) + "%", hour_summary); 35 | 36 | 37 | }, reason => { 38 | $notify("Dark Sky", lat_lon + '信息获取失败', reason.error); 39 | }); 40 | -------------------------------------------------------------------------------- /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 | DOMAIN-SUFFIX,interface.music.163.com,网易云音乐 2 | DOMAIN-SUFFIX,interface1.music.163.com,网易云音乐 3 | DOMAIN-SUFFIX,interface2.music.163.com,网易云音乐 4 | DOMAIN-SUFFIX,interface3.music.163.com,网易云音乐 5 | DOMAIN-SUFFIX,interface4.music.163.com,网易云音乐 6 | DOMAIN-SUFFIX,interface5.music.163.com,网易云音乐 7 | DOMAIN-SUFFIX,apm.music.163.com,网易云音乐 8 | DOMAIN-SUFFIX,apm3.music.163.com,网易云音乐 9 | DOMAIN-SUFFIX,man.netease.com,网易云音乐 10 | DOMAIN-SUFFIX,api.iplay.163.com,网易云音乐 11 | DOMAIN-SUFFIX,ac.dun.163yun.com,网易云音乐 12 | DOMAIN-SUFFIX,mr.da.netease.com,网易云音乐 13 | DOMAIN-SUFFIX,crash.163.com,网易云音乐 14 | DOMAIN-SUFFIX,imap.163.com,网易云音乐 15 | DOMAIN-SUFFIX,music.126.net,网易云音乐 16 | DOMAIN-SUFFIX,music.163.com,网易云音乐 17 | DOMAIN-KEYWORD,netease,网易云音乐 18 | IP-CIDR,59.111.181.60/32,网易云音乐 19 | IP-CIDR,223.252.199.66/32,网易云音乐 20 | IP-CIDR,223.252.199.67/32,网易云音乐 21 | IP-CIDR,59.111.160.195/32,网易云音乐 22 | IP-CIDR,59.111.160.197/32,网易云音乐 23 | IP-CIDR,59.111.181.35/32,网易云音乐 24 | IP-CIDR,59.111.181.38/32,网易云音乐 25 | IP-CIDR,39.105.63.80/32,网易云音乐 26 | IP-CIDR,47.100.127.239/32,网易云音乐 27 | IP-CIDR,118.24.63.156/32,网易云音乐 28 | IP-CIDR,193.112.159.225/32,网易云音乐 29 | IP-CIDR,59.111.181.155/32,网易云音乐 30 | IP-CIDR,115.236.118.33/32,网易云音乐 31 | IP-CIDR,59.111.128.0/17,网易云音乐 32 | IP-CIDR,115.236.112.0/20,网易云音乐 33 | IP-CIDR,223.252.192.0/19,网易云音乐 34 | IP-CIDR,101.71.154.241/32,网易云音乐 -------------------------------------------------------------------------------- /Neurogram-R/README.md: -------------------------------------------------------------------------------- 1 | # Surge -------------------------------------------------------------------------------- /NobyDa/QuantumultX/52pojie-DailyBonus/52pojie_DailyBonus_QX.js: -------------------------------------------------------------------------------- 1 | /* 2 | 52pojie forum daily bonus script 3 | 4 | Update 2019.12.29 15:30 5 | 6 | About the author: 7 | If reproduced, indicate the source 8 | Telegram channel: @NobyDa 9 | Telegram bots: @NobyDa_bot 10 | 11 | Description : 12 | Need to manually log in to the https://www.52pojie.cn/home.php?mod=space checkin to get cookie. if QX pops up to get a cookie success notification, you can disable this script. 13 | Note that the following config is only a local script configuration, please put this script into Quantumult X/Script 14 | 15 | script will be performed every day at 9 am. You can modify the execution time. 16 | 17 | [task_local] 18 | # 52pojie daily bonus script 19 | 0 9 * * * 52pojie_DailyBonus_QX.js 20 | 21 | [rewrite_local] 22 | # Get cookie. 【QX TF188+】: 23 | https:\/\/www\.52pojie\.cn\/home\.php\?mod=space url script-request-header 52pojie_GetCookie_QX.js 24 | 25 | # MITM = www.52pojie.cn 26 | */ 27 | 28 | var bonus = { 29 | url: 'https://www.52pojie.cn/home.php?mod=task&do=apply&id=2&mobile=no', 30 | headers: { 31 | "Cookie": $prefs.valueForKey("CookieWA"), 32 | } 33 | }; 34 | var date = new Date() 35 | var week = ["Sunday","Monday","Tuseday","Wednesday","Thursday","Friday","Saturday"]; 36 | var month = ["Jan.","Feb.","Mar.","Apr.","May","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."]; 37 | 38 | $task.fetch(bonus).then(response => { 39 | if (response.body.match(/\u606d\u559c\u60a8/)) { 40 | $notify("52pojie Daily bonus", "", week[date.getDay()] + ", " + month[date.getMonth()] + " " + date.getDate() + ", " + "Daily bonus success!🎉") 41 | } else { 42 | if (response.body.match(/\u4e0b\u671f\u518d\u6765/)) { 43 | $notify("52pojie Daily bonus", "", week[date.getDay()] + ", " + month[date.getMonth()] + " " + date.getDate() + ", " + "Repeat ⚠️") 44 | } else { 45 | if (response.body.match(/\u9700\u8981\u5148\u767b\u5f55/)) { 46 | $notify("52pojie Daily bonus. Error. Cookies expire", "", "Please reopen the script to get‼️") 47 | } else { 48 | $notify("52pojie Daily bonus", "", "Scripts need to be updated ‼️‼️") 49 | } 50 | } 51 | } 52 | }, reason => { 53 | $notify("52pojie Daily bonus. Interface error‼️‼️‼️", "", reason.error) 54 | }); 55 | -------------------------------------------------------------------------------- /NobyDa/QuantumultX/52pojie-DailyBonus/52pojie_GetCookie_QX.js: -------------------------------------------------------------------------------- 1 | /* 2 | 52pojie forum daily bonus script 3 | 4 | Update 2019.12.29 15:30 5 | 6 | About the author: 7 | If reproduced, indicate the source 8 | Telegram channel: @NobyDa 9 | Telegram bots: @NobyDa_bot 10 | 11 | Description : 12 | Need to manually log in to the https://www.52pojie.cn/home.php?mod=space checkin to get cookie. if QX pops up to get a cookie success notification, you can disable this script. 13 | Note that the following config is only a local script configuration, please put this script into Quantumult X/Script 14 | 15 | script will be performed every day at 9 am. You can modify the execution time. 16 | 17 | [task_local] 18 | # 52pojie daily bonus script 19 | 0 9 * * * 52pojie_DailyBonus_QX.js 20 | 21 | [rewrite_local] 22 | # Get cookie. 【QX TF188+】: 23 | https:\/\/www\.52pojie\.cn\/home\.php\?mod=space url script-request-header 52pojie_GetCookie_QX.js 24 | 25 | # MITM = www.52pojie.cn 26 | */ 27 | 28 | var WAPJ = $request.headers["Cookie"]; 29 | 30 | if (WAPJ) { 31 | if ($prefs.valueForKey("CookieWA") != undefined) { 32 | if ($prefs.valueForKey("CookieWA") != WAPJ) { 33 | var cookie = $prefs.setValueForKey(WAPJ, "CookieWA"); 34 | if (!cookie) { 35 | $notify("更新吾爱破解签到Cookie失败‼️", "", "") 36 | } else { 37 | $notify("更新吾爱破解签到Cookie成功 🎉", "", "") 38 | } 39 | } 40 | } else { 41 | var cookie = $prefs.setValueForKey(WAPJ, "CookieWA"); 42 | if (!cookie) { 43 | $notify("首次写入吾爱破解Cookie失败‼️", "", "") 44 | } else { 45 | $notify("首次写入吾爱破解Cookie成功 🎉", "", "") 46 | } 47 | } 48 | } 49 | $done({}) -------------------------------------------------------------------------------- /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/bilibiliAccount.js: -------------------------------------------------------------------------------- 1 | /* 2 | bilibili remove some account modules. by onewayticket255 3 | 4 | QX: 5 | ^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 6 | 7 | Surge4: 8 | http-response ^https://app.bilibili.com/x/v2/account/mine\?access_key requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliAccount.js 9 | 10 | Surge & QX MITM = app.bilibili.com 11 | */ 12 | 13 | let body = $response.body 14 | body=JSON.parse(body) 15 | body['data']['sections'].splice(2,1) 16 | body=JSON.stringify(body) 17 | $done({body}) -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/bilibiliFeed.js: -------------------------------------------------------------------------------- 1 | //Customize blacklist 2 | /* 3 | ^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 4 | ^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 5 | ^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 6 | ^https://app.bilibili.com/x/v2/view\?access_key url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliViewRelate.js 7 | ^https://app.bilibili.com/x/v2/rank url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliRank.js 8 | ^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 9 | ^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 10 | 11 | mitm = ap*.bilibili.com 12 | 13 | by onewayticket255 14 | */ 15 | let blacklist=['共青团中央','广东共青团','浙江共青团','山东共青团','安徽共青团','河南共青团','央视频','徐大sao','翔翔大作战','徐大虾咯','科技美学','敬汉卿','NathanRich火锅大王','千户长生'] 16 | 17 | let body = $response.body 18 | body=JSON.parse(body) 19 | body['data']['items'].forEach((element, index)=> { 20 | if(element.hasOwnProperty('ad_info')||element.hasOwnProperty('banner_item')||element['card_type']!='small_cover_v2'||blacklist.includes(element['args']['up_name'])){ 21 | body['data']['items'].splice(index,1) 22 | } 23 | }) 24 | body=JSON.stringify(body) 25 | $done({body}) 26 | -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/bilibiliHot.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 | 15 | let blacklist=['共青团中央','广东共青团','浙江共青团','山东共青团','安徽共青团','河南共青团','央视频','徐大sao','翔翔大作战','徐大虾咯','科技美学','敬汉卿','NathanRich火锅大王','千户长生'] 16 | 17 | let body = $response.body 18 | body=JSON.parse(body) 19 | body['data'].forEach((element, index)=> { 20 | if(blacklist.includes(element['right_desc_1'])||element["card_type"] !== "small_cover_v5"){ 21 | body['data'].splice(index,1) 22 | } 23 | }) 24 | body=JSON.stringify(body) 25 | $done({body}) -------------------------------------------------------------------------------- /NobyDa/QuantumultX/File/bilibiliRank.js: -------------------------------------------------------------------------------- 1 | //Customize blacklist 2 | /* 3 | ^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 4 | ^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 5 | ^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 6 | ^https://app.bilibili.com/x/v2/view\?access_key url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliViewRelate.js 7 | ^https://app.bilibili.com/x/v2/rank url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilibiliRank.js 8 | ^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 9 | ^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 10 | 11 | mitm = ap*.bilibili.com 12 | 13 | by onewayticket255 14 | */ 15 | let blacklist=['共青团中央','广东共青团','浙江共青团','山东共青团','安徽共青团','河南共青团','央视频','徐大sao','翔翔大作战','徐大虾咯','科技美学','敬汉卿','NathanRich火锅大王','千户长生'] 16 | 17 | let body = $response.body 18 | body=JSON.parse(body) 19 | body['data'].forEach((element, index)=> { 20 | if(blacklist.includes(element['name'])){ 21 | body['data'].splice(index,1) 22 | } 23 | }) 24 | body=JSON.stringify(body) 25 | $done({body}) 26 | -------------------------------------------------------------------------------- /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/bilibiliViewRelate.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 | 15 | let body = $response.body 16 | body=JSON.parse(body) 17 | body['data']['relates'].forEach((element, index)=> { 18 | if(element.hasOwnProperty('is_ad')||!element.hasOwnProperty('aid')){ 19 | body['data']['relates'].splice(index,1) 20 | } 21 | }) 22 | delete body['data']['cms'] 23 | body=JSON.stringify(body) 24 | $done({body}) 25 | -------------------------------------------------------------------------------- /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/wb_launch.js: -------------------------------------------------------------------------------- 1 | /* 2 | Weibo remove start up ads 3 | 4 | [rewrite_local] 5 | ^https?://m?api\.weibo\.c(n|om)/2/(statuses/(unread|extend|positives/get|(friends|video)(/|_)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) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/wb_ad.js 6 | ^https?://(sdk|wb)app\.uve\.weibo\.com(/interface/sdk/sdkad.php|/wbapplua/wbpullad.lua) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/wb_launch.js 7 | [mitm] 8 | hostname = api.weibo.cn, mapi.weibo.com, *.uve.weibo.com 9 | */ 10 | 11 | const path1 = "/interface/sdk/sdkad.php"; 12 | const path2 = "/wbapplua/wbpullad.lua"; 13 | 14 | const url = $request.url; 15 | var body = $response.body; 16 | 17 | if (url.indexOf(path1) != -1) { 18 | let re = /\{.*\}/; 19 | body = body.match(re); 20 | var obj = JSON.parse(body); 21 | if (obj.background_delay_display_time) obj.background_delay_display_time = 60*60*24*365; 22 | if (obj.show_push_splash_ad) obj.show_push_splash_ad = false; 23 | if (obj.ads) obj.ads = []; 24 | body = JSON.stringify(obj) + 'OK'; 25 | } 26 | 27 | if (url.indexOf(path2) != -1) { 28 | var obj = JSON.parse(body); 29 | if (obj.cached_ad && obj.cached_ad.ads) obj.cached_ad.ads = []; 30 | body = JSON.stringify(obj); 31 | } 32 | 33 | $done({body}); 34 | 35 | // by yichahucha -------------------------------------------------------------------------------- /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/QuantumultX/iQIYI-DailyBonus/iQIYI_GetCookie_QX.js 7 | 8 | # 52pojie Get cookie 9 | https:\/\/www\.52pojie\.cn\/home\.php\?mod=space url script-request-header NobyDa/QuantumultX/52pojie-DailyBonus/52pojie_GetCookie_QX.js 10 | 11 | # Tieba Get cookie 12 | https?:\/\/c\.tieba\.baidu\.com\/c\/s\/login url script-request-header NobyDa/QuantumultX/TieBa-DailyBonus/TieBa_GetCookie_QX.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/QuantumultX/TieBa-DailyBonus/TieBa_GetCookie_QX.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | TieBa Checkin Get Cookie. 4 | 5 | About the author: 6 | Telegram channel: @NobyDa 7 | Telegram bots: @NobyDa_bot 8 | 9 | Description : 10 | When TieBa app is opened, click "My", If notification gets cookie success, you can use the check in script. because script will automatically judgment whether the cookie is updated, so you dont need to disable it manually. 11 | 12 | Note that the following config is only a local script configuration, please put this scripts into Quantumult X/Script, and the cookie script only works for TieBa apps in china apple store 13 | 14 | [rewrite_local] 15 | # Get TieBa cookie. 【QX TF188+】: 16 | https?:\/\/c\.tieba\.baidu\.com\/c\/s\/login url script-request-header TieBa_GetCookie_QX.js 17 | 18 | # MITM = c.tieba.baidu.com 19 | 20 | */ 21 | 22 | var headerCookie = $request.headers["Cookie"]; 23 | 24 | if (headerCookie) { 25 | if ($prefs.valueForKey("CookieTB") != undefined) { 26 | if ($prefs.valueForKey("CookieTB") != headerCookie) { 27 | if (headerCookie.indexOf("BDUSS") != -1) { 28 | var cookie = $prefs.setValueForKey(headerCookie, "CookieTB"); 29 | if (!cookie) { 30 | $notify("更新贴吧Cookie失败‼️", "", ""); 31 | } else { 32 | $notify("更新贴吧Cookie成功 🎉", "", ""); 33 | } 34 | } 35 | } 36 | } else { 37 | if (headerCookie.indexOf("BDUSS") != -1) { 38 | var cookie = $prefs.setValueForKey(headerCookie, "CookieTB"); 39 | if (!cookie) { 40 | $notify("首次写入贴吧Cookie失败‼️", "", ""); 41 | } else { 42 | $notify("首次写入贴吧Cookie成功 🎉", "", ""); 43 | } 44 | } 45 | } 46 | } 47 | $done({}) -------------------------------------------------------------------------------- /NobyDa/QuantumultX/iQIYI-DailyBonus/iQIYI_DailyBonus_QX.js: -------------------------------------------------------------------------------- 1 | /* 2 | iQIYI Daily bonus script 3 | 4 | Update 2020.1.2 17:00 5 | 6 | About the author: 7 | If reproduced, indicate the source 8 | Telegram channel: @NobyDa 9 | Telegram bots: @NobyDa_bot 10 | 11 | Description : 12 | When iQiyi app is opened, click "My", If notification gets cookie success, you can use the check in script. because script will automatically judgment whether the cookie is updated, so you dont need to disable it manually. 13 | 14 | script will be performed every day at 9 am. You can modify the execution time. 15 | Note that the following config is only a local script configuration, please put both scripts into Quantumult X/Script, and the cookie script only works for iQIYI apps in china apple store 16 | 17 | [rewrite_local] 18 | # Get iQIYI cookie. 【QX TF188+】: 19 | https?:\/\/.*\.iqiyi\.com\/.*authcookie= url script-request-header iQIYI_GetCookie_QX.js 20 | 21 | # MITM = *.iqiyi.com 22 | 23 | [task_local] 24 | 0 9 * * * iQIYI_DailyBonus_QX.js 25 | 26 | */ 27 | 28 | var bonus = { 29 | url: 'https://tc.vip.iqiyi.com/taskCenter/task/queryUserTask?autoSign=yes&P00001=' + $prefs.valueForKey("CookieQY"), 30 | }; 31 | $task.fetch(bonus).then(response => { 32 | var obj = JSON.parse(response.body); 33 | if (obj.msg == "成功") { 34 | if (obj.data.signInfo.code == "A00000") { 35 | console.log("success response: \n" + response.body); 36 | var status = obj.data.signInfo.msg; 37 | var AwardName = obj.data.signInfo.data.rewards[0].name; 38 | var quantity = obj.data.signInfo.data.rewards[0].value; 39 | var continued = obj.data.signInfo.data.continueSignDaysSum; 40 | $notify("爱奇艺签到", "", status + "!获得" + AwardName + quantity + ", 已连续签到" + continued + "天 🎉"); 41 | } else { 42 | console.log("failure response: \n" + response.body); 43 | $notify("爱奇艺签到", "", "失败, " + obj.data.signInfo.msg + "⚠️"); 44 | } 45 | } else { 46 | $notify("爱奇艺签到,Cookie无效‼️‼️", "", response.body); 47 | } 48 | }, reason => { 49 | $notify("爱奇艺签到,请求失败‼️‼️‼", "", reason.error); 50 | }); -------------------------------------------------------------------------------- /NobyDa/QuantumultX/iQIYI-DailyBonus/iQIYI_GetCookie_QX.js: -------------------------------------------------------------------------------- 1 | /* 2 | iQIYI Checkin Get Cookie. 3 | 4 | Update 2019.12.31 0:30 5 | 6 | About the author: 7 | If reproduced, indicate the source 8 | Telegram channel: @NobyDa 9 | Telegram bots: @NobyDa_bot 10 | 11 | Description : 12 | When iQiyi app is opened, click "My", If notification gets cookie success, you can use the check in script. because script will automatically judgment whether the cookie is updated, so you dont need to disable it manually. 13 | 14 | script will be performed every day at 9 am. You can modify the execution time. 15 | Note that the following config is only a local script configuration, please put both scripts into Quantumult X/Script, and the cookie script only works for iQIYI apps in china apple store 16 | 17 | [rewrite_local] 18 | # Get iQIYI cookie. 【QX TF188+】: 19 | https?:\/\/.*\.iqiyi\.com\/.*authcookie= url script-request-header iQIYI_GetCookie_QX.js 20 | 21 | # MITM = *.iqiyi.com 22 | 23 | [task_local] 24 | 0 9 * * * iQIYI_DailyBonus_QX.js 25 | 26 | */ 27 | 28 | var regex = /authcookie=([A-Za-z0-9]+)/; 29 | var iQIYI = regex.exec($request.url)[1]; 30 | 31 | if ($prefs.valueForKey("CookieQY") != undefined) { 32 | if ($prefs.valueForKey("CookieQY") != iQIYI) { 33 | var cookie = $prefs.setValueForKey(iQIYI, "CookieQY"); 34 | if (!cookie) { 35 | $notify("更新爱奇艺签到Cookie失败‼️", "", "") 36 | } else { 37 | $notify("更新爱奇艺签到Cookie成功 🎉", "", "") 38 | } 39 | } 40 | } else { 41 | var cookie = $prefs.setValueForKey(iQIYI, "CookieQY"); 42 | if (!cookie) { 43 | $notify("首次写入爱奇艺Cookie失败‼️", "", "") 44 | } else { 45 | $notify("首次写入爱奇艺Cookie成功 🎉", "", "") 46 | } 47 | } 48 | $done({}) -------------------------------------------------------------------------------- /NobyDa/Surge/52pojieDailyBonus/52pojie.js: -------------------------------------------------------------------------------- 1 | /* 2 | 52pojie Forum daily automatic bonus. 3 | 4 | Description : 5 | When using for the first time. Need to manually log in to the 52pojie forum to get cookie. When Surge pops up to get a successful notification, you can disable the HTTP request script. 6 | Due to the validity of cookie, if the script pops up a notification of cookie invalidation in the future, you need to repeat the above steps. 7 | 8 | 9 | Surge 4.0 : [Script] 10 | 11 | // Daily bonus Script. Will be performed every day at 8 am. You can modify the execution time. 12 | cron "0 8 * * *" script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/52pojieDailyBonus/52pojie.js 13 | 14 | // Get Cookie Script : 15 | http-request https:\/\/www\.52pojie\.cn\/home\.php\? script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/52pojieDailyBonus/Get-Cookie.js 16 | 17 | // MITM = www.52pojie.cn 18 | */ 19 | 20 | var bonus = { 21 | url: 'https://www.52pojie.cn/home.php?mod=task&do=apply&id=2&mobile=no', 22 | headers: { 23 | Cookie: $persistentStore.read("CookieWA"), 24 | } 25 | }; 26 | var date = new Date() 27 | var week = ["Sunday","Monday","Tuseday","Wednesday","Thursday","Friday","Saturday"]; 28 | var month = ["Jan.","Feb.","Mar.","Apr.","May","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."]; 29 | 30 | $httpClient.get(bonus, function(error, response, data) { 31 | if (error) { 32 | console.log(error); 33 | $notification.post("52pojie Daily bonus. Interface error‼️‼️‼️", "", error) 34 | $done() 35 | } else { 36 | if (data.match(/ÒÑÍê³É/)) { 37 | $notification.post("52pojie Daily bonus", "", week[date.getDay()] + ", " + month[date.getMonth()] + " " + date.getDate() + ", " + "Daily bonus success!🎉") 38 | $done() 39 | } else { 40 | if (data.match(/ÄúÒÑ/)) { 41 | $notification.post("52pojie Daily bonus", "", week[date.getDay()] + ", " + month[date.getMonth()] + " " + date.getDate() + ", " + "Repeat ⚠️") 42 | $done() 43 | } else { 44 | if (data.match(/ÏȵǼ/)) { 45 | $notification.post("52pojie Daily bonus. Error. Cookies expire", "", "Please reopen the script to get‼️") 46 | $done() 47 | } else { 48 | $notification.post("52pojie Daily bonus", "", "Scripts need to be updated ‼️‼️") 49 | $done() 50 | } 51 | } 52 | } 53 | } 54 | }) 55 | 56 | // If reprinted, please indicate the source. My TG channel @NobyDa -------------------------------------------------------------------------------- /NobyDa/Surge/52pojieDailyBonus/Get-Cookie.js: -------------------------------------------------------------------------------- 1 | /* 2 | 52pojie Forum get cookie 3 | 4 | Description : 5 | Need to manually log in to the https://www.52pojie.cn/home.php?mod=space checkin to get cookie. If you receive a cookie success notification, you can disable this script. 6 | 7 | Surge 4.0 : [Script] 8 | http-request https:\/\/www\.52pojie\.cn\/home\.php\? script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/52pojieDailyBonus/Get-Cookie.js 9 | 10 | MITM = www.52pojie.cn 11 | */ 12 | 13 | if ($request.url.indexOf('home') != -1) { 14 | if ($request.headers['Cookie']) { 15 | var headerWA = $request.headers['Cookie']; 16 | $persistentStore.write(headerWA, "CookieWA"); 17 | $notification.post("Get Cookie success!🎉", "", "You can disable the HTTP request script") 18 | } 19 | } 20 | $done({}) -------------------------------------------------------------------------------- /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 | # bt 12 | DOMAIN-SUFFIX,smtp 13 | DOMAIN-KEYWORD,aria2 14 | URL-REGEX,(Subject|HELO|SMTP) 15 | URL-REGEX,(api|ps|sv|offnavi|newvector|ulog.imap|newloc)(.map|).(baidu|n.shifen).com 16 | URL-REGEX,(.+.|^)(360|so|qihoo|360safe|qhimg|360totalsecurity|yunpan).(cn|com) 17 | URL-REGEX,(.+.)?(torrent|announce.php?passkey=|tracker|BitTorrent|bt_key|ed2k|find_node|get_peers|info_hash|magnet:|peer_id=|xunlei)(..+)? 18 | # XunLei 19 | URL-REGEX,(.?)(xunlei|sandai|Thunder|XLLiveUD)(.) 20 | PROCESS-NAME,DownloadService 21 | # 360 22 | URL-REGEX,(.+\.|^)(360|so)\.(cn|com) 23 | # Tencent Weiyun 24 | PROCESS-NAME,Weiyun 25 | -------------------------------------------------------------------------------- /NobyDa/Surge/JS/Aweme.js: -------------------------------------------------------------------------------- 1 | /* 2 | [URL Rewrite] 3 | ^https://aweme-eagle(.*)\.snssdk\.com/aweme/v2/ https://aweme-eagle$1.snssdk.com/aweme/v1/ 302 4 | 5 | [Script] 6 | http-response ^https://[\s\S]*\/aweme/v1/(feed|aweme/post|follow/feed)/ requires-body=1,max-size=-1,script-path=https://Choler.github.io/Surge/Script/Aweme.js 7 | 8 | [MITM] 9 | hostname = *.amemv.com, *.snssdk.com 10 | */ 11 | 12 | let arr = { 13 | "allow_download": true, 14 | "share_type": 0, 15 | "show_progress_bar": 0, 16 | "draft_progress_bar": 0, 17 | "allow_duet": true, 18 | "allow_react": true, 19 | "prevent_download_type": 2, 20 | "allow_dynamic_wallpaper": false 21 | }; 22 | let body = $response.body.replace(/watermark=1/g, "watermark=0"); 23 | var obj = JSON.parse(body); 24 | if (obj.aweme_list) { 25 | for (var i = obj.aweme_list.length - 1; i >= 0; i--) { 26 | if (obj.aweme_list[i].raw_ad_data) { 27 | obj.aweme_list.splice(i, 1); 28 | } 29 | if (obj.aweme_list[i].poi_info) { 30 | delete obj.aweme_list[i].poi_info; 31 | } 32 | if (obj.aweme_list[i].sticker_detail) { 33 | delete obj.aweme_list[i].sticker_detail; 34 | } 35 | if (obj.aweme_list[i].simple_promotions) { 36 | delete obj.aweme_list[i].simple_promotions; 37 | } 38 | obj.aweme_list[i].status.reviewed = 1; 39 | obj.aweme_list[i].video_control = arr; 40 | } 41 | $done({body: JSON.stringify(obj)}); 42 | } else if (obj.data) { 43 | for (var i = obj.data.length - 1; i >= 0; i--) { 44 | if (obj.data[i].aweme) { 45 | if (obj.data[i].aweme.poi_info) { 46 | delete obj.data[i].aweme.poi_info; 47 | } 48 | if (obj.data[i].aweme.simple_promotions) { 49 | delete obj.data[i].aweme.simple_promotions; 50 | } 51 | obj.data[i].aweme.status.reviewed = 1; 52 | obj.data[i].aweme.video_control = arr; 53 | } else { 54 | obj.data.splice(i, 1); 55 | } 56 | } 57 | $done({body: JSON.stringify(obj)}); 58 | } else { 59 | $done({body}); 60 | } 61 | 62 | // by choler -------------------------------------------------------------------------------- /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/iQIYI-DailyBonus/iQIYI_DailyBonus.js: -------------------------------------------------------------------------------- 1 | /* 2 | iQIYI Daily bonus script 3 | 4 | Update 2020.1.2 17:00 5 | 6 | About the author: 7 | If reproduced, indicate the source 8 | Telegram channel: @NobyDa 9 | Telegram bots: @NobyDa_bot 10 | 11 | Description : 12 | When iQiyi app is opened, click "My", If notification gets cookie success, you can use the check in script. because script will automatically judgment whether the cookie is updated, so you dont need to disable it manually. 13 | 14 | script will be performed every day at 9 am. You can modify the execution time. and the cookie script only works for iQIYI apps in china apple store 15 | 16 | [Script] 17 | # iQIYI Daily bonus script 18 | cron "0 9 * * *" script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/iQIYI-DailyBonus/iQIYI_DailyBonus.js 19 | 20 | # Get Cookie 21 | http-request https?:\/\/.*\.iqiyi\.com\/.*authcookie= script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/iQIYI-DailyBonus/iQIYI_GetCookie.js 22 | 23 | # MITM = *.iqiyi.com 24 | */ 25 | 26 | $httpClient.get('https://tc.vip.iqiyi.com/taskCenter/task/queryUserTask?autoSign=yes&P00001=' + $persistentStore.read("CookieQY"), function(error, response, data) { 27 | if (error) { 28 | $notification.post("爱奇艺签到,请求失败‼️‼️‼", "", error); 29 | } else { 30 | var obj = JSON.parse(data); 31 | if (obj.msg == "成功") { 32 | if (obj.data.signInfo.code == "A00000") { 33 | console.log("success response: \n" + data); 34 | var status = obj.data.signInfo.msg; 35 | var AwardName = obj.data.signInfo.data.rewards[0].name; 36 | var quantity = obj.data.signInfo.data.rewards[0].value; 37 | var continued = obj.data.signInfo.data.continueSignDaysSum; 38 | $notification.post("爱奇艺签到", "", status + "!获得" + AwardName + quantity + ", 已连续签到" + continued + "天 🎉"); 39 | } else { 40 | console.log("failure response: \n" + data); 41 | $notification.post("爱奇艺签到", "", "失败, " + obj.data.signInfo.msg + "⚠️"); 42 | } 43 | } else { 44 | $notification.post("爱奇艺签到,Cookie无效‼️‼️", "", data); 45 | } 46 | } 47 | }) -------------------------------------------------------------------------------- /NobyDa/Surge/iQIYI-DailyBonus/iQIYI_GetCookie.js: -------------------------------------------------------------------------------- 1 | /* 2 | iQIYI Daily bonus script 3 | 4 | Update 2019.12.31 0:30 5 | 6 | About the author: 7 | If reproduced, indicate the source 8 | Telegram channel: @NobyDa 9 | Telegram bots: @NobyDa_bot 10 | 11 | Description : 12 | When iQiyi app is opened, click "My", If notification gets cookie success, you can use the check in script. because script will automatically judgment whether the cookie is updated, so you dont need to disable it manually. 13 | 14 | script will be performed every day at 9 am. You can modify the execution time. and the cookie script only works for iQIYI apps in china apple store 15 | 16 | [Script] 17 | # iQIYI Daily bonus script 18 | cron "0 9 * * *" script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/iQIYI-DailyBonus/iQIYI_DailyBonus.js 19 | 20 | # Get Cookie 21 | http-request https?:\/\/.*\.iqiyi\.com\/.*authcookie= script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/iQIYI-DailyBonus/iQIYI_GetCookie.js 22 | 23 | # MITM = *.iqiyi.com 24 | */ 25 | 26 | var regex = /authcookie=([A-Za-z0-9]+)/; 27 | var iQIYI = regex.exec($request.url)[1]; 28 | 29 | if ($persistentStore.read("CookieQY") != null) { 30 | if ($persistentStore.read("CookieQY") != iQIYI) { 31 | var cookie = $persistentStore.write(iQIYI, "CookieQY"); 32 | if (!cookie) { 33 | $notification.post("更新爱奇艺签到Cookie失败‼️", "", "") 34 | } else { 35 | $notification.post("更新爱奇艺签到Cookie成功 🎉", "", "") 36 | } 37 | } 38 | } else { 39 | var cookie = $persistentStore.write(iQIYI, "CookieQY"); 40 | if (!cookie) { 41 | $notification.post("首次写入爱奇艺Cookie失败‼️", "", "") 42 | } else { 43 | $notification.post("首次写入爱奇艺Cookie成功 🎉", "", "") 44 | } 45 | } 46 | $done({}) -------------------------------------------------------------------------------- /Script/115lx.js: -------------------------------------------------------------------------------- 1 | /* 2 | 使用方法: 3 | 注意:该脚本无破解离线功能,只是给新版115的App添加创建离线任务的方法。 4 | 1.在[Script]分组下添加下面这行配置 5 | http-response ^http:\/\/115\.com\/lx.*$ script-path=https://raw.githubusercontent.com/ikanam/Surge-Scripts/master/115lx.js, requires-body=true 6 | http-response ^https?:\/\/webapi\.115\.com\/user\/check_sign.*$ script-path=https://raw.githubusercontent.com/ikanam/Surge-Scripts/master/115lx.js, requires-body=true 7 | 2.[MITM]分组添加hostname = *.115.com 8 | 3.在115Aapp中通过网页打开http://115.com/lx?taskdg=1(可在记录中保存该地址打开, 也可添加下面的配置将首页的签到按钮跳转重定向到离线下载页面) 9 | [URL Rewrite] 10 | ^http:\/\/115\.com\/\?ct=sign$ http://115.com/lx?taskdg=1 header 11 | 4.快速创建下载任务的快捷指令: https://www.icloud.com/shortcuts/31e3a877cec340a48192aa081e25c05e 12 | */ 13 | 14 | var body = $response.body; 15 | if ($request.url.indexOf('/user/check_sign') != -1) { 16 | let json = JSON.parse(body); 17 | json.data.is_new_sign = false; 18 | body = JSON.stringify(json); 19 | } else { 20 | body = body.replace("UDown", 'XXXXXXXXX'); // 使重定向判断条件失效 21 | let clearJS = `` 45 | body = body.replace("", clearJS + '\n'); // 注入清空任务相关JS 46 | } 47 | $done({body}); 48 | -------------------------------------------------------------------------------- /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/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/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.unblock.playurl.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | # bilibili 4 | 5 | > 代码已同时兼容 Surge & QuanX, 使用同一份签到脚本即可 6 | 7 | > https://github.com/chavyleung/scripts 8 | 9 | ## 配置 (QuanX) 10 | ```properties 11 | [mitm] 12 | hostname = api.bilibili.com 13 | [rewrite_local] 14 | ^https:\/\/api.bilibili.com\/pgc\/player\/api\/playurl url script-response-body bilibili.unblock.playurl.min.js 15 | ^https:\/\/api.bilibili.com\/pgc\/view\/app\/season url script-response-body bilibili.unblock.season.min.js 16 | ``` 17 | 18 | ## 配置 (Surge) 19 | ```properties 20 | [MITM] 21 | hostname = api.bilibili.com 22 | [Script] 23 | http-response https://api.bilibili.com/pgc/player/api/playurl requires-body=1,max-size=0,script-path=bilibili.unblock.playurl.min.js 24 | http-response https://api.bilibili.com/pgc/view/app/season requires-body=1,max-size=0,script-path=bilibili.unblock.season.min.js 25 | 26 | ## 感谢 27 | 28 | [@onewayticket255](https://github.com/onewayticket255) 29 | ``` 30 | */ 31 | function init(){return isSurge=(()=>void 0!==this.$httpClient),isQuanX=(()=>void 0!==this.$task),isJSON=(e=>"object"==typeof JSON.parse(e)),getdata=(e=>isSurge()?$persistentStore.read(e):isQuanX()?$prefs.valueForKey(e):void 0),setdata=((e,t)=>isSurge()?$persistentStore.write(e,t):isQuanX()?$prefs.setValueForKey(e,t):void 0),msg=((e,t,i)=>{isSurge()&&$notification.post(e,t,i),isQuanX()&&$notify(e,t,i)}),log=(e=>console.log(e)),get=((e,t)=>{isSurge()&&$httpClient.get(e,t),isQuanX()&&(e.method="GET",$task.fetch(e).then(e=>t(null,{},e.body)))}),post=((e,t)=>{isSurge()&&$httpClient.post(e,t),isQuanX()&&(e.method="POST",$task.fetch(e).then(e=>t(null,{},e.body)))}),done=((e={})=>{$done(e)}),{isSurge:isSurge,isQuanX:isQuanX,isJSON:isJSON,msg:msg,log:log,getdata:getdata,setdata:setdata,get:get,post:post,done:done}}const chavy=init(),querystr=$request.url.split("?")[1],queryparams={};if(querystr)for(queryparam of querystr.split("&"))queryparams[queryparam.split("=")[0]]=queryparam.split("=")[1];const cid=queryparams.cid?queryparams.cid:"",ep_id=queryparams.ep_id?queryparams.ep_id:"",url=`https://bilibili.mlyx.workers.dev/?cid=${cid}&ep_id=${ep_id}`;chavy.get({url:url},(e,t,i)=>{try{let e=JSON.parse(i);0==e.code?(chavy.msg("bilibili","\u64ad\u653e\u65b9\u5f0f: \u5927\u4f1a\u5458","\u8bf4\u660e: \u83b7\u53d6\u8fde\u63a5\u4fe1\u606f"),chavy.done({body:i})):(chavy.msg("bilibili","\u64ad\u653e\u65b9\u5f0f: \u666e\u901a\u4f1a\u5458","\u8bf4\u660e: \u83b7\u53d6\u8fde\u63a5\u4fe1\u606f"),chavy.done())}catch(e){chavy.done()}}); -------------------------------------------------------------------------------- /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/dayone.js: -------------------------------------------------------------------------------- 1 | /* 2 | Day One Premium 3 | 4 | Day One 脚本由本脚本与 dayone-pre.js (以下称 pre 脚本)两部分组成,主脚本用于修改响应内容、pre 脚本用于屏蔽缓存 5 | 6 | 用法说明: 7 | 1. 启用本脚本与 pre 脚本 8 | 2. 重启 Day One,稍等片刻等待高级版出现 9 | 3. 禁用掉 pre 脚本,重启 Day One,确认高级版状况不变 10 | 11 | 如果后续误操作导致 Day One 恢复为 Free/Plus 则重复上述操作。 12 | 13 | Surge 14 | http-response ^https:\/\/dayone\.me\/api\/(users|v2\/users\/account-status)$ requires-body=1,max-size=0,script-path=scripts/dayone.js 15 | #QX(response.status)后➕Code 16 | ^https:\/\/dayone\.me\/api\/(users|v2\/users\/account-status)$ url script-response-body dayone.js 17 | 18 | MitM = dayone.me 19 | 20 | 本脚本由 @ImSingee 与 @Mornwind 共同完成,请勿在公开群组、频道或是论坛、博客发布 21 | */ 22 | 23 | if ($response.statusCode == 200) { 24 | if ($request.url.endsWith("account-status")) { 25 | 26 | $done({body: JSON.stringify({ 27 | "expirationDate": 1893427199000, 28 | "startDate": 1546272000000, 29 | "subscriptionPlan": "com.bloombuilt.dayoneios.subscription.premium.yearly_discounted_trial", 30 | "lastRenewalDate": 1546531200000, 31 | "subscriptionName": "premium", 32 | "bundleReason": "purchase", 33 | "cancellationDate": 0 34 | } )}); 35 | 36 | } else { 37 | const bodyJson = JSON.parse($response.body); 38 | 39 | 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}]}; 40 | 41 | $done({body: JSON.stringify(bodyJson)}); 42 | } 43 | } else { 44 | $done({}); 45 | } 46 | -------------------------------------------------------------------------------- /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/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/jrrb.js: -------------------------------------------------------------------------------- 1 | var obj = JSON.parse($response.body); 2 | obj={ 3 | "data": { 4 | "is_vip": "1", 5 | "vip_expired": "4092599349", 6 | "is_vip_now": true 7 | }, 8 | "error": false, 9 | "status": 200 10 | }; 11 | $done({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/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/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:\/\/m\.pearkin\.com\/(api\/Movie\/WatchMovie|api\/Account\/CheckVip|api\/account\/IndexDetail) url script-response-body pear.js 6 | 7 | MITM = m.pearkin.com 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}); 39 | 40 | -------------------------------------------------------------------------------- /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/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/revenuecat.js: -------------------------------------------------------------------------------- 1 | /* 2 | QX: ^https:\/\/api\.revenuecat\.com\/v1\/subscribers\/ url script-response-body revenuecat.js 3 | 4 | hostname = api.revenuecat.com 5 | 6 | 仅限NobyDa Script群组学习交流,严禁外传! 7 | 8 | By @sunshy 9 | */ 10 | 11 | let obj=JSON.parse($response.body); 12 | let url=$request.url; 13 | 14 | if(url.endsWith("offerings")||url.endsWith("products")) { 15 | $done({}); 16 | } else { 17 | // Noto笔记Lifetime 18 | if (url.indexOf("EE5F4363-50A2-4A57-8172-DA69F76DE2FB")!=-1) { 19 | obj["subscriber"]["entitlements"]["pro"]={ 20 | "expires_date": null, 21 | "product_identifier": "com.lkzhao.editor.full.deal", 22 | "purchase_date": "2019-12-01T00:00:00Z" 23 | }; 24 | obj["subscriber"]["non_subscriptions"]["com.lkzhao.editor.full.deal"]=[{ 25 | "id": "12345qwert", 26 | "is_sandbox": false, 27 | "original_purchase_date": "2019-12-01T00:00:00Z", 28 | "purchase_date": "2019-12-01T00:00:00Z", 29 | "store": "app_store" 30 | }]; 31 | } 32 | // Airmail Premium 33 | if (url.indexOf("5647911E-B243-48C9-A25C-29116412A20D")!=-1) { 34 | obj["subscriber"]["entitlements"]={ 35 | "Airmail Premium": { 36 | "expires_date": "2099-12-01T00:00:00Z", 37 | "product_identifier": "Airmail_iOS_Yearly", 38 | "purchase_date": "2019-12-01T00:00:00Z" 39 | } 40 | }; 41 | obj["subscriber"]["subscriptions"]={ 42 | "Airmail_iOS_Yearly": { 43 | "is_sandbox": false, 44 | "period_type": "active", 45 | "billing_issues_detected_at": null, 46 | "unsubscribe_detected_at": null, 47 | "expires_date": "2099-12-01T00:00:00Z", 48 | "original_purchase_date": "2019-10-31T00:00:00Z", 49 | "purchase_date": "2019-10-31T00:00:00Z", 50 | "store": "app_store" 51 | } 52 | }; 53 | } 54 | } 55 | 56 | $done({body:JSON.stringify(obj)}); -------------------------------------------------------------------------------- /Script/rrtv.js: -------------------------------------------------------------------------------- 1 | var body = $response.body; 2 | var url = $request.url; 3 | 4 | if (url.indexOf('/ad/getAll') != -1) { 5 | var obj = JSON.parse(body); 6 | obj.data.adList = []; 7 | body = JSON.stringify(obj); 8 | } else if (url.indexOf('/user/privilege/list') != -1) { 9 | var obj = JSON.parse(body); 10 | obj.data = [{ 11 | "action": "play", 12 | "effectObject": "video", 13 | "id": 1, 14 | "function": "originalPainting", 15 | "func": "originalPainting", 16 | "endTime": 1667341767582, 17 | "description": "解锁原画", 18 | "icon": "jiesuoyuanhua" 19 | }, { 20 | "action": "play", 21 | "effectObject": "video", 22 | "id": 4, 23 | "function": "noLimit", 24 | "func": "noLimit", 25 | "endTime": 1567341767582, 26 | "description": "看剧无限制", 27 | "icon": "kanjuwuxianzhi" 28 | }, { 29 | "action": "play", 30 | "effectObject": "growth", 31 | "id": 37, 32 | "function": "0.4", 33 | "func": "0.4", 34 | "endTime": 1667341767582, 35 | "description": "看剧经验+40%", 36 | "icon": "jingyanzhijiacheng" 37 | }, { 38 | "action": "send", 39 | "effectObject": "danmu", 40 | "id": 43, 41 | "function": "superBarrageBlue", 42 | "func": "superBarrageBlue", 43 | "endTime": 1667341767582, 44 | "description": "超级弹幕", 45 | "icon": "chaojidanmu" 46 | }, { 47 | "action": "play", 48 | "effectObject": "video", 49 | "id": 23, 50 | "function": "noAd", 51 | "func": "noAd", 52 | "endTime": 1667341767582, 53 | "description": "看剧无广告", 54 | "icon": "kanjuwuguanggao" 55 | }]; 56 | 57 | }else if(url.indexOf('/rrtv-video/v4plus/season/detail') != -1){ 58 | var obj = JSON.parse(body); 59 | 60 | obj.data['season']['feeMode'] = 'restriction'; 61 | } 62 | 63 | 64 | body = JSON.stringify(obj); 65 | 66 | $done({ 67 | body 68 | }); -------------------------------------------------------------------------------- /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/smzdm.js: -------------------------------------------------------------------------------- 1 | /* 2 | 什么值得买主屏去广告 3 | [Surge 4] 4 | http-response ^https?:\/\/homepage-api\.smzdm\.com\/home\?ad requires-body=1,max-size=-1,script-path=https://raw.githubusercontent.com/primovist/ScriptsForSurge/master/Scripts/SMZDM.js 5 | 6 | [QuantumultX] 7 | ^https?:\/\/homepage-api\.smzdm\.com\/home\?ad url script-response-body nzw9314/Script/smzdm.js 8 | 9 | [MITM] 10 | hostname = *.smzdm.com 11 | */ 12 | 13 | let body = JSON.parse($response.body); 14 | delete body.data.banner.big_banner; 15 | delete body.data.banner.tonglan_banner; 16 | body.data.rows.forEach((element, index) => { 17 | if (element.model_type == "ads") { 18 | body.data.rows.splice(index, 1); 19 | } 20 | }); 21 | $done({ 22 | body: JSON.stringify(body) 23 | }) -------------------------------------------------------------------------------- /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 Gmail 2 | DOMAIN,pop.gmail.com 3 | DOMAIN,imap.gmail.com 4 | DOMAIN,smtp.gmail.com 5 | # > Outlook 6 | DOMAIN,outlook.office365.com 7 | DOMAIN,smtp.office365.com 8 | DOMAIN,imap-mail.outlook.com 9 | DOMAIN,smtp-mail.outlook.com -------------------------------------------------------------------------------- /Surge/Ruleset/Special.list: -------------------------------------------------------------------------------- 1 | # Special 2 | # > General 3 | USER-AGENT,coffeecorp* 4 | USER-AGENT,restaurant-mobile* 5 | DOMAIN,app.adjust.com 6 | # > Google 7 | DOMAIN-SUFFIX,googletraveladservices.com 8 | DOMAIN,dl.google.com 9 | DOMAIN,mtalk.google.com 10 | # > Tencent 11 | DOMAIN,livew.l.qq.com 12 | DOMAIN,vd.l.qq.com 13 | # > Strava 14 | DOMAIN,analytics.strava.com 15 | # > Umeng 16 | DOMAIN,msg.umeng.com 17 | DOMAIN,msg.umengcloud.com 18 | 19 | # > Download 20 | PROCESS-NAME,aria2c,DIRECT 21 | PROCESS-NAME,fdm,DIRECT 22 | PROCESS-NAME,Folx,DIRECT 23 | PROCESS-NAME,NetTransport,DIRECT 24 | PROCESS-NAME,Thunder,DIRECT 25 | PROCESS-NAME,Transmission,DIRECT 26 | PROCESS-NAME,uTorrent,DIRECT 27 | PROCESS-NAME,WebTorrent,DIRECT 28 | PROCESS-NAME,WebTorrent Helper,DIRECT 29 | # > bt 30 | DOMAIN-KEYWORD,announce 31 | DOMAIN-KEYWORD,torrent 32 | DOMAIN-KEYWORD,tracker 33 | DOMAIN-SUFFIX,smtp 34 | DOMAIN-KEYWORD,aria2 35 | URL-REGEX,(Subject|HELO|SMTP) 36 | URL-REGEX,(api|ps|sv|offnavi|newvector|ulog.imap|newloc)(.map|).(baidu|n.shifen).com 37 | URL-REGEX,(.+.|^)(360|so|qihoo|360safe|qhimg|360totalsecurity|yunpan).(cn|com) 38 | URL-REGEX,(.+.)?(torrent|announce.php?passkey=|tracker|BitTorrent|bt_key|ed2k|find_node|get_peers|info_hash|magnet:|peer_id=|sandai|Thunder|XLLiveUD|xunlei)(..+)? 39 | # > 迅雷 40 | URL-REGEX,(.?)(xunlei|sandai|Thunder|XLLiveUD)(.) 41 | # > 360 42 | URL-REGEX,(.+\.|^)(360|so)\.(cn|com) -------------------------------------------------------------------------------- /Surge/Ruleset/SpeedTest.list: -------------------------------------------------------------------------------- 1 | # > Speedtest by Ookla 2 | DOMAIN-KEYWORD,speedtest 3 | DOMAIN-SUFFIX,ooklaserver.net 4 | DOMAIN-SUFFIX,fast.com,Speedtest -------------------------------------------------------------------------------- /Surge/Ruleset/TikTok.list: -------------------------------------------------------------------------------- 1 | # > TikTok 2 | USER-AGENT,TikTok* 3 | DOMAIN-SUFFIX,muscdn.com 4 | DOMAIN-SUFFIX,musical.ly 5 | DOMAIN-SUFFIX,tiktokv.com 6 | DOMAIN-SUFFIX,tiktokcdn.com 7 | DOMAIN-KEYWORD,-tiktokcdn-com -------------------------------------------------------------------------------- /Surge/Ruleset/UnlockNeteaseMusic.list: -------------------------------------------------------------------------------- 1 | # >Unlock NeteaseMusic 2 | USER-AGENT,%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90,UnlockNeteaseMusic 3 | USER-AGENT,NeteaseMusic*,UnlockNeteaseMusic 4 | DOMAIN-SUFFIX,music.126.net,UnlockNeteaseMusic 5 | DOMAIN-SUFFIX,music.163.com,UnlockNeteaseMusic -------------------------------------------------------------------------------- /Task/cmbchina.js: -------------------------------------------------------------------------------- 1 | /* 2 | 招商银行信用卡微信公众号:“领积分 - 🎁签到领积分” 获取 Cookie 3 | 4 | [task_local] 5 | 8 0 * * * cmbchina.js 6 | 7 | [rewrite_local] 8 | https://weclub\.ccc\.cmbchina.com/SCRMCustomActivityFront/checkin/request/get-home-data\.json\?activityCode=checkin url script-request-header cmbchina.js 9 | 10 | [mitm] 11 | hostname = weclub.ccc.cmbchina.com 12 | */ 13 | 14 | const checkinURL = 'https://weclub.ccc.cmbchina.com/SCRMCustomActivityFront/checkin/request/checkin.json'; 15 | const cookieKey = 'iNotificatioin_cmbchina_cookieKey'; 16 | const userAgentKey = 'iNotificatioin_cmbchina_userAgentKey'; 17 | 18 | let isGetCookie = typeof $request !== 'undefined'; 19 | 20 | if (isGetCookie) { 21 | // 获取 Cookie 22 | if ($request.headers['Cookie']) { 23 | var cookie = $request.headers['Cookie']; 24 | var userAgent = $request.headers['User-Agent']; 25 | $prefs.setValueForKey(cookie, cookieKey); 26 | $prefs.setValueForKey(userAgent, userAgentKey); 27 | $notify("成功获取招商银行信用卡 cookie 🎉", "", "请禁用该脚本") 28 | } 29 | $done({}); 30 | } else { 31 | // 签到 32 | var request = { 33 | url: checkinURL, 34 | method: 'POST', 35 | headers: { 36 | 'Cookie': $prefs.valueForKey(cookieKey), 37 | 'User-Agent': $prefs.valueForKey(userAgentKey), 38 | 'Content-type' : 'application/json; charset=utf-8' 39 | }, 40 | body: JSON.stringify({'activityCode' : 'checkin'}) 41 | }; 42 | 43 | $task.fetch(request).then(response => { 44 | const result = JSON.parse(response.body); 45 | if (result.respCode == 1000) { 46 | $notify("招商银行信用卡", "", "签到成功,获得 " + result.data.awardValue + " 积分🎁"); 47 | } else if (result.respCode == 1452) { 48 | $notify("招商银行信用卡", "", "签到失败,请获取 cookie"); 49 | } else if (result.respCode == 'custom_8500') { 50 | $notify("招商银行信用卡", "", "签到失败," + result.respMsg); 51 | } else { 52 | $notify("招商银行信用卡", "", "签到失败,请查看日志"); 53 | console.log(response.body) 54 | } 55 | }, reason => { 56 | $notify("招商银行信用卡", "", reason.error) 57 | }); 58 | } 59 | -------------------------------------------------------------------------------- /Task/ct_sign.js: -------------------------------------------------------------------------------- 1 | 2 | const cookieName = '携程小程序签到' 3 | const bodyKey = 'chen_body_xc' 4 | const headerKey = 'chen_header_xc' 5 | const chen = init() 6 | let bodyVal = chen.getdata(bodyKey) 7 | let headerVal = chen.getdata(headerKey) 8 | sign() 9 | function sign() { 10 | let url = {url: 'https://m.ctrip.com/restapi/soa2/16575/signin',headers: JSON.parse(headerVal),body: JSON.parse(bodyVal)} 11 | chen.post(url, (error, response, data) => { 12 | chen.log(`${cookieName}, data: ${data}`) 13 | const result = JSON.parse(data) 14 | let subTitle = `` 15 | let detail = `` 16 | if (result.errcode == 0) { 17 | subTitle = `签到结果: 成功` 18 | detail = `说明: ${result.errmsg}` 19 | } else if (result.errcode == 3) { 20 | subTitle = `签到结果: 成功 (重复签到)` 21 | detail = `说明: ${result.errmsg}` 22 | } else { 23 | subTitle = `签到结果: 失败` 24 | detail = `说明: ${result.errmsg}` 25 | } 26 | chen.msg(cookieName, subTitle, detail) 27 | chen.done() 28 | }) 29 | } 30 | function init() { 31 | isSurge = () => { 32 | return undefined === this.$httpClient ? false : true 33 | } 34 | isQuanX = () => { 35 | return undefined === this.$task ? false : true 36 | } 37 | getdata = (key) => { 38 | if (isSurge()) return $persistentStore.read(key) 39 | if (isQuanX()) return $prefs.valueForKey(key) 40 | } 41 | setdata = (key, val) => { 42 | if (isSurge()) return $persistentStore.write(key, val) 43 | if (isQuanX()) return $prefs.setValueForKey(key, val) 44 | } 45 | msg = (title, subtitle, body) => { 46 | if (isSurge()) $notification.post(title, subtitle, body) 47 | if (isQuanX()) $notify(title, subtitle, body) 48 | } 49 | log = (message) => console.log(message) 50 | get = (url, cb) => { 51 | if (isSurge()) { 52 | $httpClient.get(url, cb) 53 | } 54 | if (isQuanX()) { 55 | url.method = 'GET' 56 | $task.fetch(url).then((resp) => cb(null, {}, resp.body)) 57 | } 58 | } 59 | post = (url, cb) => { 60 | if (isSurge()) { 61 | $httpClient.post(url, cb) 62 | } 63 | if (isQuanX()) { 64 | url.method = 'POST' 65 | $task.fetch(url).then((resp) => cb(null, {}, resp.body)) 66 | } 67 | } 68 | done = (value = {}) => { 69 | $done(value) 70 | } 71 | return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done } 72 | } 73 | chen.done() 74 | -------------------------------------------------------------------------------- /Task/ctrip_cookie.js: -------------------------------------------------------------------------------- 1 | const cookieName = '携程旅行cookie' 2 | const cookieKey = 'cookie_ctrip' 3 | const chen = init() 4 | const cookieVal = $request.headers['Cookie'] 5 | if (cookieVal) { 6 | if (chen.setdata(cookieVal, cookieKey)) { 7 | chen.msg(`${cookieName}`, '获取Cookie: 成功', '') 8 | chen.log(`[${cookieName}] 获取Cookie: 成功, cookie: ${cookieVal}`) 9 | } 10 | } 11 | 12 | function init() { 13 | isSurge = () => { 14 | return undefined === this.$httpClient ? false : true 15 | } 16 | isQuanX = () => { 17 | return undefined === this.$task ? false : true 18 | } 19 | getdata = (key) => { 20 | if (isSurge()) return $persistentStore.read(key) 21 | if (isQuanX()) return $prefs.valueForKey(key) 22 | } 23 | setdata = (key, val) => { 24 | if (isSurge()) return $persistentStore.write(key, val) 25 | if (isQuanX()) return $prefs.setValueForKey(key, val) 26 | } 27 | msg = (title, subtitle, body) => { 28 | if (isSurge()) $notification.post(title, subtitle, body) 29 | if (isQuanX()) $notify(title, subtitle, body) 30 | } 31 | log = (message) => console.log(message) 32 | get = (url, cb) => { 33 | if (isSurge()) { 34 | $httpClient.get(url, cb) 35 | } 36 | if (isQuanX()) { 37 | url.method = 'GET' 38 | $task.fetch(url).then((resp) => cb(null, {}, resp.body)) 39 | } 40 | } 41 | post = (url, cb) => { 42 | if (isSurge()) { 43 | $httpClient.post(url, cb) 44 | } 45 | if (isQuanX()) { 46 | url.method = 'POST' 47 | $task.fetch(url).then((resp) => cb(null, {}, resp.body)) 48 | } 49 | } 50 | done = (value = {}) => { 51 | $done(value) 52 | } 53 | return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done } 54 | } 55 | chen.done() -------------------------------------------------------------------------------- /Task/jdczfcookie.js: -------------------------------------------------------------------------------- 1 | const cookieName = '京东成长分' 2 | const cookieKey = 'chen_cookie_jingdong' 3 | const chen = init() 4 | const cookieVal = $request.headers['Cookie'] 5 | if (cookieVal) { 6 | if (chen.setdata(cookieVal, cookieKey)) { 7 | chen.msg(`${cookieName}`, '获取Cookie: 成功', '') 8 | chen.log(`[${cookieName}] 获取Cookie: 成功, cookie: ${cookieVal}`) 9 | } 10 | } 11 | 12 | function init() { 13 | isSurge = () => { 14 | return undefined === this.$httpClient ? false : true 15 | } 16 | isQuanX = () => { 17 | return undefined === this.$task ? false : true 18 | } 19 | getdata = (key) => { 20 | if (isSurge()) return $persistentStore.read(key) 21 | if (isQuanX()) return $prefs.valueForKey(key) 22 | } 23 | setdata = (key, val) => { 24 | if (isSurge()) return $persistentStore.write(key, val) 25 | if (isQuanX()) return $prefs.setValueForKey(key, val) 26 | } 27 | msg = (title, subtitle, body) => { 28 | if (isSurge()) $notification.post(title, subtitle, body) 29 | if (isQuanX()) $notify(title, subtitle, body) 30 | } 31 | log = (message) => console.log(message) 32 | get = (url, cb) => { 33 | if (isSurge()) { 34 | $httpClient.get(url, cb) 35 | } 36 | if (isQuanX()) { 37 | url.method = 'GET' 38 | $task.fetch(url).then((resp) => cb(null, {}, resp.body)) 39 | } 40 | } 41 | post = (url, cb) => { 42 | if (isSurge()) { 43 | $httpClient.post(url, cb) 44 | } 45 | if (isQuanX()) { 46 | url.method = 'POST' 47 | $task.fetch(url).then((resp) => cb(null, {}, resp.body)) 48 | } 49 | } 50 | done = (value = {}) => { 51 | $done(value) 52 | } 53 | return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done } 54 | } 55 | chen.done() 56 | -------------------------------------------------------------------------------- /Task/loulancheck.js: -------------------------------------------------------------------------------- 1 | /* 2 | 楼兰签到 3 | 网页登录 www.lltxt.com 点击 "我的信息 - 签到 - 开始签到" 获取 cookie. 4 | 5 | [rewrite_local] 6 | ^https:\/\/www\.lltxt\.com/hack\.php\?H_name=qiandao&action=qiandao url script-request-header loulancheck.js 7 | 8 | [task_local] 9 | 8 0 * * * loulancheck.js 10 | 11 | [mitm] 12 | hostname = www.lltxt.com 13 | */ 14 | 15 | const cookieKey = 'iNotification_www.lltxt.com_cookie'; 16 | 17 | let isGetCookie = typeof $request !== 'undefined'; 18 | 19 | if (isGetCookie) { 20 | // 获取 cookie 21 | if ($request.headers['Cookie']) { 22 | var cookie = $request.headers['Cookie']; 23 | $prefs.setValueForKey(cookie, cookieKey); 24 | $notify("成功获取 www.lltxt.com cookie 🎉", "", "请禁用该脚本") 25 | } 26 | $done({}); 27 | } else { 28 | // 签到 29 | var request = { 30 | url: 'https://www.lltxt.com/hack.php?H_name=qiandao&action=qiandao', 31 | headers: { 32 | 'Cookie': $prefs.valueForKey(cookieKey), 33 | 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Mobile/15E148 Safari/604.1' 34 | } 35 | }; 36 | 37 | $task.fetch(request).then(response => { 38 | if (response.body.indexOf('请明天再来') != -1) { 39 | $notify("楼兰论坛签到", "", "已签过,请下期再来"); 40 | } else if (response.body.indexOf('恭喜你签到成功') != -1) { 41 | $notify("楼兰论坛签到", "", "签到成功"); 42 | } else if (response.body.indexOf('您没有登录') != -1) { 43 | $notify("楼兰论坛签到", "", "请重新获取 Cookie"); 44 | } else { 45 | $notify("楼兰论坛签到", "", "失败,请查看日志"); 46 | console.log(response.body) 47 | } 48 | }, reason => { 49 | $notify("楼兰论坛签到", "", reason.error) 50 | }); 51 | } 52 | -------------------------------------------------------------------------------- /Task/tvpreview.js: -------------------------------------------------------------------------------- 1 | /* 2 | 本脚本为电视节目预告 3 | 1.数据从电视家数据库获取 4 | 2.常用卫视代码 5 | 北京: btv1 | 湖南: hunan | 浙江: zhejiang 6 | 河南: henan| 江苏: jiangsu|广东: guangdong 7 | 3.需要更换电视台的,建议本地使用 8 | 9 | [task_local] 10 | 1 10 * * * tvpreview.js 11 | 12 | ## 远程链接 13 | 1 10 * * * https://raw.githubusercontent.com/Sunert/Scripts/master/Task/tvpreview.js 14 | 15 | By Macsuny 16 | */ 17 | var c = "hunan" // 可更改电视台,从电视家网络活动中获取,央视可以直接改后缀数字 18 | var wurl = { 19 | url: "http://api.cntv.cn/epg/epginfo?serviceId=cbox&c="+c, 20 | }; 21 | var d = new Date(); 22 | var M = d.getMonth()+1, D = d.getDate(); 23 | var h = ("0" + (d.getHours())).slice(-2); 24 | var m = ("0" + (d.getMinutes())).slice(-2); 25 | var weekday=new Array(7); 26 | weekday[0]="星期日"; 27 | weekday[1]="星期一"; 28 | weekday[2]="星期二"; 29 | weekday[3]="星期三"; 30 | weekday[4]="星期四"; 31 | weekday[5]="星期五"; 32 | weekday[6]="星期六"; 33 | var n = weekday[d.getDay()] 34 | 35 | $task.fetch(wurl).then(response => { 36 | try { 37 | 38 | let result = JSON.parse(response.body) 39 | const title = `${result[`${c}`].channelName}频道节目预告 ` + M +'月'+ D +'日' + n + h +':'+ m 40 | 41 | detail = `正在播出: ${result[`${c}`].isLive}\n${result[`${c}`].program[0].showTime} ${result[`${c}`].program[0].t}` 42 | for (i = 1; i < result[`${c}`].program.length; i++) 43 | { 44 | detail += `\n${result[`${c}`].program[i].showTime} ${result[`${c}`].program[i].t}` 45 | } 46 | 47 | for (i = 0; i < result[`${c}`].program.length && result[`${c}`].program[i].showTime.split(':')[0] < 22; i++) 48 | { 49 | let r = result[`${c}`].program[i].showTime.split(':') 50 | var x = r[0], y = r[1] 51 | var o = result[`${c}`].program[i+1].showTime.split(':') 52 | var j = o[0], k = o[1] 53 | if (h+m >= x+y && j+k >h+m) 54 | { 55 | subTitle = `即将播出: ${result[`${c}`].program[i+1].t}` 56 | } 57 | } 58 | $notify(title, subTitle, detail) 59 | } catch(err) { 60 | $notify("无此频道节目信息或者台号错误❌", "请检查后重试", err) 61 | console.log(err) 62 | } 63 | }); 64 | $done() 65 | 66 | -------------------------------------------------------------------------------- /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 | }); -------------------------------------------------------------------------------- /Task/xmly_wc.js: -------------------------------------------------------------------------------- 1 | /* 2 | 微信喜马拉雅 By @makexp 3 | 4 | 微信小程序 - 喜马拉雅 - 我的: 签到 " 获取 Cookie 5 | 重复签到不会提醒,,能签,自取 6 | 7 | [task_local] 8 | 8 0 * * * nzw9314/Script/xmly_wc.js 9 | 10 | [rewrite_local] 11 | https://m.ximalaya.com/wechat/ url script-request-header nzw9314/Script/xmly_wc.js 12 | 13 | [mitm] 14 | hostname = m.ximalaya.com 15 | */ 16 | 17 | const userCheckinURL = 'https://m.ximalaya.com/wechat/api/paidAudition/signIn'; 18 | const userCookieKey = 'ximalaya_wechat_userCookieKey'; 19 | const userAgentKey = 'ximalaya_wechat_userAgentKey'; 20 | const userDataKey = 'ximalaya_wechat_userDataKey'; 21 | //const userToken = '_userToken' 22 | 23 | let isGetCookie = typeof $request !== 'undefined'; 24 | 25 | if (isGetCookie) { 26 | // 获取 Cookie 27 | if ($request.headers['Cookie']) { 28 | var cookie = $request.headers['Cookie']; 29 | var userAgent = $request.headers['User-Agent']; 30 | $prefs.setValueForKey(cookie, userCookieKey); 31 | $prefs.setValueForKey(userAgent, userAgentKey); 32 | $notify("成功获取微信喜马拉雅 cookie 🎉", "", "请在Rewrite_Local禁用该脚本") 33 | } 34 | $done({}); 35 | } else { 36 | // 签到 37 | var request = { 38 | url: userCheckinURL, 39 | method: 'POST', 40 | headers: { 41 | 'Cookie': $prefs.valueForKey(userCookieKey), 42 | 'Accept-Encoding': 'gzip, deflate, br', 43 | 'xm-sign': '5eaf02499406c8e9f548ee374fcac69b(71)1582216331415(27)1582216331415', 44 | 'Connection': 'keep-alive', 45 | 'Host': 'm.ximalaya.com', 46 | 'Accept': '*/*', 47 | 'Referer': 'https://servicewechat.com/wxb63203ca8ecbc8fc/123/page-frame.html', 48 | 'User-Agent': $prefs.valueForKey(userAgentKey), 49 | 'Content-type' : 'application/json', 50 | 'Content-Length': '2', 51 | 'Accept-Language': 'en-us' 52 | }, 53 | body: JSON.stringify({}) 54 | }; 55 | 56 | $task.fetch(request).then(response => { 57 | const obj = JSON.parse(response.body); 58 | 59 | if (obj.data == userDataKey) { 60 | $notify("微信喜马拉雅", "", "重复签到"); 61 | } else { 62 | $notify("微信喜马拉雅", "", "签到成功,奖励星星数:"+obj.ret); 63 | } 64 | var temp = obj.data; 65 | console.log(obj); 66 | $prefs.setValueForKey(temp, userDataKey); 67 | var tt = $prefs.valueForKey(userDataKey); 68 | console.log(tt); 69 | }, reason => { 70 | $notify("微信喜马拉雅", "", reason.error) 71 | }); 72 | } -------------------------------------------------------------------------------- /onewayticket255/ad.list: -------------------------------------------------------------------------------- 1 | //Thirdparty 2 | DOMAIN-KEYWORD,inmobi 3 | DOMAIN,app.adjust.com 4 | DOMAIN-KEYWORD,adsystem 5 | DOMAIN-KEYWORD,appsflyer 6 | DOMAIN-SUFFIX,app-measurement.com 7 | DOMAIN-KEYWORD,fenxi 8 | DOMAIN-KEYWORD,uploadMobileData 9 | DOMAIN-KEYWORD,omniture 10 | DOMAIN-SUFFIX,mob.com 11 | DOMAIN,applog.uc.cn 12 | DOMAIN,api.joybj.com 13 | DOMAIN,api.whizzone.com 14 | DOMAIN-KEYWORD,aotter 15 | DOMAIN-SUFFIX,mmstat.com 16 | DOMAIN-KEYWORD,umeng 17 | DOMAIN-KEYWORD,track 18 | DOMAIN-SUFFIX,4paradigm.com 19 | DOMAIN-KEYWORD,talkingdata 20 | DOMAIN-SUFFIX,mopub.com 21 | DOMAIN-KEYWORD,logger 22 | DOMAIN-SUFFIX,adthor.com 23 | DOMAIN-SUFFIX,catch.gift 24 | DOMAIN-SUFFIX,pubnative.net 25 | DOMAIN-SUFFIX,flurry.com 26 | DOMAIN-SUFFIX,igexin.com 27 | DOMAIN-SUFFIX,appcenter.ms 28 | 29 | //Google&&Youtube 30 | DOMAIN,mtalk.google.com 31 | DOMAIN,s.youtube.com 32 | DOMAIN,suggestqueries.google.com 33 | DOMAIN,www.googleadservices.com 34 | DOMAIN-SUFFIX,doubleclick.net 35 | DOMAIN-KEYWORD,adservice 36 | DOMAIN,www.google-analytics.com 37 | 38 | //QQ 39 | USER-AGENT,TencentConnect* 40 | DOMAIN-SUFFIX,3g.qq.com 41 | DOMAIN,pingma.qq.com 42 | DOMAIN,3gimg.qq.com 43 | DOMAIN,fusion.qq.com 44 | DOMAIN,ios.bugly.qq.com 45 | DOMAIN,wup.imtt.qq.com 46 | DOMAIN,sdk.e.qq.com 47 | DOMAIN-SUFFIX,gdt.qq.com 48 | 49 | //Apple 50 | USER-AGENT,com.apple.AppStore.ProductPageExtension* 51 | DOMAIN,iadsdk.apple.com 52 | 53 | //Ali 54 | DOMAIN-KEYWORD,adashx 55 | 56 | 57 | -------------------------------------------------------------------------------- /onewayticket255/bilibili_playurl_qx.js: -------------------------------------------------------------------------------- 1 | /* 2 | quantumult x: 3 | [rewrite_local] 4 | ^https:\/\/api\.bilibili\.com\/pgc\/player\/api\/playurl url script-response-body bilibili_playurl_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 | return tmp[1] 17 | } 18 | 19 | let api = `https://bilibili.mlyx.workers.dev/?cid=${getParams('cid')}&ep_id=${getParams('ep_id')}` 20 | 21 | var biliUrl = { 22 | url: api, 23 | method: "GET" 24 | }; 25 | 26 | $task.fetch(biliUrl).then(response => { 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/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 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_bilibili_account.js: -------------------------------------------------------------------------------- 1 | let body = $response.body 2 | 3 | body = JSON.parse(body) 4 | body['data']['sections'] = [ 5 | 6 | { 7 | "title": "个人中心", 8 | "items": [ 9 | { 10 | "title": "历史记录", 11 | "uri": "bilibili://user_center/history", 12 | "icon": "http://i0.hdslb.com/bfs/archive/ae502b4b69b6a3b287ea59b1552859332e59c277.png", 13 | 14 | }, 15 | { 16 | "title": "我的收藏", 17 | "uri": "bilibili://user_center/favourite", 18 | "icon": "http://i0.hdslb.com/bfs/archive/1e6b0583257a086f40779c10ad7e2fcd72984463.png", 19 | }, 20 | { 21 | "title": "稍后再看", 22 | "uri": "bilibili://user_center/watch_later", 23 | "icon": "http://i0.hdslb.com/bfs/archive/56893a05f41d7c503f7f1f5b67e9ee2add8581fa.png", 24 | 25 | }, 26 | { 27 | "title": "离线缓存", 28 | "uri": "bilibili://user_center/download", 29 | "icon": "http://i0.hdslb.com/bfs/archive/0f3e682b0611f9404c6e9d0a8d57f7246f91bffd.png", 30 | }, 31 | ] 32 | }, 33 | { 34 | "type": 1, 35 | "title": "创作中心", 36 | "items": [ 37 | { 38 | "need_login": 1, 39 | "display": 1, 40 | "id": 171, 41 | "title": "创作首页", 42 | "global_red_dot": 1, 43 | "uri": "bilibili://uper/homevc", 44 | "icon": "http://i0.hdslb.com/bfs/archive/d3aad2d07538d2d43805f1fa14a412d7a45cc861.png" 45 | }, 46 | ] 47 | }, 48 | ] 49 | 50 | body = JSON.stringify(body) 51 | $done({ body }) 52 | -------------------------------------------------------------------------------- /onewayticket255/surge_bilibili_feed.js: -------------------------------------------------------------------------------- 1 | //Customize blacklist 2 | let blacklist=['共青团中央','广东共青团','浙江共青团','山东共青团','安徽共青团','河南共青团','央视频','徐大sao','翔翔大作战','徐大虾咯','科技美学','敬汉卿','NathanRich火锅大王','千户长生'] 3 | 4 | let body = $response.body 5 | body=JSON.parse(body) 6 | body['data']['items'].forEach((element, index)=> { 7 | if(element.hasOwnProperty('ad_info')||element.hasOwnProperty('banner_item')||element['card_type']!='small_cover_v2'||blacklist.includes(element['args']['up_name'])){ 8 | body['data']['items'].splice(index,1) 9 | } 10 | }) 11 | body=JSON.stringify(body) 12 | $done({body}) 13 | -------------------------------------------------------------------------------- /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_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/QuantumultX.conf: -------------------------------------------------------------------------------- 1 | [rewrite_local] 2 | # 此处用于京东cookie获取,当失效时需要手动登录京东网页版https://bean.m.jd.com/ 签到获取Cookie, 待QX弹出获取成功即可 3 | https:\/\/api\.m\.jd\.com\/client\.action.*functionId=signBeanIndex url script-request-header all_in_one.js 4 | # 此处用于百度贴吧cookie获取,当失效时需手动登录https://tieba.baidu.com/index.html贴吧获取cookie,待弹出获取成功即可 5 | ^https?:\/\/tieba.baidu\.com url script-request-header all_in_one.js 6 | # 此处用于百度贴吧cookie获取,APP端直接进去,点击"我的"即可 7 | https?:\/\/c\.tieba\.baidu\.com\/c\/s\/login url script-request-header all_in_one.js 8 | # 此处用于网易云音乐cookie获取,当失效时需浏览器访问并登录:https://music.163.com/m/login 获取cookie,待弹出获取成功即可 9 | ^https?:\/\/music\.163\.com url script-request-header all_in_one.js 10 | # 此处用于爱奇艺cookie获取,加mitm后打开APP,点击“我的”,待弹出获取成功即可 11 | https:\/\/passport\.iqiyi\.com\/apis\/user\/info\.action.*authcookie url script-request-header all_in_one.js 12 | # 此处用于52破解cookie获取 13 | https:\/\/www\.52pojie\.cn\/home\.php\?mod=space url script-request-header all_in_one.js 14 | # 此处用于V2EX cookie获取,浏览器打开https://www.v2ex.com/mission/daily ,待弹出获取成功即可 15 | ^https:\/\/www\.v2ex\.com\/mission\/daily url script-request-header all_in_one.js 16 | # 此处用于电信营业厅APP cookie获取 17 | https:\/\/wapside\.189\.cn:9001\/api\/home\/sign url script-request-header all_in_one.js 18 | # 饿了么Cookie获取, 打开APP,点击我的,点击左上角的签到,进入页面即可 19 | ^https:\/\/h5\.ele\.me\/restapi\/eus\/v\d\/current_user url script-request-header all_in_one.js 20 | 21 | [task_local] 22 | # 多合一签到 23 | 0 7 * * * all_in_one.js 24 | 25 | 26 | [mitm] 27 | # 需要先生成证书,并开启MitM模块才可以 28 | ;passphrase = 29 | ;p12 = 30 | ;skip_validating_cert = false 31 | ;force_sni_domain_name = false 32 | ;empty_sni_enabled = false 33 | # cookie获取专用,仅获取cookie时使用,不用的时候最前面加个; 34 | hostname = tieba.baidu.com, c.tieba.baidu.com, music.163.com, passport.iqiyi.com, www.52pojie.cn, *.v2ex.com, wapside.189.cn, h5.ele.me -------------------------------------------------------------------------------- /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/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/sazs34/assets/all_in_one.jpg -------------------------------------------------------------------------------- /sazs34/assets/assets/image-20200107183838878.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/sazs34/assets/assets/image-20200107183838878.png -------------------------------------------------------------------------------- /sazs34/assets/assets/image-20200108093853445.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/sazs34/assets/assets/image-20200108093853445.png -------------------------------------------------------------------------------- /sazs34/assets/assets/image-20200108093902427.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/sazs34/assets/assets/image-20200108093902427.png -------------------------------------------------------------------------------- /sazs34/assets/assets/image-20200108093910463.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/sazs34/assets/assets/image-20200108093910463.png -------------------------------------------------------------------------------- /sazs34/assets/image-20191231110606761.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/sazs34/assets/image-20191231110606761.png -------------------------------------------------------------------------------- /sazs34/assets/image-20191231111239380.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/sazs34/assets/image-20191231111239380.png -------------------------------------------------------------------------------- /sazs34/assets/image-20191231112457531.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/sazs34/assets/image-20191231112457531.png -------------------------------------------------------------------------------- /sazs34/assets/image-20191231113149665.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/sazs34/assets/image-20191231113149665.png -------------------------------------------------------------------------------- /sazs34/assets/image-20191231143831929.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/sazs34/assets/image-20191231143831929.png -------------------------------------------------------------------------------- /sazs34/assets/image-20200103155051082.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/sazs34/assets/image-20200103155051082.png -------------------------------------------------------------------------------- /sazs34/assets/image-20200103155101146.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guzhig/QuantumultX/9623a40fa5249c5bd0707b70bc06910766aad838/sazs34/assets/image-20200103155101146.png -------------------------------------------------------------------------------- /sazs34/cookie/cookie_52pojie.js: -------------------------------------------------------------------------------- 1 | /* 2 | 52pojie forum daily bonus script 3 | 4 | Update 2019.12.29 15:30 5 | 6 | About the author: 7 | If reproduced, indicate the source 8 | Telegram channel: @NobyDa 9 | Telegram bots: @NobyDa_bot 10 | 11 | Description : 12 | Need to manually log in to the https://www.52pojie.cn/home.php?mod=space checkin to get cookie. if QX pops up to get a cookie success notification, you can disable this script. 13 | Note that the following config is only a local script configuration, please put this script into Quantumult X/Script 14 | 15 | script will be performed every day at 9 am. You can modify the execution time. 16 | 17 | [task_local] 18 | # 52pojie daily bonus script 19 | 0 9 * * * 52pojie_DailyBonus_QX.js 20 | 21 | [rewrite_local] 22 | # Get Cookie 23 | https:\/\/www\.52pojie\.cn\/home\.php\?mod=space url script-response-body 52pojie_GetCookie_QX.js 24 | 25 | # MITM = www.52pojie.cn 26 | */ 27 | 28 | var WAPJ = $request.headers["Cookie"]; 29 | 30 | if (WAPJ) { 31 | if ($prefs.valueForKey("CookieWA") != undefined) { 32 | if ($prefs.valueForKey("CookieWA") != WAPJ) { 33 | var cookie = $prefs.setValueForKey(WAPJ, "CookieWA"); 34 | if (!cookie) { 35 | $notify("更新吾爱破解签到Cookie失败‼️", "", "") 36 | } else { 37 | $notify("更新吾爱破解签到Cookie成功 🎉", "", "") 38 | } 39 | } else { 40 | console.log("吾爱破解签到cookie", "没有变化,无需更新") 41 | } 42 | } else { 43 | var cookie = $prefs.setValueForKey(WAPJ, "CookieWA"); 44 | if (!cookie) { 45 | $notify("首次写入吾爱破解Cookie失败‼️", "", "") 46 | } else { 47 | $notify("首次写入吾爱破解Cookie成功 🎉", "", "") 48 | } 49 | } 50 | } 51 | $done({}) -------------------------------------------------------------------------------- /sazs34/cookie/cookie_baidu_tieba_app.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | TieBa Checkin Get Cookie. 4 | 5 | About the author: 6 | Telegram channel: @NobyDa 7 | Telegram bots: @NobyDa_bot 8 | 9 | Description : 10 | When TieBa app is opened, click "My", If notification gets cookie success, you can use the check in script. because script will automatically judgment whether the cookie is updated, so you dont need to disable it manually. 11 | 12 | Note that the following config is only a local script configuration, please put this scripts into Quantumult X/Script, and the cookie script only works for TieBa apps in china apple store 13 | 14 | [rewrite_local] 15 | https?:\/\/c\.tieba\.baidu\.com\/c\/s\/login url script-response-body TieBa_GetCookie_QX.js 16 | 17 | # MITM = c.tieba.baidu.com 18 | 19 | */ 20 | 21 | var headerCookie = $request.headers["Cookie"]; 22 | 23 | if (headerCookie) { 24 | if ($prefs.valueForKey("CookieTB") != undefined) { 25 | if ($prefs.valueForKey("CookieTB") != headerCookie) { 26 | if (headerCookie.indexOf("BDUSS") != -1) { 27 | var cookie = $prefs.setValueForKey(headerCookie, "CookieTB"); 28 | if (!cookie) { 29 | $notify("更新贴吧Cookie失败‼️", "", ""); 30 | } else { 31 | $notify("更新贴吧Cookie成功 🎉", "", ""); 32 | } 33 | } 34 | }else{ 35 | console.log("更新贴吧签到cookie", "没有变化,无需更新") 36 | } 37 | } else { 38 | if (headerCookie.indexOf("BDUSS") != -1) { 39 | var cookie = $prefs.setValueForKey(headerCookie, "CookieTB"); 40 | if (!cookie) { 41 | $notify("首次写入贴吧Cookie失败‼️", "", ""); 42 | } else { 43 | $notify("首次写入贴吧Cookie成功 🎉", "", ""); 44 | } 45 | } 46 | } 47 | } 48 | $done({}) -------------------------------------------------------------------------------- /sazs34/cookie/cookie_baidu_tieba_h5.js: -------------------------------------------------------------------------------- 1 | /* 2 | [rewrite_local] 3 | ^https?:\/\/tieba.baidu\.com url script-response-body cookie_baidu_tieba.js 4 | 5 | [mitm] 6 | hostname = tieba.baidu.com 7 | */ 8 | 9 | var regex = /(^|)BDUSS=([^;]*)(;|$)/ 10 | var cookieName = 'CookieTB'; 11 | var historyCookie = $prefs.valueForKey(cookieName); 12 | var headerCookie = $request.headers["Cookie"].match(regex)[0]; 13 | if (historyCookie != undefined) { 14 | if (historyCookie != headerCookie) { 15 | var cookie = $prefs.setValueForKey(headerCookie, cookieName); 16 | if (!cookie) { 17 | $notify("更新贴吧Cookie失败‼️‼️", "", ""); 18 | } else { 19 | $notify("更新贴吧Cookie成功🎉", "", `无需禁用脚本,仅cookie改变时才会重新获取`); 20 | } 21 | } 22 | } else { 23 | var cookie = $prefs.setValueForKey(headerCookie, cookieName); 24 | if (!cookie) { 25 | $notify("首次写入贴吧Cookie失败‼️‼️", "", ""); 26 | } else { 27 | $notify("首次写入贴吧Cookie成功🎉", "", `无需禁用脚本,仅cookie改变时才会重新获取`); 28 | } 29 | } 30 | $done({}); -------------------------------------------------------------------------------- /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_10000.js: -------------------------------------------------------------------------------- 1 | let phone = '';//您的手机号 2 | 3 | function sign_10000() { 4 | let cookieVal = $prefs.valueForKey("cookie.10000"); 5 | if (!cookieVal) { 6 | //此处无意义了cookieVal 7 | $notify("电信营业厅", "无法签到", "请先获取cookie"); 8 | } 9 | var url = { 10 | url: "https://wapside.189.cn:9001/api/home/sign", 11 | method: 'POST', 12 | headers: { 13 | "Content-Type": `application/json;charset=utf-8`, 14 | "User-Agent": `Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;CtClient;7.6.0;iOS;13.3;iPhone XR`, 15 | "Host": `wapside.189.cn:9001`, 16 | "Origin": `https://wapside.189.cn:9001`, 17 | "Referer": `https://wapside.189.cn:9001/resources/dist/signInActivity.html?cmpid=jt-khd-my-zygn&ticket=0ab000281b4a8139f264620ae1d8b1ce067a6587921f90a6260dca4389a4e01a&version=7.6.0`, 18 | Cookie: cookieVal 19 | }, 20 | body: JSON.stringify({ 21 | phone 22 | }) 23 | }; 24 | $task.fetch(url).then(response => { 25 | var body = JSON.parse(response.body); 26 | console.log(response.body); 27 | if (body.resultCode == "0") { 28 | if (body.data.code == 1) { 29 | $notify("电信营业厅", "签到成功", `获得金币${body.data.coin}/金豆${body.data.flow}`); 30 | } else if (body.data.code == 0) { 31 | $notify("电信营业厅", "签到成功", body.data.msg); 32 | }else{ 33 | $notify("电信营业厅", "", body.data.msg); 34 | } 35 | } else { 36 | $notify("电信营业厅", "签到失败", `${body.data.msg}`); 37 | } 38 | }, reason => { 39 | $notify("电信营业厅", "签到失败", `${reason.error}`); 40 | }) 41 | 42 | } 43 | 44 | sign_10000(); -------------------------------------------------------------------------------- /sazs34/task/sign_52pojie.js: -------------------------------------------------------------------------------- 1 | /* 2 | 52pojie forum daily bonus script 3 | 4 | Update 2019.12.29 15:30 5 | 6 | About the author: 7 | If reproduced, indicate the source 8 | Telegram channel: @NobyDa 9 | Telegram bots: @NobyDa_bot 10 | 11 | Description : 12 | Need to manually log in to the https://www.52pojie.cn/home.php?mod=space checkin to get cookie. if QX pops up to get a cookie success notification, you can disable this script. 13 | Note that the following config is only a local script configuration, please put this script into Quantumult X/Script 14 | 15 | script will be performed every day at 9 am. You can modify the execution time. 16 | 17 | [task_local] 18 | # 52pojie daily bonus script 19 | 0 9 * * * 52pojie_DailyBonus_QX.js 20 | 21 | [rewrite_local] 22 | # Get Cookie 23 | https:\/\/www\.52pojie\.cn\/home\.php\?mod=space url script-response-body 52pojie_GetCookie_QX.js 24 | 25 | # MITM = www.52pojie.cn 26 | */ 27 | 28 | var bonus = { 29 | url: 'https://www.52pojie.cn/home.php?mod=task&do=apply&id=2&mobile=no', 30 | headers: { 31 | "Cookie": $prefs.valueForKey("CookieWA"), 32 | } 33 | }; 34 | var date = new Date() 35 | var week = ["Sunday","Monday","Tuseday","Wednesday","Thursday","Friday","Saturday"]; 36 | var month = ["Jan.","Feb.","Mar.","Apr.","May","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."]; 37 | 38 | $task.fetch(bonus).then(response => { 39 | if (response.body.match(/\u606d\u559c\u60a8/)) { 40 | $notify("52pojie Daily bonus", "", week[date.getDay()] + ", " + month[date.getMonth()] + " " + date.getDate() + ", " + "Daily bonus success!🎉") 41 | } else { 42 | if (response.body.match(/\u4e0b\u671f\u518d\u6765/)) { 43 | $notify("52pojie Daily bonus", "", week[date.getDay()] + ", " + month[date.getMonth()] + " " + date.getDate() + ", " + "Repeat ⚠️") 44 | } else { 45 | if (response.body.match(/\u9700\u8981\u5148\u767b\u5f55/)) { 46 | $notify("52pojie Daily bonus. Error. Cookies expire", "", "Please reopen the script to get‼️") 47 | } else { 48 | $notify("52pojie Daily bonus", "", "Scripts need to be updated ‼️‼️") 49 | } 50 | } 51 | } 52 | }, reason => { 53 | $notify("52pojie Daily bonus. Interface error‼️‼️‼️", "", reason.error) 54 | }); 55 | -------------------------------------------------------------------------------- /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 | }); -------------------------------------------------------------------------------- /sazs34/task/sign_v2ex.js: -------------------------------------------------------------------------------- 1 | const cookieName = 'V2EX' 2 | const cookieKey = 'CookieV2ex' 3 | const cookieVal = $prefs.valueForKey(cookieKey) 4 | 5 | function sign() { 6 | let url = { 7 | url: `https://www.v2ex.com/mission/daily`, 8 | method: 'GET', 9 | headers: { 10 | Cookie: cookieVal 11 | } 12 | } 13 | $task.fetch(url).then((response) => { 14 | let data = response.body 15 | if (data.indexOf('每日登录奖励已领取') >= 0) { 16 | let title = `${cookieName}` 17 | let subTitle = `签到结果: 签到跳过` 18 | let detail = `今天已经签过了` 19 | console.log(`${title}, ${subTitle}, ${detail}`) 20 | $notify(title, subTitle, detail) 21 | } else { 22 | let regex = /]*\/mission\/daily\/redeem\?once=(\d+)[^>]*>/g 23 | for (const code of data.matchAll(regex)) { 24 | signMission(code[1]) 25 | } 26 | } 27 | }) 28 | } 29 | 30 | function signMission(code) { 31 | let url = { 32 | url: `https://www.v2ex.com/mission/daily/redeem?once=${code}`, 33 | method: 'GET', 34 | headers: { Cookie: cookieVal } 35 | } 36 | $task.fetch(url).then((response) => { 37 | let data = response.body 38 | if (data.indexOf('每日登录奖励已领取') >= 0) { 39 | let title = `${cookieName}` 40 | let subTitle = `签到结果: 签到成功` 41 | let detail = `` 42 | console.log(`${title}, ${subTitle}, ${detail}`) 43 | $notify(title, subTitle, detail) 44 | } else { 45 | let title = `${cookieName}` 46 | let subTitle = `签到结果: 签到失败` 47 | let detail = `详见日志` 48 | console.log(`签到失败: ${cookieName}, data: ${data}`) 49 | $notify(title, subTitle, detail) 50 | } 51 | }) 52 | } 53 | 54 | sign({}) 55 | -------------------------------------------------------------------------------- /yichahucha/eval_sub/quanx.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?://api\.m\.jd\.com/client\.action\?functionId=(wareBusiness|serverConfig) url script-response-body eval_script.js 4 | 5 | ^http://amdc\.m\.taobao\.com/amdc/mobileDispatch url script-response-body eval_script.js 6 | 7 | ^https?://trade-acs\.m\.taobao\.com/gw/mtop\.taobao\.detail\.getdetail url script-response-body eval_script.js 8 | 9 | ^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 10 | 11 | ^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 12 | 13 | ^https?://(sdk|wb)app\.uve\.weibo\.com(/interface/sdk/sdkad.php|/wbapplua/wbpullad.lua) url script-response-body eval_script.js 14 | 15 | ^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) url script-response-body eval_script.js -------------------------------------------------------------------------------- /yichahucha/eval_sub/surge.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 | http-response ^https?://api\.m\.jd\.com/client\.action\?functionId=(wareBusiness|serverConfig) requires-body=1,script-path=eval_script.js 4 | 5 | http-response ^http://amdc\.m\.taobao\.com/amdc/mobileDispatch requires-body=1,script-path=eval_script.js 6 | 7 | http-response ^https?://trade-acs\.m\.taobao\.com/gw/mtop\.taobao\.detail\.getdetail requires-body=1,script-path=eval_script.js 8 | 9 | http-request ^https?://ios\.prod\.ftl\.netflix\.com/iosui/user/.+path=%5B%22videos%22%2C%\d+%22%2C%22summary%22%5D script-path=eval_script.js 10 | 11 | http-response ^https?://ios\.prod\.ftl\.netflix\.com/iosui/user/.+path=%5B%22videos%22%2C%\d+%22%2C%22summary%22%5D requires-body=1,script-path=eval_script.js 12 | 13 | http-response ^https?://(sdk|wb)app\.uve\.weibo\.com(/interface/sdk/sdkad.php|/wbapplua/wbpullad.lua) requires-body=1,script-path=eval_script.js 14 | 15 | http-response ^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) requires-body=1,script-path=eval_script.js -------------------------------------------------------------------------------- /yichahucha/sub_eval.conf: -------------------------------------------------------------------------------- 1 | # tb 2 | response ^https?://trade-acs\.m\.taobao\.com/gw/mtop\.taobao\.detail\.getdetail response ^http://amdc\.m\.taobao\.com/amdc/mobileDispatch eval https://raw.githubusercontent.com/yichahucha/surge/master/tb_price.js 3 | 4 | # jd 5 | response ^https?://api\.m\.jd\.com/client\.action\?functionId=(wareBusiness|serverConfig) eval https://raw.githubusercontent.com/yichahucha/surge/master/jd_price.js 6 | 7 | # nf 8 | ^https?://ios\.prod\.ftl\.netflix\.com/iosui/user/.+path=%5B%22videos%22%2C%\d+%22%2C%22summary%22%5D eval https://raw.githubusercontent.com/yichahucha/surge/master/nf_rating.js 9 | 10 | # wb 11 | response ^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) eval https://raw.githubusercontent.com/yichahucha/surge/master/wb_ad.js 12 | response ^https?://(sdk|wb)app\.uve\.weibo\.com(/interface/sdk/sdkad.php|/wbapplua/wbpullad.lua) eval https://raw.githubusercontent.com/yichahucha/surge/master/wb_launch.js 13 | 14 | # hostname = api.weibo.cn, mapi.weibo.com, *.uve.weibo.com, trade-acs.m.taobao.com, api.m.jd.com, ios.prod.ftl.netflix.com -------------------------------------------------------------------------------- /yichahucha/sub_script.conf: -------------------------------------------------------------------------------- 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 | # jd 4 | ^https?://api\.m\.jd\.com/client\.action\?functionId=(wareBusiness|serverConfig) url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/jd_price.js 5 | 6 | # tb 7 | ^http://amdc\.m\.taobao\.com/amdc/mobileDispatch url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/tb_price.js 8 | ^https?://trade-acs\.m\.taobao\.com/gw/mtop\.taobao\.detail\.getdetail url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/tb_price.js 9 | 10 | # nf 11 | ^https?://ios\.prod\.ftl\.netflix\.com/iosui/user/.+path=%5B%22videos%22%2C%\d+%22%2C%22summary%22%5D url script-request-header https://raw.githubusercontent.com/yichahucha/surge/master/nf_rating.js 12 | ^https?://ios\.prod\.ftl\.netflix\.com/iosui/user/.+path=%5B%22videos%22%2C%\d+%22%2C%22summary%22%5D url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/nf_rating.js 13 | 14 | # wb 15 | ^https?://(sdk|wb)app\.uve\.weibo\.com(/interface/sdk/sdkad.php|/wbapplua/wbpullad.lua) url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/wb_launch.js 16 | ^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) url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/wb_ad.js 17 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /分流订阅(自用)/分流订阅(自用).txt: -------------------------------------------------------------------------------- 1 | [filter_remote] 2 | #分流订阅 3 | 4 | https://github.com/guzhig/QuantumultX/blob/master/Filter/Liby.txt, tag=🚫 广告拦截, force-policy=reject, enabled=true 5 | 6 | https://github.com/guzhig/QuantumultX/blob/master/Filter/Telegram.txt, tag=📱Telegram, force-policy=Telegram, enabled=true 7 | 8 | https://github.com/guzhig/QuantumultX/blob/master/Filter/TikTok.list, tag=🎵TikTok, force-policy=🎵 TikTok, enabled=true 9 | 10 | https://github.com/guzhig/QuantumultX/blob/master/Filter/YouTube.txt, tag=🎬 YouTube, force-policy=🎬 YouTube, enabled=true 11 | 12 | https://github.com/guzhig/QuantumultX/blob/master/Filter/Netflix.txt, tag=📺 Netflix, force-policy=📺 Netflix, enabled=true 13 | 14 | https://github.com/guzhig/QuantumultX/blob/master/Filter/GlobalMedia.txt, tag=💻 国外影视, force-policy=💻 国外影视, enabled=true 15 | 16 | https://github.com/guzhig/QuantumultX/blob/master/Filter/Global.txt, tag=🌏 国外网站, force-policy=proxy, enabled=true 17 | 18 | https://github.com/guzhig/QuantumultX/blob/master/Filter/Apple_CDN.txt, tag=苹果CDN 资源类(建议直连), force-policy=direct, enabled=true 19 | 20 | https://github.com/guzhig/QuantumultX/blob/master/Filter/Apple_API.txt, tag=苹果API 服务类 (账号所在区), force-policy=🍎 苹果服务, enabled=true 21 | 22 | https://github.com/guzhig/QuantumultX/blob/master/Filter/NeteaseMusic.list, tag=解锁网易云音乐, force-policy=🎸解锁网易云音乐, enabled=true 23 | 24 | https://github.com/guzhig/QuantumultX/blob/master/Filter/AsianMedia.txt, tag=国内媒体, force-policy=direct, enabled=true 25 | 26 | https://github.com/guzhig/QuantumultX/blob/master/Filter/Domestic.txt, tag=国内网站, force-policy=direct, enabled=true 27 | 28 | https://github.com/guzhig/QuantumultX/blob/master/Filter/Region.txt, tag=修正规则,LAN / GeoIP,CN, force-policy=direct, enabled=true 29 | 30 | https://github.com/guzhig/QuantumultX/blob/master/Filter/BacktoCN.list, tag=CN(回国,默认禁用), force-policy=🇨🇳 China, enabled=false 31 | ;https://raw.githubusercontent.com/crossutility/Quantumult-X/master/filter.txt, tag=Sample, force-policy=your-policy-name, enabled=true 32 | ;https://raw.githubusercontent.com/crossutility/Quantumult-X/master/filter.txt, tag=Sample, force-policy=your-policy-name, enabled=true 33 | --------------------------------------------------------------------------------