Skip to content

Посты

Создать пост

post = c.create_post(
    content='чиенбурбе круче чем #иванговно',
    spans=[],
    wall_recipient_id=None,
    attachemnt_ids=[],
    poll=None
)
Должно быть указан хотя бы что-то одно (кроме spans и wall_recipient_id).

Параметры

content str One of required

Содержание поста.

spans list[Span]

Стилизация.

Example

Для получения этого списка можно использовать парсинг (на данный момент поддерживается только html):

from itd.utils import parse_html

c.create_post(*parse_html('<b>Толстый</b> <i>и</i> тонкий'))
Результат: толстый и тонкий

Info

* - символ для "разархивации". parse_html возвращает список, который * разделяет на content (читый контент без тэгов) и spans

wall_recipient_id UUID

ID получателя поста (для постов на стене). Username не работает.

attachment_ids list[UUID] One of required

ID вложений.

poll PollData One of required

Опросник.

Example

from itd.models.post import PollData

c.create_post(
    poll=PollData(
        'вапро', # (1)
        ['орешки макадамья', 'мне офень нгахвятся'], # (2)
        False # (3)
    )
)
  1. Вопрос опроса
  2. Варианты ответа
  3. Можно ли ответить сразу несколько вариантов (по умолчанию - False)

Ошибки

  • NotFound - получатель поста не найден.
  • Forbidden - некоторые вложения не принадлежат вам или файл не существует. Вложения должны быть загружены вами через upload_file.
  • ValidationError - ошибка валидации, скорее всего из-за слишком большого количества символов.
  • RequiresVerification - нельзя загружать видео с неверифицированого аккаунта.

Проголосовать

poll = c.vote(
    id=UUID('aa612e16-eb1f-4323-89ce-4eacda133672'),
    option_ids=[UUID('f12c70c7-141e-4dff-9e5b-87f039c7ba58')]
)

Параметры

id UUID Required

ID поста.

option_ids list[UUID] Required

ID опций для выбора (даже если в опросе можно выбрать только 1 вариант, все равно пишите как список).

Example

c.vote(
    UUID('aa612e16-eb1f-4323-89ce-4eacda133672'),
    [UUID('f12c70c7-141e-4dff-9e5b-87f039c7ba58')]
)
c.vote(
    UUID('a6135f23-bd75-441b-93b7-cf9cf04ef76c'),
    [
        UUID('6daf7815-b30a-4f98-8091-7a0e24caba6c'),
        UUID('3add69ee-4dae-4a81-9e4a-3e0fe77c7be0'),
        UUID('ac758a37-2cb5-45ba-b743-a0a11a2b8d3d')
    ]
)

Получить посты

posts, pagination = c.get_posts(
    cursor=0,
    limit=20,
    tab=PostsTab.POPULAR
)

Параметры

cursor int

Курсор для пагинации (из pagination.next_cursor).

Example

cursor = None

while True:
    posts, pagination = c.get_posts(cursor=cursor)
    cursor = pagination.next_cursor

limit int

Лимит постов.

tab PostsTab

Вкладка.

  • POPULAR: Популярные
  • FOLLOWING: Подписки
  • CLAN: Лента кланов

Example

from itd.enums import PostsTab

c.get_posts(tab=PostsTab.FOLLOWING)

Получить пост

post = c.get_post(
    id=UUID('c2f443df-61eb-4bfc-b52f-13aacecb9c46')
)

Параметры

id UUID Required

ID поста.

Ошибки

  • NotFound - пост не найден.

Отредактировать пост

content = c.edit_post(
    id=UUID('c2f443df-61eb-4bfc-b52f-13aacecb9c46'),
    content='Новое содержимое',
    spans=[]
)

Параметры

id UUID Required

ID поста.

content str Required

Новое содержимое.

spans list[Span]

Стилизация. см. Пример заполнения

Ошибки

  • NotFound - пост не найден.
  • Forbidden - пост не ваш.
  • ValidationError - ошибка валидации.
  • EditExpired - истекло время на редактирование. Редактирвоание разрешено только в первые 48ч после его публикации.

Удалить пост

c.delete_post(
    id=UUID('c2f443df-61eb-4bfc-b52f-13aacecb9c46')
)

Параметры

id UUID Required

ID поста.

Ошибки

  • NotFound - пост не найден.
  • Forbidden - пост не ваш.

Закрепить пост

c.pin_post(
    id=UUID('c2f443df-61eb-4bfc-b52f-13aacecb9c46')
)

Параметры

id UUID Required

ID поста.

Ошибки

  • NotFound - пост не найден.
  • Forbidden - пост не на вашей стене.

Репост

post = c.repost(
    id=UUID('c2f443df-61eb-4bfc-b52f-13aacecb9c46'),
    content='Содрежимое'
)

Параметры

id UUID Required

ID поста.

content str

Дополнительная подпись.

Ошибки

  • NotFound - пост не найден.
  • AlreadyReposted - пост уже репостнут.
  • CantRepostYourPost - собственные посты нельзя репостить.
  • ValidationError - ошибка валидации.

Просмотреть пост

c.view_post(
    id=UUID('c2f443df-61eb-4bfc-b52f-13aacecb9c46')
)

Параметры

id UUID Required

ID поста.

Ошибки

  • NotFound - пост не найден.

Получить посты пользователя

from itd.enums import UserPostSorting

posts, pagination = c.get_user_posts(
    username_or_id='itd_sdk',
    limit=20,
    cursor=None,
    pinnned_post_id=None,
    sort=UserPostSorting.NEW
)

Параметры

id UUID Required

ID или username пользователя.

limit int

Лимит постов.

cursor datetime

Курсор для пагинации (из pagination.next_cursor).

pinned_post_id UUID

ID закрепелнного поста (если cursor=0, то добавится в начало). Можно взять из user.pinned_post_id. Если пост не найден, закрепелнного поста не будет.

sort UserPostSorting

Сортировка.

  • NEW: Новые
  • POPULAR: Популярные

Ошибки

  • NotFound - пользователь не найден.

Получить лайкнутые посты пользователя

posts, pagination = c.get_liked_posts(
    username_or_id='itd_sdk',
    limit=20,
    cursor=None
)

Параметры

id UUID Required

ID или username пользователя.

limit int

Лимит постов.

cursor datetime

Курсор для пагинации (из pagination.next_cursor).

Ошибки

  • NotFound - пользователь не найден.