Skip to main content

🤖 Bontakte

Python-библиотека для создания ботов ВКонтакте

Python Version License PyPI

Документация • Примеры • Установка


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 API
  • group_id (int, optional) — ID группы для Long Poll
  • api_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_messages
  • User — объект пользователя с полями: id, first_name, last_name, username, photo, is_bot, full_name
  • Chat — объект чата с полями: id, type, title, members_count
  • Attachment — объект вложения с полями: type, url, title, description, data
  • Event — базовый класс события
  • MessageEvent — событие сообщения, наследуется от Event

🔧 Требования

  • Python 3.8+
  • requests >= 2.28.0

📝 Лицензия

Этот проект распространяется под лицензией MIT. Подробности в файле LICENSE.

👤 Автор

Triazov Kirill

🤝 Вклад в проект

Мы приветствуем вклад в развитие библиотеки! Пожалуйста, ознакомьтесь с 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)

Source distribution for bontakte 0.1.0
File Size Uploaded
bontakte-0.1.0.tar.gz 10.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bontakte 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page