# ProjectsFiles/config.py
# Файл-хранилище всех конфигов и настроек для бота
from typing import List, Tuple
# Список разрешений для бота
class Permissions:
"""
Класс для хранения настроек разрешений бота.
"""
bot_edit : bool = False # Разрешение на изменение имени, описания и виджета (True/False)
delete_webhook : bool = True # Разрешение на удаление веб-хука (True/False)
logging : bool = True # Разрешение на вывод логов в консоль (True/False)
logging_to_file : bool = False # Разрешение на вывод логов в файл (True/False)
msg_logging : bool = False # Логирование сообщений в консоль (В разработке)
start_info_console : bool = True # Вывод информации о боте в начале (True/False)
sql_user : bool = True # Разрешение на регистрацию в базе данных (True/False)
# Имя, описание и виджет бота(при наличии баннера виджета)
class BotEdit:
"""
Класс для хранения данных о боте: имя, описание, разрешения и настройки.
"""
# Разрешение на ведение логов
permission : bool = Permissions.bot_edit
name : str = "Стартовый бот"
description : str = "Описание бота"
short_description : str = "Описание виджета"
is_anonymous : bool = False
manage_chat : bool = True
delete_messages : bool = True
manage_video_chats : bool = True
restrict_members : bool = True
promote_members : bool = True
change_info : bool = True
invite_users : bool = True
post_stories : bool = True
edit_stories : bool = True
delete_stories : bool = True
post_messages : bool = True
edit_messages : bool = True
pin_messages : bool = True
manage_topics : bool = True
# Хранение параметров проекта
class BotVar:
"""
Класс для хранения глобальных параметров проекта.
"""
encod : str = "utf-8"
language : str = "Python3-Aiogram"
time_format : str = "%Y-%m-%d %H:%M:%S"
prefix : Tuple[str, ...] = ('$', '!', '.', '%', '&', ':', '|', '+', '-', '/', '~', '?')
# Класс для хранения типов директорий
class TypeDirectory:
"""
Класс для хранения типов сообщений и директорий, которые нужно создать.
"""
# Типы сообщений и список директорий для создания
private_msg : str = "Личные"
group_msg : str = "Группы"
# Названия директорий-хранилищ
avatar : str = "Avatar"
photo : str = "Photo"
video : str = "Video"
videonote : str = "VideoNote"
gif : str = "GIF"
files : str = "Document"
voice : str = "Voice"
media_directories : List[str] = [avatar, photo, video, videonote, gif, files, voice]
# Класс создания директорий проекта
class ProjectPath:
"""
Класс для хранения путей к проектам и логам.
"""
BotLogs : str = "BotLogs"
personal_media : str = "ProjectsFiles/media"
# Настройки логирования бота
class BotLogs:
"""
Класс для хранения параметров логирования: шаблоны логов, разрешения, размеры файлов и т. д.
"""
# Разрешение на ведение логов
permission : bool = Permissions.logging
permission_to_file : bool = Permissions.logging_to_file
permission_msg : bool = Permissions.msg_logging
# Максимальный размер лог-файла
max_size : str = "500 MB"
# Шаблон логов для отладки
debug_text : str = (
"{time:YYYY-MM-DD HH:mm:ss} | "
"DEBUG-{extra[log_type]} | "
"{extra[user]} | {message}"
)
# Шаблон логов для информации
info_text : str = (
"{time:YYYY-MM-DD HH:mm:ss} | "
"PRIMO-{extra[log_type]} | "
"{extra[user]} | {message}"
)
# Шаблон логов для предупреждений
warning_text : str = (
"{time:YYYY-MM-DD HH:mm:ss} | "
"WARNING-{extra[log_type]} | "
"{extra[user]} | {message}"
)
# Шаблон логов для ошибок
error_text : str = (
"{time:YYYY-MM-DD HH:mm:ss} | "
"ERROR-{extra[log_type]} | "
"{extra[user]} | {message}"
)