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.
Files changed (20) hide show
  1. {serverwatcher-5.6.1/src/serverwatcher.egg-info → serverwatcher-5.8.dev2}/PKG-INFO +1 -1
  2. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/pyproject.toml +1 -1
  3. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/validator.py +3 -2
  4. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/watcher.py +13 -18
  5. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2/src/serverwatcher.egg-info}/PKG-INFO +1 -1
  6. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/LICENSE +0 -0
  7. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/README.md +0 -0
  8. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/setup.cfg +0 -0
  9. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/__init__.py +0 -0
  10. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/configclasses/__init__.py +0 -0
  11. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/configclasses/config.py +0 -0
  12. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/configclasses/messages.py +0 -0
  13. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/configclasses/watcher.py +0 -0
  14. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/defaultconfigs/config.yaml +0 -0
  15. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/defaultconfigs/messages.yaml +0 -0
  16. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher/defaultconfigs/watcher.yaml +0 -0
  17. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher.egg-info/SOURCES.txt +0 -0
  18. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher.egg-info/dependency_links.txt +0 -0
  19. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/src/serverwatcher.egg-info/requires.txt +0 -0
  20. {serverwatcher-5.6.1 → serverwatcher-5.8.dev2}/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.6.1
3
+ Version: 5.8.dev2
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.6.1"
10
+ version = "5.8.dev2"
11
11
  description = "A HungerLib-powered Minecraft server automation engine."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.14"
@@ -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) >= 7:
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, HungerLogger
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.log = HungerLogger(
92
- name=self.config.logger_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
- text = self.fmt(template, **fmt)
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.server.sendBroadcast(self.fmt(self.messages.broadcast_restart_at, time=time_str))
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.server.sendBroadcast(msg)
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.server.sendBroadcast(msg)
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.log.warn(f"{self.messages.bullet} {r}")
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.log.warn(f"{self.messages.bullet} {r}")
217
+ self.router.warn(f"{self.messages.bullet} {r}")
223
218
 
224
- self.log.warn(f"{self.messages.pro_restart_number} {pro}")
225
- self.log.warn(f"{self.messages.anti_restart_number} {anti}")
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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: serverwatcher
3
- Version: 5.6.1
3
+ Version: 5.8.dev2
4
4
  Summary: A HungerLib-powered Minecraft server automation engine.
5
5
  Author: iFamished
6
6
  License: GPL-3.0
File without changes