Skip to content

fix(syndicator-mastodon): favourite and reblog statuses on other servers - #1015

Open
rmdes wants to merge 1 commit into
mainfrom
fix/syndicator-mastodon-cross-server-likes
Open

rmdes wants to merge 1 commit into
mainfrom
fix/syndicator-mastodon-cross-server-likes

Conversation

@rmdes

@rmdes rmdes commented Oct 13, 2026

Copy link
Copy Markdown
Collaborator

Refs #843.

Likes and reposts are syndicated as native favourites and reblogs, but only when the status is on the syndicator's own server. Liking a status on any other instance is skipped, and endpoint-syndicate reports it as "did not return a URL". Without the ActivityPub plugin, that's the only route a like has to the fediverse, so for most likes nothing happens.

Replies already resolve statuses on other servers (resolveRemoteStatus, #927). This uses the same step for likes and reposts:

  • postFavourite and postReblog take the status ID from the URL when the status is on this server, and otherwise resolve it with v2/search (resolve: true).
  • post() no longer drops likes and reposts of other servers' URLs up front.
  • A repost with content (a quote status) is syndicated when the reposted URL resolves to a status.
  • URLs that don't resolve to a status (a blog post, say) are still not syndicated, so defaults are unchanged and there are no new options.

Opt-in statuses for likes and reposts of URLs that aren't statuses (syndicateExternalLikes / syndicateExternalReposts) can follow separately, depending on the discussion in #843.

Tests

  • Unit tests for favouriting and reblogging a status on another server, the same through post(), quote statuses of a remote status, and skipping URLs that don't resolve.
  • The two existing "doesn't post a favourite/repost of a URL" tests now use the mocked unresolvable URL, since every like and repost now searches first.
  • Syndicator, endpoint-syndicate and endpoint-share syndication tests pass (73/73, Node 24.17).

@rmdes
rmdes marked this pull request as ready for review October 13, 2026 13:00
@paulrobertlloyd
paulrobertlloyd force-pushed the main branch 2 times, most recently from 2f22f32 to b791821 Compare October 13, 2026 18:24
Likes and reposts were only syndicated when the status was on the
syndicator's own server; a status on any other instance was skipped and
reported as not returning a URL. Resolve such statuses the same way
replies already are (resolveRemoteStatus), so they become native
favourites and reblogs. URLs that don't resolve to a status are still
not syndicated.

Refs #843
@rmdes
rmdes force-pushed the fix/syndicator-mastodon-cross-server-likes branch from 90b6462 to 861ece7 Compare October 14, 2026 10:46
@paulrobertlloyd
paulrobertlloyd force-pushed the main branch 4 times, most recently from 0cd6019 to fb507d2 Compare October 19, 2026 20:46

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant