summaryrefslogtreecommitdiffhomepage
path: root/Gpg/Wot.hs
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2022-05-22 14:52:14 -0700
committerSean Whitton <spwhitton@spwhitton.name>2022-05-22 14:52:14 -0700
commita49322636dc8671e959f68b13791e596c65a3338 (patch)
tree6b82ca7f4588b36b487aad5aa10fd1207256cd13 /Gpg/Wot.hs
parent31f68db1ac80bb163e040dcb15a0cf6009e0260c (diff)
parentdc753f6815f5b8906ae54ebee801b72c60cdef3a (diff)
downloaddebug-me-a49322636dc8671e959f68b13791e596c65a3338.tar.gz
Merge tag '1.20220324'
tagging package debug-me version 1.20220324 # gpg: Signature made Thu 24 Mar 2022 09:28:11 AM MST # gpg: using RSA key 28A500C35207EAB72F6C0F25DB12DB0FF05F8F38 # gpg: Good signature from "Joey Hess <joeyh@joeyh.name>" [full] # Primary key fingerprint: E85A 5F63 B31D 24C1 EBF0 D81C C910 D922 2512 E3C7 # Subkey fingerprint: 28A5 00C3 5207 EAB7 2F6C 0F25 DB12 DB0F F05F 8F38
Diffstat (limited to 'Gpg/Wot.hs')
-rw-r--r--Gpg/Wot.hs13
1 files changed, 12 insertions, 1 deletions
diff --git a/Gpg/Wot.hs b/Gpg/Wot.hs
index 2a6d541..d916ebc 100644
--- a/Gpg/Wot.hs
+++ b/Gpg/Wot.hs
@@ -3,6 +3,7 @@
- Licensed under the GNU AGPL version 3 or higher.
-}
+{-# LANGUAGE CPP #-}
{-# LANGUAGE DeriveGeneric #-}
-- | Gpg web of trust checking, using wotsap's JSON output
@@ -15,8 +16,13 @@ import JSON
import Network.HTTP.Client
import Network.HTTP.Client.TLS
import Data.List
-import qualified Data.HashMap.Strict as M
import qualified Data.Text as T
+#if MIN_VERSION_aeson(2, 0, 0)
+import qualified Data.Aeson.KeyMap as AM
+import qualified Data.Aeson.Key as AK
+#else
+import qualified Data.HashMap.Strict as M
+#endif
data WotStats = WotStats
{ key :: Node
@@ -43,9 +49,14 @@ data Node = Node
-- | wotsap's json has some upper-case fields; lowercase field for parsing
jsonLower :: Value -> Value
+#if MIN_VERSION_aeson(2, 0, 0)
+jsonLower (Object o) = Object . AM.mapKeyVal lowerKey id $ o
+ where lowerKey = AK.fromText . T.toLower . AK.toText
+#else
jsonLower (Object o) = Object . M.fromList . map lowerPair . M.toList $ o
where
lowerPair (k, v) = (T.toLower k, v)
+#endif
jsonLower x = x
instance FromJSON WotStats where