# utils/helpers.py

import os
import json
import shutil
from config import (
    ROOT_DIR,
    SETTINGS,
    SETTINGS_FILE,
    OUTPUT_DIR
)


# ------------------- Работа с файлом настроек -------------------
def load_settings():
    if os.path.exists(SETTINGS_FILE):
        try:
            with open(SETTINGS_FILE, "r", encoding="utf-8") as f:
                data = json.load(f)
                SETTINGS.update(data)
        except Exception:
            print(
                "[-] Не удалось загрузить настройки из файла, используются дефолтные.")


def save_settings():
    os.makedirs(ROOT_DIR, exist_ok=True)
    try:
        with open(SETTINGS_FILE, "w", encoding="utf-8") as f:
            json.dump(SETTINGS, f, indent=4)
    except Exception as e:
        print(f"[-] Ошибка при сохранении настроек: {e}")


def get_media_types():
    """
    Возвращает список тегов для поиска в зависимости от SETTINGS['search_type']
    """
    search_type = SETTINGS.get("search_type", "both")
    if search_type == "img":
        return ["img"]
    elif search_type == "video":
        return ["video"]
    else:
        return ["img", "video"]


def clear_trash():
    """
    Очищает каталог _trash в OUTPUT_DIR
    """
    trash_dir = os.path.join(OUTPUT_DIR, "_trash")
    if os.path.exists(trash_dir):
        shutil.rmtree(trash_dir)
    os.makedirs(trash_dir, exist_ok=True)
    print(f"[+] Каталог _trash очищен")


def clear_short():
    """
    Очищает каталог _short в OUTPUT_DIR
    """
    short_dir = os.path.join(OUTPUT_DIR, "_short")
    if os.path.exists(short_dir):
        shutil.rmtree(short_dir)
    os.makedirs(short_dir, exist_ok=True)
    print(f"[+] Каталог _short очищен")


def clear_images():
    """
    Очищает каталог images в OUTPUT_DIR
    """
    img_dir = os.path.join(OUTPUT_DIR, "images")
    if os.path.exists(img_dir):
        shutil.rmtree(img_dir)
    os.makedirs(img_dir, exist_ok=True)
    print(f"[+] Каталог images очищен")


def clear_video():
    """
    Очищает каталог video в OUTPUT_DIR
    """
    video_dir = os.path.join(OUTPUT_DIR, "video")
    if os.path.exists(video_dir):
        shutil.rmtree(video_dir)
    os.makedirs(video_dir, exist_ok=True)
    print(f"[+] Каталог video очищен")
