diff --git a/files/__main__.py b/files/__main__.py index 9f4231d30..734912737 100644 --- a/files/__main__.py +++ b/files/__main__.py @@ -119,7 +119,5 @@ def after_request(response): response.headers.add("X-Frame-Options", "deny") return response -if "load_chat" in argv: - from files.routes.chat import * -else: - from files.routes import * \ No newline at end of file +from files.routes.chat import * +from files.routes import * \ No newline at end of file diff --git a/files/helpers/jinja2.py b/files/helpers/jinja2.py index d965824d5..c2786f67f 100644 --- a/files/helpers/jinja2.py +++ b/files/helpers/jinja2.py @@ -2,6 +2,7 @@ from files.__main__ import app from .get import * from os import listdir, environ from .const import * +import time @app.template_filter("post_embed") def post_embed(id, v): @@ -14,6 +15,38 @@ def post_embed(id, v): if p: return render_template("submission_listing.html", listing=[p], v=v) return '' + +@app.template_filter("timestamp") +def timestamp(timestamp): + + age = int(time.time()) - timestamp + + if age < 60: + return "just now" + elif age < 3600: + minutes = int(age / 60) + return f"{minutes}m ago" + elif age < 86400: + hours = int(age / 3600) + return f"{hours}hr ago" + elif age < 2678400: + days = int(age / 86400) + return f"{days}d ago" + + now = time.gmtime() + ctd = time.gmtime(timestamp) + + months = now.tm_mon - ctd.tm_mon + 12 * (now.tm_year - ctd.tm_year) + if now.tm_mday < ctd.tm_mday: + months -= 1 + + if months < 12: + return f"{months}mo ago" + else: + years = int(months / 12) + return f"{years}yr ago" + + @app.context_processor def inject_constants(): return {"environ":environ, "SITE":SITE, "SITE_NAME":SITE_NAME, "SITE_FULL":SITE_FULL, "AUTOJANNY_ID":AUTOJANNY_ID, "NOTIFICATIONS_ID":NOTIFICATIONS_ID, "PUSHER_ID":PUSHER_ID, "CC":CC, "CC_TITLE":CC_TITLE, "listdir":listdir, "MOOSE_ID":MOOSE_ID, "AEVANN_ID":AEVANN_ID, "PIZZASHILL_ID":PIZZASHILL_ID, "config":app.config.get, "DEFAULT_COLOR":DEFAULT_COLOR, "COLORS":COLORS, "ADMIGGERS":ADMIGGERS} \ No newline at end of file diff --git a/files/routes/chat.py b/files/routes/chat.py index 0d98dbc0f..91261c3b9 100644 --- a/files/routes/chat.py +++ b/files/routes/chat.py @@ -55,7 +55,8 @@ def speak(data, v): "namecolor": v.namecolor, "text": text, "text_html": text_html, - "text_censored": censor_slurs(text_html, 'chat') + "text_censored": censor_slurs(text_html, 'chat'), + "time": int(time.time()) } if v.shadowbanned: diff --git a/files/templates/chat.html b/files/templates/chat.html index b4fcb9776..dba56603b 100644 --- a/files/templates/chat.html +++ b/files/templates/chat.html @@ -149,6 +149,10 @@ {{m['username']}} + {% if not same %} + {{m['time'] | timestamp}} + {% endif %} +
{{text_html | safe}} {{m['text']}}