Skip to content

Commit a72542b

Browse files
authored
cogs/mentor_requests: truncate drops to 25 requests (#98)
1 parent 223a2a6 commit a72542b

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

cogs/mentor_requests.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ async def unarchive(self, thread: discord.Thread) -> None:
8080

8181
async def update_track_requests(self, track: str) -> dict[str, str]:
8282
"""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)
8484
thread = self.threads.get(track)
8585
if not thread:
8686
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]:
9292
async with asyncio.timeout(10):
9393
got = await thread.guild.fetch_channel(thread.id)
9494
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)
9696
return {}
9797
assert isinstance(got, discord.Thread), f"Expected a Thread. {got=}"
9898
thread = got
@@ -137,7 +137,7 @@ async def update_mentor_requests(self) -> None:
137137
requests = await self.update_track_requests(track)
138138
synced_tracks.add(track)
139139
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)
141141
else:
142142
expired = [
143143
(request_id, track, message)
@@ -153,6 +153,10 @@ async def update_mentor_requests(self) -> None:
153153
await asyncio.sleep(1)
154154
self.synced_tracks = synced_tracks
155155

156+
if len(drop) > 25:
157+
logger.info("Found %d requests to drop. Truncating to 25.", len(drop))
158+
drop = drop[:25]
159+
156160
if drop:
157161
drops = "; ".join(
158162
f"{track}-{request_id}-{message.id}"
@@ -186,9 +190,9 @@ async def task_update_mentor_requests(self):
186190
async with asyncio.timeout(60 * 10):
187191
await self.update_mentor_requests()
188192
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.")
192196

193197
@task_update_mentor_requests.before_loop
194198
async def before_update_mentor_requests(self):
@@ -216,15 +220,15 @@ async def requests_stats(self, ctx: commands.Context) -> None:
216220

217221
async def delete_old_messages(self) -> None:
218222
"""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()")
220224
request_url_re = re.compile(r"\bhttps://exercism.org/mentoring/requests/(\w+)\b")
221225
request_ids = set(self.requests.keys())
222226
for track_slug in self.synced_tracks:
223227
thread = self.threads.get(track_slug)
224228
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)
226230
continue
227-
logging.debug("Deleting stale messages for track %s", track_slug)
231+
logger.debug("Deleting stale messages for track %s", track_slug)
228232
await self.unarchive(thread)
229233
async with self.lock:
230234
async for message in thread.history():
@@ -246,7 +250,7 @@ async def delete_old_messages(self) -> None:
246250
self.conn.execute(QUERY["del_request"], {"request_id": request_id})
247251
await asyncio.sleep(0.5)
248252
await asyncio.sleep(1)
249-
logging.debug("End delete_old_messages()")
253+
logger.debug("End delete_old_messages()")
250254

251255
@commands.is_owner()
252256
@commands.dm_only()

0 commit comments

Comments
 (0)