serverwatcher 3.8.3__tar.gz → 3.9__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.3/src/serverwatcher.egg-info → serverwatcher-3.9}/PKG-INFO +1 -1
  2. {serverwatcher-3.8.3 → serverwatcher-3.9}/pyproject.toml +1 -1
  3. {serverwatcher-3.8.3 → serverwatcher-3.9}/src/serverwatcher/__init__.py +0 -4
  4. {serverwatcher-3.8.3 → serverwatcher-3.9}/src/serverwatcher/watcher.py +9 -20
  5. {serverwatcher-3.8.3 → serverwatcher-3.9/src/serverwatcher.egg-info}/PKG-INFO +1 -1
  6. serverwatcher-3.9/src/serverwatcher.egg-info/SOURCES.txt +14 -0
  7. serverwatcher-3.8.3/src/serverwatcher/defaultconfigs/global.yaml +0 -16
  8. serverwatcher-3.8.3/src/serverwatcher/defaultconfigs/messages.yaml +0 -51
  9. serverwatcher-3.8.3/src/serverwatcher/defaultconfigs/watcher.yaml +0 -39
  10. serverwatcher-3.8.3/src/serverwatcher/helpers/__init__.py +0 -5
  11. serverwatcher-3.8.3/src/serverwatcher/helpers/loadconfigs.py +0 -15
  12. serverwatcher-3.8.3/src/serverwatcher.egg-info/SOURCES.txt +0 -19
  13. {serverwatcher-3.8.3 → serverwatcher-3.9}/LICENSE +0 -0
  14. {serverwatcher-3.8.3 → serverwatcher-3.9}/README.md +0 -0
  15. {serverwatcher-3.8.3 → serverwatcher-3.9}/setup.cfg +0 -0
  16. {serverwatcher-3.8.3/src/serverwatcher/config → serverwatcher-3.9/src/serverwatcher/configmap/configclasses}/__init__.py +0 -0
  17. {serverwatcher-3.8.3/src/serverwatcher/config → serverwatcher-3.9/src/serverwatcher/configmap/configclasses}/global_config.py +0 -0
  18. {serverwatcher-3.8.3/src/serverwatcher/config → serverwatcher-3.9/src/serverwatcher/configmap/configclasses}/messages.py +0 -0
  19. {serverwatcher-3.8.3/src/serverwatcher/config → serverwatcher-3.9/src/serverwatcher/configmap/configclasses}/watcher.py +0 -0
  20. {serverwatcher-3.8.3 → serverwatcher-3.9}/src/serverwatcher.egg-info/dependency_links.txt +0 -0
  21. {serverwatcher-3.8.3 → serverwatcher-3.9}/src/serverwatcher.egg-info/requires.txt +0 -0
  22. {serverwatcher-3.8.3 → serverwatcher-3.9}/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.3
3
+ Version: 3.9
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.3"
10
+ version = "3.9"
11
11
  description = "A HungerLib-powered Minecraft server automation engine."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10"
@@ -7,13 +7,9 @@ except PackageNotFoundError:
7
7
  __version__ = '0.0.0'
8
8
 
9
9
  from .watcher import ServerWatcher
10
- from .schema import validate_config_schema, validate_messages_schema, flatten_nested
11
10
 
12
11
 
13
12
  __all__ = [
14
13
  # core utilities
15
14
  'ServerWatcher',
16
- 'validate_config_schema',
17
- 'validate_messages_schema',
18
- 'flatten_nested',
19
15
  ]
@@ -11,36 +11,25 @@ from hungerlib.addons import (
11
11
  waitForOnline,
12
12
  validateAll,
13
13
  runCountdownEvents,
14
- load_yaml,
15
- map_to_dataclass,
16
14
  )
15
+ from hungerlib.addons.configmap import load_or_default
17
16
 
18
17
  from serverwatcher.config import GlobalConfig, MessagesConfig, WatcherConfig
19
- from serverwatcher.helpers import load_or_default
20
18
 
21
19
  # Set directory
22
20
  BASE_DIR = os.getcwd()
23
- PACKAGE_DIR = os.path.dirname(__file__)
21
+ PACKAGE_DIR = os.path.dirname(__file__)
24
22
 
25
23
 
26
- # Main watcher
27
24
  class ServerWatcher:
28
25
  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
- )
26
+ # Load all configs in /config using configmap
27
+ cfgmap = load_or_default("config", skip_files=[])
28
+
29
+ self.global_cfg: GlobalConfig = cfgmap["global.yaml"]
30
+ self.messages: MessagesConfig = cfgmap["messages.yaml"]
31
+ self.cfg: WatcherConfig = cfgmap["watcher.yaml"]
32
+
44
33
  self.panel = Panel(
45
34
  name=self.global_cfg.panel_name,
46
35
  url=self.global_cfg.panel_url,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: serverwatcher
3
- Version: 3.8.3
3
+ Version: 3.9
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