parent
							
								
									87bcc139bb
								
							
						
					
					
						commit
						b445197381
					
				| @ -1,19 +1,39 @@ | ||||
| //! A module containing everything relating to a account returned from the api.
 | ||||
| 
 | ||||
| use chrono::prelude::*; | ||||
| 
 | ||||
| /// A struct representing an Account.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct Account { | ||||
|     pub id: u64, | ||||
|     pub username: String, | ||||
|     /// Equals `username` for local users, includes `@domain` for remote ones.
 | ||||
|     pub acct: String, | ||||
|     pub display_name: String, | ||||
|     pub note: String, | ||||
|     pub url: String, | ||||
|     /// URL to the avatar image
 | ||||
|     pub avatar: String, | ||||
|     /// URL to the avatar static image (gif)
 | ||||
|     pub avatar_static: String, | ||||
|     pub header: String, | ||||
|     pub header_static: String, | ||||
|     pub locked: bool, | ||||
|     /// The time the account was created.
 | ||||
|     pub created_at: DateTime<Utc>, | ||||
|     /// The account's display name.
 | ||||
|     pub display_name: String, | ||||
|     /// The number of followers for the account.
 | ||||
|     pub followers_count: u64, | ||||
|     /// The number of accounts the given account is following.
 | ||||
|     pub following_count: u64, | ||||
|     /// URL to the header image.
 | ||||
|     pub header: String, | ||||
|     /// URL to the header static image (gif).
 | ||||
|     pub header_static: String, | ||||
|     /// The ID of the account.
 | ||||
|     pub id: u64, | ||||
|     /// Boolean for when the account cannot be followed without waiting for
 | ||||
|     /// approval first.
 | ||||
|     pub locked: bool, | ||||
|     /// Biography of user.
 | ||||
|     pub note: String, | ||||
|     /// The number of statuses the account has made.
 | ||||
|     pub statuses_count: u64, | ||||
|     /// URL of the user's profile page (can be remote).
 | ||||
|     pub url: String, | ||||
|     /// The username of the account.
 | ||||
|     pub username: String, | ||||
| } | ||||
|  | ||||
| @ -1,39 +1,64 @@ | ||||
| //! Module containing everything related to media attachements.
 | ||||
| 
 | ||||
| /// A struct representing a media attachment.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct Attachment { | ||||
|     /// ID of the attachment.
 | ||||
|     pub id: String, | ||||
|     /// The media type of an attachment.
 | ||||
|     #[serde(rename="type")] | ||||
|     pub media_type: MediaType, | ||||
|     /// URL of the locally hosted version of the image.
 | ||||
|     pub url: String, | ||||
|     /// For remote images, the remote URL of the original image.
 | ||||
|     pub remote_url: Option<String>, | ||||
|     /// URL of the preview image.
 | ||||
|     pub preview_url: String, | ||||
|     /// Shorter URL for the image, for insertion into text
 | ||||
|     /// (only present on local images)
 | ||||
|     pub text_url: Option<String>, | ||||
|     /// Meta information about the attachment.
 | ||||
|     pub meta: Option<Meta>, | ||||
|     /// Noop will be removed.
 | ||||
|     pub description: Option<String>, | ||||
| } | ||||
| 
 | ||||
| /// Information about the attachment itself.
 | ||||
| #[derive(Debug, Deserialize, Clone)] | ||||
| pub struct Meta { | ||||
|     /// Original version.
 | ||||
|     original: ImageDetails, | ||||
|     /// Smaller version.
 | ||||
|     small: ImageDetails, | ||||
| } | ||||
| 
 | ||||
| /// Dimensions of an attachement.
 | ||||
| #[derive(Debug, Deserialize, Clone)] | ||||
| pub struct ImageDetails { | ||||
|     /// width of attachment.
 | ||||
|     width: u64, | ||||
|     /// height of attachment.
 | ||||
|     height: u64, | ||||
|     /// A string of `widthxheight`.
 | ||||
|     size: String, | ||||
|     /// The aspect ratio of the attachment.
 | ||||
|     aspect: f64, | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| /// The type of media attachment.
 | ||||
| #[derive(Debug, Deserialize, Clone, Copy)] | ||||
| pub enum MediaType { | ||||
|     /// An image.
 | ||||
|     #[serde(rename = "image")] | ||||
|     Image, | ||||
|     /// A video file.
 | ||||
|     #[serde(rename = "video")] | ||||
|     Video, | ||||
|     /// A gifv format file.
 | ||||
|     #[serde(rename = "gifv")] | ||||
|     Gifv, | ||||
|     /// Unknown format.
 | ||||
|     #[serde(rename = "unknown")] | ||||
|     Unknown, | ||||
| } | ||||
|  | ||||
| @ -1,7 +1,14 @@ | ||||
| //! Module representing cards of statuses.
 | ||||
| 
 | ||||
| /// A card of a status.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct Card { | ||||
|     /// The url associated with the card.
 | ||||
|     pub url: String, | ||||
|     /// The title of the card.
 | ||||
|     pub title: String, | ||||
|     /// The card description.
 | ||||
|     pub description: String, | ||||
|     /// The image associated with the card, if any.
 | ||||
|     pub image: String, | ||||
| } | ||||
|  | ||||
| @ -1,7 +1,13 @@ | ||||
| //! A module about contexts of statuses.
 | ||||
| 
 | ||||
| use super::status::Status; | ||||
| 
 | ||||
| /// A context of a status returning a list of statuses it replied to and
 | ||||
| /// statuses replied to it.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct Context { | ||||
|     /// Statuses that were replied to.
 | ||||
|     pub ancestors: Vec<Status>, | ||||
|     /// Statuses that replied to this status.
 | ||||
|     pub descendants: Vec<Status>, | ||||
| } | ||||
|  | ||||
| @ -1,7 +1,15 @@ | ||||
| //! Module containing everything related to an instance.
 | ||||
| 
 | ||||
| /// A struct containing info of an instance.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct Instance { | ||||
|     /// URI of the current instance
 | ||||
|     pub uri: String, | ||||
|     /// The instance's title.
 | ||||
|     pub title: String, | ||||
|     /// A description for the instance.
 | ||||
|     pub description: String, | ||||
|     /// An email address which can be used to contact the
 | ||||
|     /// instance administrator.
 | ||||
|     pub email: String, | ||||
| } | ||||
|  | ||||
| @ -1,25 +1,38 @@ | ||||
| //! Module containing all info about notifications.
 | ||||
| 
 | ||||
| use chrono::prelude::*; | ||||
| use super::account::Account; | ||||
| use super::status::Status; | ||||
| 
 | ||||
| /// A struct containing info about a notification.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct Notification { | ||||
|     /// The notification ID.
 | ||||
|     pub id: u64, | ||||
|     /// The type of notification.
 | ||||
|     #[serde(rename = "type")] | ||||
|     pub notification_type: NotificationType, | ||||
|     /// The time the notification was created.
 | ||||
|     pub created_at: DateTime<Utc>, | ||||
|     /// The Account sending the notification to the user.
 | ||||
|     pub account: Account, | ||||
|     /// The Status associated with the notification, if applicable.
 | ||||
|     pub status: Option<Status>, | ||||
| } | ||||
| 
 | ||||
| /// The type of notification.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub enum NotificationType { | ||||
|     /// Someone mentioned the application client in another status.
 | ||||
|     #[serde(rename = "mention")] | ||||
|     Mention, | ||||
|     /// Someone reblogged one of the application client's statuses.
 | ||||
|     #[serde(rename = "reblog")] | ||||
|     Reblog, | ||||
|     /// Someone favourited one of the application client's statuses.
 | ||||
|     #[serde(rename = "favourite")] | ||||
|     Favourite, | ||||
|     /// Someone followed the application client.
 | ||||
|     #[serde(rename = "follow")] | ||||
|     Follow, | ||||
| } | ||||
|  | ||||
| @ -1,8 +1,17 @@ | ||||
| //! module containing everything relating to a relationship with
 | ||||
| //! another account.
 | ||||
| 
 | ||||
| /// A struct containing information about a relationship with another account.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct Relationship { | ||||
|     /// Whether the application client follows the account.
 | ||||
|     pub following: bool, | ||||
|     /// Whether the account follows the application client.
 | ||||
|     pub followed_by: bool, | ||||
|     /// Whether the application client blocks the account.
 | ||||
|     pub blocking: bool, | ||||
|     /// Whether the application client blocks the account.
 | ||||
|     pub muting: bool, | ||||
|     /// Whether the application client has requested to follow the account.
 | ||||
|     pub requested: bool, | ||||
| } | ||||
|  | ||||
| @ -1,5 +1,10 @@ | ||||
| //! module containing information about a finished report of a user.
 | ||||
| 
 | ||||
| /// A struct containing info about a report.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct Report { | ||||
|     /// The ID of the report.
 | ||||
|     pub id: u64, | ||||
|     /// The action taken in response to the report.
 | ||||
|     pub action_taken: String, | ||||
| } | ||||
|  | ||||
| @ -1,8 +1,14 @@ | ||||
| //! A module containing info relating to a search result.
 | ||||
| 
 | ||||
| use super::prelude::{Account, Status}; | ||||
| 
 | ||||
| /// A struct containing results of a search.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct SearchResult { | ||||
|     /// An array of matched Accounts.
 | ||||
|     pub accounts: Vec<Account>, | ||||
|     /// An array of matched Statuses.
 | ||||
|     pub statuses: Vec<Status>, | ||||
|     /// An array of matched hashtags, as strings.
 | ||||
|     pub hashtags: Vec<String>, | ||||
| } | ||||
|  | ||||
| @ -1,47 +1,85 @@ | ||||
| //! Module containing all info relating to a status.
 | ||||
| 
 | ||||
| use chrono::prelude::*; | ||||
| use super::prelude::*; | ||||
| use status_builder::Visibility; | ||||
| 
 | ||||
| /// A status from the instance.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct Status { | ||||
|     /// The ID of the status.
 | ||||
|     pub id: i64, | ||||
|     /// A Fediverse-unique resource ID.
 | ||||
|     pub uri: String, | ||||
|     /// URL to the status page (can be remote)
 | ||||
|     pub url: String, | ||||
|     /// The Account which posted the status.
 | ||||
|     pub account: Account, | ||||
|     /// The ID of the status this status is replying to, if the status is
 | ||||
|     /// a reply.
 | ||||
|     pub in_reply_to_id: Option<u64>, | ||||
|     /// The ID of the account this status is replying to, if the status is
 | ||||
|     /// a reply.
 | ||||
|     pub in_reply_to_account_id: Option<u64>, | ||||
|     /// If this status is a reblogged Status of another User.
 | ||||
|     pub reblog: Option<Box<Status>>, | ||||
|     /// Body of the status; this will contain HTML
 | ||||
|     /// (remote HTML already sanitized)
 | ||||
|     pub content: String, | ||||
|     /// The time the status was created.
 | ||||
|     pub created_at: DateTime<Utc>, | ||||
|     /// The number of reblogs for the status.
 | ||||
|     pub reblogs_count: u64, | ||||
|     /// The number of favourites for the status.
 | ||||
|     pub favourites_count: u64, | ||||
|     /// Whether the application client has reblogged the status.
 | ||||
|     pub reblogged: Option<bool>, | ||||
|     /// Whether the application client has favourited the status.
 | ||||
|     pub favourited: Option<bool>, | ||||
|     pub sensitive: Option<bool>, | ||||
|     /// Whether media attachments should be hidden by default.
 | ||||
|     pub sensitive: bool, | ||||
|     /// If not empty, warning text that should be displayed before the actual
 | ||||
|     /// content.
 | ||||
|     pub spoiler_text: String, | ||||
|     /// The visibilty of the status.
 | ||||
|     pub visibility: Visibility, | ||||
|     /// An array of attachments.
 | ||||
|     pub media_attachments: Vec<Attachment>, | ||||
|     /// An array of mentions.
 | ||||
|     pub mentions: Vec<Mention>, | ||||
|     /// An array of tags.
 | ||||
|     pub tags: Vec<Tag>, | ||||
|     /// Name of application used to post status.
 | ||||
|     pub application: Option<Application>, | ||||
| } | ||||
| 
 | ||||
| /// A mention of another user.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct Mention { | ||||
|     /// URL of user's profile (can be remote).
 | ||||
|     pub url: String, | ||||
|     /// The username of the account.
 | ||||
|     pub username: String, | ||||
|     /// Equals `username` for local users, includes `@domain` for remote ones.
 | ||||
|     pub acct: String, | ||||
|     /// Account ID.
 | ||||
|     pub id: u64, | ||||
| } | ||||
| 
 | ||||
| /// Hashtags in the status.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct Tag { | ||||
|     /// The hashtag, not including the preceding `#`.
 | ||||
|     pub name: String, | ||||
|     /// The URL of the hashtag.
 | ||||
|     pub url: String, | ||||
| } | ||||
| 
 | ||||
| /// Application details.
 | ||||
| #[derive(Debug, Clone, Deserialize)] | ||||
| pub struct Application { | ||||
|     /// Name of the application.
 | ||||
|     pub name: String, | ||||
|     /// Homepage URL of the application.
 | ||||
|     pub website: Option<String>, | ||||
| } | ||||
|  | ||||
					Loading…
					
					
				
		Reference in new issue