Rework Tagger fork into Curator movie-library manager (PySide6 GUI, pool index, ČSFD import)
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# 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 `<pool>/.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).
|
||||
Reference in New Issue
Block a user