Exemplo n.º 1
0
async def feedbacks(message: Message):
    psql = PostgreSQL()
    if message.text == 'Оставить отзыв ✍':
        await BotStates.get_feedback.set()
        return await message.answer(
            text='*Пожалуйста отправьте мне ваш отзыв!*',
            parse_mode=types.ParseMode.MARKDOWN)
    elif message.text == 'Прочитать отзывы 👍':
        feedbacks = psql.select((
            'author_first_name',
            'author_last_name',
            'feedback_text',
            'date_created',
        ), 'feedbacks')
        for feedback in feedbacks:
            date_time = dt.strftime(feedback[-1], '%Y-%m-%d %H:%M')
            await bot.send_message(
                chat_id=message.from_user.id,
                text=
                f'*{feedback[0]} {feedback[1]}*\n\n{feedback[2]}\n\n_{date_time}_',
                parse_mode=types.ParseMode.MARKDOWN,
            )
        else:
            await BotStates.show_main_menu_buttons.set()
            await bot.send_message(
                chat_id=message.from_user.id,
                text='Для выхода в главное меню нажмите ⏩ *Назад в меню*',
                parse_mode=types.ParseMode.MARKDOWN,
                reply_markup=btns.back_to_menu())
            psql.connection.close()
    else:
        await BotStates.feedback_menu.set()
        return await bot.send_message(chat_id=message.from_user.id,
                                      text="Выберите опцию:",
                                      reply_markup=btns.feedback_buttons())
Exemplo n.º 2
0
async def show_menu(callback: CallbackQuery):
    psql = PostgreSQL()

    if callback.data == 'breakfast':
        for breakfast_object in psql.select(
            ('name', 'meal_type', 'image_path', 'price'), 'meal',
            {"meal_type": 2}):
            resized_image = resize_image(breakfast_object[2])

            await bot.send_photo(
                chat_id=callback.from_user.id,
                photo=open(resized_image, 'rb'),
                caption=
                f'_**Resto Завтраки:**_\nНазвание блюда: *{breakfast_object[0]}*\nЦена: *{breakfast_object[3]} сом*',
                parse_mode=types.ParseMode.MARKDOWN)
        else:
            psql.connection.close()

    elif callback.data == 'send_feedback':
        return await bot.send_message(chat_id=callback.from_user.id,
                                      text='*Пожалуйста оставьте отзыв:*',
                                      parse_mode=types.ParseMode.MARKDOWN)
Exemplo n.º 3
0
async def show_menu(callback: CallbackQuery):
    """Функция которая выводит список блюд по категориям.
        Всё зависит от нажатой inline-кнопки."""
    psql = PostgreSQL()
    await BotStates.user_confirmation.set()

    if callback.data == 'breakfast':
        for breakfast in psql.select(
            (
                'name', 'image_path', 'price', 'meal_type'
            ),
            'meal',
            {"meal_type": 2}
        ):
            image = resize_image(breakfast[1])
            await bot.send_photo(
                chat_id=callback.from_user.id,
                photo=open(image, 'rb'),
                caption=f'_Название:_ *{breakfast[0]}*\n_Цена:_ *{breakfast[2]} сом*',
                parse_mode=types.ParseMode.MARKDOWN,
                reply_markup=ibtns.make_order((breakfast[-1], breakfast[0]))
            )
        else:
            return await bot.send_message(
                chat_id=callback.from_user.id,
                text='Нажмите "Назад" чтобы вернуться в Главное Меню!',
                reply_markup=btns.back_to_menu()
            )

    elif callback.data == 'lunch':
        for lunch in psql.select(
            (
                'name', 'image_path', 'price', 'meal_type'
            ),
            'meal',
            {"meal_type": 3}
        ):
            image = resize_image(lunch[1])
            await bot.send_photo(
                chat_id=callback.from_user.id,
                photo=open(image, 'rb'),
                caption=f'_Название:_ *{lunch[0]}*\n_Цена:_ *{lunch[2]} сом*',
                parse_mode=types.ParseMode.MARKDOWN,
                reply_markup=ibtns.make_order((lunch[-1], lunch[0]))
            )
        else:
            return await bot.send_message(
                chat_id=callback.from_user.id,
                text='Нажмите "Назад" чтобы вернуться в Главное Меню!',
                reply_markup=btns.back_to_menu()
            )

    elif callback.data == 'dinner':
        for dinner in psql.select(
            (
                'name', 'image_path', 'price', 'meal_type'
            ),
            'meal',
            {"meal_type": 4}
        ):
            image = resize_image(dinner[1])
            await bot.send_photo(
                chat_id=callback.from_user.id,
                photo=open(image, 'rb'),
                caption=f'_Название:_ *{dinner[0]}*\n_Цена:_ *{dinner[2]} сом*',
                parse_mode=types.ParseMode.MARKDOWN,
                reply_markup=ibtns.make_order((dinner[-1], dinner[0]))
            )
        else:
            return await bot.send_message(
                chat_id=callback.from_user.id,
                text='Нажмите "Назад" чтобы вернуться в Главное Меню!',
                reply_markup=btns.back_to_menu()
            )


    elif callback.data == 'primary_meal':
        for primary_meal in psql.select(
            (
                'name', 'image_path', 'price', 'meal_type'
            ),
            'meal',
            {"meal_type": 1}
        ):
            image = resize_image(primary_meal[1])
            await bot.send_photo(
                chat_id=callback.from_user.id,
                photo=open(image, 'rb'),
                caption=f'_Название:_ *{primary_meal[0]}*\n_Цена:_ *{primary_meal[2]} сом*',
                parse_mode=types.ParseMode.MARKDOWN,
                reply_markup=ibtns.make_order((primary_meal[-1], primary_meal[0]))
            )
        else:
            return await bot.send_message(
                chat_id=callback.from_user.id,
                text='Нажмите "Назад в меню" чтобы вернуться в Главное Меню!',
                reply_markup=btns.back_to_menu()
            )