serverwatcher 5.10__tar.gz → 5.12__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.10/src/serverwatcher.egg-info → serverwatcher-5.12}/PKG-INFO +1 -1
- {serverwatcher-5.10 → serverwatcher-5.12}/pyproject.toml +1 -1
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher/watcher.py +38 -52
- {serverwatcher-5.10 → serverwatcher-5.12/src/serverwatcher.egg-info}/PKG-INFO +1 -1
- {serverwatcher-5.10 → serverwatcher-5.12}/LICENSE +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/README.md +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/setup.cfg +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher/__init__.py +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher/__main__.py +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher/configclasses/__init__.py +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher/configclasses/config.py +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher/configclasses/messages.py +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher/configclasses/watcher.py +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher/defaultconfigs/config.yaml +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher/defaultconfigs/messages.yaml +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher/defaultconfigs/watcher.yaml +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher/validator.py +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher.egg-info/SOURCES.txt +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher.egg-info/dependency_links.txt +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher.egg-info/requires.txt +0 -0
- {serverwatcher-5.10 → serverwatcher-5.12}/src/serverwatcher.egg-info/top_level.txt +0 -0
|
@@ -64,41 +64,14 @@ class ServerWatcher:
|
|
|
64
64
|
|
|
65
65
|
self.router = MessageRouter(
|
|
66
66
|
name=logger_name,
|
|
67
|
-
|
|
67
|
+
Servers=[self.server],
|
|
68
68
|
log_path=self.config.log_path,
|
|
69
|
-
formatter=self._fmt,
|
|
70
69
|
)
|
|
71
70
|
|
|
72
71
|
self.tz = ZoneInfo(self.config.timezone)
|
|
73
72
|
|
|
74
|
-
def _fmt(self, template: str, **ctx):
|
|
75
|
-
return mapit(template, **ctx)
|
|
76
|
-
|
|
77
|
-
def say(self, template, level="info", only_maps=None, disable=None, enable=None, **ctx):
|
|
78
|
-
if not template:
|
|
79
|
-
return
|
|
80
|
-
|
|
81
|
-
msg = mapit(
|
|
82
|
-
template,
|
|
83
|
-
only_maps=only_maps,
|
|
84
|
-
disable=disable,
|
|
85
|
-
enable=enable,
|
|
86
|
-
)
|
|
87
|
-
|
|
88
|
-
self.router.say(
|
|
89
|
-
msg,
|
|
90
|
-
level=level,
|
|
91
|
-
log=self.config.enable_logging,
|
|
92
|
-
)
|
|
93
|
-
|
|
94
|
-
def say_mc(self, template, level="info", only_maps=None, disable=None, enable=None, **ctx):
|
|
95
|
-
disable = (disable or []) + [utils.ASCII_COLOR_MAP]
|
|
96
|
-
enable = (enable or []) + [utils.MC_COLOR_MAP]
|
|
97
|
-
msg = mapit(template, only_maps=only_maps, disable=disable, enable=enable, **ctx)
|
|
98
|
-
self.router.broadcast(msg)
|
|
99
|
-
|
|
100
73
|
def shutdown(self):
|
|
101
|
-
self.
|
|
74
|
+
self.router.info(self.messages.shutdown)
|
|
102
75
|
raise SystemExit
|
|
103
76
|
|
|
104
77
|
def restart_and_wait(self):
|
|
@@ -106,10 +79,10 @@ class ServerWatcher:
|
|
|
106
79
|
self.origin.disableSchedule(self.watcherconfig.restart_soon_id)
|
|
107
80
|
|
|
108
81
|
self.server.restart()
|
|
109
|
-
self.
|
|
82
|
+
self.router.info(self.messages.restart_action_sent)
|
|
110
83
|
time.sleep(self.watcherconfig.restart_wait_seconds)
|
|
111
84
|
|
|
112
|
-
self.
|
|
85
|
+
self.router.warn(self.messages.status_check)
|
|
113
86
|
alive = utils.waitForOnline(
|
|
114
87
|
self.server,
|
|
115
88
|
timeout=self.watcherconfig.restart_timeout,
|
|
@@ -117,10 +90,16 @@ class ServerWatcher:
|
|
|
117
90
|
)
|
|
118
91
|
|
|
119
92
|
if alive:
|
|
120
|
-
self.
|
|
121
|
-
self.
|
|
93
|
+
self.router.info(self.messages.server_back_online)
|
|
94
|
+
self.router.broadcast(
|
|
95
|
+
mapit(
|
|
96
|
+
self.messages.server_back_online_broadcast,
|
|
97
|
+
enable=[utils.MC_COLOR_MAP],
|
|
98
|
+
disable=[utils.ASCII_COLOR_MAP]
|
|
99
|
+
)
|
|
100
|
+
)
|
|
122
101
|
else:
|
|
123
|
-
self.
|
|
102
|
+
self.router.error(self.messages.server_failed_restart)
|
|
124
103
|
|
|
125
104
|
def schedule_restart(self, minutes):
|
|
126
105
|
info = utils.snapSchedule(minimumMinutes=minutes)
|
|
@@ -129,12 +108,19 @@ class ServerWatcher:
|
|
|
129
108
|
local_time = scheduled.astimezone(self.tz)
|
|
130
109
|
time_str = local_time.strftime("%I:%M %p")
|
|
131
110
|
|
|
132
|
-
self.
|
|
111
|
+
self.router.broadcast(
|
|
112
|
+
mapit(
|
|
113
|
+
self.messages.broadcast_restart_at,
|
|
114
|
+
time=time_str,
|
|
115
|
+
enable=[utils.MC_COLOR_MAP],
|
|
116
|
+
disable=[utils.ASCII_COLOR_MAP]
|
|
117
|
+
)
|
|
118
|
+
)
|
|
133
119
|
|
|
134
120
|
minute_callbacks = {
|
|
135
121
|
int(k.split("_")[1]): (
|
|
136
|
-
lambda msg=mapit(getattr(self.messages, k)):
|
|
137
|
-
self.
|
|
122
|
+
lambda msg=mapit(getattr(self.messages, k), enable=[utils.MC_COLOR_MAP], disable=[utils.ASCII_COLOR_MAP]):
|
|
123
|
+
self.router.broadcast(msg)
|
|
138
124
|
)
|
|
139
125
|
for k in vars(self.messages)
|
|
140
126
|
if k.startswith("minute_")
|
|
@@ -142,8 +128,8 @@ class ServerWatcher:
|
|
|
142
128
|
|
|
143
129
|
second_callbacks = {
|
|
144
130
|
int(k.split("_")[1]): (
|
|
145
|
-
lambda msg=mapit(getattr(self.messages, k)):
|
|
146
|
-
self.
|
|
131
|
+
lambda msg=mapit(getattr(self.messages, k), enable=[utils.MC_COLOR_MAP], disable=[utils.ASCII_COLOR_MAP]):
|
|
132
|
+
self.router.broadcast(msg)
|
|
147
133
|
)
|
|
148
134
|
for k in vars(self.messages)
|
|
149
135
|
if k.startswith("second_")
|
|
@@ -156,10 +142,10 @@ class ServerWatcher:
|
|
|
156
142
|
)
|
|
157
143
|
|
|
158
144
|
def evaluate(self):
|
|
159
|
-
self.
|
|
145
|
+
self.router.info("ServerWatcher is running!")
|
|
160
146
|
|
|
161
147
|
if not utils.validateAll(self.panel, self.server):
|
|
162
|
-
self.
|
|
148
|
+
self.router.error(self.messages.validation_fail)
|
|
163
149
|
self.shutdown()
|
|
164
150
|
|
|
165
151
|
self.server.refresh()
|
|
@@ -203,36 +189,36 @@ class ServerWatcher:
|
|
|
203
189
|
anti += snap.players * self.watcherconfig.weight_per_player
|
|
204
190
|
|
|
205
191
|
if restart_reasons:
|
|
206
|
-
self.
|
|
192
|
+
self.router.warn(self.messages.pro_restart_splash)
|
|
207
193
|
for r in restart_reasons:
|
|
208
|
-
self.
|
|
194
|
+
self.router.warn(f"{self.messages.bullet} {r}")
|
|
209
195
|
|
|
210
196
|
if no_restart_reasons:
|
|
211
|
-
self.
|
|
197
|
+
self.router.warn(self.messages.anti_restart_splash)
|
|
212
198
|
for r in no_restart_reasons:
|
|
213
|
-
self.
|
|
199
|
+
self.router.warn(f"{self.messages.bullet} {r}")
|
|
214
200
|
|
|
215
|
-
self.
|
|
216
|
-
self.
|
|
201
|
+
self.router.warn(f"{self.messages.pro_restart_number} {pro}")
|
|
202
|
+
self.router.warn(f"{self.messages.anti_restart_number} {anti}")
|
|
217
203
|
|
|
218
204
|
gap = abs(pro - anti)
|
|
219
205
|
|
|
220
206
|
if pro == 0:
|
|
221
|
-
self.
|
|
207
|
+
self.router.info(self.messages.no_restart)
|
|
222
208
|
return
|
|
223
209
|
|
|
224
210
|
if pro > anti and snap.players == 0:
|
|
225
|
-
self.
|
|
211
|
+
self.router.info(self.messages.immediate_restart)
|
|
226
212
|
self.restart_and_wait()
|
|
227
213
|
return
|
|
228
214
|
|
|
229
|
-
self.
|
|
215
|
+
self.router.info(self.messages.scheduled)
|
|
230
216
|
|
|
231
217
|
if gap <= 2:
|
|
232
|
-
self.
|
|
218
|
+
self.router.warn(self.messages.gap_low, gap=gap)
|
|
233
219
|
self.schedule_restart(self.watcherconfig.low_gap_minutes)
|
|
234
220
|
else:
|
|
235
|
-
self.
|
|
221
|
+
self.router.warn(self.messages.gap_high, gap=gap)
|
|
236
222
|
self.schedule_restart(self.watcherconfig.high_gap_minutes)
|
|
237
223
|
|
|
238
224
|
self.restart_and_wait()
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|