aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Shirayuki Nekomata <[email protected]>2019-12-04 09:03:26 +0700
committerGravatar Shirayuki Nekomata <[email protected]>2019-12-04 09:03:26 +0700
commit6cf907a4ab1f632dbe0fb2445703a84b965d7bfa (patch)
tree8eb261f63119c2cf47ef797eeb4aed26c567e0ae
parentDeleted `get_duration` and switched to using the already, nicely made `humani... (diff)
Renamed function and improved its docstring to better reflect its purposes.
Changed from `get_duration_from_expiry` -> `format_infraction_with_duration`
-rw-r--r--bot/cogs/moderation/management.py4
-rw-r--r--bot/cogs/moderation/scheduler.py2
-rw-r--r--bot/utils/time.py19
3 files changed, 9 insertions, 16 deletions
diff --git a/bot/cogs/moderation/management.py b/bot/cogs/moderation/management.py
index 5221baa81..abfe5c2b3 100644
--- a/bot/cogs/moderation/management.py
+++ b/bot/cogs/moderation/management.py
@@ -97,7 +97,7 @@ class ModManagement(commands.Cog):
confirm_messages.append("marked as permanent")
elif duration is not None:
request_data['expires_at'] = duration.isoformat()
- expiry = time.get_duration_from_expiry(request_data['expires_at'])
+ expiry = time.format_infraction_with_duration(request_data['expires_at'])
confirm_messages.append(f"set to expire on {expiry}")
else:
confirm_messages.append("expiry unchanged")
@@ -236,7 +236,7 @@ class ModManagement(commands.Cog):
expires = "*Permanent*"
else:
date_from = datetime.strptime(created, time.INFRACTION_FORMAT)
- expires = time.get_duration_from_expiry(infraction["expires_at"], date_from)
+ expires = time.format_infraction_with_duration(infraction["expires_at"], date_from)
lines = textwrap.dedent(f"""
{"**===============**" if active else "==============="}
diff --git a/bot/cogs/moderation/scheduler.py b/bot/cogs/moderation/scheduler.py
index 729763322..3e0968121 100644
--- a/bot/cogs/moderation/scheduler.py
+++ b/bot/cogs/moderation/scheduler.py
@@ -83,7 +83,7 @@ class InfractionScheduler(Scheduler):
infr_type = infraction["type"]
icon = utils.INFRACTION_ICONS[infr_type][0]
reason = infraction["reason"]
- expiry = time.get_duration_from_expiry(infraction["expires_at"])
+ expiry = time.format_infraction_with_duration(infraction["expires_at"])
id_ = infraction['id']
log.trace(f"Applying {infr_type} infraction #{id_} to {user}.")
diff --git a/bot/utils/time.py b/bot/utils/time.py
index ec47fce2e..a024674ac 100644
--- a/bot/utils/time.py
+++ b/bot/utils/time.py
@@ -113,21 +113,14 @@ def format_infraction(timestamp: str) -> str:
return dateutil.parser.isoparse(timestamp).strftime(INFRACTION_FORMAT)
-def get_duration_from_expiry(
- expiry: str = None,
- date_from: datetime.datetime = None,
- max_units: int = 2
-) -> Optional[str]:
+def format_infraction_with_duration(expiry: str, date_from: datetime.datetime = None, max_units: int = 2) -> str:
"""
- Returns a human-readable version of the the duration between datetime.utcnow() and an expiry.
+ Format an infraction timestamp to a more readable ISO 8601 format WITH the duration.
- Unlike the original function, this function will force the precision to be 'seconds' by not passing it.
- max_units specifies the maximum number of units of time to include (e.g. 1 may include days but not hours).
- By default, max_units is 2
-
- :param expiry: A string. If not passed in, will early return a None ( Permanent infraction ).
- :param date_from: A datetime.datetime object. If not passed in, will use datetime.utcnow().
- :param parts: An int, to show how many parts will be returned ( year - month or year - month - week - day ...).
+ Returns a human-readable version of the duration between datetime.utcnow() and an expiry.
+ Unlike `humanize_delta`, this function will force the `precision` to be `seconds` by not passing it.
+ `max_units` specifies the maximum number of units of time to include (e.g. 1 may include days but not hours).
+ By default, max_units is 2.
"""
if not expiry:
return None