packages feed

calamity 0.1.28.2 → 0.1.28.3

raw patch · 4 files changed

+16/−12 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Calamity.Cache.Eff: delDM :: forall r_a9tNM. MemberWithError CacheEff r_a9tNM => Snowflake DMChannel -> Sem r_a9tNM ()
+ Calamity.Cache.Eff: delDM :: forall r_a9tNC. MemberWithError CacheEff r_a9tNC => Snowflake DMChannel -> Sem r_a9tNC ()
- Calamity.Cache.Eff: delGuild :: forall r_a9tNF. MemberWithError CacheEff r_a9tNF => Snowflake Guild -> Sem r_a9tNF ()
+ Calamity.Cache.Eff: delGuild :: forall r_a9tNv. MemberWithError CacheEff r_a9tNv => Snowflake Guild -> Sem r_a9tNv ()
- Calamity.Cache.Eff: delMessage :: forall r_a9tO7. MemberWithError CacheEff r_a9tO7 => Snowflake Message -> Sem r_a9tO7 ()
+ Calamity.Cache.Eff: delMessage :: forall r_a9tNX. MemberWithError CacheEff r_a9tNX => Snowflake Message -> Sem r_a9tNX ()
- Calamity.Cache.Eff: delUnavailableGuild :: forall r_a9tO0. MemberWithError CacheEff r_a9tO0 => Snowflake Guild -> Sem r_a9tO0 ()
+ Calamity.Cache.Eff: delUnavailableGuild :: forall r_a9tNQ. MemberWithError CacheEff r_a9tNQ => Snowflake Guild -> Sem r_a9tNQ ()
- Calamity.Cache.Eff: delUser :: forall r_a9tNT. MemberWithError CacheEff r_a9tNT => Snowflake User -> Sem r_a9tNT ()
+ Calamity.Cache.Eff: delUser :: forall r_a9tNJ. MemberWithError CacheEff r_a9tNJ => Snowflake User -> Sem r_a9tNJ ()
- Calamity.Cache.Eff: getBotUser :: forall r_a9tNx. MemberWithError CacheEff r_a9tNx => Sem r_a9tNx (Maybe User)
+ Calamity.Cache.Eff: getBotUser :: forall r_a9tNn. MemberWithError CacheEff r_a9tNn => Sem r_a9tNn (Maybe User)
- Calamity.Cache.Eff: getDM :: forall r_a9tNJ. MemberWithError CacheEff r_a9tNJ => Snowflake DMChannel -> Sem r_a9tNJ (Maybe DMChannel)
+ Calamity.Cache.Eff: getDM :: forall r_a9tNz. MemberWithError CacheEff r_a9tNz => Snowflake DMChannel -> Sem r_a9tNz (Maybe DMChannel)
- Calamity.Cache.Eff: getDMs :: forall r_a9tNL. MemberWithError CacheEff r_a9tNL => Sem r_a9tNL [DMChannel]
+ Calamity.Cache.Eff: getDMs :: forall r_a9tNB. MemberWithError CacheEff r_a9tNB => Sem r_a9tNB [DMChannel]
- Calamity.Cache.Eff: getGuild :: forall r_a9tNA. MemberWithError CacheEff r_a9tNA => Snowflake Guild -> Sem r_a9tNA (Maybe Guild)
+ Calamity.Cache.Eff: getGuild :: forall r_a9tNq. MemberWithError CacheEff r_a9tNq => Snowflake Guild -> Sem r_a9tNq (Maybe Guild)
- Calamity.Cache.Eff: getGuildChannel :: forall r_a9tNC. MemberWithError CacheEff r_a9tNC => Snowflake GuildChannel -> Sem r_a9tNC (Maybe GuildChannel)
+ Calamity.Cache.Eff: getGuildChannel :: forall r_a9tNs. MemberWithError CacheEff r_a9tNs => Snowflake GuildChannel -> Sem r_a9tNs (Maybe GuildChannel)
- Calamity.Cache.Eff: getGuilds :: forall r_a9tNE. MemberWithError CacheEff r_a9tNE => Sem r_a9tNE [Guild]
+ Calamity.Cache.Eff: getGuilds :: forall r_a9tNu. MemberWithError CacheEff r_a9tNu => Sem r_a9tNu [Guild]
- Calamity.Cache.Eff: getMessage :: forall r_a9tO4. MemberWithError CacheEff r_a9tO4 => Snowflake Message -> Sem r_a9tO4 (Maybe Message)
+ Calamity.Cache.Eff: getMessage :: forall r_a9tNU. MemberWithError CacheEff r_a9tNU => Snowflake Message -> Sem r_a9tNU (Maybe Message)
- Calamity.Cache.Eff: getMessages :: forall r_a9tO6. MemberWithError CacheEff r_a9tO6 => Sem r_a9tO6 [Message]
+ Calamity.Cache.Eff: getMessages :: forall r_a9tNW. MemberWithError CacheEff r_a9tNW => Sem r_a9tNW [Message]
- Calamity.Cache.Eff: getUnavailableGuilds :: forall r_a9tNZ. MemberWithError CacheEff r_a9tNZ => Sem r_a9tNZ [Snowflake Guild]
+ Calamity.Cache.Eff: getUnavailableGuilds :: forall r_a9tNP. MemberWithError CacheEff r_a9tNP => Sem r_a9tNP [Snowflake Guild]
- Calamity.Cache.Eff: getUser :: forall r_a9tNQ. MemberWithError CacheEff r_a9tNQ => Snowflake User -> Sem r_a9tNQ (Maybe User)
+ Calamity.Cache.Eff: getUser :: forall r_a9tNG. MemberWithError CacheEff r_a9tNG => Snowflake User -> Sem r_a9tNG (Maybe User)
- Calamity.Cache.Eff: getUsers :: forall r_a9tNS. MemberWithError CacheEff r_a9tNS => Sem r_a9tNS [User]
+ Calamity.Cache.Eff: getUsers :: forall r_a9tNI. MemberWithError CacheEff r_a9tNI => Sem r_a9tNI [User]
- Calamity.Cache.Eff: isUnavailableGuild :: forall r_a9tNX. MemberWithError CacheEff r_a9tNX => Snowflake Guild -> Sem r_a9tNX Bool
+ Calamity.Cache.Eff: isUnavailableGuild :: forall r_a9tNN. MemberWithError CacheEff r_a9tNN => Snowflake Guild -> Sem r_a9tNN Bool
- Calamity.Cache.Eff: setBotUser :: forall r_a9tNv. MemberWithError CacheEff r_a9tNv => User -> Sem r_a9tNv ()
+ Calamity.Cache.Eff: setBotUser :: forall r_a9tNl. MemberWithError CacheEff r_a9tNl => User -> Sem r_a9tNl ()
- Calamity.Cache.Eff: setDM :: forall r_a9tNH. MemberWithError CacheEff r_a9tNH => DMChannel -> Sem r_a9tNH ()
+ Calamity.Cache.Eff: setDM :: forall r_a9tNx. MemberWithError CacheEff r_a9tNx => DMChannel -> Sem r_a9tNx ()
- Calamity.Cache.Eff: setGuild :: forall r_a9tNy. MemberWithError CacheEff r_a9tNy => Guild -> Sem r_a9tNy ()
+ Calamity.Cache.Eff: setGuild :: forall r_a9tNo. MemberWithError CacheEff r_a9tNo => Guild -> Sem r_a9tNo ()
- Calamity.Cache.Eff: setMessage :: forall r_a9tO2. MemberWithError CacheEff r_a9tO2 => Message -> Sem r_a9tO2 ()
+ Calamity.Cache.Eff: setMessage :: forall r_a9tNS. MemberWithError CacheEff r_a9tNS => Message -> Sem r_a9tNS ()
- Calamity.Cache.Eff: setUnavailableGuild :: forall r_a9tNV. MemberWithError CacheEff r_a9tNV => Snowflake Guild -> Sem r_a9tNV ()
+ Calamity.Cache.Eff: setUnavailableGuild :: forall r_a9tNL. MemberWithError CacheEff r_a9tNL => Snowflake Guild -> Sem r_a9tNL ()
- Calamity.Cache.Eff: setUser :: forall r_a9tNO. MemberWithError CacheEff r_a9tNO => User -> Sem r_a9tNO ()
+ Calamity.Cache.Eff: setUser :: forall r_a9tNE. MemberWithError CacheEff r_a9tNE => User -> Sem r_a9tNE ()
- Calamity.HTTP.Internal.Types: Good :: ByteString -> BucketState -> ByteString -> DiscordResponseType
+ Calamity.HTTP.Internal.Types: Good :: ByteString -> Maybe (BucketState, ByteString) -> DiscordResponseType

Files

Calamity/HTTP/Internal/Ratelimit.hs view
@@ -211,11 +211,8 @@             let resp = responseBody r'             debug $ "Got good response from discord: " +|| status ||+ ""             now <- P.embed getCurrentTime-            case buildBucketState now r' of-              Just (!bs, !key) ->-                pure $ Good resp bs key-              Nothing ->-                pure $ ServerError (statusCode status)+            let rlHeaders = buildBucketState now r'+            pure $ Good resp rlHeaders           | status == status429 -> do             now <- P.embed getCurrentTime             let resp = responseBody r'@@ -334,13 +331,16 @@   r' <- doDiscordRequest r    case r' of-    Good v bs bk -> do+    Good v rlHeaders -> do       void . P.embed . atomically $ do         case rl of           KnownRatelimit bucket ->             modifyTVar' (bucket ^. #state) (#ongoing -~ 1)           _ -> pure ()-        updateBucket rlstate route bk bs+        case rlHeaders of+          Just (bs, bk) ->+            void $ updateBucket rlstate route bk bs+          Nothing -> pure ()       pure $ RGood v     Ratelimited unlockWhen False (Just (bs, bk)) -> do       debug $ "429 ratelimited on route, retrying at " +| unlockWhen |+ ""
Calamity/HTTP/Internal/Types.hs view
@@ -66,9 +66,8 @@   = Good     -- ^ A good response     LB.ByteString-    BucketState-    B.ByteString-    -- ^ The bucket the route is in+    (Maybe (BucketState, B.ByteString))+    -- ^ The ratelimit headers if we got them   | Ratelimited     -- ^ We hit a 429, no response and ratelimited     UTCTime
ChangeLog.md view
@@ -1,5 +1,10 @@ # Changelog for Calamity +## 0.1.28.3+++ Fix HTTP responses from discord that don't have ratelimit info being treated+  as errors.+ ## 0.1.28.2  + Correct the emoji HTTP endpoints to work with `CustomEmoji`s
calamity.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 83f8a2a236db8e2db8a1000d7a922dc0ad1f4c27ec148e6c0776bdb2fb3be4ae+-- hash: 3ef864682cfb94fce9b938cf2c9b2cf32ac1170e904fb5fd492abf28259a6c81  name:           calamity-version:        0.1.28.2+version:        0.1.28.3 synopsis:       A library for writing discord bots in haskell description:    Please see the README on GitHub at <https://github.com/simmsb/calamity#readme> category:       Network, Web