From 204b5d057504c8223085a27c3d60374efeb821f4 Mon Sep 17 00:00:00 2001 From: Whyverum Date: Wed, 18 Dec 2024 07:25:51 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20=D0=B4=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D0=B5=D0=B9=20=D0=B2=20=D1=84?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BotLibrary/analitics/user_data_to_file.py | 54 +++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 BotLibrary/analitics/user_data_to_file.py diff --git a/BotLibrary/analitics/user_data_to_file.py b/BotLibrary/analitics/user_data_to_file.py new file mode 100644 index 0000000..7447315 --- /dev/null +++ b/BotLibrary/analitics/user_data_to_file.py @@ -0,0 +1,54 @@ +# BotLibrary/analitics/user_data_to_file.py +# Запись информации о пользователях в файл "user_data.db" (Сделать счетчик пользователей) + +import os +import json +import datetime +from config import ImportantPath, BotVariables + +# Настройка экспорта модулей и логирования +__all__ = ("write_user_info_to_file", "format_user_record",) +log_type = "User_data_file" + + +# Функция записи информации в JSON-файл +def write_user_info_to_file(user): + directory = os.path.dirname(ImportantPath.user_info_file) + if not os.path.exists(directory): + os.makedirs(directory) + + if os.path.exists(ImportantPath.user_info_file): + with open(ImportantPath.user_info_file, "r", encoding=BotVariables.encoding) as file: + try: + user_data = json.load(file) + except json.JSONDecodeError: + user_data = {} + else: + user_data = {} + + user_record = format_user_record(user) + user_data[str(user.id)] = user_record + + with open(ImportantPath.user_info_file, "w", encoding=BotVariables.encoding) as file: + json.dump(user_data, file, ensure_ascii=False, indent=4) + + return f"Информация о пользователе успешно записана или обновлена." + + +# Функция форматирования вывода в JSON-файл +def format_user_record(user): + first_name = getattr(user, 'first_name', '') # Получаем имя + last_name = getattr(user, 'last_name', '') # Получаем фамилию или пустую строку + + return { + "Время знакомства": datetime.datetime.now().strftime(BotVariables.time_format), + "Имя": first_name, + "Фамилия": last_name, + "Юзернейм": f"@{getattr(user, 'username', 'Не указано')}", + "Айди": user.id, + "Ссылка": f"tg://user?id={user.id}", + "Бот": getattr(user, 'is_bot', False), + "Премиум": getattr(user, 'is_premium', False), + "Язык": getattr(user, 'language_code', 'Не указано'), + } +