serverwatcher 5.6.1__tar.gz → 5.8.dev2__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.6.1/src/serverwatcher.egg-info → serverwatcher-5.8.dev2}/PKG-INFO +1 -1
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/pyproject.toml +1 -1
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/validator.py +3 -2
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/watcher.py +13 -18
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2/src/serverwatcher.egg-info}/PKG-INFO +1 -1
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/LICENSE +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/README.md +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/setup.cfg +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/__init__.py +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/configclasses/__init__.py +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/configclasses/config.py +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/configclasses/messages.py +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/configclasses/watcher.py +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/defaultconfigs/config.yaml +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/defaultconfigs/messages.yaml +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/defaultconfigs/watcher.yaml +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher.egg-info/SOURCES.txt +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher.egg-info/dependency_links.txt +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher.egg-info/requires.txt +0 -0
- {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher.egg-info/top_level.txt +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import sys
|
|
2
2
|
from dataclasses import fields
|
|
3
3
|
|
|
4
|
-
from hungerlib.addons import loadConfig
|
|
4
|
+
from hungerlib.addons import loadConfig, clearTerminal
|
|
5
5
|
|
|
6
6
|
from serverwatcher.configclasses.config import GlobalConfig
|
|
7
7
|
from serverwatcher.configclasses.messages import MessagesConfig
|
|
8
8
|
from serverwatcher.configclasses.watcher import WatcherConfig
|
|
9
9
|
|
|
10
|
+
clearTerminal()
|
|
10
11
|
|
|
11
12
|
def deep_get_attr(obj, dotted):
|
|
12
13
|
parts = dotted.split(".")
|
|
@@ -123,7 +124,7 @@ def validate_all():
|
|
|
123
124
|
ensure_no_global_defaults(config, defaults)
|
|
124
125
|
ensure_no_watcher_defaults(watcher, defaults)
|
|
125
126
|
|
|
126
|
-
if len(defaults) >=
|
|
127
|
+
if len(defaults) >= 5:
|
|
127
128
|
print("❌ CONFIG VALIDATION FAILED:\nIt looks like you haven't configured this yet! Please change these defaults:")
|
|
128
129
|
for d in defaults:
|
|
129
130
|
print(" -", d)
|
|
@@ -3,7 +3,7 @@ import time
|
|
|
3
3
|
import re
|
|
4
4
|
from zoneinfo import ZoneInfo
|
|
5
5
|
|
|
6
|
-
from hungerlib import Panel,
|
|
6
|
+
from hungerlib import Panel, MessageRouter
|
|
7
7
|
from hungerlib.servers import MinecraftServer, GenericServer
|
|
8
8
|
from hungerlib.addons import (
|
|
9
9
|
clearTerminal,
|
|
@@ -26,11 +26,6 @@ validate_all()
|
|
|
26
26
|
_T_EXPR = re.compile(r"{([^{}]+)}")
|
|
27
27
|
|
|
28
28
|
def t_eval(template: str, /, **ctx):
|
|
29
|
-
"""
|
|
30
|
-
Evaluate a t-string-like template with Python expressions inside { }.
|
|
31
|
-
Example:
|
|
32
|
-
t_eval("CPU: {snap.cpu}%", snap=snap)
|
|
33
|
-
"""
|
|
34
29
|
def repl(match):
|
|
35
30
|
expr = match.group(1).strip()
|
|
36
31
|
try:
|
|
@@ -88,10 +83,11 @@ class ServerWatcher:
|
|
|
88
83
|
server_name=self.config.server_name
|
|
89
84
|
)
|
|
90
85
|
|
|
91
|
-
self.
|
|
92
|
-
name=
|
|
86
|
+
self.router = ServerRouter(
|
|
87
|
+
name=logger_name,
|
|
93
88
|
server=self.server,
|
|
94
89
|
log_path=self.config.log_path,
|
|
90
|
+
formatter=self.fmt,
|
|
95
91
|
console_backspaces=self.config.console_backspaces,
|
|
96
92
|
)
|
|
97
93
|
|
|
@@ -103,8 +99,7 @@ class ServerWatcher:
|
|
|
103
99
|
def say(self, template, level="info", **fmt):
|
|
104
100
|
if not template:
|
|
105
101
|
return
|
|
106
|
-
|
|
107
|
-
getattr(self.log, level)(text)
|
|
102
|
+
self.router.say(template, level=level, **fmt)
|
|
108
103
|
|
|
109
104
|
def shutdown(self):
|
|
110
105
|
self.say(self.messages.shutdown)
|
|
@@ -126,7 +121,7 @@ class ServerWatcher:
|
|
|
126
121
|
|
|
127
122
|
if alive:
|
|
128
123
|
self.say(self.messages.server_back_online)
|
|
129
|
-
self.say(self.messages.server_back_online_broadcast)
|
|
124
|
+
self.say(self.messages.server_back_online_broadcast, broadcast=True)
|
|
130
125
|
else:
|
|
131
126
|
self.say(self.messages.server_failed_restart, level="error")
|
|
132
127
|
|
|
@@ -137,12 +132,12 @@ class ServerWatcher:
|
|
|
137
132
|
local_time = scheduled.astimezone(self.tz)
|
|
138
133
|
time_str = local_time.strftime("%I:%M %p")
|
|
139
134
|
|
|
140
|
-
self.
|
|
135
|
+
self.router.broadcast(self.fmt(self.messages.broadcast_restart_at, time=time_str))
|
|
141
136
|
|
|
142
137
|
minute_callbacks = {
|
|
143
138
|
int(k.split("_")[1]): (
|
|
144
139
|
lambda msg=self.fmt(getattr(self.messages, k)):
|
|
145
|
-
self.
|
|
140
|
+
self.router.broadcast(msg)
|
|
146
141
|
)
|
|
147
142
|
for k in vars(self.messages)
|
|
148
143
|
if k.startswith("minute_")
|
|
@@ -151,7 +146,7 @@ class ServerWatcher:
|
|
|
151
146
|
second_callbacks = {
|
|
152
147
|
int(k.split("_")[1]): (
|
|
153
148
|
lambda msg=self.fmt(getattr(self.messages, k)):
|
|
154
|
-
self.
|
|
149
|
+
self.router.broadcast(msg)
|
|
155
150
|
)
|
|
156
151
|
for k in vars(self.messages)
|
|
157
152
|
if k.startswith("second_")
|
|
@@ -214,15 +209,15 @@ class ServerWatcher:
|
|
|
214
209
|
if restart_reasons:
|
|
215
210
|
self.say(self.messages.pro_restart_splash, level="warn")
|
|
216
211
|
for r in restart_reasons:
|
|
217
|
-
self.
|
|
212
|
+
self.router.warn(f"{self.messages.bullet} {r}")
|
|
218
213
|
|
|
219
214
|
if no_restart_reasons:
|
|
220
215
|
self.say(self.messages.anti_restart_splash, level="warn")
|
|
221
216
|
for r in no_restart_reasons:
|
|
222
|
-
self.
|
|
217
|
+
self.router.warn(f"{self.messages.bullet} {r}")
|
|
223
218
|
|
|
224
|
-
self.
|
|
225
|
-
self.
|
|
219
|
+
self.router.warn(f"{self.messages.pro_restart_number} {pro}")
|
|
220
|
+
self.router.warn(f"{self.messages.anti_restart_number} {anti}")
|
|
226
221
|
|
|
227
222
|
gap = abs(pro - anti)
|
|
228
223
|
|
|
File without changes
|
|
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.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/defaultconfigs/messages.yaml
RENAMED
|
File without changes
|
{serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/defaultconfigs/watcher.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|