Получение категории

# Получение категории по ID
category = await api.get_category(1)

# Получение родительской категории
parent = await category.get_parent_category()

Структура объекта Category

Основная информация

category.id          # ID категории
category.title       # Название категории
category.pages_count # Количество страниц в категории
category.url         # Полный URL категории

Методы Category

create_thread(title: str, message_html: str, discussion_type: str = "discussion", watch_thread: bool = True)

Создание новой темы.
# Создание новой темы
await category.create_thread(
    title="Заголовок темы",
    message_html="<b>Текст темы</b>",
    discussion_type="discussion",
    watch_thread=True
)

get_threads(page: int = 1)

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

get_threads_extended(page: int = 1)

Получение подробной информации о темах.

get_categories()

Получение подкатегорий.

get_parent_category()

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

set_read()

Отметить все как прочитанное.

watch(notify: str = "thread", send_alert: bool = True, send_email: bool = False, stop: bool = False)

Управление подпиской.
# Управление подпиской
await category.watch(
    notify="thread",
    send_alert=True,
    send_email=False,
    stop=False
)

Примеры использования

Базовая работа с категорией

# Получение категории
category = await api.get_category(1)

# Вывод информации
print(f"Категория: {category.title}")
print(f"Количество страниц: {category.pages_count}")
print(f"URL: {category.url}")

# Создание новой темы
await category.create_thread(
    title="Новая тема",
    message_html="<b>Текст темы</b>"
)

Навигация по категориям

# Получение иерархии
parent = await category.get_parent_category()
if parent:
    print(f"Родительская категория: {parent.title}")

# Получение подкатегорий
subcategories = await category.get_categories()
for sub_id in subcategories:
    sub = await api.get_category(sub_id)
    print(f"Подкатегория: {sub.title}")

# Подписываемся на категорию
await category.watch(
    notify="thread",
    send_alert=True,
    send_email=False
)
print("Вы подписались на категорию")

# Создаем новую тему
await category.create_thread(
    title="Важная тема",
    message_html="<b>Текст новой темы</b>"
)

# Получаем темы с первой страницы
threads = await category.get_threads_extended(page=1)
for thread_data in threads:
    print(f"Тема: {thread_data['title']}")
    print(f"Автор: {thread_data['creator_name']}")
    print(f"Ответов: {thread_data['reply_count']}")

# Получаем дочерние категории
subcategories = await category.get_categories()
print(f"Подкатегорий: {len(subcategories)}")

# Отмечаем все как прочитанное
await category.set_read()

Структура thread_data

При использовании get_threads_extended() каждая тема содержит:
{
    'id': int,  # ID темы
    'title': str,  # Заголовок
    'creator_id': int,  # ID автора
    'creator_name': str,  # Имя автора
    'reply_count': int,  # Количество ответов
    'view_count': int,  # Количество просмотров
    'last_post_date': int,  # Дата последнего ответа
    'last_post_id': int,  # ID последнего сообщения
    'last_poster_id': int,  # ID последнего ответившего
    'last_poster_name': str,  # Имя последнего ответившего
    'is_sticky': bool,  # Закреплена ли тема
    'is_locked': bool,  # Закрыта ли тема
    'is_watched': bool  # Подписан ли пользователь
}