X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=gotovienna-qml;h=83a8397395f0edc16835f48b1a7f94b88a40a97b;hb=16db513655f93766af3dd18054d04ca5f4248e99;hp=62309861b3145b39c64078c523f798890db5d902;hpb=c71e3da838653ad8d75bb8c2882b746fe90e3c1b;p=pywienerlinien diff --git a/gotovienna-qml b/gotovienna-qml index 6230986..83a8397 100755 --- a/gotovienna-qml +++ b/gotovienna-qml @@ -3,7 +3,7 @@ """Public transport information for Vienna""" __author__ = 'kelvan ' -__version__ = '0.8.1' +__version__ = '0.8.2' __website__ = 'https://github.com/kelvan/gotoVienna/' __license__ = 'GNU General Public License v3 or later' @@ -21,6 +21,7 @@ import urllib2 import os import sys import threading +from datetime import time class GotoViennaListModel(QAbstractListModel): def __init__(self, objects=None): @@ -91,14 +92,54 @@ class Gui(QObject): threading.Thread(target=load_async).start() + def map_departure(self, dep): + dep['lowfloor'] = 1 if dep['lowfloor'] else 0 + if type(dep['time']) == time: + dep['time'] = dep['time'].strftime('%H:%M') + return dep + departuresLoaded = Signal() @Slot(str) def load_departures(self, url): def load_async(): - self.current_departures = [x['ftime'] for x in - self.itip.get_departures(url)] - print self.current_departures + self.current_departures = map(self.map_departure, \ + self.itip.get_departures(url)) + #print self.current_departures + self.departuresLoaded.emit() + + threading.Thread(target=load_async).start() + + @Slot(str) + def load_station_departures(self, station): + def load_async(): + self.current_departures = map(self.map_departure, \ + sort_departures(self.itip.get_departures_by_station(station))) + #print self.current_departures + self.departuresLoaded.emit() + + threading.Thread(target=load_async).start() + + @Slot(float, float) + def load_nearby_departures(self, lat, lon): + def load_async(): + self.current_departures = [] + try: + stations = get_nearby_stations(lat, lon) + print stations + for station in stations: + print station + try: + self.current_departures += self.itip.get_departures_by_station(station) + except Exception as e: + print e.message + self.current_departures = map(self.map_departure, \ + sort_departures(self.current_departures)) + #print self.current_departures + except Exception as e: + print e.message + + print 'loaded' self.departuresLoaded.emit() threading.Thread(target=load_async).start() @@ -111,17 +152,17 @@ class Gui(QObject): def get_lines(self): return self.lines - @Slot(result='QStringList') + @Slot(result='QVariant') def get_departures(self): return self.current_departures - @Slot(float, float, result=str) + @Slot(float, float, result='QStringList') def get_nearby_stations(self, lat, lon): try: - return ', '.join(get_nearby_stations(lat, lon)) + return get_nearby_stations(lat, lon) except Exception as e: print e.message - return '' + return [] @Slot(str, str) def search(self, line, station):