diff options
author | raylu <raylu@gridium.com> | 2013-10-20 03:07:32 -0700 |
---|---|---|
committer | raylu <raylu@gridium.com> | 2013-10-20 03:19:40 -0700 |
commit | 031daa32bbe11417d0dfb968dfbf888f0dc65d86 (patch) | |
tree | 33491f786aa8edf5b6548b1d5e518a2834e4c0a9 /server.py | |
parent | 585ad90d3cc59ad7d4fd306170b710699e48efda (diff) | |
download | ykill-031daa32bbe11417d0dfb968dfbf888f0dc65d86.tar.xz |
rewrite as api
Diffstat (limited to 'server.py')
-rwxr-xr-x | server.py | 68 |
1 files changed, 10 insertions, 58 deletions
@@ -1,8 +1,5 @@ #!/usr/bin/env python3 -from collections import defaultdict -import json -import operator import os import cleancss @@ -11,11 +8,11 @@ import tornado.ioloop import tornado.web from config import web as config -import db +import web.api class BaseHandler(tornado.web.RequestHandler): def render(self, *args, **kwargs): - kwargs['host'] = config.host + kwargs['api_host'] = config.api_host return super(BaseHandler, self).render(*args, **kwargs) def render_string(self, *args, **kwargs): @@ -28,60 +25,15 @@ class MainHandler(BaseHandler): class SearchHandler(BaseHandler): def get(self): - q = self.get_argument('q') - with db.cursor() as c: - corps = db.query(c, ''' - SELECT DISTINCT corporation_id, corporation_name FROM characters - WHERE corporation_name LIKE ? - ''', '%{}%'.format(q)) - self.render('search.html', corps=corps) + self.render('search.html') class CorporationHandler(BaseHandler): - def get(self, 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 - WHERE corporation_id = ? - ''', corp_id) - kill_ids = list(map(operator.itemgetter('kill_id'), kills)) - char_rows = db.query(c, ''' - SELECT - kill_id, victim, final_blow, - character_id, character_name, corporation_id, corporation_name, alliance_id, alliance_name, faction_id, faction_name - FROM characters - WHERE kill_id IN ({}) - '''.format(','.join(map(str, kill_ids)))) - characters = defaultdict(dict) - for char in char_rows: - kill_id = char['kill_id'] - if char['victim']: - characters[kill_id]['victim'] = char - elif char['final_blow']: - characters[kill_id]['final_blow'] = char - for kill in kills: - chars = characters[kill['kill_id']] - kill['victim'] = chars['victim'] - kill['final_blow'] = chars['final_blow'] - self.render('corporation.html', kills=kills) + def get(self): + self.render('corporation.html') class KillHandler(BaseHandler): - def get(self, 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 - 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 - FROM characters - JOIN eve.invTypes on ship_type_id = typeID - WHERE kill_id = ? - ''', kill_id) - self.render('kill.html', kill=kill, characters=characters) + def get(self): + self.render('kill.html') class CSSHandler(tornado.web.RequestHandler): def get(self, css_path): @@ -95,13 +47,13 @@ if __name__ == '__main__': handlers=[ (r'/', MainHandler), (r'/search', SearchHandler), - (r'/corporation/(.+)', CorporationHandler), - (r'/kill/(.+)', KillHandler), + (r'/corporation/.+', CorporationHandler), + (r'/kill/.+', KillHandler), (r'/(css/.+)\.css', CSSHandler), ], template_path=os.path.join(os.path.dirname(__file__), 'web/templates'), - cookie_secret=config.cookie_secret, debug=config.debug, ).listen(config.port) + web.api.start() print('listening on :%d' % config.port) tornado.ioloop.IOLoop.instance().start() |