|
|
@@ -25,6 +25,8 @@ class GeneralCog(BaseCog, name='General'):
|
|
25
|
25
|
self.is_ready = False
|
|
26
|
26
|
self.is_first_ready = True
|
|
27
|
27
|
self.is_first_connect = True
|
|
|
28
|
+ self.last_disconnect_time: Optional[datetime] = None
|
|
|
29
|
+ self.noteworthy_disconnect_duration = timedelta(seconds=5)
|
|
28
|
30
|
|
|
29
|
31
|
@commands.Cog.listener()
|
|
30
|
32
|
async def on_connect(self):
|
|
|
@@ -33,13 +35,17 @@ class GeneralCog(BaseCog, name='General'):
|
|
33
|
35
|
self.log(None, 'Connected')
|
|
34
|
36
|
self.is_first_connect = False
|
|
35
|
37
|
else:
|
|
36
|
|
- self.log(None, 'Reconnected')
|
|
|
38
|
+ disconnect_duration = datetime.now(
|
|
|
39
|
+ timezone.utc) - self.last_disconnect_time if self.last_disconnect_time else None
|
|
|
40
|
+ if disconnect_duration is not None and disconnect_duration > self.noteworthy_disconnect_duration:
|
|
|
41
|
+ self.log(None, f'Reconnected after {disconnect_duration.total_seconds()} seconds')
|
|
37
|
42
|
self.is_connected = True
|
|
38
|
43
|
|
|
39
|
44
|
@commands.Cog.listener()
|
|
40
|
45
|
async def on_disconnect(self):
|
|
41
|
46
|
"""Event handler"""
|
|
42
|
|
- self.log(None, 'Disconnected')
|
|
|
47
|
+ self.last_disconnect_time = datetime.now(timezone.utc)
|
|
|
48
|
+ # self.log(None, 'Disconnected')
|
|
43
|
49
|
|
|
44
|
50
|
@commands.Cog.listener()
|
|
45
|
51
|
async def on_ready(self):
|
|
|
@@ -53,7 +59,9 @@ class GeneralCog(BaseCog, name='General'):
|
|
53
|
59
|
@commands.Cog.listener()
|
|
54
|
60
|
async def on_resumed(self):
|
|
55
|
61
|
"""Event handler"""
|
|
56
|
|
- self.log(None, 'Session resumed')
|
|
|
62
|
+ disconnect_duration = datetime.now(timezone.utc) - self.last_disconnect_time if self.last_disconnect_time else None
|
|
|
63
|
+ if disconnect_duration is not None and disconnect_duration > self.noteworthy_disconnect_duration:
|
|
|
64
|
+ self.log(None, f'Session resumed after {disconnect_duration.total_seconds()} seconds')
|
|
57
|
65
|
|
|
58
|
66
|
@commands.command(
|
|
59
|
67
|
brief='Posts a test warning',
|