File size: 2,177 Bytes
c0426da
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1e931f8
 
 
 
 
 
 
 
 
 
c0426da
 
da164cc
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import json
import os
import logging
from typing import Dict, Any, Optional

logger = logging.getLogger(__name__)
CONFIG_FILE = "guild_configs.json"

def _load_all_configs() -> Dict[str, Dict[str, Any]]:
    """Odczytuje konfiguracje wszystkich serwerów z pliku."""
    if os.path.exists(CONFIG_FILE):
        try:
            with open(CONFIG_FILE, "r", encoding="utf-8") as f:
                return json.load(f)
        except Exception as e:
            logger.error(f"Błąd podczas odczytu pliku konfiguracji: {e}")
    return {}

def _save_all_configs(configs: Dict[str, Dict[str, Any]]):
    """Zapisuje konfiguracje na dysk."""
    try:
        with open(CONFIG_FILE, "w", encoding="utf-8") as f:
            json.dump(configs, f, indent=4, ensure_ascii=False)
    except Exception as e:
        logger.error(f"Błąd podczas zapisu pliku konfiguracji: {e}")

def save_guild_config(guild_id: str, config_data: Dict[str, Any]):
    """Zapisuje kompletną konfigurację dla danego serwera Discord."""
    configs = _load_all_configs()
    configs[guild_id] = config_data
    _save_all_configs(configs)

def get_active_text_model(guild_id: str) -> Optional[str]:
    """
    Zwraca wybrany model dla serwera. 
    Zwraca None, jeśli konfiguracja nie istnieje lub model jest ustawiony na 'none'.
    """
    configs = _load_all_configs()
    guild_config = configs.get(guild_id, {})
    model = guild_config.get("active_text_model", "none")
    
    if not model or model.lower() == "none":
        return None
    return model

def get_active_image_model(guild_id: str) -> Optional[str]:
    """Zwraca aktywny model obrazu dla serwera. Jeśli brak konfiguracji, zwraca None."""
    configs = _load_all_configs()
    guild_config = configs.get(guild_id, {})
    model = guild_config.get("active_image_model", "none")
    
    if not model or model.lower() == "none":
        return None
    return model

def is_multi_model_enabled(guild_id: str) -> bool:
    """Sprawdza, czy dla danej gildii włączony jest tryb wielomodelowy."""
    configs = _load_all_configs()
    guild_config = configs.get(guild_id, {})
    return guild_config.get("multi_model_workflow", False)