init commit
This commit is contained in:
55
.history/config_20250928085321.py
Normal file
55
.history/config_20250928085321.py
Normal file
@@ -0,0 +1,55 @@
|
||||
import os
|
||||
import json
|
||||
|
||||
class Config:
|
||||
"""Класс для управления конфигурацией приложения"""
|
||||
|
||||
DEFAULT_CONFIG = {
|
||||
"output_directory": "downloads",
|
||||
"video_quality": "best",
|
||||
"audio_format": "mp3",
|
||||
"video_format": "mp4",
|
||||
"create_subdirs": True,
|
||||
"add_metadata": True,
|
||||
"subtitle_languages": ["ru", "en"],
|
||||
"download_subtitles": False
|
||||
}
|
||||
|
||||
def __init__(self, config_file="config.json"):
|
||||
self.config_file = config_file
|
||||
self.config = self.load_config()
|
||||
|
||||
def load_config(self):
|
||||
"""Загружает конфигурацию из файла или создает стандартную"""
|
||||
if os.path.exists(self.config_file):
|
||||
try:
|
||||
with open(self.config_file, 'r', encoding='utf-8') as f:
|
||||
return {**self.DEFAULT_CONFIG, **json.load(f)}
|
||||
except (json.JSONDecodeError, IOError):
|
||||
print(f"Ошибка чтения конфигурации из {self.config_file}. Используется стандартная конфигурация.")
|
||||
|
||||
return self.DEFAULT_CONFIG.copy()
|
||||
|
||||
def save_config(self):
|
||||
"""Сохраняет текущую конфигурацию в файл"""
|
||||
try:
|
||||
with open(self.config_file, 'w', encoding='utf-8') as f:
|
||||
json.dump(self.config, f, indent=4, ensure_ascii=False)
|
||||
except IOError as e:
|
||||
print(f"Ошибка сохранения конфигурации: {e}")
|
||||
|
||||
def get(self, key, default=None):
|
||||
"""Получает значение конфигурации"""
|
||||
return self.config.get(key, default)
|
||||
|
||||
def set(self, key, value):
|
||||
"""Устанавливает значение конфигурации"""
|
||||
self.config[key] = value
|
||||
|
||||
def create_output_directory(self):
|
||||
"""Создает папку для загрузки, если она не существует"""
|
||||
output_dir = self.get("output_directory", "downloads")
|
||||
if not os.path.exists(output_dir):
|
||||
os.makedirs(output_dir)
|
||||
print(f"Создана папка для загрузок: {output_dir}")
|
||||
return output_dir
|
||||
Reference in New Issue
Block a user