diff --git a/.idea/PRIMOWORLD.iml b/.idea/PRIMOWORLD.iml
index ae786b7..541e011 100644
--- a/.idea/PRIMOWORLD.iml
+++ b/.idea/PRIMOWORLD.iml
@@ -12,7 +12,7 @@
-
+
diff --git a/BotCode/routers/commands/__init__.py b/BotCode/routers/commands/__init__.py
index 970dd94..f07158c 100644
--- a/BotCode/routers/commands/__init__.py
+++ b/BotCode/routers/commands/__init__.py
@@ -3,6 +3,7 @@
from aiogram import Router
from .user_cmd import router as user_cmd_router
+from .adm_cmd import router as adm_cmd_router
# Объявление роутера и настройка экспорта модулей
@@ -12,5 +13,6 @@ router = Router(name="commands_head_router")
# Список подключаемых роутеров сверху-вниз
router.include_routers(
+ adm_cmd_router,
user_cmd_router,
)
\ No newline at end of file
diff --git a/BotCode/routers/commands/adm_cmd/__init__.py b/BotCode/routers/commands/adm_cmd/__init__.py
index e69de29..6d83b64 100644
--- a/BotCode/routers/commands/adm_cmd/__init__.py
+++ b/BotCode/routers/commands/adm_cmd/__init__.py
@@ -0,0 +1,18 @@
+# BotCode/routers/commands/adm_cmd/__init__.py
+# Инициализация модуля adm_cmd, для административных команд бота
+
+# Экспортирование модулей во внешние слои проекта
+from aiogram import Router
+from .all_cmd import all_cmd
+from .ban_cmd import ban_cmd
+
+# Объявление роутера и настройка экспорта модулей
+__all__ = ("router",)
+router = Router(name="adm_cmd_router")
+
+
+# Список подключаемых роутеров сверху-вниз
+router.include_routers(
+ ban_cmd.router,
+ all_cmd.router,
+)
diff --git a/BotCode/routers/commands/adm_cmd/ban_cmd.py b/BotCode/routers/commands/adm_cmd/ban_cmd.py
new file mode 100644
index 0000000..2a185af
--- /dev/null
+++ b/BotCode/routers/commands/adm_cmd/ban_cmd.py
@@ -0,0 +1,48 @@
+# BotCode/routers/commands/user_cmd/stats_cmd.py
+# Работа с командой /stats, для получения информации о себе
+
+from aiogram import types
+from BotLibrary import CommandHandler, bot
+from SQLite3 import status_user
+
+# Настройки экспорта в модули
+__all__ = ("ban_cmd",)
+
+# Функция блокировки пользователя
+async def ban_user(message: types.Message, *args, **kwargs):
+ status = await status_user(message)
+ if status not in ('Пользователь', 'Забаннен'):
+ # Проверка, что команда вызвана с упоминанием пользователя
+ args = message.text.split()
+ if len(args) != 2:
+ await message.reply("Пожалуйста, укажите пользователя для бана, например: /ban @username")
+ return
+
+ # Получение упомянутого пользователя
+ username = args[1]
+
+ # Попытка получить user_id по username
+ try:
+ user = await bot.get_users(username)
+ user_id = user.id
+
+ # Проверка, является ли пользователь участником чата
+ member = await bot.get_chat_member(message.chat.id, user_id)
+
+ # Блокировка пользователя
+ await bot.kick_chat_member(message.chat.id, user_id)
+ await message.reply(f"Пользователь {username} забанен.")
+ except Exception as e:
+ await message.reply(f"Ошибка: {str(e)}")
+ else:
+ await message.reply("Вы не являетесь администратором!")
+
+
+# Создание команды /ban с несколькими медиа
+ban_cmd = CommandHandler(
+ name="ban",
+ description="Блокировка пользователя",
+ keywords=["ban", "бан", "banhammer", "ифтрфььук", "ифт"],
+ callbackdata=["keywords"],
+ media="command", func=[ban_user],
+)
diff --git a/BotCode/routers/commands/user_cmd/stats.py b/BotCode/routers/commands/user_cmd/stats.py
index 0d51795..0876988 100644
--- a/BotCode/routers/commands/user_cmd/stats.py
+++ b/BotCode/routers/commands/user_cmd/stats.py
@@ -3,7 +3,7 @@
import sqlite3
from aiogram import types
-from BotLibrary import CommandHandler, username_to_text
+from BotLibrary import CommandHandler, username_to_text, bot
from ProjectsFiles import BotVar
# Настройки экспорта в модули
diff --git a/BotCode/routers/common/messages.py b/BotCode/routers/common/messages.py
index 42293fa..cea6d9c 100644
--- a/BotCode/routers/common/messages.py
+++ b/BotCode/routers/common/messages.py
@@ -7,10 +7,14 @@ from SQLite3 import base_sql
# Настройка экспорта модулей и роутера
__all__ = ("router",)
+
+from bd_func.status_user import status_user
+
router = Router(name="common_msg_router")
@router.message()
async def handle_all_messages(message: types.Message):
await base_sql(message)
+ await status_user(message)
await logger_msg(message) # Это твой метод для логирования
diff --git a/SQLite3/bd.db b/SQLite3/bd.db
index 2856438..576f4ad 100644
Binary files a/SQLite3/bd.db and b/SQLite3/bd.db differ
diff --git a/SQLite3/bd_func/__init__.py b/SQLite3/bd_func/__init__.py
index 1518052..0240b5e 100644
--- a/SQLite3/bd_func/__init__.py
+++ b/SQLite3/bd_func/__init__.py
@@ -10,6 +10,7 @@ from .bd_get_user import *
from .bd_update_user import *
from .bd_update_user_msg import *
from .bd_user_create import *
+from .status_user import *
# Основная обработка SQL
diff --git a/SQLite3/bd_func/status_user.py b/SQLite3/bd_func/status_user.py
new file mode 100644
index 0000000..5483af0
--- /dev/null
+++ b/SQLite3/bd_func/status_user.py
@@ -0,0 +1,41 @@
+# SQLite3/bd_func/status_user.py
+# Проверка статусов пользователя с БД
+
+import sqlite3
+from aiogram import types
+from ProjectsFiles import BotVar
+
+# Функция проверки статуса пользователя
+async def status_user(message: types.Message, bd_path: str = BotVar.bd_names):
+ # Подключение к базе данных
+ bd = sqlite3.connect(bd_path)
+ tg_id = message.from_user.id
+ cursor = bd.cursor()
+
+ # Запрос к базе данных для получения значения из столбца 'user' для конкретного tg_id
+ cursor.execute("SELECT user FROM users WHERE tg_id = ?", (tg_id,))
+
+ # Получаем результат
+ row = cursor.fetchone()
+
+ # Словарь для сопоставления статусов
+ status_map = {
+ "ban": "Забаннен",
+ "user": "Пользователь",
+ "moderator": "Модератор",
+ "admin": "Администратор",
+ "so-owner": "Совладелец",
+ "owner": "Владелец",
+ }
+
+ if row:
+ user_type = row[0] # предполагаем, что в столбце 'user' находится только одно значение
+ status = status_map.get(user_type, "Ошибка!") # Получаем статус или "Ошибка!"
+ else:
+ status = "Пользователь не найден"
+
+ # Закрываем соединение с базой данных
+ bd.close()
+
+ # Выводим статус
+ return status
diff --git a/SQLite3/bd_func/username_to_id.py b/SQLite3/bd_func/username_to_id.py
new file mode 100644
index 0000000..cfbe136
--- /dev/null
+++ b/SQLite3/bd_func/username_to_id.py
@@ -0,0 +1,3 @@
+# SQLite3/bd_func/username_to_id.py
+#
+