diff --git a/Iceshrimp.Backend/Core/Federation/ActivityPub/ActivityHandlerService.cs b/Iceshrimp.Backend/Core/Federation/ActivityPub/ActivityHandlerService.cs index 73ce3574..ad03cbb5 100644 --- a/Iceshrimp.Backend/Core/Federation/ActivityPub/ActivityHandlerService.cs +++ b/Iceshrimp.Backend/Core/Federation/ActivityPub/ActivityHandlerService.cs @@ -145,9 +145,10 @@ public class ActivityHandlerService( await UnfollowAsync(followee, resolvedActor); return; case ASLike { Object: ASNote note } like: - var dbNote = await noteSvc.UnlikeNoteAsync(note, resolvedActor); if (like.MisskeyReaction != null) - await noteSvc.RemoveReactionFromNoteAsync(dbNote, resolvedActor, like.MisskeyReaction); + await noteSvc.RemoveReactionFromNoteAsync(note, resolvedActor, like.MisskeyReaction); + else + await noteSvc.UnlikeNoteAsync(note, resolvedActor); return; case ASAnnounce { Object: ASNote note }: await noteSvc.UndoAnnounceAsync(note, resolvedActor); @@ -167,12 +168,15 @@ public class ActivityHandlerService( { if (activity.Object is not ASNote note) throw GracefulException.UnprocessableEntity("Like activity object is invalid"); - var dbNote = await noteSvc.LikeNoteAsync(note, resolvedActor); if (like.MisskeyReaction != null) { await emojiSvc.ProcessEmojiAsync(like.Tags?.OfType().ToList(), resolvedActor.Host); - await noteSvc.ReactToNoteAsync(dbNote, resolvedActor, like.MisskeyReaction); + await noteSvc.ReactToNoteAsync(note, resolvedActor, like.MisskeyReaction); + } + else + { + await noteSvc.LikeNoteAsync(note, resolvedActor); } return; diff --git a/Iceshrimp.Backend/Core/Services/NoteService.cs b/Iceshrimp.Backend/Core/Services/NoteService.cs index a04261f6..c4cd3a5a 100644 --- a/Iceshrimp.Backend/Core/Services/NoteService.cs +++ b/Iceshrimp.Backend/Core/Services/NoteService.cs @@ -1135,18 +1135,16 @@ public class NoteService( return true; } - public async Task LikeNoteAsync(ASNote note, User actor) + public async Task LikeNoteAsync(ASNote note, User actor) { var dbNote = await ResolveNoteAsync(note) ?? throw new Exception("Cannot register like for unknown note"); await LikeNoteAsync(dbNote, actor); - return dbNote; } - public async Task UnlikeNoteAsync(ASNote note, User user) + public async Task UnlikeNoteAsync(ASNote note, User user) { var dbNote = await ResolveNoteAsync(note) ?? throw new Exception("Cannot unregister like for unknown note"); await UnlikeNoteAsync(dbNote, user); - return dbNote; } public async Task BookmarkNoteAsync(Note note, User user)