コード例 #1
0
ファイル: coapserver.py プロジェクト: kelvan/coapWL
    def render_post(self, request):
        station_name = request.payload.decode('UTF-8')
        stations = Station.search_by_name(station_name)

        if len(station_name) < 4:
            payload = 'Search string to short'
            if len(station_name) == 0:
                payload = 'Missing search string'
            return aiocoap.Message(code=aiocoap.NOT_FOUND, payload=payload.encode('ascii'))

        if stations:
            payload = str([s['name'] for s in stations])
            for station in stations:
                if station['name'] == station_name:
                    stations = [station]

            if len(stations) == 1:
                station = stations[0]
                dep = Departures(station.get_stops())
                dep.refresh()
                payload = json.dumps(dep, ensure_ascii=False, default=json_serializer.default)
        else:
            return aiocoap.Message(code=aiocoap.NOT_FOUND, payload='Station not found'.encode('ascii'))

        response = aiocoap.Message(code=aiocoap.CONTENT, payload=payload.encode('UTF-8'))
        response.opt.content_format = aiocoap.numbers.media_types_rev['application/json']
        return response
コード例 #2
0
ファイル: gui_departures.py プロジェクト: fk-lx/sailtoVienna
    def get(self, name):
        stations = Station.search_by_name(name, exact=True)

        rbl = []
        for st in stations:
            rbl += list(st.get_stops())

        departures = Departures.get_by_stops(rbl)

        result_dicts = []
        for station in sorted(departures.values(), key=itemgetter('name')):
            for departure in sorted(station['departures'], key=itemgetter('countdown')):
                result_dicts.append(departure)

        return result_dicts
コード例 #3
0
ファイル: gui_departures.py プロジェクト: sfbg/sailtoVienna
    def get(self, name):
        stations = Station.search_by_name(name, exact=True)

        rbl = []
        for st in stations:
            rbl += list(st.get_stops())

        departures = Departures.get_by_stops(rbl)

        result_dicts = []
        for station in sorted(departures.values(), key=itemgetter('name')):
            for departure in sorted(station['departures'], key=itemgetter('countdown')):
                if not departure['line']['colour']:
                    departure['line']['colour'] = 'transparent'
                result_dicts.append(departure)

        return result_dicts
コード例 #4
0
 def get(self, term):
     stations = Station.search_by_name(term, weight='line_count')
     return [x['name'] for x in stations]
コード例 #5
0
 def get_nearby(self, lat, lon, distance=0.007):
     return sorted([
         _distance(s, lat, lon)
         for s in Station.get_nearby(lat, lon, distance)
     ],
                   key=lambda s: s['distance'])
コード例 #6
0
from pyWL.database import Station, Line
from pyWL.textformat import *

parser = argparse.ArgumentParser(description='WienerLinien test commandline client')
parser.add_argument(metavar='station name', dest='name')
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('-s', '--search', action='store_true',
                   help='search station by name', dest='search')
group.add_argument('-d', '--departures', action='store_true',
                   help='show departures', dest='deps')
group.add_argument('-l', '--line', action='store_true',
                   help='show stations', dest='line')

args = parser.parse_args()

stations = Station.search_by_name(args.name, weight='line_count')

if args.search:
    for station in map(lambda x: x['name'], stations):
        print(station)

if args.line:
    name = args.name.upper()
    l = Line.get_by_name(name)

    if l is None:
        s = Line.search_by_name(name)
        print('Line not found')
        if s:
            print('Did you mean:')
            for line in s:
コード例 #7
0
ファイル: gui_search.py プロジェクト: fk-lx/sailtoVienna
 def get_nearby(self, lat, lon, distance=0.005):
     return sorted([_distance(s, lat, lon) for s in Station.get_nearby(lat, lon, distance)], 
         key=lambda s: s['distance'])
コード例 #8
0
ファイル: gui_search.py プロジェクト: fk-lx/sailtoVienna
 def get(self, term):
     stations = Station.search_by_name(term, weight='line_count')
     return [x['name'] for x in stations]