Добавлено описание и документация для HVideoTool, включая функционал, требования, установку и запуск приложения для обнаружения цензуры на изображениях.

This commit is contained in:
Leonid Pershin
2026-06-06 15:11:53 +03:00
parent 10bf87aa47
commit 33f20fe681
28 changed files with 2256 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
"""Persist a handful of user choices to ~/HVideoTool/settings.json.
Slimmed down for the image-inspector tool: it remembers the detector, the model
path, the overlay threshold, and the last opened folder.
"""
from __future__ import annotations
import json
from pathlib import Path
from .config import AppConfig
_PATH = Path.home() / "HVideoTool" / "settings.json"
def _read() -> dict:
try:
return json.loads(_PATH.read_text(encoding="utf-8"))
except (OSError, ValueError):
return {}
def _write(data: dict) -> None:
_PATH.parent.mkdir(parents=True, exist_ok=True)
_PATH.write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
def apply(config: AppConfig) -> None:
"""Overlay persisted settings onto ``config`` (mutates it in place)."""
data = _read()
if data.get("detector"):
config.detector = data["detector"]
if "model_path" in data:
config.model_path = data["model_path"]
if "threshold" in data:
config.default_threshold = float(data["threshold"])
def save(config: AppConfig) -> None:
"""Persist the configurable settings, preserving other keys (e.g. last_dir)."""
data = _read()
data.update(
detector=config.detector,
model_path=config.model_path,
threshold=config.default_threshold,
)
_write(data)
def last_dir() -> str | None:
return _read().get("last_dir")
def set_last_dir(path: str) -> None:
data = _read()
data["last_dir"] = path
_write(data)