diff options
author | Alexandre FLAMENT <alexandre.flament@hesge.ch> | 2022-08-26 16:04:50 +0000 |
---|---|---|
committer | Alexandre Flament <alex@al-f.net> | 2022-09-23 20:45:58 +0200 |
commit | a96f503d7b4866e6eb352afd759433b3aad0a3f5 (patch) | |
tree | 6d08c8ba1892e4babc33b62ceba585cdc1e06b66 /searx/webutils.py | |
parent | bef3984d0320b2010c50097e186b07b6673a9647 (diff) | |
download | searxng-a96f503d7b4866e6eb352afd759433b3aad0a3f5.tar.gz searxng-a96f503d7b4866e6eb352afd759433b3aad0a3f5.zip |
Add searx.webutils.searxng_format_date
* Move the datetime to str code from searx.webapp.search to searx.webutils.searxng_format_date
* When the month, day, hour, day and second are zero, the function returns only the year.
Diffstat (limited to 'searx/webutils.py')
-rw-r--r-- | searx/webutils.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/searx/webutils.py b/searx/webutils.py index b18fd5c6a..f084fe9d3 100644 --- a/searx/webutils.py +++ b/searx/webutils.py @@ -7,11 +7,14 @@ import hmac import re import inspect import itertools +from datetime import datetime, timedelta from typing import Iterable, List, Tuple, Dict from io import StringIO from codecs import getincrementalencoder +from flask_babel import gettext, format_date + from searx import logger, settings from searx.engines import Engine, OTHER_CATEGORY @@ -138,6 +141,22 @@ def highlight_content(content, query): return content +def searxng_format_date(dt: datetime): # pylint: disable=invalid-name + # TODO, check if timezone is calculated right # pylint: disable=fixme + d = dt.date() + t = dt.time() + if d.month == 1 and d.day == 1 and t.hour == 0 and t.minute == 0 and t.second == 0: + return str(d.year) + if dt.replace(tzinfo=None) >= datetime.now() - timedelta(days=1): + timedifference = datetime.now() - dt.replace(tzinfo=None) + minutes = int((timedifference.seconds / 60) % 60) + hours = int(timedifference.seconds / 60 / 60) + if hours == 0: + return gettext('{minutes} minute(s) ago').format(minutes=minutes) + return gettext('{hours} hour(s), {minutes} minute(s) ago').format(hours=hours, minutes=minutes) + return format_date(dt) + + def is_flask_run_cmdline(): """Check if the application was started using "flask run" command line |