Skip to content

Posts

Option

Option(option_id: UUID | str | None = None, **data)

Bases: OptionRef

id

id: UUID

position

position: int

text

text: str

votest_count

votest_count: int

Poll

Bases: ITDBaseModel

id

id: UUID

question

question: str

total_votes

total_votes: int

options

options: list[Option]

multiple_choice

multiple_choice: bool

post_id

post_id: UUID

has_voted

has_voted: bool

created_at

created_at: ITDDatetime

voted_option_ids

voted_option_ids: list[UUID]

UpdatePostResponse

Bases: ITDBaseModel

id

id: UUID

content

content: str

spans

spans: list[Span]

updated_at

updated_at: ITDDatetime | None

SpanType

Bases: str, Enum

MENTION

MENTION = 'mention'

HASHTAG

HASHTAG = 'hashtag'

MONOSPACE

MONOSPACE = 'monospace'

STRIKE

STRIKE = 'strike'

UNDERLINE

UNDERLINE = 'underline'

BOLD

BOLD = 'bold'

ITALIC

ITALIC = 'italic'

SPOILER

SPOILER = 'spoiler'
LINK = 'link'

BaseSpan

Bases: ITDBaseModel

length

length: int

offset

offset: int

type

type: SpanType

Mention

Bases: BaseSpan

type

type: Literal[MENTION] = MENTION

username

username: str

length

length: int

offset

offset: int

HashTagSpan

Bases: BaseSpan

tag

tag: str

type

type: Literal[HASHTAG] = HASHTAG

length

length: int

offset

offset: int

Monospace

Bases: BaseSpan

type

type: Literal[MONOSPACE] = MONOSPACE

length

length: int

offset

offset: int

Strike

Bases: BaseSpan

type

type: Literal[STRIKE] = STRIKE

length

length: int

offset

offset: int

Underline

Bases: BaseSpan

type

type: Literal[UNDERLINE] = UNDERLINE

length

length: int

offset

offset: int

Bold

Bases: BaseSpan

type

type: Literal[BOLD] = BOLD

length

length: int

offset

offset: int

Italic

Bases: BaseSpan

type

type: Literal[ITALIC] = ITALIC

length

length: int

offset

offset: int

Spoiler

Bases: BaseSpan

type

type: Literal[SPOILER] = SPOILER

length

length: int

offset

offset: int

Bases: BaseSpan

type

type: Literal[LINK] = LINK

url

url: str

length

length: int

offset

offset: int

BasePost

BasePost(
    post_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: PostRef

id

id: UUID

content

content: str

author

author: UserWithPin

attachments

attachments: list[Attachment]

likes_count

likes_count: int

created_at

created_at: ITDDatetime

comments_count

comments_count: int

respot_count

respot_count: int

views_count

views_count: int

spans

spans: list[Span]

client

client: Optional[AsyncITDClient] = None

get_full

get_full(**kwargs) -> tuple[list[Comment], Post]

Получить пост с комментариями.

RETURNS DESCRIPTION
tuple[list[Comment], Post]

Кортеж (список комментариев, пост)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пост не существует, удалён, владелец поста забанил, пост принадлежит пользователю с is_private=True, на которого вы не подписаны

delete

delete(**kwargs) -> None

Удалить пост.

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ForbiddenError

Нет прав для удаления поста

NotFoundError

Пост не найден

restore

restore(**kwargs) -> None

Восстановить пост.

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ForbiddenError

Нет прав для восстановления поста

NotFoundError

Пост не найден

like

like(**kwargs) -> int

Лайкнуть пост.

RETURNS DESCRIPTION
int

Новое количество лайков

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

unlike

unlike(**kwargs) -> int

Убрать лайк с поста.

RETURNS DESCRIPTION
int

Новое количество лайков

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

view

view(**kwargs) -> None

Зафиксировать просмотр поста.

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

pin

pin(**kwargs) -> bool

Закрепить пост на своей стене.

RETURNS DESCRIPTION
bool

Успешность операции

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

ForbiddenError

Можно прикреплять посты только на своей стене

unpin

unpin(**kwargs) -> bool

Открепить пост со своей стены.

RETURNS DESCRIPTION
bool

Успешность операции

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotPinedError

Пост не прикреплён

get_comments

get_comments(
    cursor: str | None = None,
    limit: int = 20,
    sort: CommentSort
    | Literal["popular", "newest", "oldest"] = "popular",
    **kwargs,
) -> tuple[TotalPagination, list[Comment]]

Получить комментарии под постом.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество комментариев (1 <= limit <= 500)

TYPE: int DEFAULT: 20

sort

сортировка ("popular", "newest", "oldest")

TYPE: CommentSort | Literal['popular', 'newest', 'oldest'] DEFAULT: 'popular'

RETURNS DESCRIPTION
tuple[TotalPagination, list[Comment]]

Кортеж (пагинация с общим количеством, список комментариев)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

vote

vote(
    option_ids: list[Union[UUID, str, OptionRef]], **kwargs
) -> Poll

Проголосовать в опросе.

PARAMETER DESCRIPTION
option_ids

список выбранных вариантов (можно передавать как UUID, строки или OptionRef)

TYPE: list[Union[UUID, str, OptionRef]]

RETURNS DESCRIPTION
Poll

Обновлённый опрос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пост не найден

ValidationError

Один или несколько вариантов не принадлежат этому опросу

ValidationError

В этом опросе можно выбрать только один вариант

ValidationError

len(option_ids) > 0

update

update(
    content: str, spans: list = None, **kwargs
) -> UpdatePostResponse

Изменить текст поста.

PARAMETER DESCRIPTION
content

Новый текст поста

TYPE: str

spans

Форматирование текста (список объектов форматирования)

TYPE: list DEFAULT: None

RETURNS DESCRIPTION
UpdatePostResponse

Обновлённый пост (содержит дату редактирования)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

ValidationError

1 <= len(content) <= 1_000

ForbiddenError

Нет прав для редактирования этого поста

EditWindowExpiredError

пост нельзя изменять спустя несколько дней

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

repost

repost(content: str = '', **kwargs) -> Post

Сделать репост этого поста.

PARAMETER DESCRIPTION
content

Текст репоста (необязательно)

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Post

Созданный репост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

ConflictError

Нельзя репостнуть два раза

ValidationError

Нельзя репостить свои посты

ValidationError

len(content) <= 1_000

comment

comment(
    content: str = "",
    attachment_ids: Union[
        list[Union[UUID, str, FileRef]], None
    ] = None,
    **kwargs,
) -> Comment

Создать комментарий к посту.

PARAMETER DESCRIPTION
content

текст комментария

TYPE: str DEFAULT: ''

attachment_ids

список прикреплённых файлов (можно передавать как UUID, строки или FileRef) (максимум 4)

TYPE: Union[list[Union[UUID, str, FileRef]], None] DEFAULT: None

RETURNS DESCRIPTION
Comment

Созданный комментарий

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пост не найден

ITDError

файл с указанным UUID не существует

ValidationError

нельзя создать пустой комментарий (без текста и вложений)

ParamsValidationError

len(attachment_ids) <= 4

ParamsValidationError

len(content) <= 1_000

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пост.

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

ParamsValidationError

len(description) <= 1000

OriginalPost

OriginalPost(
    post_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: BasePost

is_deleted

is_deleted: bool

id

id: UUID

client

client: Optional[AsyncITDClient] = None

content

content: str

author

author: UserWithPin

attachments

attachments: list[Attachment]

likes_count

likes_count: int

created_at

created_at: ITDDatetime

comments_count

comments_count: int

respot_count

respot_count: int

views_count

views_count: int

spans

spans: list[Span]

get_full

get_full(**kwargs) -> tuple[list[Comment], Post]

Получить пост с комментариями.

RETURNS DESCRIPTION
tuple[list[Comment], Post]

Кортеж (список комментариев, пост)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пост не существует, удалён, владелец поста забанил, пост принадлежит пользователю с is_private=True, на которого вы не подписаны

delete

delete(**kwargs) -> None

Удалить пост.

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ForbiddenError

Нет прав для удаления поста

NotFoundError

Пост не найден

restore

restore(**kwargs) -> None

Восстановить пост.

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ForbiddenError

Нет прав для восстановления поста

NotFoundError

Пост не найден

like

like(**kwargs) -> int

Лайкнуть пост.

RETURNS DESCRIPTION
int

Новое количество лайков

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

unlike

unlike(**kwargs) -> int

Убрать лайк с поста.

RETURNS DESCRIPTION
int

Новое количество лайков

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

view

view(**kwargs) -> None

Зафиксировать просмотр поста.

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

pin

pin(**kwargs) -> bool

Закрепить пост на своей стене.

RETURNS DESCRIPTION
bool

Успешность операции

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

ForbiddenError

Можно прикреплять посты только на своей стене

unpin

unpin(**kwargs) -> bool

Открепить пост со своей стены.

RETURNS DESCRIPTION
bool

Успешность операции

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotPinedError

Пост не прикреплён

get_comments

get_comments(
    cursor: str | None = None,
    limit: int = 20,
    sort: CommentSort
    | Literal["popular", "newest", "oldest"] = "popular",
    **kwargs,
) -> tuple[TotalPagination, list[Comment]]

Получить комментарии под постом.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество комментариев (1 <= limit <= 500)

TYPE: int DEFAULT: 20

sort

сортировка ("popular", "newest", "oldest")

TYPE: CommentSort | Literal['popular', 'newest', 'oldest'] DEFAULT: 'popular'

RETURNS DESCRIPTION
tuple[TotalPagination, list[Comment]]

Кортеж (пагинация с общим количеством, список комментариев)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

vote

vote(
    option_ids: list[Union[UUID, str, OptionRef]], **kwargs
) -> Poll

Проголосовать в опросе.

PARAMETER DESCRIPTION
option_ids

список выбранных вариантов (можно передавать как UUID, строки или OptionRef)

TYPE: list[Union[UUID, str, OptionRef]]

RETURNS DESCRIPTION
Poll

Обновлённый опрос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пост не найден

ValidationError

Один или несколько вариантов не принадлежат этому опросу

ValidationError

В этом опросе можно выбрать только один вариант

ValidationError

len(option_ids) > 0

update

update(
    content: str, spans: list = None, **kwargs
) -> UpdatePostResponse

Изменить текст поста.

PARAMETER DESCRIPTION
content

Новый текст поста

TYPE: str

spans

Форматирование текста (список объектов форматирования)

TYPE: list DEFAULT: None

RETURNS DESCRIPTION
UpdatePostResponse

Обновлённый пост (содержит дату редактирования)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

ValidationError

1 <= len(content) <= 1_000

ForbiddenError

Нет прав для редактирования этого поста

EditWindowExpiredError

пост нельзя изменять спустя несколько дней

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

repost

repost(content: str = '', **kwargs) -> Post

Сделать репост этого поста.

PARAMETER DESCRIPTION
content

Текст репоста (необязательно)

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Post

Созданный репост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

ConflictError

Нельзя репостнуть два раза

ValidationError

Нельзя репостить свои посты

ValidationError

len(content) <= 1_000

comment

comment(
    content: str = "",
    attachment_ids: Union[
        list[Union[UUID, str, FileRef]], None
    ] = None,
    **kwargs,
) -> Comment

Создать комментарий к посту.

PARAMETER DESCRIPTION
content

текст комментария

TYPE: str DEFAULT: ''

attachment_ids

список прикреплённых файлов (можно передавать как UUID, строки или FileRef) (максимум 4)

TYPE: Union[list[Union[UUID, str, FileRef]], None] DEFAULT: None

RETURNS DESCRIPTION
Comment

Созданный комментарий

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пост не найден

ITDError

файл с указанным UUID не существует

ValidationError

нельзя создать пустой комментарий (без текста и вложений)

ParamsValidationError

len(attachment_ids) <= 4

ParamsValidationError

len(content) <= 1_000

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пост.

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

ParamsValidationError

len(description) <= 1000

Post

Post(
    post_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: BasePost

is_liked

is_liked: bool

wall_recipient_id

wall_recipient_id: None | UUID

is_viewed

is_viewed: bool

is_reposted

is_reposted: bool

poll

poll: Poll | None

is_owner

is_owner: bool

original_post

original_post: OriginalPost | None

dominant_emoji

dominant_emoji: str | None

edited_at

edited_at: ITDDatetime | None

wall_recipient

wall_recipient: None | UserWithAvatar

id

id: UUID

client

client: Optional[AsyncITDClient] = None

content

content: str

author

author: UserWithPin

attachments

attachments: list[Attachment]

likes_count

likes_count: int

created_at

created_at: ITDDatetime

comments_count

comments_count: int

respot_count

respot_count: int

views_count

views_count: int

spans

spans: list[Span]

get_full

get_full(**kwargs) -> tuple[list[Comment], Post]

Получить пост с комментариями.

RETURNS DESCRIPTION
tuple[list[Comment], Post]

Кортеж (список комментариев, пост)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пост не существует, удалён, владелец поста забанил, пост принадлежит пользователю с is_private=True, на которого вы не подписаны

delete

delete(**kwargs) -> None

Удалить пост.

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ForbiddenError

Нет прав для удаления поста

NotFoundError

Пост не найден

restore

restore(**kwargs) -> None

Восстановить пост.

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ForbiddenError

Нет прав для восстановления поста

NotFoundError

Пост не найден

like

like(**kwargs) -> int

Лайкнуть пост.

RETURNS DESCRIPTION
int

Новое количество лайков

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

unlike

unlike(**kwargs) -> int

Убрать лайк с поста.

RETURNS DESCRIPTION
int

Новое количество лайков

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

view

view(**kwargs) -> None

Зафиксировать просмотр поста.

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

pin

pin(**kwargs) -> bool

Закрепить пост на своей стене.

RETURNS DESCRIPTION
bool

Успешность операции

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

ForbiddenError

Можно прикреплять посты только на своей стене

unpin

unpin(**kwargs) -> bool

Открепить пост со своей стены.

RETURNS DESCRIPTION
bool

Успешность операции

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotPinedError

Пост не прикреплён

get_comments

get_comments(
    cursor: str | None = None,
    limit: int = 20,
    sort: CommentSort
    | Literal["popular", "newest", "oldest"] = "popular",
    **kwargs,
) -> tuple[TotalPagination, list[Comment]]

Получить комментарии под постом.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество комментариев (1 <= limit <= 500)

TYPE: int DEFAULT: 20

sort

сортировка ("popular", "newest", "oldest")

TYPE: CommentSort | Literal['popular', 'newest', 'oldest'] DEFAULT: 'popular'

RETURNS DESCRIPTION
tuple[TotalPagination, list[Comment]]

Кортеж (пагинация с общим количеством, список комментариев)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

vote

vote(
    option_ids: list[Union[UUID, str, OptionRef]], **kwargs
) -> Poll

Проголосовать в опросе.

PARAMETER DESCRIPTION
option_ids

список выбранных вариантов (можно передавать как UUID, строки или OptionRef)

TYPE: list[Union[UUID, str, OptionRef]]

RETURNS DESCRIPTION
Poll

Обновлённый опрос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пост не найден

ValidationError

Один или несколько вариантов не принадлежат этому опросу

ValidationError

В этом опросе можно выбрать только один вариант

ValidationError

len(option_ids) > 0

update

update(
    content: str, spans: list = None, **kwargs
) -> UpdatePostResponse

Изменить текст поста.

PARAMETER DESCRIPTION
content

Новый текст поста

TYPE: str

spans

Форматирование текста (список объектов форматирования)

TYPE: list DEFAULT: None

RETURNS DESCRIPTION
UpdatePostResponse

Обновлённый пост (содержит дату редактирования)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

ValidationError

1 <= len(content) <= 1_000

ForbiddenError

Нет прав для редактирования этого поста

EditWindowExpiredError

пост нельзя изменять спустя несколько дней

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

repost

repost(content: str = '', **kwargs) -> Post

Сделать репост этого поста.

PARAMETER DESCRIPTION
content

Текст репоста (необязательно)

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Post

Созданный репост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пост не найден

ConflictError

Нельзя репостнуть два раза

ValidationError

Нельзя репостить свои посты

ValidationError

len(content) <= 1_000

comment

comment(
    content: str = "",
    attachment_ids: Union[
        list[Union[UUID, str, FileRef]], None
    ] = None,
    **kwargs,
) -> Comment

Создать комментарий к посту.

PARAMETER DESCRIPTION
content

текст комментария

TYPE: str DEFAULT: ''

attachment_ids

список прикреплённых файлов (можно передавать как UUID, строки или FileRef) (максимум 4)

TYPE: Union[list[Union[UUID, str, FileRef]], None] DEFAULT: None

RETURNS DESCRIPTION
Comment

Созданный комментарий

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пост не найден

ITDError

файл с указанным UUID не существует

ValidationError

нельзя создать пустой комментарий (без текста и вложений)

ParamsValidationError

len(attachment_ids) <= 4

ParamsValidationError

len(content) <= 1_000

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пост.

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

ParamsValidationError

len(description) <= 1000