diff --git a/QuantumultX/AdRule.list b/QuantumultX/AdRule.list index a1b068f129..a8c233f011 100644 --- a/QuantumultX/AdRule.list +++ b/QuantumultX/AdRule.list @@ -1,5 +1,6 @@ -# Update-2019.10.23 Self-use rule, Remove versus shenji duplicates and optimizations +# MRHX-Update-2019.11.05 Self-use rule, Remove versus shenji duplicates and optimizations # This rule does not include shenji +DOMAIN-SUFFIX,voiceads.cn,REJECT DOMAIN-SUFFIX,apoll.m.taobao.com,REJECT DOMAIN-SUFFIX,comet.yahoo.com,REJECT DOMAIN-SUFFIX,gemini.yahoo.com,REJECT @@ -7978,4 +7979,4 @@ DOMAIN-SUFFIX,zzy1.quyaoya.com,REJECT DOMAIN-SUFFIX,zzz7.52896368.com,REJECT DOMAIN-SUFFIX,zzzzz4.52896368.com,REJECT DOMAIN-SUFFIX,analytics.query.yahoo.com,REJECT -DOMAIN-SUFFIX,is.snssdk.com,REJECT \ No newline at end of file +DOMAIN-SUFFIX,is.snssdk.com,REJECT diff --git a/QuantumultX/AdRuleTest.list b/QuantumultX/AdRuleTest.list index bfeae987b8..89a42ea62d 100644 --- a/QuantumultX/AdRuleTest.list +++ b/QuantumultX/AdRuleTest.list @@ -1,4 +1,4 @@ -#Update 2019.10.29 Self-use for testing only, there may be a lot of manslaughter. +#Update 2019.10.01 Self-use for testing only, there may be a lot of manslaughter. DOMAIN-SUFFIX,0z5jn.cn,REJECT DOMAIN-SUFFIX,114so.cn,REJECT DOMAIN-SUFFIX,1632j6.cn,REJECT diff --git a/QuantumultX/File/CamScanner.js b/QuantumultX/File/CamScanner.js new file mode 100644 index 0000000000..7fa72cefa4 --- /dev/null +++ b/QuantumultX/File/CamScanner.js @@ -0,0 +1,18 @@ +/* +CamScanner unlocks pro, Cloud scanning is not available. + +QuanX 1.0.0: [rewrite_local] +^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 + +Quan: [REWRITE] +https:\/\/(api|api-cs)\.intsig\.net\/purchase\/cs\/query_property\? url simple-response SFRUUC8xLjEgMjAwIE9LCgp7CiAiZGF0YSI6IHsKICAicHNubF92aXBfcHJvcGVydHkiOiB7CiAgICJleHBpcnkiOiAiMTY0MzczMTIwMCIKICB9CiB9Cn0= + +Surge4.0: [Script] +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 + +QX & Q & Surge Mitm = ap*.intsig.net, +*/ + +let obj = JSON.parse($response.body); +obj = {"data":{"psnl_vip_property":{"expiry":"1643731200"}}}; +$done({body: JSON.stringify(obj)}); diff --git a/QuantumultX/File/Keep.js b/QuantumultX/File/Keep.js new file mode 100644 index 0000000000..2bbc9280c8 --- /dev/null +++ b/QuantumultX/File/Keep.js @@ -0,0 +1,32 @@ +/* +Keep app unlock private lessons and action libraries. +There is a bug in the QX app. This script may not work, but the surge does not have this problem. + +QX1.0.0: +^https:\/\/api\.gotokeep\.com\/(.+\/subject|.+\/dynamic) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Keep.js + +Surge4.0: +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 + +MITM = api.gotokeep.com +*/ + +let url = $request.url; +let body = $response.body; +let obj = JSON.parse(body); + +const path1 = 'dynamic'; +const path2 = 'subject'; + +if (url.indexOf(path1) != -1) { + obj.data.permission.isMembership = true; + obj.data.permission.membership = true; + obj.data.permission.inSuit = true; +} +if (url.indexOf(path2) != -1) { + for (var i = 0; i < obj.data.subjectInfos.length; i++) { + obj.data.subjectInfos[i].needPay = false; + } +} +body = JSON.stringify(obj); +$done({body}); diff --git a/QuantumultX/File/jxydt.js b/QuantumultX/File/jxydt.js new file mode 100644 index 0000000000..ae147a6378 --- /dev/null +++ b/QuantumultX/File/jxydt.js @@ -0,0 +1,22 @@ +var obj = JSON.parse($response.body); + obj= { + "code": 0, + "msg": "OK", + "result": { + "vipstatus": 1, + "isexpert": true, + "endtime": "2022-11-02", + "vipType": 0, + "begintime": "2019-11-03", + "isRenewals": 1, + "vipLevel": 0, + "openCourseIds": [], + "choreographySkills": 0, + "has_append_service": 0, + "vipDaysOverdue": -1, + "vipResidualDay": 999, + "imeiVIPOrderBindStatus": 1 + } +}; +$done({body: JSON.stringify(obj)}); +// diff --git a/QuantumultX/IP_API.js b/QuantumultX/IP_API.js new file mode 100644 index 0000000000..4dcc2bb046 --- /dev/null +++ b/QuantumultX/IP_API.js @@ -0,0 +1,50 @@ +/* +@supported 自己的设备ID +*/ +if ($response.statusCode != 200) { + $done(null); +} + +const emojis= ['🆘','🈲','⚠️','🔞','📵','🚦','🏖','🖥','📺','🐧','🐬','🦉','🍄','⛳️','🚴','🤑','👽','🤖','🎃', '👺', '👁', '🐶', '🐼','🐌', '👥'] +var city0 = "高谭市"; +var isp0 = "Cross-GFW.org"; +function getRandomInt(max) { + return Math.floor(Math.random() * Math.floor(max)); +} + +function City_ValidCheck(para) { + if(para) { + return para + } else + { + return city0 +//emojis[getRandomInt(emojis.length)] + } +} + +function ISP_ValidCheck(para) { + if(para) { + return para + } else + { + return isp0 +//emojis[getRandomInt(emojis.length)] + } +} + +function Area_check(para) { + if(para=="中华民国"){ + return "台湾" + } else + { + return para + } +} +var flags = new Map([[ "AC" , "🇦🇨" ] , [ "AF" , "🇦🇫" ] , [ "AI" , "🇦🇮" ] , [ "AL" , "🇦🇱" ] , [ "AM" , "🇦🇲" ] , [ "AQ" , "🇦🇶" ] , [ "AR" , "🇦🇷" ] , [ "AS" , "🇦🇸" ] , [ "AT" , "🇦🇹" ] , [ "AU" , "🇦🇺" ] , [ "AW" , "🇦🇼" ] , [ "AX" , "🇦🇽" ] , [ "AZ" , "🇦🇿" ] , [ "BB" , "🇧🇧" ] , [ "BD" , "🇧🇩" ] , [ "BE" , "🇧🇪" ] , [ "BF" , "🇧🇫" ] , [ "BG" , "🇧🇬" ] , [ "BH" , "🇧🇭" ] , [ "BI" , "🇧🇮" ] , [ "BJ" , "🇧🇯" ] , [ "BM" , "🇧🇲" ] , [ "BN" , "🇧🇳" ] , [ "BO" , "🇧🇴" ] , [ "BR" , "🇧🇷" ] , [ "BS" , "🇧🇸" ] , [ "BT" , "🇧🇹" ] , [ "BV" , "🇧🇻" ] , [ "BW" , "🇧🇼" ] , [ "BY" , "🇧🇾" ] , [ "BZ" , "🇧🇿" ] , [ "CA" , "🇨🇦" ] , [ "CF" , "🇨🇫" ] , [ "CH" , "🇨🇭" ] , [ "CK" , "🇨🇰" ] , [ "CL" , "🇨🇱" ] , [ "CM" , "🇨🇲" ] , [ "CN" , "🇨🇳" ] , [ "CO" , "🇨🇴" ] , [ "CP" , "🇨🇵" ] , [ "CR" , "🇨🇷" ] , [ "CU" , "🇨🇺" ] , [ "CV" , "🇨🇻" ] , [ "CW" , "🇨🇼" ] , [ "CX" , "🇨🇽" ] , [ "CY" , "🇨🇾" ] , [ "CZ" , "🇨🇿" ] , [ "DE" , "🇩🇪" ] , [ "DG" , "🇩🇬" ] , [ "DJ" , "🇩🇯" ] , [ "DK" , "🇩🇰" ] , [ "DM" , "🇩🇲" ] , [ "DO" , "🇩🇴" ] , [ "DZ" , "🇩🇿" ] , [ "EA" , "🇪🇦" ] , [ "EC" , "🇪🇨" ] , [ "EE" , "🇪🇪" ] , [ "EG" , "🇪🇬" ] , [ "EH" , "🇪🇭" ] , [ "ER" , "🇪🇷" ] , [ "ES" , "🇪🇸" ] , [ "ET" , "🇪🇹" ] , [ "EU" , "🇪🇺" ] , [ "FI" , "🇫🇮" ] , [ "FJ" , "🇫🇯" ] , [ "FK" , "🇫🇰" ] , [ "FM" , "🇫🇲" ] , [ "FO" , "🇫🇴" ] , [ "FR" , "🇫🇷" ] , [ "GA" , "🇬🇦" ] , [ "GB" , "🇬🇧" ] , [ "HK" , "🇭🇰" ] , [ "ID" , "🇮🇩" ] , [ "IE" , "🇮🇪" ] , [ "IL" , "🇮🇱" ] , [ "IM" , "🇮🇲" ] , [ "IN" , "🇮🇳" ] , [ "IS" , "🇮🇸" ] , [ "IT" , "🇮🇹" ] , [ "JP" , "🇯🇵" ] , [ "KR" , "🇰🇷" ] , [ "MO" , "🇲🇴" ] , [ "MX" , "🇲🇽" ] , [ "MY" , "🇲🇾" ] , [ "NL" , "🇳🇱" ] , [ "PH" , "🇵🇭" ] , [ "RO" , "🇷🇴" ] , [ "RS" , "🇷🇸" ] , [ "RU" , "🇷🇺" ] , [ "RW" , "🇷🇼" ] , [ "SA" , "🇸🇦" ] , [ "SB" , "🇸🇧" ] , [ "SC" , "🇸🇨" ] , [ "SD" , "🇸🇩" ] , [ "SE" , "🇸🇪" ] , [ "SG" , "🇸🇬" ] , [ "TH" , "🇹🇭" ] , [ "TN" , "🇹🇳" ] , [ "TO" , "🇹🇴" ] , [ "TR" , "🇹🇷" ] , [ "TV" , "🇹🇻" ] , [ "TW" , "🏳️‍🌈" ] , [ "UK" , "🇬🇧" ] , [ "UM" , "🇺🇲" ] , [ "US" , "🇺🇸" ] , [ "UY" , "🇺🇾" ] , [ "UZ" , "🇺🇿" ] , [ "VA" , "🇻🇦" ] , [ "VE" , "🇻🇪" ] , [ "VG" , "🇻🇬" ] , [ "VI" , "🇻🇮" ] , [ "VN" , "🇻🇳" ]]) +var body = $response.body; +var obj = JSON.parse(body); +var title =flags.get(obj['countryCode']) + ' '+ Area_check(obj['country']); +var subtitle =''+City_ValidCheck(obj['city'])+'-'+'('+ ISP_ValidCheck(obj['org'])+')'+''; +var ip = obj['query']; +var description = '服务商:'+obj['isp'] + '\n'+'地区:' +City_ValidCheck(obj['regionName'])+ '\n' + 'IP:'+ obj['query'] + '\n' +'时区:'+ obj['timezone']; +$done({title, subtitle, ip, description}); diff --git a/QuantumultX/Js.conf b/QuantumultX/Js.conf index 62db7ac833..96c3ba5c03 100644 --- a/QuantumultX/Js.conf +++ b/QuantumultX/Js.conf @@ -1,15 +1,15 @@ -hostname = api.weibo.cn, mapi.weibo.com, *.uve.weibo.com, mp.weixin.qq.com, api.bilibili.com, app.bilibili.com, *.zhihu.com, aweme*.snssdk.com, *.kuwo.cn, ios.xiaoxiaoapps.com, api*.tiktokv.com, *.musical.ly, *.amemv.com, mjappaz.yefu365.com, p.du.163.com, getuserinfo.321mh.com, getuserinfo-globalapi.zymk.cn, api-163.biliapi.net, ios.fuliapps.com, vsco.co, api.vnision.com, *.my10api.com, bd.4008109966.net, sp.kaola.com, r.inews.qq.com, apple.fuliapps.com, newdrugs.dxy.cn, bdapp.4008109966.net, app101.avictown.cc, api.hlo.xyz, api.ijo.xyz, www.luqijianggushi.com, account.wps.cn, u.kanghuayun.com, api.gyrosco.pe, api1.dobenge.cn, api.mvmtv.com, mitaoapp.yeduapp.com, origin-prod-phoenix.jibjab.com, www.3ivf.com, pay.guoing.com, p.doras.api.vcinema.cn, api.termius.com, mjappaz.yefu365.com, viva.v21xy.com, dida365.com, ticktick.com, biz.caiyunapp.com, +hostname = api.weibo.cn, mapi.weibo.com, *.uve.weibo.com, mp.weixin.qq.com, api.bilibili.com, app.bilibili.com, *.zhihu.com, aweme*.snssdk.com, *.kuwo.cn, ios.xiaoxiaoapps.com, api*.tiktokv.com, *.musical.ly, *.amemv.com, mjappaz.yefu365.com, p.du.163.com, getuserinfo.321mh.com, getuserinfo-globalapi.zymk.cn, api-163.biliapi.net, ios.fuliapps.com, vsco.co, api.vnision.com, *.my10api.com, bd.4008109966.net, sp.kaola.com, r.inews.qq.com, apple.fuliapps.com, newdrugs.dxy.cn, bdapp.4008109966.net, app101.avictown.cc, api.hlo.xyz, api.ijo.xyz, www.luqijianggushi.com, account.wps.cn, account.wps.com, u.kanghuayun.com, api.gyrosco.pe, api1.dobenge.cn, api.mvmtv.com, mitaoapp.yeduapp.com, origin-prod-phoenix.jibjab.com, www.3ivf.com, pay.guoing.com, p.doras.api.vcinema.cn, api.termius.com, mjappaz.yefu365.com, viva.v21xy.com, dida365.com, ticktick.com, biz.caiyunapp.com, api.gotokeep.com, ap*.intsig.net, mp.bybutter.com, api.vuevideo.net, api.picsart.c*, api.meiease.c* # 去微博应用内广告 (By yichahucha) -^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) url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/wb_ad.js +^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/yichahucha/surge/master/wb_ad.js ^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 # 去微信公众号广告 (By Choler) ^https?:\/\/mp\.weixin\.qq\.com\/mp\/getappmsgad url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/Wechat.js # 知乎去广告 (By onewayticket255) -^https://api.zhihu.com/topstory/follow url script-response-body https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20zhihu%20feed.js +^https://api.zhihu.com/moments\?(action|feed_type) url script-response-body https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20zhihu%20feed.js ^https://api.zhihu.com/topstory/recommend url script-response-body https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20zhihu%20recommend.js ^https://api.zhihu.com/.*/questions url script-response-body https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20zhihu%20answer.js ^https://api.zhihu.com/market/header url script-response-body https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20zhihu%20market.js @@ -24,8 +24,7 @@ ^https://app.bilibili.com/x/v2/show/popular/index\?access_key url script-response-body https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20bilibili%20hot.js # 抖音去广告去水印 (By Choler) -^https://[\s\S]*\/aweme/v1/(feed|aweme/post|follow/feed)/ url script-response-body https://Choler.github.io/Surge/Script/Aweme.js -^https://aweme-eagle(.*)\.snssdk\.com/aweme/v2/ url 302 https://aweme-eagle$1.snssdk.com/aweme/v1/ +^https://aweme-eagle(.*)\.snssdk\.com\/aweme/.+/(feed|aweme/post|follow/feed)/ url script-response-body https://Choler.github.io/Surge/Script/Aweme.js # 酷我音乐SVIP (By yxiaocai) ^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 @@ -58,9 +57,6 @@ https:\/\/ios\.xiaoxiaoapps\.com\/getGlobalData url reject # 网易漫画去开屏广告 ^https://api-163.biliapi.net/cover url reject-img -# 香蕉视频VIP (By Meeta) -^https?:\/\/ios\.fuliapps\.com\/ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/xjsp.js - # 哔哩哔哩番剧开启1080P+ ^https?:\/\/api\.bilibili\.com\/pgc\/player\/api\/playurl url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilifj.js @@ -73,8 +69,8 @@ https:\/\/ios\.xiaoxiaoapps\.com\/getGlobalData url reject # 91短视频 ^https?:\/\/.+\.(my10api|(.*91.*))\.(com|tips|app|xyz)(:\d{2,5})?\/api.php$ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/91.js -# 布丁漫畫(蜜桃漫画)VIP -^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 +# 布丁漫畫(蜜桃漫画)VIP (app已黄) +#^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 # 网易考拉 去广告 (By Choler) ^https://sp\.kaola\.com/api/openad$ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/wykaola.js @@ -82,8 +78,8 @@ https:\/\/ios\.xiaoxiaoapps\.com\/getGlobalData url reject # 腾讯新闻 去广告 (By Choler) ^https://r\.inews\.qq.com\/get(QQNewsUnreadList|RecommendList) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/QQNews.js -# 商店版香蕉视频VIP (By Meeta) -^https?:\/\/apple\.fuliapps\.com url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/xjsp.js +# 香蕉视频VIP (By Meeta) +^https?:\/\/(apple|ios)\.fuliapps\.com url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/xjsp.js # 用药助手解锁专业版 (By Primovist) ^https?:\/\/(i|newdrugs)\.dxy\.cn\/(snsapi\/username\/|app\/user\/(pro\/stat\?|init\?timestamp=)) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/yyzs.js @@ -94,11 +90,8 @@ https:\/\/ios\.xiaoxiaoapps\.com\/getGlobalData url reject # 陆琪讲故事 ^https:\/\/www\.luqijianggushi\.com\/api\/v2\/user\/get url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/luqi.js -# WPS (By eHpo) -^https://account.wps.cn/api/users/ url script-response-body https://raw.githubusercontent.com/eHpo1/Surge/master/wps.js - -# 万象电视直播 -#^https:\/\/u\.kanghuayun\.com\/api\/v2\/info url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/wxzb.js +# WPS VIP (By MRHX) +^https://account.wps.cn|com/api/users/ url script-response-body https://raw.githubusercontent.com/eHpo1/Surge/master/Script/wps.js # Gyroscope 解锁 pro (By Maasea) ^https:\/\/api\.gyrosco\.pe\/v1\/account\/$ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/gyroscope.js @@ -124,5 +117,20 @@ https:\/\/api\.termius\.com\/api\/v3\/bulk\/account\/ url script-response-body h # 滴答清单 pro ^https:\/\/(ticktick|dida365)\.com\/api\/v2\/user\/status url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/DiDaQingDan.js -#彩云天气 Vip -^https:\/\/biz\.caiyunapp\.com\/v2\/user\?app_name\=weather url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/ColorWeather.js \ No newline at end of file +# 彩云天气 Vip +^https:\/\/biz\.caiyunapp\.com\/v2\/user\?app_name\=weather url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/ColorWeather.js + +# Keep 解锁私人课程和动作库 (QX存在bug 该脚本可能无法生效) +^https:\/\/api\.gotokeep\.com\/(.+\/subject|.+\/dynamic) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Keep.js + +# 扫描全能王 pro +^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 + +# VUE pro +^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 + +# NiChi 解锁素材 +^https?:\/\/mp\.bybutter\.com\/mood\/(official-templates|privileges) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/NiChi.js + +# PicsArt美易 pro +^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 diff --git a/QuantumultX/Js_local_WorkingCopy.conf b/QuantumultX/Js_local_WorkingCopy.conf new file mode 100644 index 0000000000..b7dfd8d197 --- /dev/null +++ b/QuantumultX/Js_local_WorkingCopy.conf @@ -0,0 +1,137 @@ +hostname = api.weibo.cn, mapi.weibo.com, *.uve.weibo.com, mp.weixin.qq.com, api.bilibili.com, app.bilibili.com, *.zhihu.com, aweme*.snssdk.com, *.kuwo.cn, ios.xiaoxiaoapps.com, api*.tiktokv.com, *.musical.ly, *.amemv.com, mjappaz.yefu365.com, p.du.163.com, getuserinfo.321mh.com, getuserinfo-globalapi.zymk.cn, api-163.biliapi.net, ios.fuliapps.com, vsco.co, api.vnision.com, *.my10api.com, bd.4008109966.net, sp.kaola.com, r.inews.qq.com, apple.fuliapps.com, newdrugs.dxy.cn, bdapp.4008109966.net, app101.avictown.cc, api.hlo.xyz, api.ijo.xyz, www.luqijianggushi.com, account.wps.cn, account.wps.com, u.kanghuayun.com, api.gyrosco.pe, api1.dobenge.cn, api.mvmtv.com, mitaoapp.yeduapp.com, origin-prod-phoenix.jibjab.com, www.3ivf.com, pay.guoing.com, p.doras.api.vcinema.cn, api.termius.com, mjappaz.yefu365.com, viva.v21xy.com, dida365.com, ticktick.com, biz.caiyunapp.com, api.gotokeep.com, ap*.intsig.net, mp.bybutter.com, api.vuevideo.net, api.picsart.c*, api.meiease.c* + + +# 去微博应用内广告 (By yichahucha) +^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 NobyDa/QuantumultX/File/wb_ad.js +^https?://(sdk|wb)app\.uve\.weibo\.com(/interface/sdk/sdkad.php|/wbapplua/wbpullad.lua) url script-response-body NobyDa/QuantumultX/File/wb_launch.js + +# 去微信公众号广告 (By Choler) +^https?:\/\/mp\.weixin\.qq\.com\/mp\/getappmsgad url script-response-body NobyDa/QuantumultX/File/Wechat.js + +# 知乎去广告 (By onewayticket255) +^https://api.zhihu.com/moments\?(action|feed_type) url script-response-body NobyDa/Surge/JS/Zhihu-ad-feed.js +^https://api.zhihu.com/topstory/recommend url script-response-body NobyDa/Surge/JS/Ads_zhihu_recommend.js +^https://api.zhihu.com/.*/questions url script-response-body NobyDa/Surge/JS/Zhihu-ad-answer.js +^https://api.zhihu.com/market/header url script-response-body NobyDa/Surge/JS/Zhihu-ad-market.js + +# 哔哩哔哩动画去广告 (By onewayticket255) +^https://app.bilibili.com/x/resource/show/tab\?access_key url script-response-body NobyDa/QuantumultX/File/bilibiliTab.js +^https://app.bilibili.com/x/v2/feed/index\?access_key url script-response-body NobyDa/QuantumultX/File/bilibiliFeed.js +^https://app.bilibili.com/x/v2/account/mine\?access_key url script-response-body NobyDa/QuantumultX/File/bilibiliAccount.js +^https://app.bilibili.com/x/v2/view\?access_key url script-response-body NobyDa/QuantumultX/File/bilibiliViewRelate.js +^https://app.bilibili.com/x/v2/rank url script-response-body NobyDa/QuantumultX/File/bilibiliRank.js +^https://api.bilibili.com/x/v2/reply/main\?access_key url script-response-body NobyDa/QuantumultX/File/bilibiliReply.js +^https://app.bilibili.com/x/v2/show/popular/index\?access_key url script-response-body NobyDa/QuantumultX/File/bilibiliHot.js + +# 抖音去广告去水印 (By Choler) +^https://aweme-eagle(.*)\.snssdk\.com\/aweme/.+/(feed|aweme/post|follow/feed)/ url script-response-body NobyDa/Surge/JS/Aweme.js + +# 酷我音乐SVIP (By yxiaocai) +^https?:\/\/vip1\.kuwo\.cn\/(vip\/v2\/user\/vip|vip\/spi/mservice) url script-response-body NobyDa/Surge/JS/Kuwo.js +^https?:\/\/musicpay\.kuwo\.cn\/music\.pay\?uid\=\d+ url 302 http://musicpay.kuwo.cn/music.pay?uid=1 + +# 小小影视Vip (By Meeta) +https:\/\/ios\.xiaoxiaoapps\.com\/(vod\/reqplay\/|ucp/index) url script-response-body NobyDa/QuantumultX/File/xxys.js +# 启动广告 +https:\/\/ios\.xiaoxiaoapps\.com\/getGlobalData url reject + +# tiktok封区解锁 +(.*video_id=\w{32})(.*watermark=)(.*) url 302 $1 +(?<=(carrier|account|sys)_region=)CN url 307 JP + +# 爱美剧Vip (原作 Meeta)(官网下载:app.meiju2018.com) +^https?:\/\/mjapp\.\w{1,9}\.com\/index\.php\/app\/ios\/(vod\/show|user\/index) url script-response-body NobyDa/QuantumultX/File/aimeiju.js +# 广告 +^https:\/\/www.3ivf\.com\/index\.php\/app\/android\/ads\/index url reject +^https:\/\/mjappaz\.yefu365\.com\/index\.php\/app\/ios\/ver\/index_ios url reject + +# 网易蜗牛读书VIP (By yxiaocai and JO2EY) +^https?://p\.du\.163\.com/readtime/info.json url reject +^https?:\/\/p\.du\.163\.com\/gain\/readtime\/info\.json url script-response-body NobyDa/QuantumultX/File/wnyd.js + +# 看漫画极速版vip (By HoGer) +^https?:\/\/getuserinfo\.321mh\.com\/app_api\/v5\/getuserinfo\/ url script-response-body NobyDa/QuantumultX/File/kmh.js + +# 知音漫客VIP (By mieqq) +^https://getuserinfo-globalapi.zymk.cn/app_api/v5/(getuserinfo|coin_account|getuserinfo_ticket|getcomicinfo)/ url script-response-body NobyDa/QuantumultX/File/Zymh.js + +# 网易漫画去开屏广告 +^https://api-163.biliapi.net/cover url reject-img + +# 哔哩哔哩番剧开启1080P+ +^https?:\/\/api\.bilibili\.com\/pgc\/player\/api\/playurl url script-response-body NobyDa/QuantumultX/File/bilifj.js + +# VSCO滤镜VIP +^https?:\/\/vsco\.co\/api\/subscriptions\/2.1\/user-subscriptions\/ url script-response-body NobyDa/QuantumultX/File/vsco.js + +# 大片-视频编辑器 VIP +^https?:\/\/api\.vnision\.com\/v1\/(users\/|banners) url script-response-body NobyDa/QuantumultX/File/dapian.js + +# 91短视频 +^https?:\/\/.+\.(my10api|(.*91.*))\.(com|tips|app|xyz)(:\d{2,5})?\/api.php$ url script-response-body NobyDa/QuantumultX/File/91.js + +# 布丁漫畫(蜜桃漫画)VIP (app已黄) +#^https?:\/\/(bd|bdapp|mitaoapp)\.(4008109966|yeduapp)\.(net|com)\/\/index\.php\/api\/User\/userLogin url script-response-body NobyDa/QuantumultX/File/bdmh.js + +# 网易考拉 去广告 (By Choler) +^https://sp\.kaola\.com/api/openad$ url script-response-body NobyDa/QuantumultX/File/wykaola.js + +# 腾讯新闻 去广告 (By Choler) +^https://r\.inews\.qq.com\/get(QQNewsUnreadList|RecommendList) url script-response-body NobyDa/Surge/JS/QQNews.js + +# 香蕉视频VIP (By Meeta) +^https?:\/\/(apple|ios)\.fuliapps\.com url script-response-body NobyDa/QuantumultX/File/xjsp.js + +# 用药助手解锁专业版 (By Primovist) +^https?:\/\/(i|newdrugs)\.dxy\.cn\/(snsapi\/username\/|app\/user\/(pro\/stat\?|init\?timestamp=)) url script-response-body NobyDa/Surge/JS/yyzs.js + +# 优乐美, 小米粒, 彩色直播三合一 解锁收费房 +^https?:\/\/(.+)\.(\w{2,3})(:?\d*)\/(api\/public\/\?service=Live\.checkLive$|public\/\/\?service=Live\.roomCharge$|lg\/video\/loadVideoFees\.do$) url script-response-body NobyDa/Surge/JS/zhibo.js + +# 陆琪讲故事 +^https:\/\/www\.luqijianggushi\.com\/api\/v2\/user\/get url script-response-body NobyDa/Surge/JS/luqi.js + +# WPS VIP (By MRHX) +^https://account.wps.cn|com/api/users/ url script-response-body NobyDa/Surge/JS/Wps.js + +# Gyroscope 解锁 pro (By Maasea) +^https:\/\/api\.gyrosco\.pe\/v1\/account\/$ url script-response-body NobyDa/Surge/JS/gyroscope.js + +# 水印精灵 vip (By Alex0510) +^https:\/\/api1\.dobenge\.cn\/api\/user\/getuserinfo url script-response-body NobyDa/Surge/JS/syjl.js + +# 大千视界 +^https:\/\/api\.mvmtv\.com\/index\.php.*(c=user.*a=info|a=addr.*vid=.*) url script-response-body NobyDa/Surge/JS/dqsj.js + +# JibJab解锁pro +^https:\/\/origin-prod-phoenix\.jibjab\.com\/v1\/user url script-response-body NobyDa/Surge/JS/jibjab.js + +# 南瓜电影4.7.3版 解锁VIP +^https:\/\/(p\.doras\.api\.vcinema\.cn|pay\.guoing\.com)\/(v5\.0\/user\/\d+$|d\/user\/get_user_info) url script-response-body NobyDa/Surge/JS/ngdy.js + +# Termius 解锁本地pro (By Maasea) +https:\/\/api\.termius\.com\/api\/v3\/bulk\/account\/ url script-response-body NobyDa/Surge/JS/Termius.js + +# 小影 解锁Vip (By @hiepkimcdtk55) +^https:\/\/viva\.v21xy\.com\/api\/rest\/u\/vip url script-response-body NobyDa/Surge/JS/vivavideo.js + +# 滴答清单 pro +^https:\/\/(ticktick|dida365)\.com\/api\/v2\/user\/status url script-response-body NobyDa/QuantumultX/File/DiDaQingDan.js + +# 彩云天气 Vip +^https:\/\/biz\.caiyunapp\.com\/v2\/user\?app_name\=weather url script-response-body NobyDa/QuantumultX/File/ColorWeather.js + +# Keep 解锁私人课程和动作库 (QX存在bug 该脚本可能无法生效) +^https:\/\/api\.gotokeep\.com\/(.+\/subject|.+\/dynamic) url script-response-body NobyDa/Surge/JS/Keep.js + +# 扫描全能王 pro +^https:\/\/(api|api-cs)\.intsig\.net\/purchase\/cs\/query_property\? url script-response-body NobyDa/Surge/JS/CamScanner.js + +# VUE pro +^https:\/\/api\.vuevideo\.net\/api\/v1\/(users\/.+\/profile|subtitle\/prepare) url script-response-body NobyDa/Surge/JS/VUE.js + +# NiChi 解锁素材 +^https?:\/\/mp\.bybutter\.com\/mood\/(official-templates|privileges) url script-response-body NobyDa/Surge/JS/NiChi.js + +# PicsArt美易 pro +^https:\/\/api\.(picsart|meiease)\.c(n|om)\/users\/show\/me\.json url script-response-body NobyDa/Surge/JS/PicsArt.js diff --git a/QuantumultX/MRHX/Aweme.js b/QuantumultX/MRHX/Aweme.js new file mode 100644 index 0000000000..cb6d6b0915 --- /dev/null +++ b/QuantumultX/MRHX/Aweme.js @@ -0,0 +1,60 @@ +/* +[URL Rewrite] +^https://aweme-eagle(.*)\.snssdk\.com/aweme/v2/ https://aweme-eagle$1.snssdk.com/aweme/v1/ 302 + +[Script] +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 + +[MITM] +hostname = *.amemv.com, *.snssdk.com +*/ + +let arr = { + "allow_download": true, + "share_type": 0, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 2, + "allow_dynamic_wallpaper": false +}; +let body = $response.body.replace(/watermark=1/g, "watermark=0"); +var obj = JSON.parse(body); +if (obj.aweme_list) { + for (var i = obj.aweme_list.length - 1; i >= 0; i--) { + if (obj.aweme_list[i].raw_ad_data) { + obj.aweme_list.splice(i, 1); + } + if (obj.aweme_list[i].poi_info) { + delete obj.aweme_list[i].poi_info; + } + if (obj.aweme_list[i].sticker_detail) { + delete obj.aweme_list[i].sticker_detail; + } + if (obj.aweme_list[i].simple_promotions) { + delete obj.aweme_list[i].simple_promotions; + } + obj.aweme_list[i].status.reviewed = 1; + obj.aweme_list[i].video_control = arr; + } + $done({body: JSON.stringify(obj)}); +} else if (obj.data) { + for (var i = obj.data.length - 1; i >= 0; i--) { + if (obj.data[i].aweme) { + if (obj.data[i].aweme.poi_info) { + delete obj.data[i].aweme.poi_info; + } + if (obj.data[i].aweme.simple_promotions) { + delete obj.data[i].aweme.simple_promotions; + } + obj.data[i].aweme.status.reviewed = 1; + obj.data[i].aweme.video_control = arr; + } else { + obj.data.splice(i, 1); + } + } + $done({body: JSON.stringify(obj)}); +} else { + $done({body}); +} diff --git a/QuantumultX/MRHX/CamScanner.js b/QuantumultX/MRHX/CamScanner.js new file mode 100644 index 0000000000..da1b096bcf --- /dev/null +++ b/QuantumultX/MRHX/CamScanner.js @@ -0,0 +1,18 @@ +/* +CamScanner unlocks pro, Cloud scanning is not available. + +QuanX 1.0.0: [rewrite_local] +^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 + +Quan: [REWRITE] +https:\/\/(api|api-cs)\.intsig\.net\/purchase\/cs\/query_property\? url simple-response SFRUUC8xLjEgMjAwIE9LCgp7CiAiZGF0YSI6IHsKICAicHNubF92aXBfcHJvcGVydHkiOiB7CiAgICJleHBpcnkiOiAiMTY0MzczMTIwMCIKICB9CiB9Cn0= + +Surge4.0: [Script] +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 + +QX & Q & Surge Mitm = ap*.intsig.net, +*/ + +let obj = JSON.parse($response.body); +obj = {"data":{"psnl_vip_property":{"expiry":"1643731200"}}}; +$done({body: JSON.stringify(obj)}); \ No newline at end of file diff --git a/QuantumultX/MRHX/QX.js b/QuantumultX/MRHX/QX.js new file mode 100644 index 0000000000..8f96fe4914 --- /dev/null +++ b/QuantumultX/MRHX/QX.js @@ -0,0 +1,4 @@ +var body = $response.body; +body = '\/*\n@supported 自己的QX设备ID\n*\/\n' + body; + +$done(body); \ No newline at end of file diff --git a/QuantumultX/MRHX/Termius.js b/QuantumultX/MRHX/Termius.js new file mode 100644 index 0000000000..fa0c05ee7c --- /dev/null +++ b/QuantumultX/MRHX/Termius.js @@ -0,0 +1,19 @@ +/* +Termius unlocks local pro v +(From the author @Maasea) + +Surge4: +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 + +QX: +https:\/\/api\.termius\.com\/api\/v3\/bulk\/account\/ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Termius.js + +Surge & QX MITM = api.termius.com +*/ + +let obj=JSON.parse($response.body) +obj.account["pro_mode"] = true; +obj.account["plan_type"] = "Premium"; +obj.account["user_type"] = "Premium"; +obj.account["current_period"]["until"] = "2099-10-10T03:27:34"; +$done({body:JSON.stringify(obj)}) \ No newline at end of file diff --git a/QuantumultX/MRHX/VUE.js b/QuantumultX/MRHX/VUE.js new file mode 100644 index 0000000000..73ed36f38c --- /dev/null +++ b/QuantumultX/MRHX/VUE.js @@ -0,0 +1,14 @@ +/* +VUE Vlog app unlocks pro + +Surge4.0: +http-response https:\/\/api\.vuevideo\.net\/api\/v1\/(users\/\d+\/profile|subtitle\/prepare) requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/VUE.js + +QX 1.0.0: +^https:\/\/api\.vuevideo\.net\/api\/v1\/(users\/\d+\/profile|subtitle\/prepare) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/VUE.js + +Surge & QX Mitm = api.vuevideo.net +*/ + +body = $response.body.replace(/\"isPremium\":false/, "\"isPremium\":true").replace(/\"valid\":false/, "\"valid\":true") +$done({body}); \ No newline at end of file diff --git "a/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/bilibiliAccount.js" "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/bilibiliAccount.js" new file mode 100644 index 0000000000..3a9158fa01 --- /dev/null +++ "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/bilibiliAccount.js" @@ -0,0 +1,17 @@ +/* +bilibili remove some account modules. by onewayticket255 + +QX: +^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 + +Surge4: +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 + +Surge & QX MITM = app.bilibili.com +*/ + +let body = $response.body +body=JSON.parse(body) +body['data']['sections'].splice(2,1) +body=JSON.stringify(body) +$done({body}) \ No newline at end of file diff --git "a/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/bilibiliTab.js" "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/bilibiliTab.js" new file mode 100644 index 0000000000..23a4fc91d1 --- /dev/null +++ "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/bilibiliTab.js" @@ -0,0 +1,29 @@ +/* +bilibili home page module customization whitelist. by onewayticket255 + +QX: +^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 + +Surge4: +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 + +Surge & QX MITM = app.bilibili.com +*/ + +let whitelist=['追番','推荐','直播','热门','影视'] + +let body = $response.body +body=JSON.parse(body) + +body['data']['tab'].forEach((element, index) => { +if(!(whitelist.includes(element['name']))) body['data']['tab'].splice(index,1) +}); + +body['data']['bottom'].forEach((element, index)=> { + if(element['pos']==4){ + body['data']['bottom'].splice(index,1) + } +}) + +body=JSON.stringify(body) +$done({body}) \ No newline at end of file diff --git "a/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili feed.js" "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili feed.js" new file mode 100644 index 0000000000..f20919b9e2 --- /dev/null +++ "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili feed.js" @@ -0,0 +1,12 @@ +//Customize blacklist +let blacklist=['共青团中央','广东共青团','浙江共青团','山东共青团','安徽共青团','河南共青团','央视频','徐大sao','翔翔大作战','徐大虾咯','科技美学','敬汉卿','NathanRich火锅大王','千户长生'] + +let body = $response.body +body=JSON.parse(body) +body['data']['items'].forEach((element, index)=> { + if(element.hasOwnProperty('ad_info')||element.hasOwnProperty('banner_item')||element['card_type']!='small_cover_v2'||blacklist.includes(element['args']['up_name'])){ + body['data']['items'].splice(index,1) + } +}) +body=JSON.stringify(body) +$done({body}) diff --git "a/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili hot.js" "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili hot.js" new file mode 100644 index 0000000000..40cbd2711e --- /dev/null +++ "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili hot.js" @@ -0,0 +1,11 @@ +let blacklist=['共青团中央','广东共青团','浙江共青团','山东共青团','安徽共青团','河南共青团','央视频','徐大sao','翔翔大作战','徐大虾咯','科技美学','敬汉卿','NathanRich火锅大王','千户长生'] + +let body = $response.body +body=JSON.parse(body) +body['data'].forEach((element, index)=> { + if(blacklist.includes(element['right_desc_1'])||element["card_type"] !== "small_cover_v5"){ + body['data'].splice(index,1) + } +}) +body=JSON.stringify(body) +$done({body}) \ No newline at end of file diff --git "a/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili rank.js" "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili rank.js" new file mode 100644 index 0000000000..53f1cc0d65 --- /dev/null +++ "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili rank.js" @@ -0,0 +1,12 @@ +//Customize blacklist +let blacklist=['共青团中央','广东共青团','浙江共青团','山东共青团','安徽共青团','河南共青团','央视频','徐大sao','翔翔大作战','徐大虾咯','科技美学','敬汉卿','NathanRich火锅大王','千户长生'] + +let body = $response.body +body=JSON.parse(body) +body['data'].forEach((element, index)=> { + if(blacklist.includes(element['name'])){ + body['data'].splice(index,1) + } +}) +body=JSON.stringify(body) +$done({body}) diff --git "a/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili reply.js" "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili reply.js" new file mode 100644 index 0000000000..7032fde382 --- /dev/null +++ "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili reply.js" @@ -0,0 +1,5 @@ +let body = $response.body +body=JSON.parse(body) +delete body['data']['notice'] +body=JSON.stringify(body) +$done({body}) diff --git "a/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili view relate.js" "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili view relate.js" new file mode 100644 index 0000000000..30abd57fa1 --- /dev/null +++ "b/QuantumultX/MRHX/bilibili\345\216\273\345\271\277\345\221\212/surge bilibili view relate.js" @@ -0,0 +1,10 @@ +let body = $response.body +body=JSON.parse(body) +body['data']['relates'].forEach((element, index)=> { + if(element.hasOwnProperty('is_ad')||!element.hasOwnProperty('aid')){ + body['data']['relates'].splice(index,1) + } +}) +delete body['data']['cms'] +body=JSON.stringify(body) +$done({body}) diff --git "a/QuantumultX/MRHX/bilibili\347\225\252\345\211\2471080P\357\274\213/bilifj.js" "b/QuantumultX/MRHX/bilibili\347\225\252\345\211\2471080P\357\274\213/bilifj.js" new file mode 100644 index 0000000000..909d2e9332 --- /dev/null +++ "b/QuantumultX/MRHX/bilibili\347\225\252\345\211\2471080P\357\274\213/bilifj.js" @@ -0,0 +1,24 @@ +/* +bilibili fan drama open 1080P+ + +QX: +^https?:\/\/api\.bilibili\.com\/pgc\/player\/api\/playurl url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/bilifj.js + +Surge4: +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 + +Surge & QX MITM = api.bilibili.com +*/ + +var body = $response.body; +var url = $request.url; + +const path1 = '/pgc/player/api/playurl'; + +if (url.indexOf(path1) != -1) { + let obj = JSON.parse(body); + obj["quality"] = obj["accept_quality"][0]; + body = JSON.stringify(obj); + } + +$done({body}); \ No newline at end of file diff --git a/QuantumultX/MRHX/vsco.js b/QuantumultX/MRHX/vsco.js new file mode 100644 index 0000000000..b295b9861d --- /dev/null +++ b/QuantumultX/MRHX/vsco.js @@ -0,0 +1,38 @@ +/* +VSCO unlock vip + +QX: +^https?:\/\/vsco\.co\/api\/subscriptions\/2.1\/user-subscriptions\/ url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/vsco.js + +Surge4: +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 + +Surge & QX MITM = vsco.co +*/ + +var body = $response.body; +var url = $request.url; + +const path1 = '/api/subscriptions/2.1/user-subscriptions/'; + +let obj = JSON.parse(body); + +if (url.indexOf(path1) != -1) { + obj.user_subscription["expires_on_sec"] = 1655536094; + obj.user_subscription["expired"] = false; + obj.user_subscription["payment_type"] = 2; + obj.user_subscription["is_trial_period"] = true; + obj.user_subscription["starts_on_sec"] = 1560831070; + obj.user_subscription["is_active"] = true; + obj.user_subscription["auto_renew"] = true; + obj.user_subscription["last_verified_sec"] = 1560831070; + obj.user_subscription["subscription_code"] = "VSCOANNUAL"; + obj.user_subscription["user_id"] = 54624336; + obj.user_subscription["source"] = 1; + body = JSON.stringify(obj); + } + +$done({body}); + +// 自用 转载需注明出处 +// TG频道: https://t.me/NobyDa \ No newline at end of file diff --git a/QuantumultX/MRHX/wps.js b/QuantumultX/MRHX/wps.js new file mode 100644 index 0000000000..d214e41a22 --- /dev/null +++ b/QuantumultX/MRHX/wps.js @@ -0,0 +1,9 @@ +var obj = JSON.parse($response.body); + +var id = obj.userid; + +obj = {"exp":0,"level":3,"privilege":[{"spid":"data_recover","times":0,"expire_time":1631619709},{"spid":"ocr","times":0,"expire_time":1631619709},{"spid":"pdf2doc","times":0,"expire_time":1631619709},{"spid":"pdf_merge","times":0,"expire_time":1631619709},{"spid":"pdf_sign","times":0,"expire_time":1631619709},{"spid":"pdf_split","times":0,"expire_time":1631619709}],"result":"ok","total_buy":0,"total_cost":-30,"userid":0000,"vip":{"name":"超级会员","has_ad":0,"memberid":40,"expire_time":1631619709,"enabled":[{"memberid":40,"name":"超级会员","expire_time":1631619709},{"memberid":20,"name":"WPS会员","expire_time":1631619709},{"memberid":12,"name":"稻壳会员","expire_time":1631619709}]},"wealth":0,"expire_time":1631619709}; + +obj.userid = id; + +$done({body: JSON.stringify(obj)}); diff --git "a/QuantumultX/MRHX/\345\276\256\344\277\241\345\216\273\345\271\277\345\221\212/Wechat.js" "b/QuantumultX/MRHX/\345\276\256\344\277\241\345\216\273\345\271\277\345\221\212/Wechat.js" new file mode 100644 index 0000000000..40a613d29f --- /dev/null +++ "b/QuantumultX/MRHX/\345\276\256\344\277\241\345\216\273\345\271\277\345\221\212/Wechat.js" @@ -0,0 +1,11 @@ +/* +[rewrite_local] +^https?://mp.weixin.qq.com/mp/getappmsgad url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/Wechat.js + +hostname = mp.weixin.qq.com, +*/ + +var obj = JSON.parse($response.body); +obj.advertisement_num = 0; +obj.advertisement_info = []; +$done({body: JSON.stringify(obj)}); \ No newline at end of file diff --git "a/QuantumultX/MRHX/\345\276\256\345\215\232\345\216\273\345\271\277\345\221\212/wb_ad.js" "b/QuantumultX/MRHX/\345\276\256\345\215\232\345\216\273\345\271\277\345\221\212/wb_ad.js" new file mode 100644 index 0000000000..f682826ca5 --- /dev/null +++ "b/QuantumultX/MRHX/\345\276\256\345\215\232\345\216\273\345\271\277\345\221\212/wb_ad.js" @@ -0,0 +1,177 @@ +const path1 = "/groups/timeline"; +const path2 = "/statuses/unread"; +const path3 = "/statuses/extend"; +const path4 = "/comments/build_comments"; +const path5 = "/photo/recommend_list"; +const path6 = "/stories/video_stream"; +const path7 = "/statuses/positives/get"; +const path8 = "/stories/home_list"; +const path9 = "/profile/statuses"; +const path10 = "/statuses/friends/timeline"; +const path11 = "/service/picfeed"; +const path12 = "/fangle/timeline"; +const path13 = "/searchall"; +const path14 = "/cardlist"; +const path15 = "/statuses/video_timeline"; +const path16 = "/page"; +const path17 = "/statuses/friends_timeline"; + +const url = $request.url; +var body = $response.body; + +if ( + url.indexOf(path1) != -1 || + url.indexOf(path2) != -1 || + url.indexOf(path10) != -1 || + url.indexOf(path15) != -1 || + url.indexOf(path17) != -1 +) { + let obj = JSON.parse(body); + if (obj.statuses) obj.statuses = filter_timeline_statuses(obj.statuses); + if (obj.advertises) obj.advertises = []; + if (obj.ad) obj.ad = []; + if (obj.num) obj.num = obj.original_num; + if (obj.trends) obj.trends = []; + body = JSON.stringify(obj); +} + +if (url.indexOf(path3) != -1) { + let obj = JSON.parse(body); + if (obj.trend) delete obj.trend; + body = JSON.stringify(obj); +} + +if (url.indexOf(path4) != -1) { + let obj = JSON.parse(body); + obj.recommend_max_id = 0; + if (obj.status) { + if (obj.top_hot_structs) { + obj.max_id = obj.top_hot_structs.call_back_struct.max_id; + delete obj.top_hot_structs; + } + if (obj.datas) obj.datas = filter_comments(obj.datas); + } else { + obj.datas = []; + } + body = JSON.stringify(obj); +} + +if (url.indexOf(path5) != -1) { + let obj = JSON.parse(body); + obj.data = {}; + body = JSON.stringify(obj); +} + +if (url.indexOf(path6) != -1) { + let obj = JSON.parse(body); + let segments = obj.segments; + if (segments && segments.length > 0) { + let i = segments.length; + while (i--) { + const element = segments[i]; + let is_ad = element.is_ad; + if (is_ad && is_ad == true) segments.splice(i, 1); + } + } + body = JSON.stringify(obj); +} + +if (url.indexOf(path7) != -1) { + let obj = JSON.parse(body); + obj.datas = []; + body = JSON.stringify(obj); +} + +if (url.indexOf(path8) != -1) { + let obj = JSON.parse(body); + obj.story_list = []; + body = JSON.stringify(obj); +} + +if (url.indexOf(path11) != -1) { + let obj = JSON.parse(body); + obj.data = []; + body = JSON.stringify(obj); +} + +if ( + url.indexOf(path9) != -1 || + url.indexOf(path12) != -1 || + url.indexOf(path13) != -1 || + url.indexOf(path14) != -1 || + url.indexOf(path16) != -1 +) { + let obj = JSON.parse(body); + if (obj.cards) obj.cards = filter_timeline_cards(obj.cards); + body = JSON.stringify(obj); +} + +$done({ body }); + +function filter_timeline_statuses(statuses) { + if (statuses && statuses.length > 0) { + let i = statuses.length; + while (i--) { + let element = statuses[i]; + if (is_timeline_likerecommend(element.title)) statuses.splice(i, 1); + if (is_timeline_ad(element)) statuses.splice(i, 1); + } + } + return statuses; +} + +function filter_comments(datas) { + if (datas && datas.length > 0) { + let i = datas.length; + while (i--) { + const element = datas[i]; + let type = element.type; + if (type == 5 || type == 1 || type == 6) datas.splice(i, 1); + } + } + return datas; +} + +function filter_timeline_cards(cards) { + if (cards && cards.length > 0) { + let j = cards.length; + while (j--) { + let item = cards[j]; + let card_group = item.card_group; + if (card_group && card_group.length > 0) { + let i = card_group.length; + while (i--) { + let card_group_item = card_group[i]; + let card_type = card_group_item.card_type; + if (card_type && card_type == 9) { + if (is_timeline_ad(card_group_item.mblog)) card_group.splice(i, 1); + } else if (card_type && card_type == 118) { + card_group.splice(i, 1); + } else if (card_type && card_type == 42) { + if (card_group_item.desc == '\u53ef\u80fd\u611f\u5174\u8da3\u7684\u4eba') { + cards.splice(j, 1); + break; + } + } + } + } else { + let card_type = item.card_type; + if (card_type && card_type == 9) { + if (is_timeline_ad(item.mblog)) cards.splice(j, 1); + } + } + } + } + return cards; +} + +function is_timeline_ad(mblog) { + if (!mblog) return false; + let promotiontype = mblog.promotion && mblog.promotion.type && mblog.promotion.type == "ad"; + let mblogtype = mblog.mblogtype && mblog.mblogtype == 1; + return (promotiontype || mblogtype) ? true : false; +} + +function is_timeline_likerecommend(title) { + return title && title.type && title.type == "likerecommend" ? true : false; +} diff --git "a/QuantumultX/MRHX/\345\276\256\345\215\232\345\216\273\345\271\277\345\221\212/wb_launch.js" "b/QuantumultX/MRHX/\345\276\256\345\215\232\345\216\273\345\271\277\345\221\212/wb_launch.js" new file mode 100644 index 0000000000..67b7252aca --- /dev/null +++ "b/QuantumultX/MRHX/\345\276\256\345\215\232\345\216\273\345\271\277\345\221\212/wb_launch.js" @@ -0,0 +1,23 @@ +const path1 = "/interface/sdk/sdkad.php"; +const path2 = "/wbapplua/wbpullad.lua"; + +const url = $request.url; +var body = $response.body; + +if (url.indexOf(path1) != -1) { + let re = /\{.*\}/; + body = body.match(re); + var obj = JSON.parse(body); + if (obj.background_delay_display_time) obj.background_delay_display_time = 60*60*24*365; + if (obj.show_push_splash_ad) obj.show_push_splash_ad = false; + if (obj.ads) obj.ads = []; + body = JSON.stringify(obj) + 'OK'; +} + +if (url.indexOf(path2) != -1) { + var obj = JSON.parse(body); + if (obj.cached_ad && obj.cached_ad.ads) obj.cached_ad.ads = []; + body = JSON.stringify(obj); +} + +$done({body}); diff --git "a/QuantumultX/MRHX/\347\237\245\344\271\216\345\216\273\345\271\277\345\221\212/surge zhihu answer.js" "b/QuantumultX/MRHX/\347\237\245\344\271\216\345\216\273\345\271\277\345\221\212/surge zhihu answer.js" new file mode 100644 index 0000000000..b536dc3f51 --- /dev/null +++ "b/QuantumultX/MRHX/\347\237\245\344\271\216\345\216\273\345\271\277\345\221\212/surge zhihu answer.js" @@ -0,0 +1,5 @@ +let body = $response.body +body=JSON.parse(body) +delete body['ad_info'] +body=JSON.stringify(body) +$done({body}) diff --git "a/QuantumultX/MRHX/\347\237\245\344\271\216\345\216\273\345\271\277\345\221\212/surge zhihu feed.js" "b/QuantumultX/MRHX/\347\237\245\344\271\216\345\216\273\345\271\277\345\221\212/surge zhihu feed.js" new file mode 100644 index 0000000000..a26a2a13fd --- /dev/null +++ "b/QuantumultX/MRHX/\347\237\245\344\271\216\345\216\273\345\271\277\345\221\212/surge zhihu feed.js" @@ -0,0 +1,9 @@ +let body = $response.body +body=JSON.parse(body) +body['data'].forEach((element, index)=>{ + if(element.hasOwnProperty('ad')){ + body['data'].splice(index,1) + } +}) +body=JSON.stringify(body) +$done({body}) diff --git "a/QuantumultX/MRHX/\347\237\245\344\271\216\345\216\273\345\271\277\345\221\212/surge zhihu market.js" "b/QuantumultX/MRHX/\347\237\245\344\271\216\345\216\273\345\271\277\345\221\212/surge zhihu market.js" new file mode 100644 index 0000000000..75df999760 --- /dev/null +++ "b/QuantumultX/MRHX/\347\237\245\344\271\216\345\216\273\345\271\277\345\221\212/surge zhihu market.js" @@ -0,0 +1,6 @@ +let body = $response.body +body=JSON.parse(body) +body['sub_webs'].splice(0,1) +body['sub_webs'].splice(1,1) +body=JSON.stringify(body) +$done({body}) diff --git "a/QuantumultX/MRHX/\347\237\245\344\271\216\345\216\273\345\271\277\345\221\212/surge zhihu recommend.js" "b/QuantumultX/MRHX/\347\237\245\344\271\216\345\216\273\345\271\277\345\221\212/surge zhihu recommend.js" new file mode 100644 index 0000000000..a718eae210 --- /dev/null +++ "b/QuantumultX/MRHX/\347\237\245\344\271\216\345\216\273\345\271\277\345\221\212/surge zhihu recommend.js" @@ -0,0 +1,9 @@ +let body = $response.body +body=JSON.parse(body) +body['data'].forEach((element, index)=> { + if(element['card_type']=='slot_event_card'||element.hasOwnProperty('ad')){ + body['data'].splice(index,1) + } +}) +body=JSON.stringify(body) +$done({body}) diff --git a/QuantumultX/Rewrite_lhie1.conf b/QuantumultX/Rewrite_lhie1.conf index 9249caa28c..f4962bc1ba 100644 --- a/QuantumultX/Rewrite_lhie1.conf +++ b/QuantumultX/Rewrite_lhie1.conf @@ -1,4 +1,4 @@ -# Update-2019.10.29 Self-use rewrite rule, Remove versus shenji duplicates and optimizations +# MRHX-Update-2019.11.11 Self-use rewrite rule, Remove versus shenji duplicates and optimizations # This rewrite rule does not include shenji hostname = qidian.qpic.cn,ulogs.umeng.com,ulogs.umengcloud.com,alogs.umeng.com,alogs.umeng.co,*.byteoversea.com,*.cnbetacdn.com,*.doubanio.com,101.201.62.22,113.105.222.132,113.96.109.*,118.178.214.118,121.14.89.216,121.9.212.178,14.21.76.30,183.232.237.194,183.232.246.225,183.60.159.227,59.37.96.220,789.kakamobi.cn,aarkissltrial.secure2.footprint.net,activity2.api.ofo.com,adm.10jqka.com.cn,adproxy.autohome.com.cn,afd.baidu.com,api.app.vhall.com,api.fengshows.com,api.k.sohu.com,api.laifeng.com,api.m.mi.com,api.mddcloud.com.cn,api-mifit.huami.com,api-mifit-cn.huami.com,app.10086.cn,app.m.zj.chinamobile.com,app2.autoimg.cn,appsdk.soku.com,atrace.chelaile.net.cn,capi.douyucdn.cn,cdn.kuaidi100.com,classbox2.kechenggezi.com,connect.facebook.net,creatives.ftimg.net,d.1qianbao.com,dapis.mting.info,dl.app.gtja.com,dongfeng.alicdn.com,dsp-impr2.youdao.com,erebor.douban.com,fm.fenqile.com,fuss10.elemecdn.com,g1.163.com,gorgon.youdao.com,hm.xiaomi.com,hui.sohu.com,i1.hoopchina.com.cn,iface2.iqiyi.com,img.zuoyebang.cc,img1.126.net,img1.doubanio.com,img3.doubanio.com,impservice.dictapp.youdao.com,impservice.youdao.com,kano.guahao.cn,lf.snssdk.com,lives.l.qq.com,m.aty.sohu.com,m5.amap.com,ma.ofo.com,mage.if.qidian.com,mapi.appvipshop.com,mbl.56.com,mimg.127.net,mmg.aty.sohu.com,mmgr.gtimg.com,nex.163.com,oimagea4.ydstatic.com,oimagec2.ydstatic.com,p.kuaidi100.com,p1.music.126.net,pic.k.sohu.com,pic1.chelaile.net.cn,pic2.zhimg.com,resource.cmbchina.com,ress.dxpmedia.com,rm.aarki.net,sso.ifanr.com,static.api.m.panda.tv,staticlive.douyucdn.cn,storage.wax.weibo.com,supportda.ofo.com,ups.youku.com,wapwenku.baidu.com,wenku.baidu.com,www.facebook.com,www.ft.com,www.oschina.net,api-mifit.huami.com,api-163.biliapi.net,pan-api.bitqiu.com,api.feng.com,m.tuniu.com,img.meituan.net,sdkapp.uve.weibo.com,ptmpcap.caocaokeji.cn,creditcardapp.bankcomm.com,newapp.szsmk.com,client.qunar.com,mpcs.suning.com,api2.helper.qq.com,cdnfile1.msstatic.com,res.xiaojukeji.com,cube.elemecdn.com,dimg04.c-ctrip.com,prom.mobile.gome.com.cn,y.gtimg.cn,du.hupucdn.com,interfac*.music.163.com,yxyapi2.drcuiyutao.com,api.vistopia.com.cn,capis-clb.didapinche.com, @@ -445,4 +445,4 @@ hostname = qidian.qpic.cn,ulogs.umeng.com,ulogs.umengcloud.com,alogs.umeng.com,a ^https?:\/\/api\.vistopia\.com\.cn\/api\/v1\/home\/advertisement url reject ^https?:\/\/www\.didapinche\.com\/app\/adstat\/ url reject-img ^https?:\/\/capis\.didapinche\.com\/ad\/ url reject-img -^https?:\/\/api-163\.biliapi\.net/cover url reject-img \ No newline at end of file +^https?:\/\/api-163\.biliapi\.net/cover url reject-img diff --git a/README.md b/README.md index 2ab2a36c2b..2a3a48f707 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -## Welcome to focus on my TG channel[@NobyDa](https://t.me/NobyDa) \ No newline at end of file +## 自用JS/Adrules.list私有库.