]> git.ipfire.org Git - ipfire.org.git/commitdiff
dnsbl: Add subscribe link for ABP
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 9 Jan 2026 17:21:55 +0000 (17:21 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 9 Jan 2026 17:21:55 +0000 (17:21 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/dnsbl.py
src/templates/dnsbl/lists/show.html

index c07f7d0c2933b3cded905019958218a762748226..bae62557ff9e31b209062e68340a33a5f3a233ca 100644 (file)
@@ -4,6 +4,7 @@ import asyncio
 import datetime
 import json
 import logging
+import os.path
 import pydantic
 import tornado.httpclient
 import typing
@@ -189,6 +190,14 @@ class List(Model):
 
                return NotImplemented
 
+       # URL
+
+       def url(self, *args, **kwargs):
+               """
+                       Composes a download URL for this list
+               """
+               return os.path.join("https://dnsbl.ipfire.org/lists/%s" % self.slug, *args)
+
        # Sources
 
        async def get_sources(self):
index 85d7b299f7fd433837559a8353a8a1a42b931447..a938bedce9c69525b32fc6e966acfe4c21084a73 100644 (file)
@@ -10,6 +10,8 @@
 {% block title %}{{ _("IPFire DNSBL") }} - {{ list }}{% end block %}
 
 {% block container %}
+       {% import urllib.parse %}
+
        <section class="hero is-dark">
                <div class="hero-body">
                        <div class="container">
                                                <a>{% module IPFireLogo() %}</a>
                                        </li>
 
+                                       <li data-tab="abp">
+                                               <a>{{ _("Adblock Plus, uBlock Origin, etc.") }}</a>
+                                       </li>
+
                                        <li data-tab="rpz">
                                                <a>{{ _("Request Policy Zone (RPZ)") }}</a>
                                        </li>
                                </div>
                        </div>
 
+                       <div id="abp" class="tab-content is-hidden">
+                               <div class="content">
+                                       {# Compose the subscription URL #}
+                                       {% set url = "https://subscribe.adblockplus.org/?%s" % \
+                                               urllib.parse.urlencode({
+                                                       "location" : list.url("abp.txt"),
+                                                       "title"    : "IPFire DNSBL - %s" % list,
+                                               })
+                                       %}
+
+                                       <a class="button is-primary is-small" href="{{ url }}">
+                                               {{ _("Subscribe") }}
+                                       </a>
+                               </div>
+                       </div>
+
                        <div id="rpz" class="tab-content is-hidden">
                                <div class="content">
                                        <p>