Giter Site home page Giter Site logo

film-calendar's Issues

Grand Illusion Scraping fails on non-theater events

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 members

Presented 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.

Fix Movie Title Capitalization

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.

Seattle bias

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.

Grand Illusion Duration Scraping Broken

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.

Add New SIFF 2024 Theaters

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'

Generalize for other cities

Non-exhaustive list of things I'd want to do:

  • Make calendar attributes flexible
    • Timezone
    • Calendar name
    • prodid (generate from calendar name?)
    • UID base
  • Document how it works

Central Cinema Rentals

I think they changed the name they use for theater rentals cause I'm seeing some slipping through.

Support All Day Events

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.

Handle missing venues gracefully

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.

Improve error messaging

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().

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.