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)
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)
"Ваш номер договору: {}\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:
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=__("Повідомити про проблему"))]],
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)
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(
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)