Contact me to be added to this repository. Push the creations you make for D&D, and they will be displayed in a nice website. See the website for how to contribute.
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.
 
 
 
 
 
 

76 lines
2.4 KiB

import sys
from flask import Flask, render_template, request
from items import get_items
from random import choice
if sys.version_info.major < 3:
# XXX OOF
reload(sys)
sys.setdefaultencoding('utf8')
app = Flask(__name__)
@app.route('/style.css')
def style():
return render_template('style.css')
@app.route('/')
def index():
featureType = choice(["Item","Place","Spell"])
item = choice(get_items("../"+featureType+"s/*"))
return render_template('index.html',featureType=featureType,featureText=item)
@app.route('/search', methods=['POST'])
def search():
typ = request.form['type']
query = request.form['inputText']
print(typ + ": " + query)
results = []
for direct in ["../Items/*","../Places/*","../Spells/*"]:
objects = get_items(direct)
for (name,heads,body) in objects:
if typ == "name":
if query.lower() in name.lower():
results.append((name,heads,body))
elif typ == "rarity":
if "rarity" in [h[0].lower() for h in heads]:
if query.lower() in [h[1].lower() for h in heads if h[0].lower() == "rarity"]:
results.append((name,heads,body))
elif typ == "aura":
if "aura" in [h[0].lower() for h in heads]:
if query.lower() in [h[1].lower() for h in heads if "aura" in h[0].lower()][0]:
results.append((name,heads,body))
elif typ == "text":
if query.lower() in body.lower():
results.append((name,heads,body))
print("Number of results: " + str(len(results)))
featureType = choice(["Item","Place","Spell"])
item = choice(get_items("../"+featureType+"s/*"))
return render_template('index.html',featureType=featureType,featureText=item, searchResults=results)
@app.route('/items')
def items():
return render_template('listing.html',title="Items",items=get_items("../Items/*"))
@app.route('/places')
def places():
return render_template('listing.html',title="Places",items=get_items("../Places/*"))
@app.route('/characters')
def characters():
return render_template('listing.html',title="Characters",items=get_items("../Characters/*"))
@app.route('/spells')
def spells():
return render_template('listing.html',title="Spells",items=get_items("../Spells/*"))
if __name__ == "__main__":
app.run()