async def cmd_start(message: types.Message):
    poll_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    poll_keyboard.add(types.KeyboardButton(text="/deposit",
                                           request_poll=types.KeyboardButtonPollType(type=types.PollType.QUIZ)))
    poll_keyboard.add(types.KeyboardButton(text="/balance"))
    await message.answer("""Привет. Я бот - кошелёк. 
    Вы можете хранить ваши деньги, используя меня. Напиши /deposit (/d) что бы внести средства.""", reply_markup=poll_keyboard)
示例#2
0
async def cmd_start(message: types.Message):
    poll_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    poll_keyboard.add(
        types.KeyboardButton(text='создать викторину',
                             request_poll=types.KeyboardButtonPollType(
                                 type=types.PollType.QUIZ)))
    poll_keyboard.add(types.KeyboardButton(text='Отмена'))
    await message.answer("Нажмите на кнопку ниже и создайте викторину!",
                         reply_markup=poll_keyboard)
示例#3
0
async def cmd_start(message: types.Message):
    poll_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    poll_keyboard.add(
        types.KeyboardButton(text="Начать тестирование",
                             request_poll=types.KeyboardButtonPollType(
                                 type=types.PollType.QUIZ)))
    poll_keyboard.add(types.KeyboardButton(text="Отмена"))
    await message.answer("Нажмите на кнопку ниже для старта!",
                         reply_markup=poll_keyboard)
示例#4
0
async def cmd_start(message: types.Message):
    if message.chat.type == types.ChatType.PRIVATE:
        poll_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
        poll_keyboard.add(
            types.KeyboardButton(text="Создать викторину",
                                 request_poll=types.KeyboardButtonPollType(
                                     type=types.PollType.QUIZ)))
        poll_keyboard.add(types.KeyboardButton(text="Отмена"))
        await message.answer(
            "Нажмите на кнопку ниже и создайте викторину! "
            "Внимание: в дальнейшем она будет публичной (неанонимной).",
            reply_markup=poll_keyboard)
    else:
        words = message.text.split()
        # Только команда /start без параметров. В этом случае отправляем в личку с ботом.
        if len(words) == 1:
            bot_info = await bot.get_me()  # Получаем информацию о нашем боте
            keyboard = types.InlineKeyboardMarkup(
            )  # Создаём клавиатуру с URL-кнопкой для перехода в ЛС
            move_to_dm_button = types.InlineKeyboardButton(
                text="Перейти в ЛС",
                url=f"t.me/{bot_info.username}?start=anything")
            keyboard.add(move_to_dm_button)
            await message.reply(
                "Не выбрана ни одна викторина. Пожалуйста, перейдите в личные сообщения с ботом, "
                "чтобы создать новую.",
                reply_markup=keyboard)
        # Если у команды /start или /startgroup есть параметр, то это, скорее всего, ID викторины.
        # Проверяем и отправляем.
        else:
            quiz_owner = quizzes_owners.get(words[1])
            if not quiz_owner:
                await message.reply(
                    "Викторина удалена, недействительна или уже запущена в другой группе. Попробуйте создать новую."
                )
                return
            for saved_quiz in quizzes_database[
                    quiz_owner]:  # Проходим по всем сохранённым викторинам от конкретного user ID
                if saved_quiz.quiz_id == words[
                        1]:  # Нашли нужную викторину, отправляем её.
                    msg = await bot.send_poll(
                        chat_id=message.chat.id,
                        question=saved_quiz.question,
                        is_anonymous=False,
                        options=saved_quiz.options,
                        type="quiz",
                        correct_option_id=saved_quiz.correct_option_id)
                    quizzes_owners[
                        msg.poll.
                        id] = quiz_owner  # ID викторины при отправке уже другой, создаём запись.
                    del quizzes_owners[words[1]]  # Старую запись удаляем.
                    saved_quiz.quiz_id = msg.poll.id  # В "хранилище" викторин тоже меняем ID викторины на новый
                    saved_quiz.chat_id = msg.chat.id  # ... а также сохраняем chat_id ...
                    saved_quiz.message_id = msg.message_id  # ... и message_id для последующего закрытия викторины.
示例#5
0
async def cmd_special_buttons(message: types.Message):
    keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    keyboard.add(
        types.KeyboardButton(text="Запросить геолокацию",
                             request_location=True))
    keyboard.add(
        types.KeyboardButton(text="Запросить контакт", request_contact=True))
    keyboard.add(
        types.KeyboardButton(text="Создать викторину",
                             request_poll=types.KeyboardButtonPollType(
                                 type=types.PollType.QUIZ)))
    await message.answer("Выберите действие:", reply_markup=keyboard)
示例#6
0
async def command_but(message: types.Message):
    keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    buttons = ["Это первая кнопка", "А это вторая"]
    keyboard.add(*buttons)
    keyboard.add(
        types.KeyboardButton(text="Запросить геолокацию",
                             request_location=True))
    keyboard.add(
        types.KeyboardButton(text="Запросить номер", request_contact=True))
    keyboard.add(
        types.KeyboardButton(text="Создать викторину",
                             request_poll=types.KeyboardButtonPollType(
                                 type=types.PollType.QUIZ)))
    await message.answer("Тут например вопрос", reply_markup=keyboard)
示例#7
0
async def admin_get_role(message: types.Message, state: FSMContext):
    role = str(message.text)[1:]
    async with state.proxy() as data:
        elem = data['func_elem_role'][0]
        data['func_elem_role'][1] = role
    if role not in {
            "mom_with_children", "remote_admin", "unemployed", "self_employed",
            "remote_top", "remote_student", "worker", "ALL"
    }:
        await message.answer("Ошибка ввода!")
        await state.finish()
        return
    await Form.next()
    key = None
    if elem == "опрос":
        key = types.ReplyKeyboardMarkup(resize_keyboard=True)
        key.add(
            types.KeyboardButton("Создать опрос",
                                 request_poll=types.KeyboardButtonPollType()))
    await message.answer(f"Отправь {elem} для рассылки", reply_markup=key)