Sfoglia il codice sorgente

server: add send_headers() helper function

Helge Jung 9 anni fa
parent
commit
f9cd33222e
1 ha cambiato i file con 11 aggiunte e 21 eliminazioni
  1. 11 21
      ffstatus/server.py

+ 11 - 21
ffstatus/server.py

@@ -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):