Origin #2
@@ -1,145 +0,0 @@
|
||||
# BotLibrary/configs/config.py
|
||||
# Список практически всех переменных проекта
|
||||
|
||||
from os import getenv
|
||||
from dotenv import load_dotenv
|
||||
from MySQL.list_ids import *
|
||||
|
||||
|
||||
# Настройка экспорта модулей и логирования
|
||||
__all__ = ("LogsSet", "BotEdit", "ListId", "ImportantPath", "BotVariables",
|
||||
"bot_token", "api_key", "web_api_key", )
|
||||
log_type = "Config"
|
||||
|
||||
|
||||
# Загружаем переменные из файла .env
|
||||
load_dotenv()
|
||||
bot_token = getenv("main_bot_token")
|
||||
api_key = getenv("APIKey")
|
||||
web_api_key = getenv("WebAPIKey")
|
||||
important_id = getenv("important_id")
|
||||
secret = getenv("secret")
|
||||
|
||||
|
||||
# Класс для параметров логгера
|
||||
class LogsSet:
|
||||
# Максимальный размер лог-файла
|
||||
max_size = "500 MB"
|
||||
|
||||
# Шаблон логов для обычного логгера
|
||||
info_text = ("<green>{timer:YYYY-MM-DD HH:mm:ss}</green> <red> | </red> "
|
||||
"<blue>PRIMO-{extra[log_type]}</blue> <red> | </red> "
|
||||
"<red>{extra[user]} | </red> <level>{message}</level>")
|
||||
|
||||
# Шаблон логов для логгера-ошибок
|
||||
error_text = ("<level>{timer:YYYY-MM-DD HH:mm:ss} | ERROR-{extra[log_type]} | "
|
||||
"{extra[user]} | {message}</level>")
|
||||
|
||||
|
||||
# Прочие переменные для проекта
|
||||
class BotVariables:
|
||||
# Основные настройки бота
|
||||
encoding = "utf-8"
|
||||
time_format = "%Y-%m-%d %H:%M:%S"
|
||||
language = "Python-Aiogram"
|
||||
time_zone = "Asia/Novosibirsk"
|
||||
|
||||
# Типы сообщений и список директорий для создания
|
||||
private_msg = "Личные"
|
||||
group_msg = "Группы"
|
||||
bot_msg_directories = [private_msg, group_msg,]
|
||||
|
||||
# Названия директорий для хранения аватаров
|
||||
user_avatar = "UserAvatar"
|
||||
chat_avatar = "ChatAvatar"
|
||||
channel_avatar = "ChannelAvatar"
|
||||
bot_avatar_directories = [user_avatar, chat_avatar, channel_avatar,]
|
||||
|
||||
# Названия директорий-хранилищ
|
||||
avatar = "Avatar"
|
||||
photo = "Photo"
|
||||
video = "Video"
|
||||
videonote = "VideoNote"
|
||||
gif = "GIF"
|
||||
files = "Document"
|
||||
voice = "Voice"
|
||||
youtube = "YouTube"
|
||||
|
||||
# Список директорий для создания
|
||||
bot_media_directories = [
|
||||
avatar, photo, video, videonote, gif, files, voice, youtube,
|
||||
]
|
||||
|
||||
|
||||
# Класс с параметрами бота
|
||||
class BotEdit:
|
||||
name = "Первородная Жемчужина" # Описание имени бота
|
||||
description = ("Привет, мое имя - Эми! Я буду рада, вам помочь "
|
||||
"посетить другие миры! Вместе!") # Описание бота
|
||||
short_description = "Привет, это описание! Как дела?" # Описание виджета бота
|
||||
prefixs = ('$', '!', '.', '%', '&', ':', '|', '+', '-', '/', '~', '?') # Доступные префиксы бота
|
||||
|
||||
|
||||
# Создание списков с ids пользователей
|
||||
class ListId:
|
||||
# Получение списков из базы данных
|
||||
ban_list_id = ban_list_ids
|
||||
|
||||
adm_list_id = important_adm_ids
|
||||
important_users_list_id = important_users_list_ids
|
||||
groups_list_id = important_groups_ids
|
||||
channel_list_id = important_channel_ids
|
||||
|
||||
# Создание единого словаря важных ID с использованием оператора |
|
||||
important_ids = (important_adm_ids | important_users_list_ids |
|
||||
important_groups_ids | important_channel_ids)
|
||||
|
||||
|
||||
# Класс с важными переменными-пути
|
||||
class ImportantPath:
|
||||
# Путь к аватарам проекта
|
||||
bot_avatar = f"BotLibrary/MediaPersonal/bot_avatar.png"
|
||||
console_app_avatar = f"BotLibrary/MediaPersonal/console_avatar.png"
|
||||
|
||||
# Пути к файлам логирования
|
||||
log_start = f"BotLogs/bot_start.log"
|
||||
log_file = f"BotLogs/bot.log"
|
||||
log_info = f"BotLogs/bot_info.log"
|
||||
log_error_file = f"BotLogs/bot_error.log"
|
||||
|
||||
# Пути к хранению сообщений
|
||||
msg = f"BotLogs/BotMessages"
|
||||
private_message = f"{msg}/{BotVariables.private_msg}"
|
||||
group_message = f"{msg}/{BotVariables.group_msg}"
|
||||
|
||||
# Путь к хранилищу базы данных
|
||||
user_info_file = f"MySQL/user_data.json"
|
||||
|
||||
# Пути к хранению медиа
|
||||
bot_files = f"BotFiles"
|
||||
bot_personal_media = f"BotLibrary/media"
|
||||
bot_received_media = f"BotFiles/MediaReceived"
|
||||
user_avatar = f"{bot_files}/{BotVariables.user_avatar}"
|
||||
chat_avatar = f"{bot_files}/{BotVariables.chat_avatar}"
|
||||
channel_avatar = f"{bot_files}/{BotVariables.channel_avatar}"
|
||||
|
||||
|
||||
# Названия директорий-хранилищ для медиа
|
||||
bot_avatar_directory = f"{bot_personal_media}/{BotVariables.avatar}/"
|
||||
bot_photo_directory = f"{bot_personal_media}/{BotVariables.photo}/"
|
||||
bot_video_directory = f"{bot_personal_media}/{BotVariables.video}/"
|
||||
bot_videonote_directory = f"{bot_personal_media}/{BotVariables.videonote}/"
|
||||
bot_gif_directory = f"{bot_personal_media}/{BotVariables.gif}/"
|
||||
bot_document_directory = f"{bot_personal_media}/{BotVariables.files}/"
|
||||
bot_voice_directory = f"{bot_personal_media}/{BotVariables.voice}/"
|
||||
bot_youtube_directory = f"{bot_personal_media}/{BotVariables.youtube}/"
|
||||
|
||||
# Названия директорий-хранилищ для закачки
|
||||
avatar_directory = f"{bot_received_media}/{BotVariables.avatar}/"
|
||||
photo_directory = f"{bot_received_media}/{BotVariables.photo}/"
|
||||
video_directory = f"{bot_received_media}/{BotVariables.video}/"
|
||||
videonote_directory = f"{bot_received_media}/{BotVariables.videonote}/"
|
||||
gif_directory = f"{bot_received_media}/{BotVariables.gif}/"
|
||||
document_directory = f"{bot_received_media}/{BotVariables.files}/"
|
||||
voice_directory = f"{bot_received_media}/{BotVariables.voice}/"
|
||||
youtube_directory = f"{bot_received_media}/{BotVariables.youtube}/"
|
||||
5
BotLibrary/configs/config.py
Normal file
5
BotLibrary/configs/config.py
Normal file
@@ -0,0 +1,5 @@
|
||||
# BotLibrary/configs/config.py
|
||||
# Базовые переменные для проекта
|
||||
|
||||
# Базовая кодировка файлов
|
||||
default_encod = "utf-8"
|
||||
87
BotLibrary/configs/important_path.py
Normal file
87
BotLibrary/configs/important_path.py
Normal file
@@ -0,0 +1,87 @@
|
||||
# BotLibrary/configs/important_path.py
|
||||
# Хранилище всех важных путей
|
||||
|
||||
|
||||
# Класс для хранения типов директорий
|
||||
class TypeDirectory:
|
||||
# Типы сообщений и список директорий для создания
|
||||
private_msg = "Личные"
|
||||
group_msg = "Группы"
|
||||
msg_directories = [private_msg, group_msg]
|
||||
|
||||
# Названия директорий для хранения аватаров
|
||||
user_avatar = "UserAvatar"
|
||||
chat_avatar = "ChatAvatar"
|
||||
channel_avatar = "ChannelAvatar"
|
||||
avatar_directories = [user_avatar, chat_avatar, channel_avatar]
|
||||
|
||||
# Названия директорий-хранилищ
|
||||
avatar = "Avatar"
|
||||
photo = "Photo"
|
||||
video = "Video"
|
||||
videonote = "VideoNote"
|
||||
gif = "GIF"
|
||||
files = "Document"
|
||||
voice = "Voice"
|
||||
youtube = "YouTube"
|
||||
|
||||
# Список директорий для создания
|
||||
media_directories = [avatar, photo, video, videonote,
|
||||
gif, files, voice, youtube]
|
||||
|
||||
|
||||
# Класс с важными путями и настройками
|
||||
class ProjectPath:
|
||||
# Пути к файлам логирования
|
||||
logs = "BotLogs"
|
||||
log_start = f"{logs}/start.log"
|
||||
log_file = f"{logs}/bot.log"
|
||||
log_info = f"{logs}/info.log"
|
||||
log_error_file = f"{logs}/error.log"
|
||||
|
||||
|
||||
# Пути к хранилищу сообщений
|
||||
msg = f"{logs}/BotMessages"
|
||||
private_message = f"{msg}/{TypeDirectory.private_msg}"
|
||||
group_message = f"{msg}/{TypeDirectory.group_msg}"
|
||||
|
||||
|
||||
# Путь к хранилищу базы данных
|
||||
SQL = "MySQL"
|
||||
user_info_file = f"{SQL}/user_data.json"
|
||||
list_id = f"{SQL}/list_ids.json"
|
||||
|
||||
|
||||
# Пути к хранилищу медиа
|
||||
bot_files = "BotFiles"
|
||||
personal_media = f"BotLibrary/media"
|
||||
received_media = f"{bot_files}/MediaReceived"
|
||||
|
||||
|
||||
# Пути к папкам аватаров
|
||||
user_avatar = f"{bot_files}/{TypeDirectory.user_avatar}"
|
||||
chat_avatar = f"{bot_files}/{TypeDirectory.chat_avatar}"
|
||||
channel_avatar = f"{bot_files}/{TypeDirectory.channel_avatar}"
|
||||
|
||||
|
||||
# Путь к папкам хранения медиа
|
||||
console_app_avatar = f"{personal_media}/console_avatar.png"
|
||||
personal_avatar = f"{personal_media}/{TypeDirectory.avatar}"
|
||||
personal_photo = f"{personal_media}/{TypeDirectory.photo}"
|
||||
personal_video = f"{personal_media}/{TypeDirectory.video}"
|
||||
personal_videonote = f"{personal_media}/{TypeDirectory.videonote}"
|
||||
personal_gif = f"{personal_media}/{TypeDirectory.gif}"
|
||||
personal_document = f"{personal_media}/{TypeDirectory.files}"
|
||||
personal_voice = f"{personal_media}/{TypeDirectory.voice}"
|
||||
personal_youtube = f"{personal_media}/{TypeDirectory.youtube}"
|
||||
|
||||
|
||||
# Путь к папкам получения медиа
|
||||
received_avatar = f"{received_media}/{TypeDirectory.avatar}"
|
||||
received_photo = f"{received_media}/{TypeDirectory.photo}"
|
||||
received_video = f"{received_media}/{TypeDirectory.video}"
|
||||
received_videonote = f"{received_media}/{TypeDirectory.videonote}"
|
||||
received_gif = f"{received_media}/{TypeDirectory.gif}"
|
||||
received_document = f"{received_media}/{TypeDirectory.files}"
|
||||
received_voice = f"{received_media}/{TypeDirectory.voice}"
|
||||
received_youtube = f"{received_media}/{TypeDirectory.youtube}"
|
||||
71
BotLibrary/configs/list_ids.py
Normal file
71
BotLibrary/configs/list_ids.py
Normal file
@@ -0,0 +1,71 @@
|
||||
# BotLibrary/configs/list_ids.py
|
||||
# Получение id пользователей из базы данных
|
||||
|
||||
import os
|
||||
import json
|
||||
from loguru import logger
|
||||
|
||||
from .config import *
|
||||
from .important_path import ProjectPath
|
||||
|
||||
# Настройка экспорта модулей и логирования
|
||||
__all__ = ("load_ids_from_json", "save_ids_to_json", "DataID")
|
||||
default_file = ProjectPath.list_id
|
||||
log_type = "ListID"
|
||||
|
||||
|
||||
# Чтение данных из файла JSON с обработкой ошибок
|
||||
def load_ids_from_json(file=default_file, encoding=default_encod):
|
||||
try:
|
||||
# Проверка существования файла
|
||||
if not os.path.exists(file):
|
||||
# Если файл не существует, создаем его с пустым содержимым
|
||||
with open(file, "w", encoding=encoding) as f:
|
||||
json.dump({}, f, ensure_ascii=False, indent=4)
|
||||
|
||||
# Чтение данных из файла
|
||||
with open(file, "r", encoding=encoding) as f:
|
||||
return json.load(f)
|
||||
|
||||
except FileNotFoundError:
|
||||
(logger.bind(log_type=log_type, user="Файл id")
|
||||
.error(f"Файл {file} не найден!"))
|
||||
return {}
|
||||
|
||||
except json.JSONDecodeError:
|
||||
(logger.bind(log_type=log_type, user="Декодирование id")
|
||||
.error(f"Ошибка декодирования JSON в файле {file}"))
|
||||
return {}
|
||||
|
||||
except Exception as e:
|
||||
(logger.bind(log_type=log_type, user="Чтение id")
|
||||
.error(f"Произошла ошибка при чтении файла {file}: {e}"))
|
||||
return {}
|
||||
|
||||
|
||||
# Запись данных в файл JSON с обработкой ошибок
|
||||
def save_ids_to_json(file=default_file, encoding=default_encod, data=None):
|
||||
try:
|
||||
with open(file, "w", encoding=encoding) as f:
|
||||
json.dump(data, f, ensure_ascii=False, indent=4)
|
||||
|
||||
except Exception as e:
|
||||
(logger.bind(log_type=log_type, user="Запись id")
|
||||
.error(f"Произошла ошибка при записи в файл {file}: {e}"))
|
||||
|
||||
|
||||
# Класс для хранения данных из JSON
|
||||
class DataID:
|
||||
# Получение информации из списка важных айди, забанненых айди и общих
|
||||
data_list_id = load_ids_from_json(ProjectPath.list_id)
|
||||
data_user_data = load_ids_from_json(ProjectPath.user_info_file)
|
||||
|
||||
# Список забанненых пользователей
|
||||
ban_list = data_list_id.get("ban_list_ids", {})
|
||||
|
||||
# Список важных айди
|
||||
admins = data_list_id.get("important_adm_ids", {})
|
||||
groups = data_list_id.get("important_groups_ids", {})
|
||||
users = data_list_id.get("important_users_list_ids", {})
|
||||
channels = data_list_id.get("important_channel_ids", {})
|
||||
important = {**admins, **groups, **users, **channels}
|
||||
32
BotLibrary/configs/settings.py
Normal file
32
BotLibrary/configs/settings.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# BotLibrary/configs/settings.py
|
||||
# Список практически всех переменных проекта
|
||||
|
||||
from os import getenv
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Настройка экспорта модулей
|
||||
__all__ = ("BotEdit", "BotVariables", "bot_token", "api_key",
|
||||
"web_api_key", "important_id", "secret")
|
||||
|
||||
|
||||
# Класс с параметрами бота
|
||||
class BotEdit:
|
||||
name = "Первородная Жемчужина" # Описание имени бота
|
||||
description = ("Привет, мое имя - Эми! Я буду рада помочь вам "
|
||||
"посетить другие миры! Вместе!") # Описание бота
|
||||
short_description = "Привет, это описание! Как дела?" # Описание виджета бота
|
||||
|
||||
|
||||
# Важные параметры бота
|
||||
class BotVariables:
|
||||
language = "Python3-Aiogram"
|
||||
prefixs = ('$', '!', '.', '%', '&', ':', '|', '+', '-', '/', '~', '?')
|
||||
|
||||
|
||||
# Загружаем переменные из файла .env
|
||||
load_dotenv(".env")
|
||||
bot_token = getenv("main_bot_token")
|
||||
api_key = getenv("APIKey")
|
||||
web_api_key = getenv("WebAPIKey")
|
||||
important_id = getenv("important_id")
|
||||
secret = getenv("secret")
|
||||
Reference in New Issue
Block a user