Асинхронная Python-библиотека для взаимодействия с API сервиса CheatBot.
Project description
🚀 CheatBot API: Асинхронная Python-библиотека
cheatbot — это мощная и интуитивно понятная асинхронная Python-библиотека, разработанная для бесшовного взаимодействия с API сервиса CheatBot. Она предоставляет удобный интерфейс для управления задачами, получения информации о сервисах и профиле, а также автоматизации рутинных операций.
✨ Особенности
- Полностью асинхронная: Построена на
asyncioдля высокопроизводительных и неблокирующих операций. - Типобезопасность: Использует
pydanticдля строгой валидации данных и автодополнения. - Простота использования: Чистый и понятный API, который легко интегрировать в ваши проекты.
- Надежность: Встроенная обработка ошибок и исключений для стабильной работы.
- Гибкость: Поддержка всех основных функций CheatBot API.
🚀 Начало работы
Эти инструкции помогут вам быстро запустить проект на вашем локальном компьютере.
📋 Предварительные требования
Для работы с проектом вам понадобится uv — чрезвычайно быстрый установщик и распознаватель пакетов Python.
▶️ Быстрый старт
Чтобы использовать библиотеку в своем проекте, вы можете установить ее прямо из PyPI или GitHub:
Установка из PyPI (рекомендуется):
pip install cheatbot
Установка из GitHub (для последней версии):
pip install git+https://github.com/simonether/cheatbot.git
Вот простой пример использования клиента для получения информации о профиле и сервисах:
import asyncio
import os
from cheatbot import CheatBotClient
async def main():
# Убедитесь, что переменная окружения CHEATBOT_API_KEY установлена
api_key = os.getenv("CHEATBOT_API_KEY")
if not api_key:
raise ValueError("Переменная окружения CHEATBOT_API_KEY не установлена. Пожалуйста, установите ее.")
# Инициализация клиента. Используйте async with для автоматического закрытия сессии.
async with CheatBotClient(api_key) as client:
print("\n--- Информация о профиле ---")
profile = await client.get_profile_info()
print(f"Баланс: {profile.balance} RUB")
print(f"ID пользователя: {profile.user_id}")
print("\n--- Доступные сервисы ---")
# Получение всех сервисов
services = client.services.get_all()
print(f"Всего доступных сервисов: {len(services)}")
# Пример поиска конкретного сервиса по ID
service_id_to_find = 40 # Пример ID сервиса
service = client.services.get_by_id(service_id_to_find)
if service:
print(f"Найден сервис (ID: {service_id_to_find}): {service.name} (Категория: {service.category_name})")
else:
print(f"Сервис с ID {service_id_to_find} не найден.")
# Пример создания задачи (замените на реальные данные)
# try:
# new_task = await client.create_task(
# service_id=1, # Замените на реальный ID сервиса
# link="https://example.com/post", # Замените на реальную ссылку
# quantity=10 # Замените на желаемое количество
# )
# print(f"\nЗадача успешно создана! ID задачи: {new_task.id}, Статус: {new_task.status}")
# except Exception as e:
# print(f"\nОшибка при создании задачи: {e}")
if __name__ == "__main__":
asyncio.run(main())
🧪 Запуск тестов
Для запуска тестов используйте pytest:
uv run pytest
🤝 Участие
Мы приветствуем любой вклад в развитие проекта! Пожалуйста, ознакомьтесь с нашим руководством по участию и кодексом поведения.
📄 Лицензия
Этот проект распространяется под лицензией MIT. Подробности смотрите в файле LICENSE.
❓ Поддержка
Если у вас есть вопросы, предложения или вы столкнулись с проблемой, пожалуйста, создайте Issue на GitHub. Мы постараемся ответить как можно скорее.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cheatbot-0.1.0.tar.gz.
File metadata
- Download URL: cheatbot-0.1.0.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33785e0348fb59688d02896297eab18a1eeff4f2cae6395d5cae165eafbf8e2d
|
|
| MD5 |
9158d304836c54f5b9d28b91ec1109e6
|
|
| BLAKE2b-256 |
f36537a486df44468d44bc94e67a28b6ccadfc4b2d677ee851284a30e88c11d3
|
Provenance
The following attestation bundles were made for cheatbot-0.1.0.tar.gz:
Publisher:
release.yml on simonether/cheatbot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cheatbot-0.1.0.tar.gz -
Subject digest:
33785e0348fb59688d02896297eab18a1eeff4f2cae6395d5cae165eafbf8e2d - Sigstore transparency entry: 287476277
- Sigstore integration time:
-
Permalink:
simonether/cheatbot@24f14fd25e82fa4c510ab7ee0f586013b2bfd056 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/simonether
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@24f14fd25e82fa4c510ab7ee0f586013b2bfd056 -
Trigger Event:
release
-
Statement type:
File details
Details for the file cheatbot-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cheatbot-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c98d2b365210e0bad2af932a8c5572157831da2efd63f984e52a181eb77c7b7
|
|
| MD5 |
7d8c38e1b4511edb9694611222b9560a
|
|
| BLAKE2b-256 |
9496bbb1054ec94554a6b918d7f6b0097fc8715ef81acc5d4ed84b33632e026c
|
Provenance
The following attestation bundles were made for cheatbot-0.1.0-py3-none-any.whl:
Publisher:
release.yml on simonether/cheatbot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cheatbot-0.1.0-py3-none-any.whl -
Subject digest:
5c98d2b365210e0bad2af932a8c5572157831da2efd63f984e52a181eb77c7b7 - Sigstore transparency entry: 287476302
- Sigstore integration time:
-
Permalink:
simonether/cheatbot@24f14fd25e82fa4c510ab7ee0f586013b2bfd056 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/simonether
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@24f14fd25e82fa4c510ab7ee0f586013b2bfd056 -
Trigger Event:
release
-
Statement type: