🤖 Bontakte
Bontakte — это современная Python-библиотека для создания ботов ВКонтакте. Она предлагает интуитивный API, полную поддержку функционала платформы и высокую производительность. Решение идеально для автоматизации коммуникаций и создания сервисных приложений, обеспечивая надежность и простоту интеграции.
✨ Особенности
- 🚀 Простота использования — интуитивный API с декораторами
- ⚡ Высокая производительность — асинхронная обработка событий
- 🔧 Гибкость — поддержка фильтров и кастомных обработчиков
- 📦 Полная поддержка VK API — все основные методы платформы
- 🎯 Типизированные данные — удобные классы для работы с сообщениями и пользователями
- 🔄 Long Poll — автоматическая обработка обновлений
📦 Установка
pip install bontakte
Или из исходников:
git clone https://github.com/triazov/bontakte.git
cd bontakte
pip install -e .
🚀 Быстрый старт
from bontakte import Bot
bot = Bot(access_token="YOUR_ACCESS_TOKEN", group_id=YOUR_GROUP_ID)
@bot.message_handler()
async def handle_message(event):
await bot.send_message(
event.message.chat_id,
f"Привет, {event.user.full_name}! Вы написали: {event.message.text}"
)
bot.run()
📚 Примеры использования
Обработка сообщений с фильтрами
from bontakte import Bot
bot = Bot(access_token="YOUR_ACCESS_TOKEN", group_id=YOUR_GROUP_ID)
def is_command(event):
return event.message.text.startswith("/")
@bot.message_handler(filters=is_command)
async def handle_command(event):
command = event.message.text.split()[0]
if command == "/start":
await bot.send_message(event.message.chat_id, "Бот запущен!")
elif command == "/help":
await bot.send_message(event.message.chat_id, "Доступные команды: /start, /help")
bot.run()
Обработка различных событий
from bontakte import Bot
bot = Bot(access_token="YOUR_ACCESS_TOKEN", group_id=YOUR_GROUP_ID)
@bot.event_handler("message_new")
async def on_message(event):
print(f"Новое сообщение: {event.data}")
@bot.event_handler("message_edit")
async def on_message_edit(event):
print(f"Сообщение отредактировано: {event.data}")
@bot.event_handler("message_reply")
async def on_message_reply(event):
print(f"Ответ на сообщение: {event.data}")
bot.run()
Работа с вложениями
from bontakte import Bot
bot = Bot(access_token="YOUR_ACCESS_TOKEN", group_id=YOUR_GROUP_ID)
@bot.message_handler()
async def handle_message(event):
if event.message.attachments:
for attachment in event.message.attachments:
if attachment.type == "photo":
await bot.send_message(
event.message.chat_id,
f"Получено фото: {attachment.url}"
)
bot.run()
Асинхронная отправка сообщений
import asyncio
from bontakte import Bot
bot = Bot(access_token="YOUR_ACCESS_TOKEN", group_id=YOUR_GROUP_ID)
async def send_notifications():
peer_ids = [123456789, 987654321]
for peer_id in peer_ids:
await bot.send_message(peer_id, "Уведомление от бота!")
await asyncio.sleep(1)
@bot.message_handler()
async def handle_message(event):
if event.message.text == "/notify":
await send_notifications()
bot.run()
📖 Документация
Основные классы
Bot
Основной класс для работы с ботом.
Параметры инициализации:
access_token(str) — токен доступа VK APIgroup_id(int, optional) — ID группы для Long Pollapi_version(str, default: "5.131") — версия VK API
Методы:
| Метод | Описание |
|---|---|
message_handler(filters=None) |
Декоратор для обработки сообщений |
event_handler(event_type) |
Декоратор для обработки событий |
send_message(peer_id, text, **kwargs) |
Отправка сообщения |
get_user(user_id) |
Получение информации о пользователе |
run() |
Запуск бота (блокирующий метод) |
start_polling() |
Запуск бота (асинхронный метод) |
stop() |
Остановка бота |
Типы данных
Message— объект сообщения с полями:id,text,user_id,chat_id,date,attachments,reply_to,forward_messagesUser— объект пользователя с полями:id,first_name,last_name,username,photo,is_bot,full_nameChat— объект чата с полями:id,type,title,members_countAttachment— объект вложения с полями:type,url,title,description,dataEvent— базовый класс событияMessageEvent— событие сообщения, наследуется отEvent
🔧 Требования
- Python 3.8+
- requests >= 2.28.0
📝 Лицензия
Этот проект распространяется под лицензией MIT. Подробности в файле LICENSE.
👤 Автор
Triazov Kirill
- 🌐 Сайт: triazov.ru
- 📧 Email: info@triazov.ru
🤝 Вклад в проект
Мы приветствуем вклад в развитие библиотеки! Пожалуйста, ознакомьтесь с CONTRIBUTING.md для получения подробной информации.
📄 История изменений
Все изменения проекта документированы в CHANGELOG.md.
Сделано с ❤️ для разработчиков ВКонтакте
⭐ Поставить звезду • 🐛 Сообщить об ошибке • 💡 Предложить идею
Metadata
Release files for bontakte 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bontakte-0.1.0.tar.gz | 10.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bontakte-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.8 kB
Release files / bontakte-0.1.0.tar.gz
| Download URL | bontakte-0.1.0.tar.gz |
|---|---|
| Size | 10.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e03564f87c35dfb3ebb4512aa82b1c9e36e93e7b0db0a119decf0c02d146700
|
|
BLAKE2b-256 checksum How to use checksums |
099bebca003e839dd6ff171985af5dc921b5cc2cc9e7f899a6725d45932b3c3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Release files / bontakte-0.1.0-py3-none-any.whl
| Download URL | bontakte-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e73192bf920aa9be6aad293e72914faaf934a090a646ee457807e5d58f1d7944
|
|
BLAKE2b-256 checksum How to use checksums |
526a2dcdd121cc64b32941b91e13efe79cd2f26e09c4d23074bd2dd6032e91f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|