Add utils.py

pull/6/head
beucismis 1 year ago
parent 1530aab54b
commit e14600918c
  1. 14
      ozgursozluk/utils.py
  2. 68
      ozgursozluk/views.py

@ -0,0 +1,14 @@
from datetime import datetime, timedelta
def last_commit() -> str:
"""Return the last commit ID."""
with open(".git/refs/heads/main") as file:
return file.read()
def expires() -> datetime:
"""One year later."""
return datetime.now() + timedelta(days=365)

@ -1,9 +1,8 @@
from datetime import datetime, timedelta
from flask import url_for, redirect, request, render_template
import ozgursozluk
from ozgursozluk.api import Eksi
from ozgursozluk.utils import last_commit, expires
from ozgursozluk.config import (
DEFAULT_THEME,
DEFAULT_DISPLAY_PINNED_TOPICS,
@ -15,32 +14,29 @@ from ozgursozluk.config import (
eksi = Eksi()
def _last_commit() -> str:
with open(".git/refs/heads/main") as file:
return file.read()
def _expires() -> datetime:
return datetime.now() + timedelta(days=365)
@ozgursozluk.app.context_processor
def global_template_variables():
"""Return the gloabal template variables."""
return dict(
version=ozgursozluk.__version__,
source=ozgursozluk.__source__,
description=ozgursozluk.__description__,
last_commit=_last_commit(),
last_commit=last_commit(),
)
@ozgursozluk.app.before_request
def before_request():
"""Set base URL before request."""
eksi.base_url = request.cookies.get("eksi_base_url", DEFAULT_EKSI_BASE_URL)
@ozgursozluk.app.route("/", methods=["GET", "POST"])
def index():
"""Index route."""
q = request.args.get("q", default=None, type=str)
p = request.args.get("p", default=1, type=int)
@ -55,59 +51,71 @@ def index():
return render_template("index.html", gundem=gundem, p=p)
@ozgursozluk.app.route("/search/<q>")
def search(q: str):
return render_template("topic.html", topic=eksi.search_topic(q), p=1, a=None)
@ozgursozluk.app.route("/<path>")
def topic(path: str):
"""Topic route."""
@ozgursozluk.app.route("/<title>")
def topic(title: str):
p = request.args.get("p", default=1, type=int)
a = request.args.get("a", default=None, type=str)
return render_template(
"topic.html", topic=eksi.get_topic(title, p, a), p=p, a=a
"topic.html", topic=eksi.get_topic(path, p, a), p=p, a=a
)
@ozgursozluk.app.route("/debe")
def debe():
return render_template("debe.html", debe=eksi.get_debe())
@ozgursozluk.app.route("/entry/<int:id>")
def entry(id: int):
return render_template("topic.html", topic=eksi.get_entry(id), p=1)
"""Entry route."""
return render_template("entry.html", entry=eksi.get_entry(id))
@ozgursozluk.app.route("/biri/<nickname>")
def author(nickname: str):
"""Author route."""
return render_template("author.html", author=eksi.get_author(nickname))
@ozgursozluk.app.route("/debe")
def debe():
"""Debe route."""
return render_template("debe.html", debe=eksi.get_debe())
@ozgursozluk.app.route("/search/<q>")
def search(q: str):
"""Search route."""
return render_template("topic.html", topic=eksi.search_topic(q), p=1, a=None)
@ozgursozluk.app.route("/settings", methods=["GET", "POST"])
def settings():
"""Settings route."""
if request.method == "POST":
response = redirect(url_for("settings"))
response.set_cookie(
"theme",
request.form["theme"],
expires=_expires(),
expires=expires(),
)
response.set_cookie(
"display_pinned_topics",
request.form["display_pinned_topics"],
expires=_expires(),
expires=expires(),
)
response.set_cookie(
"display_author_nicknames",
request.form["display_author_nicknames"],
expires=_expires(),
expires=expires(),
)
response.set_cookie(
"eksi_base_url",
request.form["eksi_base_url"],
expires=_expires(),
expires=expires(),
)
return response
@ -131,4 +139,6 @@ def settings():
@ozgursozluk.app.errorhandler(404)
def page_not_found(error):
"""Error handler."""
return render_template("404.html", error=error), 404

Loading…
Cancel
Save