/
Livestatus.py
56 lines (41 loc) · 1.71 KB
/
Livestatus.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import json
import threading
import time
import server_requests
import tkinter as tk
from tkinter import ttk
def get_url(server):
return f"https://panel.simrail.eu:8084/stations-open?serverCode={server.lower()}"
class MainWindow(tk.Tk):
def __init__(self):
super().__init__()
self.title("Live Status")
self.resizable(False, False)
self.notebook = ttk.Notebook(self)
self.notebook.grid(row=0, column=0, sticky='nsew')
jsonstring = json.load(open('config.txt'))
self.url = jsonstring['url']
self.servers = server_requests.get_server(self.url,jsonstring['exclude_server'])
self.listboxes = {}
for server in self.servers:
tab = tk.Frame(self.notebook)
self.notebook.add(tab, text=server['servercode'])
self.listboxes[server['servercode']] = tk.Listbox(tab, width=50, height=20)
self.listboxes[server['servercode']].grid(row=0, column=0)
self.update_data()
def update_data(self):
for server in self.servers:
self.listboxes[server['servercode']].delete(0, tk.END)
stations = server_requests.get_data(server['servercode'],self.url)
for station in stations:
if station['available']:
self.listboxes[server['servercode']].insert(
tk.END, f'\u2705 {station["name"]}')
else:
self.listboxes[server['servercode']].insert(
tk.END, f'\u274C {station["name"]}')
time.sleep(1)
threading.Thread(target=self.update_data).start()
if __name__ == '__main__':
window = MainWindow()
window.mainloop()