www.fabiankeil.de/gehacktes/slick-little-girl/

slg: Slickly extends library loans

slg is a curl-based webscraper to extend library loans online, without having to clown around with a web browser.

The only supported library is the Stadtbibliothek Köln. After changing a couple of variables, slg may work with other Zones interfaces, though.

Configuration

The login data is read from ~/.config/slg/login-data. The file should contain a single line in the format BRWR=A11 222 333 4&PIN=1122, A11 222 333 4 being the library card number and 1122 being the super secret password based on the user's birthday.

Cookies and temporary data is stored in ~/.config/slg/ which is expected to exist. slg requires a curl version that has been configured with cookie support.

Examples

Calling slg without arguments will display up to six titles sorted by their due date:

fk@r500 ~ $slg
Login dance in progress....
Retrieving loaned media.
--------------------------------------------------
 0: Rückgabedatum='2013-03-22' Ausleihdatum='2013-01-30' Titel='Polizei im Zwielicht' Autor='Kein Autor' Anzahl Verlängerungen='1' Vorgemerkt='1'
 1: Rückgabedatum='2013-03-28' Ausleihdatum='2013-02-28' Titel='Abschied von der Küchenpsychologie' Autor='Nolting, Hans-Peter' Anzahl Verlängerungen='0' Vorgemerkt='0'
 2: Rückgabedatum='2013-03-28' Ausleihdatum='2013-02-28' Titel='Erste-Hilfe-Handbuch' Autor='Kein Autor' Anzahl Verlängerungen='0' Vorgemerkt='0'
 3: Rückgabedatum='2013-04-05' Ausleihdatum='2013-03-08' Titel='Frauen und Kriminalität' Autor='Franke, Kirsten' Anzahl Verlängerungen='0' Vorgemerkt='0'
 4: Rückgabedatum='2013-04-05' Ausleihdatum='2013-03-08' Titel='Code-quality-Management' Autor='Simon, Frank' Anzahl Verlängerungen='0' Vorgemerkt='0'
 5: Rückgabedatum='2013-04-05' Ausleihdatum='2013-03-08' Titel='Effektive Software-Architekturen' Autor='Starke, Gernot' Anzahl Verlängerungen='0' Vorgemerkt='0'

Resume the session (skipping the login dance) to extend title number 3:

fk@r500 ~ $slg -r -e 3 # Long version: slg --resume-session --extend-loan 3
--------------------------------------------------
 0: Rückgabedatum='2013-03-22' Ausleihdatum='2013-01-30' Titel='Polizei im Zwielicht' Autor='Kein Autor' Anzahl Verlängerungen='1' Vorgemerkt='1'
 1: Rückgabedatum='2013-03-28' Ausleihdatum='2013-02-28' Titel='Abschied von der Küchenpsychologie' Autor='Nolting, Hans-Peter' Anzahl Verlängerungen='0' Vorgemerkt='0'
 2: Rückgabedatum='2013-03-28' Ausleihdatum='2013-02-28' Titel='Erste-Hilfe-Handbuch' Autor='Kein Autor' Anzahl Verlängerungen='0' Vorgemerkt='0'
 3: Rückgabedatum='2013-04-05' Ausleihdatum='2013-03-08' Titel='Frauen und Kriminalität' Autor='Franke, Kirsten' Anzahl Verlängerungen='0' Vorgemerkt='0'
 4: Rückgabedatum='2013-04-05' Ausleihdatum='2013-03-08' Titel='Code-quality-Management' Autor='Simon, Frank' Anzahl Verlängerungen='0' Vorgemerkt='0'
 5: Rückgabedatum='2013-04-05' Ausleihdatum='2013-03-08' Titel='Effektive Software-Architekturen' Autor='Starke, Gernot' Anzahl Verlängerungen='0' Vorgemerkt='0'
--------------------------------------------------

Requesting a loan extension for: Frauen und Kriminalität
Success. New due date is: 2013-04-20

Instead of resuming the session you can also use a single call. For example slg -e 0 does the login dance and extends the title whose due date is next.

To list all titles add --max-media-pages 5 (or -m 5) where 5 is the number of pages you want to list. Listing more pages requires more requests and thus takes a bit longer.

Download

slg 0.1-f3968eb (signature).