Skip to main content

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

Project description

🤖 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.


Сделано с ❤️ для разработчиков ВКонтакте

⭐ Поставить звезду🐛 Сообщить об ошибке💡 Предложить идею

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

bontakte-0.1.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

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

bontakte-0.1.0-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for bontakte-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2e03564f87c35dfb3ebb4512aa82b1c9e36e93e7b0db0a119decf0c02d146700
MD5 8f917206985fec5bf5f3329e2308b210
BLAKE2b-256 099bebca003e839dd6ff171985af5dc921b5cc2cc9e7f899a6725d45932b3c3b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for bontakte-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e73192bf920aa9be6aad293e72914faaf934a090a646ee457807e5d58f1d7944
MD5 4d3a7dbc79be38b6fc651546e45e8719
BLAKE2b-256 526a2dcdd121cc64b32941b91e13efe79cd2f26e09c4d23074bd2dd6032e91f7

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