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.
Files changed (22) hide show
  1. {serverwatcher-5.33a2/src/serverwatcher.egg-info → serverwatcher-5.33a4}/PKG-INFO +1 -1
  2. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/pyproject.toml +1 -1
  3. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/configclasses/config.py +2 -2
  4. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/defaultconfigs/config.yaml +2 -2
  5. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/watcher.py +13 -5
  6. {serverwatcher-5.33a2 → serverwatcher-5.33a4/src/serverwatcher.egg-info}/PKG-INFO +1 -1
  7. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher.egg-info/SOURCES.txt +0 -1
  8. serverwatcher-5.33a2/src/serverwatcher/discord_bot_webook.py +0 -13
  9. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/LICENSE +0 -0
  10. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/README.md +0 -0
  11. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/setup.cfg +0 -0
  12. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/__init__.py +0 -0
  13. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/__main__.py +0 -0
  14. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/configclasses/__init__.py +0 -0
  15. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/configclasses/messages.py +0 -0
  16. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/configclasses/watcher.py +0 -0
  17. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/defaultconfigs/messages.yaml +0 -0
  18. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/defaultconfigs/watcher.yaml +0 -0
  19. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher/validator.py +0 -0
  20. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher.egg-info/dependency_links.txt +0 -0
  21. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher.egg-info/requires.txt +0 -0
  22. {serverwatcher-5.33a2 → serverwatcher-5.33a4}/src/serverwatcher.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: serverwatcher
3
- Version: 5.33a2
3
+ Version: 5.33a4
4
4
  Summary: A HungerLib-powered Minecraft server automation engine.
5
5
  Author: iFamished
6
6
  License: GPL-3.0
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "serverwatcher"
10
- version = "5.33.alpha2"
10
+ version = "5.33-alpha.4"
11
11
  description = "A HungerLib-powered Minecraft server automation engine."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.14"
@@ -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:1913'
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:1913'
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 .discord_bot_webook import DiscordBotWebhook
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 = self.config.discord_url, token = self.config.discord_token)
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: serverwatcher
3
- Version: 5.33a2
3
+ Version: 5.33a4
4
4
  Summary: A HungerLib-powered Minecraft server automation engine.
5
5
  Author: iFamished
6
6
  License: GPL-3.0
@@ -3,7 +3,6 @@ README.md
3
3
  pyproject.toml
4
4
  src/serverwatcher/__init__.py
5
5
  src/serverwatcher/__main__.py
6
- src/serverwatcher/discord_bot_webook.py
7
6
  src/serverwatcher/validator.py
8
7
  src/serverwatcher/watcher.py
9
8
  src/serverwatcher.egg-info/PKG-INFO
@@ -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