Botik core package
Project description
Botik
Botik позволяет вам писать код для ботов, одновременно исполняемый на разных мессенджерах. Так же вам предлагается перейти от типичного написания функций-хендлеров на новую абстракцию страниц.
Установка
# Telegram
pip install botik-telebot
# VK
pip install botik-vkbottle
Пример кода страницы
Ваше приложение на Botik будет представлять собой набор страниц. Страница — это объект для обработки пользовательского ввода и вывода.
class ExamplePage(Page):
async def make_page_content(self, user):
text = "Пример страницы"
# ButtonCallback ожидает асинхронный метод с первым аргументом user,
# и всеми последующими с явным указанием их имен
self.markup.add_row([
ButtonData("Нажми меня!", ButtonCallback(self.send, message="Привет, мир!"))
])
self.markup.add_row([
ButtonData("Back", ButtonCallback(navigator.get_back)),
ButtonData("Home", ButtonCallback(navigator.change_page, path=f"~/"))
])
await self.send(user, text, markup=True)
Запуск бота
Создаем два модуля-входных точек для нашего приложения.
Сперва инициализируем Backbone фреймворк для работы с мессенджером и прокидываем его в конструктор ядра приложения.
# Telegram
from telebot.async_telebot import AsyncTeleBot
from botik_telebot.app import TgApp
token = "токен бота"
bot = AsyncTeleBot(token)
app = TgApp(bot)
# VK
from vkbottle import API
from vkbottle.bot import Bot
from botik_vkbottle.app import VkApp
token = "токен бота"
# Текущая реализация фреймворка требует ссылки на High и Low Level API
bot = Bot(token=token)
low_api = API(token)
app = VkApp(bot, low_api)
Создаем экземпляры, описывающие наши будущие страницы
# Первым аргументом тип страницы, вторым относительный адрес, третьим адрес или объект родительской страницы
main_data = PageData(MainPage, '/', '', inline=True, one_time=True)
page1 = PageData(FirstPage, '/page1', main_data, inline=False, one_time=False)
# ...
# Собираем их в список
pages = [main_data, page1]
Устанавливаем странички и запускаем приложение!
app.set_pages(pages)
app.start()
Основан на pyTelegramBotAPI и VKBottle
Project details
Release history Release notifications | RSS feed
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 botik-0.0.2.tar.gz.
File metadata
- Download URL: botik-0.0.2.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5428437c5e4f5dcead89ce3ba4ad0f436af8b82be9935e610fbb260a0096751
|
|
| MD5 |
1fe625546ca83fc5c25f1e911ce45f0c
|
|
| BLAKE2b-256 |
4f90efff7ca79655f22bb99841836d8da6dc333e9fa4417b83eae4fc5d818175
|
File details
Details for the file botik-0.0.2-py3-none-any.whl.
File metadata
- Download URL: botik-0.0.2-py3-none-any.whl
- Upload date:
- Size: 17.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73d587e57d50fe9ff26fe217d1a1f4f762fb711948ff1dec770ecc78c2d2d72f
|
|
| MD5 |
fa5f65709cd2e0fed3abf393ea93288a
|
|
| BLAKE2b-256 |
2806c03a78f8e676e25f26d9c17c67c8b5a5b3cc5230e3e903567cce9d48be8a
|