This commit is contained in:
Javanaut
2026-06-21 12:09:04 +02:00
parent 3ac139a2dc
commit 20a9bb36b8
5 changed files with 132 additions and 100 deletions

View File

@@ -99,101 +99,4 @@ TMDB-backed metadata enrichment requires `TMDB_API_KEY` to be set in the environ
## Version History
### 0.4.3
- styled ASS subtitle sources with embedded font attachments are now detected explicitly, keep MKV output, preserve current source font attachments, and reject incompatible sidecar subtitle import
- attachment descriptors are now treated as source-runtime data instead of pattern schema data, so pattern persistence skips them and source-vs-pattern validation ignores them
- inspect differences no longer report planned changes for attachment filename/count drift while still showing attachment streams in the stream table
### 0.4.2
- pattern details now show an inline `Show: <quality>` hint next to the quality field when the pattern itself has no stored quality but the selected show does
- inspect stream tables now show attachment format labels like `TTF` in the codec column and keep attachment language cells blank instead of showing an undefined language
- ffmpeg damaged-MP3 diagnostics now recognize additional corruption lines such as `invalid new backstep`, keeping them grouped under the `warn-corrupt-mpeg-audio` review summary
### 0.4.1
- `convert` now supports `--copy-video` and `--copy-audio` to keep the selected stream type in copy mode without applying the corresponding reencode flags, filters, or formatting options
- ffmpeg conversions now monitor diagnostics while the process is running, retry unset AVI packet timestamps once with `-fflags +genpts`, and stop early when a file should be skipped instead of waiting for the full job to finish
- end-of-run convert summaries now list only ffmpeg findings that still require review, including named remedy identifiers such as `warn-corrupt-mpeg-audio`
- `upgrade` now finishes by reporting the installed FFX version together with the active bundle branch
### 0.3.1
- debug mode screen titles now append the active Textual screen class name, making screen-specific troubleshooting easier during inspect and edit flows
- `--cut` again works as a combined flag/option: omitted disables cutting, bare `--cut` applies the default `60,180`, and explicit duration or `START,DURATION` values stay supported
- H.265 unmux commands no longer force an invalid `-f h265` output format, keeping ffmpeg copy extraction aligned with the required Annex B bitstream filter
- H.264 encoding now falls back from `libx264` to `libopenh264` with a warning when needed, and the test fixtures use the same encoder fallback so the suite remains portable across ffmpeg builds
### 0.3.0
- inspect and edit screens now refresh nested track and pattern changes more reliably, with inspect-mode tables aligned to the target pattern view shown in the differences pane
- metadata editing got a follow-up polish pass with clearer ffmpeg notifications, a shared in-screen log pane, safer apply/reload handling, and expanded cleanup and normalization coverage
- track and asset probing recognize additional codecs, and the modern test suite now covers more metadata-editor, change-set, screen-state, and asset-probe behavior
- Textual now requires version `8.0` or newer to match the UI APIs used by the current screens
### 0.2.6
- DB-free `ffx edit` workflow for in-place metadata editing via temporary-file rewrite
- inspect and edit workflows split into dedicated Textual screens with shared media-workflow support
- Textual tables and row actions now separate raw data from rendered labels to avoid markup leaking into stored metadata
- responsive screen layout pass, `Esc` back handling, sortable show/inspect tables, and improved edit-screen notifications/toggles
- application-wide UTF-8 i18n catalogs with language precedence from CLI over config over system over German default
- metadata normalization extended for localized subtitle titles, ISO language cleanup, and smarter track editor language/title helpers
### 0.2.5
- show-level quality and notes fields
- pattern-over-show-over-default season-shift resolution with dynamic DB migration loading
- migration prompt now reports the upgrade path and creates an in-place DB backup before applying schema changes
- `upgrade --branch <name>` now fetches remote-only branches before switching
- `unmux` now applies season shifting to subtitle output filenames
- convert now keeps DB-defined target subtitle dispositions authoritative over sidecar filename disposition flags when a pattern definition exists
- focused modern tests added around migrations, unmux, upgrade, and subtitle-disposition import precedence
### 0.2.4
- lightweight CLI commands now stay import-light via lazy runtime loading
- setup/config templating moved to `assets/ffx.json.j2`
- aligned two-step local setup wrappers: `ffx setup` and `ffx configure_workstation`
- combined `ffprobe` payload reuse in `FileProperties`
- configurable crop-detect sampling plus per-process crop result caching
- single-query controller accessors and conditional DB schema bootstrap
- shared screen bootstrap/controller wiring for large detail screens
- configurable default season/episode digit lengths
- digit-aware `rename` and padded `unmux` filename markers
### 0.2.3
- PyPI packaging
- output filename templating
- season shifting
- DB versioning
### 0.2.2
- CLI overrides
### 0.2.1
- signature handling
- tag cleanup
- bugfixes and refactoring
### 0.2.0
- tests
- config file
### 0.1.3
- subtitle file imports
### 0.1.2
- bugfixes
### 0.1.1
- bugfixes
- TMDB show identification
See the [version history](docs/history.rst) for release notes.

123
docs/history.rst Normal file
View File

@@ -0,0 +1,123 @@
Version History
===============
0.4.4
-----
- External subtitle imports can now match prefixless sidecar files against the source basename, choose their extension, and confirm partial substitutions.
- Unmux now creates missing output directories with confirmation or the new ``--yes`` option.
- Project documentation is now built with Sphinx and includes installation, usage, development, file-format, and API references.
0.4.3
-----
- Styled ASS subtitle sources with embedded font attachments are now detected explicitly, keep MKV output, preserve current source font attachments, and reject incompatible sidecar subtitle import.
- Attachment descriptors are now treated as source-runtime data instead of pattern schema data, so pattern persistence skips them and source-vs-pattern validation ignores them.
- Inspect differences no longer report planned changes for attachment filename/count drift while still showing attachment streams in the stream table.
0.4.2
-----
- Pattern details now show an inline ``Show: <quality>`` hint next to the quality field when the pattern itself has no stored quality but the selected show does.
- Inspect stream tables now show attachment format labels like ``TTF`` in the codec column and keep attachment language cells blank instead of showing an undefined language.
- FFmpeg damaged-MP3 diagnostics now recognize additional corruption lines such as ``invalid new backstep``, keeping them grouped under the ``warn-corrupt-mpeg-audio`` review summary.
0.4.1
-----
- ``convert`` now supports ``--copy-video`` and ``--copy-audio`` to keep the selected stream type in copy mode without applying the corresponding reencode flags, filters, or formatting options.
- FFmpeg conversions now monitor diagnostics while the process is running, retry unset AVI packet timestamps once with ``-fflags +genpts``, and stop early when a file should be skipped instead of waiting for the full job to finish.
- End-of-run convert summaries now list only FFmpeg findings that still require review, including named remedy identifiers such as ``warn-corrupt-mpeg-audio``.
- ``upgrade`` now finishes by reporting the installed FFX version together with the active bundle branch.
0.3.1
-----
- Debug mode screen titles now append the active Textual screen class name, making screen-specific troubleshooting easier during inspect and edit flows.
- ``--cut`` again works as a combined flag/option: omitted disables cutting, bare ``--cut`` applies the default ``60,180``, and explicit duration or ``START,DURATION`` values stay supported.
- H.265 unmux commands no longer force an invalid ``-f h265`` output format, keeping FFmpeg copy extraction aligned with the required Annex B bitstream filter.
- H.264 encoding now falls back from ``libx264`` to ``libopenh264`` with a warning when needed, and the test fixtures use the same encoder fallback so the suite remains portable across FFmpeg builds.
0.3.0
-----
- Inspect and edit screens now refresh nested track and pattern changes more reliably, with inspect-mode tables aligned to the target pattern view shown in the differences pane.
- Metadata editing got a follow-up polish pass with clearer FFmpeg notifications, a shared in-screen log pane, safer apply/reload handling, and expanded cleanup and normalization coverage.
- Track and asset probing recognize additional codecs, and the modern test suite now covers more metadata-editor, change-set, screen-state, and asset-probe behavior.
- Textual now requires version ``8.0`` or newer to match the UI APIs used by the current screens.
0.2.6
-----
- DB-free ``ffx edit`` workflow for in-place metadata editing via temporary-file rewrite.
- Inspect and edit workflows split into dedicated Textual screens with shared media-workflow support.
- Textual tables and row actions now separate raw data from rendered labels to avoid markup leaking into stored metadata.
- Responsive screen layout pass, ``Esc`` back handling, sortable show/inspect tables, and improved edit-screen notifications/toggles.
- Application-wide UTF-8 i18n catalogs with language precedence from CLI over config over system over German default.
- Metadata normalization extended for localized subtitle titles, ISO language cleanup, and smarter track editor language/title helpers.
0.2.5
-----
- Show-level quality and notes fields.
- Pattern-over-show-over-default season-shift resolution with dynamic DB migration loading.
- Migration prompt now reports the upgrade path and creates an in-place DB backup before applying schema changes.
- ``upgrade --branch <name>`` now fetches remote-only branches before switching.
- ``unmux`` now applies season shifting to subtitle output filenames.
- Convert now keeps DB-defined target subtitle dispositions authoritative over sidecar filename disposition flags when a pattern definition exists.
- Focused modern tests added around migrations, unmux, upgrade, and subtitle-disposition import precedence.
0.2.4
-----
- Lightweight CLI commands now stay import-light via lazy runtime loading.
- Setup/config templating moved to ``assets/ffx.json.j2``.
- Aligned two-step local setup wrappers: ``ffx setup`` and ``ffx configure_workstation``.
- Combined ``ffprobe`` payload reuse in ``FileProperties``.
- Configurable crop-detect sampling plus per-process crop result caching.
- Single-query controller accessors and conditional DB schema bootstrap.
- Shared screen bootstrap/controller wiring for large detail screens.
- Configurable default season/episode digit lengths.
- Digit-aware ``rename`` and padded ``unmux`` filename markers.
0.2.3
-----
- PyPI packaging.
- Output filename templating.
- Season shifting.
- DB versioning.
0.2.2
-----
- CLI overrides.
0.2.1
-----
- Signature handling.
- Tag cleanup.
- Bugfixes and refactoring.
0.2.0
-----
- Tests.
- Config file.
0.1.3
-----
- Subtitle file imports.
0.1.2
-----
- Bugfixes.
0.1.1
-----
- Bugfixes.
- TMDB show identification.

View File

@@ -17,6 +17,12 @@ utility modules.
usage
file_formats
.. toctree::
:maxdepth: 1
:caption: Release Notes
history
.. toctree::
:maxdepth: 2
:caption: Contributor Guide

View File

@@ -1,7 +1,7 @@
[project]
name = "ffx"
description = "FFX recoding and metadata managing tool"
version = "0.4.3"
version = "0.4.4"
license = {file = "LICENSE.md"}
dependencies = [
"requests",

View File

@@ -1,4 +1,4 @@
VERSION='0.4.3'
VERSION='0.4.4'
DATABASE_VERSION = 3
DEFAULT_QUALITY = 32