Skip to content
This repository was archived by the owner on Jun 29, 2023. It is now read-only.

Commit f268791

Browse files
authored
Merge pull request #27 from aaearon/servinglines
add function to get lines served for a station
2 parents 1af98da + b417975 commit f268791

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

mvg_api/__init__.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,43 @@ def get_departures(station_id, timeoffset=0):
359359
return departures
360360

361361

362+
def get_lines(station_id):
363+
"""Get the lines being served for `station_id`.
364+
365+
Change in 1.3.2: accepts both 'old-style' integer IDs which were used
366+
by the API before this version and the new string IDs which
367+
look like `de:09162:6`.
368+
369+
To get the `station_id` associated with a station name,
370+
use :func:`get_id_for_station`.
371+
372+
Returns a list like::
373+
374+
[
375+
{
376+
"destination" : "Aying",
377+
"sev" : false,
378+
"partialNet" : "ddb",
379+
"product" : "SBAHN",
380+
"lineNumber" : "S7",
381+
"divaId" : "92M07"
382+
},
383+
]
384+
385+
Note: The api seemingly only returns a single object per
386+
line served, meaning that both directions of a line are
387+
represented only by a single line in the response.
388+
"""
389+
if isinstance(station_id, int):
390+
station_id = _convert_id(station_id)
391+
elif not _station_sanity_check(station_id):
392+
raise TypeError("Please give the int station_id of the station.\
393+
You can find it out by running \
394+
get_id_for_station('Station name')")
395+
url = departure_url.format(id=station_id, offset=0)
396+
return _perform_api_request(url)['servingLines']
397+
398+
362399
def get_interruptions():
363400
url = interruptions_url
364401
interruptions = _perform_api_request(url)
@@ -390,5 +427,8 @@ def __init__(self, station):
390427
def get_departures(self, timeoffset=0):
391428
return get_departures(self.id, timeoffset)
392429

430+
def get_lines(self):
431+
return get_lines(self.id)
432+
393433
def __repr__(self):
394434
return "Station(id=%s, name='%s')" % (self.id, self.name)

0 commit comments

Comments
 (0)