From 919de974bc7f6552362d874a96eb132b9a5959ac Mon Sep 17 00:00:00 2001 From: Whyverum Date: Wed, 18 Dec 2024 07:24:38 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=B8=D0=B7=20=D1=87=D0=B0=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B2=20=D1=84=D0=B0=D0=B9=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BotLibrary/analitics/message_to_file.py | 48 +++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 BotLibrary/analitics/message_to_file.py diff --git a/BotLibrary/analitics/message_to_file.py b/BotLibrary/analitics/message_to_file.py new file mode 100644 index 0000000..4b3a516 --- /dev/null +++ b/BotLibrary/analitics/message_to_file.py @@ -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