summaryrefslogtreecommitdiff
path: root/src/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main.hs')
-rw-r--r--src/Main.hs12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/Main.hs b/src/Main.hs
index c49b02d..458ed9f 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ViewPatterns #-}
@@ -33,6 +34,7 @@ import Network.HTTP.Server.Mini.Internal.Instrument (atomicPrintS)
import Calendar
import Config
+import EscapeXML
import Index
import Util
import ZNC
@@ -114,9 +116,9 @@ pageLog conf pages index req alias =
pad '0' 2 h ++ ':' : pad '0' 2 mi ++ ':' : pad '0' 2 s
,"linkid" ~> eid
,"nickwrap1" ~> nickw1
- ,"nick" ~> nick
+ ,"nickE" ~> escapeXML nick
,"nickwrap2" ~> nickw2
- ,"message" ~> msg]
+ ,"messageE" ~> escapeXML msg]
| ((time, eid, ev), dayidx) <- zip events [0..]
, let (classlist, (nickw1, nick, nickw2), msg) = renderEvent ev]]
where
@@ -157,9 +159,9 @@ pageCalendarDay conf pages index req alias datestr =
in pad '0' 2 h ++ ':' : pad '0' 2 mi ++ ':' : pad '0' 2 s
,"linkid" ~> eid
,"nickwrap1" ~> nickw1
- ,"nick" ~> nick
+ ,"nickE" ~> escapeXML nick
,"nickwrap2" ~> nickw2
- ,"message" ~> msg]
+ ,"messageE" ~> escapeXML msg]
| ((time, eid, ev), dayidx) <- zip events [0..]
, let (classlist, (nickw1, nick, nickw2), msg) = renderEvent ev]]
where
@@ -191,7 +193,7 @@ renderEvent = \case
Part n addr reas -> (j "ev-leave", (no, "", j "←"), n <> " parts (" <> addr <> ") (" <> reas <> ")")
Quit n addr reas -> (j "ev-leave", (no, "", j "×"), n <> " quits (" <> addr <> ") (" <> reas <> ")")
ReNick n n' -> (j "ev-meta", (no, n, no), "is now known as " <> n')
- Talk n m -> (no, (j "<", n, j ">"), m)
+ Talk n m -> (no, (j "&lt;", n, j "&gt;"), m)
Notice n m -> (j "ev-notice", (j "-", n, j "-"), m)
Act n m -> (j "ev-act", (no, n, no), m)
Kick n by reas -> (j "ev-meta", (no, n, no), "is kicked by " <> by <> " (" <> reas <> ")")