82 lines
1.9 KiB
Python
82 lines
1.9 KiB
Python
from aiogram import Router, F
|
|
from aiogram.types import Message
|
|
from aiogram.fsm.context import FSMContext
|
|
from states import SupportState
|
|
from database import create_ticket
|
|
from config import ADMIN_IDS
|
|
from aiogram import Bot
|
|
from keyboards import ticket_keyboard
|
|
|
|
|
|
router = Router()
|
|
|
|
|
|
# пользователь нажал кнопку поддержки
|
|
@router.message(F.text == "✉️ Поддержка")
|
|
async def support_start(
|
|
message: Message,
|
|
state: FSMContext
|
|
):
|
|
|
|
await state.set_state(
|
|
SupportState.waiting_message
|
|
)
|
|
|
|
await message.answer(
|
|
"✉️ Опишите проблему.\n\n"
|
|
"Напишите сообщение, и оно будет отправлено разработчику."
|
|
)
|
|
|
|
|
|
# пользователь написал проблему --> соснул хуйца, я не буду фиксить
|
|
@router.message(
|
|
SupportState.waiting_message
|
|
)
|
|
@router.message(
|
|
SupportState.waiting_message
|
|
)
|
|
async def send_ticket(
|
|
message: Message,
|
|
state: FSMContext,
|
|
bot: Bot
|
|
):
|
|
|
|
ticket_id = await create_ticket(
|
|
message.from_user.id,
|
|
message.text
|
|
)
|
|
|
|
|
|
# уведомляем админов
|
|
|
|
for admin_id in ADMIN_IDS:
|
|
|
|
try:
|
|
|
|
await bot.send_message(
|
|
admin_id,
|
|
(
|
|
"📩 <b>Новое обращение!</b>\n\n"
|
|
f"🆔 Тикет: #{ticket_id}\n"
|
|
f"👤 Пользователь: "
|
|
f"<code>{message.from_user.id}</code>\n\n"
|
|
f"📝 Сообщение:\n"
|
|
f"{message.text}"
|
|
),
|
|
reply_markup=ticket_keyboard(ticket_id)
|
|
)
|
|
|
|
except Exception as e:
|
|
|
|
print(
|
|
f"Ошибка отправки админу {admin_id}: {e}"
|
|
)
|
|
|
|
|
|
await state.clear()
|
|
|
|
|
|
await message.answer(
|
|
f"✅ Обращение #{ticket_id} отправлено.\n\n"
|
|
"Спасибо за обратную связь!"
|
|
) |