Сохранение сообщений из чатов в файл
This commit is contained in:
48
BotLibrary/analitics/message_to_file.py
Normal file
48
BotLibrary/analitics/message_to_file.py
Normal 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
|
||||||
Reference in New Issue
Block a user