瀏覽代碼

show more character and item data on kills

raylu 12 年之前
父節點
當前提交
4cd3be430d
共有 4 個文件被更改,包括 40 次插入8 次删除
  1. 16 7
      db/queries.py
  2. 1 1
      web/api.py
  3. 21 0
      web/static/js/kill.js
  4. 2 0
      web/templates/kill.html

+ 16 - 7
db/queries.py

@@ -14,7 +14,7 @@ def corporation(corp_id):
 	with db.cursor() as c:
 		kills = db.query(c, '''
 			SELECT DISTINCT(kills.kill_id), kill_time FROM kills
-			JOIN characters on characters.kill_id = kills.kill_id
+			JOIN characters ON characters.kill_id = kills.kill_id
 			WHERE corporation_id = ?
 			''', corp_id)
 		kill_ids = list(map(operator.itemgetter('kill_id'), kills))
@@ -42,15 +42,24 @@ def kill(kill_id):
 	with db.cursor() as c:
 		kill = db.get(c, '''
 			SELECT kill_time, solarSystemName, security FROM kills
-			JOIN eve.mapSolarSystems on solar_system_id = solarSystemID
+			JOIN eve.mapSolarSystems ON solar_system_id = solarSystemID
 			WHERE kill_id = ?
 			''', kill_id)
 		characters = db.query(c, '''
-			SELECT ship_type_id, character_id, character_name,
-				corporation_id, corporation_name, alliance_id, alliance_name, faction_id, faction_name
-				typeName
+			SELECT character_id, character_name, damage, victim, final_blow,
+				corporation_id, corporation_name, alliance_id, alliance_name, faction_id, faction_name,
+				ship_type_id, weapon_type_id,
+				ship.typeName AS ship_name, weapon.typeName AS weapon_name
 			FROM characters
-			JOIN eve.invTypes on ship_type_id = typeID
+			JOIN eve.invTypes AS ship ON ship_type_id = ship.typeID
+			LEFT JOIN eve.invTypes AS weapon ON weapon_type_id = weapon.typeID
 			WHERE kill_id = ?
 			''', kill_id)
-	return {'kill': kill, 'characters': characters}
+		items = db.query(c, '''
+			SELECT type_id, flag, dropped, destroyed, singleton,
+				typeName AS item_name
+			FROM items
+			JOIN eve.invTypes ON type_id = typeID
+			WHERE kill_id = ? ORDER BY flag ASC
+			''', kill_id)
+	return {'kill': kill, 'characters': characters, 'items': items}

+ 1 - 1
web/api.py

@@ -22,7 +22,7 @@ class APIHandler(tornado.web.RequestHandler):
 
 	def respond_json(self, data):
 		self.set_header('Content-Type', 'application/json; charset=UTF-8')
-		for chunk in JSONDateEncoder().iterencode(data):
+		for chunk in JSONDateEncoder(indent='\t').iterencode(data):
 			self.write(chunk)
 		self.finish()
 

+ 21 - 0
web/static/js/kill.js

@@ -24,6 +24,27 @@ window.addEvent('domready', function() {
 				}));
 				div.appendText(char['alliance_name']);
 			}
+			div.adopt(new Element('img', {
+				'src': '//image.eveonline.com/Type/' + char['ship_type_id'] + '_32.png',
+				'alt': char['ship_name'],
+			}));
+			if (!char['victim']) {
+				div.adopt(new Element('img', {
+					'src': '//image.eveonline.com/Type/' + char['weapon_type_id'] + '_32.png',
+					'alt': char['weapon_name'],
+				}));
+			}
+			div.appendText(char['damage']);
+			div.adopt(new Element('br'));
+		});
+
+		div = $('items');
+		data.items.each(function(item) {
+			div.adopt(new Element('img', {
+				'src': '//image.eveonline.com/Type/' + item['type_id'] + '_32.png',
+				'alt': item['item_name'],
+			}));
+			div.appendText(item['item_name'] + ' (' + item['dropped'] + ',' + item['destroyed'] + ')');
 			div.adopt(new Element('br'));
 		});
 	});

+ 2 - 0
web/templates/kill.html

@@ -11,4 +11,6 @@
 
 <div id="characters"></div>
 
+<div id="items"></div>
+
 {% end %}