Build / Build (push) Successful in 1m5s
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
36 lines
1.3 KiB
C#
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; }
|
|
}
|