feat: add initial ammo chart, update dbs, and update docs.

This commit is contained in:
2026-04-10 22:30:47 +00:00
parent 41c09b9252
commit b45b03b737
7 changed files with 875 additions and 0 deletions
+35
View File
@@ -1102,5 +1102,40 @@ def barters():
return render_template("barters.html", barters=barter_list)
@app.route("/ammo")
def ammo():
caliber_filter = request.args.get("caliber", "").strip()
search = request.args.get("q", "").strip().lower()
conn = get_db()
try:
exists = conn.execute(
"SELECT name FROM sqlite_master WHERE type='table' AND name='ammo'"
).fetchone()
if not exists:
return render_template("ammo.html", rounds=[], calibers=[], caliber=caliber_filter, q=search)
calibers = [r["caliber"] for r in conn.execute(
"SELECT DISTINCT caliber FROM ammo WHERE caliber IS NOT NULL ORDER BY caliber"
).fetchall()]
query = "SELECT * FROM ammo WHERE 1=1"
params = []
if caliber_filter:
query += " AND caliber = ?"
params.append(caliber_filter)
if search:
query += " AND (LOWER(name) LIKE ? OR LOWER(short_name) LIKE ?)"
params.extend([f"%{search}%", f"%{search}%"])
query += " ORDER BY caliber, penetration_power DESC"
rows = conn.execute(query, params).fetchall()
rounds = [dict(r) for r in rows]
finally:
conn.close()
return render_template("ammo.html", rounds=rounds, calibers=calibers, caliber=caliber_filter, q=search)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000, debug=True)