#!/usr/bin/env python

""" A REST client to retrieve information from the Velov bicycle system. """

__PROGRAM__ = "get-station"
__VERSION__ = "0.0"
__AUTHOR__ = "Stephane Bortzmeyer <stephane@bortzmeyer.org>"

import sys 
import urllib
import cElementTree as ElementTree

base_url = "http://velov.grandlyon.com/velov/zhp/inc/DispoStationsParId.php?id=%i"

class AppURLopener(urllib.FancyURLopener):
    version = "%s/%s (Bortzmeyer's get-station.py; Python %s; http://www.bortzmeyer.org/velib-rest.html)" % (__PROGRAM__, __VERSION__, sys.version[0:5])
    
def usage():
    print >>sys.stderr, ("Usage: %s station-number" % sys.argv[0])
    
if len(sys.argv) != 2:
    usage()
    sys.exit(1)

station = int(sys.argv[1])
url = base_url % station

urllib._urlopener = AppURLopener()
data = urllib.urlopen(url).read()

xmltree = ElementTree.fromstring(data)

label = xmltree.find("label").text
available = int (xmltree.find("availableBike").text)
total = int (xmltree.find("totalBikeBase").text)
free = int (xmltree.find("freeBikeBase").text)

print "Available bikes - Free slots - Total slots  at station %s" % label
print "           %4u         %4u          %4u" % (available, free, total)

