Skip to content

Notifications

NotificationType

Bases: str, Enum

REPLY

REPLY = 'reply'

LIKE

LIKE = 'like'

WALL_POST

WALL_POST = 'wall_post'

FOLLOW

FOLLOW = 'follow'

COMMENT

COMMENT = 'comment'

REPOST

REPOST = 'repost'

MENTION

MENTION = 'mention'

Actor

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

Bases: UserWithAvatar

is_followed_by

is_followed_by: bool

is_following

is_following: bool

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

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

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

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

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

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

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

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

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

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

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

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

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

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

RAISES DESCRIPTION
UnauthorizedError

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

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

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

TYPE: str | None DEFAULT: None

limit

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

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

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

RAISES DESCRIPTION
UnauthorizedError

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

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

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

TYPE: str | None DEFAULT: None

limit

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

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

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

RAISES DESCRIPTION
UnauthorizedError

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

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

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

report

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

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

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

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

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

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

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

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

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

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

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

RAISES DESCRIPTION
UnauthorizedError

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

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

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

Notification

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

Bases: NotificationRef

id

id: UUID

created_at

created_at: ITDDatetime

preview

preview: str | None

is_readed

is_readed: bool

actor

actor: Actor

read_at

read_at: ITDDatetime | None

target_id

target_id: UUID | None

target_type

target_type: Literal['post'] | None

type

client

client: Optional[AsyncITDClient] = None

read

read(**kwargs) -> bool

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

RETURNS DESCRIPTION
bool

Успешна ли операция

RAISES DESCRIPTION
UnauthorizedError

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

NotificationsSettings

Bases: ITDBaseModel

comments

comments: bool

enabled

enabled: bool

follows

follows: bool

mentions

mentions: bool

sound

sound: bool

likes

likes: bool

wall_posts

wall_posts: bool