Implement TFW controller after months of pain and suffering ¯\_(ツ)_/¯

This commit is contained in:
Kristóf Tóth 2018-07-20 14:41:53 +02:00
parent 69721039eb
commit 67b630401b
1 changed files with 39 additions and 0 deletions

39
controller/opt/server.py Normal file
View File

@ -0,0 +1,39 @@
import os
import json
from tornado.ioloop import IOLoop
from tornado.web import RequestHandler, Application
from tfw import FSMAwareEventHandler
class ControllerPostHandler(RequestHandler):
# pylint: disable=abstract-method
def initialize(self, **kwargs): # pylint: disable=arguments-differ
self.controller = kwargs['controller']
def post(self, *args, **kwargs):
self.set_header('Content-Type', 'application/json')
self.write(json.dumps({
'solved': self.controller.in_accepted_state
}))
class ControllerEventHandler(FSMAwareEventHandler):
def handle_event(self, message):
pass
if __name__ == '__main__':
controller = ControllerEventHandler('controller')
application = Application([(
f'/{os.environ["SECRET"]}',
ControllerPostHandler,
{'controller': controller}
)])
application.listen(os.environ['CONTROLLER_PORT'])
try:
IOLoop.instance().start()
finally:
controller.cleanup()