summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--db/queries.py14
-rwxr-xr-ximporter.py11
-rwxr-xr-xserver.py8
-rw-r--r--web/api.py8
-rw-r--r--web/static/css/kill_list.ccss (renamed from web/static/css/corporation.ccss)3
-rw-r--r--web/static/js/kill_list.js (renamed from web/static/js/corporation.js)12
-rw-r--r--web/templates/kill_list.html (renamed from web/templates/corporation.html)4
7 files changed, 34 insertions, 26 deletions
diff --git a/db/queries.py b/db/queries.py
index a770667..1e10629 100644
--- a/db/queries.py
+++ b/db/queries.py
@@ -19,7 +19,7 @@ def search(q):
''', like_str)
return {'alliances': alliances, 'corporations': corps, 'characters': chars}
-def corporation(corp_id):
+def kill_list(entity_type, entity_id):
with db.cursor() as c:
kills = db.query(c, '''
SELECT DISTINCT(kills.kill_id), kill_time, cost,
@@ -29,8 +29,8 @@ def corporation(corp_id):
JOIN kill_costs ON kill_costs.kill_id = kills.kill_id
JOIN eve.mapSolarSystems ON solar_system_id = solarSystemID
JOIN eve.mapRegions ON mapSolarSystems.regionID = mapRegions.regionID
- WHERE corporation_id = ? LIMIT 100
- ''', corp_id)
+ WHERE {}_id = ? LIMIT 100
+ '''.format(entity_type), entity_id)
kill_ids = list(map(operator.itemgetter('kill_id'), kills))
char_rows = db.query(c, '''
SELECT
@@ -42,7 +42,7 @@ def corporation(corp_id):
WHERE kill_id IN ({})
'''.format(','.join(map(str, kill_ids))))
characters = defaultdict(dict)
- corp_name = None
+ entity_name = None
for kill_id in kill_ids:
characters[kill_id]['attackers'] = 1 # count final_blow now
for char in char_rows:
@@ -53,15 +53,15 @@ def corporation(corp_id):
characters[kill_id]['final_blow'] = char
else:
characters[kill_id]['attackers'] += 1
- if corp_name is None and char['corporation_id'] == corp_id:
- corp_name = char['corporation_name']
+ if entity_name is None and char[entity_type + '_id'] == entity_id:
+ entity_name = char[entity_type + '_name']
for kill in kills:
kill['kill_time'] = _format_kill_time(kill['kill_time'])
chars = characters[kill['kill_id']]
kill['victim'] = chars['victim']
kill['final_blow'] = chars['final_blow']
kill['attackers'] = chars['attackers']
- return {'corporation_name': corp_name, 'kills': kills}
+ return {'entity_name': entity_name, 'kills': kills}
def kill(kill_id):
with db.cursor() as c:
diff --git a/importer.py b/importer.py
index 2ce4877..d735c22 100755
--- a/importer.py
+++ b/importer.py
@@ -18,9 +18,6 @@ def insert_kill(c, kill):
print('duplicate:', kill['killID'])
return
raise
- except TypeError:
- print(kill)
- raise
victim = kill['victim']
parambatch = [(
@@ -93,8 +90,12 @@ def main():
print(repr(e))
break
print('inserting', len(kills), 'kills')
- for kill in kills:
- insert_kill(c, kill)
+ try:
+ for kill in kills:
+ insert_kill(c, kill)
+ except TypeError as e:
+ print(repr(e), kills)
+ break
db.conn.commit()
last_kill_id = kills[-1]['killID']
last_request_time = now
diff --git a/server.py b/server.py
index c68aaaf..d7f8fae 100755
--- a/server.py
+++ b/server.py
@@ -27,9 +27,9 @@ class SearchHandler(BaseHandler):
def get(self):
self.render('search.html')
-class CorporationHandler(BaseHandler):
- def get(self):
- self.render('corporation.html')
+class KillListHandler(BaseHandler):
+ def get(self, entity_type):
+ self.render('kill_list.html')
class KillHandler(BaseHandler):
def get(self):
@@ -47,7 +47,7 @@ if __name__ == '__main__':
handlers=[
(r'/', MainHandler),
(r'/search', SearchHandler),
- (r'/corporation/.+', CorporationHandler),
+ (r'/(alliance|corporation|character)/.+', KillListHandler),
(r'/kill/.+', KillHandler),
(r'/(css/.+)\.css', CSSHandler),
],
diff --git a/web/api.py b/web/api.py
index 523880b..5f21441 100644
--- a/web/api.py
+++ b/web/api.py
@@ -29,9 +29,9 @@ class SearchHandler(APIHandler):
data = db.queries.search(q)
self.respond_json(data)
-class CorporationHandler(APIHandler):
- def get(self, corp_id):
- kills = db.queries.corporation(int(corp_id))
+class KillListHandler(APIHandler):
+ def get(self, entity_type, entity_id):
+ kills = db.queries.kill_list(entity_type, int(entity_id))
self.respond_json(kills)
class KillHandler(APIHandler):
@@ -43,7 +43,7 @@ def start():
tornado.web.Application(
handlers=[
(r'/search', SearchHandler),
- (r'/corporation/(.+)', CorporationHandler),
+ (r'/(alliance|corporation|character)/(.+)', KillListHandler),
(r'/kill/(.+)', KillHandler),
],
debug=config.debug,
diff --git a/web/static/css/corporation.ccss b/web/static/css/kill_list.ccss
index 575a040..3985a58 100644
--- a/web/static/css/corporation.ccss
+++ b/web/static/css/kill_list.ccss
@@ -22,3 +22,6 @@ table#kills:
td:nth-child(7):
text-align: right
+
+ .loss:
+ color: #a44
diff --git a/web/static/js/corporation.js b/web/static/js/kill_list.js
index 606ce3e..c8341c8 100644
--- a/web/static/js/corporation.js
+++ b/web/static/js/kill_list.js
@@ -1,8 +1,10 @@
window.addEvent('domready', function() {
- var corp_id = document.location.pathname.split('/').getLast();
- ykill.api('/corporation/' + corp_id, function(data) {
- if (data['corporation_name'])
- document.title += ' - ' + data['corporation_name'];
+ var split = document.location.pathname.split('/');
+ var entity_type = split[1];
+ var entity_id = split[2];
+ ykill.api(document.location.pathname, function(data) {
+ if (data['entity_name'])
+ document.title += ' - ' + data['entity_name'];
var table = $('kills').getChildren('tbody')[0];
data['kills'].each(function(kill) {
@@ -62,6 +64,8 @@ window.addEvent('domready', function() {
td = new Element('td');
var millions = kill['cost'] / (100 * 1000000);
td.appendText(ykill.format_isk(millions));
+ if (victim[entity_type + '_id'] == entity_id)
+ td.addClass('loss');
tr.grab(td);
table.grab(tr);
diff --git a/web/templates/corporation.html b/web/templates/kill_list.html
index c8550d7..1c672d3 100644
--- a/web/templates/corporation.html
+++ b/web/templates/kill_list.html
@@ -1,11 +1,11 @@
{% extends "base.html" %}
{% block js %}
- <script src="/static/js/corporation.js"></script>
+ <script src="/static/js/kill_list.js"></script>
{% end %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/css/corporation.css" />
+ <link rel="stylesheet" type="text/css" href="/css/kill_list.css" />
{% end %}
{% block main %}