Copy changes for link filter exceptions from Sone.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 7 Oct 2011 07:32:54 +0000 (09:32 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sun, 30 Apr 2017 12:58:10 +0000 (14:58 +0200)
src/main/java/net/pterodactylus/wotns/web/FreenetPage.java [new file with mode: 0644]
src/main/java/net/pterodactylus/wotns/web/FreenetTemplatePage.java
src/main/java/net/pterodactylus/wotns/web/PageToadlet.java

diff --git a/src/main/java/net/pterodactylus/wotns/web/FreenetPage.java b/src/main/java/net/pterodactylus/wotns/web/FreenetPage.java
new file mode 100644 (file)
index 0000000..e7f313b
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * WoTNS - FreenetPage.java - Copyright © 2011–2017 David Roden
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package net.pterodactylus.wotns.web;
+
+import java.net.URI;
+
+import net.pterodactylus.util.web.Page;
+
+/**
+ * Freenet-specific {@link Page} extension that adds the capability to allow a
+ * link to a page to be unharmed by Freenet’s content filter.
+ *
+ * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
+ */
+public interface FreenetPage extends Page<FreenetRequest> {
+
+       /**
+        * Returns whether the given should be excepted from being filtered.
+        *
+        * @param link
+        *            The link to check
+        * @return {@code true} if the link should not be filtered, {@code false} if
+        *         it should be filtered
+        */
+       public boolean isLinkExcepted(URI link);
+
+}
index 03ed5f5..be51148 100644 (file)
@@ -19,6 +19,7 @@ package net.pterodactylus.wotns.web;
 
 import java.io.IOException;
 import java.io.StringWriter;
+import java.net.URI;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -47,7 +48,7 @@ import freenet.support.HTMLNode;
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
-public class FreenetTemplatePage implements Page<FreenetRequest>, LinkEnabledCallback {
+public class FreenetTemplatePage implements FreenetPage, LinkEnabledCallback {
 
        /** The logger. */
        private static final Logger logger = Logging.getLogger(FreenetTemplatePage.class);
@@ -252,6 +253,14 @@ public class FreenetTemplatePage implements Page<FreenetRequest>, LinkEnabledCal
                return false;
        }
 
+       /**
+        * {@inheritDoc}
+        */
+       @Override
+       public boolean isLinkExcepted(URI link) {
+               return false;
+       }
+
        //
        // INTERFACE LinkEnabledCallback
        //
index 09666a2..89a721a 100644 (file)
@@ -26,6 +26,7 @@ import net.pterodactylus.util.web.Page;
 import net.pterodactylus.util.web.Response;
 import freenet.client.HighLevelSimpleClient;
 import freenet.clients.http.LinkEnabledCallback;
+import freenet.clients.http.LinkFilterExceptedToadlet;
 import freenet.clients.http.Toadlet;
 import freenet.clients.http.ToadletContext;
 import freenet.clients.http.ToadletContextClosedException;
@@ -39,7 +40,7 @@ import freenet.support.io.Closer;
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
-public class PageToadlet extends Toadlet implements LinkEnabledCallback {
+public class PageToadlet extends Toadlet implements LinkEnabledCallback, LinkFilterExceptedToadlet {
 
        /** The name of the menu item. */
        private final String menuName;
@@ -174,4 +175,16 @@ public class PageToadlet extends Toadlet implements LinkEnabledCallback {
                return true;
        }
 
+       //
+       // LINKFILTEREXCEPTEDTOADLET METHODS
+       //
+
+       /**
+        * {@inheritDoc}
+        */
+       @Override
+       public boolean isLinkExcepted(URI link) {
+               return (page instanceof FreenetPage) ? ((FreenetPage) page).isLinkExcepted(link) : false;
+       }
+
 }