Skip to content

Add semantic Letterboxd discovery builders - #3388

Merged
YozoraXCII merged 4 commits into
Kometa-Team:nightlyfrom
antwanchild:letterboxd-crap
Jul 21, 2026
Merged

Add semantic Letterboxd discovery builders#3388
YozoraXCII merged 4 commits into
Kometa-Team:nightlyfrom
antwanchild:letterboxd-crap

Conversation

@antwanchild

@antwanchild antwanchild commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

What type of PR is this?

  • Bug Fix (non-breaking change which fixes an issue)
  • Feature/Tweak (non-breaking change which adds new functionality or enhances existing functionality)
  • Breaking Change (fix or feature that would break any existing functionality for users)
  • Documentation Update
  • Chore (maintenance, dependency bumps, housekeeping - no functional change)
  • Other

Description

Adds semantic Letterboxd builders for discovery and filmography pages instead of presenting those pages as letterboxd_list inputs. Each builder accepts the relevant Letterboxd slug, constructs the canonical page URL, and then reuses the existing extraction, filtering, pagination, caching, and TMDb mapping path.

Builder mapping

Letterboxd context Builder Source path → accepted value
Actor, director, writer, casting, editor, cinematography, composer letterboxd_crew /actor/marlon-brando/role: actor, person: marlon-brando
Studio letterboxd_studio /studio/a24/a24
Country letterboxd_country /films/country/usa/usa
Language letterboxd_language /films/language/english/english
Genre letterboxd_genre /films/genre/crime/crime
Theme letterboxd_theme /films/theme/crime-drugs-and-gangsters/crime-drugs-and-gangsters
Similar films letterboxd_similar /film/the-godfather/similar/the-godfather
Film collection letterboxd_collection /films/in/beetlejuice-collection-2/beetlejuice-collection-2

Examples

collections:
  Marlon Brando:
    letterboxd_crew:
      role: actor
      person: marlon-brando

  A24:
    letterboxd_studio: a24

  A24 by Release (object form):
    letterboxd_studio:
      studio: a24
      sort_by: release_date_newest

  Crime Films:
    letterboxd_genre:
      genre: crime
      limit: 20

  Similar to The Godfather:
    letterboxd_similar: the-godfather

The string form accepts the slug directly. The object form uses the builder's named slug attribute and supports limit and year; all builders except letterboxd_similar also support sort_by. Validation rejects unsupported crew roles, attributes, and full URLs where a slug is expected.

Testing

Validation Result
Letterboxd and collection-schema tests 88 passed
Full pytest suite 818 passed
Black Passed
JSON parsing and git diff --check Passed

Related Issues [optional]

  • Related Issue #
  • Closes #

Have you updated the Documentation to reflect changes (if necessary)?

  • Yes
  • No
  • Not Applicable

Have you updated the JSON Schema files (if necessary)?

  • Yes
  • No
  • Not Applicable

Have you updated the CHANGELOG.md?

  • Yes
  • No

@YozoraXCII

YozoraXCII commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

For a lot of the examples you've provided, they aren't really letterboxd_list, they would be new builders like letterboxd_actor, letterboxd_studio letterboxd_genre.

for the cast/crew ones specifically, you could maybe do something like:

letterboxd_crew:
  role: actor
  person: marlon-brando
letterboxd_crew:
  role: director
  person: steven-spielberg

@antwanchild

antwanchild commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

For a lot of the examples you've provided, they aren't really letterboxd_list, they would be new builders like letterboxd_actor, letterboxd_studio letterboxd_genre.

for the cast/crew ones specifically, you could maybe do something like:

letterboxd_crew:
  role: actor
  person: marlon-brando
letterboxd_crew:
 role: director
 person: steven-spielberg

good Idea, side note do you know why the validate is failing?

@YozoraXCII

Copy link
Copy Markdown
Contributor

For a lot of the examples you've provided, they aren't really letterboxd_list, they would be new builders like letterboxd_actor, letterboxd_studio letterboxd_genre.
for the cast/crew ones specifically, you could maybe do something like:

letterboxd_crew:
  role: actor
  person: marlon-brando
letterboxd_crew:
 role: director
 person: steven-spielberg

good Idea, side note do you know why the valitdate is failing?

Seems related to the reason we had to revert the checkout v7 requirement, perhaps they've added enforcement on v6 too - @badja-dev thoughts?

@antwanchild antwanchild changed the title Restore Letterboxd filmography and similar-page list support Add semantic Letterboxd discovery builders Jul 20, 2026
Comment thread docs/files/builders/letterboxd/discovery.md Outdated
@badja-dev

Copy link
Copy Markdown
Member

They have backported the stupid v7 rule to v6
actions/checkout#2527
Take this to discord please, may need Soh

@YozoraXCII
YozoraXCII merged commit 76de7b1 into Kometa-Team:nightly Jul 21, 2026
15 of 16 checks passed
@antwanchild
antwanchild deleted the letterboxd-crap branch July 21, 2026 16:16
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.

3 participants