109 lines
3.2 KiB
C#
109 lines
3.2 KiB
C#
namespace decePubClient.Models.Mastodon;
|
|||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// A post as PrivaPub's Mastodon API sends it (snake_case JSON, MastodonJsonContext). PrivaPub-only details are in
|
||
|
|
/// Privapub; ids are opaque strings.
|
||
|
|
/// </summary>
|
||
|
|
public class Status
|
||
|
|
{
|
||
|
|
public string Id { get; set; }
|
||
|
|
public string Uri { get; set; }
|
||
|
|
public string Url { get; set; }
|
||
|
|
public Account Account { get; set; }
|
||
|
|
public string InReplyToId { get; set; }
|
||
|
|
public string InReplyToAccountId { get; set; }
|
||
|
|
public Status Reblog { get; set; }
|
||
|
|
public string Content { get; set; }
|
||
|
|
public DateTime CreatedAt { get; set; }
|
||
|
|
public DateTime? EditedAt { get; set; }
|
||
|
|
public List<CustomEmoji> Emojis { get; set; } = [];
|
||
|
|
public int RepliesCount { get; set; }
|
||
|
|
public int ReblogsCount { get; set; }
|
||
|
|
public int FavouritesCount { get; set; }
|
||
|
|
public bool Reblogged { get; set; }
|
||
|
|
public bool Favourited { get; set; }
|
||
|
|
public bool Muted { get; set; }
|
||
|
|
public bool Bookmarked { get; set; }
|
||
|
|
public bool Pinned { get; set; }
|
||
|
|
public bool Sensitive { get; set; }
|
||
|
|
public string SpoilerText { get; set; }
|
||
|
|
/// <summary>public, unlisted, private (followers and circles) or direct.</summary>
|
||
|
|
public string Visibility { get; set; }
|
||
|
|
public List<MediaAttachment> MediaAttachments { get; set; } = [];
|
||
|
|
public List<StatusMention> Mentions { get; set; } = [];
|
||
|
|
public List<StatusTag> Tags { get; set; } = [];
|
||
|
|
public PreviewCard Card { get; set; }
|
||
|
|
public Poll Poll { get; set; }
|
||
|
|
public StatusApplication Application { get; set; }
|
||
|
|
public string Language { get; set; }
|
||
|
|
/// <summary>The plain text source, only on the author's own deleted or edited post.</summary>
|
||
|
|
public string Text { get; set; }
|
||
|
|
public PrivaPubStatus Privapub { get; set; }
|
||
|
|
public Quote Quote { get; set; }
|
||
|
|
public int QuotesCount { get; set; }
|
||
|
|
}
|
||
|
|
|
||
|
|
public class StatusMention
|
||
|
|
{
|
||
|
|
public string Id { get; set; }
|
||
|
|
public string Username { get; set; }
|
||
|
|
public string Url { get; set; }
|
||
|
|
public string Acct { get; set; }
|
||
|
|
}
|
||
|
|
|
||
|
|
public class StatusTag
|
||
|
|
{
|
||
|
|
public string Name { get; set; }
|
||
|
|
public string Url { get; set; }
|
||
|
|
}
|
||
|
|
|
||
|
|
public class StatusApplication
|
||
|
|
{
|
||
|
|
public string Name { get; set; }
|
||
|
|
public string Website { get; set; }
|
||
|
|
}
|
||
|
|
|
||
|
|
public class Quote
|
||
|
|
{
|
||
|
|
public string State { get; set; }
|
||
|
|
public Status QuotedStatus { get; set; }
|
||
|
|
public string QuotedStatusId { get; set; }
|
||
|
|
}
|
||
|
|
|
||
|
|
public class StatusContext
|
||
|
|
{
|
||
|
|
public List<Status> Ancestors { get; set; } = [];
|
||
|
|
public List<Status> Descendants { get; set; } = [];
|
||
|
|
}
|
||
|
|
|
||
|
|
public class Poll
|
||
|
|
{
|
||
|
|
public string Id { get; set; }
|
||
|
|
public DateTime? ExpiresAt { get; set; }
|
||
|
|
public bool Expired { get; set; }
|
||
|
|
public bool Multiple { get; set; }
|
||
|
|
public int VotesCount { get; set; }
|
||
|
|
public int? VotersCount { get; set; }
|
||
|
|
public bool? Voted { get; set; }
|
||
|
|
public List<PollOption> Options { get; set; } = [];
|
||
|
|
}
|
||
|
|
|
||
|
|
public class PollOption
|
||
|
|
{
|
||
|
|
public string Title { get; set; }
|
||
|
|
public int? VotesCount { get; set; }
|
||
|
|
}
|
||
|
|
|
||
|
|
public class PreviewCard
|
||
|
|
{
|
||
|
|
public string Url { get; set; }
|
||
|
|
public string Title { get; set; }
|
||
|
|
public string Description { get; set; }
|
||
|
|
public string Type { get; set; }
|
||
|
|
public string ProviderName { get; set; }
|
||
|
|
public string Image { get; set; }
|
||
|
|
public string ImageDescription { get; set; }
|
||
|
|
public int Width { get; set; }
|
||
|
|
public int Height { get; set; }
|
||
|
|
public string Blurhash { get; set; }
|
||
|
|
}
|