Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

botik-0.0.2.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

botik-0.0.2-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

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

Hashes for botik-0.0.2.tar.gz
Algorithm Hash digest
SHA256 f5428437c5e4f5dcead89ce3ba4ad0f436af8b82be9935e610fbb260a0096751
MD5 1fe625546ca83fc5c25f1e911ce45f0c
BLAKE2b-256 4f90efff7ca79655f22bb99841836d8da6dc333e9fa4417b83eae4fc5d818175

See more details on using hashes here.

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

Hashes for botik-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 73d587e57d50fe9ff26fe217d1a1f4f762fb711948ff1dec770ecc78c2d2d72f
MD5 fa5f65709cd2e0fed3abf393ea93288a
BLAKE2b-256 2806c03a78f8e676e25f26d9c17c67c8b5a5b3cc5230e3e903567cce9d48be8a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page