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
2 changes: 2 additions & 0 deletions common/known-removable-phrases.js
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,7 @@ const knownRemovablePhrases = [
"DH:",
"Dog-Friendly:",
"Dr. Seuss' ",
"Dr Seuss'",
"Dystopia is Not the Future:",
"Early fan screening",
"EOS:",
Expand Down Expand Up @@ -498,6 +499,7 @@ const knownRemovablePhrases = [
"HKFF:",
"HKFFUK:",
"HKFF 2025:",
"Hayley Mills:",
"Halloween with Distorted Frame:",
"Christmas with Distorted Frame:",
"Hong Kong Film Festival UK:",
Expand Down
8 changes: 7 additions & 1 deletion common/source-only/transform.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,20 @@ const sportShowings = [
/^\w+\s+FANPARK:/i,
];

const nonFilmEvents = [/Community Pilates/i];

const isNotSportShowing = ({ title }) =>
!sportShowings.some((sports) => basicNormalize(title).match(sports));

const isNotNonFilmEvent = ({ title }) =>
!nonFilmEvents.some((nonFilm) => basicNormalize(title).match(nonFilm));

async function transform(data, sourcedEvents) {
// Return the sourced events for this venue
return Object.values(sourcedEvents)
.flatMap((events) => events)
.filter(isNotSportShowing); // Remove all the football match screenings
.filter(isNotSportShowing) // Remove all the football match screenings
.filter(isNotNonFilmEvent); // Remove all non film events
}

module.exports = transform;
152 changes: 152 additions & 0 deletions common/tests/test-titles.json
Original file line number Diff line number Diff line change
Expand Up @@ -50474,5 +50474,157 @@
{
"input": "Picture East Film Festival 2026: LONDON BOYS FEATURE FILM + PANEL",
"output": "london boys feature film"
},
{
"input": "Jessie Buckley in Conversation",
"output": "jessie buckley in conversation"
},
{
"input": "The Quiz of Rassilon",
"output": "quiz of rassilon"
},
{
"input": "TV Preview: How to Get to Heaven from Belfast + Q&A",
"output": "how to get to heaven from belfast"
},
{
"input": "Colours of Time [La Venue de l'avenir]",
"output": "colours of time"
},
{
"input": "The Stranger [L'étranger]",
"output": "stranger"
},
{
"input": "Throwback: A Knight's Tale (25th Anniversary)",
"output": "a knights tale"
},
{
"input": "Throwback: Singin' in the Rain",
"output": "singin in the rain"
},
{
"input": "Throwback: The Fifth Element",
"output": "fifth element"
},
{
"input": "Throwback: There Will Be Blood",
"output": "there will be blood"
},
{
"input": "Toddler Club: Dr Seuss' The Lorax",
"output": "lorax"
},
{
"input": "Toddler Club: Lady and the Tramp (1955)",
"output": "lady the tramp (1955)"
},
{
"input": "Toddler Club: The Scarecrows' Wedding + The Smeds and the Smoos",
"output": "scarecrows wedding"
},
{
"input": "Neurasia, Argila & Aggression",
"output": "neurasia argila aggression"
},
{
"input": "PREVIEW Sirât",
"output": "sirat"
},
{
"input": "Babykino: Rental Family",
"output": "rental family"
},
{
"input": "Hayley Mills: The Family Way",
"output": "family way"
},
{
"input": "The Strangers - Chapter 3",
"output": "strangers chapter 3"
},
{
"input": "The Rose: Come Back to Me",
"output": "rose come back to me"
},
{
"input": "Dalej jazda 2",
"output": "dalej jazda 2"
},
{
"input": "Collective Monologue + director Q&A",
"output": "collective monologue"
},
{
"input": "Muppets From Space",
"output": "muppets from space"
},
{
"input": "Muppets Most Wanted",
"output": "muppets most wanted"
},
{
"input": "The Muppets",
"output": "muppets"
},
{
"input": "The Muppets Take Manhattan",
"output": "muppets take manhattan"
},
{
"input": "American History X",
"output": "american history x"
},
{
"input": "Die Hard: With a Vengeance",
"output": "die hard with a vengeance"
},
{
"input": "Freaked",
"output": "freaked"
},
{
"input": "sex, lies, and videotape",
"output": "sex lies videotape"
},
{
"input": "Gone With The Wind",
"output": "gone with the wind"
},
{
"input": "How To Steal A Million + Live Organ",
"output": "how to steal a million"
},
{
"input": "The Lady Vanishes",
"output": "lady vanishes"
},
{
"input": "TV PARTY, TONIGHT!: A Pink Palace Collaboration",
"output": "tv party tonight a pink palace collaboration"
},
{
"input": "TV PARTY, TONIGHT!: An Education in Blood and Guts Filmmaking",
"output": "tv party tonight an education in blood guts filmmaking"
},
{
"input": "TV PARTY, TONIGHT!: Anarchism and Misrule in Cinema",
"output": "tv party tonight anarchism misrule"
},
{
"input": "TV PARTY, TONIGHT!: Photographers on Film",
"output": "tv party tonight photographers on film"
},
{
"input": "Valentine's Day: Maurice (4K Restoration)",
"output": "maurice"
},
{
"input": "Battleship Potemkin with original score by Body Orchestra",
"output": "battleship potemkin"
},
{
"input": "The Spongebob Movie: Search for Squarepants",
"output": "spongebob movie search for squarepants"
}
]