Merge pull request #76 from sve1r/develop

 feat: Update Bilibili and Youtube Rewrite
This commit is contained in:
sve1r 2023-12-17 01:26:33 +08:00 committed by GitHub
commit f689e643d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 5725 additions and 13029 deletions

View File

@ -1,4 +1,4 @@
#!name=毒奶特供(2023年11月24日更新)
#!name=毒奶特供(2023年12月17日更新)
#!desc=毒奶去网页广告计划稳定版For Surge / Quantumult X / Shadowrocket/ 油猴 - Tampermonkey ;如去内容农场/泥巴影视/剧迷网/低端影视/哔滴影视/Jable/Missav//Netflav/Xvideos/Pornhub/91../禁漫天堂/百度与谷歌搜索结果页面广告等视频网站广告或其他ACG网站网页广告/百度知道广告...
#! \\ You Can Change The World With Code.
@ -43,83 +43,83 @@ https://creative.live.missav.com/widgets/Spot/lib.js url reject
# url https://www.javlibrary.com/cn/?v=$2 (https://www.javlibrary.com/cn/videoreviews.php\?v=)(.*?)(&mode=.*)
# url m.baidu.com www.baidu.com(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).*
# 知道搜索广告(zhidao.baidu.com)
# 知道搜索广告(zhidao.baidu.com)
^https?:\/\/(zhidao)\.baidu\.com\/(question|index|\?fr|\?word) url script-response-body https://limbopro.com/Adguard/surge_baidu.zhidao.js
# 搜索首页广告(www.baidu.com)
# 搜索首页广告(www.baidu.com)
^https?:\/\/(www|m)\.baidu\.com(/$|\/\?ref.*)(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/surge_baidu.index.js
# 搜索结果广告(www.baidu.com)
# 搜索结果广告(www.baidu.com)
^https?:\/\/(www|m)\.baidu\.com(\/s\?word.*|\/from.*?\/s\?word.*|\/from.*?word=.*) url script-response-body https://limbopro.com/Adguard/surge_baidu.js
# 内容农场(www.bing.com)
# 内容农场(www.bing.com)
^https?:\/\/((www|cn)\.bing)(\.\w{2,4}){1,2}\/(search\?.*|\?sa=|\?FORM)(?!.*?(apps=)) url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 内容农场(www.google.com|com.hk)
# 内容农场(www.google.com|com.hk)
^https?:\/\/(www\.google)(\.\w{2,4}){1,2}\/(search\?|\?sa=|\?FORM)(?!.*?(apps=)) url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 禁漫天堂(18comic.org|vip)
# 禁漫天堂(18comic.org|vip)
^https?:\/\/18comic\.(vip|org)\/(?!(.*(onclick|cdn-cgi|\.))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 紳士漫畫(www.wnacg.com)
# 紳士漫畫(www.wnacg.com)
^https?:\/\/www\.wnacg\.com\/(?!(.*(onclick|cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 小宝影视(xiaobaotv.net)
# 小宝影视(xiaobaotv.net)
^https?:\/\/(xiaobaotv\.(net|com))\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 泥巴影视(Nivod4.tv)
# 泥巴影视(Nivod4.tv)
^https?:\/\/(www|m)\.(nivod4\.tv)\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 剧迷网(gimy.app|ai)
# 剧迷网(gimy.app|ai)
^https?:\/\/(\w{0,3}(\.){0,1}(gimy)(\.)\w{0,3})\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 低端影视(ddrk.me|ddys.pro)
# 低端影视(ddrk.me|ddys.pro)
^https?:\/\/(ddys|ddrk|ddys2)\.\w{0,3}\/(?!(.*(cdn-cgi|getvddr|\=json|\.))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 哔嘀影视播放页(www.btbdys.com)
# 哔嘀影视播放页(www.btbdys.com)
^https?:\/\/www\.(btbdys|bdys(01|02|03|10))\.com\/play\/.*?\.htm.* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 哔嘀影视展示页(www.btbdys.com)
# 哔嘀影视展示页(www.btbdys.com)
^https?:\/\/www\.(btbdys|bdys(01|02|03|10))\.com\/(?!(.*(obj|lines|verifyCode|member|zzzzz|cdn-cgi|js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 欧乐影视(www.olevod.tv)
# 欧乐影视(www.olevod.tv)
https?:\/\/.+\.olevod\..+\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 独播库(www.duboku.tv)
# 独播库(www.duboku.tv)
https?:\/\/.*duboku.*\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 韩剧TV(www.tvn.cc)
# 韩剧TV(www.tvn.cc)
^https?:\/\/(www|wap|m)\.tvn\.cc\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 555电影网(555dy.com)P.S.鉴于域名经常跳转将不再维护
# 555电影网(555dy.com)P.S.鉴于域名经常跳转将不再维护
^https?:\/\/(555dy\w{0,3})\.(com|top|shop)\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 梨播(libvio.top|pro)
# 梨播(libvio.top|pro)
^https?:\/\/(www\.|m\.){0,1}libvio\.(top|pro)\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 天天视频(www.ttsp.tv)
# 天天视频(www.ttsp.tv)
^https?:\/\/(www.ttsp.tv)\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# Javbus(www.javbus.com)
# Javbus(www.javbus.com)
^https?:\/\/www\.javbus\.com\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# Pornhub(cn.pornhub.com)
# Pornhub(cn.pornhub.com)
^https?:\/\/(\w{0,3}(\.){0,1}(pornhub)(\.)\w{0,3})\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# Jable(en|jable.tv)
# Jable(en|jable.tv)
^https?:\/\/(jable|(en|\w{2,3})\.jable)\.tv\/(?!(.*(\?mode|cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# Missav(missav.com)
# Missav(missav.com)
^https?:\/\/missav\.com\/(?!(.*(api|cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# Javday(javday.tv)
# Javday(javday.tv)
^https?:\/\/javday\.tv\/(?!(.*(api|cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# Xvideos(www.xvideos.com)
# Xvideos(www.xvideos.com)
^https?:\/\/www\.xvideos\.com\/(?!(.*(api|my|cdn-cgi|account|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# njav(njav.com)
# njav(njav.com)
^https?:\/\/njav\.tv\/(?!(.*(api|my|cdn-cgi|account|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# javlibrary(www.javlibrary.com)
# javlibrary(www.javlibrary.com)
^https?:\/\/www\.javlibrary\.com\/(?!(.*(api|my|login|cdn-cgi|confirmobj|account|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# Netflav(netflav|netflav5|.com)
# Netflav(netflav|netflav5|.com)
^https?:\/\/(netflav|netflav5)\.com\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/surge_netflav.js
# PlayerAds
# PlayerAds
^https?:\/\/(streamtape.com|((emturbovid|filemoon|embedrise|mmfl02|embedgram)\.(sx|com))|emturbovid\.com|filemoon.sx|embedrise.com|mmfl02.com|embedgram.com|fviplions.com|sfastwish.com|cabecabean.lol|belegug.online|wishfast.top|vidmoviesb.xyz|vhmovies.to|awish.pro|ankrzkz.sbs|fc2stream.tv|sub123.xyz|leakslove.net|mwish.pro|embedwish.com|javhahaha.us|abkrzkz.sbs|streamvid.top|abkrzkr.sbs|playertv.net|sbrity.com|doodporn.xyz|mycloud123.top|streamsb.click|streamxxx.online|trafficdepot.re|sblona.com|filelions.*|ahvsh.com|sbrapid.com|streaamss.com|louishide.com|projectfreetv.lol|streamwish.to|lvturbo.com|javb1.com|sbface.com|rbtstream.info|vidgo.top|sbhight.com|sbbrisk.com|streamhide.to|cloudrls.com|mm9846.com|m4uhd.club|streamm4u.club|sbchill.com|fbjav.com|imfb.xyz|sbrulz.xyz|baldrfilms.xyz|javbigo.xyz|dizivap.*|dvapizle.*|sblongvu.com|mavavid.com|fembed9hd.com|xsub.cc|sbthe.com|sbanh.com|mm9844.*|anigogo.net|faptiti.com|javsubbed.xyz|sblanh.com|av4asia.com|playerjavseen.com|pornhubed.com|xvideostream.net|streamsss.net|sbspeed.com|vcdn-stream.xyz|vanfem.com|javuncen.xyz|vidplay.ch|javenglish.me|ssbstream.net|zojav.com|watch-jav-english.live|javpornhd.online|yuamikami.xyz|embed-media.com|obaplayer.xyz|cdn-myhdjav.info|dlmovies.link|cinegrabber.com|watchjavnow.xyz|luxubu.review|nsfwzone.xyz|viplayer.cc|cinemaemcasa.xyz|sbfast.com|iframe2videos.xyz|javfu.net|streamas.cloud|nashstream.top|yuistream.xyz|jav247.top|viewsb.com|myvideoplayer.monster|cloudemb.com|moviesland.xyz|jvembed.com|ffem.club|javleaked.com|pornhole.club|ndrama.xyz|fembed-hd.com|netflav.com|netflav5.com|mambast.tk|cutl.xyz|playerjavhd.com|mycloudzz.com|suzihaza.com|embedsb.com|layarkacaxxi.icu|nekolink.site|sbflix.xyz|javhdfree.icu|streamsb.net|rubicstreaming.com|javside.com|gdstream.net|animepl.xyz|watchsb.com|sbplay2.*|hentai4.me|playersb.com|streamabc.xyz|ns21.online|diasfem.com|milfnut.net|pelispop.net|ondembed.xyz|tubesb.com|fplayer.info|mm9842.com|sbplay1.com|javmvp.com|japopav.tv|nezuko-ah.nl|pelistop.co|vidcloud.*|mavlecteur.com|xxxjaa.xyz|vcdn2.space|mavplayer.xyz|sbplay.*|sbvideo.net|sbembed4.com|javcl.me|dfmagazine.co.uk|down-paradise.com|embedsito.com|serverf4.org)\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 91porn(www.91porn.com)
# 91porn(www.91porn.com)
^https?:\/\/\w{0,3}(\.){0,1}91porn\.com\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 91short(cn1.91short.com)
# 91short(cn1.91short.com)
^https?:\/\/(cn1|www)\.(91short\.com)\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# Avple(avple.tv)
# Avple(avple.tv)
^https?:\/\/avple\.tv\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# 4hu(4hu.tv)
# 4hu(4hu.tv)
^https?:\/\/4hu\.tv\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# Supjav(supjav.com)
# Supjav(supjav.com)
^https?:\/\/supjav\.com\/(?!(.*(cdn-cgi|api|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# tz659(www.tz659.com)
# tz659(www.tz659.com)
^http?:\/\/www\.tz659\.com\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# anime1(anime1.me)
# anime1(anime1.me)
^https?:\/\/anime1\.me\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# hanime1(hanime1.me)
# hanime1(hanime1.me)
^https?:\/\/hanime1\.me\/(?!(.*(api|cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# yhdmp(m.yhdmp.com)
# yhdmp(m.yhdmp.com)
^https?:\/\/m\.yhpdm\.com\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js
# Javmost(javmost.xyz)
# Javmost(javmost.xyz)
^https?:\/\/\w{3,5}\.javmost\.com\/(?!(.*(cdn-cgi|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/surge_javmost.js
# AVfactory
# AVfactory
^https?:\/\/(www.tameikegoro.jp|tameikegoro.jp|www.madonna-av.com|madonna-av.com|deeps.net|www.fitch-av.com|fitch-av.com|www.takara-tv.jp|takara-tv.jp|www.moodyz.com|moodyz.com|www.s1s1s1.com|s1s1s1.com|www.prestige-av.com|prestige-av.com|www.sod.co.jp|sod.co.jp|venus-av.com|www.gloryquest.tv|gloryquest.tv|www.premium-beauty.com|premium-beauty.com|www.nagae-style.com|nagae-style.com|www.ideapocket.com|ideapocket.com|www.attackers.net|attackers.net|www.dasdas.jp|dasdas.jp|www.oppai-av.com|oppai-av.com|www.kawaiikawaii.jp|kawaiikawaii.jp|www.to-satsu.com|to-satsu.com|www.wanz-factory.com|wanz-factory.com|www.av-e-body.com|av-e-body.com|www.mgstage.com|mgstage.com|www.mousouzoku-av.com|mousouzoku-av.com|manji-group.com|www.rocket-inc.net|rocket-inc.net|www.dmm.co.jp|dmm.co.jp|www.muku.tv|muku.tv)\/(?!(.*(api|my|cdn-cgi|account|(\.(js|css|jpg|jpeg|png|webp|gif|zip|woff|woff2|m3u8|mp4|mp3|json|ico))))).* url script-response-body https://limbopro.com/Adguard/Adblock4limbo.js

View File

@ -9,8 +9,8 @@
// @TgChannel https://t.me/ddgksf2021
// @Contribute https://t.me/ddgksf2013_bot
// @Feedback 📮 ddgksf2013@163.com 📮
// @UpdateTime 2023-08-17
// @ConfigVersion V2.0.127
// @UpdateTime 2023-11-24
// @ConfigVersion V2.0.128
// @Attention 如果广告仍然存在,请清除缓存或卸载应用重新安装
// @Attention 如需引用请注明出处,谢谢合作!
// @Function 去广告配置(自用,不定期更新)
@ -98,4 +98,4 @@ hostname = -broadcast.chat.bilibili.com, -*cdn*.biliapi.net, -*tracker*.biliapi.
# BiliBili_哔哩哔哩_繁体CC字幕转中文简体[自行启用hostname=aisubtitle.hdslb.com,i0.hdslb.com]@ddgksf2013
;^https?:\/\/.*\.hdslb\.com\/bfs\/subtitle\/.+\.json url script-response-body https://github.com/ddgksf2013/Scripts/raw/master/bilibili_cc.js
# BiliBili_哔哩哔哩_去除统一设置的皮肤[注释留存]@ddgksf2013
;^https?:\/\/app\.bilibili\.com\/x\/resource\/show\/skin\? url script-response-body https://rules-for-qx.sveir.xyz/Scripts/AdBlock/Bilibili/BiliBili.min.js
;^https?:\/\/app\.bilibili\.com\/x\/resource\/show\/skin\? url script-response-body https://rules-for-qx.sveir.xyz/Scripts/AdBlock/Bilibili/BiliBili.min.js

File diff suppressed because one or more lines are too long

View File

@ -7,7 +7,7 @@
// @Contribute https://t.me/ddgksf2013_bot
// @Feedback 📮 ddgksf2013@163.com 📮
// @Attention 如需引用请注明出处,谢谢合作!
// @UpdateTime 2023-09-02
// @UpdateTime 2023-12-03
// @Function 自用影视网站去广告配置(不定期更新)
// @Suitable 自行观看"# > "注释内容
// @Explain 推荐使用手机版Chrome或Alook浏览器(仅供墨鱼本人及小部分QX用户使用)
@ -16,54 +16,50 @@
hostname=m.nivod4.tv, www.freeok.vip, *netflix*, *bdys*,*cupfox*,*cokemv*,*pornhub.com,*lezhutv*,*bimi*,18comic.org,*5y*,*gimy*,*tkznp*,*czzy*,*ikandy*,*libvio*
hostname=m.nivod4.tv, *.freeok.*, *netflix*, *bdys*,*cupfox*,*cokemv*,*pornhub.com,*lezhutv*,*bimi*,18comic.org,*5y*,*gimy*,*tkznp*,*czzy*,*ikandy*,*libvio*
# > 16 泥巴影视[网页优化]@Adblock4limbo - 网站地址https://m.nivod4.tv
^https?:\/\/.*nivod.*\/($|[0-9a-zA-Z=_/-]+\.html) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/nivod.js
# > 15 FreeOk[网页优化]@ddgksf2013 - 网站地址https://www.freeok.vip
^https?:\/\/www\.freeok\.vip(\/$|\/[0-9a-zA-Z=_/-]+\.html$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/freeok.js
# > 08 FreeOk[网页优化]@ddgksf2013 - 网站地址https://www.freeok.vip
^https?:\/\/www\.freeok\.(vip|pro)(\/$|\/[0-9a-zA-Z=_/-]+\.html$) url script-response-body https://raw.githubusercontent.com/ddgksf2013/Scripts/master/adguard.js
# > 14 奈飞鸭[网页优化]@ddgksf2013 - 网站地址https://yanetflix.com [未测试]
^https?:\/\/.*netflix.*\/($|[0-9a-zA-Z=_/-]+\.html$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/netflix.js
# > 13 哔嘀影视[网页优化]@ddgksf2013 - 网站地址https://www.bdys01.com
# > 07 哔嘀影视[网页优化]@ddgksf2013 - 网站地址https://www.bdys01.com
^https?:\/\/.*bdys.*com\/($|([a-z]+)\/(play\/)?\d+.*$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/bdys.js
# > 12 茶杯狐[网页优化]@ddgksf2013 - 网站地址https://cupfox.app
# > 06 茶杯狐[网页优化]@ddgksf2013 - 网站地址https://cupfox.app
^https?:/\/.*cupfox\.app\/($|[\u4E00-\u9FFFa-zA-Z0-9%=_/-]+$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/cupbox.js
# > 11 Cokemv[网页优化]@ddgksf2013 - 网站地址https://cokemv.me
^https?:/\/cokemv\.me\/($|vod.*$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/cokemv.js
# > 10 PornHub[网页优化]@ddgksf2013 - 网站地址https://cn.pornhub.com
# > 05 PornHub[网页优化]@ddgksf2013 - 网站地址https://cn.pornhub.com
^https:\/\/(cn|www)\.pornhub\.com\/_xa\/ads url reject-dict
^https?:/\/(cn|www)\.pornhub\.com\/($|(view|video).*$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/pornhub.js
# > 09 LeZhu[网页优化]@ddgksf2013 - 网站地址http://www.lezhutv.com
^https?:/\/.*lezhutv\.com\/($|(type|detail|play|index).*$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/lezhu.js
# > 08 Bimi[网页优化]@ddgksf2013 - 网站地址https://www.bimi.net
# > 04 Bimi[网页优化]@ddgksf2013 - 网站地址https://www.bimi.net
^https?:/\/.*bimi.*net\/($|(vodshow|bangumi|type)\/[0-9a-z-\/]+\/$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/bimi.js
# > 07 禁漫天堂[网页优化]@ddgksf2013 - 网站地址https://18comic.org
# > 03 禁漫天堂[网页优化]@ddgksf2013 - 网站地址https://18comic.org
^https?:\/\/.*18comic\.org\/($|(album|photo).*$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/18comic.js
# > 06 555影视[网页优化]@ddgksf2013 - 网站地址https://555yy6.com
^https?:\/\/.*5y.*\/($|[0-9a-zA-Z=_/-]+\.html$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/555.js
# > 05 剧迷[网页优化]@ddgksf2013 - 网站地址https://gimys.app
# > 02 剧迷[网页优化]@ddgksf2013 - 网站地址https://gimys.app
^https?:\/\/.*gimy.*\/($|[0-9a-zA-Z=_/-]+\.html$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/gimytv.js
# > 04 天空影视[网页优化]@ddgksf2013 - 网站地址https://tkznp.com/ [未测试]
^https?:\/\/.*tkznp.*com\/($|[0-9a-zA-Z=_/-]+\.html$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/tkys.js
# > 03 厂长电影[网页优化]@ddgksf2013 - 网站地址https://czzy.art/
# > 01 厂长电影[网页优化]@ddgksf2013 - 网站地址https://czzy.art/
^https?:\/\/.*czzy.*\/($|\?btwaf=\w+$|[0-9a-zA-Z=_/-]+\.html) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/qianoo.js
# =========== 不维护或网站已关服 =========== #
# > 08 Cokemv[网页优化]@ddgksf2013 - 网站地址https://cokemv.me
^https?:/\/cokemv\.me\/($|vod.*$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/cokemv.js
# > 07 555影视[网页优化]@ddgksf2013 - 网站地址https://555yy6.com
^https?:\/\/.*5y.*\/($|[0-9a-zA-Z=_/-]+\.html$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/555.js
# > 06 泥巴影视[网页优化]@Adblock4limbo - 网站地址https://m.nivod4.tv
^https?:\/\/.*nivod.*\/($|[0-9a-zA-Z=_/-]+\.html) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/nivod.js
# > 05 奈飞鸭[网页优化]@ddgksf2013 - 网站地址https://yanetflix.com
^https?:\/\/.*netflix.*\/($|[0-9a-zA-Z=_/-]+\.html$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/netflix.js
# > 04 LeZhu[网页优化]@ddgksf2013 - 网站地址http://www.lezhutv.com
^https?:/\/.*lezhutv\.com\/($|(type|detail|play|index).*$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/lezhu.js
# > 03 天空影视[网页优化]@ddgksf2013 - 网站地址https://tkznp.com/
^https?:\/\/.*tkznp.*com\/($|[0-9a-zA-Z=_/-]+\.html$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/tkys.js
# > 02 真不卡[网页优化]@ddgksf2013 - 网站地址https://www.ikandy.fun
^https?:\/\/.*ikandy.*fun\/($|(vod|top).*$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/zhenbuka.js
# > 01 libvio[网页优化]@ddgksf2013 - 网站地址https://www.libvio.me
^https?:\/\/.*libvio.*me\/($|[0-9a-zA-Z=_/-]+\.html$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/libvio.js
^https?:\/\/.*libvio.*me\/($|[0-9a-zA-Z=_/-]+\.html$) url script-response-body https://cdn.jsdelivr.net/gh/ddgksf2013/Scripts@master/libvio.js

View File

@ -1,16 +1,35 @@
# > Credit
# @Choler & @DivineEngine & @app2smile
# > Feature
# - 删除 Youtube (Music) 广告
# - 删除 Youtube 底部 上传 按钮 & Youtube Music 底部选段、升级按钮
# + 增加 Youtube 画中画(PIP)
# + 增加 Youtube 字幕翻译 (Thanks @VirgilClyne)
# + 增加 Youtube (Music) 后台播放
# + 增加 Youtube Music 歌词翻译
# > Note
# Youtube 画中画和后台播放分别在客户端内关闭
# - 设置 -> 通用 -> 画中画
# - 设置 -> 后台播放和下载 -> 后台播放
# 该模块已足够全面,无需其他规则混用,防止重写规则被破坏
# 不支持 Mock 的客户端可以用 reject-200/reject-img 替代
hostname = -redirector*.googlevideo.com,*.googlevideo.com,www.youtube.com,s.youtube.com,youtubei.googleapis.com
# ======= 视频广告请求 ======= #
(^https?:\/\/[\w-]+\.googlevideo\.com\/(?!dclk_video_ads).+?)&ctier=L(&.+?),ctier,(.+) url 302 $1$2$3
^https?:\/\/[\w-]+\.googlevideo\.com\/(?!(dclk_video_ads|videoplayback\?)).+&oad url reject-200
^https?:\/\/[\w-]+\.googlevideo\.com\/initplayback.+&oad url reject-200
# ======= 视频PIP|后台播放|瀑布流|搜索页|播放页|短视频|贴片广告 ======= #
^https:\/\/youtubei\.googleapis\.com\/youtubei\/v1\/(browse|next|player|reel\/reel_watch_sequence)\? url script-request-body https://raw.githubusercontent.com/Maasea/sgmodule/master/Script/Youtube/dist/youtube.request.beta.js
^https:\/\/youtubei\.googleapis\.com\/youtubei\/v1\/(browse|next|player|search|reel\/reel_watch_sequence|guide|account\/get_setting)\? url script-response-body https://raw.githubusercontent.com/Maasea/sgmodule/master/Script/Youtube/dist/youtube.response.beta.js
^https:\/\/youtubei\.googleapis\.com\/youtubei\/v1\/(browse|next|player|reel\/reel_watch_sequence)\? url script-request-body https://cdn.jsdelivr.net/gh/Maasea/sgmodule@master/Script/Youtube/dist/youtube.request.beta.js
^https:\/\/youtubei\.googleapis\.com\/youtubei\/v1\/(browse|next|player|search|reel\/reel_watch_sequence|guide|account\/get_setting)\? url script-response-body https://cdn.jsdelivr.net/gh/Maasea/sgmodule@master/Script/Youtube/dist/youtube.response.beta.js
# ======= 通用广告请求 ======= #
^https?:\/\/(www|s)\.youtube\.com\/api\/stats\/ads url reject-200
^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking) url reject-200
^https?:\/\/s\.youtube\.com\/api\/stats\/qoe\?adcontext url reject-200
^https?:\/\/s\.youtube\.com\/api\/stats\/qoe\?adcontext url reject-200
^https?:\/\/youtubei\.googleapis\.com\/youtubei\/v\d\/player\/ad_break url reject

View File

@ -1,4 +1,4 @@
const version = 'V2.0.117';
const version = 'V2.0.118';
let body = $response.body;
if (body) {
@ -162,7 +162,7 @@ if (body) {
let v = JSON.parse(body),
$ = new Set([
396, 397, 398, 399, 407, 410, 402, 404, 425, 426, 427, 428, 430,
432, 433, 434, 494, 495, 496, 497, 500, 501,
432, 433, 434, 494, 495, 496, 497, 500, 501, 2830,
]);
v.data.sections_v2.forEach((t, i) => {
let a = t.items.filter((t) => $.has(t.id));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,22 +1,35 @@
let persisVal = read("UnblockURLinWeChat");
let useCache = persisVal.useCache === "true"; //是否在微信中用快照显示被封禁的链接
let forceRedirect = persisVal.forceRedirect === "true"; //是否在微信中进行强制重定向,允许的情况下可能出现循环重定向
let wechatExportKey = persisVal.wechatExportKey || ""; //微信的一个 key暂未研究如何生成测试中仅 macOS 微信打开链接跳转浏览器时会缺失,导致无法解析原始链接
if (typeof $argument != "undefined") {
let arg = Object.fromEntries($argument.split("&").map((item) => item.split("=")));
useCache = arg.useCache === "true";
forceRedirect = arg.forceRedirect === "ture";
let persisVal = read('UnblockURLinWeChat');
let useCache = persisVal.useCache === 'true'; //是否在微信中用快照显示被封禁的链接
let forceRedirect = persisVal.forceRedirect === 'true'; //是否在微信中进行强制重定向,允许的情况下可能出现循环重定向
let wechatExportKey = persisVal.wechatExportKey || ''; //微信的一个 key暂未研究如何生成测试中仅 macOS 微信打开链接跳转浏览器时会缺失,导致无法解析原始链接
if (typeof $argument != 'undefined') {
let arg = Object.fromEntries(
$argument.split('&').map((item) => item.split('='))
);
useCache = arg.useCache === 'true';
forceRedirect = arg.forceRedirect === 'ture';
}
const respBody = $response.body;
//const cacheURL = "https://webcache.googleusercontent.com/search?q=cache:";
const cacheURL = "https://web.archive.org/web/20991231999999/";
const alipayScheme = "alipays://platformapi/startapp?appId=20000067&url=";
const isQuanX = typeof $notify != "undefined";
const isSurgeiOS = typeof $utils != "undefined" && $environment.system == "iOS";
const isLooniOS = typeof $loon != "undefined" && /iPhone/.test($loon);
const redirectStatus = isQuanX ? "HTTP/1.1 302 Temporary Redirect" : 302;
const cacheURL = 'https://web.archive.org/web/20991231999999/';
const alipayScheme = 'alipays://platformapi/startapp?appId=20000067&url=';
const isQuanX = typeof $notify != 'undefined';
const isSurgeiOS =
'undefined' !== typeof $environment &&
$environment['surge-version'] &&
$environment.system == 'iOS';
const isLooniOS = typeof $loon != 'undefined' && /iPhone/.test($loon);
const isStashiOS =
'undefined' !== typeof $environment &&
$environment['stash-version'] &&
$environment.system == 'iOS';
const isShadowrocket = 'undefined' !== typeof $rocket;
const isLanceX = 'undefined' != typeof $native;
const redirectStatus = isQuanX ? 'HTTP/1.1 302 Temporary Redirect' : 302;
const cgiDataReg = /var cgiData = ([\s\S]*);\s*<\/script>/;
let cgiData = JSON.parse(cgiDataReg.exec(respBody)[1].replace(/\\/g, ""));
let cgiData = JSON.parse(cgiDataReg.exec(respBody)[1].replace(/\\/g, ''));
// HTML entities by https://github.com/mathiasbynens/he
// prettier-ignore
@ -26,120 +39,147 @@ let cgiData = JSON.parse(cgiDataReg.exec(respBody)[1].replace(/\\/g, ""));
// prettier-ignore
!function(t,n){var r,e;"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(r=t.Base64,(e=n()).noConflict=function(){return t.Base64=r,e},t.Meteor&&(Base64=e),t.Base64=e)}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:this,(function(){"use strict";var t,n="3.7.2",r="function"==typeof atob,e="function"==typeof btoa,o="function"==typeof Buffer,u="function"==typeof TextDecoder?new TextDecoder:void 0,i="function"==typeof TextEncoder?new TextEncoder:void 0,f=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),c=(t={},f.forEach((function(n,r){return t[n]=r})),t),a=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,d=String.fromCharCode.bind(String),s="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(t,n){return void 0===n&&(n=function(t){return t}),new Uint8Array(Array.prototype.slice.call(t,0).map(n))},l=function(t){return t.replace(/=/g,"").replace(/[+\/]/g,(function(t){return"+"==t?"-":"_"}))},h=function(t){return t.replace(/[^A-Za-z0-9\+\/]/g,"")},p=function(t){for(var n,r,e,o,u="",i=t.length%3,c=0;c<t.length;){if((r=t.charCodeAt(c++))>255||(e=t.charCodeAt(c++))>255||(o=t.charCodeAt(c++))>255)throw new TypeError("invalid character found");u+=f[(n=r<<16|e<<8|o)>>18&63]+f[n>>12&63]+f[n>>6&63]+f[63&n]}return i?u.slice(0,i-3)+"===".substring(i):u},y=e?function(t){return btoa(t)}:o?function(t){return Buffer.from(t,"binary").toString("base64")}:p,A=o?function(t){return Buffer.from(t).toString("base64")}:function(t){for(var n=[],r=0,e=t.length;r<e;r+=4096)n.push(d.apply(null,t.subarray(r,r+4096)));return y(n.join(""))},b=function(t,n){return void 0===n&&(n=!1),n?l(A(t)):A(t)},g=function(t){if(t.length<2)return(n=t.charCodeAt(0))<128?t:n<2048?d(192|n>>>6)+d(128|63&n):d(224|n>>>12&15)+d(128|n>>>6&63)+d(128|63&n);var n=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return d(240|n>>>18&7)+d(128|n>>>12&63)+d(128|n>>>6&63)+d(128|63&n)},B=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,x=function(t){return t.replace(B,g)},C=o?function(t){return Buffer.from(t,"utf8").toString("base64")}:i?function(t){return A(i.encode(t))}:function(t){return y(x(t))},m=function(t,n){return void 0===n&&(n=!1),n?l(C(t)):C(t)},v=function(t){return m(t,!0)},U=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,F=function(t){switch(t.length){case 4:var n=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return d(55296+(n>>>10))+d(56320+(1023&n));case 3:return d((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return d((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},w=function(t){return t.replace(U,F)},S=function(t){if(t=t.replace(/\s+/g,""),!a.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));for(var n,r,e,o="",u=0;u<t.length;)n=c[t.charAt(u++)]<<18|c[t.charAt(u++)]<<12|(r=c[t.charAt(u++)])<<6|(e=c[t.charAt(u++)]),o+=64===r?d(n>>16&255):64===e?d(n>>16&255,n>>8&255):d(n>>16&255,n>>8&255,255&n);return o},E=r?function(t){return atob(h(t))}:o?function(t){return Buffer.from(t,"base64").toString("binary")}:S,D=o?function(t){return s(Buffer.from(t,"base64"))}:function(t){return s(E(t),(function(t){return t.charCodeAt(0)}))},R=function(t){return D(T(t))},z=o?function(t){return Buffer.from(t,"base64").toString("utf8")}:u?function(t){return u.decode(D(t))}:function(t){return w(E(t))},T=function(t){return h(t.replace(/[-_]/g,(function(t){return"-"==t?"+":"/"})))},Z=function(t){return z(T(t))},j=function(t){return{value:t,enumerable:!1,writable:!0,configurable:!0}},I=function(){var t=function(t,n){return Object.defineProperty(String.prototype,t,j(n))};t("fromBase64",(function(){return Z(this)})),t("toBase64",(function(t){return m(this,t)})),t("toBase64URI",(function(){return m(this,!0)})),t("toBase64URL",(function(){return m(this,!0)})),t("toUint8Array",(function(){return R(this)}))},O=function(){var t=function(t,n){return Object.defineProperty(Uint8Array.prototype,t,j(n))};t("toBase64",(function(t){return b(this,t)})),t("toBase64URI",(function(){return b(this,!0)})),t("toBase64URL",(function(){return b(this,!0)}))},P={version:n,VERSION:"3.7.2",atob:E,atobPolyfill:S,btoa:y,btoaPolyfill:p,fromBase64:Z,toBase64:m,encode:m,encodeURI:v,encodeURL:v,utob:x,btou:w,decode:Z,isValid:function(t){if("string"!=typeof t)return!1;var n=t.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(n)||!/[^\s0-9a-zA-Z\-_]/.test(n)},fromUint8Array:b,toUint8Array:R,extendString:I,extendUint8Array:O,extendBuiltins:function(){I(),O()},Base64:{}};return Object.keys(P).forEach((function(t){return P.Base64[t]=P[t]})),P}));
if (cgiData.type === "gray" || cgiData.type === "newgray" || cgiData.type === "empty") {
let trueURL = he.decode(
`${cgiData.hasOwnProperty("url") ? cgiData.url : /http(.*)/.exec(cgiData.desc)[0]}`
if (
cgiData.type === 'gray' ||
cgiData.type === 'newgray' ||
cgiData.type === 'empty'
) {
let trueURL = he.decode(
`${
cgiData.hasOwnProperty('url')
? cgiData.url
: /http(.*)/.exec(cgiData.desc)[0]
}`
);
trueURL = trueURL.indexOf('http') == 0 ? trueURL : 'http://' + trueURL;
if (/qr\.alipay/.test(trueURL)) {
notify(
'',
'点击跳转到支付宝打开',
trueURL,
alipayScheme + encodeURIComponent(trueURL)
);
trueURL = trueURL.indexOf("http") == 0 ? trueURL : "http://" + trueURL;
if (/qr\.alipay/.test(trueURL)) {
notify("", "点击跳转到支付宝打开", trueURL, alipayScheme + encodeURIComponent(trueURL));
$done({});
} else {
if (trueURL.includes('https://spotify.link')) {
const pattern = /\$full_url=([^&]+)/;
trueURL = decodeURIComponent(trueURL).match(pattern)[1];
}
notify('', '点击跳转到浏览器打开', trueURL, trueURL);
if (forceRedirect) {
let redirect = {
status: redirectStatus,
headers: {
Location: trueURL,
},
};
if (isQuanX) redirect.body = respBody;
$done(redirect);
} else $done({});
}
} else if (cgiData.type === 'block') {
!(async () => {
let url = cgiData.btns[0].url.replace('newreadtemplate', 'redirecthelpcgi');
if (!/exportkey=(.+)/.test(url)) {
if (wechatExportKey) {
url += wechatExportKey;
} else {
$done({});
} else {
notify("", "点击跳转到浏览器打开", trueURL, trueURL);
if (forceRedirect) {
}
}
await get(url).then((resp) => {
let obj = JSON.parse(resp.body);
if (obj.hasOwnProperty('btns')) {
let trueURL = decodeURIComponent(
/url=(.*)/.exec(obj.btns[0].url)[1]
).replace(/&block_?type(.*)/, '');
trueURL = trueURL.includes('.') ? trueURL : Base64.decode(trueURL);
trueURL = trueURL.indexOf('http') == 0 ? trueURL : 'http://' + trueURL;
if (!trueURL.includes('web.archive.org/web')) {
notify('', '点击跳转到浏览器打开', trueURL, trueURL);
if (useCache) {
let cacheLink = cacheURL + trueURL;
let redirect = {
status: redirectStatus,
headers: {
Location: trueURL,
},
status: redirectStatus,
headers: {
Location: cacheLink,
},
};
if (isQuanX) redirect.body = respBody;
$done(redirect);
} else $done({});
}
} else if (cgiData.type === "block") {
!(async () => {
let url = cgiData.btns[0].url.replace("newreadtemplate", "redirecthelpcgi");
if (!/exportkey=(.+)/.test(url)) {
if (wechatExportKey) {
url += wechatExportKey;
} else {
$done({});
}
}
await get(url).then((resp) => {
let obj = JSON.parse(resp.body);
if (obj.hasOwnProperty("btns")) {
let trueURL = decodeURIComponent(/url=(.*)/.exec(obj.btns[0].url)[1]).replace(
/&block_?type(.*)/,
""
);
trueURL = trueURL.includes(".") ? trueURL : Base64.decode(trueURL);
trueURL = trueURL.indexOf("http") == 0 ? trueURL : "http://" + trueURL;
if (!trueURL.includes("web.archive.org/web")) {
notify("", "点击跳转到浏览器打开", trueURL, trueURL);
if (useCache) {
let cacheLink = cacheURL + trueURL;
let redirect = {
status: redirectStatus,
headers: {
Location: cacheLink,
},
};
if (isQuanX) redirect.body = respBody;
$done(redirect);
} else {
$done({});
}
} else {
$done({});
}
resolve(trueURL);
}
} else {
$done({});
resolve();
});
})();
}
} else {
$done({});
}
resolve(trueURL);
}
$done({});
resolve();
});
})();
} else {
$done({});
$done({});
}
function notify(title = "", subtitle = "", content = "", open_url) {
if (isQuanX && /iOS/.test($environment.version)) {
let opts = {};
if (open_url) opts["open-url"] = open_url;
if (JSON.stringify(opts) == "{}") {
$notify(title, subtitle, content);
} else {
$notify(title, subtitle, content, opts);
}
} else if (isSurgeiOS) {
let opts = {};
if (open_url) opts["url"] = open_url;
if (JSON.stringify(opts) == "{}") {
$notification.post(title, subtitle, content);
} else {
$notification.post(title, subtitle, content, opts);
}
} else if (isLooniOS) {
let opts = {};
if (open_url) opts["openUrl"] = open_url;
if (JSON.stringify(opts) == "{}") {
$notification.post(title, subtitle, content);
} else {
$notification.post(title, subtitle, content, opts);
}
function notify(title = '', subtitle = '', content = '', open_url) {
if (isQuanX && /iOS/.test($environment.version)) {
let opts = {};
if (open_url) opts['open-url'] = open_url;
if (JSON.stringify(opts) == '{}') {
$notify(title, subtitle, content);
} else {
$notify(title, subtitle, content, opts);
}
} else if (isSurgeiOS || isStashiOS || isLanceX) {
let opts = {};
if (open_url) opts['url'] = open_url;
if (JSON.stringify(opts) == '{}') {
$notification.post(title, subtitle, content);
} else {
$notification.post(title, subtitle, content, opts);
}
} else if (isLooniOS) {
let opts = {};
if (open_url) opts['openUrl'] = open_url;
if (JSON.stringify(opts) == '{}') {
$notification.post(title, subtitle, content);
} else {
$notification.post(title, subtitle, content, opts);
}
} else if (isShadowrocket) {
if (open_url) {
$notification.post(title, subtitle, content, open_url);
} else {
$notification.post(title, subtitle, content);
}
}
}
function get(options) {
if (isQuanX) {
if (typeof options == "string") options = { url: options, method: "GET" };
return $task.fetch(options);
} else {
return new Promise((resolve, reject) => {
$httpClient.get(options, (err, response, body) => {
if (err) reject(err);
else resolve({ statusCode: response.status, headers: response.headers, body });
});
});
}
if (isQuanX) {
if (typeof options == 'string') options = { url: options, method: 'GET' };
return $task.fetch(options);
} else {
return new Promise((resolve, reject) => {
$httpClient.get(options, (err, response, body) => {
if (err) reject(err);
else
resolve({
statusCode: response.status,
headers: response.headers,
body,
});
});
});
}
}
function read(key) {
if (typeof $notify != "undefined") {
return JSON.parse($prefs.valueForKey(key) || "{}");
} else {
return JSON.parse($persistentStore.read(key) || "{}");
}
}
if (typeof $notify != 'undefined') {
return JSON.parse($prefs.valueForKey(key) || '{}');
} else {
return JSON.parse($persistentStore.read(key) || '{}');
}
}