ソースを参照

server: allow node query by alias, too

Helge Jung 9 年 前
コミット
3cc4b8ff41
1 ファイル変更10 行追加4 行削除
  1. 10 4
      ffstatus/server.py

+ 10 - 4
ffstatus/server.py

@@ -144,23 +144,29 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
 		self.wfile.write('</tbody>\n')
 		self.wfile.write('</table>\n')
 
-	def respond_node(self, nodeid):
+	def respond_node(self, rawid):
 		"""Display node data."""
 
 		storage = self.server.storage
+		nodeid = rawid
 
-		if nodeid == 'ff00ff00ff00':
+		if rawid == 'ff00ff00ff00':
 			self.send_headers('text/json')
 			self.wfile.write(json.dumps({
 				'name': 'API-Example',
-				'nodeid': nodeid,
+				'nodeid': rawid,
 				'META': 'Dies ist ein minimaler Beispiel-Datensatz. Herzlichen Glückwunsch, du hast das Prinzip der API kapiert.',
 			}))
 			return
 
+		if not rawid in storage.data:
+			for n in storage.data:
+				if 'aliases' in storage.data[n] and rawid in storage.data[n]['aliases']:
+					nodeid = n
+
 		# handle unknown nodes
 		if not nodeid in storage.data:
-			self.send_error(404, 'No node with id \'' + nodeid + '\' present.')
+			self.send_error(404, 'No node with id \'' + rawid + '\' present.')
 			return
 
 		# dump node data as JSON