Skip to main content

Python SDK for Vontic Bot Platform — aiogram-style API for creating bots on Vontic

Project description

BotikSDK v0.3.0

Python SDK для создания ботов на платформе Вондик. Вдохновлён синтаксисом aiogram, но работает через API Вондик.

Установка

pip install botiksdk>=0.3.0

Быстрый старт

from botiksdk import Bot, Dispatcher, Command, Message

bot = Bot(bot_id="your-bot-id", token="your-token")
dp = Dispatcher()

@dp.message(Command("start"))
async def cmd_start(message: Message, bot: Bot):
    await bot.send_message(message.chat.id, "Привет!")

import asyncio
asyncio.run(dp.start_polling(bot))

Экспорты

Типы данных

Класс Описание
Bot Основной класс бота (отправка сообщений, файлов, модерация)
Message Сообщение
CallbackQuery Callback-запрос от инлайн-кнопки
User Пользователь
Chat Чат
Update Обновление
PublicAPIClient Прямой доступ к API Вондик

Роутинг и фильтры

Класс Описание
Dispatcher Диспетчер (роутинг обновлений)
Router Роутер для группировки обработчиков
Command Фильтр по командам /start, /help
Text Фильтр по тексту
Regex Фильтр по регулярному выражению
F Magic-фильтр (aiogram-style)
CallbackDataFilter Фильтр по callback data
RateLimit Ограничение частоты запросов
FSMContext Контекст конечного автомата

Клавиатуры

Класс Описание
InlineKeyboardBuilder Построитель инлайн-клавиатуры
InlineKeyboardButton Инлайн-кнопка
ReplyKeyboardBuilder Построитель reply-клавиатуры (v0.3.0)
KeyboardButton Кнопка reply-клавиатуры (v0.3.0)
ReplyKeyboardRemove Удаление reply-клавиатуры (v0.3.0)

Файлы (v0.3.0)

Класс Описание
InputFile Обёртка для отправки файлов (локальный путь или байты → base64)

Игры

Функция Описание
play_games_button Кнопка "Играть в игры"
upload_game_button Кнопка "Загрузить игру"
game_play_button Кнопка "Начать игру"

Методы Bot (v0.3.0)

Отправка сообщений

await bot.send_message(chat_id, "Текст")
await bot.send_photo(chat_id, InputFile("photo.jpg"), caption="Фото")
await bot.send_document(chat_id, InputFile("doc.pdf"))
await bot.send_voice(chat_id, InputFile("voice.ogg"))
await bot.send_video(chat_id, InputFile("video.mp4"))
await bot.send_video_note(chat_id, InputFile("circle.mp4"))

Модерация

await bot.ban_chat_member(chat_id, user_id)
await bot.unban_chat_member(chat_id, user_id)
await bot.kick_chat_member(chat_id, user_id)
await bot.restrict_chat_member(chat_id, user_id, permissions={"can_send_messages": False})
await bot.promote_chat_member(chat_id, user_id, can_change_info=True)
await bot.set_chat_title(chat_id, "Название")
await bot.get_chat_member(chat_id, user_id)

Управление сообщениями

await bot.delete_message(chat_id, message_id)
await bot.forward_message(from_chat_id, to_chat_id, message_id)
await bot.pin_chat_message(chat_id, message_id)

Инлайн-действия

await bot.answer_callback_query(callback.id, text="Готово!", show_alert=True)
await bot.edit_message_text("Новый текст", chat_id, message_id)
await bot.edit_message_reply_markup(chat_id, message_id, reply_markup=new_markup)

Опросы

poll = await bot.send_poll(chat_id, "Вопрос?", ["Да", "Нет"], is_anonymous=True)
await bot.stop_poll(chat_id, poll.message_id)

Стикеры

await bot.send_sticker(chat_id, sticker_id)
sticker_set = await bot.get_sticker_set("название")

Бот-команды

from botiksdk import Command
await bot.set_my_commands([
    {"command": "start", "description": "Начать"},
    {"command": "help", "description": "Помощь"},
])

Чат-действия

await bot.send_chat_action(chat_id, "typing")

Reply-клавиатура (v0.3.0)

from botiksdk import ReplyKeyboardBuilder, KeyboardButton

builder = ReplyKeyboardBuilder()
builder.row(
    KeyboardButton("Помощь"),
    KeyboardButton("Настройки"),
)
builder.row(
    KeyboardButton("📍 Локация", request_location=True),
)
await message.answer("Выберите действие:", reply_markup=builder.as_markup())

# Удалить клавиатуру
from botiksdk import ReplyKeyboardRemove
await message.answer("Готово!", reply_markup=ReplyKeyboardRemove().as_markup())

Файлы (v0.3.0)

from botiksdk import InputFile

# Из файла
photo = InputFile(path="/path/to/image.jpg")
await bot.send_photo(chat_id, photo, caption="Фото")

# Из байтов
doc = InputFile(file_bytes=b"...", filename="document.pdf")
await bot.send_document(chat_id, doc)

События и хуки (v0.3.0)

dp = Dispatcher()

@dp.startup
async def on_startup():
    print("Бот запущен!")

@dp.shutdown
async def on_shutdown():
    print("Бот остановлен!")

@dp.message(Command("help"))
async def help_handler(message: Message, bot: Bot):
    await message.answer("Помощь")

FSM (конечные автоматы)

from botiksdk import FSMContext, Command

@dp.message(Command("order"))
async def start_order(message: Message, state: FSMContext):
    await state.set_state("waiting_product")
    await message.answer("Какой товар?")

@dp.message(state="waiting_product")
async def process_order(message: Message, state: FSMContext):
    product = message.text
    await state.set_data({"product": product})
    await state.set_state("waiting_quantity")
    await message.answer("Сколько штук?")

@dp.message(state="waiting_quantity")
async def finish_order(message: Message, state: FSMContext):
    data = await state.get_data()
    await message.answer(f"Заказ: {data['product']} x {message.text}")
    await state.set_state(None)

Версии

Версия Дата Изменения
0.1.0 Первая версия. Bot, Dispatcher, Message, CallbackQuery, FSM, InlineKeyboard, фильтры
0.2.0 Game buttons, rate limiting
0.3.0 2026-07-17 Reply-клавиатуры, InputFile, модерация, опросы, стикеры, callback actions, bot commands, startup/shutdown хуки, chat actions

Лицензия

Внутренняя библиотека для платформы Вондик.

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

botiksdk-0.3.1.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

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

botiksdk-0.3.1-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file botiksdk-0.3.1.tar.gz.

File metadata

  • Download URL: botiksdk-0.3.1.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for botiksdk-0.3.1.tar.gz
Algorithm Hash digest
SHA256 6bb1ae00609313d4daced12c00addd4859e64db47c09672249e57a94c9a710ec
MD5 3b90beb5e79de61b4f51b1270dfdb9e7
BLAKE2b-256 34a23565470661d0e406beedbcb4acfedac490ef0d57107e55512cae47330864

See more details on using hashes here.

File details

Details for the file botiksdk-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: botiksdk-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 19.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for botiksdk-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ff27bceea4ea351f72d6568ebfeeb6d4e5ef37b1ae5294706726fa4972784903
MD5 7e424808ec1aa3eda063f27514c719f1
BLAKE2b-256 ab9f332fa2c4bb74bed1845696317e10de9d4625367798de16191ce7d86ec71e

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