Odjezdova-tabule-MHD/server/main.py

64 lines
1.2 KiB
Python

from departures import Departure
from time import sleep
from lora import lora_controller
import threading
class MainLoop:
def __init__(self, stop_id, controller):
self.ended = False
self.stop_id = stop_id
self.controller = controller
self.thread = threading.Thread(target=self.update_loop)
self.thread.start()
def update_loop(self):
refetch = 0
regenerate = 0
while True:
if self.ended:
break
if regenerate == 0:
self.controller.generate_token()
if refetch == 0:
self.controller.time()
Departure.fetch(self.stop_id, 10)
refetch = (refetch + 1) % 3
regenerate = (regenerate + 1) % (6*30)
sleep(.1)
Departure.clear()
sleep(10)
def input_loop(self):
while not self.ended:
print("> ", end="")
command = input()
if command == "d":
print("")
for did in Departure.storage:
print(Departure.storage[did])
print("")
if command == "q":
print("")
for m in self.controller.message_pool:
print(m)
print("")
if command == "s":
print("Stopping...")
self.ended = True
self.controller.message_pool = []
main_loop = MainLoop("40", lora_controller)
main_loop.input_loop()