This could've gone better.

Probably last time I'd do RegEx optimising on an empty stomach.
This commit is contained in:
Imre Eilertsen
2025-05-21 11:58:07 +02:00
committed by GitHub
parent 75aa292d1a
commit 585e3bcb91
2 changed files with 232 additions and 100 deletions
@@ -1310,7 +1310,7 @@ kulturplot.no,dagensperspektiv.no,velferd.no###main > .small-12:nth-of-type(1)
/annonse_$image
/auglysing/*
/auglysingar/*
.no/api/unit-image?$xmlhttprequest
.no/api/unit-image?$xmlhttprequest,~third-party
/vefauglysingar/*
||ad.*.no^$domain=~ad.dep.no|~ad.hem.no|~ad.amediakreativ.no|~ba.no
||ad1.*.dk^
@@ -1376,7 +1376,7 @@ _toppbanner_$image,domain=~dahl.no|~onninen.no
! byggenyttNO
/_annonser^$image
! frendeNO
||api.frende.no/webshop/log$xmlhttprequest
||api.frende.no/webshop/log$xmlhttprequest,domain=www.frende.no
! https://malviknytt•no/2020/07/31/skyting-pa-hjemmebande/ (16/08/2020)
/Nettbanner-$image
! sexpigerDK
@@ -1503,13 +1503,13 @@ _visittkortannonse_$image
_300x250px-*.gif^$domain=ilaks.no
_300x500pix$domain=rykindribe.dk,image
_930x180pix$domain=rykindribe.dk,image
contentMarketing$xmlhttprequest
contentMarketing$xmlhttprequest,domain=sol.no|sol-no.translate.goog
|blob:https://www.veier24.no/$image
||1819.is/infosmall/$image
||730.no/banner/*/sonymusic/$subdocument
||aa-cdn.mytaste.org/js/ad.js$script
||acdn.adnxs.com/ast/ast.js$script,,domain=vg.no
||acdn.adnxs.com/ast/ast.js$script,rewrite=abp-resource:blank-js,,domain=vgtv.no
||acdn.adnxs.com/ast/ast.js$script,domain=vg.no
||acdn.adnxs.com/ast/ast.js$script,rewrite=abp-resource:blank-js,domain=vgtv.no
||aftenposten.no/seksjon/dist/ads-$script
||akamai.net^$script,domain=eniro.no|eniro.dk
||akamaihd.net^$media,domain=discoveryplus.com
@@ -1628,7 +1628,7 @@ contentMarketing$xmlhttprequest
||spaniaidag.no/wp-content/uploads/*/Ceru-Design-Web-*.jpg^
||spaniaidag.no/wp-content/uploads/*/Kolstad-Gif-SI.gif^
||spanienidag.es/sites/default/files/patrocinadores^
/^.*://w{3}\.(tu|d\ig\i)\.n\o/(\d|[a-zA-Z_-]){130,}$/$xmlhttprequest
/^.*://w{3}\.(tu|d\ig\i)\.n\o/(\d|[a-zA-Z_-]){130,}$/$xmlhttprequest,domain=no
||ssl.p.jwpcdn.com^*/freewheel.js$script,domain=eurosport.no|eurosport.dk
||ssl.p.jwpcdn.com^*/jwpsrv.js$script,domain=eurosport.no|eurosport.dk|gamereactor.no|gamereactor.dk|vg.no
||ssl.p.jwpcdn.com^*/sharing.js$script,domain=eurosport.no|eurosport.dk|gamereactor.no|gamereactor.dk
@@ -1674,7 +1674,7 @@ contentMarketing$xmlhttprequest
||www-presse-fotos-dk.filesusr.com^
||xklub.dk/bannercache^
||xklub.dk/xsite/img/banner^
||xn--bredbnd-ixa.dk/wp-content/*/velkommen_banner$image,
||xn--bredbnd-ixa.dk/wp-content/*/velkommen_banner$image
||youtube.com/embed/*&origin=https%3A%2F%2Fwww.feltet.dk&widgetid=1$subdocument
||yrkesbil.no/gifs/1pix.gif^
||ytresogn.no/ete/index.html^
@@ -2071,7 +2071,7 @@ tv2.no##.aside > .ad-container
! — — — — — — —
! 🇳🇴:Oppføringer med spesielle omstendigheter
! 🇬🇧:Entries with special circumstances
@@||vgtv.no^$ghide
@@||vgtv.no^$generichide
||samimag.no/wp-content/uploads/2019/11/Screenshot-2020-03-21-at-12.40.32.png^
! https://www•aftenposten•no/sport/i/kR20OL/uno-x-soeker-om-worldtour-lisens-en-droem-som-har-modnet-over-tid (03/09/2022)
@@ -2110,8 +2110,8 @@ baadmagasinet.dk##.article-bottom .qx-inner > .qx-section:last-of-type
! https://github.com/DandelionSprout/adfilt/pull/699
||s.api.no/mittari/c/article/*/sectionId/*.gif^
! https://github.com/uBlockOrigin/uAssets/issues/18880
||no/app/aas^$xmlhttprequest
://aas.*.no/a/|$xmlhttprequest
||no/app/aas^$xmlhttprequest,ping,~third-party
://aas.*.no/a/|$xmlhttprequest,ping,~third-party
! 🇳🇴:——— Tomme skillebokser ———
! 🇩🇰:——— Tomme adskillerbokser ———
@@ -2159,9 +2159,9 @@ dagsavisen.no##:is(p,h2):has(> br:only-of-type:empty)
! 🇮🇸:——— Óbrot ———
! 🇬🇧:——— Unbreakage ———
! Posten's new parcel tracker, fixes the form for giving them delivery information (doorbell name/number)
@@||glow.posten.no/api/tracking/*$xmlhttprequest
@@||glow.posten.no/api/tracking/*$xmlhttprequest,~third-party
! Makes articles that would be counted as ads anywhere else on SeHer, show up on that page.
@@||seher.no/reise$ghide
@@||seher.no/reise$generichide
! folkebladet.no; Makes job position lists show up correctly
@@||stillingledig.*.no^
! https://github.com/DandelionSprout/adfilt/issues/63#issuecomment-683430537
@@ -2169,7 +2169,7 @@ dagsavisen.no##:is(p,h2):has(> br:only-of-type:empty)
! https://github.com/DandelionSprout/adfilt/issues/63#issuecomment-689373261
! ★★★ Caused by «EasyPrivacy» ★★★
! Attempting to fix a problem with voting online on Idol Norway
@@||tv2.no/*/config/analytics.json$xmlhttprequest
@@||tv2.no/*/config/analytics.json$xmlhttprequest,~third-party
! Attempts to resolve how some frontpage articles are hard to open
@@||schibsted.com/autoTracker$domain=vg.no
! 🇳🇴:Får Discovery+ sin påloggingsside til å vises riktig
@@ -2247,10 +2247,10 @@ ekstrabladet.dk#@#body>div[id][style]
@@||fe.adstate.net/assets/common/img/web_ad^$domain=aasavis.no|amta.no|an.no|ao.no|auraavis.no|austagderblad.no|avisenagder.no|ba.no|bygdebladet.no|bygdeposten.no|dalane-tidende.no|dt.no|eikerbladet.no|enebakkavis.no|f-b.no|finnmarkdagblad.no|finnmarken.no|firda.no|firdaposten.no|fremover.no|gbnett.no|gjengangeren.no|glomdalen.no|h-avis.no|ha-halden.no|hadeland.no|hardanger-folkeblad.no|helg.no|iharstad.no|indre.no|jarlsbergavis.no|jbl.no|kv.no|kvinnheringen.no|laagendalsposten.no|lierposten.no|lofotposten.no|lyngdalsavis.no|moss-avis.no|nidaros.no|noblad.no|nordhordland.no|nordlys.no|oa.no|oblad.no|op.no|ostlendingen.no|oyene.no|r-a.no|rablad.no|ranablad.no|rb.no|retten.no|rha.no|ringblad.no|ringsaker-blad.no|sa.no|sandeavis.no|sandnesposten.no|sb.no|smaalenene.no|sognavis.no|solabladet.no|solungavisa.no|strandbuen.no|svelviksposten.no|ta.no|tb.no|telen.no|tk.no|tvedestrandsposten.no|varingen.no|vestbyavis.no
@@||fe.adstate.net/stream_file.php?type=ad_preview_image$domain=aasavis.no|amta.no|an.no|ao.no|auraavis.no|austagderblad.no|avisenagder.no|ba.no|bygdebladet.no|bygdeposten.no|dalane-tidende.no|dt.no|eikerbladet.no|enebakkavis.no|f-b.no|finnmarkdagblad.no|finnmarken.no|firda.no|firdaposten.no|fremover.no|gbnett.no|gjengangeren.no|glomdalen.no|h-avis.no|ha-halden.no|hadeland.no|hardanger-folkeblad.no|helg.no|iharstad.no|indre.no|jarlsbergavis.no|jbl.no|kv.no|kvinnheringen.no|laagendalsposten.no|lierposten.no|lofotposten.no|lyngdalsavis.no|moss-avis.no|nidaros.no|noblad.no|nordhordland.no|nordlys.no|oa.no|oblad.no|op.no|ostlendingen.no|oyene.no|r-a.no|rablad.no|ranablad.no|rb.no|retten.no|rha.no|ringblad.no|ringsaker-blad.no|sa.no|sandeavis.no|sandnesposten.no|sb.no|smaalenene.no|sognavis.no|solabladet.no|solungavisa.no|strandbuen.no|svelviksposten.no|ta.no|tb.no|telen.no|tk.no|tvedestrandsposten.no|varingen.no|vestbyavis.no
! https://new.reddit.com/r/uBlockOrigin/comments/gye2f2/cant_watch_videos_on_a_specific_website_with/ft9zlse/
@@||cmp.ekstrabladet.dk/get_site_data$xmlhttprequest
@@||cmp.ekstrabladet.dk/get_site_data$xmlhttprequest,~third-party
@@||dialogue.sp-prod.net/messagingWithoutDetection.js$script,domain=ekstrabladet.dk
@@||notice.sp-prod.net^$subdocument,domain=ekstrabladet.dk
@@||sp-prod.net^$xmlhttprequest
@@||sp-prod.net^$xmlhttprequest,domain=ekstrabladet.dk
@@||ad.amediakreativ.no/widgets/stillingskarusell^
@@ -2333,9 +2333,9 @@ nettavisen.no,www-nettavisen-no.translate.goog###topover
||collector.schibsted.io^$third-party
! "Generic Hide"
@@||bondebladet.screen9.tv^$ghide
@@||eurosport.no^$ghide
@@||eurosport.dk^$ghide
@@||bondebladet.screen9.tv^$generichide
@@||eurosport.no^$generichide
@@||eurosport.dk^$generichide
! Fixed in better ways in AdGuard Base and uBlock Filters, but is needed for ABP
@@||inputmag.dk^$generichide
@@ -2375,7 +2375,7 @@ trendsales.dk##.top__banner
xn--bredbnd-ixa.dk##div[class^="speedtest-bg"] > a > img
||freewheel-mtgx-tv.akamaized.net/*.mp4$media,rewrite=abp-resource:blank-mp3,domain=bold.dk
!!!||freewheel-mtgx-tv.akamaized.net^$media,domain=tv3sport.dk
||v.fwmrm.net/ad/g/$domain=ekstrabladet.dk|ekstrabladet-dk.translate.goog,
||v.fwmrm.net/ad/g/$domain=ekstrabladet.dk|ekstrabladet-dk.translate.goog
||vgc.no/cdn/js/libs/homad-config.json$xmlhttprequest,rewrite=abp-resource:blank-json
||widget.tippebannere.no^$third-party
inky.no#@#iframe[width="200"][height="240"]
@@ -3368,7 +3368,7 @@ triplx.dk##.aff-inner-col
! On a lot of parked domains
||astarsbuilding.com^$third-party
|http://*/munin/a/$xmlhttprequest
|http://*/munin/a/$xmlhttprequest,~third-party
://185.53.177.52^
://185.53.177.52^$popup
@@ -3439,7 +3439,7 @@ triplx.dk##.aff-inner-col
! 🇬🇧:Intended for Adblock Plus
@@||prosent.no^$generichide
@@||tv2.no^$ghide
@@||tv2.no^$generichide
@@ -5313,7 +5313,7 @@ zeromagazine.nu##div[id^=ads]
/annonslinje_
/annonssamarbete$xmlhttprequest
/annons$image,domain=dagensvimmerby.se|dagensvastervik.se|dagenskalmar.nu|dagenshultsfred.se|filmtopp.se|webbkameror.se|omkonst.com
/annons$xmlhttprequest
/annons$xmlhttprequest,domain=driva-eget.se|brukshunden.se
/annons-banner
/annons.aspx?
/annons/banner
@@ -5325,7 +5325,7 @@ zeromagazine.nu##div[id^=ads]
/api/exposure$domain=svenskverkstad.se
/api/partners$domain=familjehemsbanken.se
/api/sponsors$domain=aikhockey.se|almtuna.com|bikkarlskoga.se|bjorkloven.com|brynas.se|difhockey.se|frolundahockey.com|farjestadbk.se|hockeyallsvenskan.se|hv71.se|ikoskarshamn.se|kalmarhockey.com|leksandsif.se|luleahockey.se|malmoredhawks.com|modohockey.se|moraik.se|nybrovikings.com|orebrohockey.se|roglebk.se|shl.se|skellefteaaik.se|sodertaljesk.se|taif.nu|timraik.se|vaxjolakers.se|vik.se|ostersundik.com
/api/s/track$xmlhttprequest
/api/s/track$xmlhttprequest,domain=eniro.se
/api/tracker?$image
/appinsights/*/track
/app.php/adsview$xmlhttprequest
@@ -5349,7 +5349,7 @@ zeromagazine.nu##div[id^=ads]
/banners/*casino$image
/banner$domain=assistanskoll.se|hrnytt.se|lokalguiden.se|nyaboendet.se|ljudoljus.net|poloniainfo.se|alltombostad.se|thepattayanewsse.com
/banner/ads/*
/banner?cg$xmlhttprequest
/banner?cg$xmlhttprequest,domain=blocket.se
/beat-be$domain=blocket.se
/betald-exponering$image
/bilder-for-annonser$image
@@ -5396,7 +5396,7 @@ zeromagazine.nu##div[id^=ads]
/com_adagency$domain=fastbikes.se
/content_images/*casino$image,domain=ng.se
/conversions/tracking.js$third-party
/count?$xmlhttprequest
/count?$xmlhttprequest,domain=feber.se|tjock.se
/cpg_ads.$script
/cs1pc.js$domain=kiaindex.se
/ctr-prd.cbs-measurements.
@@ -5541,10 +5541,10 @@ zeromagazine.nu##div[id^=ads]
/monetization/pixel-sdk/*
/mp_emediate/inc/annons.html
/mrbet_banner
/natives?$xmlhttprequest
/natives?$xmlhttprequest,domain=aktuellhallbarhet.se|byggindustrin.se|dagensmedia.se|dagensmedicin.se|fastighetsnytt.se|resume.se|dagenssamhalle.se|market.se|dagligvarunytt.se|privataaffarer.se
/native$domain=sydnarkenytt.se
/native$xmlhttprequest
/native$xmlhttprequest
/native$xmlhttprequest,domain=aktuellhallbarhet.se|byggindustrin.se|dagensmedia.se|dagensmedicin.se|fastighetsnytt.se|resume.se|dagenssamhalle.se|market.se|dagligvarunytt.se|privataaffarer.se
/native$xmlhttprequest,domain=automotorsport.se
/native-ads$domain=atl.nu|landlantbruk.se|land.se
/native-article-campaigns$domain=allas.se|elle.se|femina.se|hant.se|mabra.com|residencemagazine.se|svenskdam.se|motherhood.se
/native-video-campaigns$domain=allas.se|elle.se|femina.se|hant.se|mabra.com|residencemagazine.se|svenskdam.se|motherhood.se
@@ -5558,7 +5558,7 @@ zeromagazine.nu##div[id^=ads]
/omniture/s_code.js
/one-signal$domain=swebbtv.se
/opus-analytics
/pageView$xmlhttprequest
/pageView$xmlhttprequest,domain=altinget.se
/pagead$domain=vilaser.se|horoskoptid.se|eniro.se
/pageviews$domain=vk.se|folkbladet.nu|nordsverige.se|mellanbygden.nu|vasterbottningen.se|lokaltidningen.nu
/partners?$domain=hockeynews.se
@@ -5731,7 +5731,7 @@ zeromagazine.nu##div[id^=ads]
/sponsored_articles$domain=fastighetssverige.se
/sponsorloggor$domain=swehockey.se
/sponsors$domain=sdhl.se|storvretaibk.se|obosdamallsvenskan.se|elitettan.se
/sponsrade$xmlhttprequest
/sponsrade$xmlhttprequest,domain=hockeysverige.se
/spotlight-ad_$image
/ss_foundation/combined_li_tracking
/static.marklar.se/*-tracker
@@ -5767,7 +5767,7 @@ zeromagazine.nu##div[id^=ads]
/toppbanner.js$domain=sydnarkenytt.se
/toppbanner_snippet_js
/torgen/banner.stat
/trace$xmlhttprequest
/trace$xmlhttprequest,domain=netflixguiden.se|radio.se
/trackers/SessionCam-tag
/tracker.php?do$image
/tracker/socket$domain=swebbtv.se
@@ -5775,7 +5775,7 @@ zeromagazine.nu##div[id^=ads]
/tracking/cts.js
/tracking/fpc.js
/tracking_scripts$domain=osterbottenstidning.fi|sydin.fi|vasabladet.fi
/track$ping,xmlhttprequest
/track$ping,xmlhttprequest,domain=epochtimes.se|dagen.se
/track-view$domain=aftonbladet.se|godare.se
/track.js$domain=destination.se|sistaminuten.se
/track/view?webInteractiveId$image
@@ -5879,9 +5879,9 @@ zeromagazine.nu##div[id^=ads]
?action=advanced-ads-tracking-track
?action=get_banners$domain=djungeltrumman.se
?bannerid$domain=existenz.se
?t=$xmlhttprequest
?t=$xmlhttprequest,empty,domain=kyrkanstidning.se
?url=*impse.tradedoubler.com$image
@@*$ghide,domain=atl.nu|landlantbruk.se|land.se|fodertipset.se|citattorget.se|citiboard.se|kritiker.se|akaviaaspekt.se|annonsborsen.se
@@*$generichide,domain=atl.nu|landlantbruk.se|land.se|fodertipset.se|citattorget.se|citiboard.se|kritiker.se|akaviaaspekt.se|annonsborsen.se
@@/adserver.$script,~third-party,domain=fotosidan.se|utsidan.se
@@/adx.js$~third-party,domain=atl.nu|landlantbruk.se|land.se
@@/aff/images/*$image,domain=alltforforaldrar.se
@@ -5896,7 +5896,7 @@ zeromagazine.nu##div[id^=ads]
@@||createsend1.com/css/
@@||fast.fonts.net/jsapi/core/mt.js$domain=tidskriftenprovins.se
@@||feed.meltwater.com^$subdocument
@@||fwmrm.net/ad/g/$xmlhttprequest
@@||fwmrm.net/ad/g/$xmlhttprequest,domain=tv4play.se|tv4.se|fotbollskanalen.se|koket.se|embed.viaplay.com
@@||img.upsales.com^
@@||js.createsend1.com/js/jquery
@@||js.driftt.com^$domain=sanity.io
@@ -2561,21 +2561,21 @@ def prepare_abp(lines) -> str:
# remove $document modifier from the rule
line = re.sub(
r"^(.*)\$doc.*$",
r"\1",
r"\$doc.*$",
"",
line
)
# remove $important modifier from the rule
line = re.sub(
r"^(.*)\$important,(.*)",
r"\1$\2",
r"\$important,",
"$",
line
)
line = re.sub(
r"^(.*[$,])important(.*)$",
r"\1\2",
r"([$,])important",
"",
line
)
@@ -2598,26 +2598,26 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
r"^! Redirect:.*$",
r"! Redirect:.*$",
"",
line
)
line = re.sub(
r"^(.*[$,])xhr(.*)$",
r"([$,])xhr",
r"\1xmlhttprequest",
line
)
line = re.sub(
r"^(.*[$,~])3p(.*)$",
r"\1third-party\2",
r"([$,~])3p",
r"\1third-party",
line
)
line = re.sub(
r"^(.*[$,~])1p(.*)$",
r"\1~third-party\2",
r"([$,])1p",
r"\1~third-party",
line
)
@@ -2634,97 +2634,103 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
r"^(.*,)?viaplay.\*(#|,)",
r"(^|,)viaplay.\*(#|,)",
r"\1viaplay.no,viaplay.dk,viaplay.is\2",
line
)
line = re.sub(
r"^(.*,)?google.\*(#|,)",
r"(^|,)google.\*(#|,)",
r"\1google.no,google.dk,google.is\2",
line
)
line = re.sub(
r"^(.*,)?ticketmaster.\*(#|,)",
r"(^|,)ticketmaster.\*(#|,)",
r"\1ticketmaster.no,ticketmaster.dk\2",
line
)
line = re.sub(
r"^(.*,)?qxl.\*(#|,)",
r"(^|,)qxl.\*(#|,)",
r"\1qxl.no,qxl.dk\2",
line
)
line = re.sub(
r"^(.*,)?expedia.\*(#|,)",
r"(^|,)expedia.\*(#|,)",
r"\1expedia.no,expedia.dk\2",
line
)
line = re.sub(
r"^(.*,)?gamereactor.\*(#|,)",
r"(^|,)gamereactor.\*(#|,)",
r"\1gamereactor.no,gamereactor.dk\2",
line
)
line = re.sub(
r"^(.*,)?momondo.\*(#|,)",
r"(^|,)viafree.\*(#|,)",
r"\1viafree.no,viafree.dk\2",
line
)
line = re.sub(
r"(^|,)momondo.\*(#|,)",
r"\1momondo.no,monondo.dk\2",
line
)
line = re.sub(
r"^(.*,)?eurosport.\*(#|,)",
r"(^|,)eurosport.\*(#|,)",
r"\1eurosport.no,eurosport.dk\2",
line
)
line = re.sub(
r"^(.*,)?prisjakt.\*(#|,)",
r"(^|,)prisjakt.\*(#|,)",
r"\1prisjakt.no\2",
line
)
line = re.sub(
r"^(.*,)?180.\*(#|,)",
r"(^|,)180.\*(#|,)",
r"\g<1>180.no,180.dk\2",
line
)
line = re.sub(
r"^(.*,)?kimbino.\*(#|,)",
r"(^|,)kimbino.\*(#|,)",
r"\1kimbino.no,kimbino.dk\2",
line
)
line = re.sub(
r"^(.*,)?costume.\*(#|,)",
r"(^|,)costume.\*(#|,)",
r"\1costume.no,costume.dk\2",
line
)
line = re.sub(
r"^(.*,)?manuall.\*(#|,)",
r"(^|,)manuall.\*(#|,)",
r"\1manuall.no,manuall.dk\2",
line
)
line = re.sub(
r"^(.*,)?intrafish.\*(#|,)",
r"(^|,)intrafish.\*(#|,)",
r"\1intrafish.no\2",
line
)
line = re.sub(
r"^(.*,)?blaklader.\*(#|,)",
r"(^|,)blaklader.\*(#|,)",
r"\1blaklader.no,blaklader.dk\2",
line
)
line = re.sub(
r"^(.*,)?ehandel\.\*(#|,)",
r"(^|,)ehandel\.\*(#|,)",
r"\1ehandel.com,ehandel.dk,ehandel.se,ehandel.fi\2",
line
)
@@ -2742,79 +2748,79 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
r"^! (Version|Last[ -]?[Mm]odified): (.*)January(.*)v(\d\d?.*)$",
r"! (Version|Last[ -]?[Mm]odified): (.*)January(.*)v(\d\d?)",
r"! Version: \g<2>01\3\4",
line
)
line = re.sub(
r"^! (Version|Last[ -]?[Mm]odified): (.*)February(.*)v(\d\d?)",
r"! (Version|Last[ -]?[Mm]odified): (.*)February(.*)v(\d\d?)",
r"! Version: \g<2>02\3\4",
line
)
line = re.sub(
r"^! (Version|Last[ -]?[Mm]odified): (.*)March(.*)v(\d\d?)",
r"! (Version|Last[ -]?[Mm]odified): (.*)March(.*)v(\d\d?)",
r"! Version: \g<2>03\3\4",
line
)
line = re.sub(
r"^! (Version|Last[ -]?[Mm]odified): (.*)April(.*)v(\d\d?)",
r"! (Version|Last[ -]?[Mm]odified): (.*)April(.*)v(\d\d?)",
r"! Version: \g<2>04\3\4",
line
)
line = re.sub(
r"^! (Version|Last[ -]?[Mm]odified): (.*)May(.*)v(\d\d?.*)$",
r"! (Version|Last[ -]?[Mm]odified): (.*)May(.*)v(\d\d?)",
r"! Version: \g<2>05\3\4",
line
)
line = re.sub(
r"^! (Version|Last[ -]?[Mm]odified): (.*)June(.*)v(\d\d?)",
r"! (Version|Last[ -]?[Mm]odified): (.*)June(.*)v(\d\d?)",
r"! Version: \g<2>06\3\4",
line
)
line = re.sub(
r"^! (Version|Last[ -]?[Mm]odified): (.*)July(.*)v(\d\d?)",
r"! (Version|Last[ -]?[Mm]odified): (.*)July(.*)v(\d\d?)",
r"! Version: \g<2>07\3\4",
line
)
line = re.sub(
r"^! (Version|Last[ -]?[Mm]odified): (.*)August(.*)v(\d\d?)",
r"! (Version|Last[ -]?[Mm]odified): (.*)August(.*)v(\d\d?)",
r"! Version: \g<2>08\3\4",
line
)
line = re.sub(
r"^! (Version|Last[ -]?[Mm]odified): (.*)September(.*)v(\d\d?)",
r"! (Version|Last[ -]?[Mm]odified): (.*)September(.*)v(\d\d?)",
r"! Version: \g<2>09\3\4",
line
)
line = re.sub(
r"^! (Version|Last[ -]?[Mm]odified): (.*)October(.*)v(\d\d?)",
r"! (Version|Last[ -]?[Mm]odified): (.*)October(.*)v(\d\d?)",
r"! Version: \g<2>10\3\4",
line
)
line = re.sub(
r"^! (Version|Last[ -]?[Mm]odified): (.*)November(.*)v(\d\d?)",
r"! (Version|Last[ -]?[Mm]odified): (.*)November(.*)v(\d\d?)",
r"! Version: \g<2>11\3\4",
line
)
line = re.sub(
r"^! (Version|Last[ -]?[Mm]odified): (.*)December(.*)v(\d\d?)",
r"! (Version|Last[ -]?[Mm]odified): (.*)December(.*)v(\d\d?)",
r"! Version: \g<2>12\3\4",
line
)
line = re.sub(
r"^(! Title: 🏔️ Dandelion Sprout.*)$",
r"^(! Title: 🏔️ Dandelion Sprout.*)",
r"[Adblock Plus 3.13]\n\1",
line
)
@@ -2843,6 +2849,126 @@ def prepare_abp(lines) -> str:
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*)( |\|)(.*):(upward|nth-ancestor)\(1\)",
r"\1##\2\3*:has(> \4)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*)( |\|)(.*):(upward|nth-ancestor)\(2\)",
r"\1##\2\3*:has(> * > \4)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*)( |\|)(.*):(upward|nth-ancestor)\(3\)",
r"\1##\2\3*:has(> * > * > \4)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*)( |\|)(.*):(upward|nth-ancestor)\(4\)",
r"\1##\2\3*:has(> * > * > * > \4)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*)( |\|)(.*):(upward|nth-ancestor)\(5\)",
r"\1##\2\3*:has(> * > * > * > * > \4)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*)( |\|)(.*):(upward|nth-ancestor)\(6\)",
r"\1##\2\3*:has(> * > * > * > * > * > \4)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*)( |\|)(.*):(upward|nth-ancestor)\(7\)",
r"\1##\2\3*:has(> * > * > * > * > * > * > \4)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*)( |\|)(.*):(upward|nth-ancestor)\(8\)",
r"\1##\2\3*:has(> * > * > * > * > * > * > * > \4)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*)( |\|)(.*):(upward|nth-ancestor)\(9\)",
r"\1##\2\3*:has(> * > * > * > * > * > * > * > * > \4)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*)( |\|)(.*):(upward|nth-ancestor)\(10\)",
r"\1##\2\3*:has(> * > * > * > * > * > * > * > * > * > \4)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*):(upward|nth-ancestor)\(1\)",
r"\1##*:has(> \2)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*):(upward|nth-ancestor)\(2\)",
r"\1##*:has(> * > \2)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*):(upward|nth-ancestor)\(3\)",
r"\1##*:has(> * > * > \2)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*):(upward|nth-ancestor)\(4\)",
r"\1##*:has(> * > * > * > \2)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*):(upward|nth-ancestor)\(5\)",
r"\1##*:has(> * > * > * > * > \2)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*):(upward|nth-ancestor)\(6\)",
r"\1##*:has(> * > * > * > * > * > \2)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*):(upward|nth-ancestor)\(7\)",
r"\1##*:has(> * > * > * > * > * > * > \2)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*):(upward|nth-ancestor)\(8\)",
r"\1##*:has(> * > * > * > * > * > * > * > \2)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*):(upward|nth-ancestor)\(9\)",
r"\1##*:has(> * > * > * > * > * > * > * > * > \2)",
line
)
line = re.sub(
r"([a-z*])#[?]?#(.*):(upward|nth-ancestor)\(10\)",
r"\1##*:has(> * > * > * > * > * > * > * > * > * > \2)",
line
)
line = re.sub(
r"^.*mm\.dk##\.fadeout.*$",
r"",
@@ -2856,8 +2982,8 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
r"^(.*[.?]),script(.*)$",
r"\1$script\2",
r"([.?]),script",
r"\1$script",
line
)
@@ -2880,8 +3006,8 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
":remove()",
"",
r":remove()",
r"",
line
)
@@ -2940,14 +3066,14 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
":before",
"::before",
r":before",
r"::before",
line
)
line = re.sub(
":after",
"::after",
r":after",
r"::after",
line
)
@@ -2982,8 +3108,8 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
"\$empty,",
"$",
r"\$empty,",
r"$",
line
)
@@ -3000,8 +3126,14 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
"$mp4",
"$media,rewrite=abp-resource:blank-mp3",
r"\$mp4",
r"$media,rewrite=abp-resource:blank-mp3",
line
)
line = re.sub(
r"([a-z*][=|])viafree\.\*",
r"\1viafree.no|viafree.dk",
line
)
@@ -3054,8 +3186,8 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
"$ghide",
"$generichide",
r"\$ghide",
r"$generichide",
line
)
@@ -3066,8 +3198,8 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
",mp4",
"",
r",mp4",
r"",
line
)
@@ -3114,14 +3246,14 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
"! Homepage: https://github.com/finnish-easylist-addition/finnish-easylist-addition",
"! Finnish section's homepage: https://github.com/finnish-easylist-addition/finnish-easylist-addition",
r"! Homepage: https://github\.com/finnish-easylist-addition/finnish-easylist-addition",
r"! Finnish section's homepage: https://github.com/finnish-easylist-addition/finnish-easylist-addition",
line
)
line = re.sub(
"! Homepage: https://github.com/DandelionSprout/Swedish-List-for-Adblock-Plus",
"! Swedish section's homepage: https://github.com/DandelionSprout/Swedish-List-for-Adblock-Plus",
r"! Homepage: https://github\.com/DandelionSprout/Swedish-List-for-Adblock-Plus",
r"! Swedish section's homepage: https://github.com/DandelionSprout/Swedish-List-for-Adblock-Plus",
line
)
@@ -3198,7 +3330,7 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
r"^(no)?#\??#optimus-element(.*:[a-eg-kmo-z].*)$",
r"^(no)?#\??#optimus-element(.*:[a-eg-kmo-z])",
r"aasanetidende.no,aasavis.no,akersposten.no,amta.no,an.no,ao.no,auraavis.no,austagderblad.no,avisa-hordaland.no,avisagaula.no,avisenagder.no,ba.no,blv.no,budstikka.no,bygdebladet.no,bygdeposten.no,dalane-tidende.no,dt.no,eikerbladet.no,enebakkavis.no,f-b.no,fanaposten.no,firda.no,firdaposten.no,fremover.no,gbnett.no,gjengangeren.no,glomdalen.no,h-a.no,h-avis.no,ha-halden.no,hadeland.no,hardanger-folkeblad.no,helg.no,ialta.no,ifinnmark.no,ifinnmarkdebatten.no,iharstad.no,ilevanger.no,inderoyningen.no,indre.no,isandnessjoen.no,jarlsbergavis.no,jbl.no,kirkenesby.no,krs.no,kv.no,kvinnheringen.no,laagendalsposten.no,lierposten.no,lofot-tidende.no,lofotposten.no,lyngdalsavis.no,merakerposten.no,minenergi.no,mitthammerfest.no,mittjessheim.no,mittlillestrom.no,mittloerenskog.no,moss-avis.no,nab.no,namdalsavisa.no,nettavisen.no,nidaros.no,noblad.no,nord24.no,nordhordland.no,nordlys.no,nordnorskdebatt.no,nt24.no,oa.no,oblad.no,op.no,ostlendingen.no,oyene.no,r-a.no,rablad.no,ranablad.no,rb.no,retten.no,rha.no,ringblad.no,ringsaker-blad.no,sa.no,sageneavis.no,sandeavis.no,sandnesposten.no,sb.no,senja247.no,smaalenene.no,snasningen.no,sognavis.no,solabladet.no,solungavisa.no,steinkjer-avisa.no,strandbuen.no,sva.no,svelviksposten.no,sydvesten.no,t-a.no,ta.no,tb.no,telen.no,tk.no,totenidag.no,tromsoby.no,tronderdebatt.no,tvedestrandsposten.no,varingen.no,vestbyavis.no,vestviken24.no,vp.no#?#optimus-element\2",
line
)
@@ -3210,14 +3342,14 @@ def prepare_abp(lines) -> str:
)
line = re.sub(
r"^(! If you wish to remove.*)$",
r"^(! If you wish to remove.*)",
r"!•\n\1\n!•\n! If you see “/v3/full/“ in the list's URL or a “! DiffUrl:“ row above, while you're using Firefox, ABP 3.x, or a non-ABP extension, then you have been scammed and must change the list subscription to https://easylist-downloads.adblockplus.org/dandelion_sprouts_nordic_filters+easylist.txt immediately. However, if you use ABP 4.x in Chrome, there is no reason to worry.\n!•",
line
)
line = re.sub(
"\$popup,~inline-font",
"$popup",
r"\$popup,~inline-font",
r"$popup",
line
)