diff --git a/NorwegianExperimentalList alternate versions/NordicFiltersABP-Inclusion.txt b/NorwegianExperimentalList alternate versions/NordicFiltersABP-Inclusion.txt index 9c45c688b..fb13c5d5d 100644 --- a/NorwegianExperimentalList alternate versions/NordicFiltersABP-Inclusion.txt +++ b/NorwegianExperimentalList alternate versions/NordicFiltersABP-Inclusion.txt @@ -1,7 +1,7 @@ [Adblock Plus 3.13] ! Title: 🏔️ Dandelion Sprouts helnordiske filtre (Møter ABPs inkluderingsregler — Firefox ≥121, Chrom* ≥105) ! Title 🇬🇧: Dandelion Sprout's All-Nordic filters (With ABP inclusion compliance — Firefox ≥121, Chrom* ≥105) -! Version: 280520251 +! Version: 300520251 ! Expires: 18 hours ! Lisens / Licence: https://github.com/DandelionSprout/adfilt/blob/master/LICENSE.md ! Homepage: https://github.com/DandelionSprout/adfilt/blob/master/Wiki/General-info.md @@ -1275,6 +1275,8 @@ kunmedierne.dk##.dvrt kunmedierne.dk##a.dvrt-link ~ .posts-slider politiken.dk###js-ad-grid politiken.dk##.js-ad-elem +kjavis.dk##div[id^=td_uid_1_] +kjavis.dk##aside[class^="widget_text "]:has(.averticement) ! — — — — — — — — — ! 🇳🇴:Oppføringer for minst 3 nettsteder ! 🇬🇧:Entries for at least 3 websites @@ -1727,6 +1729,31 @@ _1170x400.$domain=eyjafrettir.is,image,~third-party ||fotballen.eu/20*casino.$image ||sportsidioten.no/wp-content/uploads/*-oslo-sportslager-pc.$image ||counter4all.dk/wp-content/uploads/*-300x250.$image +||kjavis.dk/wp-content/uploads/20*/900x180_$image +||kjavis.dk/wp-content/uploads/20*-Banner-$image +||kjavis.dk/wp-content/uploads/20*/Ann-$image +||kjavis.dk/wp-content/uploads/20*/jme3.png^$image +||kjavis.dk/wp-content/uploads/20*_300x250px_$image +||kjavis.dk/wp-content/uploads/20*/Vaffelhuset-1.png$image +||kjavis.dk/wp-content/uploads/20*/Ryobi-Slag-JPEG.$image +||kjavis.dk/wp-content/uploads/20*/berghodt.jpg^$image +||kjavis.dk/wp-content/uploads/20*_ann_$image +||kjavis.dk/wp-content/uploads/20*/annonce-$image +||kjavis.dk/wp-content/uploads/20*/Marslev-cykler-1.png$image +||kjavis.dk/wp-content/uploads/20*/Kirkeladen.png^$image +||kjavis.dk/wp-content/uploads/20*/Aeldresagen-1-$image +||kjavis.dk/wp-content/uploads/20*/Cykelgaarden-1.png$image +||kjavis.dk/wp-content/uploads/20*/930X120_$image +||kjavis.dk/wp-content/uploads/20*/vvs-eks.png^$image +||kjavis.dk/wp-content/uploads/2025/04/Byg.png|$image +||kjavis.dk/wp-content/uploads/2025/01/breg.png|$image +||kjavis.dk/wp-content/uploads/20*/930x180_$image +||kjavis.dk/wp-content/uploads/20*/Benedikte-1.png|$image +||kjavis.dk/wp-content/uploads/20*/Munkebo-kro.png|$image +||kjavis.dk/wp-content/uploads/20*/20-3.jpg|$image +||kjavis.dk/wp-content/uploads/20*/Topann-$image +||kjavis.dk/wp-content/uploads/20*/ellinge4.png|$image +||www.hvidovreavis.dk/media/*/hvidover-*-1080x1080.$image ! — — — — — — — ! 🇳🇴:Filtjener- eller nettstedsspesifikke oppføringer med kilder ! 🇳🇴🏞:Filtenar- eller nettstadsspesifikke oppføringar med kildar @@ -1771,6 +1798,10 @@ _1170x400.$domain=eyjafrettir.is,image,~third-party ! politikenDK (08/02/2025) ://aj2*.online^$xmlhttprequest ://aj2*.bid^$xmlhttprequest +! skagensavisDK (30/05/2025) +/wp-content/uploads/i123_ads^$image +! hvidovreavisDK (30/05/2025) +.dk/media/*-topbanner-$image ! — — — — — ! 🇳🇴:Generelle oppføringer med kilder ! 🇬🇧:Generic entries that have sources @@ -2090,6 +2121,8 @@ tv2.no##.aside > .ad-container ##.yb-top-spot:not(html,body,:empty) ! frolendingenNO, ytringenNO (20/05/2025) ##.nf-o-moduleblock-module:has(> .nf-o-annonse) +! flaDE (30/05/2025) +##.component__pubble-banner:not(html,body,:empty) ! — — — — — — — ! 🇳🇴:Oppføringer med spesielle omstendigheter ! 🇬🇧:Entries with special circumstances diff --git a/NorwegianExperimentalList alternate versions/XYZPrepareFilters.py b/NorwegianExperimentalList alternate versions/XYZPrepareFilters.py index 16e0c0a33..0f2cf9212 100644 --- a/NorwegianExperimentalList alternate versions/XYZPrepareFilters.py +++ b/NorwegianExperimentalList alternate versions/XYZPrepareFilters.py @@ -276,6 +276,12 @@ def prepare_ag(lines) -> str: line ) + line = re.sub( + r"^((\|\||://)?[12]?\d?\d?\.[12]?\d?\d?\.[12]?\d?\d?\.[12]?\d?\d?\^(\$(doc(ument)?.*?|all.*?))?)$", + r"!+ NOT_PLATFORM(windows, mac, android, cli)\n\1", + line + ) + text += line + '\n' return text @@ -4751,8 +4757,7 @@ UNSUPPORTED_ABP = ['$important', ',important' '$redirect=', ',redirect=', UNSUPPORTED_TPL = ['##', '#@#', '#?#', r'\.no\.$', '/^', 'version.bind', 'pizzaseo.com', 'gamecopyworld', ': ', 'duckdns.org', '$dnstype'] UNSUPPORTED_PRIVOXY = ['##', '#@#', '#?#', '@@', '!#', '/^', 'gamecopyworld', '://', '$dnstype'] UNSUPPORTED_HOSTS = ['##', '#@#', '#?#', '@@', '[Adblock Plus 3.', '*', '/^', 'duckdns.org'] -UNSUPPORTED_AGH = ['$redirect=', ',redirect=', - '##', '.*#' , '#?#', 'gamecopyworld', 'version.bind', 'hostname.bind', '|id.server|', '$app'] +UNSUPPORTED_AGH = ['$redirect='] OUTPUT = 'Anti-Malware List\\xyzzyx.txt' OUTPUT_AG = 'Anti-Malware List\\AntiMalwareAdGuard.txt' @@ -5048,6 +5053,12 @@ def prepare_ag(lines) -> str: line ) + line = re.sub( + r"^((\|\||://)?[12]?\d?\d?\.[12]?\d?\d?\.[12]?\d?\d?\.[12]?\d?\d?\^(\$(doc(ument)?.*?|all.*?))?)$", + r"!+ NOT_PLATFORM(windows, mac, android, cli)\n\1", + line + ) + text += line + '\n' return text @@ -6620,24 +6631,12 @@ def prepare_agh(lines) -> str: line ) - line = re.sub( - r"^(\|\|)([a-z]{1,}\^)\$doc,domain=~(.*)$", - r"\1\2\n@@||\3", - line - ) - line = re.sub( r"^\|\|([a-z]{2,17})\^", r"||*.\1^", line ) - line = re.sub( - r"^.*google\.(tk|ml).*$", - r"", - line - ) - line = re.sub( "\$denyallow=~", "$denyallow=", @@ -6656,12 +6655,6 @@ def prepare_agh(lines) -> str: line ) - line = re.sub( - ",important", - "", - line - ) - line = re.sub( "Dandelion Sprout's Anti-Malware List", "Dandelion Sprout's Anti-Malware List (for AdGuard Home, AdGuard for Android/Windows/macOS' DNS filtering, and Pi-Hole FTL ≥5.22)", @@ -6680,24 +6673,6 @@ def prepare_agh(lines) -> str: line ) - line = re.sub( - r"^! Redirect:.*$", - "", - line - ) - - line = re.sub( - r"~ Warning.*$", - r"", - line - ) - - line = re.sub( - r"\^\$$", - "^", - line - ) - line = re.sub( "\$image", "", @@ -6705,20 +6680,14 @@ def prepare_agh(lines) -> str: ) line = re.sub( - "domain=", - "", + r"^(.*)[$,]domain=~[a-z0-9._*-]{1,}$", + "\1", line ) line = re.sub( - r"\$1.*$", - "", - line - ) - - line = re.sub( - r"^\|\|\.", - r"||*.", + r"^(.*)\$1.*$", + r"\1", line ) @@ -6735,38 +6704,14 @@ def prepare_agh(lines) -> str: ) line = re.sub( - r"(.*\.168\.192\.)$", - r"||\1in-addr.arpa^", + r"^(.*)\$doc$", + r"\1", line ) line = re.sub( - r"\$doc$", - r"", - line - ) - - line = re.sub( - r"^.*\$all,.*\..*$", - r"", - line - ) - - line = re.sub( - r"\$all,(.*)?$", - r"", - line - ) - - line = re.sub( - r"/(live|fun|popup)([,|]|$).*$", - r"/", - line - ) - - line = re.sub( - r"\$all$", - r"", + r"^(.*)\$all$", + r"\1", line ) @@ -6782,36 +6727,12 @@ def prepare_agh(lines) -> str: # line #) - line = re.sub( - r"^.* bounty .*$", - r"", - line - ) - - line = re.sub( - r"^\$.*$", - r"", - line - ) - line = re.sub( r"^@?@?\|\|.*/.*$", r"", line ) - line = re.sub( - "\^popup", - "^", - line - ) - - line = re.sub( - r"^!if .*$", - r"", - line - ) - line = re.sub( r"^!#include .*$", r"", @@ -6836,18 +6757,6 @@ def prepare_agh(lines) -> str: line ) - line = re.sub( - r"/match-case,", - r"$match-case,", - line - ) - - line = re.sub( - r"^@?@?\|\|[a-z0-9.-]{1,}\|[a-z0-9.-].*$", - r"", - line - ) - line = re.sub( r"^.*\.png\^.*$", r"", @@ -6861,44 +6770,18 @@ def prepare_agh(lines) -> str: # line #) - line = re.sub( - "\^dnstype=", - "^$dnstype=", - line - ) - line = re.sub( r"^.*\$popup$", r"", line ) - # Test 20th of December 2022; see https://github.com/AdguardTeam/HostlistCompiler/issues/42 - line = re.sub( - r"^\|\|([a-z]{2,})\^$", - r"||*.\1^", - line - ) - line = re.sub( r"^.*\*&\*=\*&\*.*$", r"", line ) - # Needed due to https://github.com/AdguardTeam/HostlistCompiler/issues/42#issuecomment-1360494184, despite a lack of testing - line = re.sub( - r"^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.\*\$network$", - r"/^\1\\.\2\\.\3\\.[0-9]{1,3}$/", - line - ) - - line = re.sub( - r"/\$network$", - r"/", - line - ) - line = re.sub( r"^(\||/|:).*[&%].*$", r"", @@ -6906,25 +6789,7 @@ def prepare_agh(lines) -> str: ) line = re.sub( - r"@@\|\|[a-zA-Z0-9.-]{0,}\|[a-zA-Z0-9.-].*$", - r"", - line - ) - - line = re.sub( - r"^\|\|amazonaws\.com(\^)?($|\$[ac-z].*$)", - r"", - line - ) - - line = re.sub( - r"^.*\^,.*$", - r"", - line - ) - - line = re.sub( - r"^\|\|.*\^[a-z].*$", + r"^\|\|amazonaws\.com(\^)?$", r"", line ) @@ -6935,48 +6800,12 @@ def prepare_agh(lines) -> str: # line #) - line = re.sub( - r"(@@\|\|[a-z0-9.-]{1,})$", - r"\1^", - line - ) - - line = re.sub( - "\^\^", - "^", - line - ) - - line = re.sub( - r"^.*/script,subdocument,image$", - r"", - line - ) - - line = re.sub( - r"^\?.*$", - r"", - line - ) - line = re.sub( r"^[:/|].*=$", r"", line ) - line = re.sub( - r"^.*\^\$[a-z-]{1,}[.|].*$", - r"", - line - ) - - line = re.sub( - r"\.denyallow=", - r".$denyallow=", - line - ) - #line = re.sub( # r"(denyallow=.*),", # r"\1|", @@ -6984,29 +6813,11 @@ def prepare_agh(lines) -> str: #) line = re.sub( - r"^! Placeholder line for alternate list versions", + r"^! Placeholder line for alternate list versions$", r"/^172\\.255\\.6\\.(\\d\\d?|2.*|1[0-689].*|17[0-689])$/", line ) - line = re.sub( - r"^(\||:|/|[a-zA-Z0-9]|\*)[a-zA-Z0-9./-]{1,}, .*$", - r"", - line - ) - - line = re.sub( - r"^@@\|\|[a-z0-9-]{0,}(\^|\*)?$", - r"", - line - ) - - line = re.sub( - "\^~", - "^$denyallow=", - line - ) - line = re.sub( r"^(\|\|(\*\.)?[a-z]{2,30}\^)\$denyallow(.*)$", r"\1$dnstype=~CNAME,denyallow\3", @@ -7020,17 +6831,131 @@ def prepare_agh(lines) -> str: ) line = re.sub( - r"^.*[,$]ipaddress.*$", + r"^.*[,$]ipaddress=\d.*$", r"", line ) line = re.sub( - r"^[a-zA-Z0-9*,:;^$=?!+&%#@/_-]{1,5}$", + r"^(.*)\$doc(ument)?,popup$", + r"\1", + line + ) + + line = re.sub( + r"^.*\$frame,third-party$", r"", line ) + line = re.sub( + r"^(.*)\$all,~inline-font$", + r"\1", + line + ) + + line = re.sub( + r"^.*\.mp3\^.*$", + r"", + line + ) + + line = re.sub( + r"^(.*denyallow=.*),domain=.*$", + r"\1", + line + ) + + line = re.sub( + r"^(.*)\$doc(ument)?,denyallow=(.*)$", + r"\1$denyallow=\3", + line + ) + + line = re.sub( + r"^(.*)\$doc(ument)?$", + r"\1", + line + ) + + line = re.sub( + r"^.*\$doc,domain=.*$", + r"", + line + ) + + line = re.sub( + r"^.*\^\$domain=[a-z].*$", + r"", + line + ) + + line = re.sub( + r"^.*?[a-z*]?#.*$", + r"", + line + ) + + line = re.sub( + r"^(.*)\$doc(ument)?,script,subdocument,image$", + r"", + line + ) + + line = re.sub( + r"^[:|/].*([a-z0-9]|\])/([a-z0-9]|\[).*$", + r"", + line + ) + + line = re.sub( + r"^\*?\$(all,)?ipaddress=(/.*)$", + r"\2", + line + ) + + line = re.sub( + r"^.*\$csp=.*$", + r"", + line + ) + + line = re.sub( + r"^(.*),all,~inline-font$", + r"\1", + line + ) + + line = re.sub( + r"^.*\$third-party$", + r"", + line + ) + + line = re.sub( + r"^.*,domain.*$", + r"", + line + ) + + line = re.sub( + r"^[^!].*\?url\=.*$", + r"", + line + ) + + line = re.sub( + r"^.*$", + r"", + line + ) + + line = re.sub( + r"^(.*)popup$", + r"\1", + line + ) + if is_supported_agh(line): text += line + '\n'