Pārlūkot izejas kodu

Adding util func to dump stacktraces

tags/2.0.0
Rocketsoup 2 mēnešus atpakaļ
vecāks
revīzija
65d7bb2cb4
3 mainītis faili ar 16 papildinājumiem un 9 dzēšanām
  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 Parādīt failu

2
 Cog for handling most ungrouped commands and basic behaviors.
2
 Cog for handling most ungrouped commands and basic behaviors.
3
 """
3
 """
4
 import re
4
 import re
5
-import traceback
6
 from datetime import datetime, timedelta, timezone
5
 from datetime import datetime, timedelta, timezone
7
 from typing import Optional
6
 from typing import Optional
8
 
7
 
12
 
11
 
13
 from config import CONFIG
12
 from config import CONFIG
14
 from rocketbot.cogs.basecog import BaseCog, BotMessage
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
 from rocketbot.storage import ConfigKey, Storage
15
 from rocketbot.storage import ConfigKey, Storage
17
 
16
 
18
 class GeneralCog(BaseCog, name='General'):
17
 class GeneralCog(BaseCog, name='General'):
53
 		"""Event handler"""
52
 		"""Event handler"""
54
 		self.log(None, 'Bot done initializing')
53
 		self.log(None, 'Bot done initializing')
55
 		self.is_ready = True
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
 		if self.is_first_ready:
61
 		if self.is_first_ready:
57
 			print('----------------------------------------------------------')
62
 			print('----------------------------------------------------------')
58
 			self.is_first_ready = False
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
 	@commands.Cog.listener()
65
 	@commands.Cog.listener()
65
 	async def on_resumed(self):
66
 	async def on_resumed(self):

+ 3
- 3
rocketbot/cogs/logcog.py Parādīt failu

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

+ 6
- 0
rocketbot/utils.py Parādīt failu

2
 General utility functions.
2
 General utility functions.
3
 """
3
 """
4
 import re
4
 import re
5
+import sys
6
+import traceback
5
 from datetime import datetime, timedelta
7
 from datetime import datetime, timedelta
6
 from typing import Any, Optional, Type, Union
8
 from typing import Any, Optional, Type, Union
7
 
9
 
8
 from discord import Guild
10
 from discord import Guild
9
 from discord.ext.commands import Cog, Group
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
 def timedelta_from_str(s: str) -> timedelta:
17
 def timedelta_from_str(s: str) -> timedelta:
12
 	"""
18
 	"""
13
 	Parses a timespan. Format examples:
19
 	Parses a timespan. Format examples:

Notiek ielāde…
Atcelt
Saglabāt