Example #1
0
async def contract_pay(message: types.Message):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    await database.search_query(tel=await db.select_tel(user_id=message.from_user.id))
    if database.data[5] == '150.':
        msg = await message.answer(text=_("Зверніть увагу, що тут ви можете поповнити тільки свій особовий рахунок!"))
        await db.message("BOT", 10001, msg.html_text, msg.date)
        await bot.send_invoice(message.from_user.id, **P150.generate_invoice(), payload=150)
        msg1 = await message.answer(
            text=_("Діє акція - поповни рахунок на 6 місяців одним платежем та отримуй 10% від суми поповнення!"))
        await db.message("BOT", 10001, msg1.html_text, msg1.date)
        await bot.send_invoice(message.from_user.id, **P900.generate_invoice(), payload=900)
    elif database.data[5] == '200':
        msg = await message.answer(text=_("Зверніть увагу, що тут ви можете поповнити тільки свій особовий рахунок!"))
        await bot.send_invoice(message.from_user.id, **P200.generate_invoice(),
                               payload=200)
        await db.message("BOT", 10001, msg.html_text, msg.date)
        msg1 = await message.answer(
            text=_("Діє акція - поповни рахунок на 6 місяців одним платежем та отримуй 10% від суми поповнення!"))
        await bot.send_invoice(message.from_user.id, **P1200.generate_invoice(),
                               payload=1200)
        await db.message("BOT", 10001, msg1.html_text, msg1.date)
    else:
        msg = await message.answer(text=_("Вибачте, але для вашого тарифу не передбачено поповнення рахунку через бот"),
                                   reply_markup=return_button)
        await db.message("BOT", 10001, msg.html_text, msg.date)
Example #2
0
async def bot_echo(message: types.Message):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    tel = await db.select_tel(message.from_user.id)
    if tel:
        await database.search_query(tel)
        if len(database.data) > 0:
            msg = await message.answer(text=_("Ваш username: {}\n"
                                              "На вашому рахунку: {}\n"
                                              "Ваш номер договору: {}\n"
                                              "Ваше ПІБ: {}\n"
                                              "Стан послуги: {}\n"
                                              "Ваш пакет: {}").format(
                database.data[0], database.data[1], database.data[2], database.data[3], database.data[4],
                database.data[5]),
                reply_markup=client_request)
            await db.message("BOT", 10001, msg.html_text, msg.date)
        else:
            msg = await message.answer(
                text=_("Вказаний номер телефону не знайдено у нашому білінгу\n"
                       "Якщо ви бажаєте підключитися - залиште заявку на підключення натиснувши кнопку"),
                reply_markup=unknown_request_button)
            await db.message("BOT", 10001, msg.html_text, msg.date)
        for admin in ADMINS:
            try:
                msg = await dp.bot.send_message(chat_id=admin,
                                                text=f"Сообщения от пользователя: {message.from_user.full_name}\n"
                                                     f"Текст сообщения: {message.text}\n"
                                                     f"Телефон: {await db.select_tel(message.from_user.id)}")
                await db.message("BOT", 10001, msg.html_text, msg.date)
            except Exception as err:
                logging.exception(err)
    else:
        await database.search_query(tel)
        if len(database.data) > 0:
            msg = await message.answer(text=_("Ваш username: {}\n"
                                              "На вашому рахунку: {}\n"
                                              "Ваш номер договору: {}\n"
                                              "Ваше ПІБ: {}\n"
                                              "Стан послуги: {}\n"
                                              "Ваш пакет: {}").format(
                database.data[0], database.data[1], database.data[2], database.data[3], database.data[4],
                database.data[5]),
                reply_markup=client_request)
            await db.message("BOT", 10001, msg.html_text, msg.date)
        else:
            msg = await message.answer(
                text=_("Вказаний номер телефону не знайдено у нашому білінгу\n"
                       "Якщо ви бажаєте підключитися - залиште заявку на підключення натиснувши кнопку"),
                reply_markup=unknown_request_button)
            await db.message("BOT", 10001, msg.html_text, msg.date)
        for admin in ADMINS:
            try:
                msg = await dp.bot.send_message(chat_id=admin,
                                                text=f"Сообщения от пользователя: {message.from_user.full_name}\n"
                                                     f"Текст сообщения: {message.text}\n"
                                                     f"Пользователь без телефона")
                await db.message("BOT", 10001, msg.html_text, msg.date)
            except Exception as err:
                logging.exception(err)
Example #3
0
async def lang_reply(call: CallbackQuery):
    await db.message(call.from_user.full_name, call.from_user.id, call.message.text, call.message.date)
    await db.set_lang(call.data[7:].lower(), call.from_user.id)
    await call.answer()
    msg = await call.message.edit_text(
        text=_(
            "Ви обрали {}\nТепер відправте, будь ласка, свій номер телефону, щоб знайти Ваш обліковий запис у нашому білінгу",
            locale=call.data[7:].lower()).format(
            call.data[7:])
    )
    await db.message("BOT", 10001, msg.html_text, msg.date)
    msg1 = await call.message.answer(text=_("Кнопка для цього знизу", locale=call.data[7:].lower()),
                                     reply_markup=tel_button)
    await db.message("BOT", 10001, msg1.html_text, msg1.date)
Example #4
0
async def get_id(message: types.Message, state: FSMContext):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    if message.from_user.id == 390616685 or message.from_user.id == 133347159:
        client_id = await db.choose_contract()
        msg = await message.answer(text=_("Оберіть клієнта, написав його telegram_id\n"))
        for i in client_id:
            await message.answer(f"Імя: {i[0]}\n"
                                 f"Телеграм айді: {i[1]}\n"
                                 f"Контракт: {i[2]}")
        await db.message("BOT", 10001, msg.html_text, msg.date)
        await Contract.get_id.set()
    else:
        msg = await message.answer(_("Эту команду могут использовать только администраторы"),
                                   reply_markup=return_button)
        await db.message("BOT", 10001, msg.html_text, msg.date)
Example #5
0
async def get_client(message: types.Message):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    msg = await message.answer(
        text=_("Введіть ПІБ та номер телефону - ми зв'яжемось з Вами для підключення"),
        reply_markup=ReplyKeyboardRemove())
    await db.message("BOT", 10001, msg.html_text, msg.date)
    await Client.first()
Example #6
0
async def time_pay(message: types.Message):
    await db.message(message.from_user.full_name, message.from_user.id,
                     message.text, message.date)
    if await database.t_pay(await db.select_contract(message.from_user.id)):
        msg = await message.answer(text=_(
            "Доступ в Інтернет розблоковано на 24 години!\n"
            "Рахунок поповнено на {} грн на 24 години! Тепер можете повернутись у головне меню"
        ).format(database.time_pay[0]),
                                   reply_markup=return_button)
        await db.message("BOT", 10001, msg.html_text, msg.date)
    else:
        msg = await message.answer(text=_(
            "Ви не можете використати тимчасовий платіж!\n"
            "Користуватись тимчасовим платежем можна раз на місяць!"),
                                   reply_markup=return_button)
        await db.message("BOT", 10001, msg.html_text, msg.date)
Example #7
0
async def changed_lang(message: types.Message):
    await db.message(message.from_user.full_name, message.from_user.id,
                     message.text, message.date)
    await db.set_lang(message.text[3:].lower(), message.from_user.id)
    if message.text[3:] == "UA":
        return_button = ReplyKeyboardMarkup(
            resize_keyboard=True,
            keyboard=[[KeyboardButton(text="Головне меню")]],
            one_time_keyboard=True)
    elif message.text[3:] == "EN":
        return_button = ReplyKeyboardMarkup(
            resize_keyboard=True,
            keyboard=[[KeyboardButton(text="Main menu")]],
            one_time_keyboard=True)
    else:
        return_button = ReplyKeyboardMarkup(
            resize_keyboard=True,
            keyboard=[[KeyboardButton(text="Главное меню")]],
            one_time_keyboard=True)

    msg = await message.answer(text=_(
        "Ви обрали {}\nТепер можете перейти у головне меню",
        locale=message.text[3:].lower()).format(message.text[3:]),
                               reply_markup=return_button)
    await db.message("BOT", 10001, msg.html_text, msg.date)
Example #8
0
async def help_message(message: types.Message):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    msg = await message.answer(
        text=_("@infoaura_bot - бот мережі інтернет-провайдера Інфоаура.\n"
               "Бот призначений для доступного управлінням послугами, поповнення рахунку і виклику фахівця для вирішення локальних проблем Клієнта.\n"
               "Пропозиції та зауваження по роботі бота просимо писати на email: [email protected]."),
        reply_markup=return_button)
    await db.message("BOT", 10001, msg.html_text, msg.date)
Example #9
0
async def bot_start(message: types.Message):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    await message.answer(text=_("Привіт, {}!\n"
                                "Бот працює в тестовому режимі").format(message.from_user.full_name),
                         reply_markup=ReplyKeyboardRemove())
    try:
        await db.add_user(
            full_name=message.from_user.full_name,
            username=message.from_user.username,
            telegram_id=message.from_user.id
        )
    except asyncpg.exceptions.UniqueViolationError:
        await db.select_user(telegram_id=message.from_user.id)

    await message.answer(text=_("Оберіть зручну для Вас мову!"),
                         reply_markup=choice_lang
                         )
Example #10
0
async def ua_tel_get(message: types.Message):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    tel = message.contact.phone_number
    tel = format_number(tel)
    await db.update_phone_number(tel, message.from_user.id)
    await database.search_query(tel)
    try:
        await db.set_contract(database.data[2], message.from_user.id)
    except IndexError:
        pass
    net_on = _("Увімкнено")
    net_off = _("Вимкнено")
    net_pause = await database.check_net_pause(database.data[2])
    if len(database.data) > 0:
        if net_pause is True and database.data[4] == "on":
            msg = await message.answer(text=_("Ваш username: {}\n"
                                              "На вашому рахунку: {}\n"
                                              "Ваш номер договору: {}\n"
                                              "Ваше ПІБ: {}\n"
                                              "Стан послуги: {}\n"
                                              "Ваш пакет: {}").format(
                database.data[0], database.data[1], database.data[2], database.data[3], net_on, database.data[5]),
                reply_markup=client_request)
            await db.message("BOT", 10001, msg.html_text, msg.date)
        else:
            msg = await message.answer(text=_("Ваш username: {}\n"
                                              "На вашому рахунку: {}\n"
                                              "Ваш номер договору: {}\n"
                                              "Ваше ПІБ: {}\n"
                                              "Стан послуги: {}\n"
                                              "Ваш пакет: {}").format(
                database.data[0], database.data[1], database.data[2], database.data[3], net_off, database.data[5]),
                reply_markup=client_request)
            await db.message("BOT", 10001, msg.html_text, msg.date)

    else:
        msg = await message.answer(
            text=_("Вказаний номер телефону не знайдено у нашому білінгу\n"
                   "Якщо ви бажаєте підключитися - залиште заявку на підключення натиснувши кнопку"),
            reply_markup=unknown_request_button)
        await db.message("BOT", 10001, msg.html_text, msg.date)
Example #11
0
async def contact(message: types.Message, state: FSMContext):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    data = await state.get_data()
    try:
        msg = await dp.bot.send_message(data.get("telegram_id"), message.text)
        await db.message("BOT", 10001, msg.html_text, msg.date)
        await state.reset_state()
        msg1 = await message.answer("Повідомлення відправлено", reply_markup=return_button)
        await db.message("BOT", 10001, msg1.html_text, msg.date)
    except Exception as e:
        msg = await message.answer(_("Повідомлення не було доставлене, скоріш за все telegram id не правильний"),
                                   reply_markup=return_button)
        await db.message("BOT", 10001, msg.html_text, msg.date)
        await state.reset_state()
Example #12
0
async def request_client(message: types.Message, state: FSMContext):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    answer = message.text
    async with state.proxy() as data:
        data["Заявка"] = answer
        for admin in ADMINS:
            try:
                msg = await dp.bot.send_message(admin, f"Заявка на подключение: {data['Заявка']}")
                await db.message("BOT", 10001, msg.html_text, msg.date)

            except Exception as err:
                logging.exception(err)
    await state.reset_state()
    msg = await message.answer(text=_("Заявка в опрацюванні, чекайте зв'язку\n"
                                      "Можете повернутись у головне меню скориставшись кнопкою знизу"),
                               reply_markup=return_button)
    await db.message("BOT", 10001, msg.html_text, msg.date)
Example #13
0
async def process_successful_pay(message: types.Message):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    contract = await db.select_contract(message.from_user.id)
    contract = contract[0]
    payload = message.successful_payment.total_amount // 100
    await database.pay_balance(contract=contract[0], payload=payload)
    for admin in ADMINS:
        try:
            msg = await dp.bot.send_message(chat_id=admin,
                                            text=_("Користувач {} поповнив рахунок "
                                                   "на {} {}").format(
                                                contract[0], payload, message.successful_payment.currency)
                                            )
            await db.message("BOT", 10001, msg.html_text, msg.date)
        except Exception as err:
            logging.exception(err)
    msg = await dp.bot.send_message(chat_id=message.from_user.id,
                                    text=__("Ваш рахунок поповнено на {} {}!").format(
                                        payload, message.successful_payment.currency),
                                    reply_markup=return_button)
    await db.message("BOT", 10001, msg.html_text, msg.date)
Example #14
0
async def text(message: types.Message, state: FSMContext):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    await state.update_data(telegram_id=message.text)
    msg = await message.answer(_("Тепер напишіть повідомлення для клієнта"))
    await db.message("BOT", 10001, msg.html_text, msg.date)
    await Contract.text.set()
Example #15
0
async def request_for_ts(message: types.Message):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    msg = await message.answer(text=_("Введіть ваше ПІБ, номер телефону та опишіть проблему"),
                               reply_markup=ReplyKeyboardRemove())
    await db.message("BOT", 10001, msg.html_text, msg.date)
    await Request.first()
Example #16
0
async def change_lang(message: types.Message):
    await db.message(message.from_user.full_name, message.from_user.id,
                     message.text, message.date)
    msg = await message.answer(text=_("Оберіть мову"),
                               reply_markup=lang_change)
    await db.message("BOT", 10001, msg.html_text, msg.date)