From f0dd6b7881337c20b07d625099975a70ac5c1d83 Mon Sep 17 00:00:00 2001 From: Florian Schweikert Date: Sat, 10 Sep 2011 02:06:28 +0200 Subject: [PATCH] Fixed station list parser for itip added minimal cli for realtime information (supports list stations of line and departure of line/station) --- iTip.py | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/iTip.py b/iTip.py index cbae266..afd1825 100644 --- a/iTip.py +++ b/iTip.py @@ -2,6 +2,7 @@ from BeautifulSoup import BeautifulSoup from urllib2 import urlopen import settings from datetime import time +import argparse class iParser: @@ -21,11 +22,11 @@ class iParser: bs = BeautifulSoup(urlopen(self.lines[name])) tables = bs.findAll('table', {'class': 'text_10pix'}) - for i in range (2): + for i in range(2): dir = tables[i].div.contents[-1].strip(' ') sta = [] - for tr in tables[0].findAll('tr', {'onmouseout': 'obj_unhighlight(this);'}): + for tr in tables[i].findAll('tr', {'onmouseout': 'obj_unhighlight(this);'}): if tr.a: sta.append((tr.a.text, settings.line_overview + tr.a['href'])) else: @@ -96,4 +97,32 @@ class iParser: #TODO replace with logger print "[DEBUG] Invalid data:\n%s" % time - return dep \ No newline at end of file + return dep + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Get realtime public transport information for Vienna') + parser.add_argument('-l', metavar='name', type=str, help='line name', required=True) + parser.add_argument('-s', metavar='name', type=str, help='station name') + + args = parser.parse_args() + + itip = iParser() + lines = itip.lines + l = args.l.upper() + s = args.s + + if l and l in lines: + stations = itip.get_stations(l) + for key in stations.keys(): + if not s: + print '* %s:' % key + for station in stations[key]: + if s: + if s.startswith(station[0]) or station[0].startswith(s): + # FIXME + print '* %s\n %s .....' % (key, station[0]), itip.get_departures(station[1]) + else: + print ' %s' % station[0] + + elif l: + print 'Line "%s" not found' % args.l -- 1.7.9.5