| Getting Showtimes
Flimsy, a Film Showtimes Viewer for the Agenda VR3
Flimsy is a simple, single-purpose Agenda application: it displays
a list of movie theaters, the movies playing at each one, and their
showtimes. Flimsy gets its data from
via a Perl script -- Flimsy itself has no mechanism for querying
Flimsy was written by
Ed Santiago <firstname.lastname@example.org>.
I know those are not part of a standard Perl installation. I know it
may be a pain for you to install those (they have umpteen prerequisites
of their own). If you're not comfortable installing Perl modules or
using CPAN, and can't get help
from someone who is, Flimsy is not for you.
- For running on the Agenda:
- Flimsy requires a SNOW 1.2.0 rootdisk. If you aren't running
that, it should be possible (and easy) to recompile.
- For running on your Workstation:
- Flimsy requires FLTK, FLEK, and FLPDA, all with the Agenda Computing
patches. Flimsy also requires
Expat, an XML parser
- For getting showtimes:
- Flimsy_get_listings.pl requires Perl 5.6 or greater, with
the following additional modules:
- LWP, for making WWW queries;
- HTML::Parser, for parsing the results;
- Tie::IxHash, for keeping some things in
order (if this is too big a requirement, let me know; I can
remove it without much impact).
The latest version of Flimsy is 0.02. It is available at
The tarball comes with a precompiled SNOW 1.2.0 binary. If you wish
to recompile it:
- Edit the Makefile, changing any necessary
path components to reflect your setup.
- Type make SNOW=1
To install on your Agenda, do something like this:
% rsync -azv flimsy.snow agenda::default/.wmx/Applications/Flimsy
% rsync -azv flimsy.xpm agenda::default/pixmaps/.
(this assumes you have the directory /home/default/pixmaps
already created on the Agenda).
Then log in to the Agenda, and add this line to the
Launchpad will detect Flimsy in the Applications directory immediately,
but you must restart it (click "Done", then start it again) for it to
see the new icon.
Flimsy is now installed on your Agenda, but it's useless without
any data. You must now fetch showtimes:
% ./flimsy_get_listings.pl your-ZIP-code
(This may spit out lots of warnings; please ignore them, or, if you
feel so inclined, report them to me
so I can try to clean up the parsing code).
This will make 7 queries to the
showtimes server: one each for today, tomorrow, and so on. It condenses
all the info into one XML file, which
you then copy to the Agenda:
% rsync -azv flimsy.xml agenda::default/.
You must do this periodically, of course. If you have a regular
script for syncing with your Agenda, you may want to add a step
flimsy_get_listings.pl your-ZIP && rsync -azv flimsy.xml agenda::default/.
Flimsy has three main displays, in which the entries are sorted:
Flimsy always starts with the Theater page. As you would expect,
tapping on a movie name or a time takes you to the corresponding page:
- by Theater: Each theater has a section, under which are shown
the movies playing at that theater. This is the "standard" display
you get in a newspaper or web site.
- by Movie: Each movie has a section, under which are shown
the theaters at which it's playing, and the times.
- by Time: the page is organized by showtime, in increasing
order downward. This is useful when you want to know what's
playing in the next 10 minutes, or after dinner.
Next to each theater name, in the far right-hand side, is a question
mark. Tapping on this pops up a window showing the theater name,
address, and telephone number.
Finally, a menu at bottom (labeled "Today" by default) can be used
to select the day for which you want listings.
|Tap on a movie name...
||...and find out where else it's playing.
||Tap on a row of times...
||...and find out what's playing now.
||The movie you tapped will be at the top of the page.
||(it doesn't matter which row, or where in the row...
they all go to the same place)
||Assuming the current time is shortly after 7PM
Flimsy is my first real tool for the Agenda, and also marks my
return to C++ after an absence of 14 years. Please forgive me
if the source isn't up to your standards.
$Id: index.html,v 1.10 2002/02/21 02:11:12 esm Exp $