refactor: remove Alembic migrations and Discord integration

This commit is contained in:
2026-07-15 15:55:25 +05:00
parent e8cff0f7ed
commit ec5ae395f3
24 changed files with 559 additions and 1718 deletions
+33 -104
View File
@@ -5,7 +5,6 @@ from aiogram.types import CallbackQuery, Message
from tgbot.database import Settingsx, Userx
from tgbot.keyboards.inline_admin import settings_status_finl, settings_finl
from tgbot.services.api_discord import DiscordDJ, DiscordAPI
from tgbot.utils.const_functions import ded
from tgbot.utils.misc.bot_logging import bot_logger
from tgbot.utils.misc.bot_models import FSM, ARS
@@ -40,7 +39,9 @@ async def settings_status_edit(message: Message, bot: Bot, state: FSM, arSession
################################## ВЫКЛЮЧАТЕЛИ #################################
# Включение/выключение тех работ
@router.callback_query(F.data.startswith("settings_status_work:"))
async def settings_status_work(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS):
async def settings_status_work(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
get_status = call.data.split(":")[1]
get_user = await Userx().get_required(user_id=call.from_user.id)
@@ -65,7 +66,9 @@ async def settings_status_work(call: CallbackQuery, bot: Bot, state: FSM, arSess
# Включение/выключение покупок
@router.callback_query(F.data.startswith("settings_status_buy:"))
async def settings_status_buy(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS):
async def settings_status_buy(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
get_status = call.data.split(":")[1]
get_user = await Userx().get_required(user_id=call.from_user.id)
@@ -90,7 +93,9 @@ async def settings_status_buy(call: CallbackQuery, bot: Bot, state: FSM, arSessi
# Включение/выключение пополнений
@router.callback_query(F.data.startswith("settings_status_refill:"))
async def settings_status_refill(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS):
async def settings_status_refill(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
get_status = call.data.split(":")[1]
get_user = await Userx().get_required(user_id=call.from_user.id)
@@ -113,7 +118,9 @@ async def settings_status_refill(call: CallbackQuery, bot: Bot, state: FSM, arSe
# Включение/выключение уведомлений о покупках
@router.callback_query(F.data.startswith("settings_notification_buy:"))
async def settings_notification_buy(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS):
async def settings_notification_buy(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
get_status = call.data.split(":")[1]
get_user = await Userx().get_required(user_id=call.from_user.id)
@@ -136,7 +143,9 @@ async def settings_notification_buy(call: CallbackQuery, bot: Bot, state: FSM, a
# Включение/выключение уведомлений о пополнениях
@router.callback_query(F.data.startswith("settings_notification_refill:"))
async def settings_notification_refill(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS):
async def settings_notification_refill(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
get_status = call.data.split(":")[1]
get_user = await Userx().get_required(user_id=call.from_user.id)
@@ -165,20 +174,20 @@ async def settings_faq_edit(call: CallbackQuery, bot: Bot, state: FSM, arSession
await state.clear()
await state.set_state("here_settings_faq")
await call.message.edit_text(
ded("""
await call.message.edit_text(ded("""
<b>❔ Введите новый текст для FAQ</b>
❕ Вы можете использовать заготовленный синтаксис и HTML разметку:
▪️ <code>{username}</code> - логин пользоваля
▪️ <code>{user_id}</code> - айди пользователя
▪️ <code>{firstname}</code> - имя пользователя
""")
)
"""))
# Изменение поддержки
@router.callback_query(F.data == "settings_edit_support")
async def settings_support_edit(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS):
async def settings_support_edit(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
await state.clear()
await state.set_state("here_settings_support")
@@ -190,7 +199,9 @@ async def settings_support_edit(call: CallbackQuery, bot: Bot, state: FSM, arSes
# Изменение отображения/скрытия категорий без товаров
@router.callback_query(F.data.startswith("settings_edit_hide_category:"))
async def settings_edit_hide_category(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS):
async def settings_edit_hide_category(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
status = call.data.split(":")[1]
await Settingsx().update(misc_hide_category=status)
@@ -203,7 +214,9 @@ async def settings_edit_hide_category(call: CallbackQuery, bot: Bot, state: FSM,
# Изменение отображения/скрытия позиций без товаров
@router.callback_query(F.data.startswith("settings_edit_hide_position:"))
async def settings_edit_hide_position(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS):
async def settings_edit_hide_position(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
status = call.data.split(":")[1]
await Settingsx().update(misc_hide_position=status)
@@ -216,7 +229,9 @@ async def settings_edit_hide_position(call: CallbackQuery, bot: Bot, state: FSM,
# Изменение метода добавления товаров
@router.callback_query(F.data.startswith("settings_edit_method_prod:"))
async def settings_edit_method_prod(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS):
async def settings_edit_method_prod(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
method = call.data.split(":")[1]
await Settingsx().update(misc_method_prod=method)
@@ -227,32 +242,11 @@ async def settings_edit_method_prod(call: CallbackQuery, bot: Bot, state: FSM, a
)
# Изменение дискорд вебхука
@router.callback_query(F.data == "settings_edit_discord_webhook")
async def settings_discord_edit(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS):
await state.clear()
get_discord_public_webhook = await (
DiscordDJ(
arSession=arSession,
bot=bot,
)
).export_webhook()
await state.set_state("here_settings_discord_webhook")
await call.message.edit_text(
ded(f"""
<b>🧿 Отправьте новый вебхук дискорда</b>
❕ Для удаления вебхука введите <code>0</code>
❕ Вы можете использовать публичный вебхук, но ответственность за его использование лежит только на вас
▪️ Публичный вебхук: <code>{get_discord_public_webhook}</code>
""")
)
# Изменение текстового хостинга по умолчанию
@router.callback_query(F.data == "settings_edit_hosting_text")
async def settings_edit_hosting_text(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS):
async def settings_edit_hosting_text(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
get_settings = await Settingsx().get()
if get_settings.misc_hosting_text == "telegraph":
@@ -282,8 +276,7 @@ async def settings_faq_get(message: Message, bot: Bot, state: FSM, arSession: AR
except Exception:
bot_logger.debug("Некорректная HTML-разметка FAQ", exc_info=True)
return await message.answer(
"<b>❌ Ошибка синтаксиса HTML</b>\n"
"❔ Введите новый текст для FAQ",
"<b>❌ Ошибка синтаксиса HTML</b>\n" "❔ Введите новый текст для FAQ",
)
await state.clear()
@@ -310,67 +303,3 @@ async def settings_support_get(message: Message, bot: Bot, state: FSM, arSession
"<b>🖍 Изменение данных бота</b>",
reply_markup=await settings_finl(),
)
# Принятие дискорд вебхука
@router.message(F.text, StateFilter("here_settings_discord_webhook"))
async def settings_discord_get(message: Message, bot: Bot, state: FSM, arSession: ARS):
get_discord_webhook = message.text
# Удаление вебхука
if get_discord_webhook == "0":
await Settingsx().update(
misc_discord_webhook_url="None",
misc_discord_webhook_name="None",
)
return await message.answer(
"<b>⚙️ Настройки бота</b>",
reply_markup=await settings_finl(),
)
# Добавление нового вебхука
cache_message = await message.answer("<b>♻️ Проверка дискорд вебхука..</b>")
if "api" in get_discord_webhook and "webhooks" in get_discord_webhook:
discord_webhook_status, discord_webhook_name = await (
await DiscordAPI.connect(
bot=bot,
arSession=arSession,
update=message,
webhook_url=get_discord_webhook,
skipping_error=True,
)
).check()
if discord_webhook_status:
await state.clear()
await Settingsx().update(
misc_discord_webhook_url=message.text,
misc_discord_webhook_name=discord_webhook_name,
)
return await cache_message.edit_text(
"<b>⚙️ Настройки бота</b>",
reply_markup=await settings_finl(),
)
# Обработка ошибки добавления вебхука
get_discord_public_webhook = await (
DiscordDJ(
arSession=arSession,
bot=bot,
)
).export_webhook()
await cache_message.edit_text(
ded(f"""
<b>❌ Указан некорректный вебхук</b>
➖➖➖➖➖➖➖➖➖➖
🧿 Отправьте новый вебхук дискорда
❕ Для удаления вебхука введите <code>0</code>
❕ Вы можете использовать публичный вебхук, но ответственность за его использование лежит только на вас
▪️ Публичный вебхук: <code>{get_discord_public_webhook}</code>
""")
)