bluesky-tools 0.6.0.2 → 0.6.0.4
raw patch · 3 files changed
+12/−7 lines, 3 filesdep +bytestringPVP ok
version bump matches the API change (PVP)
Dependencies added: bytestring
API changes (from Hackage documentation)
Files
- CHANGELOG.md +4/−0
- bluesky-tools.cabal +2/−1
- src/Bluesky/Handle.hs +6/−6
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for bluesky-tools +## 0.6.0.4 -- 2025-08-02++* Fix HTTPS resolution to use the correct URL.+ ## 0.6.0.2 -- 2025-05-26 * Dependency version updates
bluesky-tools.cabal view
@@ -1,7 +1,7 @@ cabal-version: 3.4 name: bluesky-tools-version: 0.6.0.2+version: 0.6.0.4 synopsis: Tools for interacting with Bluesky / AT Protocol description: bluesky-tools provides tools that I've found useful while trying to integrate@@ -46,6 +46,7 @@ aeson >=2.1 && < 2.3, async ^>=2.2, base >=4.18 && < 4.22,+ bytestring >= 0.10 && < 0.13, containers >=0.6 && < 0.9, dns ^>=4.2, http-api-data >= 0.5 && < 0.7,
src/Bluesky/Handle.hs view
@@ -9,9 +9,8 @@ import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Maybe import qualified Data.Aeson as Aeson-import Data.Aeson ((.:))-import qualified Data.Aeson.Types as Aeson import qualified Data.Bifunctor as Bifunctor+import qualified Data.ByteString.Lazy as BSL import Data.Char import qualified Data.Text as Text import qualified Data.Text.Encoding as Text@@ -129,13 +128,14 @@ -- (It still might be better to construct the URL in some structured way -- that insists the handle can only go in the hostname portion. But this -- will do.)- ("https://" <> rawHandleString <> "/xrpc/com.atproto.identity.resolveHandle?handle=" <> rawHandleString)+ ("https://" <> rawHandleString <> "/.well-known/atproto-did") resp <- HTTP.httpLbs req httpManager case HTTP.statusCode (HTTP.responseStatus resp) of 404 -> pure Nothing- 200 -> case Aeson.decode (HTTP.responseBody resp) of- Nothing -> fail "JSON parsing failed"- Just o -> either fail (pure . Just) $ Aeson.parseEither (.: "did") o+ 200 ->+ either (fail . show) (pure . Just) . makeDid+ . Text.decodeASCII . BSL.toStrict+ $ HTTP.responseBody resp other -> fail $ "Unexpected HTTP status " <> show other -- | Raised by 'resolveViaBoth' when both methods raise exceptions.