Browse Source

Adding util func to dump stacktraces

tags/2.0.0
Rocketsoup 2 months ago
parent
commit
65d7bb2cb4
3 changed files with 16 additions and 9 deletions
  1. 7
    6
      rocketbot/cogs/generalcog.py
  2. 3
    3
      rocketbot/cogs/logcog.py
  3. 6
    0
      rocketbot/utils.py

+ 7
- 6
rocketbot/cogs/generalcog.py View File

@@ -2,7 +2,6 @@
2 2
 Cog for handling most ungrouped commands and basic behaviors.
3 3
 """
4 4
 import re
5
-import traceback
6 5
 from datetime import datetime, timedelta, timezone
7 6
 from typing import Optional
8 7
 
@@ -12,7 +11,7 @@ from discord.ext import commands
12 11
 
13 12
 from config import CONFIG
14 13
 from rocketbot.cogs.basecog import BaseCog, BotMessage
15
-from rocketbot.utils import timedelta_from_str, describe_timedelta
14
+from rocketbot.utils import timedelta_from_str, describe_timedelta, dump_stacktrace
16 15
 from rocketbot.storage import ConfigKey, Storage
17 16
 
18 17
 class GeneralCog(BaseCog, name='General'):
@@ -53,13 +52,15 @@ class GeneralCog(BaseCog, name='General'):
53 52
 		"""Event handler"""
54 53
 		self.log(None, 'Bot done initializing')
55 54
 		self.is_ready = True
55
+		try:
56
+			synced_commands = await self.bot.tree.sync()
57
+			for command in synced_commands:
58
+				self.log(None, f'Synced command: {command.name}')
59
+		except Exception as e:
60
+			dump_stacktrace(e)
56 61
 		if self.is_first_ready:
57 62
 			print('----------------------------------------------------------')
58 63
 			self.is_first_ready = False
59
-		try:
60
-			await self.bot.tree.sync()
61
-		except Exception as e:
62
-			traceback.print_exception(type(e), e, e.__traceback__)
63 64
 
64 65
 	@commands.Cog.listener()
65 66
 	async def on_resumed(self):

+ 3
- 3
rocketbot/cogs/logcog.py View File

@@ -1,7 +1,6 @@
1 1
 """
2 2
 Cog for detecting large numbers of guild joins in a short period of time.
3 3
 """
4
-import traceback
5 4
 from collections.abc import Sequence
6 5
 from datetime import datetime, timezone, timedelta
7 6
 
@@ -15,6 +14,8 @@ import re
15 14
 
16 15
 from rocketbot.cogs.basecog import BaseCog, BotMessage, CogSetting
17 16
 from rocketbot.storage import Storage
17
+from rocketbot.utils import dump_stacktrace
18
+
18 19
 
19 20
 class BufferedMessageEditEvent:
20 21
 	def __init__(self, guild: Guild, channel: GuildChannel, before: Optional[Message], after: Message, data = None) -> None:
@@ -454,8 +455,7 @@ class LoggingCog(BaseCog, name='Logging'):
454 455
 			for guild in guilds:
455 456
 				await self.__flush_buffers_for_guild(guild)
456 457
 		except Exception as e:
457
-			print(e)
458
-			traceback.print_exception(type(e), e, e.__traceback__)
458
+			dump_stacktrace(e)
459 459
 
460 460
 	async def __flush_buffers_for_guild(self, guild: Guild) -> None:
461 461
 		buffers: dict[str, list] = Storage.get_state_value(guild, self.STATE_EVENT_BUFFER)

+ 6
- 0
rocketbot/utils.py View File

@@ -2,12 +2,18 @@
2 2
 General utility functions.
3 3
 """
4 4
 import re
5
+import sys
6
+import traceback
5 7
 from datetime import datetime, timedelta
6 8
 from typing import Any, Optional, Type, Union
7 9
 
8 10
 from discord import Guild
9 11
 from discord.ext.commands import Cog, Group
10 12
 
13
+def dump_stacktrace(e: Exception) -> None:
14
+	print(e, file=sys.stderr)
15
+	traceback.print_exception(type(e), e, e.__traceback__)
16
+
11 17
 def timedelta_from_str(s: str) -> timedelta:
12 18
 	"""
13 19
 	Parses a timespan. Format examples:

Loading…
Cancel
Save