aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Steele Farnsworth <[email protected]>2025-02-08 12:11:03 -0500
committerGravatar GitHub <[email protected]>2025-02-08 12:11:03 -0500
commit1d254d67cd6bed76a7a5bc58c2e0e7631f106eb1 (patch)
treec26e11a1fa6a805f1b81ce5e6d06155b7195a715
parentRename class and some constants. (diff)
parentMerge pull request #3254 from python-discord/fix-help-cog (diff)
Merge branch 'main' into swfarnsworth/fix-auto-upload
-rw-r--r--bot/exts/help_channels/_channel.py10
-rw-r--r--bot/exts/help_channels/_cog.py4
2 files changed, 6 insertions, 8 deletions
diff --git a/bot/exts/help_channels/_channel.py b/bot/exts/help_channels/_channel.py
index 6a0c3264c..4e65d9379 100644
--- a/bot/exts/help_channels/_channel.py
+++ b/bot/exts/help_channels/_channel.py
@@ -47,9 +47,6 @@ async def _close_help_post(
scheduler: scheduling.Scheduler,
) -> None:
"""Close the help post and record stats."""
- # Get Thread with updated metadata (such as the title)
- closed_post = await get_or_fetch_channel(bot.instance, closed_post.id)
-
embed = discord.Embed(description=CLOSED_POST_MSG)
close_title = "Python help channel closed"
if closing_reason == _stats.ClosingReason.CLEANUP:
@@ -192,10 +189,11 @@ async def get_closing_time(post: discord.Thread) -> tuple[arrow.Arrow, _stats.Cl
return time, _stats.ClosingReason.INACTIVE
-async def maybe_archive_idle_post(post: discord.Thread, scheduler: scheduling.Scheduler) -> None:
+async def maybe_archive_idle_post(post_id: int, scheduler: scheduling.Scheduler) -> None:
"""Archive the `post` if idle, or schedule the archive for later if still active."""
try:
- await get_or_fetch_channel(bot.instance, post.id)
+ # Fetch the post again, to ensure we have the latest info
+ post = await get_or_fetch_channel(bot.instance, post_id)
except discord.HTTPException:
log.trace(f"Not closing missing post #{post} ({post.id}).")
return
@@ -223,4 +221,4 @@ async def maybe_archive_idle_post(post: discord.Thread, scheduler: scheduling.Sc
delay = (closing_time - arrow.utcnow()).seconds
log.info(f"#{post} ({post.id}) is still active; scheduling it to be archived after {delay} seconds.")
- scheduler.schedule_later(delay, post.id, maybe_archive_idle_post(post, scheduler))
+ scheduler.schedule_later(delay, post.id, maybe_archive_idle_post(post.id, scheduler))
diff --git a/bot/exts/help_channels/_cog.py b/bot/exts/help_channels/_cog.py
index 9db66bb39..5e0b1799f 100644
--- a/bot/exts/help_channels/_cog.py
+++ b/bot/exts/help_channels/_cog.py
@@ -47,7 +47,7 @@ class HelpForum(commands.Cog):
"""Check that each open help post has a scheduled task to close, adding one if not."""
for post in self.help_forum_channel.threads:
if post.id not in self.scheduler:
- await _channel.maybe_archive_idle_post(post, self.scheduler)
+ await _channel.maybe_archive_idle_post(post.id, self.scheduler)
async def close_check(self, ctx: commands.Context) -> bool:
"""Return True if the channel is a help post, and the user is the claimant or has a whitelisted role."""
@@ -116,7 +116,7 @@ class HelpForum(commands.Cog):
self.scheduler.schedule_later(
delay,
thread.id,
- _channel.maybe_archive_idle_post(thread, self.scheduler)
+ _channel.maybe_archive_idle_post(thread.id, self.scheduler)
)
@commands.Cog.listener()