# Changelog Document all notable changes to the project, grouped by version and release date. ## Format Each version entry uses these sections (include only those that apply): - **Added** — new features - **Changed** — changes to existing functionality - **Fixed** — bug fixes - **Removed** — removed features - **Dependencies** — added, updated, or removed dependencies ## Rules - Follow semantic versioning: `MAJOR.MINOR.PATCH` - Newest version goes at the top - Always update this file before bumping the version in `pyproject.toml` - Document changes as they are made, not all at once at release time ## Unreleased ### Added - Fork of the former **Tagger** project as **Curator**, a movie-library manager. - **Pool** concept (single source of truth) with `Filmy` / `Seriály` folders and a configurable **Filmotéka** output folder, stored in the global config. - "Import movie" flow: pick a video, enter Title + ČSFD link, the file is copied into `pool/Filmy` as `Title.ext` (non-destructive) and indexed. - `File` now stores `title` and `csfd_link`. - New **PySide6** GUI reframed around the Filmotéka workflow (pool setup, import, tag filter sidebar, movie table, one-click Filmotéka generation), replacing the tkinter GUI as the entry point. - Seriály **copy-as-is mirror**: `pool/Seriály` is cloned 1:1 into the Filmotéka output as hardlinks (`HardlinkManager.mirror_as_is`), generated alongside the movie tree. - **Unified pool metadata index** (`pool_index.py`): the whole pool's metadata lives in a single `/.Curator.!index` JSON keyed by pool-relative path. `File` reads/writes the index when one is injected and otherwise keeps using per-file `.!tag` sidecars; `FileManager` uses the index for the pool. - **Configurable copy-as-is folders**: `copyasis_folders` in the global config (editable from the GUI) lists pool subfolders mirrored 1:1 during generation; `Seriály` is the default. Generalizes the previously hardcoded Seriály mirror. - Project `README.md` (overview, concepts, workflow, run/build instructions). - **ČSFD scraping** (`csfd.py`, ported from the Tagger devel branch): fetches movie data from a ČSFD link (JSON-LD + HTML parsing). `File.apply_csfd_tags` assigns Žánr / Rok / Země tags and caches the fetched data in the metadata. The GUI auto-fetches on import when a link is given and offers "Načíst tagy z ČSFD" for selected movies. - App startup injects `truststore` so HTTPS uses the OS certificate store — ČSFD fetching works behind corporate SSL inspection (where certifi's bundle lacks the proxy root CA). ### Fixed - `media_utils.add_video_resolution_tag` referenced `subprocess` without importing it. - ČSFD parsing updated for the current site HTML: year is read from JSON-LD `dateCreated`, and the origin line (now bullet-separated, no commas) is tokenized so country / year / duration are extracted correctly. ### Changed - All references to "Tagger" renamed to "Curator" (code, spec, config filenames `.Curator.!gtag` / `.Curator.!ftag`, tests). - `requires-python` narrowed to `>=3.14,<3.15` (PySide6 compatibility). ### Dependencies - Added `pyside6` (GUI), `requests` + `beautifulsoup4` (ČSFD scraping), `truststore` (OS cert store for HTTPS). Declared `python-dotenv`, `pillow`, `loguru` (already imported by the inherited code).