A vote turned the other way replaces the first
Lemmy turns an upvote into a downvote with a Dislike alone (and back with a Like), so the like stayed counted next to the downvote. Now an account has one vote on a post: a Dislike takes its like away, a Like its downvote. The Lemmy scenario's relayed votes were never failing for that reason only: Lemmy 1.0 sends what it queued every 30 seconds, and the check gave up after 30. It waits a minute now, and both votes are plain checks: 22 pass, the moderator's removal stays an expected failure (P7). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
325f7605f2
commit
bbeeda7268
5 files changed
+43
-13
No files matched your search
@@ -49,6 +49,10 @@ namespace PrivaPub.Federation.Inbox.Handlers
|
||||
}
|
||||
Arrival.Accept("stored");
|
||||
await DB.Default.Update<PostEntity>().MatchID(post.ID).Modify(b => b.Inc(p => p.DownvotesCount, 1)).ExecuteAsync(token);
|
||||
// a vote replaces the other one: Lemmy turns an upvote into a downvote with this Dislike alone
|
||||
if (await DB.Default.Find<Favourite>().Match(f => f.PostId == post.ID && f.ActorURI == actor.ActorURI).ExecuteFirstAsync(token) is { } liked
|
||||
&& (await DB.Default.DeleteAsync<Favourite>(liked.ID)).DeletedCount > 0)
|
||||
await DB.Default.Update<PostEntity>().MatchID(post.ID).Modify(b => b.Inc(p => p.FavouritesCount, -1)).ExecuteAsync(token);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user