Exemple #1
0
async def change_filled_text(query: types.InlineQuery):

    if query.data == "AGREEWITHCHANGEyes":
        await query.message.answer("😊Введите другую информацию")
        current_state = dp.current_state(user=query.from_user.id)
        await current_state.set_state(AddChangeInfo.INFO)
    else:
        current_state = dp.current_state(user=query.from_user.id)
        await current_state.reset_state()
        await query.message.answer("😭Информация не была применена")
Exemple #2
0
async def add_de_version(query: types.InlineQuery):

    current_state = dp.current_state(user=query.from_user.id)
    if query.data == "ADDDEVERSIONyes":
        await current_state.set_state(AddChangeInfo.ADD_DE_VERSION)
        await query.message.answer("🤲Введите информацию")
    else:
        await info.set_about_text(new_info[query.from_user.id])
        current_state = dp.current_state(user=query.from_user.id)
        await current_state.reset_state()
        del new_info[query.from_user.id]
        await query.message.answer("🥳Ок.Поздравляю информация добавлена!")
Exemple #3
0
async def wanna_change_de_version(query: types.InlineQuery):

    if query.data == "WANNACHANGEyes":
        current_state = dp.current_state(user=query.from_user.id)
        await current_state.set_state(AddChangeInfo.ADD_DE_VERSION)
        await query.message.answer("🤲Введите информацию?")
    else:
        del new_info[query.from_user.id]["about_text_de"]
        await info.set_about_text(bot, query, new_info[query.from_user.id])
        current_state = dp.current_state(user=query.from_user.id)
        await current_state.reset_state()
        await query.message.answer("😭Ок, перевод не добавлен")
Exemple #4
0
async def rewrite_confiramation(query: types.CallbackQuery):
    """Handler to understand whether user wants to rewrite his new service or not"""

    if query.data == "REWRITEyes":
        current_state = dp.current_state(user=query.from_user.id)
        await current_state.set_state(AddService.NAME)
        await query.message.answer(
            "👌Хорошо начнем с начала.А именно с названия")

    else:
        current_state = dp.current_state(user=query.from_user.id)
        await current_state.reset_state()
        await query.message.answer("😒Ну ладно")
Exemple #5
0
async def start_adding_service(message: types.Message):
    """A handler to start an adding of a new service"""

    current_state = dp.current_state(user=message.from_user.id)
    await current_state.set_state(AddService.CONFIRMING)

    await message.answer(
        "🛎Вы в разделе добавления услуги. Ви хотите продолжить?",
        reply_markup=await
        create_yesno_keyboard(["CONFIRMING/yes", "CONFIRMING/no"],
                              ["✅Да", "❌Нет"]))
Exemple #6
0
async def confirm_adding_de_version(message: types.Message):

    if message.text:
        new_info[message.from_user.id]["about_text_de"] = message.text
        await message.answer(message.text)
        current_state = dp.current_state(user=message.from_user.id)
        await current_state.set_state(AddChangeInfo.ADD_DE_VERSION_CONFIRMING)
        return await message.answer("🤔Вам все нравиться?",
                                    reply_markup=await create_yesno_keyboard(
                                        ["AGREEWITHDEyes", "AGREEWITHDEno"],
                                        ["✅Да", "❌Нет"]))
    await message.answer("😤Информация не может быть пустой")
Exemple #7
0
async def start_adding_new_visit_image(query: types.InlineQuery):

    try:
        all_message_number = len(await visitimages.get_visit_images()) * 2 + 1
    except TypeError:
        all_message_number = 1
    for index in range(-all_message_number, 1):
        await bot.delete_message(query.message.chat.id,
                                 message_id=query.message.message_id + index)
    current_state = dp.current_state(user=query.from_user.id)
    await current_state.set_state(AddVisitImage.ADD_IMAGE)
    await query.message.answer("🤲Отошлите изображение")
Exemple #8
0
async def start_func(message: types.Message):
    """Handler for the /start command to start a relationship between user and bot"""

    current_state = dp.current_state(user=message.from_user.id)
    await current_state.reset_state()
    await message.answer(
        "😜Hello!Вас приветствует бот сделаный для администрирования сайта http://emassage.com\nЗдесь Вы можете:\n- Просматривать актуальные записи клиентов\n- Добавлять новые услуги\n- Мониторить статистику\n❗️Бот находится в розработке,его функционал будет расширяться"
    )
    await message.answer("🥺Хотите пройти обучение?",
                         reply_markup=await
                         create_yesno_keyboard(["TUTORIALyes", "TUTORIALno"],
                                               ["Да", "Нет"]))
Exemple #9
0
async def add_currency_to_service(query: types.CallbackQuery):
    """Handler to process the adding of a currency to a new service"""

    new_service[query.from_user.id]["currency"] = query.data
    await bot.delete_message(query.message.chat.id,
                             message_id=query.message.message_id)
    current_state = dp.current_state(user=query.from_user.id)
    await current_state.set_state(AddService.CURRENCY)
    return await query.message.answer(
        "Валюта для новой услуги - '%s'.Правильно?💰" % (query.data),
        reply_markup=await
        create_yesno_keyboard(["CURRENCY/yes", "CURRENCY/no"],
                              ["✅Да,хочу продолжить", "❌Нет,хочу поменять"]))
Exemple #10
0
async def confirming_de_version(query: types.InlineQuery):

    if query.data == "AGREEWITHDEyes":
        await info.set_about_text(new_info[query.from_user.id])
        current_state = dp.current_state(user=query.from_user.id)
        await current_state.reset_state()
        del new_info[query.from_user.id]
        await query.message.answer("👌Поздравляю! Информация добавлена")
    else:
        await query.message.answer("🤔Желаете переделать?",
                                   reply_markup=await create_yesno_keyboard(
                                       ["WANNACHANGEyes", "WANNACHANGEno"],
                                       ["✅Да", "❌Нет"]))
Exemple #11
0
async def set_new_text(message: types.Message):

    if message.text:
        await message.answer(message.text)

        new_info[message.from_user.id] = {"about_text": message.text}
        current_state = dp.current_state(user=message.from_user.id)
        await current_state.set_state(AddChangeInfo.CONFIRMING)

        return await message.answer("🤔Вам все нравиться?",
                                    reply_markup=await create_yesno_keyboard(
                                        ["CHANGEINFOyes", "CHANGEINFOno"],
                                        ["✅Да", "❌Нет"]))
    await message.answer("😦Вы ничего не ввели")
Exemple #12
0
async def change_about_text(query: types.InlineQuery):

    if query.data == "ADDABOUTyes":
        for index in range(-1, 1):
            await bot.delete_message(query.message.chat.id,
                                     message_id=query.message.message_id +
                                     index)
        current_state = dp.current_state(user=query.from_user.id)
        await current_state.set_state(AddChangeInfo.INFO)
        await query.message.answer("🤲Введите информацию")
    else:
        for index in range(-1, 1):
            await bot.delete_message(query.message.chat.id,
                                     message_id=query.message.message_id +
                                     index)
        await query.message.answer("😔Ок")
Exemple #13
0
async def agreement_width_new_visit_image(query: types.InlineQuery):

    current_state = dp.current_state(user=query.from_user.id)
    if query.data == "NEWVISITIMAGEAGREE":

        for index in range(-1, 1):
            await bot.delete_message(query.message.chat.id,
                                     query.message.message_id + index)
        await current_state.reset_state()
        await visitimages.add_new_visit_image(
            new_visit_image[query.from_user.id]["photo_path"],
            new_visit_image[query.from_user.id]["photo"])
        return await query.message.answer("😄Поздравляю! Изображение добавлено")

    await current_state.set_state(AddVisitImage.ADD_IMAGE)
    await query.message.answer("🤲Отошлите изображение")
Exemple #14
0
async def edit_visit_image(query: types.InlineQuery):
    """Main entrypoint of visit_image editing."""

    current_state = dp.current_state(user=query.from_user.id)
    pk_from_query_data = query.data.split("_")[1]

    if query.data.split("_")[0] == "edit":
        new_visit_image[query.from_user.id] = {"pk": pk_from_query_data}
        await current_state.set_state(ChangeVisitImage.EDIT_PROCESS)
        await query.message.answer("🤲Отошлите новое фото")
    else:
        visit_image_to_delete[query.from_user.id] = {"pk": pk_from_query_data}
        await current_state.set_state(ChangeVisitImage.DELETE_PROCESS)
        await query.message.answer("🤔Вы уверены?",
                                   reply_markup=await create_yesno_keyboard(
                                       ["DELETEIMAGEyes", "DELETEIMAGEno"],
                                       ["✅Да", "❌Нет"]))
Exemple #15
0
async def agree_with_new_visitimage(query: types.InlineQuery):
    """Main point of visit_image adding."""

    try:
        all_message_number = len(await visitimages.get_visit_images()) * 2 + 4
    except TypeError:
        all_message_number = 1
    for index in range(-all_message_number, 1):
        await bot.delete_message(query.message.chat.id,
                                 query.message.message_id + index)

    if query.data == "VISITIMAGEyes":
        await visitimages.set_visit_image(new_visit_image[query.from_user.id])
        await query.message.answer("😄Поздравляю! Изображение добавлено")
    else:
        current_state = dp.current_state(user=query.from_user.id)
        await current_state.reset_state()
        await query.message.answer("😞Ок")
Exemple #16
0
async def start_editing_visit_images(message: types.Message):

    if visit_images := await visitimages.get_visit_images():

        current_state = dp.current_state(user=message.from_user.id)
        await current_state.set_state(ChangeVisitImage.EDIT_IMAGE)
        for index, image in enumerate(visit_images):
            await message.answer("🖼Изображение №%d" % (index + 1))
            await bot.send_photo(
                message.chat.id,
                image[1],
                reply_markup=await create_yesno_keyboard(
                    ["edit_%s" % (image[0], ),
                     "delete_%s" % (image[0], )],
                    ["✅Редактировать", "❌Удалить"]))
        return await message.answer(
            "🤔Может Вы хотите добавить новое изображение?",
            reply_markup=await
            create_yesno_keyboard(["NEWVISITIMAGE"],
                                  ["✅Добавить новое изображение"]))
Exemple #17
0
async def agree_with_changed_text(query: types.InlineQuery):

    if query.data == "CHANGEINFOyes":
        current_state = dp.current_state(user=query.from_user.id)
        await current_state.set_state(
            AddChangeInfo.AGGRE_WITH_START_ADD_DE_VERSION)

        await query.message.answer(
            "🇩🇪Хотите добавить версию на немецком язике?",
            reply_markup=await
            create_yesno_keyboard(["ADDDEVERSIONyes", "ADDDEVERSIONno"],
                                  ["✅Да", "❌Нет"]))
    else:
        del new_info[query.from_user.id]

        await query.message.answer(
            "🤔Желаете изменить информацию?",
            reply_markup=await
            create_yesno_keyboard(["AGREEWITHCHANGEyes", "AGREEWITHCHANGEno"],
                                  ["✅Да", "❌Нет"]))
Exemple #18
0
async def callback(query: types.CallbackQuery):
    """Handler for the creating a new service.
    Contains:
    -> CONFIRMING processor
    -> NAME processor
    -> DESCRIPTION processor
    -> PRICE processor
    -> CURRENCY processor
    -> PHOTO processor
    """

    current_state = dp.current_state(user=query.from_user.id)
    if query.data == "CONFIRMING/yes":
        new_service[query.from_user.id] = {}
        await current_state.set_state(AddService.NAME)
        await query.message.answer("📋Ок, начнем с названия")
    elif query.data == "CONFIRMING/no":
        await current_state.reset_state()
        await query.message.answer("😒Ну ладно")
    else:
        if query.data.split("/")[0][-1] == "_" and query.data.split(
                "/")[1] == "yes":
            new_service[query.from_user.id]["%s" % (query.data.split(
                "/")[0][:-1].lower())] = query.message.text.split("'")[1]

        if query.data.split(
                "/")[1] == "yes" and query.data.split("/")[0] != "PHOTO":
            new_service[query.from_user.id]["%s" % (query.data.split(
                "/")[0].lower())] = query.message.text.split("'")[1]

        if query.data == "NAME/no":
            await current_state.set_state(AddService.NAME)
            await query.message.answer("🖌Напишите другое название")

        elif query.data == "NAME/yes":
            await current_state.set_state(AddService.NAME_DE)
            await query.message.answer("🇩🇪Приступим к названию на немецком")

        elif query.data == "NAME_DE_/no":
            await current_state.set_state(AddService.NAME_DE)
            await query.message.answer("🖌Напишите другое название")

        elif query.data == "NAME_DE_/yes":
            await current_state.set_state(AddService.DESCRIPTION)
            await query.message.answer("📄Приступим к описанию")

        elif query.data == "DESCRIPTION/no":
            await current_state.set_state(AddService.DESCRIPTION)
            await query.message.answer("🖌Напишите другое описание")

        elif query.data == "DESCRIPTION/yes":
            await current_state.set_state(AddService.DESCRIPTION_DE)
            await query.message.answer("🇩🇪Напишите описание на немецком")

        elif query.data == "DESCRIPTION_DE_/no":
            await current_state.set_state(AddService.DESCRIPTION_DE)
            await query.message.answer("🖌Напишите другое описание на немецком")

        elif query.data == "DESCRIPTION_DE_/yes":
            await current_state.set_state(AddService.PRICE)
            await query.message.answer("💵Напишите цену услуги")

        elif query.data == "PRICE/no":
            await current_state.set_state(AddService.PRICE)
            await query.message.answer("🖌Напишите другую цену")

        elif query.data == "PRICE/yes":
            await current_state.set_state(AddService.CURRENCY)
            await query.message.answer("💰Приступим к валюте")
            await query.message.answer("Виберете",
                                       reply_markup=await
                                       create_yesno_keyboard(
                                           ["EUR", "USD", "UAH", "CHF"],
                                           ["EUR", "USD", "UAH", "CHF"]))

        elif query.data == "CURRENCY/no":
            await current_state.set_state(AddService.CURRENCY)
            await query.message.answer("🖌Поменяйте валюту")

        elif query.data == "CURRENCY/yes":
            await current_state.set_state(AddService.PHOTO)
            await query.message.answer("🖼Время фотографии для услуги.")

        elif query.data == "PHOTO/no":
            await current_state.set_state(AddService.PHOTO)
            await query.message.answer("🖌Ок,поменяйте фото")

        elif query.data == "PHOTO/yes":

            photo = await bot.download_file(
                new_service[query.from_user.id]["photo"].file_path)
            await bot.send_photo(query.message.chat.id, photo=photo)
            await bot.send_message(
                query.message.chat.id,
                text=
                "Информация новой услуги\nНазвание: %s\n%sОписание: %s\n%sЦена: %s %s\n"
                % (new_service[query.from_user.id]["name"],
                   (("Название на немецком: " +
                     new_service[query.from_user.id]["name_de"] + "\n")
                    if new_service[query.from_user.id].get("name_de") else ""),
                   new_service[query.from_user.id]["description"],
                   (("Описание на немецком: " +
                     new_service[query.from_user.id]["description_de"] + "\n")
                    if new_service[query.from_user.id].get("description_de")
                    else ""), new_service[query.from_user.id]["price"],
                   new_service[query.from_user.id]["currency"]))
            await query.message.answer("📝Проверте данные новой услуги")
            await query.message.answer(
                "🤔Все правильно?",
                reply_markup=await create_yesno_keyboard(["ADDyes", "ADDno"],
                                                         ["✅Да", "❌Нет"]))

    await bot.delete_message(chat_id=query.message.chat.id,
                             message_id=query.message.message_id)