chiark / gitweb /
OK, that's probably enough data modelling for now
authorSimon Tatham <anakin@pobox.com>
Sat, 23 Dec 2023 11:03:18 +0000 (11:03 +0000)
committerSimon Tatham <anakin@pobox.com>
Sat, 23 Dec 2023 11:03:18 +0000 (11:03 +0000)
src/main.rs

index 8dd7090b3aeaabb23f557cf81ecd4a48c28aab31..216ed42500b13551cad7a1cf84f50c4050306b18 100644 (file)
@@ -49,7 +49,37 @@ struct Application {
 
 #[derive(Serialize, Deserialize, Debug)]
 enum Visibility {
-    public, unlisted, private, direct,
+    #[serde(rename = "public")] Public,
+    #[serde(rename = "unlisted")] Unlisted,
+    #[serde(rename = "private")] Private,
+    #[serde(rename = "direct")] Direct,
+}
+
+#[derive(Serialize, Deserialize, Debug)]
+enum MediaType {
+    #[serde(rename = "unknown")] Unknown,
+    #[serde(rename = "image")] Image,
+    #[serde(rename = "gifv")] GifV,
+    #[serde(rename = "video")] Video,
+    #[serde(rename = "audio")] Audio,
+}
+
+#[derive(Serialize, Deserialize, Debug)]
+struct MediaAttachment {
+    id: String,
+    #[serde(rename="type")] mediatype: MediaType,
+    url: String,
+    preview_url: String,
+    remote_url: Option<String>,
+    description: Option<String>,
+}
+
+#[derive(Serialize, Deserialize, Debug)]
+struct StatusMention {
+    id: String,
+    username: String,
+    url: String,
+    acct: String,
 }
 
 #[derive(Serialize, Deserialize, Debug)]
@@ -62,9 +92,9 @@ struct Status {
     visibility: Visibility,
     sensitive: bool,
     spoiler_text: String,
-    // media_attachments: Vec<Media>,
+    media_attachments: Vec<MediaAttachment>,
     application: Option<Application>,
-    // mentions: Vec<Mention>,
+    mentions: Vec<StatusMention>,
     // tags: Vec<Hashtag>,
     // emojis: Vec<Emoji>,
     reblogs_count: u64,