49 lines
2.1 KiB
Python
49 lines
2.1 KiB
Python
# 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
|