aboutsummaryrefslogtreecommitdiff
path: root/src/Bangs.hs
diff options
context:
space:
mode:
authorLia Lenckowski <lialenck@protonmail.com>2023-07-29 15:27:21 +0200
committerLia Lenckowski <lialenck@protonmail.com>2023-07-29 15:27:21 +0200
commit9dc2650910bcca92980f0b16fbd5e9e8c94c0473 (patch)
tree28b6072c665e2dcdcd9eb9e5c891ce5a58236d88 /src/Bangs.hs
parentbdcd8fa39bc697d5ab2f10c6d600a78bfcbfdf34 (diff)
downloadfastbangs-9dc2650910bcca92980f0b16fbd5e9e8c94c0473.tar
fastbangs-9dc2650910bcca92980f0b16fbd5e9e8c94c0473.tar.bz2
fastbangs-9dc2650910bcca92980f0b16fbd5e9e8c94c0473.tar.zst
(prototype) authentication, route for getting pending bangs
Diffstat (limited to 'src/Bangs.hs')
-rw-r--r--src/Bangs.hs47
1 files changed, 0 insertions, 47 deletions
diff --git a/src/Bangs.hs b/src/Bangs.hs
deleted file mode 100644
index 02ec02c..0000000
--- a/src/Bangs.hs
+++ /dev/null
@@ -1,47 +0,0 @@
-{-# LANGUAGE OverloadedStrings, DeriveGeneric #-}
-
-module Bangs (
- DDGBangs,
- toBangs,
- Bangs
-) where
-
-import GHC.Prim
-import GHC.Generics (Generic)
-import Data.Aeson
-import Data.Text (Text)
-import qualified Data.Map.Strict as M
-
--- M.Map BangName (SearchUrl, DisplayName)
-newtype Bangs = Bangs {
- unBangs :: M.Map Text (Text, Text)
-} deriving (Show, Generic)
-
-instance FromJSON Bangs where
- parseJSON b = parseJSON b >>= fmap Bangs . sequence . fmap getInfo
- where getInfo v = (,) <$> v .: "url" <*> v .: "name"
-
-instance ToJSON Bangs where
- toJSON (Bangs m) = toJSON
- $ (\(url, name) -> object ["url" .= url, "name" .= name])
- <$> m
-
- -- TODO toEncoding. semi important; makes startup/updates faster
-
-newtype DDGBangs = DDGBangs (M.Map Text (Text, Text)) deriving (Show)
-toBangs :: DDGBangs -> Bangs
-toBangs = coerce
-
-instance FromJSON DDGBangs where
- parseJSON b = fmap (DDGBangs . M.fromList)
- $ parseJSON b
- >>= mapM
- (\ob -> (,) <$> ob .: "t" <*> ((,) <$> ob .: "u" <*> ob .: "s"))
-
--- left-biased union
-instance Semigroup Bangs where
- Bangs a <> Bangs b = Bangs $ a `M.union` b
-
-instance Monoid Bangs where
- mempty = Bangs M.empty
- mconcat = Bangs . M.unions . map unBangs