コード例 #1
0
ファイル: start.py プロジェクト: IvanSnezhok/ProvBot
async def main_menu(message: types.Message):
    await db.message(message.from_user.full_name, message.from_user.id, message.text, message.date)
    tel = await db.select_tel(user_id=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 = __("Вимкнено")
    if len(database.data) > 0:
        if await database.check_net_pause(database.data[2]) 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)
コード例 #2
0
ファイル: pay_bill.py プロジェクト: IvanSnezhok/ProvBot
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)
コード例 #3
0
ファイル: start.py プロジェクト: IvanSnezhok/ProvBot
                                              "Ваш номер договору: {}\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)


@dp.message_handler(Text(equals=__("Повідомити про проблему")))
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()


@dp.message_handler(state=Request.Quest)
async def tech_support_message(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:
コード例 #4
0
ファイル: buttons.py プロジェクト: IvanSnezhok/ProvBot
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton

from middlewares import __

tel_button = ReplyKeyboardMarkup(
    resize_keyboard=True,
    keyboard=[[KeyboardButton(text="📱", request_contact=True)]],
    one_time_keyboard=True)

request_button = ReplyKeyboardMarkup(
    resize_keyboard=True,
    keyboard=[[
        KeyboardButton(text=__("Головне меню")),
        KeyboardButton(text=__("Залишити заявку на підключення"))
    ]],
    one_time_keyboard=True)

unknown_request_button = ReplyKeyboardMarkup(
    resize_keyboard=True,
    keyboard=[[
        KeyboardButton(text=__("Залишити заявку на підключення")),
        KeyboardButton(text=__("Змінити мову"))
    ]])

client_request = ReplyKeyboardMarkup(
    resize_keyboard=True,
    keyboard=[[
        KeyboardButton(text=__("Тимчасовий платіж")),
        KeyboardButton(text=__("Поповнити рахунок")),
        KeyboardButton(text=__("Змінити мову"))
    ], [KeyboardButton(text=__("Повідомити про проблему"))]],
コード例 #5
0
ファイル: time_pay.py プロジェクト: IvanSnezhok/ProvBot
from aiogram import types
from aiogram.dispatcher.filters import Text

from keyboards.default.buttons import return_button
from loader import dp, db
from middlewares import _, __
from utils.db_api import database


@dp.message_handler(Text(equals=__("Тимчасовий платіж")))
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)
コード例 #6
0
from loader import dp, db

from aiogram.dispatcher.filters.builtin import Text
from aiogram import types
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton

from middlewares import _, __
from keyboards.default.buttons import lang_change


@dp.message_handler(Text(equals=__("Змінити мову")))
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)


@dp.message_handler(Text(equals=["🇷🇺 RU", "🇺🇸 EN", "🇺🇦 UA"]))
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(
コード例 #7
0
ファイル: pay_bill.py プロジェクト: IvanSnezhok/ProvBot
import logging

from aiogram import types
from aiogram.dispatcher.filters import Text
from aiogram.types import ContentType

from data.config import ADMINS
from data.pays_item import P150, P900, P200, P1200
from keyboards.default.buttons import return_button
from loader import dp, db, bot
from middlewares import _, __
from utils.db_api import database


@dp.message_handler(Text(__("Поповнити рахунок")))
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)