From 4c84f7db1d43f0b13b03fe5c3d613ac2dc54bc56 Mon Sep 17 00:00:00 2001
From: stuebinm <stuebinm@disroot.org>
Date: Sun, 26 Dec 2021 23:50:22 +0100
Subject: [PATCH] urlencode dereferrer links

---
 lib/Uris.hs  | 4 ++--
 walint.cabal | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/Uris.hs b/lib/Uris.hs
index 3aad1da..598aa46 100644
--- a/lib/Uris.hs
+++ b/lib/Uris.hs
@@ -24,7 +24,7 @@ import           GHC.Generics            (Generic)
 import           GHC.TypeLits            (KnownSymbol, symbolVal)
 import           Text.Regex.TDFA         ((=~))
 import Witherable (mapMaybe)
-
+import Network.URI.Encode as URI
 
 data Substitution =
     Prefixed { prefix :: Text, blocked :: [Text], allowed :: [Text], scope :: [String] }
@@ -98,7 +98,7 @@ applySubsts s substs uri =  do
         Prefixed {..}
           | domain `elem` blocked -> Left IsBlocked
           | domain `elem` allowed -> Right uri
-          | otherwise -> Right (prefix <> domain <> rest)
+          | otherwise -> Right (prefix <> URI.encodeText uri)
         Allowed _ domains -> if domain `elem` domains
           then Right uri
           else Left (DomainIsBlocked domains)
diff --git a/walint.cabal b/walint.cabal
index 4f03b25..100a3d0 100644
--- a/walint.cabal
+++ b/walint.cabal
@@ -56,7 +56,8 @@ library
                       extra,
                       witherable,
                       dotgen,
-                      text-metrics
+                      text-metrics,
+                      uri-encode
 
 -- TODO: move more stuff into lib, these dependencies are silly
 executable walint
-- 
GitLab