mirror of
https://gitlab.com/SukkaW/ruleset.skk.moe.git
synced 2025-12-31 09:30:25 +00:00
deploy: SukkaW/Surge@c85722c848
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
########################################
|
||||
# Sukka's Ruleset - Reject Base
|
||||
# Last Updated: 2023-12-05T06:06:25.383Z
|
||||
# Size: 169741
|
||||
# Last Updated: 2023-12-05T06:08:11.347Z
|
||||
# Size: 169740
|
||||
# License: AGPL 3.0
|
||||
# Homepage: https://ruleset.skk.moe
|
||||
# GitHub: https://github.com/SukkaW/Surge
|
||||
@@ -26642,7 +26642,6 @@ ads.fetnet.net
|
||||
+.tracking.fff.com.vn
|
||||
+.www2.fft.org.uk
|
||||
+.fgdtln.xyz
|
||||
+.hub.fghtem.com
|
||||
+.fgnzdb.xyz
|
||||
+.fgo22.info
|
||||
+.fgttbz.xyz
|
||||
@@ -169784,3 +169783,4 @@ data-mistat-india-xiaomi-com-1248219176.ap-south-1.elb.amazonaws.com
|
||||
+.jshjshshjshsjhsjshssfhsjssksjskjsksjkssksjkshjsksksjksjs.us-east-1.linodeobjects.com
|
||||
+.na2-docusign-net-envelope-benefit-assessment-pacakge-review.nyc3.digitaloceanspaces.com
|
||||
################# END ###################
|
||||
################
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
########################################
|
||||
# Sukka's Ruleset - Speedtest Domains
|
||||
# Last Updated: 2023-12-05T06:06:28.495Z
|
||||
# Size: 878
|
||||
# Last Updated: 2023-12-05T06:08:14.860Z
|
||||
# Size: 874
|
||||
# License: AGPL 3.0
|
||||
# Homepage: https://ruleset.skk.moe
|
||||
# GitHub: https://github.com/SukkaW/Surge
|
||||
@@ -13,6 +13,7 @@ speedtest1.mk.de
|
||||
speedtest1.sc.189.cn
|
||||
speedtest-sg.cbn.id
|
||||
st.mow.gin.ru
|
||||
speedtest.hep.gg
|
||||
speedtest.kko.me
|
||||
speedtest-cbr.cdn.on.net
|
||||
mia-1.speed.pfm.gg
|
||||
@@ -31,7 +32,6 @@ speedtest.asvt.ru
|
||||
+.srvr.bell.ca
|
||||
speed.data.cr
|
||||
ookla-speedtest.fsr.com
|
||||
speedtest.hay.net
|
||||
+.speedtest.i3d.net
|
||||
speedtest.krhs.de
|
||||
speedtest.link.bm
|
||||
@@ -39,6 +39,7 @@ speed.uk.lon.m247.ro
|
||||
ookla.max.srl
|
||||
nl-ams-gbs-mtn-speedtest-server-01.mtn.com
|
||||
uk-lon-tcy-mtn-speedtest-server-01.mtn.com
|
||||
speedtest.nrbn.ca
|
||||
s1.pfst.ru
|
||||
lax01-b.ookla.rcp.net
|
||||
speedtest.rit.edu
|
||||
@@ -56,7 +57,6 @@ speedtest.ct.co.cr
|
||||
speedtest3.dacor.de
|
||||
speedtest.dcs1.biz
|
||||
uw1a.ookla-speedtests.e2ro.com
|
||||
speedtest01.ehtel.ca
|
||||
speedtest-dc08.enzu.com
|
||||
+.fast.com
|
||||
speedtest.nik.fiber.nl
|
||||
@@ -205,20 +205,19 @@ stguelph.rogers.com
|
||||
stlondon.rogers.com
|
||||
stmilton.rogers.com
|
||||
sttoronto.rogers.com
|
||||
stvaughan.rogers.com
|
||||
stbrampton.rogers.com
|
||||
sthamilton.rogers.com
|
||||
stkingcity.rogers.com
|
||||
stoakville.rogers.com
|
||||
ststthomas.rogers.com
|
||||
stwaterloo.rogers.com
|
||||
stbrantford.rogers.com
|
||||
stetobicoke.rogers.com
|
||||
stkitchener.rogers.com
|
||||
stnorthyork.rogers.com
|
||||
ststratford.rogers.com
|
||||
stwoodstock.rogers.com
|
||||
stmississauga.rogers.com
|
||||
storangeville.rogers.com
|
||||
stscarborough.rogers.com
|
||||
stguelphwireless.rogers.com
|
||||
stlondonwireless.rogers.com
|
||||
stmiltonwireless.rogers.com
|
||||
@@ -230,14 +229,13 @@ sthamiltonwireless.rogers.com
|
||||
ststthomaswireless.rogers.com
|
||||
stbrantfordwireless.rogers.com
|
||||
stkitchenerwireless.rogers.com
|
||||
stnorthyorkwireless.rogers.com
|
||||
ststratfordwireless.rogers.com
|
||||
stwoodstockwireless.rogers.com
|
||||
stgeorgetownwireless.rogers.com
|
||||
stleamingtonwireless.rogers.com
|
||||
stmississaugawireless.rogers.com
|
||||
storangevillewireless.rogers.com
|
||||
ststcatharineswireless.rogers.com
|
||||
stsaultstemariewireless.rogers.com
|
||||
stwellandpelhamwireless.rogers.com
|
||||
dalspeedtest.rtatel.com
|
||||
speedtest-server-lax.starry.com
|
||||
@@ -361,7 +359,6 @@ de-bln2-ookla-01.wemacom.net
|
||||
de-ffm1-ookla-01.wemacom.net
|
||||
speedtest.westcall.ru
|
||||
speedtest.wifi.net.tr
|
||||
sp1.wightman.ca
|
||||
speed1.wirsnet.com
|
||||
speedtest01.wowrack.com
|
||||
speedtest.lax01.xfernet.net
|
||||
@@ -398,7 +395,6 @@ acibadem.speedtest.gibir.net.tr
|
||||
sjdm-speedtest.globe.com.ph
|
||||
speed.golddata.net
|
||||
speedtest.helpmert.com
|
||||
speedtest.idnet.net.br
|
||||
speedtest.syd.infininet.au
|
||||
speedtest.eu.kamatera.com
|
||||
speedtest.eu-lo.kamatera.com
|
||||
@@ -477,13 +473,13 @@ speedtest-sg.napinfo.co.id
|
||||
stguelph.netcrawler.ca
|
||||
stlondon.netcrawler.ca
|
||||
speedtest.netcrawler.ca
|
||||
stvaughan.netcrawler.ca
|
||||
stbrampton.netcrawler.ca
|
||||
sthamilton.netcrawler.ca
|
||||
stkingcity.netcrawler.ca
|
||||
stwaterloo.netcrawler.ca
|
||||
stetobicoke.netcrawler.ca
|
||||
stnorthyork.netcrawler.ca
|
||||
stmississauga.netcrawler.ca
|
||||
stscarborough.netcrawler.ca
|
||||
netgearsj.com
|
||||
speedtest.netgeartec.tk
|
||||
speedtest-syr.northland.net
|
||||
@@ -492,14 +488,12 @@ speedtest.us.openinfra.com
|
||||
speedgauge2.optonline.net
|
||||
speedtest-lax.perfectip.net
|
||||
speedtest.plexicomm.net
|
||||
stna.pplink.net.br
|
||||
speedtestde.pvdatanet.com
|
||||
speedtestus.pvdatanet.com
|
||||
speedtest.ramtek.net.tr
|
||||
speedtest1.net.rochester.edu
|
||||
mfl.speedtest.sbcglobal.net
|
||||
speedtest.scotnet.co.uk
|
||||
speed.sdmnet.com.br
|
||||
speedtest.seaside.ns.ca
|
||||
ookla.la.ca.sharktech.net
|
||||
speedtest.ams.sharktech.net
|
||||
@@ -558,12 +552,9 @@ speedtest.lax.hivelocity.net
|
||||
speedtest.mia.hivelocity.net
|
||||
speedtest.nyc.hivelocity.net
|
||||
speedtest-la.hostsailor.com
|
||||
speedtest1.hurontel.on.ca
|
||||
speedtest2.hurontel.on.ca
|
||||
speedlon.hyperoptic.com
|
||||
speedtest-sg.iconpln.net.id
|
||||
speedtest.ip-projects.de
|
||||
ts.ipernet.net.br
|
||||
speedtest.jvswifi.com.br
|
||||
speedtest-hob.launtel.net.au
|
||||
speedtest-syd.launtel.net.au
|
||||
@@ -573,6 +564,7 @@ speedtest-melb.launtel.net.au
|
||||
nsw.speedtest.leaptel.com.au
|
||||
qld.speedtest.leaptel.com.au
|
||||
vic.speedtest.leaptel.com.au
|
||||
speedtest.localhosts.ltd
|
||||
speedtest.meerfarbig.net
|
||||
sig-speedtest.moratelindo.io
|
||||
f1.netfast.com.br
|
||||
@@ -770,6 +762,8 @@ hkthspeedtest02.telstraglobal.net
|
||||
test.turuncunet.com.tr
|
||||
speedtest.unitelecom.net.br
|
||||
velocidade.vlctelecom.com.br
|
||||
speedtest.wbstelecom.com.br
|
||||
speedtestsantarem.zumtelecom.com.br
|
||||
ookla.actionevoce.com.br
|
||||
londres.speedtest.angolacables.co.ao
|
||||
speedtest1.atlantisnet.com.tr
|
||||
@@ -836,6 +830,7 @@ speedtest-sydney.macquarietelecom.com
|
||||
speedtest-brisbane.macquarietelecom.com
|
||||
speedtest-melbourne.macquarietelecom.com
|
||||
st2.octopustelecom.co.uk
|
||||
speedtest.redevisualnet.com.br
|
||||
speedtest.seveninternet.com.br
|
||||
velocimetro.speednetworks.com.br
|
||||
speed-server3.summit-broadband.com
|
||||
@@ -885,5 +880,6 @@ aragonnetspeedtest.com.br
|
||||
test.infoconnecttelecom.com.br
|
||||
servidor.nuevanetbandalarga.com.br
|
||||
speedtestalmtelecom.com.br
|
||||
speedtest.topnettelecomservicos.com.br
|
||||
speedtestmera.vs.mythic-beasts.com
|
||||
################# END ###################
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
########################################
|
||||
# Sukka's Ruleset - Reject Base
|
||||
# Last Updated: 2023-12-05T06:06:25.383Z
|
||||
# Size: 169741
|
||||
# Last Updated: 2023-12-05T06:08:11.347Z
|
||||
# Size: 169740
|
||||
# License: AGPL 3.0
|
||||
# Homepage: https://ruleset.skk.moe
|
||||
# GitHub: https://github.com/SukkaW/Surge
|
||||
@@ -26642,7 +26642,6 @@ ads.fetnet.net
|
||||
.tracking.fff.com.vn
|
||||
.www2.fft.org.uk
|
||||
.fgdtln.xyz
|
||||
.hub.fghtem.com
|
||||
.fgnzdb.xyz
|
||||
.fgo22.info
|
||||
.fgttbz.xyz
|
||||
@@ -169784,3 +169783,4 @@ data-mistat-india-xiaomi-com-1248219176.ap-south-1.elb.amazonaws.com
|
||||
.jshjshshjshsjhsjshssfhsjssksjskjsksjkssksjkshjsksksjksjs.us-east-1.linodeobjects.com
|
||||
.na2-docusign-net-envelope-benefit-assessment-pacakge-review.nyc3.digitaloceanspaces.com
|
||||
################# END ###################
|
||||
###############
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
########################################
|
||||
# Sukka's Ruleset - Speedtest Domains
|
||||
# Last Updated: 2023-12-05T06:06:28.495Z
|
||||
# Size: 878
|
||||
# Last Updated: 2023-12-05T06:08:14.860Z
|
||||
# Size: 874
|
||||
# License: AGPL 3.0
|
||||
# Homepage: https://ruleset.skk.moe
|
||||
# GitHub: https://github.com/SukkaW/Surge
|
||||
@@ -13,6 +13,7 @@ speedtest1.mk.de
|
||||
speedtest1.sc.189.cn
|
||||
speedtest-sg.cbn.id
|
||||
st.mow.gin.ru
|
||||
speedtest.hep.gg
|
||||
speedtest.kko.me
|
||||
speedtest-cbr.cdn.on.net
|
||||
mia-1.speed.pfm.gg
|
||||
@@ -31,7 +32,6 @@ speedtest.asvt.ru
|
||||
.srvr.bell.ca
|
||||
speed.data.cr
|
||||
ookla-speedtest.fsr.com
|
||||
speedtest.hay.net
|
||||
.speedtest.i3d.net
|
||||
speedtest.krhs.de
|
||||
speedtest.link.bm
|
||||
@@ -39,6 +39,7 @@ speed.uk.lon.m247.ro
|
||||
ookla.max.srl
|
||||
nl-ams-gbs-mtn-speedtest-server-01.mtn.com
|
||||
uk-lon-tcy-mtn-speedtest-server-01.mtn.com
|
||||
speedtest.nrbn.ca
|
||||
s1.pfst.ru
|
||||
lax01-b.ookla.rcp.net
|
||||
speedtest.rit.edu
|
||||
@@ -56,7 +57,6 @@ speedtest.ct.co.cr
|
||||
speedtest3.dacor.de
|
||||
speedtest.dcs1.biz
|
||||
uw1a.ookla-speedtests.e2ro.com
|
||||
speedtest01.ehtel.ca
|
||||
speedtest-dc08.enzu.com
|
||||
.fast.com
|
||||
speedtest.nik.fiber.nl
|
||||
@@ -205,20 +205,19 @@ stguelph.rogers.com
|
||||
stlondon.rogers.com
|
||||
stmilton.rogers.com
|
||||
sttoronto.rogers.com
|
||||
stvaughan.rogers.com
|
||||
stbrampton.rogers.com
|
||||
sthamilton.rogers.com
|
||||
stkingcity.rogers.com
|
||||
stoakville.rogers.com
|
||||
ststthomas.rogers.com
|
||||
stwaterloo.rogers.com
|
||||
stbrantford.rogers.com
|
||||
stetobicoke.rogers.com
|
||||
stkitchener.rogers.com
|
||||
stnorthyork.rogers.com
|
||||
ststratford.rogers.com
|
||||
stwoodstock.rogers.com
|
||||
stmississauga.rogers.com
|
||||
storangeville.rogers.com
|
||||
stscarborough.rogers.com
|
||||
stguelphwireless.rogers.com
|
||||
stlondonwireless.rogers.com
|
||||
stmiltonwireless.rogers.com
|
||||
@@ -230,14 +229,13 @@ sthamiltonwireless.rogers.com
|
||||
ststthomaswireless.rogers.com
|
||||
stbrantfordwireless.rogers.com
|
||||
stkitchenerwireless.rogers.com
|
||||
stnorthyorkwireless.rogers.com
|
||||
ststratfordwireless.rogers.com
|
||||
stwoodstockwireless.rogers.com
|
||||
stgeorgetownwireless.rogers.com
|
||||
stleamingtonwireless.rogers.com
|
||||
stmississaugawireless.rogers.com
|
||||
storangevillewireless.rogers.com
|
||||
ststcatharineswireless.rogers.com
|
||||
stsaultstemariewireless.rogers.com
|
||||
stwellandpelhamwireless.rogers.com
|
||||
dalspeedtest.rtatel.com
|
||||
speedtest-server-lax.starry.com
|
||||
@@ -361,7 +359,6 @@ de-bln2-ookla-01.wemacom.net
|
||||
de-ffm1-ookla-01.wemacom.net
|
||||
speedtest.westcall.ru
|
||||
speedtest.wifi.net.tr
|
||||
sp1.wightman.ca
|
||||
speed1.wirsnet.com
|
||||
speedtest01.wowrack.com
|
||||
speedtest.lax01.xfernet.net
|
||||
@@ -398,7 +395,6 @@ acibadem.speedtest.gibir.net.tr
|
||||
sjdm-speedtest.globe.com.ph
|
||||
speed.golddata.net
|
||||
speedtest.helpmert.com
|
||||
speedtest.idnet.net.br
|
||||
speedtest.syd.infininet.au
|
||||
speedtest.eu.kamatera.com
|
||||
speedtest.eu-lo.kamatera.com
|
||||
@@ -477,13 +473,13 @@ speedtest-sg.napinfo.co.id
|
||||
stguelph.netcrawler.ca
|
||||
stlondon.netcrawler.ca
|
||||
speedtest.netcrawler.ca
|
||||
stvaughan.netcrawler.ca
|
||||
stbrampton.netcrawler.ca
|
||||
sthamilton.netcrawler.ca
|
||||
stkingcity.netcrawler.ca
|
||||
stwaterloo.netcrawler.ca
|
||||
stetobicoke.netcrawler.ca
|
||||
stnorthyork.netcrawler.ca
|
||||
stmississauga.netcrawler.ca
|
||||
stscarborough.netcrawler.ca
|
||||
netgearsj.com
|
||||
speedtest.netgeartec.tk
|
||||
speedtest-syr.northland.net
|
||||
@@ -492,14 +488,12 @@ speedtest.us.openinfra.com
|
||||
speedgauge2.optonline.net
|
||||
speedtest-lax.perfectip.net
|
||||
speedtest.plexicomm.net
|
||||
stna.pplink.net.br
|
||||
speedtestde.pvdatanet.com
|
||||
speedtestus.pvdatanet.com
|
||||
speedtest.ramtek.net.tr
|
||||
speedtest1.net.rochester.edu
|
||||
mfl.speedtest.sbcglobal.net
|
||||
speedtest.scotnet.co.uk
|
||||
speed.sdmnet.com.br
|
||||
speedtest.seaside.ns.ca
|
||||
ookla.la.ca.sharktech.net
|
||||
speedtest.ams.sharktech.net
|
||||
@@ -558,12 +552,9 @@ speedtest.lax.hivelocity.net
|
||||
speedtest.mia.hivelocity.net
|
||||
speedtest.nyc.hivelocity.net
|
||||
speedtest-la.hostsailor.com
|
||||
speedtest1.hurontel.on.ca
|
||||
speedtest2.hurontel.on.ca
|
||||
speedlon.hyperoptic.com
|
||||
speedtest-sg.iconpln.net.id
|
||||
speedtest.ip-projects.de
|
||||
ts.ipernet.net.br
|
||||
speedtest.jvswifi.com.br
|
||||
speedtest-hob.launtel.net.au
|
||||
speedtest-syd.launtel.net.au
|
||||
@@ -573,6 +564,7 @@ speedtest-melb.launtel.net.au
|
||||
nsw.speedtest.leaptel.com.au
|
||||
qld.speedtest.leaptel.com.au
|
||||
vic.speedtest.leaptel.com.au
|
||||
speedtest.localhosts.ltd
|
||||
speedtest.meerfarbig.net
|
||||
sig-speedtest.moratelindo.io
|
||||
f1.netfast.com.br
|
||||
@@ -770,6 +762,8 @@ hkthspeedtest02.telstraglobal.net
|
||||
test.turuncunet.com.tr
|
||||
speedtest.unitelecom.net.br
|
||||
velocidade.vlctelecom.com.br
|
||||
speedtest.wbstelecom.com.br
|
||||
speedtestsantarem.zumtelecom.com.br
|
||||
ookla.actionevoce.com.br
|
||||
londres.speedtest.angolacables.co.ao
|
||||
speedtest1.atlantisnet.com.tr
|
||||
@@ -836,6 +830,7 @@ speedtest-sydney.macquarietelecom.com
|
||||
speedtest-brisbane.macquarietelecom.com
|
||||
speedtest-melbourne.macquarietelecom.com
|
||||
st2.octopustelecom.co.uk
|
||||
speedtest.redevisualnet.com.br
|
||||
speedtest.seveninternet.com.br
|
||||
velocimetro.speednetworks.com.br
|
||||
speed-server3.summit-broadband.com
|
||||
@@ -885,5 +880,6 @@ aragonnetspeedtest.com.br
|
||||
test.infoconnecttelecom.com.br
|
||||
servidor.nuevanetbandalarga.com.br
|
||||
speedtestalmtelecom.com.br
|
||||
speedtest.topnettelecomservicos.com.br
|
||||
speedtestmera.vs.mythic-beasts.com
|
||||
################# END ###################
|
||||
|
||||
1
Mock/200.array.json
Normal file
1
Mock/200.array.json
Normal file
@@ -0,0 +1 @@
|
||||
[]
|
||||
1
Mock/200.json
Normal file
1
Mock/200.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
0
Mock/200.txt
Normal file
0
Mock/200.txt
Normal file
19
Mock/addthis-com_addthis_widget.js
Normal file
19
Mock/addthis-com_addthis_widget.js
Normal file
@@ -0,0 +1,19 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
const noopfn = function () {
|
||||
};
|
||||
window.addthis = {
|
||||
addEventListener: noopfn,
|
||||
button: noopfn,
|
||||
counter: noopfn,
|
||||
init: noopfn,
|
||||
layers: noopfn,
|
||||
ready: noopfn,
|
||||
sharecounters: {
|
||||
getShareCounts: noopfn
|
||||
},
|
||||
toolbox: noopfn,
|
||||
update: noopfn
|
||||
};
|
||||
}());
|
||||
14
Mock/ampproject-org_v0.js
Normal file
14
Mock/ampproject-org_v0.js
Normal file
@@ -0,0 +1,14 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
const head = document.head;
|
||||
if (!head) { return; }
|
||||
const style = document.createElement('style');
|
||||
style.textContent = [
|
||||
'body {',
|
||||
' animation: none !important;',
|
||||
' overflow: unset !important;',
|
||||
'}'
|
||||
].join('\n');
|
||||
head.appendChild(style);
|
||||
}());
|
||||
1
Mock/doubleclick-net_instream_ad_status.js
Normal file
1
Mock/doubleclick-net_instream_ad_status.js
Normal file
@@ -0,0 +1 @@
|
||||
window.google_ad_status = 1;
|
||||
1
Mock/nomo.json
Normal file
1
Mock/nomo.json
Normal file
File diff suppressed because one or more lines are too long
89
Mock/www-google-analytics-com_analytics.js
Normal file
89
Mock/www-google-analytics-com_analytics.js
Normal file
@@ -0,0 +1,89 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
// https://developers.google.com/analytics/devguides/collection/analyticsjs/
|
||||
const noopfn = function () {
|
||||
};
|
||||
//
|
||||
const Tracker = function () {
|
||||
};
|
||||
const p = Tracker.prototype;
|
||||
p.get = noopfn;
|
||||
p.set = noopfn;
|
||||
p.send = noopfn;
|
||||
//
|
||||
const w = window;
|
||||
const gaName = w.GoogleAnalyticsObject || 'ga';
|
||||
const gaQueue = w[gaName];
|
||||
const ga = function (...args) {
|
||||
const len = args.length;
|
||||
if (len === 0) { return; }
|
||||
let fn;
|
||||
const a = args[len - 1];
|
||||
if (typeof a === 'object' && typeof a.hitCallback === 'function') {
|
||||
fn = a.hitCallback;
|
||||
} else if (typeof a === 'function') {
|
||||
fn = () => { a(ga.create()); };
|
||||
} else {
|
||||
const pos = args.indexOf('hitCallback');
|
||||
if (pos !== -1 && typeof args[pos + 1] === 'function') {
|
||||
fn = args[pos + 1];
|
||||
}
|
||||
}
|
||||
if (typeof fn !== 'function') { return; }
|
||||
try {
|
||||
fn();
|
||||
} catch {
|
||||
}
|
||||
};
|
||||
ga.create = function () {
|
||||
return new Tracker();
|
||||
};
|
||||
ga.getByName = function () {
|
||||
return new Tracker();
|
||||
};
|
||||
ga.getAll = function () {
|
||||
return [new Tracker()];
|
||||
};
|
||||
ga.remove = noopfn;
|
||||
// https://github.com/uBlockOrigin/uAssets/issues/2107
|
||||
ga.loaded = true;
|
||||
w[gaName] = ga;
|
||||
// https://github.com/gorhill/uBlock/issues/3075
|
||||
const dl = w.dataLayer;
|
||||
if (typeof dl === 'object') {
|
||||
if (typeof dl.hide === 'object' && typeof dl.hide.end === 'function') {
|
||||
dl.hide.end();
|
||||
dl.hide.end = () => { };
|
||||
}
|
||||
if (typeof dl.push === 'function') {
|
||||
const doCallback = function (item) {
|
||||
if (typeof item === 'object' === false) { return; }
|
||||
if (typeof item.eventCallback !== 'function') { return; }
|
||||
// eslint-disable-next-line sukka/prefer-timer-id -- deliberate use of setTimeout
|
||||
setTimeout(item.eventCallback, 1);
|
||||
item.eventCallback = () => { };
|
||||
};
|
||||
dl.push = new Proxy(dl.push, {
|
||||
apply(target, thisArg, args) {
|
||||
doCallback(args[0]);
|
||||
return Reflect.apply(target, thisArg, args);
|
||||
}
|
||||
});
|
||||
if (Array.isArray(dl)) {
|
||||
const q = dl.slice();
|
||||
for (const item of q) {
|
||||
doCallback(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// empty ga queue
|
||||
if (typeof gaQueue === 'function' && Array.isArray(gaQueue.q)) {
|
||||
const q = gaQueue.q.slice();
|
||||
gaQueue.q.length = 0;
|
||||
for (const entry of q) {
|
||||
ga(...entry);
|
||||
}
|
||||
}
|
||||
}());
|
||||
16
Mock/www-google-analytics-com_cx_api.js
Normal file
16
Mock/www-google-analytics-com_cx_api.js
Normal file
@@ -0,0 +1,16 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
const noopfn = function () {
|
||||
};
|
||||
window.cxApi = {
|
||||
chooseVariation() {
|
||||
return 0;
|
||||
},
|
||||
getChosenVariation: noopfn,
|
||||
setAllowHash: noopfn,
|
||||
setChosenVariation: noopfn,
|
||||
setCookiePath: noopfn,
|
||||
setDomainName: noopfn
|
||||
};
|
||||
}());
|
||||
109
Mock/www-google-analytics-com_ga.js
Normal file
109
Mock/www-google-analytics-com_ga.js
Normal file
@@ -0,0 +1,109 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
const noopfn = function () {
|
||||
};
|
||||
//
|
||||
const Gaq = function () {
|
||||
};
|
||||
Gaq.prototype.Na = noopfn;
|
||||
Gaq.prototype.O = noopfn;
|
||||
Gaq.prototype.Sa = noopfn;
|
||||
Gaq.prototype.Ta = noopfn;
|
||||
Gaq.prototype.Va = noopfn;
|
||||
Gaq.prototype._createAsyncTracker = noopfn;
|
||||
Gaq.prototype._getAsyncTracker = noopfn;
|
||||
Gaq.prototype._getPlugin = noopfn;
|
||||
Gaq.prototype.push = function (a) {
|
||||
if (typeof a === 'function') {
|
||||
a(); return;
|
||||
}
|
||||
if (Array.isArray(a) === false) { return; }
|
||||
// https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiDomainDirectory#_gat.GA_Tracker_._link
|
||||
if (
|
||||
typeof a[0] === 'string'
|
||||
&& /(^|\.)_link$/.test(a[0])
|
||||
&& typeof a[1] === 'string'
|
||||
) {
|
||||
try {
|
||||
window.location.assign(a[1]);
|
||||
} catch {
|
||||
}
|
||||
}
|
||||
if (a[0] === '_set' && a[1] === 'hitCallback' && typeof a[2] === 'function') {
|
||||
a[2]();
|
||||
}
|
||||
};
|
||||
//
|
||||
const tracker = (function () {
|
||||
const out = {};
|
||||
const api = [
|
||||
'_addIgnoredOrganic _addIgnoredRef _addItem _addOrganic',
|
||||
'_addTrans _clearIgnoredOrganic _clearIgnoredRef _clearOrganic',
|
||||
'_cookiePathCopy _deleteCustomVar _getName _setAccount',
|
||||
'_getAccount _getClientInfo _getDetectFlash _getDetectTitle',
|
||||
'_getLinkerUrl _getLocalGifPath _getServiceMode _getVersion',
|
||||
'_getVisitorCustomVar _initData _linkByPost',
|
||||
'_setAllowAnchor _setAllowHash _setAllowLinker _setCampContentKey',
|
||||
'_setCampMediumKey _setCampNameKey _setCampNOKey _setCampSourceKey',
|
||||
'_setCampTermKey _setCampaignCookieTimeout _setCampaignTrack _setClientInfo',
|
||||
'_setCookiePath _setCookiePersistence _setCookieTimeout _setCustomVar',
|
||||
'_setDetectFlash _setDetectTitle _setDomainName _setLocalGifPath',
|
||||
'_setLocalRemoteServerMode _setLocalServerMode _setReferrerOverride _setRemoteServerMode',
|
||||
'_setSampleRate _setSessionTimeout _setSiteSpeedSampleRate _setSessionCookieTimeout',
|
||||
'_setVar _setVisitorCookieTimeout _trackEvent _trackPageLoadTime',
|
||||
'_trackPageview _trackSocial _trackTiming _trackTrans',
|
||||
'_visitCode'
|
||||
].join(' ').split(/\s+/);
|
||||
for (const method of api) {
|
||||
out[method] = noopfn;
|
||||
}
|
||||
out._getLinkerUrl = function (a) {
|
||||
return a;
|
||||
};
|
||||
// https://github.com/AdguardTeam/Scriptlets/issues/154
|
||||
out._link = function (a) {
|
||||
if (typeof a !== 'string') { return; }
|
||||
try {
|
||||
window.location.assign(a);
|
||||
} catch {
|
||||
}
|
||||
};
|
||||
return out;
|
||||
}());
|
||||
//
|
||||
const Gat = function () {
|
||||
};
|
||||
Gat.prototype._anonymizeIP = noopfn;
|
||||
Gat.prototype._createTracker = noopfn;
|
||||
Gat.prototype._forceSSL = noopfn;
|
||||
Gat.prototype._getPlugin = noopfn;
|
||||
Gat.prototype._getTracker = function () {
|
||||
return tracker;
|
||||
};
|
||||
Gat.prototype._getTrackerByName = function () {
|
||||
return tracker;
|
||||
};
|
||||
Gat.prototype._getTrackers = noopfn;
|
||||
Gat.prototype.aa = noopfn;
|
||||
Gat.prototype.ab = noopfn;
|
||||
Gat.prototype.hb = noopfn;
|
||||
Gat.prototype.la = noopfn;
|
||||
Gat.prototype.oa = noopfn;
|
||||
Gat.prototype.pa = noopfn;
|
||||
Gat.prototype.u = noopfn;
|
||||
const gat = new Gat();
|
||||
window._gat = gat;
|
||||
//
|
||||
const gaq = new Gaq();
|
||||
(function () {
|
||||
const aa = window._gaq || [];
|
||||
if (Array.isArray(aa)) {
|
||||
while (aa[0]) {
|
||||
gaq.push(aa.shift());
|
||||
}
|
||||
}
|
||||
}());
|
||||
gaq.qf = gaq;
|
||||
window._gaq = gaq;
|
||||
}());
|
||||
8
Mock/www-google-analytics-com_inpage_linkid.js
Normal file
8
Mock/www-google-analytics-com_inpage_linkid.js
Normal file
@@ -0,0 +1,8 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
window._gaq = window._gaq || {
|
||||
push() {
|
||||
}
|
||||
};
|
||||
}());
|
||||
32
Mock/www-googlesyndication-com_adsbygoogle.js
Normal file
32
Mock/www-googlesyndication-com_adsbygoogle.js
Normal file
@@ -0,0 +1,32 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
const init = () => {
|
||||
window.adsbygoogle = {
|
||||
loaded: true,
|
||||
push() {
|
||||
}
|
||||
};
|
||||
const phs = document.querySelectorAll('.adsbygoogle');
|
||||
const css = 'height:1px!important;max-height:1px!important;max-width:1px!important;width:1px!important;';
|
||||
for (let i = 0; i < phs.length; i++) {
|
||||
const id = `aswift_${i}`;
|
||||
if (document.querySelector(`iframe#${id}`) !== null) { continue; }
|
||||
const fr = document.createElement('iframe');
|
||||
fr.id = id;
|
||||
fr.style = css;
|
||||
const cfr = document.createElement('iframe');
|
||||
cfr.id = `google_ads_frame${i}`;
|
||||
fr.appendChild(cfr);
|
||||
phs[i].appendChild(fr);
|
||||
}
|
||||
};
|
||||
if (
|
||||
document.querySelectorAll('.adsbygoogle').length === 0
|
||||
&& document.readyState === 'loading'
|
||||
) {
|
||||
window.addEventListener('DOMContentLoaded', init, { once: true });
|
||||
} else {
|
||||
init();
|
||||
}
|
||||
}());
|
||||
24
Mock/www-googletagmanager-com_gtm.js
Normal file
24
Mock/www-googletagmanager-com_gtm.js
Normal file
@@ -0,0 +1,24 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
const noopfn = function () {
|
||||
};
|
||||
const w = window;
|
||||
w.ga = w.ga || noopfn;
|
||||
const dl = w.dataLayer;
|
||||
if (typeof dl !== 'object') { return; }
|
||||
if (typeof dl.hide === 'object' && typeof dl.hide.end === 'function') {
|
||||
dl.hide.end();
|
||||
}
|
||||
if (typeof dl.push === 'function') {
|
||||
dl.push = function (o) {
|
||||
if (
|
||||
typeof o === 'object'
|
||||
&& typeof o.eventCallback === 'function'
|
||||
) {
|
||||
// eslint-disable-next-line sukka/prefer-timer-id -- deliberately use setTimeout
|
||||
setTimeout(o.eventCallback, 1);
|
||||
}
|
||||
};
|
||||
}
|
||||
}());
|
||||
133
Mock/www-googletagservices-com_gpt.js
Normal file
133
Mock/www-googletagservices-com_gpt.js
Normal file
@@ -0,0 +1,133 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
// https://developers.google.com/doubleclick-gpt/reference
|
||||
const noopfn = function () {
|
||||
}.bind();
|
||||
const noopthisfn = function () {
|
||||
return this;
|
||||
};
|
||||
const noopnullfn = function () {
|
||||
return null;
|
||||
};
|
||||
const nooparrayfn = function () {
|
||||
return [];
|
||||
};
|
||||
const noopstrfn = function () {
|
||||
return '';
|
||||
};
|
||||
//
|
||||
const companionAdsService = {
|
||||
addEventListener: noopthisfn,
|
||||
enableSyncLoading: noopfn,
|
||||
setRefreshUnfilledSlots: noopfn
|
||||
};
|
||||
const contentService = {
|
||||
addEventListener: noopthisfn,
|
||||
setContent: noopfn
|
||||
};
|
||||
const PassbackSlot = function () {
|
||||
};
|
||||
let p = PassbackSlot.prototype;
|
||||
p.display = noopfn;
|
||||
p.get = noopnullfn;
|
||||
p.set = noopthisfn;
|
||||
p.setClickUrl = noopthisfn;
|
||||
p.setTagForChildDirectedTreatment = noopthisfn;
|
||||
p.setTargeting = noopthisfn;
|
||||
p.updateTargetingFromMap = noopthisfn;
|
||||
const pubAdsService = {
|
||||
addEventListener: noopthisfn,
|
||||
clear: noopfn,
|
||||
clearCategoryExclusions: noopthisfn,
|
||||
clearTagForChildDirectedTreatment: noopthisfn,
|
||||
clearTargeting: noopthisfn,
|
||||
collapseEmptyDivs: noopfn,
|
||||
defineOutOfPagePassback() { return new PassbackSlot(); },
|
||||
definePassback() { return new PassbackSlot(); },
|
||||
disableInitialLoad: noopfn,
|
||||
display: noopfn,
|
||||
enableAsyncRendering: noopfn,
|
||||
enableSingleRequest: noopfn,
|
||||
enableSyncRendering: noopfn,
|
||||
enableVideoAds: noopfn,
|
||||
get: noopnullfn,
|
||||
getAttributeKeys: nooparrayfn,
|
||||
getTargeting: noopfn,
|
||||
getTargetingKeys: nooparrayfn,
|
||||
getSlots: nooparrayfn,
|
||||
refresh: noopfn,
|
||||
removeEventListener: noopfn,
|
||||
set: noopthisfn,
|
||||
setCategoryExclusion: noopthisfn,
|
||||
setCentering: noopfn,
|
||||
setCookieOptions: noopthisfn,
|
||||
setForceSafeFrame: noopthisfn,
|
||||
setLocation: noopthisfn,
|
||||
setPublisherProvidedId: noopthisfn,
|
||||
setPrivacySettings: noopthisfn,
|
||||
setRequestNonPersonalizedAds: noopthisfn,
|
||||
setSafeFrameConfig: noopthisfn,
|
||||
setTagForChildDirectedTreatment: noopthisfn,
|
||||
setTargeting: noopthisfn,
|
||||
setVideoContent: noopthisfn,
|
||||
updateCorrelator: noopfn
|
||||
};
|
||||
const SizeMappingBuilder = function () {
|
||||
};
|
||||
p = SizeMappingBuilder.prototype;
|
||||
p.addSize = noopthisfn;
|
||||
p.build = noopnullfn;
|
||||
const Slot = function () {
|
||||
};
|
||||
p = Slot.prototype;
|
||||
p.addService = noopthisfn;
|
||||
p.clearCategoryExclusions = noopthisfn;
|
||||
p.clearTargeting = noopthisfn;
|
||||
p.defineSizeMapping = noopthisfn;
|
||||
p.get = noopnullfn;
|
||||
p.getAdUnitPath = nooparrayfn;
|
||||
p.getAttributeKeys = nooparrayfn;
|
||||
p.getCategoryExclusions = nooparrayfn;
|
||||
p.getDomId = noopstrfn;
|
||||
p.getResponseInformation = noopnullfn;
|
||||
p.getSlotElementId = noopstrfn;
|
||||
p.getSlotId = noopthisfn;
|
||||
p.getTargeting = nooparrayfn;
|
||||
p.getTargetingKeys = nooparrayfn;
|
||||
p.set = noopthisfn;
|
||||
p.setCategoryExclusion = noopthisfn;
|
||||
p.setClickUrl = noopthisfn;
|
||||
p.setCollapseEmptyDiv = noopthisfn;
|
||||
p.setTargeting = noopthisfn;
|
||||
p.updateTargetingFromMap = noopthisfn;
|
||||
//
|
||||
const gpt = window.googletag || {};
|
||||
const cmd = gpt.cmd || [];
|
||||
gpt.apiReady = true;
|
||||
gpt.cmd = [];
|
||||
gpt.cmd.push = function (a) {
|
||||
try {
|
||||
a();
|
||||
} catch {
|
||||
}
|
||||
return 1;
|
||||
};
|
||||
gpt.companionAds = function () { return companionAdsService; };
|
||||
gpt.content = function () { return contentService; };
|
||||
gpt.defineOutOfPageSlot = function () { return new Slot(); };
|
||||
gpt.defineSlot = function () { return new Slot(); };
|
||||
gpt.destroySlots = noopfn;
|
||||
gpt.disablePublisherConsole = noopfn;
|
||||
gpt.display = noopfn;
|
||||
gpt.enableServices = noopfn;
|
||||
gpt.getVersion = noopstrfn;
|
||||
gpt.pubads = function () { return pubAdsService; };
|
||||
gpt.pubadsReady = true;
|
||||
gpt.setAdIframeTitle = noopfn;
|
||||
gpt.sizeMapping = function () { return new SizeMappingBuilder(); };
|
||||
window.googletag = gpt;
|
||||
while (cmd.length !== 0) {
|
||||
gpt.cmd.push(cmd.shift());
|
||||
}
|
||||
}());
|
||||
36
index.html
Normal file
36
index.html
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user