bryantd / film-calendar Goto Github PK
View Code? Open in Web Editor NEWAggregator and calendar generator for Seattle area arthouse movie times.
License: MIT License
Aggregator and calendar generator for Seattle area arthouse movie times.
License: MIT License
All day events should show up the right way in the calendar -- right now NWFF is the only place I've bumped into this, though. Low priority.
E.g.: Majestic Bay
Traceback (most recent call last):
File "/home/durrell/.local/bin/film-calendar", line 8, in <module>
sys.exit(cli())
File "/home/durrell/.local/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
File "/home/durrell/.local/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/home/durrell/.local/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/durrell/.local/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/home/durrell/.local/lib/python3.10/site-packages/filmcalendar/scripts/film_calendar.py", line 82, in cli
theater_calendar.fetch_films()
File "/home/durrell/.local/lib/python3.10/site-packages/filmcalendar/seattle/siff.py", line 82, in fetch_films
self._fetch_film_page(start_date)
File "/home/durrell/.local/lib/python3.10/site-packages/filmcalendar/seattle/siff.py", line 57, in _fetch_film_page
film_location = f"{self.theater}: {self.addresses[film_theater]}"
KeyError: 'Majestic Bay'
https://www.lighthousecinema.ie
https://www.lighthousecinema.ie/ajax/films-by-day-home/1
http://stellacinemas.ie/Rathmines/
https://stellacinemas.ie/ -- looks like all the data is in the initial load
https://ifi.ie/weekly-schedule
https://ifi.ie/whats-on/ -- doesn't have a breakdown of festivals
Problem example:
BEGIN:VEVENT
SUMMARY:Museum Of Home Video’S Guide To Celebrity Carnage
DTSTART;TZID=US/Pacific:20230310T220000
DURATION:PT2H
DTSTAMP;TZID=US/Pacific:20230310T082632
UID:45dcaa9249ada5b6
DESCRIPTION:https://thebeacon.film/calendar/movie/museum-of-home-videos-gu
ide-to-celebrity-carnage
LOCATION:The Beacon: 4405 Rainier Ave S\, Seattle\, WA 98118
URL:https://thebeacon.film/calendar/movie/museum-of-home-videos-guide-to-c
elebrity-carnage
END:VEVENT
I haven't checked to see if this is a general problem or just one with The Beacon, but it's ugly and it's easy to fix.
Non-exhaustive list of things I'd want to do:
This bug actually crashes the code so it's a high priority fix.
Film that triggered this:
Camille Billops Family Trilogy at LANGSTON
Camille Billops, James Hatch · 1982/1991/2002 · USA
180min · digital
Playing Mar 29
Wednesday, March 29 from 6:00-9:00 PM at the Langston Hughes Performing Arts Institute; $14 general, $10 for Grand Illusion membersPresented by LANGSTON, Black Cinema Collective, SIFF, and Grand Illusion Cinema.
(snip)
Wednesday, Mar 29: 6:00 pm at LANGSTON
The fix will be checking the location info line for "at" and splitting it if needed.
Current HTML: <div class="film-teaser--format">101 · 35mm</div>
The movie duration used to be contained in a with class = film-length:
film_duration_raw = film.find("span", class_="film-length").get_text()
Not too hard a fix.
To assist LieMAX avoiders
Every year I have to add venues for SIFF, and the script crashes out until I do. Shouldn't I just gracefully handle unknown addresses? Yes I should.
Right now I'm just grabbing the first page; there are more.
I think they changed the name they use for theater rentals cause I'm seeing some slipping through.
#32 introduced a new bug when fixing the crash bug around movie durations at the Grand Illusion -- now everything's showing up as off-site.
The code I wrote really assumes we're in Seattle, although there's enough generic material to make this solvable. But now that I'm working on Dublin it's time to fix that problem. Related to #63.
If a scrape fails, it'd be useful to understand if the HTML structure has changed. This probably requires passing back an error message out of fetch_films()
.
Key line in code:
for film in soup.find_all("div", class_="film-teaser"):
No exist with that class any more at https://grandillusioncinema.org .
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.