Download csv data from epguides.com pages for TV episodes information and display the results in a simple GTK2 or CLIM app or on a webpage with custom filters.
Currently, this application is only supported on SBCL (it specifically
uses sb-thread:make-thread
). Other CL implementations might work, as
long as mcclim, cl-gtk2, cxml and hunchentoot are available and a more
general threading command is used.
First, get quicklisp up and running to automatically download all necessary dependencies. Check that you have the GTK libraries and header files required by cl-gtk2. Make sure to set up the init file of your CL implementation.
Currently, the most convenient way of installation is to clone
ol-utils
, cl-gtk-utils
and tv-series-status
into your
<quicklisp>/local-projects
folder. When everything is in place, run
make
in order to compile a core for sbcl (not strictly necessary,
but for instance cl-gtk2 takes a long time to load otherwise).
With make update
, you can pull in any changes in from the online git
repository. Rebuild with make
afterwards to make the changes live.
Please note that you will have to update ol-utils
and cl-gtk-utils
manually (cd
to the source directory and invoke git pull
).
Once the core is built, just execute ./tvs.sh
to start the clim
interface (which exposes downloading of episode information in the UI).
Currently, running outside of a UNIX environment is discouraged, as
the downloaded data is cached in the directory
/var/tmp/tse-data-store/
. If you run into trouble after upgrading
the software, it might also help to delete the contents of this
directory.
The CLIM interface should be straightforward to use: just click on a series title to only show episodes from the selected series, similarly for season numbers and date ranges. Alternatively you can first invoke the commands via the interactor and click the desired object afterwards (but this is probably less efficient).
All the information for the scraper is contained in the special var
tv-series-epguides
defined in tv-series-episodes-finder.lisp
,
which is a list of TV Series spec. A spec is a list of four entries,
the first being an identifier symbol, the second the series
title/name. The third is a link to the main page of the series at
epguides.com; calling find-csv-url
on it will yield the url of the
csv data, which has to be put in the fourth place. The third entry is
currently not strictly necessary for normal operations.
[2014-08-10 So 10:42] file:~/Projekte/tv-series-status/tv-series-display-web.lisp::(:p :class “bg-info user-help”
- keep track of this with a cookie
[2014-08-10 So 12:02] ~/Projekte/tv-series-status/tv-series-display-web.lisp
[2014-08-25 Mo 22:07] file:~/Projekte/tv-series-status/tv-series-display-web.lisp::(symbol-macrolet ((cookie (@ document cookie))) currently, we get into trouble with the session cookie stuff