summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--db/__init__.py2
-rwxr-xr-xdb/importer.py2
-rwxr-xr-xserver.py26
-rw-r--r--web/static/css/base.ccss3
-rw-r--r--web/templates/home.html30
-rw-r--r--web/templates/kill.html30
-rw-r--r--web/templates/search.html12
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'])
diff --git a/server.py b/server.py
index 7dcf2d3..8c87850 100755
--- a/server.py
+++ b/server.py
@@ -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 %}