Ver código fonte

Filling out crosspost trace details

main
Rocketsoup 3 meses atrás
pai
commit
d6defdbd06
1 arquivos alterados com 11 adições e 9 exclusões
  1. 11
    9
      rocketbot/cogs/crosspostcog.py

+ 11
- 9
rocketbot/cogs/crosspostcog.py Ver arquivo

@@ -138,7 +138,7 @@ class CrossPostCog(BaseCog, name='Crosspost Detection'):
138 138
 	async def __record_message(self, message: Message) -> None:
139 139
 		if message.channel.permissions_for(message.author).ban_members:
140 140
 			# User exempt from spam detection
141
-			self.__trace("User exempt from crosspost checks")
141
+			self.__trace(f"User {message.author.name} exempt from crosspost checks")
142 142
 			return
143 143
 		def compute_message_hash(m: Message) -> int:
144 144
 			to_hash = m.content
@@ -149,13 +149,13 @@ class CrossPostCog(BaseCog, name='Crosspost Detection'):
149 149
 			for attachment in m.attachments:
150 150
 				to_hash += f'\n[[ATT: ct={attachment.content_type} s={attachment.size} w={attachment.width} h={attachment.height}]]'
151 151
 			h = hash(to_hash)
152
-			self.__trace(f"Message hash for {m.id} is {h}")
152
+			self.__trace(f"Hash for message #{m.id} by {m.author.name} is {h}\n\thash content: \"{to_hash}\"")
153 153
 			return h
154 154
 
155 155
 		min_length = self.get_guild_setting(message.guild, self.SETTING_MIN_LENGTH)
156 156
 		if len(message.attachments) == 0 and len(message.content) < min_length:
157 157
 			# Message too short to count towards spam total
158
-			self.__trace(f"Message len {len(message.content)} < {min_length}")
158
+			self.__trace(f"Message len {len(message.content)} < {min_length} configured min")
159 159
 			return
160 160
 
161 161
 		# Get config
@@ -170,14 +170,14 @@ class CrossPostCog(BaseCog, name='Crosspost Detection'):
170 170
 			Storage.set_state_value(message.guild, self.STATE_KEY_RECENT_MESSAGES, recent_messages)
171 171
 		recent_messages.max_age = max_age
172 172
 		recent_messages.append(message)
173
-		self.__trace(f"Recent messages now length {len(recent_messages)}")
173
+		self.__trace(f"Recent messages now length {len(recent_messages)} (max age {max_age.total_seconds}s)")
174 174
 
175 175
 		# Get all recent messages by user
176 176
 		member_messages = [m for m in recent_messages if m.author.id == message.author.id]
177 177
 		message_count = len(member_messages)
178
-		self.__trace(f"Found {message_count} messages for {message.author.name}")
178
+		self.__trace(f"Found {message_count} recent messages by {message.author.name}")
179 179
 		if message_count < warn_count and message_count < dupe_warn_count:
180
-			self.__trace(f"Bailing because message count {message_count} < warn count {warn_count} and < dupe warn count {dupe_warn_count}")
180
+			self.__trace(f"Bailing because total message count {message_count} < configured warn count {warn_count} and < dupe warn count {dupe_warn_count}")
181 181
 			return
182 182
 
183 183
 		# Look for identical(ish) messages and unique channels
@@ -194,13 +194,15 @@ class CrossPostCog(BaseCog, name='Crosspost Detection'):
194 194
 			unique_channels.add(m.channel)
195 195
 			max_duplicate_count = max(max_duplicate_count, len(dupe_message_channels))
196 196
 		channel_count = len(unique_channels)
197
-		self.__trace(f"Found {len(hash_to_channels)} unique messages, {channel_count} unique channels, {max_duplicate_count} duplicated messages")
197
+		self.__trace(f"Found {len(hash_to_channels)} unique messages, {channel_count} unique channels, configured {max_duplicate_count} duplicated messages")
198 198
 		if channel_count < warn_count and max_duplicate_count < dupe_warn_count:
199
-			self.__trace(f"Bailing because channels {channel_count} < warn count {warn_count} and max dupes {max_duplicate_count} < dupe warn count {dupe_warn_count}")
199
+			self.__trace(f"Bailing because unique channels {channel_count} < configured warn count {warn_count} "
200
+				f"and max dupes {max_duplicate_count} < configured dupe warn count {dupe_warn_count}")
200 201
 			return
201 202
 
202 203
 		# This person is a problem
203 204
 
205
+		self.__trace(f"Spam detected by {message.author.name}")
204 206
 		spam_lookup: AgeBoundDict[str, SpamContext, datetime, timedelta] = Storage.get_state_value(message.guild, self.STATE_KEY_SPAM_CONTEXT)
205 207
 		if spam_lookup is None:
206 208
 			spam_lookup = AgeBoundDict(
@@ -356,7 +358,7 @@ class CrossPostCog(BaseCog, name='Crosspost Detection'):
356 358
 				 f'({duplicate_count} identical). Banned by {by_who}.')
357 359
 
358 360
 	def __trace(self, message):
359
-		# print(message)
361
+		# print(f"CrossPostCog: {message}")
360 362
 		pass
361 363
 
362 364
 	@Cog.listener()

Carregando…
Cancelar
Salvar