Files
SocialPub/PrivaPub.ClientModels/Post/ViewPost.cs
T
thepraandClaude Opus 5.5 e99b76dbd7 Home timelines, mention notifications, and threads that fetch their parents
Fanout writes a TimelineEntry for every persona a post should reach: the
author, local followers of a local author, local followers of a remote one,
the members of a direct conversation or a circle. Mastodon's home rules
apply when it is written: a reply shows only to followers of both sides
(or to the one replied to), a reblog only where reblogs are wanted. A
mention of a local persona becomes a Mention notification.

Inbound posts are now also kept when a persona follows their author.

RemotePosts holds what CreateHandler and backfill share: building a Post
from a note, and fetching a public parent the first time a reply to it
arrives, so its author is known (a reply to an unknown or non-public
parent stays out of home timelines). Each fetched ancestor queues a
FetchAncestors job for the next one, up to ten deep.

/clientapi/timeline/home and /clientapi/notifications (with
/notifications/read) page by max_id for the persona's own root only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
2026-10-01 11:37:41 +02:00

29 lines
850 B
C#

namespace PrivaPub.ClientModels.Post
{
public class ViewPost
{
public string Id { get; set; }
public string ObjectURI { get; set; }
public string AuthorAvatarId { get; set; }
public string AuthorActorURI { get; set; }
public string GroupId { get; set; }
public string DmGroupId { get; set; }
public string Visibility { get; set; }
public string AnsweringToPostId { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public string ContentHtml { get; set; }
public bool HasContentWarning { get; set; }
public bool IsFederatedCopy { get; set; }
public DateTime CreationDate { get; set; }
public ViewPost ReblogOf { get; set; }
}
public class ViewDmGroup
{
public string Id { get; set; }
public List<string> Members { get; set; } = new();
public DateTime UpdatedAt { get; set; }
}
}