SlyMastodon.entities#

Mastodon public API types

Classes

Application(name, website)

https://docs.joinmastodon.org/entities/Application/

DeletedPost(id, created_at, account, ...)

A deleted post

Emoji(shortcode, url, static_url, ...)

https://docs.joinmastodon.org/entities/CustomEmoji/

MediaAttachment(id, type, preview_url, ...)

https://docs.joinmastodon.org/entities/MediaAttachment/

MediaType(value[, names, module, qualname, ...])

Media type

Poll(id, expires_at, expired, multiple, ...)

https://docs.joinmastodon.org/entities/Poll/

PollOption(title, votes_count)

https://docs.joinmastodon.org/entities/Poll/#Option

Post(id, created_at, account, visibility, ...)

A post, toot, tweet, or status

PreviewCard(url, title, description, type, ...)

Rich preview card that is generated using OpenGraph tags from a URL.

PreviewType(value[, names, module, ...])

Preview type

Privacy(value[, names, module, qualname, ...])

Visibility

PrivacyDirect(value[, names, module, ...])

Extended visibility for direct messages

Role(id, name, dolor, position, permissions, ...)

https://docs.joinmastodon.org/entities/Role/

StatusMention(id, username, url, acct)

Mentions of user within the status content.

StatusTag(name, url)

Hashtag used within the status content.

UnuploadedMediaAttachment(id, type, ...)

Media attachment that has not finished being uploaded yet

User(id, username, acct, display_name, ...)

https://docs.joinmastodon.org/entities/Account/

UserField(name, value, verified_at)

https://docs.joinmastodon.org/entities/Account/#Field

class SlyMastodon.entities.Privacy(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

Visibility

PUBLIC = 'public'#
UNLISTED = 'unlisted'#
PRIVATE = 'private'#
class SlyMastodon.entities.PrivacyDirect(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

Extended visibility for direct messages

PUBLIC = 'public'#
UNLISTED = 'unlisted'#
PRIVATE = 'private'#
DIRECT = 'direct'#
class SlyMastodon.entities.MediaType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

Media type

IMAGE = 'image'#
GIFV = 'gifv'#
VIDEO = 'video'#
AUDIO = 'audio'#
UNKNOWN = 'unknown'#
class SlyMastodon.entities.Emoji(shortcode: str, url: str, static_url: str, visible_in_picker: bool, category: str)#

https://docs.joinmastodon.org/entities/CustomEmoji/

shortcode: str#
url: str#
static_url: str#
visible_in_picker: bool#
category: str#
class SlyMastodon.entities.UserField(name: str, value: str, verified_at: datetime)#

Bases: DataclassJsonMixin

https://docs.joinmastodon.org/entities/Account/#Field

name: str#
value: str#
verified_at: datetime#
classmethod from_json(value: JsonTypeCo) T#
class SlyMastodon.entities.User(id: str, username: str, acct: str, display_name: str, locked: bool, bot: bool, created_at: datetime, discoverable: bool, note: str, url: str, avatar: str, avatar_static: str, header: str, header_static: str, followers_count: int, following_count: int, statuses_count: int, last_status_at: datetime, emojis: list[Emoji], fields: list[UserField])#

Bases: DataclassJsonMixin

https://docs.joinmastodon.org/entities/Account/

id: str#
username: str#
acct: str#
display_name: str#
locked: bool#
bot: bool#
created_at: datetime#
discoverable: bool#
note: str#
url: str#
avatar: str#
avatar_static: str#
header: str#
header_static: str#
followers_count: int#
following_count: int#
statuses_count: int#
last_status_at: datetime#
emojis: list[Emoji]#
fields: list[UserField]#
property at_username: str#

Full webfinger address

classmethod from_json(value: JsonTypeCo) T#
class SlyMastodon.entities.Role(id: str, name: str, dolor: str, position: int, permissions: int, highlighted: bool, created_at: str, updated_at: str)#

https://docs.joinmastodon.org/entities/Role/

id: str#
name: str#
dolor: str#
position: int#
permissions: int#
highlighted: bool#
created_at: str#
updated_at: str#
class SlyMastodon.entities.MediaAttachment(id: str, type: MediaType, preview_url: str, remote_url: str | None, meta: dict[str, int | float | bool | str | None | list['JsonType'] | dict[str, 'JsonType']], description: str, blurhash: str)#

Bases: _MediaAttachmentBase

https://docs.joinmastodon.org/entities/MediaAttachment/

url: str#
str() str#
classmethod from_json(value: JsonTypeCo) T#
id: str#
type: MediaType#
preview_url: str#
remote_url: str | None#
meta: JsonMap#
description: str#
blurhash: str#
class SlyMastodon.entities.UnuploadedMediaAttachment(id: str, type: MediaType, preview_url: str, remote_url: str | None, meta: dict[str, int | float | bool | str | None | list['JsonType'] | dict[str, 'JsonType']], description: str, blurhash: str)#

Bases: _MediaAttachmentBase

Media attachment that has not finished being uploaded yet

url: str | None#
classmethod from_json(value: JsonTypeCo) T#
id: str#
type: MediaType#
preview_url: str#
remote_url: str | None#
meta: JsonMap#
description: str#
blurhash: str#
class SlyMastodon.entities.Application(name: str, website: str | None)#

https://docs.joinmastodon.org/entities/Application/

name: str#
website: str | None#
class SlyMastodon.entities.StatusMention(id: str, username: str, url: str, acct: str)#

Mentions of user within the status content.

https://docs.joinmastodon.org/entities/Status/#Mention

id: str#
username: str#
url: str#
acct: str#
class SlyMastodon.entities.StatusTag(name: str, url: str)#

Hashtag used within the status content.

https://docs.joinmastodon.org/entities/Status/#Tag

name: str#
url: str#
class SlyMastodon.entities.PollOption(title: str, votes_count: int)#

https://docs.joinmastodon.org/entities/Poll/#Option

title: str#
votes_count: int#
class SlyMastodon.entities.Poll(id: str, expires_at: datetime, expired: bool, multiple: bool, votes_count: int, options: list[PollOption], voted: bool | None, own_votes: list[int] | None)#

Bases: DataclassJsonMixin

https://docs.joinmastodon.org/entities/Poll/

id: str#
expires_at: datetime#
expired: bool#
multiple: bool#
votes_count: int#
options: list[PollOption]#
voted: bool | None#
own_votes: list[int] | None#
classmethod from_json(value: JsonTypeCo) T#
class SlyMastodon.entities.PreviewType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)#

Bases: Enum

Preview type

PHOTO = 'photo'#
VIDEO = 'video'#
RICH = 'rich'#
class SlyMastodon.entities.PreviewCard(url: str, title: str, description: str, type: PreviewType, author_name: str, author_url: str, provider_name: str, provider_url: str, height: int, image: str | None, embed_url: str, blurhash: str | None)#

Bases: DataclassJsonMixin

Rich preview card that is generated using OpenGraph tags from a URL.

https://docs.joinmastodon.org/entities/PreviewCard/

url: str#
title: str#
description: str#
type: PreviewType#
author_name: str#
author_url: str#
provider_name: str#
provider_url: str#
height: int#
image: str | None#
embed_url: str#
blurhash: str | None#
classmethod from_json(value: JsonTypeCo) T#
class SlyMastodon.entities.Post(id: str, created_at: str, account: User, visibility: PrivacyDirect, sensitive: bool, spoiler_text: str, media_attachments: list[MediaAttachment], application: Application | None, mentions: list[StatusMention], tags: list[StatusTag], emojis: list[Emoji], reblogs_count: int, favourites_count: int, replies_count: int, url: str | None, in_reply_to_id: str | None, in_reply_to_account_id: str | None, reblog: Post | None, poll: Poll | None, card: PreviewCard | None, language: str | None, edited_at: str | None)#

Bases: _PostBase

A post, toot, tweet, or status

content: str#
classmethod from_json(value: JsonTypeCo) T#
id: str#
created_at: str#
account: User#
visibility: PrivacyDirect#
sensitive: bool#
spoiler_text: str#
media_attachments: list[MediaAttachment]#
application: Application | None#
mentions: list[StatusMention]#
tags: list[StatusTag]#
emojis: list[Emoji]#
reblogs_count: int#
favourites_count: int#
replies_count: int#
url: str | None#
in_reply_to_id: str | None#
in_reply_to_account_id: str | None#
reblog: Post | None#
poll: Poll | None#
card: PreviewCard | None#
language: str | None#
edited_at: str | None#
class SlyMastodon.entities.DeletedPost(id: str, created_at: str, account: User, visibility: PrivacyDirect, sensitive: bool, spoiler_text: str, media_attachments: list[MediaAttachment], application: Application | None, mentions: list[StatusMention], tags: list[StatusTag], emojis: list[Emoji], reblogs_count: int, favourites_count: int, replies_count: int, url: str | None, in_reply_to_id: str | None, in_reply_to_account_id: str | None, reblog: Post | None, poll: Poll | None, card: PreviewCard | None, language: str | None, edited_at: str | None)#

Bases: _PostBase

A deleted post

text: str | None#
classmethod from_json(value: JsonTypeCo) T#
id: str#
created_at: str#
account: User#
visibility: PrivacyDirect#
sensitive: bool#
spoiler_text: str#
media_attachments: list[MediaAttachment]#
application: Application | None#
mentions: list[StatusMention]#
tags: list[StatusTag]#
emojis: list[Emoji]#
reblogs_count: int#
favourites_count: int#
replies_count: int#
url: str | None#
in_reply_to_id: str | None#
in_reply_to_account_id: str | None#
reblog: Post | None#
poll: Poll | None#
card: PreviewCard | None#
language: str | None#
edited_at: str | None#