3.3 KiB
3.3 KiB
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ályfolders 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/FilmyasTitle.ext(non-destructive) and indexed. Filenow storestitleandcsfd_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ályis 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<pool>/.Curator.!indexJSON keyed by pool-relative path.Filereads/writes the index when one is injected and otherwise keeps using per-file.!tagsidecars;FileManageruses the index for the pool. - Configurable copy-as-is folders:
copyasis_foldersin the global config (editable from the GUI) lists pool subfolders mirrored 1:1 during generation;Seriályis 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_tagsassigns Žá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
truststoreso 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_tagreferencedsubprocesswithout 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-pythonnarrowed to>=3.14,<3.15(PySide6 compatibility).
Dependencies
- Added
pyside6(GUI),requests+beautifulsoup4(ČSFD scraping),truststore(OS cert store for HTTPS). Declaredpython-dotenv,pillow,loguru(already imported by the inherited code).