diff options
-rw-r--r-- | db/__init__.py | 2 | ||||
-rwxr-xr-x | db/importer.py | 2 | ||||
-rwxr-xr-x | server.py | 26 | ||||
-rw-r--r-- | web/static/css/base.ccss | 3 | ||||
-rw-r--r-- | web/templates/home.html | 30 | ||||
-rw-r--r-- | web/templates/kill.html | 30 | ||||
-rw-r--r-- | web/templates/search.html | 12 |
7 files changed, 62 insertions, 43 deletions
diff --git a/db/__init__.py b/db/__init__.py index ead5232..92837a2 100644 --- a/db/__init__.py +++ b/db/__init__.py @@ -4,7 +4,7 @@ from config import db as dbconfig conn = oursql.connect(host=dbconfig.host, db=dbconfig.database, user=dbconfig.user, passwd=dbconfig.password, autoreconnect=True) -def ykill_cursor(): +def cursor(): return conn.cursor(oursql.DictCursor) def execute(cursor, sql, *values): diff --git a/db/importer.py b/db/importer.py index 39f97ce..4f8f4b4 100755 --- a/db/importer.py +++ b/db/importer.py @@ -5,7 +5,7 @@ from pprint import pprint import __init__ as db -with db.ykill_cursor() as c: +with db.cursor() as c: db.execute(c, 'INSERT INTO kills (kill_id, solar_system_id, kill_time, moon_id) VALUES(?, ?, ?, ?)', kill['killID'], kill['solarSystemID'], kill['killTime'], kill['moonID']) @@ -5,12 +5,12 @@ import operator import os import cleancss -import tornado.gen import tornado.httpclient import tornado.ioloop import tornado.web from config import web as config +import db class BaseHandler(tornado.web.RequestHandler): def render(self, *args, **kwargs): @@ -22,18 +22,18 @@ class BaseHandler(tornado.web.RequestHandler): return s.replace(b'\n', b'') # this is like Django's {% spaceless %} class MainHandler(BaseHandler): - @tornado.web.asynchronous - @tornado.gen.coroutine def get(self): - http_client = tornado.httpclient.AsyncHTTPClient() - kills_url = 'https://zkillboard.com/api/kills/corporationID/98182803/limit/1' - losses_url = 'https://zkillboard.com/api/losses/corporationID/98182803/limit/1' - kills_res, losses_res = yield [http_client.fetch(kills_url), http_client.fetch(losses_url)] - kills = json.loads(kills_res.body.decode('utf-8')) - losses = json.loads(losses_res.body.decode('utf-8')) - kills = sorted(kills + losses, key=operator.itemgetter('killTime'), reverse=True) - self.render('home.html', kills=kills) + self.render('home.html') +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) class CSSHandler(tornado.web.RequestHandler): def get(self, css_path): @@ -47,10 +47,10 @@ if __name__ == '__main__': tornado.web.Application( handlers=[ (r'/', MainHandler), + (r'/search', SearchHandler), (r"/(css/.+)\.css", CSSHandler), ], - template_path=os.path.join(os.path.dirname(__file__), 'templates'), - static_path=os.path.join(os.path.dirname(__file__), 'static'), + template_path=os.path.join(os.path.dirname(__file__), 'web/templates'), cookie_secret=config.cookie_secret, debug=config.debug, ).listen(config.port) diff --git a/web/static/css/base.ccss b/web/static/css/base.ccss index e515323..9419e3f 100644 --- a/web/static/css/base.ccss +++ b/web/static/css/base.ccss @@ -13,14 +13,13 @@ body: a: text-decoration: none; - color: #dde; + color: #38c; form: input: background: #fff; border: 1px solid #cdd; padding: 5px 10px; - } .clear: clear: both; diff --git a/web/templates/home.html b/web/templates/home.html index 6d4f69c..34fe371 100644 --- a/web/templates/home.html +++ b/web/templates/home.html @@ -1,30 +1,8 @@ {% extends "base.html" %} {% block main %} - -<div class="kill_list"> - {% for kill in kills %} - <a href="/kill/{{ kill['killID'] }}"> - {{ kill['killTime'] }} - {{ kill['solarSystemID'] }} - <img src="//image.eveonline.com/Type/{{ kill['victim']['shipTypeID'] }}_64.png"> - <img src="//image.eveonline.com/Character/{{ kill['victim']['characterID'] }}_64.jpg"> - <img src="//image.eveonline.com/Corporation/{{ kill['victim']['corporationID'] }}_64.png"> - <img src="//image.eveonline.com/Alliance/{{ kill['victim']['allianceID'] }}_64.png"> - {{ kill['victim']['characterName'] }} - {{ kill['victim']['corporationName'] }} - {{ kill['victim']['allianceName'] }} - {% for attacker in kill['attackers'] %} - {% if attacker['finalBlow'] %} - {% set killer = attacker %} - {% break %} - {% end %} - {% end %} - {{ killer['characterName'] }} - {{ killer['corporationName'] }} - {{ killer['allianceName'] }} - </a> - {% end %} -</div> - +<form method="get" action="/search"> + <input type="text" name="q"> + <input type="submit"> +</form> {% end %} diff --git a/web/templates/kill.html b/web/templates/kill.html new file mode 100644 index 0000000..6d4f69c --- /dev/null +++ b/web/templates/kill.html @@ -0,0 +1,30 @@ +{% extends "base.html" %} + +{% block main %} + +<div class="kill_list"> + {% for kill in kills %} + <a href="/kill/{{ kill['killID'] }}"> + {{ kill['killTime'] }} + {{ kill['solarSystemID'] }} + <img src="//image.eveonline.com/Type/{{ kill['victim']['shipTypeID'] }}_64.png"> + <img src="//image.eveonline.com/Character/{{ kill['victim']['characterID'] }}_64.jpg"> + <img src="//image.eveonline.com/Corporation/{{ kill['victim']['corporationID'] }}_64.png"> + <img src="//image.eveonline.com/Alliance/{{ kill['victim']['allianceID'] }}_64.png"> + {{ kill['victim']['characterName'] }} + {{ kill['victim']['corporationName'] }} + {{ kill['victim']['allianceName'] }} + {% for attacker in kill['attackers'] %} + {% if attacker['finalBlow'] %} + {% set killer = attacker %} + {% break %} + {% end %} + {% end %} + {{ killer['characterName'] }} + {{ killer['corporationName'] }} + {{ killer['allianceName'] }} + </a> + {% end %} +</div> + +{% end %} diff --git a/web/templates/search.html b/web/templates/search.html new file mode 100644 index 0000000..03980af --- /dev/null +++ b/web/templates/search.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} + +{% block main %} + +<h2>Corporations</h2> +{% for corp in corps %} + <a href="/corporation/{{ corp['corporation_id'] }}"> + {{ corp['corporation_name'] }} + </a> +{% end %} + +{% end %} |