From 9c370b46e1d2b7ec8e1bcec6cc72a3a358315849 Mon Sep 17 00:00:00 2001 From: AkiraFukushima Date: Sat, 27 May 2023 01:17:02 +0900 Subject: [PATCH 1/3] refs #90 Add announcement entity --- src/entities/announcement.rs | 44 ++++++++++++ src/entities/emoji.rs | 1 + src/entities/mod.rs | 2 + src/entities/status.rs | 11 ++- src/entities/tag.rs | 2 +- src/friendica/entities/emoji.rs | 1 + src/friendica/entities/status.rs | 16 ++++- src/friendica/entities/tag.rs | 6 +- src/mastodon/entities/announcement.rs | 98 +++++++++++++++++++++++++++ src/mastodon/entities/emoji.rs | 3 + src/mastodon/entities/mod.rs | 2 + src/mastodon/entities/status.rs | 16 ++++- src/mastodon/entities/tag.rs | 6 +- src/pleroma/entities/emoji.rs | 3 + src/pleroma/entities/status.rs | 17 ++++- src/pleroma/entities/tag.rs | 6 +- 16 files changed, 215 insertions(+), 19 deletions(-) create mode 100644 src/entities/announcement.rs create mode 100644 src/mastodon/entities/announcement.rs diff --git a/src/entities/announcement.rs b/src/entities/announcement.rs new file mode 100644 index 0000000..b72a308 --- /dev/null +++ b/src/entities/announcement.rs @@ -0,0 +1,44 @@ +use super::{status, Emoji}; +use chrono::{DateTime, Utc}; +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct Announcement { + pub id: String, + pub conent: String, + pub starts_at: Option>, + pub ends_at: Option>, + pub published: bool, + pub all_day: bool, + pub published_at: DateTime, + pub updated_at: DateTime, + pub read: Option, + pub mentions: Vec, + pub statuses: Vec, + pub tags: Vec, + pub emojis: Vec, + pub reactions: Vec, +} + +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct Account { + pub id: String, + pub username: String, + pub url: String, + pub acct: String, +} + +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct Status { + pub id: String, + pub url: String, +} + +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct Reaction { + pub name: String, + pub count: i64, + pub me: Option, + pub url: Option, + pub static_url: Option, +} diff --git a/src/entities/emoji.rs b/src/entities/emoji.rs index 2aea013..36896f6 100644 --- a/src/entities/emoji.rs +++ b/src/entities/emoji.rs @@ -6,4 +6,5 @@ pub struct Emoji { pub static_url: String, pub url: String, pub visible_in_picker: bool, + pub category: String, } diff --git a/src/entities/mod.rs b/src/entities/mod.rs index 05a1bae..0919383 100644 --- a/src/entities/mod.rs +++ b/src/entities/mod.rs @@ -2,6 +2,7 @@ pub mod account; pub mod activity; +pub mod announcement; pub mod application; pub mod async_attachment; pub mod attachment; @@ -39,6 +40,7 @@ pub mod urls; pub use account::Account; pub use activity::Activity; +pub use announcement::Announcement; pub use application::Application; pub use async_attachment::AsyncAttachment; pub use async_attachment::UploadMedia; diff --git a/src/entities/status.rs b/src/entities/status.rs index 597f7b1..41a29ed 100644 --- a/src/entities/status.rs +++ b/src/entities/status.rs @@ -1,9 +1,8 @@ -use serde::{Deserialize, Serialize}; - -use super::{Account, Application, Attachment, Card, Emoji, Mention, Poll, Reaction, Tag}; +use super::{Account, Application, Attachment, Card, Emoji, Mention, Poll, Reaction}; use crate::error::{Error, Kind}; use chrono::{DateTime, Utc}; use core::fmt; +use serde::{Deserialize, Serialize}; use std::str::FromStr; #[derive(Debug, Clone, Deserialize, Serialize)] @@ -74,3 +73,9 @@ impl FromStr for StatusVisibility { } } } + +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct Tag { + pub name: String, + pub url: String, +} diff --git a/src/entities/tag.rs b/src/entities/tag.rs index 12c853d..5f7a95f 100644 --- a/src/entities/tag.rs +++ b/src/entities/tag.rs @@ -6,6 +6,6 @@ use super::History; pub struct Tag { pub name: String, pub url: String, - pub history: Option>, + pub history: Vec, pub following: Option, } diff --git a/src/friendica/entities/emoji.rs b/src/friendica/entities/emoji.rs index 0377441..f238de8 100644 --- a/src/friendica/entities/emoji.rs +++ b/src/friendica/entities/emoji.rs @@ -27,6 +27,7 @@ impl Into for Emoji { static_url: self.static_url, url: self.url, visible_in_picker: self.visible_in_picker, + category: "".to_string(), } } } diff --git a/src/friendica/entities/status.rs b/src/friendica/entities/status.rs index 59ed047..d71bfc4 100644 --- a/src/friendica/entities/status.rs +++ b/src/friendica/entities/status.rs @@ -1,7 +1,7 @@ use core::fmt; use std::str::FromStr; -use super::{Account, Application, Attachment, Card, Emoji, Mention, Poll, Tag}; +use super::{Account, Application, Attachment, Card, Emoji, Mention, Poll}; use crate::error::{Error, Kind}; use crate::{entities as MegalodonEntities, megalodon}; use chrono::{DateTime, Utc}; @@ -72,6 +72,20 @@ impl FromStr for StatusVisibility { } } +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct Tag { + pub name: String, + pub url: String, +} + +impl Into for Tag { + fn into(self) -> MegalodonEntities::status::Tag { + MegalodonEntities::status::Tag { + name: self.name, + url: self.url, + } + } +} impl Into for StatusVisibility { fn into(self) -> MegalodonEntities::status::StatusVisibility { match self { diff --git a/src/friendica/entities/tag.rs b/src/friendica/entities/tag.rs index ea15f43..374e73a 100644 --- a/src/friendica/entities/tag.rs +++ b/src/friendica/entities/tag.rs @@ -6,7 +6,7 @@ use serde::Deserialize; pub struct Tag { name: String, url: String, - history: Option>, + history: Vec, following: Option, } @@ -15,9 +15,7 @@ impl Into for Tag { MegalodonEntities::Tag { name: self.name, url: self.url, - history: self - .history - .map(|i| i.into_iter().map(|j| j.into()).collect()), + history: self.history.into_iter().map(|j| j.into()).collect(), following: self.following, } } diff --git a/src/mastodon/entities/announcement.rs b/src/mastodon/entities/announcement.rs new file mode 100644 index 0000000..ea51b14 --- /dev/null +++ b/src/mastodon/entities/announcement.rs @@ -0,0 +1,98 @@ +use super::{status, Emoji}; +use crate::entities as MegalodonEntities; +use chrono::{DateTime, Utc}; +use serde::Deserialize; + +#[derive(Debug, Clone, Deserialize)] +pub struct Announcement { + id: String, + conent: String, + starts_at: Option>, + ends_at: Option>, + published: bool, + all_day: bool, + published_at: DateTime, + updated_at: DateTime, + read: Option, + mentions: Vec, + statuses: Vec, + tags: Vec, + emojis: Vec, + reactions: Vec, +} + +#[derive(Debug, Clone, Deserialize)] +pub struct Account { + id: String, + username: String, + url: String, + acct: String, +} + +#[derive(Debug, Clone, Deserialize)] +pub struct Status { + id: String, + url: String, +} + +#[derive(Debug, Clone, Deserialize)] +pub struct Reaction { + name: String, + count: i64, + me: Option, + url: Option, + static_url: Option, +} + +impl Into for Announcement { + fn into(self) -> MegalodonEntities::Announcement { + MegalodonEntities::Announcement { + id: self.id, + conent: self.conent, + starts_at: self.starts_at, + ends_at: self.ends_at, + published: self.published, + all_day: self.all_day, + published_at: self.published_at, + updated_at: self.updated_at, + read: self.read, + mentions: self.mentions.into_iter().map(|i| i.into()).collect(), + statuses: self.statuses.into_iter().map(|i| i.into()).collect(), + tags: self.tags.into_iter().map(|i| i.into()).collect(), + emojis: self.emojis.into_iter().map(|i| i.into()).collect(), + reactions: self.reactions.into_iter().map(|i| i.into()).collect(), + } + } +} + +impl Into for Account { + fn into(self) -> MegalodonEntities::announcement::Account { + MegalodonEntities::announcement::Account { + id: self.id, + username: self.username, + url: self.url, + acct: self.acct, + } + } +} + +impl Into for Status { + fn into(self) -> MegalodonEntities::announcement::Status { + MegalodonEntities::announcement::Status { + id: self.id, + url: self.url, + } + } +} + +impl Into for Reaction { + fn into(self) -> MegalodonEntities::announcement::Reaction { + MegalodonEntities::announcement::Reaction { + name: self.name, + count: self.count, + me: self.me, + url: self.url, + static_url: self.static_url, + } + } +} diff --git a/src/mastodon/entities/emoji.rs b/src/mastodon/entities/emoji.rs index 0377441..d4943e2 100644 --- a/src/mastodon/entities/emoji.rs +++ b/src/mastodon/entities/emoji.rs @@ -7,6 +7,7 @@ pub struct Emoji { static_url: String, url: String, visible_in_picker: bool, + category: String, } impl From for Emoji { @@ -16,6 +17,7 @@ impl From for Emoji { static_url: item.static_url, url: item.url, visible_in_picker: item.visible_in_picker, + category: item.category, } } } @@ -27,6 +29,7 @@ impl Into for Emoji { static_url: self.static_url, url: self.url, visible_in_picker: self.visible_in_picker, + category: self.category, } } } diff --git a/src/mastodon/entities/mod.rs b/src/mastodon/entities/mod.rs index ec2f92f..9707a70 100644 --- a/src/mastodon/entities/mod.rs +++ b/src/mastodon/entities/mod.rs @@ -1,5 +1,6 @@ pub mod account; pub mod activity; +pub mod announcement; pub mod application; pub mod attachment; pub mod card; @@ -34,6 +35,7 @@ pub mod urls; pub use account::Account; pub use activity::Activity; +pub use announcement::Announcement; pub use application::Application; pub use attachment::Attachment; pub use card::Card; diff --git a/src/mastodon/entities/status.rs b/src/mastodon/entities/status.rs index 8100268..68cecbc 100644 --- a/src/mastodon/entities/status.rs +++ b/src/mastodon/entities/status.rs @@ -1,7 +1,7 @@ use core::fmt; use std::str::FromStr; -use super::{Account, Application, Attachment, Card, Emoji, Mention, Poll, Tag}; +use super::{Account, Application, Attachment, Card, Emoji, Mention, Poll}; use crate::error::{Error, Kind}; use crate::{entities as MegalodonEntities, megalodon}; use chrono::{DateTime, Utc}; @@ -74,6 +74,20 @@ impl FromStr for StatusVisibility { } } +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct Tag { + pub name: String, + pub url: String, +} +impl Into for Tag { + fn into(self) -> MegalodonEntities::status::Tag { + MegalodonEntities::status::Tag { + name: self.name, + url: self.url, + } + } +} + impl Into for StatusVisibility { fn into(self) -> MegalodonEntities::status::StatusVisibility { match self { diff --git a/src/mastodon/entities/tag.rs b/src/mastodon/entities/tag.rs index ea15f43..374e73a 100644 --- a/src/mastodon/entities/tag.rs +++ b/src/mastodon/entities/tag.rs @@ -6,7 +6,7 @@ use serde::Deserialize; pub struct Tag { name: String, url: String, - history: Option>, + history: Vec, following: Option, } @@ -15,9 +15,7 @@ impl Into for Tag { MegalodonEntities::Tag { name: self.name, url: self.url, - history: self - .history - .map(|i| i.into_iter().map(|j| j.into()).collect()), + history: self.history.into_iter().map(|j| j.into()).collect(), following: self.following, } } diff --git a/src/pleroma/entities/emoji.rs b/src/pleroma/entities/emoji.rs index 0377441..d4943e2 100644 --- a/src/pleroma/entities/emoji.rs +++ b/src/pleroma/entities/emoji.rs @@ -7,6 +7,7 @@ pub struct Emoji { static_url: String, url: String, visible_in_picker: bool, + category: String, } impl From for Emoji { @@ -16,6 +17,7 @@ impl From for Emoji { static_url: item.static_url, url: item.url, visible_in_picker: item.visible_in_picker, + category: item.category, } } } @@ -27,6 +29,7 @@ impl Into for Emoji { static_url: self.static_url, url: self.url, visible_in_picker: self.visible_in_picker, + category: self.category, } } } diff --git a/src/pleroma/entities/status.rs b/src/pleroma/entities/status.rs index 795ec65..fe812f9 100644 --- a/src/pleroma/entities/status.rs +++ b/src/pleroma/entities/status.rs @@ -1,4 +1,4 @@ -use super::{Account, Application, Attachment, Card, Emoji, Mention, Poll, Reaction, Tag}; +use super::{Account, Application, Attachment, Card, Emoji, Mention, Poll, Reaction}; use crate::{entities as MegalodonEntities, megalodon}; use chrono::{DateTime, Utc}; use serde::{de, Deserialize, Serialize}; @@ -76,6 +76,21 @@ impl Into for StatusVisibility { } } +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct Tag { + pub name: String, + pub url: String, +} + +impl Into for Tag { + fn into(self) -> MegalodonEntities::status::Tag { + MegalodonEntities::status::Tag { + name: self.name, + url: self.url, + } + } +} + impl Into for Status { fn into(self) -> MegalodonEntities::Status { let mut reblog_status: Option> = None; diff --git a/src/pleroma/entities/tag.rs b/src/pleroma/entities/tag.rs index ea15f43..374e73a 100644 --- a/src/pleroma/entities/tag.rs +++ b/src/pleroma/entities/tag.rs @@ -6,7 +6,7 @@ use serde::Deserialize; pub struct Tag { name: String, url: String, - history: Option>, + history: Vec, following: Option, } @@ -15,9 +15,7 @@ impl Into for Tag { MegalodonEntities::Tag { name: self.name, url: self.url, - history: self - .history - .map(|i| i.into_iter().map(|j| j.into()).collect()), + history: self.history.into_iter().map(|j| j.into()).collect(), following: self.following, } } From 3edba5d72a02a4262bd229b2e6d6a085f2f25008 Mon Sep 17 00:00:00 2001 From: AkiraFukushima Date: Mon, 29 May 2023 23:09:40 +0900 Subject: [PATCH 2/3] refs #90 Add announcement endpoints --- src/friendica/friendica.rs | 46 +++++++++++++ src/mastodon/mastodon.rs | 81 +++++++++++++++++++++++ src/megalodon.rs | 25 +++++++ src/pleroma/entities/announcement.rs | 98 ++++++++++++++++++++++++++++ src/pleroma/entities/mod.rs | 2 + src/pleroma/pleroma.rs | 63 +++++++++++++++++- 6 files changed, 314 insertions(+), 1 deletion(-) create mode 100644 src/pleroma/entities/announcement.rs diff --git a/src/friendica/friendica.rs b/src/friendica/friendica.rs index 3b94d37..84c9d2f 100644 --- a/src/friendica/friendica.rs +++ b/src/friendica/friendica.rs @@ -2582,6 +2582,52 @@ impl megalodon::Megalodon for Friendica { )) } + async fn get_instance_announcements( + &self, + ) -> Result>, Error> { + Ok(Response::>::new( + [].to_vec(), + 200, + "200".to_string(), + HeaderMap::new(), + )) + } + + async fn dismiss_instance_announcement(&self, _id: String) -> Result, Error> { + Err(Error::new_own( + "Friendica doest not support".to_string(), + error::Kind::NoImplementedError, + None, + None, + )) + } + + async fn add_reaction_to_announcement( + &self, + _id: String, + _name: String, + ) -> Result, Error> { + Err(Error::new_own( + "Friendica doest not support".to_string(), + error::Kind::NoImplementedError, + None, + None, + )) + } + + async fn remove_reaction_from_announcement( + &self, + _id: String, + _name: String, + ) -> Result, Error> { + Err(Error::new_own( + "Friendica doest not support".to_string(), + error::Kind::NoImplementedError, + None, + None, + )) + } + async fn create_emoji_reaction( &self, _id: String, diff --git a/src/mastodon/mastodon.rs b/src/mastodon/mastodon.rs index ac1efd3..7e21e1e 100644 --- a/src/mastodon/mastodon.rs +++ b/src/mastodon/mastodon.rs @@ -2870,6 +2870,87 @@ impl megalodon::Megalodon for Mastodon { )) } + async fn get_instance_announcements( + &self, + ) -> Result>, Error> { + let res = self + .client + .get::>("/api/v1/announcements", None) + .await?; + + Ok(Response::>::new( + res.json.into_iter().map(|j| j.into()).collect(), + res.status, + res.status_text, + res.header, + )) + } + + async fn dismiss_instance_announcement(&self, id: String) -> Result, Error> { + let params = HashMap::<&str, Value>::new(); + let res = self + .client + .post::<()>( + format!("/api/v1/announcements/{}/dismiss", id).as_str(), + ¶ms, + None, + ) + .await?; + + Ok(Response::<()>::new( + (), + res.status, + res.status_text, + res.header, + )) + } + + async fn add_reaction_to_announcement( + &self, + id: String, + name: String, + ) -> Result, Error> { + let params = HashMap::<&str, Value>::new(); + let res = self + .client + .put::<()>( + format!("/api/v1/announcements/{}/reactions/{}", id, name).as_str(), + ¶ms, + None, + ) + .await?; + + Ok(Response::<()>::new( + (), + res.status, + res.status_text, + res.header, + )) + } + + async fn remove_reaction_from_announcement( + &self, + id: String, + name: String, + ) -> Result, Error> { + let params = HashMap::<&str, Value>::new(); + let res = self + .client + .delete::<()>( + format!("/api/v1/announcements/{}/reactions/{}", id, name).as_str(), + ¶ms, + None, + ) + .await?; + + Ok(Response::<()>::new( + (), + res.status, + res.status_text, + res.header, + )) + } + async fn create_emoji_reaction( &self, _id: String, diff --git a/src/megalodon.rs b/src/megalodon.rs index 638f488..759ba69 100644 --- a/src/megalodon.rs +++ b/src/megalodon.rs @@ -670,6 +670,31 @@ pub trait Megalodon { /// Returns custom emojis that are available on the server. async fn get_instance_custom_emojis(&self) -> Result>, Error>; + // ====================================== + // instance/announcements + // ====================================== + /// Get all currently active announcements set by admins. + async fn get_instance_announcements( + &self, + ) -> Result>, Error>; + + /// Dismiss an announcement + async fn dismiss_instance_announcement(&self, id: String) -> Result, Error>; + + /// Add a reaction to an announcement. + async fn add_reaction_to_announcement( + &self, + id: String, + name: String, + ) -> Result, Error>; + + /// Remove a reaction from an announcement. + async fn remove_reaction_from_announcement( + &self, + id: String, + name: String, + ) -> Result, Error>; + // ====================================== // Emoji reactions // ====================================== diff --git a/src/pleroma/entities/announcement.rs b/src/pleroma/entities/announcement.rs new file mode 100644 index 0000000..ea51b14 --- /dev/null +++ b/src/pleroma/entities/announcement.rs @@ -0,0 +1,98 @@ +use super::{status, Emoji}; +use crate::entities as MegalodonEntities; +use chrono::{DateTime, Utc}; +use serde::Deserialize; + +#[derive(Debug, Clone, Deserialize)] +pub struct Announcement { + id: String, + conent: String, + starts_at: Option>, + ends_at: Option>, + published: bool, + all_day: bool, + published_at: DateTime, + updated_at: DateTime, + read: Option, + mentions: Vec, + statuses: Vec, + tags: Vec, + emojis: Vec, + reactions: Vec, +} + +#[derive(Debug, Clone, Deserialize)] +pub struct Account { + id: String, + username: String, + url: String, + acct: String, +} + +#[derive(Debug, Clone, Deserialize)] +pub struct Status { + id: String, + url: String, +} + +#[derive(Debug, Clone, Deserialize)] +pub struct Reaction { + name: String, + count: i64, + me: Option, + url: Option, + static_url: Option, +} + +impl Into for Announcement { + fn into(self) -> MegalodonEntities::Announcement { + MegalodonEntities::Announcement { + id: self.id, + conent: self.conent, + starts_at: self.starts_at, + ends_at: self.ends_at, + published: self.published, + all_day: self.all_day, + published_at: self.published_at, + updated_at: self.updated_at, + read: self.read, + mentions: self.mentions.into_iter().map(|i| i.into()).collect(), + statuses: self.statuses.into_iter().map(|i| i.into()).collect(), + tags: self.tags.into_iter().map(|i| i.into()).collect(), + emojis: self.emojis.into_iter().map(|i| i.into()).collect(), + reactions: self.reactions.into_iter().map(|i| i.into()).collect(), + } + } +} + +impl Into for Account { + fn into(self) -> MegalodonEntities::announcement::Account { + MegalodonEntities::announcement::Account { + id: self.id, + username: self.username, + url: self.url, + acct: self.acct, + } + } +} + +impl Into for Status { + fn into(self) -> MegalodonEntities::announcement::Status { + MegalodonEntities::announcement::Status { + id: self.id, + url: self.url, + } + } +} + +impl Into for Reaction { + fn into(self) -> MegalodonEntities::announcement::Reaction { + MegalodonEntities::announcement::Reaction { + name: self.name, + count: self.count, + me: self.me, + url: self.url, + static_url: self.static_url, + } + } +} diff --git a/src/pleroma/entities/mod.rs b/src/pleroma/entities/mod.rs index d39f4be..77fc6c3 100644 --- a/src/pleroma/entities/mod.rs +++ b/src/pleroma/entities/mod.rs @@ -1,5 +1,6 @@ pub mod account; pub mod activity; +pub mod announcement; pub mod application; pub mod attachment; pub mod card; @@ -35,6 +36,7 @@ pub mod urls; pub use account::Account; pub use activity::Activity; +pub use announcement::Announcement; pub use application::Application; pub use attachment::Attachment; pub use card::Card; diff --git a/src/pleroma/pleroma.rs b/src/pleroma/pleroma.rs index 06e40fd..54dd1c1 100644 --- a/src/pleroma/pleroma.rs +++ b/src/pleroma/pleroma.rs @@ -3,11 +3,11 @@ use super::entities; use super::oauth; use super::web_socket::WebSocket; use crate::megalodon::FollowRequestOutput; -use crate::Streaming; use crate::{ default, entities as MegalodonEntities, error::Error, megalodon, oauth as MegalodonOAuth, response::Response, }; +use crate::{error, Streaming}; use async_trait::async_trait; use chrono::{DateTime, Utc}; use oauth2::basic::BasicClient; @@ -2824,6 +2824,67 @@ impl megalodon::Megalodon for Pleroma { )) } + async fn get_instance_announcements( + &self, + ) -> Result>, Error> { + let res = self + .client + .get::>("/api/v1/announcements", None) + .await?; + + Ok(Response::>::new( + res.json.into_iter().map(|j| j.into()).collect(), + res.status, + res.status_text, + res.header, + )) + } + + async fn dismiss_instance_announcement(&self, id: String) -> Result, Error> { + let params = HashMap::<&str, Value>::new(); + let res = self + .client + .post::<()>( + format!("/api/v1/announcements/{}/dismiss", id).as_str(), + ¶ms, + None, + ) + .await?; + + Ok(Response::<()>::new( + (), + res.status, + res.status_text, + res.header, + )) + } + + async fn add_reaction_to_announcement( + &self, + _id: String, + _name: String, + ) -> Result, Error> { + Err(Error::new_own( + "Pleroma doest not support".to_string(), + error::Kind::NoImplementedError, + None, + None, + )) + } + + async fn remove_reaction_from_announcement( + &self, + _id: String, + _name: String, + ) -> Result, Error> { + Err(Error::new_own( + "Pleroma doest not support".to_string(), + error::Kind::NoImplementedError, + None, + None, + )) + } + async fn create_emoji_reaction( &self, id: String, From a86680ef97a868e27b38fdf06e33cfdf6ada6b59 Mon Sep 17 00:00:00 2001 From: AkiraFukushima Date: Mon, 29 May 2023 23:12:34 +0900 Subject: [PATCH 3/3] refs #90 Fix pleroma announcement entity --- src/pleroma/entities/announcement.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pleroma/entities/announcement.rs b/src/pleroma/entities/announcement.rs index ea51b14..ebfc7ed 100644 --- a/src/pleroma/entities/announcement.rs +++ b/src/pleroma/entities/announcement.rs @@ -13,7 +13,6 @@ pub struct Announcement { all_day: bool, published_at: DateTime, updated_at: DateTime, - read: Option, mentions: Vec, statuses: Vec, tags: Vec, @@ -55,7 +54,7 @@ impl Into for Announcement { all_day: self.all_day, published_at: self.published_at, updated_at: self.updated_at, - read: self.read, + read: None, mentions: self.mentions.into_iter().map(|i| i.into()).collect(), statuses: self.statuses.into_iter().map(|i| i.into()).collect(), tags: self.tags.into_iter().map(|i| i.into()).collect(),