Skip to content

v3.0.0

Choose a tag to compare

@blowdart blowdart released this 11 Jul 09:25
· 50 commits to main since this release
Immutable release. Only release title and notes can be modified.
v3.0.0
1cb6689

Added

idunno.AtProto

  • Added error classes for known error messages.
    • AccountNotFound
    • AccountTakedown
    • AuthenticationRequired
    • AuthFactorTokenRequired
    • BadExpiration
    • BlobNotFound
    • BlockNotFound
    • ConsumerTooSlow
    • DidDeactivated
    • DidNotFound
    • DuplicateCreate
    • ExpiredToken
    • FutureCursor
    • HandleNotAvailable
    • HandleNotFound
    • HeadNotFound
    • HostBanned
    • HostNotFound
    • IncompatibleDidDoc
    • InvalidEmail
    • InvalidInviteCode
    • InvalidPasscode
    • InvalidRequest
    • InvalidSwap
    • InvalidToken
    • MethodNotImplemented
    • RecordNotFound
    • RepoDeactivated
    • RepoNotFound
    • RepoSuspended
    • RepoTakenDown
    • TokenRequired
    • UnresolvableDid
    • UnsupportedDomain
    • XrpcNotSupported
  • Added MapError property to AtProtoHttpResult<TResult> which is an IList<Func<AtErrorDetail?, AtErrorDetail?>>
    to allow mapping for the generic AtErrorDetail type to a more specific derived error type.

idunno.Bluesky

  • Added BlueskyHttpClient which derives from AtProtoHttpClient and adds the Bluesky specified error mapping.
  • Added error classes for known error messages.
    • AccountSuspended
    • ActorNotFound
    • BadQueryString
    • BlockedActor
    • BlockedSubject
    • ConversationLocked
    • EnabledJoinLinkAlreadyExists
    • FollowRequired
    • InsufficientRole
    • InvalidCode
    • InvalidConversation
    • LinkDisabled
    • MemberLimitReached
    • MessageDeleteNotAllowed
    • MessagesDisabled
    • NewAccountCannotCreateGroup
    • NoJoinLink
    • NotFollowedBySender
    • OwnerCannotLeave
    • ReactionInvalidValue
    • ReactionLimitReached
    • ReactionMessageDeleted
    • ReactionNotAllowed
    • RecipientNotFound
    • UserForbidsGroups
    • UserKicked
  • Added Embed.EmbeddedGallery and Embed.Gallery.GalleryImage types to support the new image gallery format.
    Note that GalleryImage requires an aspect ratio, unlike the EmbeddedImage type.
  • Added new overloads to BlueskyAgent.Post to support EmbeddedGallery content.
    If you pass more than 4 EmbeddedImage items to Post(), it will attempt to convert them an EmbeddedGallery. Your EmbeddedImage
    instances must have an aspect ratio for this to work, otherwise an exception will be thrown.
    You can use Magick.NET, ImageSharp or other image processing libraries to calculate the aspect ratio of your images if needed.
  • Added new overloads to PostBuilder to support EmbeddedGallery content.
    If you use the + operator to add more than 4 EmbeddedImage items to a PostBuilder, it will attempt to convert them to EmbeddedGallery format. Your EmbeddedImage
    instances must have an aspect ratio for this to work, otherwise an exception will be thrown.
    You can use Magick.NET, ImageSharp or other image processing libraries to calculate the aspect ratio of your images if needed.
  • Added support for group conversation APIs, including
    • AddMembersToGroup
    • ApproveJoinGroupRequest
    • CreateGroup
    • CreateJoinGroupLink
    • DisableJoinGroupLink
    • EditGroup
    • EditJoinGroupLink
    • EnableJoinGroupLink
    • GetJoinGroupLinkPreviews
    • ListJoinGroupRequests
    • ListMutualGroups
    • RejectJoinGroupRequest
    • RemoveGroupMembers
    • RequestJoinGroup
    • UpdateJoinGroupRequestsRead
    • WithdrawJoinGroupRequest
  • Added support for locking conversations with LockConversation and unlocking conversations with UnlockConversation.
  • Added Animated GIF support with BlueskyAgent.UploadAnimatedGif()
  • Expanded video support with a new overload to BlueskyAgent.UploadVideo() which accepts a MIME type parameter to allow for more video formats.
  • Added GetStarterPacksWithMembership to allow the authenticated user to search their starter packs and see which ones a specified actor is a member of.
  • Added SearchPostsV2 to allow searching for posts with more advanced filtering options.

Fixed

idunno.AtProto

  • Added error handling inside AtProtoAgent.ResolveHandle() to swallow exceptions from DNS and HTTP lookup.
    Errors are logged as Debug log messages and the method will return null if errors are encountered.

idunno.Bluesky

  • Added missing Like settings to Notification.Preferences.

Changed

idunno.AtProto.Types

  • Added comparison operators to TimestampIdentifier to allow for equality comparisons and sorting.

idunno.Bluesky

  • GetUnreadConversationCounts now has an optional includeGroupChats parameter, which defaults to true, to include or exclude group conversations in the unread counts.

Breaking Changes

idunno.Bluesky

  • Corrected case of AllowSubscriptions property on ActivitySubscriptions.
  • Changed BlueskyAgent.GetRelationships() to accept AtIdentifier instead of Did types for the actor and others parameters.
    This allows for more flexibility in specifying the subject and actor, as they can now be provided as either a DID or a handle, and matches the API definition.
  • Changed return type of BlueskyAgent.GetRelationships() to RelationshipMap.
  • MessageViewBase has had its properties removed, and is now an empty class.
    The Id, Revision, and SentAt properties have been moved to the derived classes MessageView, DeletedMessageView and SystemMessageView. This was
    necessary to support the new MessageBeforeUserJoinedGroupView type, which does not have these properties.
  • Notifications.PreferenceTypes.ChatPreference has been marked obsolete.
    Use GetChatNotificationPreferences and SetChatNotificationPreferences with Chat.Notifications.Preferences instead.
  • Marked BlueskyAgent.UploadVideo() without the MIME type parameter as obsolete, as it only supports MP4 video files. Use the new overload with the MIME type parameter instead.