v3.0.0
·
50 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Added
idunno.AtProto
- Added error classes for known error messages.
AccountNotFoundAccountTakedownAuthenticationRequiredAuthFactorTokenRequiredBadExpirationBlobNotFoundBlockNotFoundConsumerTooSlowDidDeactivatedDidNotFoundDuplicateCreateExpiredTokenFutureCursorHandleNotAvailableHandleNotFoundHeadNotFoundHostBannedHostNotFoundIncompatibleDidDocInvalidEmailInvalidInviteCodeInvalidPasscodeInvalidRequestInvalidSwapInvalidTokenMethodNotImplementedRecordNotFoundRepoDeactivatedRepoNotFoundRepoSuspendedRepoTakenDownTokenRequiredUnresolvableDidUnsupportedDomainXrpcNotSupported
- Added
MapErrorproperty toAtProtoHttpResult<TResult>which is anIList<Func<AtErrorDetail?, AtErrorDetail?>>
to allow mapping for the genericAtErrorDetailtype to a more specific derived error type.
idunno.Bluesky
- Added
BlueskyHttpClientwhich derives fromAtProtoHttpClientand adds the Bluesky specified error mapping. - Added error classes for known error messages.
AccountSuspendedActorNotFoundBadQueryStringBlockedActorBlockedSubjectConversationLockedEnabledJoinLinkAlreadyExistsFollowRequiredInsufficientRoleInvalidCodeInvalidConversationLinkDisabledMemberLimitReachedMessageDeleteNotAllowedMessagesDisabledNewAccountCannotCreateGroupNoJoinLinkNotFollowedBySenderOwnerCannotLeaveReactionInvalidValueReactionLimitReachedReactionMessageDeletedReactionNotAllowedRecipientNotFoundUserForbidsGroupsUserKicked
- Added
Embed.EmbeddedGalleryandEmbed.Gallery.GalleryImagetypes to support the new image gallery format.
Note thatGalleryImagerequires an aspect ratio, unlike theEmbeddedImagetype. - Added new overloads to
BlueskyAgent.Postto supportEmbeddedGallerycontent.
If you pass more than 4EmbeddedImageitems toPost(), it will attempt to convert them anEmbeddedGallery. YourEmbeddedImage
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
PostBuilderto supportEmbeddedGallerycontent.
If you use the+operator to add more than 4EmbeddedImageitems to aPostBuilder, it will attempt to convert them toEmbeddedGalleryformat. YourEmbeddedImage
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
AddMembersToGroupApproveJoinGroupRequestCreateGroupCreateJoinGroupLinkDisableJoinGroupLinkEditGroupEditJoinGroupLinkEnableJoinGroupLinkGetJoinGroupLinkPreviewsListJoinGroupRequestsListMutualGroupsRejectJoinGroupRequestRemoveGroupMembersRequestJoinGroupUpdateJoinGroupRequestsReadWithdrawJoinGroupRequest
- Added support for locking conversations with
LockConversationand unlocking conversations withUnlockConversation. - 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
GetStarterPacksWithMembershipto allow the authenticated user to search their starter packs and see which ones a specified actor is a member of. - Added
SearchPostsV2to 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
Likesettings toNotification.Preferences.
Changed
idunno.AtProto.Types
- Added comparison operators to
TimestampIdentifierto allow for equality comparisons and sorting.
idunno.Bluesky
GetUnreadConversationCountsnow has an optionalincludeGroupChatsparameter, which defaults totrue, to include or exclude group conversations in the unread counts.
Breaking Changes
idunno.Bluesky
- Corrected case of
AllowSubscriptionsproperty onActivitySubscriptions. - Changed
BlueskyAgent.GetRelationships()to acceptAtIdentifierinstead ofDidtypes for theactorandothersparameters.
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()toRelationshipMap. MessageViewBasehas had its properties removed, and is now an empty class.
TheId,Revision, andSentAtproperties have been moved to the derived classesMessageView,DeletedMessageViewandSystemMessageView. This was
necessary to support the newMessageBeforeUserJoinedGroupViewtype, which does not have these properties.Notifications.PreferenceTypes.ChatPreferencehas been marked obsolete.
UseGetChatNotificationPreferencesandSetChatNotificationPreferenceswithChat.Notifications.Preferencesinstead.- 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.