A direct message answers in the form its recipient writes in
Lemmy 0.19 (most of the threadiverse) and Mbin take a private message only as a ChatMessage and refuse a direct Note. A direct message to one account elsewhere that writes to us as ChatMessages now goes out as one: to it alone, without a mention in its text, kept on the post (Post.AsChatMessage) so the served copy and an edit match. No software name decides it. Live against Lemmy 0.19: alice's answer to lemmyuser's private message and another persona's message to lemmyuser arrive (29 checks). A first message to an account that never wrote to anyone here is still a Note, which they refuse; G-0008 keeps that open for the owner. 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
a85ebd30c0
commit
f38ac73615
10 files changed
+90
-17
No files matched your search
@@ -248,6 +248,9 @@ namespace PrivaPub.Domain.Statuses
|
||||
.Concat(post.Mentions)
|
||||
.DistinctBy(m => m.ActorURI)
|
||||
.ToList();
|
||||
// to someone who writes to us as ChatMessages (Lemmy 0.19 and Mbin take a private message no other way), in kind
|
||||
post.AsChatMessage = recipients is [{ LocalId: null } recipient]
|
||||
&& await _dbEntities.Posts.Match(p => p.ActorURI == recipient.Uri && p.IsFederatedCopy && p.ObjectType == "ChatMessage").ExecuteAnyAsync(token);
|
||||
var note = ActivityPubRenderer.DirectNote(post, author, recipients.Select(r => (r.Uri, r.Handle)).ToList(), dmGroup.ConversationURI);
|
||||
create = ActivityPubRenderer.Create(author, note, $"create-{post.ID}");
|
||||
post.To = Strings(note["to"]);
|
||||
|
||||
Reference in new issue
Block a user