|
@@ -9,8 +9,6 @@ import json
|
|
|
import re
|
|
|
|
|
|
class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
|
|
|
- storage = Storage()
|
|
|
-
|
|
|
def do_GET(self):
|
|
|
url = self.path
|
|
|
|
|
@@ -31,6 +29,8 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
|
|
|
self.send_header('Expires', '0')
|
|
|
|
|
|
def respond_index(self):
|
|
|
+ storage = self.server.storage
|
|
|
+
|
|
|
self.send_response(200)
|
|
|
self.send_header('Content-Type', 'text/html; charset=utf-8')
|
|
|
self.send_nocache_headers()
|
|
@@ -46,7 +46,7 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
|
|
|
|
|
|
self.wfile.write('<H2>Status</H2>\n')
|
|
|
self.wfile.write('Daten: <span id="datacount" class="value">')
|
|
|
- self.wfile.write(len(self.storage.data))
|
|
|
+ self.wfile.write(len(storage.data))
|
|
|
self.wfile.write('</span>\n')
|
|
|
|
|
|
self.wfile.write('<H2>API</H2>\n')
|
|
@@ -58,6 +58,8 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
|
|
|
self.wfile.write('</body></html>')
|
|
|
|
|
|
def respond_node(self, nodeid):
|
|
|
+ storage = self.server.storage
|
|
|
+
|
|
|
if nodeid == 'ff00ff00ff00':
|
|
|
self.send_response(200)
|
|
|
self.send_header('Content-Type', 'text/json')
|
|
@@ -70,7 +72,7 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
|
|
|
}))
|
|
|
return
|
|
|
|
|
|
- if not nodeid in self.storage.data:
|
|
|
+ if not nodeid in storage.data:
|
|
|
self.send_error(404, 'No node with id \'' + nodeid + '\' present.')
|
|
|
return
|
|
|
|
|
@@ -78,9 +80,16 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
|
|
|
self.send_headers('Content-Type', 'text/json')
|
|
|
self.send_nocache_headers()
|
|
|
self.end_headers()
|
|
|
- self.wfile.write(json.dumps(self.storage.data[nodeid]))
|
|
|
+ self.wfile.write(json.dumps(storage.data[nodeid]))
|
|
|
+
|
|
|
+class ApiServer(HTTPServer):
|
|
|
+ def __init__(self, endpoint, storage):
|
|
|
+ HTTPServer.__init__(self, endpoint, BatcaveHttpRequestHandler)
|
|
|
+ self.storage = storage
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
- server = HTTPServer(('localhost', 8888), BatcaveHttpRequestHandler)
|
|
|
+ dummystorage = Storage()
|
|
|
+ server = ApiServer(('0.0.0.0', 8888), dummystorage)
|
|
|
+
|
|
|
print("Server:", str(server))
|
|
|
server.serve_forever()
|