#!/usr/bin/env python3 # # -*- coding: utf-8 -*- import sys import base64 import re from bottle import route, run, static_file, view sys.path.append("../../convert/31-2") from db import * db.bind(provider="sqlite", filename="../../clean/31-2/data.sqlite3") db.generate_mapping() @route("/weapon/") @view("weapon") def weapon(name): with db_session: query = select(w for w in Melee if w.name == name) if query.count() == 0: query = select(w for w in Shield if w.name == name) weapon = query.first() if query.count() == 0: query = select(w for w in Ranged if w.name == name) weapon = query.first() if weapon.mechanism: mechanism, _ = re.subn( r"{(.*?)@(.*?)}", r"\1", weapon.mechanism ) else: mechanism = "" stats_map = { 1: "brutality", 2: "survival", 3: "minotaur", 4: "tactics", 5: "assassin", 6: "guardian", } return { "title": name, "icon": base64.b64encode(weapon.icon), "mechanism": mechanism, "description": weapon.description, "stats": stats_map[weapon.stats], } @route("/outfit/") @view("outfit") def weapon(name): with db_session: query = Outfit.select(name=name) outfit = query.first() return { "title": name, "icon": base64.b64encode(outfit.icon), "description": outfit.description, "preview": base64.b64encode(outfit.preview), } @route("/static/") def server_static(filepath): return static_file(filepath, root="./static") run(host="localhost", port=8080)