-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathserver.py
53 lines (39 loc) · 1.54 KB
/
server.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
# noinspection PyProtectedMember
from os import _exit as osexit
from controllers import datactl
from controllers.messagectl import MessageController
from controllers.socketctl import SocketController
from dataconstants import EVENT
from interface import printing
from interface.header import print_header
from interface.input_handler import InputHandler
from interface.logger import log
from tba.tba_saver import TBASaver
class Server:
def __init__(self):
log('server.main', '+' * 20)
log('server.main', 'Server started')
print_header()
self.input_handler = InputHandler(self)
self.data_controller = datactl.DataController()
msgctl = MessageController(self.data_controller)
self.socketctl = SocketController(msgctl.handle_msg)
self.tba = TBASaver(EVENT)
def main(self):
self.input_handler.start_listening()
printing.printf('Waiting for connections', style=printing.STATUS, log=True, logtag='server.main')
self.socketctl.start_connecting()
while True:
try:
self.data_controller.update()
except KeyboardInterrupt:
# Make sure everything made it into the data file
self.data_controller.update()
self.socketctl.close()
log('server.main', 'Server stopped')
log('server.main', '-' * 20)
# Quit everything (closes all the many threads)
osexit(1)
if __name__ == '__main__':
server = Server()
server.main()