You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.0 KiB
66 lines
2.0 KiB
from pathlib import Path
|
|
|
|
from flask import Blueprint, render_template, url_for, redirect
|
|
from flask_basicauth import BasicAuth
|
|
|
|
|
|
|
|
basic_auth = BasicAuth()
|
|
default_views = Blueprint('default_views', __name__, url_prefix='/')
|
|
|
|
@default_views.route('/')
|
|
def index():
|
|
return render_template('index.html')
|
|
|
|
@default_views.route('/handbook')
|
|
def handbook():
|
|
return render_template('handbook.html')
|
|
|
|
@default_views.route('/wiki')
|
|
@basic_auth.required
|
|
def wiki():
|
|
return render_template('wiki.html')
|
|
|
|
@default_views.route('/worldmap')
|
|
def worldmap():
|
|
return render_template('worldmap.html')
|
|
|
|
@default_views.route('/lairs')
|
|
def lair_gallery():
|
|
base_path = "/srv/www/atr0phy.net/acks/img/dynamic_lairs/"
|
|
base_url = "https://www.atr0phy.net/acks/img/dynamic_lairs/"
|
|
|
|
animal_lairs = []
|
|
fs = Path(base_path + "animal/")
|
|
for filename in fs.iterdir():
|
|
animal_lairs.append(base_url + "animal/" + filename.name)
|
|
|
|
humanoid_lairs = []
|
|
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)
|