serverwatcher 5.33a2__tar.gz → 5.33a4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {serverwatcher-5.33a2/src/serverwatcher.egg-info → serverwatcher-5.33a4}/PKG-INFO +1 -1
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/pyproject.toml +1 -1
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/configclasses/config.py +2 -2
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/defaultconfigs/config.yaml +2 -2
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/watcher.py +13 -5
- {serverwatcher-5.33a2 → serverwatcher-5.33a4/src/serverwatcher.egg-info}/PKG-INFO +1 -1
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher.egg-info/SOURCES.txt +0 -1
- serverwatcher-5.33a2/src/serverwatcher/discord_bot_webook.py +0 -13
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/LICENSE +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/README.md +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/setup.cfg +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/__init__.py +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/__main__.py +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/configclasses/__init__.py +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/configclasses/messages.py +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/configclasses/watcher.py +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/defaultconfigs/messages.yaml +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/defaultconfigs/watcher.yaml +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/validator.py +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher.egg-info/dependency_links.txt +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher.egg-info/requires.txt +0 -0
- {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher.egg-info/top_level.txt +0 -0
|
@@ -51,11 +51,11 @@ class fallbacks:
|
|
|
51
51
|
server_port = 25565
|
|
52
52
|
|
|
53
53
|
bridge_token = 'CHANGE_ME'
|
|
54
|
-
bridge_url = 'https://api.example.com
|
|
54
|
+
bridge_url = 'https://api.example.com'
|
|
55
55
|
|
|
56
56
|
discord_enabled = True
|
|
57
57
|
discord_token = 'CHANGE_ME'
|
|
58
|
-
discord_url = 'https://bot.example.com'
|
|
58
|
+
discord_url = 'https://bot.example.com/webhook'
|
|
59
59
|
|
|
60
60
|
enable_logging = True
|
|
61
61
|
logger_name = 'Server Watcher'
|
|
@@ -14,12 +14,12 @@ server:
|
|
|
14
14
|
|
|
15
15
|
hungerbridge:
|
|
16
16
|
token: 'CHANGE_ME'
|
|
17
|
-
url: 'https://api.example.com
|
|
17
|
+
url: 'https://api.example.com'
|
|
18
18
|
|
|
19
19
|
discord:
|
|
20
20
|
enabled: True
|
|
21
21
|
token: 'CHANGE_ME'
|
|
22
|
-
url: 'https://bot.example.com'
|
|
22
|
+
url: 'https://bot.example.com/webhook'
|
|
23
23
|
|
|
24
24
|
logger:
|
|
25
25
|
enabled: True
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import time
|
|
2
2
|
from zoneinfo import ZoneInfo
|
|
3
3
|
|
|
4
|
-
from
|
|
5
|
-
from hungerlib import servers, MessageRouter, loadConfig, utils
|
|
4
|
+
from hungerlib import servers, MessageRouter, loadConfig, DiscordBotWebhook, utils
|
|
6
5
|
from mapres import MapResolver, maps
|
|
7
6
|
|
|
8
7
|
from serverwatcher.configclasses.config import GlobalConfig
|
|
@@ -99,7 +98,11 @@ class ServerWatcher:
|
|
|
99
98
|
)
|
|
100
99
|
|
|
101
100
|
self.tz = ZoneInfo(self.config.timezone)
|
|
102
|
-
self.Webhook = DiscordBotWebhook(url
|
|
101
|
+
self.Webhook = DiscordBotWebhook(url=self.config.discord_url, token=self.config.discord_token)
|
|
102
|
+
|
|
103
|
+
def webhookSend(self, event: str, **ctx):
|
|
104
|
+
if self.config.discord_enabled:
|
|
105
|
+
self.Webhook.send(event=event, **ctx)
|
|
103
106
|
|
|
104
107
|
def clearTerminal(self):
|
|
105
108
|
if self.config.clear_terminal:
|
|
@@ -111,7 +114,10 @@ class ServerWatcher:
|
|
|
111
114
|
|
|
112
115
|
def restart_and_wait(self):
|
|
113
116
|
self.server.restart()
|
|
117
|
+
|
|
114
118
|
self.router.info(self.messages.restart_action_sent)
|
|
119
|
+
self.webhookSend(event='restart_action_sent', server=self.config.server_name)
|
|
120
|
+
|
|
115
121
|
time.sleep(self.watcherconfig.restart_wait_seconds)
|
|
116
122
|
|
|
117
123
|
self.router.warn(self.messages.status_check)
|
|
@@ -124,8 +130,10 @@ class ServerWatcher:
|
|
|
124
130
|
if alive:
|
|
125
131
|
self.router.info(self.messages.server_back_online)
|
|
126
132
|
self.router.destination(self.messages.server_back_online_log)
|
|
133
|
+
self.webhookSend(event='server_back_online', server=self.config.server_name)
|
|
127
134
|
else:
|
|
128
135
|
self.router.error(self.messages.server_failed_restart)
|
|
136
|
+
self.webhookSend(event='server_failed_restart', server=self.config.server_name)
|
|
129
137
|
|
|
130
138
|
def schedule_restart(self, minutes):
|
|
131
139
|
info = utils.snapSchedule(
|
|
@@ -138,6 +146,7 @@ class ServerWatcher:
|
|
|
138
146
|
time_str = local_time.strftime('%I:%M %p')
|
|
139
147
|
|
|
140
148
|
self.router.broadcast(self.messages.broadcast_restart_at, time=time_str)
|
|
149
|
+
self.webhookSend(event="restart_scheduled", server=self.config.server_name, time=time_str)
|
|
141
150
|
|
|
142
151
|
def plural(n):
|
|
143
152
|
return '' if n == 1 else 's'
|
|
@@ -189,6 +198,7 @@ class ServerWatcher:
|
|
|
189
198
|
time.sleep(2)
|
|
190
199
|
else:
|
|
191
200
|
self.router.error(self.messages.validation_fail)
|
|
201
|
+
self.webhookSend(event="validation_fail", server=self.config.server_name)
|
|
192
202
|
return
|
|
193
203
|
|
|
194
204
|
sample_duration_formatted = int(self.watcherconfig.sample_duration) if self.watcherconfig.sample_duration.is_integer() else self.watcherconfig.sample_duration
|
|
@@ -264,11 +274,9 @@ class ServerWatcher:
|
|
|
264
274
|
if gap <= self.watcherconfig.threshold_low_gap:
|
|
265
275
|
self.router.warn(self.messages.gap_low, gap=gap)
|
|
266
276
|
self.schedule_restart(self.watcherconfig.low_gap_minutes)
|
|
267
|
-
# send discord message
|
|
268
277
|
else:
|
|
269
278
|
self.router.warn(self.messages.gap_high, gap=gap)
|
|
270
279
|
self.schedule_restart(self.watcherconfig.high_gap_minutes)
|
|
271
|
-
# send discord message
|
|
272
280
|
|
|
273
281
|
self.restart_and_wait()
|
|
274
282
|
# send discord message
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import requests
|
|
2
|
-
|
|
3
|
-
class DiscordBotWebhook:
|
|
4
|
-
def __init__(self, url: str, token: str):
|
|
5
|
-
self.url = url
|
|
6
|
-
self.token = token
|
|
7
|
-
|
|
8
|
-
def send(self, content: str, **ctx):
|
|
9
|
-
requests.post(
|
|
10
|
-
self.url,
|
|
11
|
-
json={"content": content, **ctx},
|
|
12
|
-
timeout=5
|
|
13
|
-
).raise_for_status()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/defaultconfigs/messages.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|