hungerlib 2.3.5.dev0__tar.gz → 2.4.dev0__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 (34) hide show
  1. {hungerlib-2.3.5.dev0/src/hungerlib.egg-info → hungerlib-2.4.dev0}/PKG-INFO +1 -1
  2. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/pyproject.toml +1 -1
  3. hungerlib-2.4.dev0/src/hungerlib/__init__.py +33 -0
  4. hungerlib-2.4.dev0/src/hungerlib/addons/__init__.py +19 -0
  5. hungerlib-2.4.dev0/src/hungerlib/addons/colormap.py +77 -0
  6. hungerlib-2.3.5.dev0/src/hungerlib/addons/generic.py → hungerlib-2.4.dev0/src/hungerlib/addons/countdown.py +1 -9
  7. hungerlib-2.4.dev0/src/hungerlib/addons/validation.py +9 -0
  8. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib/logger.py +3 -3
  9. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib/panel.py +6 -6
  10. hungerlib-2.4.dev0/src/hungerlib/servers/__init__.py +7 -0
  11. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib/servers/generic.py +1 -1
  12. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib/servers/minecraft.py +2 -2
  13. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0/src/hungerlib.egg-info}/PKG-INFO +1 -1
  14. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib.egg-info/SOURCES.txt +7 -6
  15. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib.egg-info/top_level.txt +0 -1
  16. hungerlib-2.3.5.dev0/src/examples/Config.py +0 -24
  17. hungerlib-2.3.5.dev0/src/hungerlib/__init__.py +0 -74
  18. hungerlib-2.3.5.dev0/src/hungerlib/addons/colormap.py +0 -44
  19. hungerlib-2.3.5.dev0/src/hungerlib/config.py +0 -30
  20. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/LICENSE +0 -0
  21. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/README.md +0 -0
  22. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/setup.cfg +0 -0
  23. /hungerlib-2.3.5.dev0/src/hungerlib/addons/minecraft.py → /hungerlib-2.4.dev0/src/hungerlib/addons/lag.py +0 -0
  24. {hungerlib-2.3.5.dev0/src/hungerlib → hungerlib-2.4.dev0/src/hungerlib/addons}/mchelpers.py +0 -0
  25. {hungerlib-2.3.5.dev0/src/hungerlib → hungerlib-2.4.dev0/src/hungerlib/addons}/scheduler.py +0 -0
  26. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib/api/__init__.py +0 -0
  27. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib/api/backups.py +0 -0
  28. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib/api/command.py +0 -0
  29. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib/api/databases.py +0 -0
  30. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib/api/filemanager.py +0 -0
  31. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib/api/schedule.py +0 -0
  32. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib/api/startup.py +0 -0
  33. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib.egg-info/dependency_links.txt +0 -0
  34. {hungerlib-2.3.5.dev0 → hungerlib-2.4.dev0}/src/hungerlib.egg-info/requires.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hungerlib
3
- Version: 2.3.5.dev0
3
+ Version: 2.4.dev0
4
4
  Summary: Powerful automation library for Pterodactyl.
5
5
  Author: iFamished
6
6
  License: MIT
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "hungerlib"
10
- version = "2.3.5-dev"
10
+ version = "2.4-dev"
11
11
  description = "Powerful automation library for Pterodactyl."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10"
@@ -0,0 +1,33 @@
1
+ from importlib.metadata import version as _pkg_version, PackageNotFoundError
2
+
3
+ # Package version
4
+ try:
5
+ __version__ = _pkg_version("hungerlib")
6
+ except PackageNotFoundError:
7
+ __version__ = "0.0.0"
8
+
9
+ # --- Core modules ---
10
+ from .panel import Panel
11
+ from .logger import HungerLogger
12
+
13
+ # --- API endpoints ---
14
+ from .api.schedule import ScheduleAPI
15
+ from .api.filemanager import FileManagerAPI
16
+ from .api.backups import BackupsAPI
17
+ from .api.databases import DatabasesAPI
18
+ from .api.startup import StartupAPI
19
+
20
+ __all__ = [
21
+ "__version__",
22
+
23
+ # core utilities
24
+ "Panel",
25
+ "HungerLogger",
26
+
27
+ # API endpoints
28
+ "ScheduleAPI",
29
+ "FileManagerAPI",
30
+ "BackupsAPI",
31
+ "DatabasesAPI",
32
+ "StartupAPI",
33
+ ]
@@ -0,0 +1,19 @@
1
+ from .colormap import ColorMap, MC_COLOR_MAP, ASCII_COLOR_MAP
2
+ from .countdown import runCountdownEvents, waitForOnline, waitForOffline
3
+ from .lag import checkLag
4
+ from .scheduler import snapSchedule, secsUntil, minsUntil
5
+ from .validation import validateAll
6
+
7
+ __all__ = [
8
+ 'ColorMap',
9
+ 'MC_COLOR_MAP',
10
+ 'ASCII_COLOR_MAP',
11
+ 'runCountdownEvents',
12
+ 'waitForOnline',
13
+ 'waitForOffline',
14
+ 'checkLag',
15
+ 'snapSchedule',
16
+ 'secsUntil',
17
+ 'minsUntil',
18
+ 'validateAll',
19
+ ]
@@ -0,0 +1,77 @@
1
+ # Environment-based color translation and mapping
2
+ from dataclasses import dataclass, field
3
+
4
+
5
+ @dataclass(frozen=True)
6
+ class ColorMap:
7
+ black: str
8
+ dark_blue: str
9
+ dark_green: str
10
+ dark_aqua: str
11
+ dark_red: str
12
+ dark_purple: str
13
+ gold: str
14
+ gray: str
15
+ dark_gray: str
16
+ blue: str
17
+ green: str
18
+ aqua: str
19
+ red: str
20
+ light_purple: str
21
+ yellow: str
22
+ white: str
23
+ reset: str
24
+ bold: str
25
+ italic: str
26
+
27
+ def as_dict(self):
28
+ """Convert dataclass to dict with <tags> as keys."""
29
+ return {
30
+ f"<{field}>": getattr(self, field)
31
+ for field in self.__dataclass_fields__
32
+ }
33
+
34
+
35
+ MC_COLOR_MAP = ColorMap(
36
+ black="§0",
37
+ dark_blue="§1",
38
+ dark_green="§2",
39
+ dark_aqua="§3",
40
+ dark_red="§4",
41
+ dark_purple="§5",
42
+ gold="§6",
43
+ gray="§7",
44
+ dark_gray="§8",
45
+ blue="§9",
46
+ green="§a",
47
+ aqua="§b",
48
+ red="§c",
49
+ light_purple="§d",
50
+ yellow="§e",
51
+ white="§f",
52
+ reset="§r",
53
+ bold="§l",
54
+ italic="§o"
55
+ )
56
+
57
+ ASCII_COLOR_MAP = ColorMap(
58
+ black="\033[30m",
59
+ dark_blue="\033[34m",
60
+ dark_green="\033[32m",
61
+ dark_aqua="\033[36m",
62
+ dark_red="\033[31m",
63
+ dark_purple="\033[35m",
64
+ gold="\033[33m",
65
+ gray="\033[37m",
66
+ dark_gray="\033[90m",
67
+ blue="\033[94m",
68
+ green="\033[92m",
69
+ aqua="\033[96m",
70
+ red="\033[91m",
71
+ light_purple="\033[95m",
72
+ yellow="\033[93m",
73
+ white="\033[97m",
74
+ reset="\033[0m",
75
+ bold="\033[1m",
76
+ italic="\033[3m"
77
+ )
@@ -59,15 +59,7 @@ def runCountdownEvents(
59
59
  time.sleep(tick_interval)
60
60
 
61
61
 
62
- def validateAll(panel, server):
63
- """
64
- Validate panel connectivity, API access, and server running state.
65
- """
66
- return (
67
- panel.ping() is True and
68
- panel.validateAPI() is True and
69
- server.getStatus() == "running"
70
- )
62
+
71
63
 
72
64
 
73
65
  # ============================================================
@@ -0,0 +1,9 @@
1
+ def validateAll(panel, server):
2
+ """
3
+ Validate panel connectivity, API access, and server running state.
4
+ """
5
+ return (
6
+ panel.ping() is True and
7
+ panel.validateAPI() is True and
8
+ server.getStatus() == "running"
9
+ )
@@ -8,7 +8,7 @@ time.tzset()
8
8
  import logging
9
9
  from pathlib import Path
10
10
  from datetime import datetime
11
- from hungerlib.addons.colormap import ASCI_COLOR_MAP, MC_COLOR_MAP
11
+ from hungerlib.addons import ASCII_COLOR_MAP, MC_COLOR_MAP
12
12
 
13
13
 
14
14
  class HungerLogger:
@@ -24,8 +24,8 @@ class HungerLogger:
24
24
 
25
25
  # color mapping
26
26
  file_color_map=None,
27
- origin_color_map=ASCI_COLOR_MAP,
28
- destination_color_map=ASCI_COLOR_MAP,
27
+ origin_color_map=ASCII_COLOR_MAP.as_dict(),
28
+ destination_color_map=ASCII_COLOR_MAP.as_dict(),
29
29
  mc_color_map=MC_COLOR_MAP,
30
30
 
31
31
  # prefixes
@@ -1,11 +1,11 @@
1
1
  import requests
2
2
 
3
- from hungerlib.api.command import CommandAPI
4
- from hungerlib.api.schedule import ScheduleAPI
5
- from hungerlib.api.filemanager import FileManagerAPI
6
- from hungerlib.api.backups import BackupsAPI
7
- from hungerlib.api.databases import DatabasesAPI
8
- from hungerlib.api.startup import StartupAPI
3
+ from hungerlib.api import CommandAPI
4
+ from hungerlib.api import ScheduleAPI
5
+ from hungerlib.api import FileManagerAPI
6
+ from hungerlib.api import BackupsAPI
7
+ from hungerlib.api import DatabasesAPI
8
+ from hungerlib.api import StartupAPI
9
9
 
10
10
 
11
11
  class Panel:
@@ -0,0 +1,7 @@
1
+ from .generic import GenericServer
2
+ from .minecraft import MinecraftServer
3
+
4
+ __all__ = [
5
+ "GenericServer",
6
+ "MinecraftServer",
7
+ ]
@@ -1,5 +1,5 @@
1
1
  # Universal server class
2
- from hungerlib.panel import Panel
2
+ from hungerlib import Panel
3
3
 
4
4
 
5
5
  class GenericServer:
@@ -2,8 +2,8 @@
2
2
  import time
3
3
  import re
4
4
  import mcrcon
5
- from hungerlib.panel import Panel
6
- from hungerlib.servers.generic import GenericServer
5
+ from hungerlib import Panel
6
+ from hungerlib.servers import GenericServer
7
7
 
8
8
 
9
9
  class MinecraftServer(GenericServer):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hungerlib
3
- Version: 2.3.5.dev0
3
+ Version: 2.4.dev0
4
4
  Summary: Powerful automation library for Pterodactyl.
5
5
  Author: iFamished
6
6
  License: MIT
@@ -1,21 +1,21 @@
1
1
  LICENSE
2
2
  README.md
3
3
  pyproject.toml
4
- src/examples/Config.py
5
4
  src/hungerlib/__init__.py
6
- src/hungerlib/config.py
7
5
  src/hungerlib/logger.py
8
- src/hungerlib/mchelpers.py
9
6
  src/hungerlib/panel.py
10
- src/hungerlib/scheduler.py
11
7
  src/hungerlib.egg-info/PKG-INFO
12
8
  src/hungerlib.egg-info/SOURCES.txt
13
9
  src/hungerlib.egg-info/dependency_links.txt
14
10
  src/hungerlib.egg-info/requires.txt
15
11
  src/hungerlib.egg-info/top_level.txt
12
+ src/hungerlib/addons/__init__.py
16
13
  src/hungerlib/addons/colormap.py
17
- src/hungerlib/addons/generic.py
18
- src/hungerlib/addons/minecraft.py
14
+ src/hungerlib/addons/countdown.py
15
+ src/hungerlib/addons/lag.py
16
+ src/hungerlib/addons/mchelpers.py
17
+ src/hungerlib/addons/scheduler.py
18
+ src/hungerlib/addons/validation.py
19
19
  src/hungerlib/api/__init__.py
20
20
  src/hungerlib/api/backups.py
21
21
  src/hungerlib/api/command.py
@@ -23,5 +23,6 @@ src/hungerlib/api/databases.py
23
23
  src/hungerlib/api/filemanager.py
24
24
  src/hungerlib/api/schedule.py
25
25
  src/hungerlib/api/startup.py
26
+ src/hungerlib/servers/__init__.py
26
27
  src/hungerlib/servers/generic.py
27
28
  src/hungerlib/servers/minecraft.py
@@ -1,24 +0,0 @@
1
- from hungerlib import Config, Panel
2
- from pathlib import Path
3
- from hungerlib.addons.colormap import ASCI_COLOR_MAP, MC_COLOR_MAP
4
-
5
- ExampleConfig = Config(
6
-
7
- # Color maps
8
- file_color_map=None,
9
- origin_color_map=ASCI_COLOR_MAP.copy(),
10
- destination_color_map=ASCI_COLOR_MAP.copy(),
11
- mc_color_map=MC_COLOR_MAP.copy(),
12
-
13
-
14
- # --- Prefixes ---
15
- info_prefix='<white>[INFO]: ',
16
- warn_prefix='<yellow>[WARN]: ',
17
- error_prefix='<red>[ERROR]: ',
18
- console_backspaces=8,
19
-
20
- # --- Logging ---
21
- log_path=Path("/home/container/logs"),
22
- log_destination_method='rcon',
23
-
24
- )
@@ -1,74 +0,0 @@
1
- from importlib.metadata import version as _pkg_version, PackageNotFoundError
2
- import importlib
3
-
4
- try:
5
- __version__ = _pkg_version("hungerlib")
6
- except PackageNotFoundError:
7
- __version__ = "0.0.0"
8
-
9
-
10
- # Public API map
11
- # name -> (module_path, attribute_name or None)
12
- _EXPORTS = {
13
- # core modules
14
- "panel": ("panel", None),
15
- "config": ("config", None),
16
- "logger": ("logger", None),
17
- "scheduler": ('scheduler', None),
18
-
19
- # core module utilities
20
- "Panel": ('panel', 'Panel'),
21
- 'Config': ('config', 'Config'),
22
- 'HungerLogger': ('logger', 'HungerLogger'),
23
- "snapSchedule": ("scheduler", "snapSchedule"),
24
- "secsUntil": ("scheduler", "secsUntil"),
25
- "minsUntil": ("scheduler", "minsUntil"),
26
-
27
- # servers
28
- "GenericServer": ("servers.generic", "GenericServer"),
29
- "MinecraftServer": ("servers.minecraft", "MinecraftServer"),
30
-
31
- # addons
32
- "genericAddons": ("addons.generic", None),
33
- "minecraftAddons": ("addons.minecraft", None),
34
- "colormap": ("addons.colormap", None),
35
-
36
- # addon utilities
37
- "runCountdownEvents": ("addons.generic", "runCountdownEvents"),
38
- "validateAll": ("addons.generic", "validateAll"),
39
- "waitForOnline": ("addons.generic", "waitForOnline"),
40
- "waitForOffline": ("addons.generic", "waitForOffline"),
41
- "checkLag": ("addons.minecraft", "checkLag"),
42
- "MC_COLOR_MAP": ("addons.colormap", "MC_COLOR_MAP"),
43
- "ASCI_COLOR_MAP": ("addons.colormap", "ASCI_COLOR_MAP"),
44
-
45
- # api endpoints
46
- "ScheduleAPI": ("api.schedule", "ScheduleAPI"),
47
- "FileManagerAPI": ("api.filemanager", "FileManagerAPI"),
48
- "BackupsAPI": ("api.backups", "BackupsAPI"),
49
- "DatabasesAPI": ("api.databases", "DatabasesAPI"),
50
- "StartupAPI": ("api.startup", "StartupAPI")
51
-
52
- }
53
-
54
-
55
- __all__ = list(_EXPORTS.keys()) + ["__version__"]
56
-
57
-
58
- # Lazy loader
59
- def __getattr__(name):
60
- if name not in _EXPORTS:
61
- raise AttributeError(f"module 'hungerlib' has no attribute '{name}'")
62
-
63
- module_name, attr = _EXPORTS[name]
64
- module = importlib.import_module(f"hungerlib.{module_name}")
65
-
66
- # Export module itself
67
- if attr is None:
68
- globals()[name] = module
69
- return module
70
-
71
- # Export attribute from module
72
- value = getattr(module, attr)
73
- globals()[name] = value
74
- return value
@@ -1,44 +0,0 @@
1
- # Environment-based color translation and mapping
2
-
3
- MC_COLOR_MAP = {
4
- "<black>": "§0",
5
- "<dark_blue>": "§1",
6
- "<dark_green>": "§2",
7
- "<dark_aqua>": "§3",
8
- "<dark_red>": "§4",
9
- "<dark_purple>": "§5",
10
- "<gold>": "§6",
11
- "<gray>": "§7",
12
- "<dark_gray>": "§8",
13
- "<blue>": "§9",
14
- "<green>": "§a",
15
- "<aqua>": "§b",
16
- "<red>": "§c",
17
- "<light_purple>": "§d",
18
- "<yellow>": "§e",
19
- "<white>": "§f",
20
- "<reset>": "§r",
21
- "<bold>": "§l",
22
- "<italic>": "§o"
23
- }
24
- ASCI_COLOR_MAP = {
25
- "<black>": "\033[30m",
26
- "<dark_blue>": "\033[34m",
27
- "<dark_green>": "\033[32m",
28
- "<dark_aqua>": "\033[36m",
29
- "<dark_red>": "\033[31m",
30
- "<dark_purple>": "\033[35m",
31
- "<gold>": "\033[33m",
32
- "<gray>": "\033[37m",
33
- "<dark_gray>": "\033[90m",
34
- "<blue>": "\033[94m",
35
- "<green>": "\033[92m",
36
- "<aqua>": "\033[96m",
37
- "<red>": "\033[91m",
38
- "<light_purple>": "\033[95m",
39
- "<yellow>": "\033[93m",
40
- "<white>": "\033[97m",
41
- "<reset>": "\033[0m",
42
- "<bold>": "\033[1m",
43
- "<italic>": "\033[3m"
44
- }
@@ -1,30 +0,0 @@
1
- # =====================================
2
- # CORE CONFIG SYSTEM
3
- # =====================================
4
- # The variables in this file can be used to control many things in Hungerlib's functions.
5
- # It helps keep track of constants and serves as an easy-to-use configuration system.
6
-
7
- from dataclasses import dataclass, field
8
- from pathlib import Path
9
- from hungerlib.addons.colormap import *
10
-
11
- @dataclass
12
- class Config:
13
-
14
- # Color maps
15
- file_color_map: dict | None = None
16
- origin_color_map: dict = field(default_factory=lambda: ASCI_COLOR_MAP.copy())
17
- destination_color_map: dict = field(default_factory=lambda: ASCI_COLOR_MAP.copy())
18
- mc_color_map: dict = field(default_factory=lambda: MC_COLOR_MAP.copy())
19
-
20
- # Prefixes
21
- info_prefix: str = '<white>[INFO]: '
22
- warn_prefix: str = '<yellow>[WARN]: '
23
- error_prefix: str = '<red>[ERROR]: '
24
- console_backspaces: int = 8
25
-
26
- # Logging
27
- log_path: Path = Path("/home/container/logs")
28
- log_destination_method: str = 'rcon'
29
-
30
- _internal_config = Config()
File without changes
File without changes
File without changes