Skip to content

Add artist-based library grouping and configurable ordering (alphabet/age/random)#18

Draft
Copilot wants to merge 5 commits into
masterfrom
copilot/add-filtering-options
Draft

Add artist-based library grouping and configurable ordering (alphabet/age/random)#18
Copilot wants to merge 5 commits into
masterfrom
copilot/add-filtering-options

Conversation

Copilot AI commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

This change extends library filtering/sorting so users can browse by artist as well as album, and switch group ordering between alphabetic, age-based, and random. It also changes album song listing from title-based sorting to track-order-first behavior.

  • Library model: grouping + ordering modes

    • Added Library modes:
      • group_mode: album | artist
      • order_mode: alphabet | age | random
    • Added mode setters and centralized rebuild logic so rendering/search stay consistent across mode changes.
  • Metadata-aware ordering

    • Added metadata extraction for:
      • artist (TPE1, artist, etc.)
      • track number (TRCK, tracknumber, etc.)
      • year/date (TDRC, TYER, etc.)
    • Album groups now render songs by track number (fallback to scan/index order), not by alphabetical title.
    • Age ordering sorts groups by earliest available year; unknown-year groups are placed after known-year groups.
  • Filtering behavior

    • Search now matches against song title + album + artist.
    • Group headers are included when either the header or any contained song matches.
  • UI controls and layout

    • Added compact top-bar controls in Library view:
      • By album / By artist
      • A->Z / By age / Random
    • Reflowed top-row rects so new controls and search box do not overlap existing elements.
  • Docs/tests updates

    • Updated README feature bullets for artist filtering/grouping and order modes.
    • Added focused unit tests for:
      • grouping by artist + artist-name filtering
      • age-based group ordering
    • Updated existing render expectations to include enriched song metadata fields used by search/grouping.
# New Library API surface used by UI:
lib.set_group_mode("artist")      # or "album"
lib.set_order_mode("age")         # "alphabet" | "age" | "random"
lib.set_search("artist b")        # matches artist/album/song

Copilot AI linked an issue Apr 15, 2026 that may be closed by this pull request
Copilot AI changed the title [WIP] Add filtering by artist name and custom album sorting Add artist-based library grouping and configurable ordering (alphabet/age/random) Apr 15, 2026
Copilot finished work on behalf of JP1Q April 15, 2026 16:35
Copilot AI requested a review from JP1Q April 15, 2026 16:35
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.

Filtering

2 participants