aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2021-08-05 19:14:08 -0700
committerGravatar MarkKoz <[email protected]>2021-08-05 19:14:08 -0700
commit93742d718dcb4aee72ef5d20ca570b6200f07d2d (patch)
treebaa7f5ba59ba55acaa87dd35583f5f113f878e6b
parentTime: remove timedelta and relativedelta support from discord_timestamp (diff)
Time: rename format_infraction_with_duration
It's not necessarily tied to infractions anymore.
-rw-r--r--bot/exts/moderation/infraction/_scheduler.py4
-rw-r--r--bot/exts/moderation/infraction/management.py2
-rw-r--r--bot/exts/moderation/stream.py2
-rw-r--r--bot/utils/time.py18
-rw-r--r--tests/bot/utils/test_time.py18
5 files changed, 22 insertions, 22 deletions
diff --git a/bot/exts/moderation/infraction/_scheduler.py b/bot/exts/moderation/infraction/_scheduler.py
index 57aa2d9b6..9d4d58e2e 100644
--- a/bot/exts/moderation/infraction/_scheduler.py
+++ b/bot/exts/moderation/infraction/_scheduler.py
@@ -136,7 +136,7 @@ class InfractionScheduler:
infr_type = infraction["type"]
icon = _utils.INFRACTION_ICONS[infr_type][0]
reason = infraction["reason"]
- expiry = time.format_infraction_with_duration(infraction["expires_at"])
+ expiry = time.format_with_duration(infraction["expires_at"])
id_ = infraction['id']
if user_reason is None:
@@ -387,7 +387,7 @@ class InfractionScheduler:
log.info(f"Marking infraction #{id_} as inactive (expired).")
expiry = dateutil.parser.isoparse(expiry) if expiry else None
- created = time.format_infraction_with_duration(inserted_at, expiry)
+ created = time.format_with_duration(inserted_at, expiry)
log_content = None
log_text = {
diff --git a/bot/exts/moderation/infraction/management.py b/bot/exts/moderation/infraction/management.py
index fb5af9eaa..dd994a2d2 100644
--- a/bot/exts/moderation/infraction/management.py
+++ b/bot/exts/moderation/infraction/management.py
@@ -150,7 +150,7 @@ class ModManagement(commands.Cog):
confirm_messages.append("marked as permanent")
elif duration is not None:
request_data['expires_at'] = duration.isoformat()
- expiry = time.format_infraction_with_duration(request_data['expires_at'])
+ expiry = time.format_with_duration(request_data['expires_at'])
confirm_messages.append(f"set to expire on {expiry}")
else:
confirm_messages.append("expiry unchanged")
diff --git a/bot/exts/moderation/stream.py b/bot/exts/moderation/stream.py
index 5a7b12295..bc9d35714 100644
--- a/bot/exts/moderation/stream.py
+++ b/bot/exts/moderation/stream.py
@@ -133,7 +133,7 @@ class Stream(commands.Cog):
await ctx.send(f"{Emojis.check_mark} {member.mention} can now stream until {time.discord_timestamp(duration)}.")
# Convert here for nicer logging
- revoke_time = time.format_infraction_with_duration(str(duration))
+ revoke_time = time.format_with_duration(str(duration))
log.debug(f"Successfully gave {member} ({member.id}) permission to stream until {revoke_time}.")
@commands.command(aliases=("pstream",))
diff --git a/bot/utils/time.py b/bot/utils/time.py
index 60720031a..13dfc6fb7 100644
--- a/bot/utils/time.py
+++ b/bot/utils/time.py
@@ -169,26 +169,26 @@ def format_infraction(timestamp: str) -> str:
return discord_timestamp(dateutil.parser.isoparse(timestamp))
-def format_infraction_with_duration(
- date_to: Optional[str],
- date_from: Optional[datetime.datetime] = None,
+def format_with_duration(
+ timestamp: Optional[str],
+ other_timestamp: Optional[datetime.datetime] = None,
max_units: int = 2,
) -> Optional[str]:
"""
- Return `date_to` formatted as a discord timestamp with the timestamp duration since `date_from`.
+ Return `timestamp` formatted as a discord timestamp with the timestamp duration since `other_timestamp`.
`max_units` specifies the maximum number of units of time to include in the duration. For
example, a value of 1 may include days but not hours.
"""
- if not date_to:
+ if not timestamp:
return None
- date_to_formatted = format_infraction(date_to)
+ date_to_formatted = format_infraction(timestamp)
- date_from = date_from or datetime.datetime.now(datetime.timezone.utc)
- date_to = dateutil.parser.isoparse(date_to).replace(microsecond=0)
+ other_timestamp = other_timestamp or datetime.datetime.now(datetime.timezone.utc)
+ timestamp = dateutil.parser.isoparse(timestamp).replace(microsecond=0)
- delta = abs(relativedelta(date_to, date_from))
+ delta = abs(relativedelta(timestamp, other_timestamp))
duration = humanize_delta(delta, max_units=max_units)
duration_formatted = f" ({duration})" if duration else ""
diff --git a/tests/bot/utils/test_time.py b/tests/bot/utils/test_time.py
index 9c52fed27..02b5f8c17 100644
--- a/tests/bot/utils/test_time.py
+++ b/tests/bot/utils/test_time.py
@@ -47,8 +47,8 @@ class TimeTests(unittest.TestCase):
"""Testing format_infraction."""
self.assertEqual(time.format_infraction('2019-12-12T00:01:00Z'), '<t:1576108860:f>')
- def test_format_infraction_with_duration_none_expiry(self):
- """format_infraction_with_duration should work for None expiry."""
+ def test_format_with_duration_none_expiry(self):
+ """format_with_duration should work for None expiry."""
test_cases = (
(None, None, None, None),
@@ -60,10 +60,10 @@ class TimeTests(unittest.TestCase):
for expiry, date_from, max_units, expected in test_cases:
with self.subTest(expiry=expiry, date_from=date_from, max_units=max_units, expected=expected):
- self.assertEqual(time.format_infraction_with_duration(expiry, date_from, max_units), expected)
+ self.assertEqual(time.format_with_duration(expiry, date_from, max_units), expected)
- def test_format_infraction_with_duration_custom_units(self):
- """format_infraction_with_duration should work for custom max_units."""
+ def test_format_with_duration_custom_units(self):
+ """format_with_duration should work for custom max_units."""
test_cases = (
('3000-12-12T00:01:00Z', datetime(3000, 12, 11, 12, 5, 5, tzinfo=timezone.utc), 6,
'<t:32533488060:f> (11 hours, 55 minutes and 55 seconds)'),
@@ -73,10 +73,10 @@ class TimeTests(unittest.TestCase):
for expiry, date_from, max_units, expected in test_cases:
with self.subTest(expiry=expiry, date_from=date_from, max_units=max_units, expected=expected):
- self.assertEqual(time.format_infraction_with_duration(expiry, date_from, max_units), expected)
+ self.assertEqual(time.format_with_duration(expiry, date_from, max_units), expected)
- def test_format_infraction_with_duration_normal_usage(self):
- """format_infraction_with_duration should work for normal usage, across various durations."""
+ def test_format_with_duration_normal_usage(self):
+ """format_with_duration should work for normal usage, across various durations."""
utc = timezone.utc
test_cases = (
('2019-12-12T00:01:00Z', datetime(2019, 12, 11, 12, 0, 5, tzinfo=utc), 2,
@@ -98,7 +98,7 @@ class TimeTests(unittest.TestCase):
for expiry, date_from, max_units, expected in test_cases:
with self.subTest(expiry=expiry, date_from=date_from, max_units=max_units, expected=expected):
- self.assertEqual(time.format_infraction_with_duration(expiry, date_from, max_units), expected)
+ self.assertEqual(time.format_with_duration(expiry, date_from, max_units), expected)
def test_until_expiration_with_duration_none_expiry(self):
"""until_expiration should work for None expiry."""