Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import xmltodict
- import time
- from tkinter import Tk, Label, Button, Entry, CENTER
- USERNAME = 'yannickwillemsen@icloud.com'
- PASSWORD = 'eFP6T2I2ELsO3GMErUBesuYm6uV6zr_GIOGxbDqrDitA1W4-8dM0zQ'
- BASIC_AUTH = (USERNAME, PASSWORD)
- def haal_vertrekinformatie_van(station):
- base_url = 'http://webservices.ns.nl/ns-api-avt?station=' + station
- response = requests.get(base_url, auth=BASIC_AUTH)
- raw_data = response.content.decode("utf-8")
- vertrekinformatie = xmltodict.parse(raw_data)
- return vertrekinformatie
- # tkinter
- def afsluiten(scherm):
- Button(scherm, text='Afsluiten', fg="white", bg="blue", height=2, width=10,
- command=scherm.destroy).place(x=18, y=10)
- def huidige_datum(scherm):
- datum = time.strftime("%a, %d %b %Y")
- tijd = time.strftime("%H:%M")
- Label(scherm, background="#fcc917", foreground="BLACK",
- font="Verdana 15", text=datum).place(x=1300, y=15)
- Label(scherm, background="#fcc917", foreground="BLACK",
- font=("Verdana 15", 25, "bold"), text=tijd).place(x=1350, y=45)
- def nieuwe_scherm(naam, title):
- naam.attributes("-fullscreen", True)
- naam.geometry('450x450+500+300')
- naam.title(naam)
- naam.configure(background='#fcc917')
- Label(naam, text=title, font=("Helvetica", 50, "bold"),
- fg="#000066", bg="#fcc917").place(relx=0.5, y=110, anchor=CENTER)
- huidige_datum(naam)
- afsluiten(naam)
- startscherm = Tk()
- nieuwe_scherm(startscherm, 'Welkom bij NS')
- amsterdam = Button(startscherm,text='Ik wil naar \n Amsterdam',fg="white",bg="blue",height=3,width=20).place(x=390,y=650)
- los_kaartje = Button(startscherm,text='Kopen \n los kaartje',fg="white",bg="blue",height=3,width=20).place(x=550,y=650)
- Ov_chipkaart = Button(startscherm,text='Kopen \n Ov-chipkaart',fg="white",bg="blue",height=3,width=20).place(x=710,y=650)
- buitenland = Button(startscherm,text='Ik wil naar \n het buitenland',fg="white",bg="blue",height=3,width=20).place(x=870,y=650)
- actuele_vertrekinformatie = Button(startscherm,text='Actuele \n vertrekinformatie',fg="white",bg="blue",height=3,width=20,
- command=lambda: actuele_vertrekinformatie_menu()).place(x=1030,y=650)
- def actuele_vertrekinformatie_menu():
- """
- In het menu kunnen de gebruikers kiezen om:
- 1. de vertrekinformatie van de huidige station op te vragen.
- 2. de vertrekinformatie van een ander Nederlands station op te vragen.
- """
- scherm_menu = Tk()
- nieuwe_scherm(scherm_menu, 'Actuele vertrekinformatie')
- zoek_veld = Entry(scherm_menu, width=25, font='Times 25')
- zoek_veld.place(x=490, y=300)
- Button(scherm_menu, text='Zoeken', fg='white', bg='blue', height=2, width=15,
- command=lambda: (toon_actuele_vertrekinformatie(zoek_veld.get()))).place(x=890, y=300)
- Button(scherm_menu, text='Toon vertrekinformatie van de huidige station.',
- fg='white', bg='blue', font=25, height=3, width=46,
- command=lambda: (toon_actuele_vertrekinformatie('almere c.'))).place(x=490, y=450)
- def toon_actuele_vertrekinformatie(station):
- """
- Toon alle vertrekinformatie van de
- gevraagd station.
- """
- vertrekinformatie = haal_vertrekinformatie_van(station)
- vertrek_tijd = ""
- eind_bestemming = ""
- trein_soort = ""
- vertrek_spoor = ""
- try:
- count = 0
- for rit in vertrekinformatie['ActueleVertrekTijden']['VertrekkendeTrein']:
- if count <= 30:
- vertrek_tijd += rit['VertrekTijd'].split("T")[1].split("+")[0] + " \n"
- eind_bestemming += rit['EindBestemming'] + " \n"
- trein_soort += rit['TreinSoort'] + " \n"
- vertrek_spoor += rit['VertrekSpoor']['#text'] + " \n"
- count += 1
- vertrekinfo_scherm = Tk()
- nieuwe_scherm(vertrekinfo_scherm, 'Actuele vertrekinformatie')
- # column titles
- Label(vertrekinfo_scherm, text='Tijd', font=('Helvetica', 16, 'bold'), fg='#000066', bg='#fcc917').place(x=460, y=185)
- Label(vertrekinfo_scherm, text='Bestemming', font=('Helvetica', 16, 'bold'), fg='#000066', bg='#fcc917').place(x=633, y=185)
- Label(vertrekinfo_scherm, text='Treinsoort', font=('Helvetica', 16, 'bold'), fg='#000066', bg='#fcc917').place(x=855, y=185)
- Label(vertrekinfo_scherm, text='Spoor', font=('Helvetica', 16, 'bold'), fg='#000066', bg='#fcc917').place(x=1040, y=185)
- # rows
- Label(vertrekinfo_scherm, text=vertrek_tijd, font=('Helvetica', 10, 'bold'), fg='#000066', bg='#fcc917').place(x=455, y=215)
- Label(vertrekinfo_scherm, text=eind_bestemming, font=('Helvetica', 10, 'bold'), fg='#000066', bg='#fcc917').place(x=635, y=215)
- Label(vertrekinfo_scherm, text=trein_soort, font=('Helvetica', 10, 'bold'), fg='#000066', bg='#fcc917').place(x=860, y=215)
- Label(vertrekinfo_scherm, text=vertrek_spoor, font=('Helvetica', 10, 'bold'), fg='#000066', bg='#fcc917').place(x=1055, y=215)
- except:
- print('De ingevoerde station is niet correct')
- startscherm.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement