Esempio n. 1
0
async def biba(message: types.Message):
    """Хедлер, для обработки комманды /biba или !biba

    В ответ, бот отправляет размер бибы

    Примеры:
        /biba
        /biba 10
        /biba 1-10
        /biba 10-1
        !biba
        !biba 10
        !biba 1-10
        !biba 10-1
    """
    # разбиваем сообщение на комманду и аргументы через регулярное выражение
    command_parse = re.compile(r"(!biba|/biba) ?(-?\d*)?-?(\d+)?")
    parsed = command_parse.match(message.text)
    # генерируем размер бибы от 1 до 30 по умолчанию (если аргументы не переданы)
    length = generate_num(parsed.group(2), parsed.group(3), 1, 30)

    # если это ответ на сообщение, будем берять бибу автора первичного сообщения
    # в противном случае, бибу того, кто использовал комманду
    if message.reply_to_message:
        target = message.reply_to_message.from_user.get_mention(as_html=True)
    else:
        target = message.from_user.get_mention(as_html=True)

    # отправляем
    await message.reply(f"🤤 У {target} биба {length} см")
Esempio n. 2
0
async def roll(message: types.Message):
    """Хедлер, для обработки комманды /roll или !roll

    В ответ, бот отправляет рандомное число

    Примеры:

        /roll
        /roll 10
        /roll 1-10
        /roll 10-1
        !roll
        !roll 10
        !roll 1-10
        !roll 10-1
    """
    # разбиваем сообщение на комманду и аргументы через регулярное выражение
    command_parse = re.compile(r"(!roll|/roll) ?(-?\d*)?-?(\d+)?")
    parsed = command_parse.match(message.text)
    # генерируем число
    num = generate_num(parsed.group(2), parsed.group(3))
    # отправляем число
    await message.reply(f"Ваше число: <b>{num}</b>")