Сохранение сообщений из чатов в файл

This commit is contained in:
Whyverum
2024-12-18 07:24:38 +07:00
parent bf98079a6b
commit 919de974bc

View File

@@ -0,0 +1,48 @@
# BotLibrary/analitics/message_to_file.py
# Запись сообщений в файлы в зависимости от группы и личных сообщений
import os
from loguru import logger
from datetime import datetime
from config import BotVariables
from .type_messages import *
from .find_ids import find_chat_id
# Настройка экспорта модулей и логирования
__all__ = ("write_message_to_file",)
log_type = "Message_file"
# Функция записи сообщений в отдельные файлы
async def write_message_to_file(message):
try:
# Создание переменных с информацией
message_type = types_message(message)
chat_id = find_chat_id(message)
file_path = types_chat(message)
# Переменные для логов сообщений
date = datetime.now().strftime(BotVariables.time_format)
username = message.from_user.username if message.from_user.username else "No username"
log_shablon = f"{date} | @{username} ({message.from_user.id}) |"
# Проверка и создание директорий
if not os.path.exists(os.path.dirname(file_path)):
os.makedirs(os.path.dirname(file_path))
# Запись информации в файл
with open(file_path, "a", encoding=BotVariables.encoding) as file:
# Проверка на наличие текста
if message.text is None:
file.write(f"{log_shablon} Тип: {message_type}\n\n")
else:
file.write(f"{log_shablon} ChatID: {chat_id} | Текст: {message.text}\n\n")
return f"Сообщение пользователя успешно записано в файл."
# Проверка на ошибку и ее логирование
except Exception as e:
text_error = f"Ошибка в сохранении сообщения в файл: {str(e)}"
logger.bind(custom_variable=log_type, user_var=f"@{message.from_user.username}").error(text_error)
return text_error