|
@@ -55,14 +55,16 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
|
|
|
self.send_header('Pragma', 'no-cache')
|
|
|
self.send_header('Expires', '0')
|
|
|
|
|
|
- def respond_index(self, query):
|
|
|
- storagy = self.server.storage
|
|
|
-
|
|
|
+ def send_headers(self, content_type='text/html; charset=utf-8', nocache=True):
|
|
|
self.send_response(200)
|
|
|
- self.send_header('Content-Type', 'text/html; charset=utf-8')
|
|
|
- self.send_nocache_headers()
|
|
|
+ self.send_header('Content-Type', content_type)
|
|
|
+ if nocache: self.send_nocache_headers()
|
|
|
self.end_headers()
|
|
|
|
|
|
+ def respond_index(self, query):
|
|
|
+ storagy = self.server.storage
|
|
|
+ self.send_headers()
|
|
|
+
|
|
|
self.wfile.write('<!DOCTYPE html><html><head><title>BATCAVE</title></head>\n')
|
|
|
self.wfile.write('<body>\n')
|
|
|
self.wfile.write('<H1 title="Batman/Alfred Transmission Collection, Aggregation & Value Engine">BATCAVE</H1>\n')
|
|
@@ -86,10 +88,7 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
|
|
|
|
|
|
def respond_list(self, query):
|
|
|
storage = self.server.storage
|
|
|
- self.send_response(200)
|
|
|
- self.send_header('Content-Type', 'text/html')
|
|
|
- self.send_nocache_headers()
|
|
|
- self.end_headers()
|
|
|
+ self.send_headers()
|
|
|
|
|
|
self.wfile.write('<!DOCTYPE html><html><head><title>BATCAVE</title></head>\n')
|
|
|
self.wfile.write('<body>\n')
|
|
@@ -119,10 +118,7 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
|
|
|
storage = self.server.storage
|
|
|
|
|
|
if nodeid == 'ff00ff00ff00':
|
|
|
- self.send_response(200)
|
|
|
- self.send_header('Content-Type', 'text/json')
|
|
|
- self.send_nocache_headers()
|
|
|
- self.end_headers()
|
|
|
+ self.send_headers('text/json')
|
|
|
self.wfile.write(json.dumps({
|
|
|
'name': 'API-Example',
|
|
|
'nodeid': nodeid,
|
|
@@ -134,10 +130,7 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
|
|
|
self.send_error(404, 'No node with id \'' + nodeid + '\' present.')
|
|
|
return
|
|
|
|
|
|
- self.send_response(200)
|
|
|
- self.send_header('Content-Type', 'text/json')
|
|
|
- self.send_nocache_headers()
|
|
|
- self.end_headers()
|
|
|
+ self.send_headers('text/json')
|
|
|
self.wfile.write(json.dumps(storage.data[nodeid]))
|
|
|
|
|
|
def respond_nodedetail(self, nodeid, field):
|
|
@@ -153,10 +146,7 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
|
|
|
|
|
|
value = storage.data[nodeid][field]
|
|
|
|
|
|
- self.send_response(200)
|
|
|
- self.send_header('Content-Type', 'text/plain' if isinstance(value, basestring) else 'text/json')
|
|
|
- self.send_nocache_headers()
|
|
|
- self.end_headers()
|
|
|
+ self.send_headers('text/plain' if isinstance(value, basestring) else 'text/json')
|
|
|
self.wfile.write(value if isinstance(value, basestring) else json.dumps(value))
|
|
|
|
|
|
class ApiServer(ThreadingMixIn, HTTPServer):
|