added botdata command
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
BOT_TOKEN = "..." # Токен бота получать у @BotFather
|
BOT_TOKEN = "..." # Токен бота получать у @BotFather
|
||||||
ADMIN_CHAT_ID = -1001111111111 # ID админ-чата получать у @username_to_id_bot
|
ADMIN_CHAT_ID = -1001111111111 # ID админ-чата получать у @username_to_id_bot
|
||||||
LOG_THREAD_ID = 2 # ID топика, брать из ссылки сообщения
|
LOG_THREAD_ID = 2 # ID топика, брать из ссылки сообщения
|
||||||
|
ADMIN_IDS = "11111,22222" # ID администраторов получать у @username_to_id_bot
|
67
src/modules/botdata.py
Normal file
67
src/modules/botdata.py
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
from telebot.async_telebot import AsyncTeleBot
|
||||||
|
from telebot.types import Message
|
||||||
|
import asyncio
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
|
||||||
|
from utils import delete_messages
|
||||||
|
|
||||||
|
from config import COMMAND_MESSAGES, DATABASE_NAME, LOG_FILE_NAME
|
||||||
|
|
||||||
|
# Получаем логгер для текущего модуля
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
# Загружаем id администраторов из .env
|
||||||
|
ADMIN_IDS = [int(id_str.strip()) for id_str in os.getenv('ADMIN_IDS').split(',')]
|
||||||
|
|
||||||
|
# Регистрирует все обработчики команд
|
||||||
|
def register_handlers(bot: AsyncTeleBot):
|
||||||
|
|
||||||
|
# Обработчик команды /botdata
|
||||||
|
@bot.message_handler(commands=['botdata'])
|
||||||
|
async def botdata_command(message: Message):
|
||||||
|
|
||||||
|
try:
|
||||||
|
|
||||||
|
# Если id администратора совпадает
|
||||||
|
if message.from_user.id in ADMIN_IDS:
|
||||||
|
|
||||||
|
# Отправляем базу данных
|
||||||
|
await bot.send_document(
|
||||||
|
chat_id=message.chat.id,
|
||||||
|
document=open(DATABASE_NAME, 'rb')
|
||||||
|
)
|
||||||
|
|
||||||
|
# Отправляем файл с логами
|
||||||
|
await bot.send_document(
|
||||||
|
chat_id=message.chat.id,
|
||||||
|
document=open(LOG_FILE_NAME, 'rb')
|
||||||
|
)
|
||||||
|
|
||||||
|
# Записываем действие в логи
|
||||||
|
logger.info(f"Администратор {message.from_user.id} запустил /botdata.")
|
||||||
|
|
||||||
|
# Если id администратора не совпадает
|
||||||
|
else:
|
||||||
|
|
||||||
|
# Отправляем предупреждение
|
||||||
|
await bot.send_message(
|
||||||
|
chat_id=message.chat.id,
|
||||||
|
text=COMMAND_MESSAGES['no_admin_rights'],
|
||||||
|
message_thread_id=message.message_thread_id,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Записываем действие в логи
|
||||||
|
logger.info(f"Пользователь {message.from_user.id} запустил /botdata.")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
|
||||||
|
# Отправляем ошибку
|
||||||
|
await bot.send_message(
|
||||||
|
chat_id=message.chat.id,
|
||||||
|
text=COMMAND_MESSAGES['general_error'],
|
||||||
|
message_thread_id=message.message_thread_id,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Записываем ошибку в логи
|
||||||
|
logger.error(f"Общая ошибка в botdata_command: {str(e)}")
|
Reference in New Issue
Block a user