/tv-series-status

Check the web for the next episodes of TV series and find new episodes at a glance.

Primary LanguageCommon Lisp

About TV Series Status

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.

Installation

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

Running

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

Adding your favourite TV Series

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.

Tasks

hide instruction for user after they have seen them a couple of times

[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

reduce font size in table

[2014-08-10 So 12:02] ~/Projekte/tv-series-status/tv-series-display-web.lisp

implement proper cookie access

[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