diff --git a/src/ocab_modules/ocab_modules/legacy/moderation/__init__.py b/src/ocab_modules/ocab_modules/legacy/moderation/__init__.py deleted file mode 100644 index 780783a..0000000 --- a/src/ocab_modules/ocab_modules/legacy/moderation/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .moderation import ban_user, unmute_user diff --git a/src/ocab_modules/ocab_modules/legacy/moderation/info.json b/src/ocab_modules/ocab_modules/legacy/moderation/info.json deleted file mode 100644 index 619113e..0000000 --- a/src/ocab_modules/ocab_modules/legacy/moderation/info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Moderation", - "description": "Moderation commands for OCAB", - "author": "OCAB Team", - "version": "1.0" -} diff --git a/src/ocab_modules/ocab_modules/legacy/moderation/moderation.py b/src/ocab_modules/ocab_modules/legacy/moderation/moderation.py deleted file mode 100644 index d89101d..0000000 --- a/src/ocab_modules/ocab_modules/legacy/moderation/moderation.py +++ /dev/null @@ -1,82 +0,0 @@ -# flake8: noqa - -import asyncio -import time - -import aiogram -import aiohttp - -from ocab_modules.standard.config.config import * -from ocab_modules.standard.roles.roles import * - - -class Moderation: - def __init__(self): - access_rights = get_access_rights() - bot_check_message = bool(self.access_rights["BOT_CHECK_MESSAGE"]) - bot_ban_user = bool(self.access_rights["BOT_BAN_USER"]) - bot_mute_user = bool(self.access_rights["BOT_MUTE_USER"]) - moderator_rights = self.access_rights["MODERATOR_RIGHTS"] - ai_check_message = bool(self.access_rights["AI_CHECK_MESSAGE"]) - beta_ai_check_message = bool(self.access_rights["BETA_AI_CHECK_MESSAGE"]) - - async def time_to_seconds(time): - # Конвертация текстового указания времени по типу 3h, 5m, 10s в минуты - if time[-1] == "d": - return int(time[:-1]) * 86400 - elif time[-1] == "h": - return int(time[:-1]) * 3600 - elif time[-1] == "m": - return int(time[:-1]) * 60 - elif time[-1] == "s": - return int(time[:-1]) - - async def short_time_to_time(self, time): - # Конвертация времени в длинное название - if time[-1] == "d": - return str(f"{time[0:-1]} дней") - elif time[-1] == "h": - return str(f"{time[0:-1]} часов") - elif time[-1] == "m": - return str(f"{time[0:-1]} минут") - elif time[-1] == "s": - return str(f"{time[0:-1]} секунд") - - async def delete_message(self, chat_id, message_id, bot: aiogram.Bot): - await bot.delete_message(chat_id, message_id) - - async def ban_user(self, chat_id, user_id, bot: aiogram.Bot): - await bot.ban_chat_member(chat_id, user_id) - - -async def mute_user(chat_id, user_id, time, bot: aiogram.Bot): - mutePermissions = { - "can_send_messages": False, - "can_send_audios": False, - "can_send_documents": False, - "can_send_photos": False, - "can_send_videos": False, - "can_send_video_notes": False, - "can_send_voice_notes": False, - "can_send_polls": False, - "can_send_other_messages": False, - "can_add_web_page_previews": False, - "can_change_info": False, - "can_invite_users": False, - "can_pin_messages": False, - "can_manage_topics": False, - } - end_time = time + int(time.time()) - await bot.restrict_chat_member( - chat_id, user_id, until_date=end_time, **mutePermissions - ) - - -async def unmute_user(chat_id, user_id, bot: aiogram.Bot): - await bot.restrict_chat_member( - chat_id, user_id, use_independent_chat_permissions=True - ) - - -async def ban_user(chat_id, user_id, bot: aiogram.Bot): - await bot.ban_chat_member(chat_id, user_id) diff --git a/src/ocab_modules/ocab_modules/legacy/welcome/__init__.py b/src/ocab_modules/ocab_modules/legacy/welcome/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/ocab_modules/ocab_modules/legacy/welcome/handlers.py b/src/ocab_modules/ocab_modules/legacy/welcome/handlers.py deleted file mode 100644 index 8e65fc8..0000000 --- a/src/ocab_modules/ocab_modules/legacy/welcome/handlers.py +++ /dev/null @@ -1,84 +0,0 @@ -# flake8: noqa - -import asyncio -import random -from threading import Thread - -from aiogram import Bot -from aiogram.types import inline_keyboard_button as types -from aiogram.utils.keyboard import InlineKeyboardBuilder - -from ocab_modules.legacy.moderation import ban_user, unmute_user -from src.ocab_modules.standard.config.config import get_telegram_check_bot -from src.ocab_modules.standard.database.db_api import * - - -async def create_math_task(): - first_number = random.randint(1, 100) # nosec - second_number = random.randint(1, 100) # nosec - answer = first_number + second_number - fake_answers = [] - for i in range(3): - diff = random.randint(1, 10) # nosec - diff_sign = random.choice(["+", "-"]) # nosec - fake_answers.append(answer + diff if diff_sign == "+" else answer - diff) - fake_answers.append(answer) - random.shuffle(fake_answers) - return [answer, first_number, second_number, fake_answers] - - -async def ban_user_timer(chat_id: int, user_id: int, time: int, bot: Bot): - await asyncio.sleep(time) - if get_user(user_id) is not None: - pass - else: - await ban_user() - - -async def check_new_user(message: Message, bot: Bot): - print("check_new_user") - if get_telegram_check_bot(): - # Проверяем наличие пользователя в базе данных - - if get_user(message.from_user.id) is None: - # Выдаём пользователю ограничение на отправку сообщений на 3 минуты - ban_task = Thread( - target=ban_user_timer, - args=(message.chat.id, message.from_user.id, 180, bot), - ) - ban_task.start() - # Создаём задачу с отложенным выполнением на 3 минуты - - math_task = await create_math_task() - text = f"{math_task[1]} + {math_task[2]}" - builder = InlineKeyboardBuilder() - for answer in math_task[3]: - if answer == math_task[0]: - builder.add( - types.InlineKeyboardButton( - text=answer, callback_data=f"check_math_task_true" - ) - ) - else: - builder.add( - types.InlineKeyboardButton( - text=answer, callback_data=f"check_math_task_false" - ) - ) - await message.reply( - f"Приветствую, {message.from_user.first_name}!\n" - f"Для продолжения работы с ботом, пожалуйста, решите математический пример в течении 3х минут:\n" - f"*{text}*", - reply_markup=builder.as_markup(), - ) - - -async def math_task_true(message: Message, bot: Bot): - await message.reply(f"Верно! Добро пожаловать в чат {message.from_user.first_name}") - await unmute_user(message.chat.id, message.from_user.id, bot) - add_user( - message.from_user.id, - message.from_user.first_name + " " + message.from_user.last_name, - message.from_user.username, - ) - pass diff --git a/src/ocab_modules/ocab_modules/legacy/welcome/info.json b/src/ocab_modules/ocab_modules/legacy/welcome/info.json deleted file mode 100644 index fde1be0..0000000 --- a/src/ocab_modules/ocab_modules/legacy/welcome/info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Welcome", - "description": "Мо", - "author": "OCAB Team", - "version": "1.0" -} diff --git a/src/ocab_modules/ocab_modules/legacy/welcome/routers.py b/src/ocab_modules/ocab_modules/legacy/welcome/routers.py deleted file mode 100644 index 372d91b..0000000 --- a/src/ocab_modules/ocab_modules/legacy/welcome/routers.py +++ /dev/null @@ -1,12 +0,0 @@ -from aiogram import F, Router - -from .handlers import check_new_user - -router = Router() - -# Если в чат пришел новый пользователь -router.message.register(check_new_user, F.new_chat_members.exists()) -# Ловин колбеки от кнопок с callback_data=f"check_math_task_true" -router.callback_query.register( - check_new_user, F.callback_data == "check_math_task_true" -) diff --git a/src/ocab_modules/ocab_modules/legacy/welcome/welcome.py b/src/ocab_modules/ocab_modules/legacy/welcome/welcome.py deleted file mode 100644 index e69de29..0000000