serverwatcher 3.8.4__tar.gz → 3.9.1__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-3.8.4/src/serverwatcher.egg-info → serverwatcher-3.9.1}/PKG-INFO +1 -1
  2. {serverwatcher-3.8.4 → serverwatcher-3.9.1}/pyproject.toml +1 -1
  3. {serverwatcher-3.8.4 → serverwatcher-3.9.1}/src/serverwatcher/watcher.py +10 -22
  4. {serverwatcher-3.8.4 → serverwatcher-3.9.1/src/serverwatcher.egg-info}/PKG-INFO +1 -1
  5. serverwatcher-3.9.1/src/serverwatcher.egg-info/SOURCES.txt +14 -0
  6. serverwatcher-3.8.4/src/serverwatcher/defaultconfigs/global.yaml +0 -16
  7. serverwatcher-3.8.4/src/serverwatcher/defaultconfigs/messages.yaml +0 -51
  8. serverwatcher-3.8.4/src/serverwatcher/defaultconfigs/watcher.yaml +0 -39
  9. serverwatcher-3.8.4/src/serverwatcher/helpers/__init__.py +0 -5
  10. serverwatcher-3.8.4/src/serverwatcher/helpers/loadconfigs.py +0 -15
  11. serverwatcher-3.8.4/src/serverwatcher.egg-info/SOURCES.txt +0 -19
  12. {serverwatcher-3.8.4 → serverwatcher-3.9.1}/LICENSE +0 -0
  13. {serverwatcher-3.8.4 → serverwatcher-3.9.1}/README.md +0 -0
  14. {serverwatcher-3.8.4 → serverwatcher-3.9.1}/setup.cfg +0 -0
  15. {serverwatcher-3.8.4 → serverwatcher-3.9.1}/src/serverwatcher/__init__.py +0 -0
  16. {serverwatcher-3.8.4/src/serverwatcher/config → serverwatcher-3.9.1/src/serverwatcher/configmap/configclasses}/__init__.py +0 -0
  17. {serverwatcher-3.8.4/src/serverwatcher/config → serverwatcher-3.9.1/src/serverwatcher/configmap/configclasses}/global_config.py +0 -0
  18. {serverwatcher-3.8.4/src/serverwatcher/config → serverwatcher-3.9.1/src/serverwatcher/configmap/configclasses}/messages.py +0 -0
  19. {serverwatcher-3.8.4/src/serverwatcher/config → serverwatcher-3.9.1/src/serverwatcher/configmap/configclasses}/watcher.py +0 -0
  20. {serverwatcher-3.8.4 → serverwatcher-3.9.1}/src/serverwatcher.egg-info/dependency_links.txt +0 -0
  21. {serverwatcher-3.8.4 → serverwatcher-3.9.1}/src/serverwatcher.egg-info/requires.txt +0 -0
  22. {serverwatcher-3.8.4 → serverwatcher-3.9.1}/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: 3.8.4
3
+ Version: 3.9.1
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 = "3.8.4"
10
+ version = "3.9.1"
11
11
  description = "A HungerLib-powered Minecraft server automation engine."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10"
@@ -11,36 +11,24 @@ from hungerlib.addons import (
11
11
  waitForOnline,
12
12
  validateAll,
13
13
  runCountdownEvents,
14
- load_yaml,
15
- map_to_dataclass,
16
14
  )
17
-
18
- from serverwatcher.config import GlobalConfig, MessagesConfig, WatcherConfig
19
- from serverwatcher.helpers import load_or_default
15
+ from hungerlib.addons.configmap import load_or_default
20
16
 
21
17
  # Set directory
22
18
  BASE_DIR = os.getcwd()
23
- PACKAGE_DIR = os.path.dirname(__file__)
19
+ PACKAGE_DIR = os.path.dirname(__file__)
24
20
 
25
21
 
26
- # Main watcher
27
22
  class ServerWatcher:
28
23
  def __init__(self):
29
- self.global_cfg: GlobalConfig = load_or_default(
30
- "config/global.yaml",
31
- "defaultconfigs/global.yaml",
32
- GlobalConfig
33
- )
34
- self.messages: MessagesConfig = load_or_default(
35
- "config/messages.yaml",
36
- "defaultconfigs/messages.yaml",
37
- MessagesConfig
38
- )
39
- self.cfg: WatcherConfig = load_or_default(
40
- "config/watcher.yaml",
41
- "defaultconfigs/watcher.yaml",
42
- WatcherConfig
43
- )
24
+ # Load all configs in /config using configmap
25
+ cfgmap = load_or_default("config", skip_files=[])
26
+
27
+ self.global_cfg = cfgmap["global.yaml"]
28
+ self.messages = cfgmap["messages.yaml"]
29
+ self.cfg = cfgmap["watcher.yaml"]
30
+
31
+
44
32
  self.panel = Panel(
45
33
  name=self.global_cfg.panel_name,
46
34
  url=self.global_cfg.panel_url,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: serverwatcher
3
- Version: 3.8.4
3
+ Version: 3.9.1
4
4
  Summary: A HungerLib-powered Minecraft server automation engine.
5
5
  Author: iFamished
6
6
  License: GPL-3.0
@@ -0,0 +1,14 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ src/serverwatcher/__init__.py
5
+ src/serverwatcher/watcher.py
6
+ src/serverwatcher.egg-info/PKG-INFO
7
+ src/serverwatcher.egg-info/SOURCES.txt
8
+ src/serverwatcher.egg-info/dependency_links.txt
9
+ src/serverwatcher.egg-info/requires.txt
10
+ src/serverwatcher.egg-info/top_level.txt
11
+ src/serverwatcher/configmap/configclasses/__init__.py
12
+ src/serverwatcher/configmap/configclasses/global_config.py
13
+ src/serverwatcher/configmap/configclasses/messages.py
14
+ src/serverwatcher/configmap/configclasses/watcher.py
@@ -1,16 +0,0 @@
1
- panel:
2
- panel_name: My Panel
3
- panel_url: https://example.com
4
- panel_api_key: CHANGE_ME
5
-
6
- origin:
7
- origin_server_id: CHANGE_ME
8
-
9
- server:
10
- server_name: My SMP
11
- server_id: CHANGE_ME
12
- server_domain: mc.example.com
13
- server_port: 25565
14
- rcon_port: 25575
15
- rcon_password: password
16
- tps_command: ticks
@@ -1,51 +0,0 @@
1
- prefix: "<aqua>[Server Watcher]"
2
-
3
- broadcast_restart_at: "{prefix} The server will restart at {time} CDT."
4
-
5
- broadcast_minute:
6
- minute_120: "{prefix} Restart in 2 hours!"
7
- minute_60: "{prefix} Restart in 1 hour!"
8
- minute_45: "{prefix} Restart in 45 minutes!"
9
- minute_30: "{prefix} Restart in 30 minutes!"
10
- minute_15: "{prefix} Restart in 15 minutes!"
11
- minute_5: "{prefix} Restart in 5 minutes!"
12
- minute_1: "{prefix} Restart in 1 minute!"
13
-
14
- broadcast_second:
15
- second_10: "{prefix} Restart in 10 seconds!"
16
- second_9: "{prefix} Restart in 9 seconds!"
17
- second_8: "{prefix} Restart in 8 seconds!"
18
- second_7: "{prefix} Restart in 7 seconds!"
19
- second_6: "{prefix} Restart in 6 seconds!"
20
- second_5: "{prefix} Restart in 5 seconds!"
21
- second_4: "{prefix} Restart in 4 seconds!"
22
- second_3: "{prefix} Restart in 3 seconds!"
23
- second_2: "{prefix} Restart in 2 seconds!"
24
- second_1: "{prefix} Restart in 1 second!"
25
-
26
- logging:
27
- log_start: "ServerWatcher is running!"
28
- log_status_check: "Checking server status..."
29
- log_validation_fail: "Validation FAILED."
30
- log_validation_ok: "All validation checks succeeded."
31
- log_shutdown: "Shutting down ServerWatcher."
32
- log_immediate_restart: "Restarting immediately."
33
- log_no_restart: "The server does not need to restart."
34
- log_scheduled: "Restart needed, but anti-restart factors outweigh it."
35
- log_gap_low: "Gap {gap}. Scheduling restart in 2 hours."
36
- log_gap_high: "Gap {gap}. Scheduling restart in 1 hour."
37
-
38
- reasons:
39
- reason_restart_soon: "The server is set to restart soon"
40
- reason_ram: "RAM usage ({ram}) is higher than {threshold} GB"
41
- reason_cpu: "CPU usage ({cpu}) is higher than {threshold}%"
42
- reason_uptime: "Uptime {uptime} exceeds {threshold}h"
43
- reason_tps: "TPS {tps} is lower than {threshold}"
44
- reason_low_uptime: "Uptime {uptime} is shorter than 30m"
45
- reason_players: "There {verb} {count} {plural} online"
46
-
47
- restarts:
48
- restart_action_sent: "Restart action sent. Waiting..."
49
- server_back_online: "Server is back online!"
50
- server_back_online_broadcast: "{prefix} <green>Restart successful!"
51
- server_failed_restart: "Server failed to restart!"
@@ -1,39 +0,0 @@
1
- logging:
2
- logger_name_template: "Server Watcher"
3
- log_path: "/home/container/logs/"
4
- timezone: "America/Chicago"
5
-
6
- terminal_settings:
7
- console_backspaces: 8
8
- clear_terminal: True
9
-
10
- schedules:
11
- restart_soon_schedule_id: 0 # replace this with real schedule id
12
- origin_disable_schedule_id: 0 # replace this with real schedule id
13
-
14
- thresolds:
15
- ram_threshold: 6
16
- cpu_threshold: 150
17
- uptime_hours_threshold: 12
18
- tps_threshold: 19.5
19
-
20
- weights:
21
- weight_restart_soon: 3
22
- weight_ram: 1
23
- weight_cpu: 1
24
- weight_uptime: 1
25
- weight_tps: 1
26
- weight_low_uptime: 5
27
- weight_per_player: 1
28
-
29
- gaps:
30
- low_gap_minutes: 120
31
- high_gap_minutes: 60
32
-
33
- restart_intervals:
34
- restart_wait_seconds: 45
35
- restart_online_timeout: 120
36
- restart_online_interval: 2
37
-
38
- watcher_intervals:
39
- watch_interval: 60
@@ -1,5 +0,0 @@
1
- from .loadconfigs import load_or_default
2
-
3
- __all__ = [
4
- 'load_or_default',
5
- ]
@@ -1,15 +0,0 @@
1
- import os
2
-
3
- def load_or_default(path: str, default_path: str, schema):
4
-
5
- abs_path = os.path.join(BASE_DIR, path)
6
- abs_default = os.path.join(PACKAGE_DIR, default_path)
7
-
8
- if not os.path.exists(abs_path):
9
- os.makedirs(os.path.dirname(abs_path), exist_ok=True)
10
- with open(abs_default, "r") as src, open(abs_path, "w") as dst:
11
- dst.write(src.read())
12
-
13
- raw = load_yaml(abs_path)
14
- raw = flatten_nested(raw)
15
- return map_to_dataclass(raw, schema)
@@ -1,19 +0,0 @@
1
- LICENSE
2
- README.md
3
- pyproject.toml
4
- src/serverwatcher/__init__.py
5
- src/serverwatcher/watcher.py
6
- src/serverwatcher.egg-info/PKG-INFO
7
- src/serverwatcher.egg-info/SOURCES.txt
8
- src/serverwatcher.egg-info/dependency_links.txt
9
- src/serverwatcher.egg-info/requires.txt
10
- src/serverwatcher.egg-info/top_level.txt
11
- src/serverwatcher/config/__init__.py
12
- src/serverwatcher/config/global_config.py
13
- src/serverwatcher/config/messages.py
14
- src/serverwatcher/config/watcher.py
15
- src/serverwatcher/defaultconfigs/global.yaml
16
- src/serverwatcher/defaultconfigs/messages.yaml
17
- src/serverwatcher/defaultconfigs/watcher.yaml
18
- src/serverwatcher/helpers/__init__.py
19
- src/serverwatcher/helpers/loadconfigs.py
File without changes
File without changes
File without changes