Python библиотека для автоматизации работы с API сайта kaalition.ru
Project description
Kaalition API Library — это Python библиотека с объектно-ориентированным интерфейсом для работы с API сайта kaalition.ru. Библиотека упрощает взаимодействие с API, беря на себя обработку HTTP-запросов, аутентификацию и управление ошибками.
Установка
Требования
- Python 3.8+
- requests
- faker
pip (рекомендуется)
pip install kaalition-lib
Из исходного кода
git clone https://github.com/Dima-programmer/KAALITION_API_LIB/kaalition-lib.git
Быстрый старт
from kaalition_lib import KaalitionClient
# Создание клиента и регистрация аккаунта
client = KaalitionClient()
account = client.register()
print(f"Аккаунт создан: {account.username}")
# Поиск пользователей
users = account.search_users("никнейм")
if users:
# Отправка сообщения
account.send_message(users[0], "Привет!")
API Reference
KaalitionClient
Базовый клиент для операций без авторизации.
from kaalition_lib import KaalitionClient
client = KaalitionClient(
base_url="https://kaalition.ru",
accounts_file="accounts.json"
)
Методы:
| Метод | Описание |
|---|---|
register() |
Регистрация нового аккаунта |
login(email, password) |
Вход в аккаунт |
create_from_token(token) |
Создание аккаунта из токена |
load_accounts() |
Загрузка сохранённых аккаунтов |
get_projects() |
Получение списка проектов |
get_members() |
Получение списка участников |
get_news() |
Получение списка новостей |
Account
Аккаунт с авторизацией.
account = client.register()
Методы:
| Метод | Описание |
|---|---|
search_users(query) |
Поиск пользователей |
send_message(user, message) |
Отправка личного сообщения |
create_support_ticket(subject, message) |
Создание тикета поддержки |
send_to_support(message) |
Отправка в чат поддержки |
update_profile(...) |
Обновление профиля |
refresh() |
Синхронизация с сервером |
is_active() |
Проверка активности |
save() |
Сохранение аккаунта |
User
@dataclass
class User:
id: int
username: str
nickname: str
photo: str
avatar_emoji: Optional[str]
is_verified: bool
Project
@dataclass
class Project:
id: int
title: str
description: str
image: Optional[str]
button_text: str
link: str
order: int
is_active: bool
created_at: str
updated_at: str
Member
@dataclass
class Member:
id: int
nickname: str
photo: Optional[str]
group: str
telegram: str
itd: str
order: int
is_active: bool
created_at: str
updated_at: str
News
@dataclass
class News:
id: int
title: str
content: str
subtitle: Optional[str]
image: Optional[str]
is_published: bool
views: int
created_at: str
updated_at: str
Примеры
Работа с коллекцией аккаунтов
from kaalition_lib import load_accounts, clean_accounts_file
# Загрузка активных аккаунтов
accounts = load_accounts("accounts.json", active_only=True)
# Проверка активности
for acc in accounts:
if acc.is_active():
acc.update_profile(bio="Обновлено")
acc.save()
# Очистка неактивных
clean_accounts_file("accounts.json")
Массовая рассылка
from kaalition_lib import KaalitionClient
import time
client = KaalitionClient()
account = client.login("email@mail.ru", "password")
users = account.search_users("аудитория")
for user in users:
if account.is_active():
account.send_message(user, "Ваше сообщение")
time.sleep(1)
Получение проектов, участников и новостей
from kaalition_lib import KaalitionClient
client = KaalitionClient()
# Проекты
projects = client.get_projects()
for project in projects:
print(f"{project.title}: {project.link}")
# Участники
members = client.get_members()
for member in members:
print(f"{member.nickname} ({member.group})")
# Новости
news = client.get_news()
for item in news:
print(f"{item.title}: {item.content[:100]}...")
Исключения
from kaalition_lib import (
KaalitionError,
RegistrationError,
LoginError,
TokenError,
)
try:
account = client.register()
except RegistrationError:
print("Ошибка регистрации")
except LoginError:
print("Ошибка входа")
except TokenError:
print("Ошибка токена")
Константы
from kaalition_lib import (
DEFAULT_BASE_URL,
DEFAULT_ACCOUNTS_FILE,
DEFAULT_USER_AGENT,
DEFAULT_DELAY,
DEFAULT_EMAIL_DOMAINS,
)
Поддержка проекта
Если библиотека оказалась полезной, вы можете:
- Поставить звезду на GitHub
- Сообщить об ошибке через Issues
- Предложить улучшения через Pull Requests
Ваша обратная связь помогает делать библиотеку лучше.
Лицензия
MIT License. Подробности в файле LICENSE.
Автор
Dima-Programmer
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
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 kaalition_lib-1.1.0.tar.gz.
File metadata
- Download URL: kaalition_lib-1.1.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50e7a860399bbe65ab456d501f458fb41e1d7deba97445481ba7173f6f6e077c
|
|
| MD5 |
77caf4bfb37c02ca6e00ab99cfe538ea
|
|
| BLAKE2b-256 |
1f5d8e5a6667c54159bd7d873212dde33f4554afb1476c48d5280bf41f7892cc
|
Provenance
The following attestation bundles were made for kaalition_lib-1.1.0.tar.gz:
Publisher:
publish.yml on Dima-programmer/KAALITION_API_LIB
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kaalition_lib-1.1.0.tar.gz -
Subject digest:
50e7a860399bbe65ab456d501f458fb41e1d7deba97445481ba7173f6f6e077c - Sigstore transparency entry: 982864590
- Sigstore integration time:
-
Permalink:
Dima-programmer/KAALITION_API_LIB@558cd312ed6de5f8814dd57336f46d36477ea018 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Dima-programmer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@558cd312ed6de5f8814dd57336f46d36477ea018 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file kaalition_lib-1.1.0-py2.py3-none-any.whl.
File metadata
- Download URL: kaalition_lib-1.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de847311439ffcd36c0976b50b6102b6c4eb0360a044b6eb9126daca951d5451
|
|
| MD5 |
c1747d8fa6b19f7d21ed3f5066cece77
|
|
| BLAKE2b-256 |
0c3290da636c452abb6153278f4e55ce71cc555fb04a52b66d1d77a447d9affd
|
Provenance
The following attestation bundles were made for kaalition_lib-1.1.0-py2.py3-none-any.whl:
Publisher:
publish.yml on Dima-programmer/KAALITION_API_LIB
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kaalition_lib-1.1.0-py2.py3-none-any.whl -
Subject digest:
de847311439ffcd36c0976b50b6102b6c4eb0360a044b6eb9126daca951d5451 - Sigstore transparency entry: 982864614
- Sigstore integration time:
-
Permalink:
Dima-programmer/KAALITION_API_LIB@558cd312ed6de5f8814dd57336f46d36477ea018 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Dima-programmer
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@558cd312ed6de5f8814dd57336f46d36477ea018 -
Trigger Event:
workflow_dispatch
-
Statement type: