Skip to content

Add multi-disc game grouping with download-all and .m3u playlists (#17) - #19

Open
caprado wants to merge 1 commit into
mainfrom
feature/multi-disc-grouping
Open

Add multi-disc game grouping with download-all and .m3u playlists (#17)#19
caprado wants to merge 1 commit into
mainfrom
feature/multi-disc-grouping

Conversation

@caprado

@caprado caprado commented Jul 16, 2026

Copy link
Copy Markdown
Owner

Closes #17

Multi disc games are stored as separate entries with no relationship between them. This adds a grouping layer that relates them, plus a new "Download all discs" button that fetches every disc and writes an .m3u playlist.

Grouping is done at DB build time zero changes to the core pipeline. disc is the only kind added today.

Backwards compatibility

  • Older clients auto wipe and re-download on the SCHEMA_VERSION bump.
  • The app feature detects the entry_groups table, so a catalog without grouping degrades instead of erroring.

Known limitation

The .m3u references each disc's completed file by basename, correct for the single-file disc image cases. Downloaded/Extracted multi-file discs downloads would need special format handling.

- Introduced a new grouping module with pluggable strategies for catalog entries.
- Added `EntryRef`, `Membership`, `GroupingStrategy`, `EntryGroup`, and `GroupMember` classes to define the grouping structure.
- Implemented a `DiscStrategy` to recognize multi-disc titles and derive stable keys.
- Created a build pass to bucket memberships and promote valid groups based on defined strategies.
- Added strategy discovery to load grouping plugins dynamically.
- Integrated grouping functionality into the existing build pipeline, allowing for the persistence of grouped entries.
- Updated database schema to support entry groups and their members.
- Enhanced the download service to handle group downloads and generate `.m3u` playlists for multi-disc sets.
- Added tests to ensure correct behavior of grouping logic and strategy recognition.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Download all discs and create .m3u playlist for multidisc games

1 participant