Skip to content

Commit edc9daa

Browse files
authored
fix: internal messages.
Signed-off-by: lorenzo132 <[email protected]>
1 parent e19968c commit edc9daa

File tree

1 file changed

+27
-12
lines changed

1 file changed

+27
-12
lines changed

core/thread.py

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,33 @@ async def snooze(self, moderator=None, command_used=None):
138138
channel = self.channel
139139
if not isinstance(channel, discord.TextChannel):
140140
return False
141+
141142
# Save channel info
143+
def classify_message(m):
144+
msg_type = getattr(m, "type", None)
145+
# Detect mod-only messages: not the bot, not the thread recipient, and not a user message
146+
if (
147+
msg_type is None
148+
and hasattr(m, "author")
149+
and m.author.id != self.bot.user.id
150+
and (not self.recipient or m.author.id != self.recipient.id)
151+
and hasattr(m.channel, "guild")
152+
and m.channel.guild is not None
153+
):
154+
# Check if author is a moderator (manage_messages or administrator)
155+
perms = m.channel.permissions_for(m.author)
156+
if perms.manage_messages or perms.administrator:
157+
msg_type = "mod_only"
158+
return {
159+
"author_id": m.author.id,
160+
"content": m.content,
161+
"attachments": [a.url for a in m.attachments],
162+
"embeds": [e.to_dict() for e in m.embeds],
163+
"created_at": m.created_at.isoformat(),
164+
"type": msg_type,
165+
"author_name": getattr(m.author, "name", None),
166+
}
167+
142168
self.snooze_data = {
143169
"category_id": channel.category_id,
144170
"position": channel.position,
@@ -147,18 +173,7 @@ async def snooze(self, moderator=None, command_used=None):
147173
"slowmode_delay": channel.slowmode_delay,
148174
"nsfw": channel.nsfw,
149175
"overwrites": [(role.id, perm._values) for role, perm in channel.overwrites.items()],
150-
"messages": [
151-
{
152-
"author_id": m.author.id,
153-
"content": m.content,
154-
"attachments": [a.url for a in m.attachments],
155-
"embeds": [e.to_dict() for e in m.embeds],
156-
"created_at": m.created_at.isoformat(),
157-
"type": getattr(m, "type", None),
158-
"author_name": getattr(m.author, "name", None),
159-
}
160-
async for m in channel.history(limit=None, oldest_first=True)
161-
],
176+
"messages": [classify_message(m) async for m in channel.history(limit=None, oldest_first=True)],
162177
"snoozed_by": getattr(moderator, "name", None) if moderator else None,
163178
"snooze_command": command_used,
164179
}

0 commit comments

Comments
 (0)