fixed underground departure parsing
[pywienerlinien] / scotty
diff --git a/scotty b/scotty
index b5b8a2c..d198087 100755 (executable)
--- a/scotty
+++ b/scotty
@@ -1,9 +1,9 @@
 #!/usr/bin/env python
 # -*- coding: UTF-8 -*-
 
-import argparse
 import sys
 
+from gotovienna import argparse
 from gotovienna.utils import *
 from gotovienna.routing import *
 
@@ -32,7 +32,7 @@ def do_search(args):
 
     return sParser(result.read())
 
-print >>sys.stderr, 'Searching...',
+print >>sys.stderr, 'Searching...\n',
 parser = do_search(args)
 print >>sys.stderr, 'done.'
 
@@ -70,15 +70,18 @@ if parser.state == PageType.RESULT:
     l = ''
     while not l == 'q':
         for idx, overview in enumerate(overviews):
-            if not overview['date'] or not overview['time']:
+            timespan = overview['timespan']
+            if not timespan:
                 # XXX: Bogus data for e.g. Pilgramgasse->Karlsplatz?!
                 continue
-
-            print '%d. [%s] %s-%s (%s)' % (idx + 1,
-                    overview['date'],
-                    overview['time'][0],
-                    overview['time'][1],
-                    overview['duration'])
+            
+            str_timespan = timespan[0].strftime('[%Y-%d-%m] %H:%M')
+            str_timespan += '-' + timespan[1].strftime('%H:%M')
+            timedelta = timespan[1] - timespan[0]
+            print '%d. %s (%s)' % (idx + 1,
+                    str_timespan,
+                    timedelta)
+        
         print 'q. Quit'
         l = sys.stdin.readline().strip()
         print
@@ -86,8 +89,8 @@ if parser.state == PageType.RESULT:
 
         if l.isdigit() and int(l) <= len(details):
             for detail in details[int(l) - 1]:
-                if detail['time'] and detail['station']:
-                    time = '%s - %s' % (detail['time'][0].strftime(TIMEFORMAT), detail['time'][1].strftime(TIMEFORMAT))
+                if detail['timespan'] and detail['station']:
+                    time = '%s - %s' % (detail['timespan'][0].strftime(TIMEFORMAT), detail['timespan'][1].strftime(TIMEFORMAT))
                     print '[%s] %s\n%s' % (time, ' -> '.join(detail['station']), '\n'.join(detail['info']))
                 else:
                     print '\n'.join(detail['info'])
@@ -95,4 +98,3 @@ if parser.state == PageType.RESULT:
         print
 else:
     print 'Error - unknown page returned.'
-