- ObjectShapes reads `url`, `icon` and `image` as a value, a Link or an array; Markdown `content` (PeerTube) is rendered; a missing `mediaType` is inferred from the extension or the attachment type (Bridgy); alt text comes from `name`, `summary` or their language maps; thumbnails come from attachment `icon`, object `icon[]`, `image` or a Loops `preview`; durations are ISO 8601 or seconds; per-attachment `sensitive` is kept; the language falls back to `@context` `@language` (Pleroma); titles and excerpts are plain text; hashtags normalise with NFKC like Mastodon. - Typed details on Post: Link (Lemmy link posts, Mbin `source` URLs, Mastodon 4.7 Link attachments with an FEP-8967 publisher preview), Video (PeerTube files with their streams, HLS playlist, poster, captions, chapters, licence, channel, live state, comment policy), Audio (Funkwhale), Event (Mobilizon, Gancio, Hubzilla: times, zone, floating time, places and addresses, online link, capacity, status), the cover image, and the author's own source text. - Mastodon API: a card built from those details without fetching anything, an event's "when · where" line, attachment thumbnails and durations, and no media file offered as a preview image. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
24 lines
845 B
C#
24 lines
845 B
C#
namespace PrivaPub.Models.Post
|
|
{
|
|
public class PostMedia
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
public string ContentType { get; set; }
|
|
public string FileName { get; set; }
|
|
public string Extension { get; set; }
|
|
public string Path { get; set; }
|
|
public string URL { get; set; }
|
|
public string RemoteURL { get; set; }
|
|
public string PreviewURL { get; set; }
|
|
public string AttachmentId { get; set; }
|
|
public string Description { get; set; }
|
|
public string Blurhash { get; set; }
|
|
public int? Width { get; set; }
|
|
public int? Height { get; set; }
|
|
public float[] Focus { get; set; }
|
|
public string RemotePreviewURL { get; set; }//the remote thumbnail (attachment icon), served through the proxy
|
|
public double? DurationSeconds { get; set; }
|
|
public bool? Sensitive { get; set; }//Misskey marks each attachment
|
|
}
|
|
}
|