Normalize transcription naming

This commit is contained in:
Thales Maciel 2026-02-24 11:04:02 -03:00
parent 3b7fa236b4
commit b74aaaa1c4
No known key found for this signature in database
GPG key ID: 33112E6833C34679
5 changed files with 33 additions and 29 deletions

View file

@ -12,7 +12,7 @@ def _parse_bool(val: str) -> bool:
class Config:
daemon: dict = field(default_factory=lambda: {"hotkey": "Cmd+m"})
recording: dict = field(default_factory=lambda: {"input": ""})
transcribing: dict = field(default_factory=lambda: {"model": "base", "device": "cpu"})
transcription: dict = field(default_factory=lambda: {"model": "base", "device": "cpu"})
injection: dict = field(default_factory=lambda: {"backend": "clipboard"})
ai_cleanup: dict = field(
default_factory=lambda: {
@ -36,15 +36,17 @@ def load(path: str | None) -> Config:
p = Path(path) if path else default_path()
if p.exists():
data = json.loads(p.read_text(encoding="utf-8"))
if any(k in data for k in ("daemon", "recording", "transcribing", "injection", "ai_cleanup", "ai")):
if any(k in data for k in ("daemon", "recording", "transcription", "transcribing", "injection", "ai_cleanup", "ai")):
for k, v in data.items():
if hasattr(cfg, k):
setattr(cfg, k, v)
if "transcribing" in data and "transcription" not in data:
cfg.transcription = data.get("transcribing", cfg.transcription)
else:
cfg.daemon["hotkey"] = data.get("hotkey", cfg.daemon["hotkey"])
cfg.recording["input"] = data.get("ffmpeg_input", cfg.recording["input"])
cfg.transcribing["model"] = data.get("whisper_model", cfg.transcribing["model"])
cfg.transcribing["device"] = data.get("whisper_device", cfg.transcribing["device"])
cfg.transcription["model"] = data.get("whisper_model", cfg.transcription["model"])
cfg.transcription["device"] = data.get("whisper_device", cfg.transcription["device"])
cfg.injection["backend"] = data.get("injection_backend", cfg.injection["backend"])
cfg.ai_cleanup["enabled"] = data.get("ai_enabled", cfg.ai_cleanup["enabled"])
cfg.ai_cleanup["model"] = data.get("ai_model", cfg.ai_cleanup["model"])
@ -56,8 +58,8 @@ def load(path: str | None) -> Config:
cfg.daemon = {"hotkey": "Cmd+m"}
if not isinstance(cfg.recording, dict):
cfg.recording = {"input": ""}
if not isinstance(cfg.transcribing, dict):
cfg.transcribing = {"model": "base", "device": "cpu"}
if not isinstance(cfg.transcription, dict):
cfg.transcription = {"model": "base", "device": "cpu"}
if not isinstance(cfg.injection, dict):
cfg.injection = {"backend": "clipboard"}
if not isinstance(cfg.ai_cleanup, dict):
@ -68,19 +70,21 @@ def load(path: str | None) -> Config:
"base_url": "http://localhost:11434",
"api_key": "",
}
if isinstance(getattr(cfg, "ai", None), dict) and not cfg.ai_cleanup:
cfg.ai_cleanup = cfg.ai
if hasattr(cfg, "ai"):
try:
delattr(cfg, "ai")
except Exception:
pass
legacy_ai = getattr(cfg, "ai", None)
if isinstance(legacy_ai, dict) and not cfg.ai_cleanup:
cfg.ai_cleanup = legacy_ai
try:
delattr(cfg, "ai")
except AttributeError:
pass
except Exception:
pass
# env overrides
if os.getenv("WHISPER_MODEL"):
cfg.transcribing["model"] = os.environ["WHISPER_MODEL"]
cfg.transcription["model"] = os.environ["WHISPER_MODEL"]
if os.getenv("WHISPER_DEVICE"):
cfg.transcribing["device"] = os.environ["WHISPER_DEVICE"]
cfg.transcription["device"] = os.environ["WHISPER_DEVICE"]
if os.getenv("WHISPER_FFMPEG_IN"):
cfg.recording["input"] = os.environ["WHISPER_FFMPEG_IN"]