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
3 changes: 3 additions & 0 deletions common/known-removable-phrases.js
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ const knownRemovablePhrases = [
": Love in the Age of Anarchy",
": James Bond Season",
": japanese/ english subtitled version",
": Symphony from Paradis",
" (Japanese with English Subtitles)- Anime Season",
" (Japanese)",
": Final Cut",
Expand Down Expand Up @@ -369,6 +370,7 @@ const knownRemovablePhrases = [
"with introduction and post-film discussion",
"with Introduction and Discussion",
"with Introduction",
"with recorded intro",
"with intro",
"with Illusion-O",
"with Arcana",
Expand Down Expand Up @@ -435,6 +437,7 @@ const knownRemovablePhrases = [
"@ The Leyton Engineer",
"@ ArtHouse Crouch End",
"@leyton library",
"@ London Film School",
"Sapphic Cinema and BFI Melodrama",
"Free BFI Melodrama",
'Free: BFI "Rip it Up" Late Night',
Expand Down
4 changes: 3 additions & 1 deletion common/normalize-title.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ function normalizeTitle(title, options) {

// Specific corrections
const corrections = [
["&", "&"],
[/&/g, "&"], // Global, as a title can carry more than one
[/^Screening Documentary/i, ""],
["HANNAH MONTANA: THE MOVIE", "HANNAH MONTANA MOVIE"],
[/F1\s?®?:? The Movie/i, "F1"],
Expand All @@ -65,6 +65,8 @@ function normalizeTitle(title, options) {
"Birdman or (The Unexpected Virtue of Ignorance)",
"Birdman or The Unexpected Virtue of Ignorance",
],
// Same again; the film is released here as "BPM (Beats Per Minute)".
[/120 BPM \(Beats Per Minute\)/i, "BPM Beats Per Minute"],
// The venue follows the suffix with the language, so the rule below that
// strips it from the end of the title never fires.
[/^Mirzapur: The Movie\b/i, "Mirzapur"],
Expand Down
154 changes: 153 additions & 1 deletion common/tests/test-titles.json
Original file line number Diff line number Diff line change
Expand Up @@ -67745,7 +67745,7 @@
},
{
"input": "Attack on Titan: Symphony from Paradis",
"output": "attack on titan symphony from paradis"
"output": "attack on titan"
},
{
"input": "Leaves of London film screening + panel talk",
Expand Down Expand Up @@ -101182,5 +101182,157 @@
{
"input": "Film Africa: In a Whisper",
"output": "in a whisper"
},
{
"input": "Arrietty (dubbed)",
"output": "arrietty"
},
{
"input": "IMAX preview: Godzilla Minus Zero",
"output": "godzilla minus zero"
},
{
"input": "Moonlight 10th anniversary with recorded intro + in person panel discussion",
"output": "moonlight"
},
{
"input": "Building Centre Film Club: 120 BPM (Beats Per Minute)",
"output": "bpm beats per minute"
},
{
"input": "National Theatre Live: Hay Fever",
"output": "national theatre live hay fever"
},
{
"input": "National Theatre Live: The Motive And The Cue",
"output": "national theatre live the motive the cue"
},
{
"input": "Without Consent:Mining in Neskantaga's Ancestral Homelands",
"output": "without consent mining in neskantagas ancestral homelands"
},
{
"input": "OffBeat presents LONDON IN THE RAW (1964)",
"output": "london in the raw (1964)"
},
{
"input": "City of Masks + Golden Mask Meet and Greet",
"output": "city of masks"
},
{
"input": "TRANSMISSIONS PRESENTS: Hellraiser ***VHS*** (intro by ALISON RUMFITT)",
"output": "hellraiser"
},
{
"input": "National Theatre Live: The Motive and the Cue",
"output": "national theatre live the motive the cue"
},
{
"input": "La Fémis @ London Film School",
"output": "la femis"
},
{
"input": "NT Live: Hay Fever",
"output": "national theatre live hay fever"
},
{
"input": "Coco (2017) (Omniplex Classics)",
"output": "coco (2017)"
},
{
"input": "Hocus Pocus (1993) (Omniplex Classics)",
"output": "hocus pocus (1993)"
},
{
"input": "Hotel Transylvania (2012) (Omniplex Classics)",
"output": "hotel transylvania (2012)"
},
{
"input": "Monster House (2006) (Omniplex Classics)",
"output": "monster house (2006)"
},
{
"input": "NT Live: The Motive and the Cue",
"output": "national theatre live the motive the cue"
},
{
"input": "Practical Magic (1998) (Omniplex Classics)",
"output": "practical magic (1998)"
},
{
"input": "Scream (1996) (Omniplex Classics)",
"output": "scream (1996)"
},
{
"input": "The Addams Family (1991) (Omniplex Classics)",
"output": "addams family (1991)"
},
{
"input": "The Craft (1996) (Omniplex Classics)",
"output": "the craft (1996)"
},
{
"input": "The Exorcist (1973) (Omniplex Classics)",
"output": "the exorcist (1973)"
},
{
"input": "The Others (2001) (Omniplex Classics)",
"output": "the others (2001)"
},
{
"input": "The Rocky Horror Picture Show (1975) (Omniplex Classics)",
"output": "rocky horror picture show (1975)"
},
{
"input": "National Theatre Live: Motive and the Cue",
"output": "national theatre live motive the cue"
},
{
"input": "Line producing with Ioanna Karavela - Masterclass - TUFF 2027 (Room UG05)",
"output": "line producing with ioanna karavela"
},
{
"input": "Doc'n Roll: THE BEST SUMMER + Q&A",
"output": "best summer"
},
{
"input": "Attack on Titan: Symphony from Paradis (15)",
"output": "attack on titan"
},
{
"input": "STST Film Club | Tranz Tropez",
"output": "tranz tropez"
},
{
"input": "Black History Month: Tongues Untied",
"output": "tongues untied"
},
{
"input": "CONSUMED: A contemporary Asian Horror showcase",
"output": "consumed a contemporary asian horror showcase"
},
{
"input": "'RAFT' & The Parlour Collective & 'The Moon Over The Alley'",
"output": "raft the parlour collective the moon over the alley"
},
{
"input": "Spotlight: Morvern Callar (2001)",
"output": "morvern callar (2001)"
},
{
"input": "FILM NIGHTS at The Source 'Disclosure Day'",
"output": "disclosure day"
},
{
"input": "FILM NIGHTS at The Source 'H is for Hawk'",
"output": "h is for hawk"
},
{
"input": "FILM NIGHTS at The Source 'Michael' (2026)",
"output": "michael (2026)"
},
{
"input": "FILM NIGHTS at The Source 'Reality' (2023)",
"output": "reality (2023)"
}
]
Loading