Skip to content

Support filtering multi-film events by included films' credits - #145

Merged
alistairjcbrown merged 1 commit into
mainfrom
claude/magical-knuth-co302b
Oct 12, 2026
Merged

alistairjcbrown merged 1 commit into
mainfrom
claude/magical-knuth-co302b

Conversation

@alistairjcbrown

Copy link
Copy Markdown
Member

Summary

Adds support for filtering double bills, marathons and shorts programmes by the genres, directors and cast of the films they screen, rather than only by their own (usually empty) metadata.

Changes

  • New utility: getMovieAndIncluded() in src/utils/get-movie-and-included.ts — reads a film's own genres/directors/actors plus those of any films it screens (includedMovies). For unmatched events (those with no single matching film), drops the "Uncategorised" placeholder genre once the included films supply real genres.

  • Filter integration: Updated genresFilter and directorsFilter (people filter) to use getMovieAndIncluded() when checking for matches, so a double bill matches a Horror filter if any of its films are horror.

  • Genre pages & overlay: Updated getGenreMovies() and GenreFilterSection to count included films' genres when determining which films belong to a genre and how many screenings each genre has.

  • Documentation: Added "Multi-film Events" section to CLAUDE.md explaining the design.

  • Tests: Comprehensive test suite covering unmatched events, placeholder genre handling, and filter matching across included films.

Implementation Details

  • Uses a Set to deduplicate IDs across included films and avoid allocating new arrays when unnecessary (returns the movie's own array untouched if there's nothing to add).
  • For unmatched events with genres, replaces the placeholder entirely with included films' genres; for matched events, unions them. Unmatched events with no included film genres retain "Uncategorised".
  • All multi-select filters read "or" semantics — any one film matching is enough for the event to match.

https://claude.ai/code/session_0144SAfC3w2jNSBYcX6H84Po

…reen

A double bill or shorts programme matches no single film, so it carried no
genres or credits of its own and never answered a genre, director or cast
filter. Read an event as the union of what it screens, in the filters, the
genre pages and the overlay's genre counts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0144SAfC3w2jNSBYcX6H84Po
@alistairjcbrown
alistairjcbrown merged commit 4aee419 into main Oct 12, 2026
2 checks passed
@alistairjcbrown
alistairjcbrown deleted the claude/magical-knuth-co302b branch October 12, 2026 12:03
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.

2 participants