diff options
author | Andrew Godwin | 2022-12-11 00:25:48 -0700 |
---|---|---|
committer | Andrew Godwin | 2022-12-12 11:56:49 -0700 |
commit | 3e062aed360ca54c26733b175d00d0d4671f3591 (patch) | |
tree | 6109169ac8886a4e38cf0e9816e56e74417a5ade /api/schemas | |
parent | 1017c71ba1d80a1690e357a938ad46f246a456ae (diff) | |
download | takahe-3e062aed360ca54c26733b175d00d0d4671f3591.tar.gz takahe-3e062aed360ca54c26733b175d00d0d4671f3591.tar.bz2 takahe-3e062aed360ca54c26733b175d00d0d4671f3591.zip |
Timelines working
Diffstat (limited to 'api/schemas')
-rw-r--r-- | api/schemas/__init__.py | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/api/schemas/__init__.py b/api/schemas/__init__.py new file mode 100644 index 0000000..cc0660c --- /dev/null +++ b/api/schemas/__init__.py @@ -0,0 +1,108 @@ +from typing import Literal, Optional, Union + +from ninja import Field, Schema + + +class Application(Schema): + id: str + name: str + website: str | None + client_id: str + client_secret: str + redirect_uri: str = Field(alias="redirect_uris") + + +class CustomEmoji(Schema): + shortcode: str + url: str + static_url: str + visible_in_picker: bool + category: str + + +class AccountField(Schema): + name: str + value: str + verified_at: str | None + + +class Account(Schema): + id: str + username: str + acct: str + url: str + display_name: str + note: str + avatar: str + avatar_static: str + header: str + header_static: str + locked: bool + fields: list[AccountField] + emojis: list[CustomEmoji] + bot: bool + group: bool + discoverable: bool + moved: Union[None, bool, "Account"] + suspended: bool + limited: bool + created_at: str + last_status_at: str | None = Field(...) + statuses_count: int + followers_count: int + following_count: int + + +class MediaAttachment(Schema): + id: str + type: Literal["unknown", "image", "gifv", "video", "audio"] + url: str + preview_url: str + remote_url: str | None + meta: dict + description: str | None + blurhash: str | None + + +class StatusMention(Schema): + id: str + username: str + url: str + acct: str + + +class StatusTag(Schema): + name: str + url: str + + +class Status(Schema): + id: str + uri: str + created_at: str + account: Account + content: str + visibility: Literal["public", "unlisted", "private", "direct"] + sensitive: bool + spoiler_text: str + media_attachments: list[MediaAttachment] + mentions: list[StatusMention] + tags: list[StatusTag] + emojis: list[CustomEmoji] + reblogs_count: int + favourites_count: int + replies_count: int + url: str | None = Field(...) + in_reply_to_id: str | None = Field(...) + in_reply_to_account_id: str | None = Field(...) + reblog: Optional["Status"] = Field(...) + poll: None = Field(...) + card: None = Field(...) + language: None = Field(...) + text: str | None = Field(...) + edited_at: str | None + favourited: bool | None + reblogged: bool | None + muted: bool | None + bookmarked: bool | None + pinned: bool | None |