@@ -80,7 +80,7 @@ async def unarchive(self, thread: discord.Thread) -> None:
80
80
81
81
async def update_track_requests (self , track : str ) -> dict [str , str ]:
82
82
"""Update mentor requests for one track, returning current requests."""
83
- logging .debug ("Updating mentor requests for track %s" , track )
83
+ logger .debug ("Updating mentor requests for track %s" , track )
84
84
thread = self .threads .get (track )
85
85
if not thread :
86
86
logger .warning ("Failed to find track %s in threads" , track )
@@ -92,7 +92,7 @@ async def update_track_requests(self, track: str) -> dict[str, str]:
92
92
async with asyncio .timeout (10 ):
93
93
got = await thread .guild .fetch_channel (thread .id )
94
94
except asyncio .TimeoutError :
95
- logging .warning ("fetch_channel timed out for track %s (%s)." , track , thread .id )
95
+ logger .warning ("fetch_channel timed out for track %s (%s)." , track , thread .id )
96
96
return {}
97
97
assert isinstance (got , discord .Thread ), f"Expected a Thread. { got = } "
98
98
thread = got
@@ -137,7 +137,7 @@ async def update_mentor_requests(self) -> None:
137
137
requests = await self .update_track_requests (track )
138
138
synced_tracks .add (track )
139
139
except asyncio .TimeoutError :
140
- logging .warning ("update_track_requests timed out for track %s." , track )
140
+ logger .warning ("update_track_requests timed out for track %s." , track )
141
141
else :
142
142
expired = [
143
143
(request_id , track , message )
@@ -153,6 +153,10 @@ async def update_mentor_requests(self) -> None:
153
153
await asyncio .sleep (1 )
154
154
self .synced_tracks = synced_tracks
155
155
156
+ if len (drop ) > 25 :
157
+ logger .info ("Found %d requests to drop. Truncating to 25." , len (drop ))
158
+ drop = drop [:25 ]
159
+
156
160
if drop :
157
161
drops = "; " .join (
158
162
f"{ track } -{ request_id } -{ message .id } "
@@ -186,9 +190,9 @@ async def task_update_mentor_requests(self):
186
190
async with asyncio .timeout (60 * 10 ):
187
191
await self .update_mentor_requests ()
188
192
except asyncio .TimeoutError :
189
- logging .warning ("update_mentor_requests timed out after 10 minutes." )
190
- except Exception as e : # pylint: disable=broad-exception-caught
191
- logging .exception ("Unhandled exception using update_mentor_requests. %r" , e )
193
+ logger .warning ("update_mentor_requests timed out after 10 minutes." )
194
+ except Exception : # pylint: disable=broad-exception-caught
195
+ logger .exception ("Unhandled exception using update_mentor_requests." )
192
196
193
197
@task_update_mentor_requests .before_loop
194
198
async def before_update_mentor_requests (self ):
@@ -216,15 +220,15 @@ async def requests_stats(self, ctx: commands.Context) -> None:
216
220
217
221
async def delete_old_messages (self ) -> None :
218
222
"""Delete old request messages which do not have a corresponding request cached."""
219
- logging .debug ("Start delete_old_messages()" )
223
+ logger .debug ("Start delete_old_messages()" )
220
224
request_url_re = re .compile (r"\bhttps://exercism.org/mentoring/requests/(\w+)\b" )
221
225
request_ids = set (self .requests .keys ())
222
226
for track_slug in self .synced_tracks :
223
227
thread = self .threads .get (track_slug )
224
228
if not thread :
225
- logging .warning ("delete_old_messages does not have a thread for %s." , track_slug )
229
+ logger .warning ("delete_old_messages does not have a thread for %s." , track_slug )
226
230
continue
227
- logging .debug ("Deleting stale messages for track %s" , track_slug )
231
+ logger .debug ("Deleting stale messages for track %s" , track_slug )
228
232
await self .unarchive (thread )
229
233
async with self .lock :
230
234
async for message in thread .history ():
@@ -246,7 +250,7 @@ async def delete_old_messages(self) -> None:
246
250
self .conn .execute (QUERY ["del_request" ], {"request_id" : request_id })
247
251
await asyncio .sleep (0.5 )
248
252
await asyncio .sleep (1 )
249
- logging .debug ("End delete_old_messages()" )
253
+ logger .debug ("End delete_old_messages()" )
250
254
251
255
@commands .is_owner ()
252
256
@commands .dm_only ()
0 commit comments