Skip to main content

Python client for ChessHome platform API

Project description

♟️ ChessHome Python Client

Официальный Python-клиент для платформы Chess Home.
Позволяет взаимодействовать с API: управлять турнирами, форумом, клубами, решать задачи, отправлять личные сообщения и многое другое.


🚀 Установка

pip install chesshome

Или установка из исходников:

git clone https://github.com/your_username/chesshome-py.git
cd chesshome-py
pip install -e .

📖 Быстрый старт

from chesshome import ChessHomeClient

# Создаём клиент и авторизуемся
client = ChessHomeClient()
client.login("ваш_логин", "ваш_пароль")

# Получаем свой профиль
me = client.get_me()
print(f"Привет, {me.username}! Рейтинг: {me.rating}")

# Список активных турниров
tours = client.get_tournaments(status="active")
for t in tours:
    print(f"{t.name}{t.participantsCount} участников")

# Создаём тему на форуме
result = client.create_forum_thread(
    title="Моя первая тема",
    body="Привет! Это тест через Python-клиент."
)
print(f"Тема создана: {result['thread']['slug']}")

# Отправляем личное сообщение
client.send_dm("friend", "Привет! Как дела?")

📚 Документация по методам

🔑 Авторизация

Метод Описание
login(username, password) Вход в аккаунт, возвращает клиент с токеном

👤 Пользователи

Метод Описание
get_me() Получить свой профиль (User)
get_user(username) Получить профиль другого пользователя
search_users(query) Поиск пользователей по нику
follow(username) Подписаться на пользователя
unfollow(username) Отписаться
check_follow(username) Проверить, подписан ли ты на пользователя
get_followers(username) Список подписчиков пользователя
get_following(username) Список подписок пользователя
get_online_friends() Друзья онлайн (на кого подписан и онлайн)

🏆 Турниры

Метод Описание
get_tournaments(status) Список турниров (active, upcoming, finished)
get_tournament(id) Детали турнира
join_tournament(id) Вступить в турнир
leave_tournament(id) Покинуть турнир

💬 Форум

Метод Описание
get_forum_threads(page, limit) Список тем
get_forum_thread(slug) Получить тему с ответами
create_forum_thread(title, body) Создать тему
reply_to_thread(thread_id, body) Ответить в тему

📰 Блог

Метод Описание
get_blog_posts(page, limit) Список постов
get_blog_post(post_id) Получить пост
like_blog_post(post_id, unlike) Поставить/снять лайк

🧩 Задачи (Puzzles)

Метод Описание
get_puzzles(topic, difficulty, limit, offset) Список задач
get_puzzle(puzzle_id) Детали задачи
attempt_puzzle(puzzle_id, correct, moves) Отправить результат решения

⚡ Storm

Метод Описание
get_storm_puzzles(topics) Получить набор задач для шторма
finish_storm(score, total_attempted, correct, wrong, time_bonus) Завершить забег

🏛️ Клубы

Метод Описание
get_clubs() Список всех клубов
get_club(club_id) Информация о клубе
create_club(name, description) Создать клуб (макс. 5 на пользователя)
join_club(club_id) Вступить в клуб
leave_club(club_id) Покинуть клуб
update_club(club_id, name, description) Обновить клуб (только админ)
get_club_chat(club_id) Чат клуба (только для участников)

✉️ Личные сообщения (DM)

Метод Описание
get_conversations() Список диалогов
get_messages(partner, since) История сообщений с пользователем
send_dm(to, text) Отправить сообщение
mark_dm_read(partner) Отметить все сообщения как прочитанные
block_user(username) Заблокировать пользователя
unblock_user(username) Разблокировать

🌐 Глобальный чат

Метод Описание
get_global_chat(limit) Последние сообщения глобального чата (только чтение)

📊 Статистика

Метод Описание
get_stats() Общая статистика платформы

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

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

stats = client.get_stats()
print(f"Всего пользователей: {stats['totals']['users']}")
print(f"Сыграно партий: {stats['totals']['games']}")

Работа с клубами

# Создать клуб
new_club = client.create_club("Мой клуб", "Описание клуба")
print(f"Клуб создан: {new_club.id}")

# Вступить в клуб
client.join_club(new_club.id)

# Получить чат клуба
chat = client.get_club_chat(new_club.id)
for msg in chat.get('messages', []):
    print(f"{msg['username']}: {msg['message']}")

Задачи (Puzzles)

# Получить задачи по теме "Мат в 1 ход"
puzzles = client.get_puzzles(topic="mate1", limit=5)
for p in puzzles:
    print(p['title'], p['difficulty'])

# Отправить результат решения (пример)
# client.attempt_puzzle(puzzles[0]['id'], correct=True, moves=[...])

Подписки

# Подписаться на пользователя
client.follow("username")

# Проверить подписку
is_following = client.check_follow("username")
print(is_following)

# Получить список подписчиков
followers = client.get_followers("username")
for f in followers:
    print(f['username'])

📄 Лицензия

MIT License. См. файл LICENSE.


Разработано с ❤️ для сообщества Chess Home

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chesshome-0.1.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chesshome-0.1.0-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file chesshome-0.1.0.tar.gz.

File metadata

  • Download URL: chesshome-0.1.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for chesshome-0.1.0.tar.gz
Algorithm Hash digest
SHA256 89bc820c7575eede39cbd6a8c607fcebdd55dc7bdb59c156b72bab6aeab56e5b
MD5 e708128a98202242327e7083f58e82eb
BLAKE2b-256 c22783946692bd954d2f388821b14295609a56a1f717d1f1235be2058563da25

See more details on using hashes here.

File details

Details for the file chesshome-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: chesshome-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for chesshome-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8bdbd1b93aa0b946e60aad972dc4a8f0878c0ffb2590e57779fe7785915c26e
MD5 6f156f7b2527de7e3867bb0c60a6dfb9
BLAKE2b-256 6c353b7b75486119cb5f78e570f32d22beaab67348ab9d0e8b7e8ee0b112d046

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page