packages feed

calamity 0.1.14.6 → 0.1.14.7

raw patch · 6 files changed

+109/−49 lines, 6 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Calamity.Commands.Parser: instance (GHC.Base.Monoid (Calamity.Commands.Parser.ParserResult a), Calamity.Commands.Parser.Parser a r) => Calamity.Commands.Parser.Parser (Calamity.Commands.Parser.KleenePlusConcat a) r
- Calamity.HTTP.AuditLog: instance Data.Aeson.Types.ToJSON.ToJSON Calamity.HTTP.AuditLog.GetAuditLogOptions
+ Calamity.Commands.Parser: instance (GHC.Base.Semigroup (Calamity.Commands.Parser.ParserResult a), Calamity.Commands.Parser.Parser a r) => Calamity.Commands.Parser.Parser (Calamity.Commands.Parser.KleenePlusConcat a) r
+ Calamity.Types.Model.Guild.AuditLog: instance GHC.Enum.Enum Calamity.Types.Model.Guild.AuditLog.AuditLogAction
- Calamity.Cache.Eff: delDM :: forall r_a9wF3. MemberWithError CacheEff r_a9wF3 => Snowflake DMChannel -> Sem r_a9wF3 ()
+ Calamity.Cache.Eff: delDM :: forall r_a9wXn. MemberWithError CacheEff r_a9wXn => Snowflake DMChannel -> Sem r_a9wXn ()
- Calamity.Cache.Eff: delGuild :: forall r_a9wEW. MemberWithError CacheEff r_a9wEW => Snowflake Guild -> Sem r_a9wEW ()
+ Calamity.Cache.Eff: delGuild :: forall r_a9wXg. MemberWithError CacheEff r_a9wXg => Snowflake Guild -> Sem r_a9wXg ()
- Calamity.Cache.Eff: delMessage :: forall r_a9wFo. MemberWithError CacheEff r_a9wFo => Snowflake Message -> Sem r_a9wFo ()
+ Calamity.Cache.Eff: delMessage :: forall r_a9wXI. MemberWithError CacheEff r_a9wXI => Snowflake Message -> Sem r_a9wXI ()
- Calamity.Cache.Eff: delUnavailableGuild :: forall r_a9wFh. MemberWithError CacheEff r_a9wFh => Snowflake Guild -> Sem r_a9wFh ()
+ Calamity.Cache.Eff: delUnavailableGuild :: forall r_a9wXB. MemberWithError CacheEff r_a9wXB => Snowflake Guild -> Sem r_a9wXB ()
- Calamity.Cache.Eff: delUser :: forall r_a9wFa. MemberWithError CacheEff r_a9wFa => Snowflake User -> Sem r_a9wFa ()
+ Calamity.Cache.Eff: delUser :: forall r_a9wXu. MemberWithError CacheEff r_a9wXu => Snowflake User -> Sem r_a9wXu ()
- Calamity.Cache.Eff: getBotUser :: forall r_a9wEO. MemberWithError CacheEff r_a9wEO => Sem r_a9wEO (Maybe User)
+ Calamity.Cache.Eff: getBotUser :: forall r_a9wX8. MemberWithError CacheEff r_a9wX8 => Sem r_a9wX8 (Maybe User)
- Calamity.Cache.Eff: getDM :: forall r_a9wF0. MemberWithError CacheEff r_a9wF0 => Snowflake DMChannel -> Sem r_a9wF0 (Maybe DMChannel)
+ Calamity.Cache.Eff: getDM :: forall r_a9wXk. MemberWithError CacheEff r_a9wXk => Snowflake DMChannel -> Sem r_a9wXk (Maybe DMChannel)
- Calamity.Cache.Eff: getDMs :: forall r_a9wF2. MemberWithError CacheEff r_a9wF2 => Sem r_a9wF2 [DMChannel]
+ Calamity.Cache.Eff: getDMs :: forall r_a9wXm. MemberWithError CacheEff r_a9wXm => Sem r_a9wXm [DMChannel]
- Calamity.Cache.Eff: getGuild :: forall r_a9wER. MemberWithError CacheEff r_a9wER => Snowflake Guild -> Sem r_a9wER (Maybe Guild)
+ Calamity.Cache.Eff: getGuild :: forall r_a9wXb. MemberWithError CacheEff r_a9wXb => Snowflake Guild -> Sem r_a9wXb (Maybe Guild)
- Calamity.Cache.Eff: getGuildChannel :: forall r_a9wET. MemberWithError CacheEff r_a9wET => Snowflake GuildChannel -> Sem r_a9wET (Maybe GuildChannel)
+ Calamity.Cache.Eff: getGuildChannel :: forall r_a9wXd. MemberWithError CacheEff r_a9wXd => Snowflake GuildChannel -> Sem r_a9wXd (Maybe GuildChannel)
- Calamity.Cache.Eff: getGuilds :: forall r_a9wEV. MemberWithError CacheEff r_a9wEV => Sem r_a9wEV [Guild]
+ Calamity.Cache.Eff: getGuilds :: forall r_a9wXf. MemberWithError CacheEff r_a9wXf => Sem r_a9wXf [Guild]
- Calamity.Cache.Eff: getMessage :: forall r_a9wFl. MemberWithError CacheEff r_a9wFl => Snowflake Message -> Sem r_a9wFl (Maybe Message)
+ Calamity.Cache.Eff: getMessage :: forall r_a9wXF. MemberWithError CacheEff r_a9wXF => Snowflake Message -> Sem r_a9wXF (Maybe Message)
- Calamity.Cache.Eff: getMessages :: forall r_a9wFn. MemberWithError CacheEff r_a9wFn => Sem r_a9wFn [Message]
+ Calamity.Cache.Eff: getMessages :: forall r_a9wXH. MemberWithError CacheEff r_a9wXH => Sem r_a9wXH [Message]
- Calamity.Cache.Eff: getUnavailableGuilds :: forall r_a9wFg. MemberWithError CacheEff r_a9wFg => Sem r_a9wFg [Snowflake Guild]
+ Calamity.Cache.Eff: getUnavailableGuilds :: forall r_a9wXA. MemberWithError CacheEff r_a9wXA => Sem r_a9wXA [Snowflake Guild]
- Calamity.Cache.Eff: getUser :: forall r_a9wF7. MemberWithError CacheEff r_a9wF7 => Snowflake User -> Sem r_a9wF7 (Maybe User)
+ Calamity.Cache.Eff: getUser :: forall r_a9wXr. MemberWithError CacheEff r_a9wXr => Snowflake User -> Sem r_a9wXr (Maybe User)
- Calamity.Cache.Eff: getUsers :: forall r_a9wF9. MemberWithError CacheEff r_a9wF9 => Sem r_a9wF9 [User]
+ Calamity.Cache.Eff: getUsers :: forall r_a9wXt. MemberWithError CacheEff r_a9wXt => Sem r_a9wXt [User]
- Calamity.Cache.Eff: isUnavailableGuild :: forall r_a9wFe. MemberWithError CacheEff r_a9wFe => Snowflake Guild -> Sem r_a9wFe Bool
+ Calamity.Cache.Eff: isUnavailableGuild :: forall r_a9wXy. MemberWithError CacheEff r_a9wXy => Snowflake Guild -> Sem r_a9wXy Bool
- Calamity.Cache.Eff: setBotUser :: forall r_a9wEM. MemberWithError CacheEff r_a9wEM => User -> Sem r_a9wEM ()
+ Calamity.Cache.Eff: setBotUser :: forall r_a9wX6. MemberWithError CacheEff r_a9wX6 => User -> Sem r_a9wX6 ()
- Calamity.Cache.Eff: setDM :: forall r_a9wEY. MemberWithError CacheEff r_a9wEY => DMChannel -> Sem r_a9wEY ()
+ Calamity.Cache.Eff: setDM :: forall r_a9wXi. MemberWithError CacheEff r_a9wXi => DMChannel -> Sem r_a9wXi ()
- Calamity.Cache.Eff: setGuild :: forall r_a9wEP. MemberWithError CacheEff r_a9wEP => Guild -> Sem r_a9wEP ()
+ Calamity.Cache.Eff: setGuild :: forall r_a9wX9. MemberWithError CacheEff r_a9wX9 => Guild -> Sem r_a9wX9 ()
- Calamity.Cache.Eff: setMessage :: forall r_a9wFj. MemberWithError CacheEff r_a9wFj => Message -> Sem r_a9wFj ()
+ Calamity.Cache.Eff: setMessage :: forall r_a9wXD. MemberWithError CacheEff r_a9wXD => Message -> Sem r_a9wXD ()
- Calamity.Cache.Eff: setUnavailableGuild :: forall r_a9wFc. MemberWithError CacheEff r_a9wFc => Snowflake Guild -> Sem r_a9wFc ()
+ Calamity.Cache.Eff: setUnavailableGuild :: forall r_a9wXw. MemberWithError CacheEff r_a9wXw => Snowflake Guild -> Sem r_a9wXw ()
- Calamity.Cache.Eff: setUser :: forall r_a9wF5. MemberWithError CacheEff r_a9wF5 => User -> Sem r_a9wF5 ()
+ Calamity.Cache.Eff: setUser :: forall r_a9wXp. MemberWithError CacheEff r_a9wXp => User -> Sem r_a9wXp ()
- Calamity.Commands.ParsePrefix: parsePrefix :: forall r_a79QD. MemberWithError ParsePrefix r_a79QD => Message -> Sem r_a79QD (Maybe (Text, Text))
+ Calamity.Commands.ParsePrefix: parsePrefix :: forall r_a7a8X. MemberWithError ParsePrefix r_a7a8X => Message -> Sem r_a7a8X (Maybe (Text, Text))
- Calamity.HTTP.AuditLog: [GetAuditLog] :: HasID Guild g => g -> AuditLogRequest AuditLog
+ Calamity.HTTP.AuditLog: [GetAuditLog] :: HasID Guild g => g -> GetAuditLogOptions -> AuditLogRequest AuditLog

Files

ChangeLog.md view
@@ -1,5 +1,11 @@ # Changelog for Calamity +## 0.1.14.7++*2020-06-21*++* Fix missing usage of GetAuditLogOptions in GetAuditLog+ ## 0.1.14.6  *2020-06-18*
calamity.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 2086b0049d6b378a9ae414918e814465d2f693c8c0d59cd2ab0c6817275ccc30+-- hash: 8d7e2384272bd3170cf997e20fa3c1aa01a622aa2f515fda81b9cde2ee1dd641  name:           calamity-version:        0.1.14.6+version:        0.1.14.7 synopsis:       A library for writing discord bots in haskell description:    Please see the README on GitHub at <https://github.com/nitros12/calamity#readme> category:       Network, Web
src/Calamity/Commands/Parser.hs view
@@ -174,7 +174,7 @@ -- @'KleenePlusConcat' 'L.Text'@ Is therefore consumes all remaining input. data KleenePlusConcat (a :: Type) -instance (Monoid (ParserResult a), Parser a r) => Parser (KleenePlusConcat a) r where+instance (Semigroup (ParserResult a), Parser a r) => Parser (KleenePlusConcat a) r where   type ParserResult (KleenePlusConcat a) = ParserResult a    parse = sconcat <$> parse @(NonEmpty a)@@ -194,18 +194,23 @@ instance Typeable (Snowflake a) => Parser (Snowflake a) r where   parse = parseMP (parserName @(Snowflake a)) snowflake +-- | Accepts both plain IDs and mentions instance {-# OVERLAPS #-}Parser (Snowflake User) r where   parse = parseMP (parserName @(Snowflake User)) (try (ping "@") <|> snowflake) +-- | Accepts both plain IDs and mentions instance {-# OVERLAPS #-}Parser (Snowflake Member) r where   parse = parseMP (parserName @(Snowflake Member)) (try (ping "@") <|> snowflake) +-- | Accepts both plain IDs and mentions instance {-# OVERLAPS #-}Parser (Snowflake Channel) r where   parse = parseMP (parserName @(Snowflake Channel)) (try (ping "#") <|> snowflake) +-- | Accepts both plain IDs and mentions instance {-# OVERLAPS #-}Parser (Snowflake Role) r where   parse = parseMP (parserName @(Snowflake Role)) (try (ping "@&") <|> snowflake) +-- | Accepts both plain IDs and uses of emoji instance {-# OVERLAPS #-}Parser (Snowflake Emoji) r where   parse = parseMP (parserName @(Snowflake Emoji)) (try emoji <|> snowflake) @@ -273,6 +278,7 @@               ctx <- P.ask               pure $ ctx ^? #guild . _Just . #emojis . ix eid) +-- | Parses both discord emojis, and unicode emojis instance Parser RawEmoji r where   parse = parseMP (parserName @RawEmoji) (try parseCustomEmoji <|> (UnicodeEmoji <$> takeP (Just "A unicode emoji") 1))     where parseCustomEmoji = CustomEmoji <$> partialEmoji
src/Calamity/HTTP/AuditLog.hs view
@@ -5,20 +5,23 @@  import           Calamity.HTTP.Internal.Request import           Calamity.HTTP.Internal.Route-import           Calamity.Internal.AesonThings import           Calamity.Internal.Utils        () import           Calamity.Types.Model.Guild import           Calamity.Types.Model.User import           Calamity.Types.Snowflake -import           Data.Aeson+import           Control.Lens+import           Control.Arrow                  ( (>>>) )+ import           Data.Default.Class-import           Data.Function+import           Data.Maybe                     ( maybeToList )  import           GHC.Generics  import           Network.Wreq +import           TextShow                       ( showt )+ data GetAuditLogOptions = GetAuditLogOptions   { userID     :: Maybe (Snowflake User)   , actionType :: Maybe AuditLogAction@@ -26,16 +29,19 @@   , limit      :: Maybe Integer   }   deriving ( Show, Generic, Default )-  deriving ( ToJSON ) via CalamityJSON GetAuditLogOptions  data AuditLogRequest a where-  GetAuditLog :: HasID Guild g => g -> AuditLogRequest AuditLog+  GetAuditLog :: HasID Guild g => g -> GetAuditLogOptions -> AuditLogRequest AuditLog  instance Request (AuditLogRequest a) where   type Result (AuditLogRequest a) = a -  route (GetAuditLog (getID @Guild -> gid)) = mkRouteBuilder // S "guilds" // ID @Guild // S "audit-logs"+  route (GetAuditLog (getID @Guild -> gid) _) = mkRouteBuilder // S "guilds" // ID @Guild // S "audit-logs"     & giveID gid     & buildRoute -  action (GetAuditLog _) = getWith+  action (GetAuditLog _ GetAuditLogOptions { userID, actionType, before, limit }) = getWithP+    (param "user_id" .~ maybeToList (showt <$> userID) >>>+     param "action_type" .~ maybeToList (showt .fromEnum <$> actionType) >>>+     param "before" .~ maybeToList (showt <$> before) >>>+     param "limit" .~ maybeToList (showt <$> limit))
src/Calamity/HTTP/Channel.hs view
@@ -257,8 +257,9 @@   action DeleteOwnReaction {} = deleteWith   action DeleteUserReaction {} = deleteWith   action (GetReactions _ _ _ GetReactionsOptions { before, after, limit }) = getWithP-    (param "before" .~ maybeToList (showt <$> before) >>> param "after" .~ maybeToList (showt <$> after) >>> param-     "limit" .~ maybeToList (showt <$> limit))+    (param "before" .~ maybeToList (showt <$> before) >>>+     param "after" .~ maybeToList (showt <$> after) >>>+     param "limit" .~ maybeToList (showt <$> limit))   action (DeleteAllReactions _ _) = deleteWith   action (EditMessage _ _ content embed) = patchWith' (object ["content" .= content, "embed" .= embed])   action (DeleteMessage _ _) = deleteWith
src/Calamity/Types/Model/Guild/AuditLog.hs view
@@ -107,9 +107,85 @@   deriving ( Show, Generic )   deriving ( TextShow ) via TSG.FromGeneric AuditLogAction +instance Enum AuditLogAction where+  toEnum v = case v of+      1  -> GUILD_UPDATE+      10 -> CHANNEL_CREATE+      11 -> CHANNEL_UPDATE+      12 -> CHANNEL_DELETE+      13 -> CHANNEL_OVERWRITE_CREATE+      14 -> CHANNEL_OVERWRITE_UPDATE+      15 -> CHANNEL_OVERWRITE_DELETE+      20 -> MEMBER_KICK+      21 -> MEMBER_PRUNE+      22 -> MEMBER_BAN_ADD+      23 -> MEMBER_BAN_REMOVE+      24 -> MEMBER_UPDATE+      25 -> MEMBER_ROLE_UPDATE+      26 -> MEMBER_MOVE+      27 -> MEMBER_DISCONNECT+      28 -> BOT_ADD+      30 -> ROLE_CREATE+      31 -> ROLE_UPDATE+      32 -> ROLE_DELETE+      40 -> INVITE_CREATE+      41 -> INVITE_UPDATE+      42 -> INVITE_DELETE+      50 -> WEBHOOK_CREATE+      51 -> WEBHOOK_UPDATE+      52 -> WEBHOOK_DELETE+      60 -> EMOJI_CREATE+      61 -> EMOJI_UPDATE+      62 -> EMOJI_DELETE+      72 -> MESSAGE_DELETE+      73 -> MESSAGE_BULK_DELETE+      74 -> MESSAGE_PIN+      75 -> MESSAGE_UNPIN+      80 -> INTEGRATION_CREATE+      81 -> INTEGRATION_UPDATE+      82 -> INTEGRATION_DELETE+      _  -> error $ "Invalid AuditLogAction: " <> show v++  fromEnum v = case v of+    GUILD_UPDATE             -> 1+    CHANNEL_CREATE           -> 10+    CHANNEL_UPDATE           -> 11+    CHANNEL_DELETE           -> 12+    CHANNEL_OVERWRITE_CREATE -> 13+    CHANNEL_OVERWRITE_UPDATE -> 14+    CHANNEL_OVERWRITE_DELETE -> 15+    MEMBER_KICK              -> 20+    MEMBER_PRUNE             -> 21+    MEMBER_BAN_ADD           -> 22+    MEMBER_BAN_REMOVE        -> 23+    MEMBER_UPDATE            -> 24+    MEMBER_ROLE_UPDATE       -> 25+    MEMBER_MOVE              -> 26+    MEMBER_DISCONNECT        -> 27+    BOT_ADD                  -> 28+    ROLE_CREATE              -> 30+    ROLE_UPDATE              -> 31+    ROLE_DELETE              -> 32+    INVITE_CREATE            -> 40+    INVITE_UPDATE            -> 41+    INVITE_DELETE            -> 42+    WEBHOOK_CREATE           -> 50+    WEBHOOK_UPDATE           -> 51+    WEBHOOK_DELETE           -> 52+    EMOJI_CREATE             -> 60+    EMOJI_UPDATE             -> 61+    EMOJI_DELETE             -> 62+    MESSAGE_DELETE           -> 72+    MESSAGE_BULK_DELETE      -> 73+    MESSAGE_PIN              -> 74+    MESSAGE_UNPIN            -> 75+    INTEGRATION_CREATE       -> 80+    INTEGRATION_UPDATE       -> 81+    INTEGRATION_DELETE       -> 82+ instance FromJSON AuditLogAction where   parseJSON = withScientific "AuditLogAction" $ \n -> case toBoundedInteger @Int n of-    Just v  -> case v of+    Just v  -> case v of --  no safe toEnum :S       1  -> pure GUILD_UPDATE       10 -> pure CHANNEL_CREATE       11 -> pure CHANNEL_UPDATE@@ -149,39 +225,4 @@     Nothing -> fail $ "Invalid AuditLogAction: " <> show n  instance ToJSON AuditLogAction where-  toJSON x = toJSON @Int $ case x of-    GUILD_UPDATE             -> 1-    CHANNEL_CREATE           -> 10-    CHANNEL_UPDATE           -> 11-    CHANNEL_DELETE           -> 12-    CHANNEL_OVERWRITE_CREATE -> 13-    CHANNEL_OVERWRITE_UPDATE -> 14-    CHANNEL_OVERWRITE_DELETE -> 15-    MEMBER_KICK              -> 20-    MEMBER_PRUNE             -> 21-    MEMBER_BAN_ADD           -> 22-    MEMBER_BAN_REMOVE        -> 23-    MEMBER_UPDATE            -> 24-    MEMBER_ROLE_UPDATE       -> 25-    MEMBER_MOVE              -> 26-    MEMBER_DISCONNECT        -> 27-    BOT_ADD                  -> 28-    ROLE_CREATE              -> 30-    ROLE_UPDATE              -> 31-    ROLE_DELETE              -> 32-    INVITE_CREATE            -> 40-    INVITE_UPDATE            -> 41-    INVITE_DELETE            -> 42-    WEBHOOK_CREATE           -> 50-    WEBHOOK_UPDATE           -> 51-    WEBHOOK_DELETE           -> 52-    EMOJI_CREATE             -> 60-    EMOJI_UPDATE             -> 61-    EMOJI_DELETE             -> 62-    MESSAGE_DELETE           -> 72-    MESSAGE_BULK_DELETE      -> 73-    MESSAGE_PIN              -> 74-    MESSAGE_UNPIN            -> 75-    INTEGRATION_CREATE       -> 80-    INTEGRATION_UPDATE       -> 81-    INTEGRATION_DELETE       -> 82+  toJSON = toJSON @Int . fromEnum