-- | Miscellaneous utilities for various parts of the library
module Reddit.Utilities
  ( unescape ) where

import Data.Text (Text)
import qualified Data.Text as Text

-- | Quick-'n'-dirty unescaping function for posts / wiki pages etc..
unescape :: Text -> Text
unescape :: Text -> Text
unescape = Text -> Text -> Text -> Text
replace Text
">" Text
">" (Text -> Text) -> (Text -> Text) -> Text -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Text -> Text -> Text
replace Text
"<" Text
"<" (Text -> Text) -> (Text -> Text) -> Text -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Text -> Text -> Text
replace Text
"&amp;" Text
"&"

-- | Swap all instances of a certain string in another string
replace :: Text -- ^ String to replace
        -> Text -- ^ String to replace with
        -> Text -- ^ String to search
        -> Text
replace :: Text -> Text -> Text -> Text
replace Text
s Text
r = Text -> [Text] -> Text
Text.intercalate Text
r ([Text] -> Text) -> (Text -> [Text]) -> Text -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Text -> [Text]
Text.splitOn Text
s