From 97a8370caea2fae4a0a67165036aae2dc2d05900 Mon Sep 17 00:00:00 2001 From: Jacob McDonnell Date: Wed, 3 May 2023 13:13:47 -0400 Subject: Rewrite of the website in Flask --- main.py | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100755 main.py (limited to 'main.py') diff --git a/main.py b/main.py new file mode 100755 index 0000000..7c530fc --- /dev/null +++ b/main.py @@ -0,0 +1,73 @@ +from flask import Flask, render_template, send_file +from markdown import markdown +from db import DB + +app = Flask(__name__) +r = DB() + +@app.route('/') +def home(): + return render_template("template.html", body=markdown(read_file("static/home.md"))) + +@app.route('/articles//') +def load_article(site): + '''Capture a given article page and load it''' + article = r.get_article(site) + body = markdown(read_file(article["file"])) + return render_template("articletemplate.html", body=body) + +@app.route('/articles/
/img/') +def get_article_images(article, image): + '''Capture a url for an image in an article and return the file''' + return send_file(f"static/articles/{article}/img/{image}", mimetype='image/png') + +@app.route('/articles/') +def articles_page(): + '''Render the main articles page''' + articles = sorted(r.get_all_articles(), reverse=True, key=lambda d: d['id']) + html = ['
'] + for article in articles: + html.append(f'

{article["title"]}

{article["date"]}
{article["desc"]}

') + html.append("
") + return render_template("articletemplate.html", body="".join(html)) + +@app.route("/card") +def get_card(): + return send_file("static/business_card") + +@app.route("/rss.xml") +@app.route("/rss") +def get_rss(): + return send_file("static/rss.xml") + +@app.route('/css/') +def get_css(file): + return send_file(f"static/css/{file}", mimetype='text/css') + +@app.route('/favicon.ico') +def get_favicon(): + return send_file("static/favicon.ico", mimetype='image/ico') + +@app.route('/robots.txt') +def get_robots(): + return send_file("static/robots.txt", mimetype='text/text') + +@app.route("/testpage") +def test_page(): + return render_template("template.html", body=read_file("static/testpage.html")) + +@app.errorhandler(404) +@app.errorhandler(500) +def page_not_found(e): + return render_template('template.html', body=markdown(read_file("static/404.md"))) + +def read_file(file): + '''Read a given html file and return string''' + file = open(file, "r") + body = file.read() + file.close() + return body + +if __name__ == "__main__": + app.run(host="0.0.0.0") + -- cgit v1.2.3