1
0
Fork 0
This repository has been archived on 2024-06-28. You can view files and clone it, but cannot push or open issues or pull requests.
WienerLinienBot/wienerLinien.py
2016-07-31 13:19:30 +02:00

56 lines
1.5 KiB
Python

#!/usr/bin/env python3
import json
from pprint import pprint
import requests
from config import *
from fuzzywuzzy import process, fuzz
class WienerLinien:
def setStationNames(self):
for station in self.stations.values():
self.stationNames[station["HALTESTELLEN_ID"]] = station["NAME"]
def __init__(self, json_path):
with open(json_path) as json_file:
self.stations = json.load(json_file)
self.stationNames = {}
self.setStationNames()
@staticmethod
def api(rbl):
parameters = {"rbl": rbl, "sender": wienerlinien_API_key}
r = requests.get("https://www.wienerlinien.at/ogd_realtime/monitor", params=parameters)
return r.json()
def nexttrains(self, rbl):
response = self.api(rbl)
countdowns = []
for departure in response["data"]["monitors"][0]["lines"][0]["departures"]["departure"]:
countdowns.append(departure["departureTime"]["countdown"])
return countdowns
def fuzzy_stationname(self, userinput):
return process.extract(userinput, self.stationNames, limit=6, scorer=fuzz.partial_ratio)
def askStation(self):
while True:
result = self.fuzzyStationName(input())
print(result)
number = int(input())
pprint(result[number - 1][2])
def main():
wl = WienerLinien("stationen/cache/current.json")
# pprint(wl.stations["214461789"])
# pprint(wl.nexttrains(4431))
wl.askStation()
if __name__ == '__main__':
main()