diff --git a/common/known-removable-phrases.js b/common/known-removable-phrases.js index 2e280a0..0da1ed7 100644 --- a/common/known-removable-phrases.js +++ b/common/known-removable-phrases.js @@ -362,6 +362,7 @@ const knownRemovablePhrases = [ "30th Anniversary:", "40th Anniversary:", "50th Anniversary:", + "50th Anniversary of ", "1956:", "A24:", "A FESTIVE FEAST", @@ -369,6 +370,7 @@ const knownRemovablePhrases = [ "a film by David Kew", "a Screening and Talk of", "Academy Awards Best Picture 2025:", + "Academy Awards Best Picture 2026:", "Academy Awards Best Picture Winner 2026:", "Adults Only:", "Agnes Varda's", @@ -703,6 +705,7 @@ const knownRemovablePhrases = [ "NEWHAM COMMUNITY CINEMA:", "NEVER WATCHING MOVIES:", "NEVERWATCHINGMOVIES x TRANSMISSIONS:", + "TRANSMISSIONS x DREAM EMULATOR:", "Noah Davis Film Programme:", "Noah Baumbach:", "Now screening :", diff --git a/common/normalize-title.js b/common/normalize-title.js index 2ea6e44..d5d4f81 100644 --- a/common/normalize-title.js +++ b/common/normalize-title.js @@ -627,6 +627,7 @@ function normalizeTitle(title, options) { ["READY OT NOT 2", "READY OR NOT 2"], [/^Charak \(Hindi\)$/i, "Charak: Fair of Faith"], ["CLOSING Nuit de Chien", "Nuit de Chien"], + [/ search 4 square$/i, "search for squarepants"], // 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, ""], diff --git a/common/tests/test-titles.json b/common/tests/test-titles.json index 6683bc6..77ed762 100644 --- a/common/tests/test-titles.json +++ b/common/tests/test-titles.json @@ -60670,5 +60670,185 @@ { "input": "Mystery Short Film + Q&A", "output": "mystery movie" + }, + { + "input": "Arco (DUBBED)", + "output": "arco" + }, + { + "input": "Arco (SUBBED)", + "output": "arco" + }, + { + "input": "Members' Screening: Project Hail Mary", + "output": "project hail mary" + }, + { + "input": "Parent & Baby Screening: Project Hail Mary", + "output": "project hail mary" + }, + { + "input": "Tomorrow, and Tomorrow and Tomorrow", + "output": "tomorrow tomorrow tomorrow" + }, + { + "input": "60 years of Struggle: Civil Rights , African Odysseys @BFI", + "output": "60 years of struggle civil rights african odysseys @bfi" + }, + { + "input": "Deep Sky (3D)", + "output": "deep sky" + }, + { + "input": "Dinosaurs of Antarctica (3D)", + "output": "dinosaurs of antarctica" + }, + { + "input": "The Magic Faraway Tree + Q&A with Pippa Harris, Ben Gregor and Nicola Coughlan", + "output": "magic faraway tree" + }, + { + "input": "Ratatouille", + "output": "ratatouille" + }, + { + "input": "Oscars Best Picture 2026: One Battle", + "output": "one battle after another" + }, + { + "input": "50th anniversary of Aces High (1976)", + "output": "of aces high (1976)" + }, + { + "input": "£2 Family Films : SpongeBob Movie: Search 4 Square", + "output": "spongebob movie search for squarepants" + }, + { + "input": "£2 Family Films : Zootropolis 2", + "output": "zootropolis 2" + }, + { + "input": "Ferris Bueller's Day Off (40th Anniversary)", + "output": "ferris buellers day off" + }, + { + "input": "Little Shop Of Horrors (40th Anniversary)", + "output": "little shop of horrors" + }, + { + "input": "Secret Screaming (7th April)", + "output": "mystery movie" + }, + { + "input": "OffBeat Folk Film Festival: TIED TO THE LAND", + "output": "tied to the land" + }, + { + "input": "THE DRAMA", + "output": "the drama" + }, + { + "input": "100 Free Tickets: London Creative Network", + "output": "100 free tickets london creative network" + }, + { + "input": "Gigi & Olive -Bridal Cinema Club Community Night", + "output": "gigi olive" + }, + { + "input": "Dungeons & Dragons: Honour Among Thieves in Concert", + "output": "dungeons dragons honour among thieves" + }, + { + "input": "Moulin Rouge! (25th Anniversary)", + "output": "moulin rouge" + }, + { + "input": "Power To The People: John & Yoko Live In NYC", + "output": "power to the people john yoko live in nyc" + }, + { + "input": "Beyond: Wasteman", + "output": "wasteman" + }, + { + "input": "Minute Shorts x Metis presents: Surviving Earth", + "output": "surviving earth" + }, + { + "input": "Michael - Cinema Screening and Party", + "output": "michael" + }, + { + "input": "Power to the People: John & Yoko Live in NYC", + "output": "power to the people john yoko live in nyc" + }, + { + "input": "OffBeat Folk Film Festival: OFFBEAT SUPPER CLUB", + "output": "offbeat supper club" + }, + { + "input": "Camera As Gun: Anti-Colonial Film Units As Counter-Archives in Africa", + "output": "camera as gun anticolonial film units as counterarchives in africa" + }, + { + "input": "TRANSMISSIONS x DREAM EMULATOR: Crimes of the Future", + "output": "crimes of the future" + }, + { + "input": "Misty Moon Presents Growing Up with Thunderbirds", + "output": "growing up with thunderbirds" + }, + { + "input": "Recovered Doctor Who Special", + "output": "recovered doctor who special" + }, + { + "input": "OffBeat Folk Film Festival: WELCOME TO THE UK", + "output": "welcome to the uk" + }, + { + "input": "Film: The Ballad of Wallis Island + a special Magic Lantern presentation!", + "output": "ballad of wallis island" + }, + { + "input": "Bar Shorts Presents: From Frame to Page- Animators Who Became Graphic Novelists", + "output": "from frame to page- animators who became graphic novelists" + }, + { + "input": "Brave", + "output": "brave" + }, + { + "input": "Ernest and Celestine (French with ENG SUBS)", + "output": "ernest celestine" + }, + { + "input": "Honey I Shrunk The Kids", + "output": "honey i shrunk the kids" + }, + { + "input": "Up!", + "output": "up" + }, + { + "input": "Sunday Screenings: Black Is… Black Ain't + Tom Rubnitz short films (afternoon event)", + "output": "black is black aint" + }, + { + "input": "Sunday Screenings: Buddies + Tom Rubnitz short films (afternoon event)", + "output": "buddies" + }, + { + "input": "Cinema Club - Nomadland", + "output": "nomadland" + }, + { + "input": "OffBeat Folk Film Festival: INFECTED WITH THE FOLK MIND VIRUS", + "output": "infected with the folk mind virus" + }, + { + "input": "OffBeat Folk Film Festival: UNDERGROUND LONDON", + "output": "underground london" } ]