aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/exts/help_channels/_caches.py4
-rw-r--r--bot/exts/help_channels/_stats.py8
2 files changed, 8 insertions, 4 deletions
diff --git a/bot/exts/help_channels/_caches.py b/bot/exts/help_channels/_caches.py
index eb15b8560..5d98f99d3 100644
--- a/bot/exts/help_channels/_caches.py
+++ b/bot/exts/help_channels/_caches.py
@@ -8,3 +8,7 @@ help_dm = RedisCache(namespace="HelpChannels.help_dm")
# serialise the set as a comma separated string to allow usage with redis
# RedisCache[discord.TextChannel.id, str[set[discord.User.id]]]
session_participants = RedisCache(namespace="HelpChannels.session_participants")
+
+# Stores posts that have had a non-claimant reply.
+# Currently only used to determine whether the post was answered or not when collecting stats.
+posts_with_non_claimant_messages = RedisCache(namespace="HelpChannels.posts_with_non_claimant_messages")
diff --git a/bot/exts/help_channels/_stats.py b/bot/exts/help_channels/_stats.py
index 6c05b4701..8ab93f19d 100644
--- a/bot/exts/help_channels/_stats.py
+++ b/bot/exts/help_channels/_stats.py
@@ -5,6 +5,7 @@ import discord
import bot
from bot import constants
+from bot.exts.help_channels import _caches
from bot.log import get_logger
log = get_logger(__name__)
@@ -37,8 +38,7 @@ async def report_complete_session(help_session_post: discord.Thread, closed_on:
in_use_time = arrow.utcnow() - open_time
bot.instance.stats.timing("help_forum.in_use_time", in_use_time)
- if set(help_session_post.members)-{help_session_post.owner_id} == set():
- # Can't use len(help_session_post.members) as the claimant (owner) may have left the thread.
- bot.instance.stats.incr("help_forum.sessions.unanswered")
- else:
+ if await _caches.posts_with_non_claimant_messages.get(help_session_post.id):
bot.instance.stats.incr("help_forum.sessions.answered")
+ else:
+ bot.instance.stats.incr("help_forum.sessions.unanswered")