diff options
author | raylu <raylu@gridium.com> | 2013-10-22 19:29:47 -0700 |
---|---|---|
committer | raylu <raylu@gridium.com> | 2013-10-22 19:30:38 -0700 |
commit | 0dea8f430e4905da98d7009bdf111e0965fedd22 (patch) | |
tree | bc15ef1accedd36af12db9023becb8eb55cd3229 | |
parent | 1b81975f1fb3d1341cad30061dc195581e2264b6 (diff) | |
download | ykill-0dea8f430e4905da98d7009bdf111e0965fedd22.tar.xz |
alliance and character pages
-rw-r--r-- | db/queries.py | 14 | ||||
-rwxr-xr-x | importer.py | 11 | ||||
-rwxr-xr-x | server.py | 8 | ||||
-rw-r--r-- | web/api.py | 8 | ||||
-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 @@ -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), ], @@ -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 %} |