diff --git a/acks/quest/views.py b/acks/quest/views.py index 35642fe..e8013cc 100644 --- a/acks/quest/views.py +++ b/acks/quest/views.py @@ -39,37 +39,3 @@ def quest_detail(level, quest_name): def quest_download(level, quest_name): archive = get_quest_archive(level, quest_name) return send_file(archive, attachment_filename="acks_{0}.zip".format(quest_name), as_attachment=True) - - -''' -@npc_views.route('/party') -@npc_views.route('/party/') -def generate_npc_party(base_level=None): - party = None - if base_level: - party = create_party(base_level) - - # If asked for JSON, return the party, otherwise render HTML template - if request.args.get('format', 'html') == 'json': - return jsonify([npc.roll20_format for npc in party]) - return render_template('generate_npc_party.html', party=party, base_level=base_level) - -@npc_views.route('/single') -@npc_views.route('/single//') -def generate_single_npc(base_level=None, guild_id=0): - guilds = CharacterClass.query.filter(CharacterClass.bucket.notin_(['Demi-Human'])).all() - - npc = None - if base_level: - npc = create_npc(base_level, guild_id) - - # If asked for JSON, return the npc, otherwise render HTML template - if request.args.get('format', 'html') == 'json': - return jsonify(npc) - return render_template('generate_single_npc.html', npc=npc, base_level=base_level, guilds=guilds, guild_id=guild_id) - -@npc_views.route('/spells') -def spell_list(): - spells = Spell.query.all() - return render_template('spell_list.html', spells=spells) -''' diff --git a/acks/templates/base.html b/acks/templates/base.html index 3de5b52..cca59c2 100644 --- a/acks/templates/base.html +++ b/acks/templates/base.html @@ -4,11 +4,11 @@ ('https://reddit.com/r/PalismaACKS/wiki', 'redditwiki', 'Wiki', true), ] %} {% set judge_bar = [ + ('/npc/party', 'npcparty', 'Generate Party', false), + ('/npc/single', 'npcsingle', 'Generate NPC', false), ('/lairs', 'lairs', 'Lairs', false), ('http://autarch.co/treasure', 'treasure', 'Treasure', true), ('/quest/list', 'questlist', 'Quests', false), - ('/npc/party', 'npcparty', 'Generate Party', false), - ('/npc/single', 'npcsingle', 'Generate NPC', false), ('/wiki', 'wiki', 'Wiki', false), ]%} diff --git a/acks/templates/player_tokens.html b/acks/templates/player_tokens.html new file mode 100644 index 0000000..e1185f6 --- /dev/null +++ b/acks/templates/player_tokens.html @@ -0,0 +1,62 @@ +{% extends "base.html" %} +{% set active_page = "tokens" %} + +{% block title %}Player Tokens{% endblock %} +{% block content %} +
+

Adventurer Conqueror KingPlayer Tokens

+
+
+
+

Categories

+
+ {% for name,tokens in categories %} +
+
+

{{ name|capitalize }}

+
{{ tokens|length }}
+
+
+ +
+
+ Browse {{ name|capitalize }} +
+
+
+
+ {% endfor %} +
+
+{% endblock %} + +{% block head %} + + + +{% endblock %} + +{% block scripts %} + + + + + + +{% endblock %} + diff --git a/acks/views.py b/acks/views.py index 5c74aa6..572f59f 100644 --- a/acks/views.py +++ b/acks/views.py @@ -1,4 +1,4 @@ -import os +from pathlib import Path from flask import Blueprint, render_template, url_for, redirect from flask_basicauth import BasicAuth @@ -31,11 +31,36 @@ def lair_gallery(): base_url = "https://www.atr0phy.net/acks/img/dynamic_lairs/" animal_lairs = [] - for filename in os.listdir(base_path + "animal/"): - animal_lairs.append(base_url + "animal/" + filename) + fs = Path(base_path + "animal/") + for filename in fs.iterdir(): + animal_lairs.append(base_url + "animal/" + filename.name) humanoid_lairs = [] - for filename in os.listdir(base_path + "humanoid/"): - humanoid_lairs.append(base_url + "humanoid/" + filename) + fs = Path(base_path + "humanoid/") + for filename in fs.iterdir(): + humanoid_lairs.append(base_url + "humanoid/" + filename.name) return render_template('lair_gallery.html', animal=animal_lairs, humanoid=humanoid_lairs) + +@default_views.route('/player_tokens') +def token_gallery(): + base_path = "/srv/www/atr0phy.net/acks/img/player_tokens/" + base_url = "https://www.atr0phy.net/acks/img/player_tokens/" + + def to_gallery_src(src): + return {"src": src, "thumb": src} + + tokens = {} + parent_fs = Path(base_path) + for category in parent_fs.iterdir(): + if not category.is_dir(): + continue + + category_fs = Path(base_path + category.name + "/") + tokens[category.name] = [] + for token in category_fs.iterdir(): + tokens[category.name].append(to_gallery_src(base_url + category.name + "/" + token.name)) + + categories = [(k, v) for k, v in tokens.items()] + categories = sorted(categories, key=lambda category: len(category[1]), reverse=True) + return render_template('player_tokens.html', categories=categories, data=tokens)