Files
decePubClient/Models/Mastodon/Announcement.cs
T
thepraandClaude Opus 5.5 4c88980374
Build / Build (push) Successful in 1m5s
R5 the server's own settings in decePub: instance, rules, announcements, relays, media limits, the staff's log, About
Administration's Pleroma placeholders give way to real sections: Instance (title, descriptions, contact, thumbnail,
privacy policy, terms, the weekly activity), Rules, Announcements, Relays, Media limits and the Moderation log, next to
Reports, blocked servers (now published or obfuscated), statistics and backups; moderators see Reports and the log. Every
save sends the whole settings form built from the latest read, since PrivaPub replaces what it carries. /about shows the
server's documents to anyone. The report dialog picks the rules a violation breaks, and reports show them. Announcements
show above the feed tabs, dismissed and reacted to, live from the user stream. Login names the server.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WpVCoDeM1qUTRp4fXQdfof
2026-10-17 04:32:57 +02:00

36 lines
1.3 KiB
C#

namespace decePubClient.Models.Mastodon;
/// <summary>/api/v1/announcements: what the server's administrators announce, shown while published and not ended, as
/// the persona sees it (Read and each reaction's Me are the persona's own; signed out, neither is said).</summary>
public class Announcement
{
public string Id { get; set; }
/// <summary>Sanitized HTML, from the administrator's Markdown.</summary>
public string Content { get; set; }
public DateTime? StartsAt { get; set; }
public DateTime? EndsAt { get; set; }
public bool AllDay { get; set; }
public DateTime PublishedAt { get; set; }
public DateTime UpdatedAt { get; set; }
/// <summary>Whether the persona dismissed it.</summary>
public bool? Read { get; set; }
public List<AnnouncementReaction> Reactions { get; set; } = [];
}
/// <summary>A unicode emoji chosen on an announcement, how many personas chose it, and whether this one did.</summary>
public class AnnouncementReaction
{
public string Name { get; set; }
public int Count { get; set; }
public bool? Me { get; set; }
public string Url { get; set; }
}
/// <summary>The streaming API's announcement.reaction payload: the emoji, how many chose it now, and on which.</summary>
public class AnnouncementReactionEvent
{
public string Name { get; set; }
public int Count { get; set; }
public string AnnouncementId { get; set; }
}