Mastodon Channel #35
Labels
No labels
bug
devops
duplicate
enhancement
good first issue
next major release
next minor release
question
testing
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lvl0/fedi-feed-router#35
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Add Mastodon as a second publishing platform alongside Lemmy.
Context
Currently only Lemmy is supported. Mastodon uses a fundamentally different API (OAuth2, statuses with character limits vs full posts). This requires both new platform-specific code and refactoring the publishing pipeline to be platform-agnostic.
Architecture Changes
PlatformPublisherInterfacewithpublishToChannel()contractLemmyPublisherimplement the new interfaceArticlePublishingService.makePublisher()to resolve publisher by platform typeArticlePublishingService.publishToChannel()to handle platform-agnostic response structures (currently reads Lemmy-specificpost_view.post.id)Mastodon Implementation
PlatformEnum::MASTODONMastodonApiService— OAuth2 authentication, status creation, timeline fetchingMastodonAuthService— OAuth2 token management (different from Lemmy's JWT)MastodonPublisherimplementingPlatformPublisherInterfaceSync & Duplicate Detection
SyncChannelPostsJobfor Mastodon (currently Lemmy-only)PlatformChannelPostUI & Account Management
Tests