Cartelera is the code base that generates the website CarteleraPerú.
CarteleraPerú shows movie times for the three main movie theater chains in Perú (UVK, CinePlanet y Cinemark). The website generated is static and as lean as posible. It shows only movie titles, subtitles information, and showtimes. The information is obtained from the publicly available information published by the theaters.
Each time the program is run, three static web pages are generated in the directory specified by 'basedir' (see configuration):
index.htmlis the main page containing movie show times for each theater for each of the main movie theater chains.
preferences.htmlis a settings page that allows the user to display or hide theaters from the main page. Preferences are stored in the user's browser using cookies.
about.html, the about page.
Jinja2 is used for rendering the pages. Sample template files can be found in the
The code has been tested in Python 2.7.5 (OSX) and Python 2.7.3 (Linux). It uses BeautifulSoup for obtaining movie information, and Jinja2 for template rendering.
Dependencies can be installed in the current environment using
$ pip install -r requirements.txt
settings directory contains three files:
- Settings common to production and development environments are specified in
base.py. (There should be no need to modify this file.)
- Settings used for development reside in
local.py. (Intended to be used when running the code on your local machine.)
- Settings used for production reside in
# website root directory basedir = "./www" # jinja2 templates directory template_dir = './templates'
You should at least configure
basediris where the generated website will reside and served by your webserver.
template_diris where your template files reside. For production, it is recommended to specify the full directory path.
Static webpage content
If you use the provided templates for generating the webpages, you will need to copy the
www/static directory contents to
static under your web server's root.
If you are using Google Anaytics, you specify your account number in
Command line options
The main entry point is
cines.py. It accepts only one command line option:
--dev. It runs the program using the settings from
$ python cines.py --dev
If no option is specified,
production.py settings are assumed.
$ python cines.py
This is a scratch your own itch kind of project. The movie theater's websites are slow and bloated with irrelevant information. I wanted a page showed just the movie titles and show times, and loaded as fast as possible.
Early versions included ratings from IMDb, but IMDb forced the developer of the Python library I was using to shut down and cease development.
Unify movie names across movie chains. The current approach is to use
python-Levenshteinto identify a movie with different names across different chains, but it does not always work.
There is bug that 'sometimes' prevents showing information from Jockey Plaza.