mirror of https://github.com/tiyn/amphora-wiki
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.
56 lines
1.7 KiB
56 lines
1.7 KiB
import os
|
|
from flask import Flask, flash, make_response, render_template, request, redirect, abort
|
|
|
|
import content as cont
|
|
import config
|
|
import search as src
|
|
from forms import SearchForm, csrf
|
|
|
|
app = Flask(__name__)
|
|
|
|
SECRET_KEY = os.urandom(32)
|
|
app.secret_key = SECRET_KEY
|
|
csrf.init_app(app)
|
|
|
|
TITLE = config.TITLE
|
|
STYLE = config.STYLE
|
|
|
|
|
|
@app.errorhandler(404)
|
|
def page_not_found(e):
|
|
return render_template("error.html", title=TITLE, errorcode="404", style=STYLE), 404
|
|
|
|
|
|
@app.route("/")
|
|
@app.route("/index.html")
|
|
def index():
|
|
return render_template("index.html", title=TITLE, style=STYLE), 200
|
|
|
|
|
|
@app.route("/search", methods=["GET", "POST"])
|
|
@app.route("/search.html", methods=["GET", "POST"])
|
|
def search():
|
|
form = SearchForm()
|
|
if request.method == "POST":
|
|
query_str = request.form["query_str"]
|
|
content = cont.gen_query_res_string(query_str)
|
|
return render_template("search.html", title=TITLE, style=STYLE, form=form, content=content), 200
|
|
return render_template("search.html", title=TITLE, style=STYLE, form=form, content=""), 200
|
|
|
|
|
|
@app.route("/entry/<path:fullurl>")
|
|
def entry(fullurl):
|
|
content = cont.gen_stand_string(fullurl)
|
|
return render_template("entry.html", title=TITLE, style=STYLE, content=content), 200
|
|
|
|
@app.route("/namespace/", defaults={"fullurl": ""})
|
|
@app.route("/namespace/<path:fullurl>")
|
|
def namespace(fullurl=""):
|
|
content = cont.gen_arch_string(fullurl)
|
|
if content == None:
|
|
return render_template("error.html", title=TITLE, errorcode="404", style=STYLE), 404
|
|
return render_template("entry.html", title=TITLE, style=STYLE, content=content), 200
|
|
|
|
if __name__ == "__main__":
|
|
app.run(host="0.0.0.0")
|