1.9 СВЕРХ ВАЖНЫЕ ИСПРАВЛЕНИЯ
This commit is contained in:
2
.idea/PRIMOWORLD.iml
generated
2
.idea/PRIMOWORLD.iml
generated
@@ -12,7 +12,7 @@
|
|||||||
<sourceFolder url="file://$MODULE_DIR$/BotLibrary/system" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/BotLibrary/system" isTestSource="false" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/BotLibrary/timer" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/BotLibrary/timer" isTestSource="false" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/BotLibrary/validators" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/BotLibrary/validators" isTestSource="false" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/SQLite3" isTestSource="true" />
|
<sourceFolder url="file://$MODULE_DIR$/SQLite3" isTestSource="false" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/BotCode" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/BotCode" isTestSource="false" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/BotLibrary/samples" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/BotLibrary/samples" isTestSource="false" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/Test" isTestSource="true" />
|
<sourceFolder url="file://$MODULE_DIR$/Test" isTestSource="true" />
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
from aiogram import Router
|
from aiogram import Router
|
||||||
from .user_cmd import router as user_cmd_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(
|
router.include_routers(
|
||||||
|
adm_cmd_router,
|
||||||
user_cmd_router,
|
user_cmd_router,
|
||||||
)
|
)
|
||||||
@@ -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,
|
||||||
|
)
|
||||||
|
|||||||
48
BotCode/routers/commands/adm_cmd/ban_cmd.py
Normal file
48
BotCode/routers/commands/adm_cmd/ban_cmd.py
Normal file
@@ -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],
|
||||||
|
)
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
import sqlite3
|
import sqlite3
|
||||||
from aiogram import types
|
from aiogram import types
|
||||||
|
|
||||||
from BotLibrary import CommandHandler, username_to_text
|
from BotLibrary import CommandHandler, username_to_text, bot
|
||||||
from ProjectsFiles import BotVar
|
from ProjectsFiles import BotVar
|
||||||
|
|
||||||
# Настройки экспорта в модули
|
# Настройки экспорта в модули
|
||||||
|
|||||||
@@ -7,10 +7,14 @@ from SQLite3 import base_sql
|
|||||||
|
|
||||||
# Настройка экспорта модулей и роутера
|
# Настройка экспорта модулей и роутера
|
||||||
__all__ = ("router",)
|
__all__ = ("router",)
|
||||||
|
|
||||||
|
from bd_func.status_user import status_user
|
||||||
|
|
||||||
router = Router(name="common_msg_router")
|
router = Router(name="common_msg_router")
|
||||||
|
|
||||||
|
|
||||||
@router.message()
|
@router.message()
|
||||||
async def handle_all_messages(message: types.Message):
|
async def handle_all_messages(message: types.Message):
|
||||||
await base_sql(message)
|
await base_sql(message)
|
||||||
|
await status_user(message)
|
||||||
await logger_msg(message) # Это твой метод для логирования
|
await logger_msg(message) # Это твой метод для логирования
|
||||||
|
|||||||
BIN
SQLite3/bd.db
BIN
SQLite3/bd.db
Binary file not shown.
@@ -10,6 +10,7 @@ from .bd_get_user import *
|
|||||||
from .bd_update_user import *
|
from .bd_update_user import *
|
||||||
from .bd_update_user_msg import *
|
from .bd_update_user_msg import *
|
||||||
from .bd_user_create import *
|
from .bd_user_create import *
|
||||||
|
from .status_user import *
|
||||||
|
|
||||||
|
|
||||||
# Основная обработка SQL
|
# Основная обработка SQL
|
||||||
|
|||||||
41
SQLite3/bd_func/status_user.py
Normal file
41
SQLite3/bd_func/status_user.py
Normal file
@@ -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
|
||||||
3
SQLite3/bd_func/username_to_id.py
Normal file
3
SQLite3/bd_func/username_to_id.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# SQLite3/bd_func/username_to_id.py
|
||||||
|
#
|
||||||
|
|
||||||
Reference in New Issue
Block a user