Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions common/known-removable-phrases.js
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,7 @@ const knownRemovablePhrases = [
"A FESTIVE FEAST",
"a film by Akinola Davies Jr.",
"a film by David Kew",
"A Focus on Gabriel Abrantes:",
"a Screening and Talk of",
"Academy Awards Best Picture 2025:",
"Academy Awards Best Picture 2026:",
Expand Down
1 change: 1 addition & 0 deletions common/normalize-title.js
Original file line number Diff line number Diff line change
Expand Up @@ -628,6 +628,7 @@ function normalizeTitle(title, options) {
[/^Charak \(Hindi\)$/i, "Charak: Fair of Faith"],
["CLOSING Nuit de Chien", "Nuit de Chien"],
[/ search 4 square$/i, "search for squarepants"],
["John & Yoko in NYC", "John & Yoko Live in NYC"],
// Variant families collapsed from known-removable-phrases.js
// Each pattern covers multiple near-identical string entries that shared a common structure
[/dog[- ]?friendly(?:\s+screening)?[:\s]*/i, ""],
Expand Down
104 changes: 104 additions & 0 deletions common/tests/test-titles.json
Original file line number Diff line number Diff line change
Expand Up @@ -60898,5 +60898,109 @@
{
"input": "Movie screening of PHIR SE TANHA",
"output": "phir se tanha"
},
{
"input": "A Focus on Gabriel Abrantes: Ratzo Presents...",
"output": "ratzo presents"
},
{
"input": "Experiments in Film: A Focus on Gabriel Abrantes: Diamantino",
"output": "diamantino"
},
{
"input": "OCDF: Star Spangled to Death",
"output": "star spangled to death"
},
{
"input": "Queer East Festival: 3670",
"output": "3670"
},
{
"input": "Queer East Festival: A Useful Ghost",
"output": "a useful ghost"
},
{
"input": "Queer East Festival: Girlfriends + ScreenTalk",
"output": "girlfriends"
},
{
"input": "Queer East Festival: Mari Terashima: Exquisite Tastes",
"output": "mari terashima exquisite tastes"
},
{
"input": "Queer East Festival: Queer as Punk",
"output": "queer as punk"
},
{
"input": "Queer East Festival: The Outsiders",
"output": "the outsiders"
},
{
"input": "Relaxed Screening: The Last Blossom",
"output": "last blossom"
},
{
"input": "Power to the People: John & Yoko in NYC",
"output": "power to the people john yoko live in nyc"
},
{
"input": "The Good Boy (2026)",
"output": "good boy (2026)"
},
{
"input": "Networking Event: Entertainment Professionals in London",
"output": "networking event entertainment professionals in london"
},
{
"input": "Speed Networking for Film, TV, Music, and Media at The Refinery CityPoint",
"output": "speed networking for film tv music media at the refinery citypoint"
},
{
"input": "Parent & Baby: Project Hail Mary",
"output": "project hail mary"
},
{
"input": "JME Presents: Comment Hater",
"output": "comment hater"
},
{
"input": "Everyone to Kenmure Street",
"output": "everyone to kenmure street"
},
{
"input": "hololive English 3rd Concert -All for One- Screening",
"output": "hololive english 3rd concert"
},
{
"input": "Kinaesthesia + Q&A",
"output": "kinaesthesia"
},
{
"input": "The Drama Cinema Hangout",
"output": "drama cinema hangout"
},
{
"input": "BAR TRASH: Closing Night: THE DAY OF THE BEAST",
"output": "day of the beast"
},
{
"input": "Branded To Kill",
"output": "branded to kill"
},
{
"input": "Jo Jo Dancer, Your Life Is Calling",
"output": "jo jo dancer your life is calling"
},
{
"input": "Sullivan's Travels",
"output": "sullivans travels"
},
{
"input": "The Last Detail",
"output": "last detail"
},
{
"input": "1000 Londoners",
"output": "1000 londoners"
}
]