Перейти к содержанию

Easy bots

Обёртка над vkwave.bots для быстрого создания ботов.

from vkwave.bots import SimpleLongPollBot

bot = SimpleLongPollBot(tokens="MyToken", group_id=123456789)

@bot.message_handler()
def handle(_) -> str:
    return "Hello world!"

bot.run_forever()

vkwave.bots.easy поддерживает:

  • Простое создание сессий
from vkwave.bots import create_api_session_aiohttp

api_session = create_api_session_aiohttp("TOKEN")

# api_session.api.get_context().users.get()
  • Пул токенов
from vkwave.bots import SimpleLongPollBot

bot = SimpleLongPollBot(tokens=["MyToken1","MyToken2","MyToken3"], group_id=123456789)

@bot.message_handler(bot.text_filter("bye"))
def handle(_) -> str:
    return "bye world"

@bot.message_handler(bot.text_filter("hello"))
async def handle(event: bot.SimpleBotEvent):
    await event.answer("hello world!")

bot.run_forever()
  • ClonesBot (много ботов с одним роутером и одинаковыми хендлерами, боты-клоны)
from vkwave.bots import SimpleLongPollBot, ClonesBot


bot = SimpleLongPollBot(tokens=["MyToken1","MyToken2","MyToken3"], group_id=123456789)

@bot.message_handler(bot.text_filter("hello"))
def handle(_) -> str:
    return "Hello world!"


clones = ClonesBot(
    bot,
    SimpleLongPollBot("Token1",11111111),
    SimpleLongPollBot("Token2",22222222),
)

clones.run_all_bots()

Все клоны ответят "Hello world!" на "hello".

Если вы не хотите использовать SimpleLongPollBot, но создание хендлеров хочется упростить - воспользуйтесь easy_handlers

from vkwave.bots import simple_bot_message_handler, SimpleBotEvent, DefaultRouter, TextFilter

router = DefaultRouter()


@simple_bot_message_handler(router, TextFilter("hello"))
async def easy(event: SimpleBotEvent):
    await event.answer("got hello")

simple_bot_message_handler нужен только для событий связанных с сообщениями, помимо него еще есть: simple_bot_handler (для всех событий), simple_user_handler (аналогично для юзерботов), simple_user_message_handler.