diff --git a/aurweb/templates.py b/aurweb/templates.py index 7474da1c..8c6f3294 100644 --- a/aurweb/templates.py +++ b/aurweb/templates.py @@ -23,6 +23,9 @@ env = jinja2.Environment(loader=loader, autoescape=True, # Add tr translation filter. env.filters["tr"] = l10n.tr +# Utility filters. +env.filters["dt"] = util.timestamp_to_datetime + # Add captcha filters. env.filters["captcha_salt"] = captcha.captcha_salt_filter env.filters["captcha_cmdline"] = captcha.captcha_cmdline_filter diff --git a/aurweb/util.py b/aurweb/util.py index ad8ac6b7..ce18853b 100644 --- a/aurweb/util.py +++ b/aurweb/util.py @@ -97,6 +97,10 @@ def account_url(context, user): return f"{base}/account/{user.Username}" +def timestamp_to_datetime(timestamp: int): + return datetime.utcfromtimestamp(int(timestamp)) + + def jsonify(obj): """ Perform a conversion on obj if it's needed. """ if isinstance(obj, datetime): diff --git a/test/test_util.py b/test/test_util.py new file mode 100644 index 00000000..cd7b7a57 --- /dev/null +++ b/test/test_util.py @@ -0,0 +1,9 @@ +from datetime import datetime + +from aurweb import util + + +def test_timestamp_to_datetime(): + ts = datetime.utcnow().timestamp() + dt = datetime.utcfromtimestamp(int(ts)) + assert util.timestamp_to_datetime(ts) == dt