hungerlib 3.0.dev9__tar.gz → 3.0.dev11__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.
- {hungerlib-3.0.dev9/src/hungerlib.egg-info → hungerlib-3.0.dev11}/PKG-INFO +1 -1
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/pyproject.toml +1 -1
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/addons/__init__.py +0 -7
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/datamap.py +0 -14
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/messagerouter.py +5 -4
- hungerlib-3.0.dev11/src/hungerlib/objects/__init__.py +11 -0
- hungerlib-3.0.dev9/src/hungerlib/maps/ascii.py → hungerlib-3.0.dev11/src/hungerlib/objects/datamaps/colormaps.py +25 -3
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11/src/hungerlib.egg-info}/PKG-INFO +1 -1
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib.egg-info/SOURCES.txt +4 -6
- hungerlib-3.0.dev9/src/hungerlib/addons/colormap.py +0 -96
- hungerlib-3.0.dev9/src/hungerlib/maps/__init__.py +0 -6
- hungerlib-3.0.dev9/src/hungerlib/servers/__init__.py +0 -7
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/LICENSE +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/README.md +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/setup.cfg +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/__init__.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/addons/configloader.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/addons/mchelpers.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/addons/scheduler.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/addons/snapshot.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/addons/utils.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/api/__init__.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/api/backups.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/api/command.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/api/databases.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/api/filemanager.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/api/schedule.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/api/startup.py +0 -0
- {hungerlib-3.0.dev9/src/hungerlib → hungerlib-3.0.dev11/src/hungerlib/objects}/servers/generic.py +0 -0
- {hungerlib-3.0.dev9/src/hungerlib → hungerlib-3.0.dev11/src/hungerlib/objects}/servers/minecraft.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib/panel.py +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib.egg-info/dependency_links.txt +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib.egg-info/requires.txt +0 -0
- {hungerlib-3.0.dev9 → hungerlib-3.0.dev11}/src/hungerlib.egg-info/top_level.txt +0 -0
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
from .colormap import *
|
|
2
1
|
from .snapshot import Snapshot
|
|
3
2
|
from .scheduler import *
|
|
4
3
|
from .utils import *
|
|
5
4
|
from .configloader import *
|
|
6
5
|
|
|
7
6
|
__all__ = [
|
|
8
|
-
'ColorMap',
|
|
9
|
-
'MC_COLOR_MAP',
|
|
10
|
-
'ASCII_COLOR_MAP',
|
|
11
7
|
'runCountdownEvents',
|
|
12
8
|
'waitForOnline',
|
|
13
9
|
'waitForOffline',
|
|
@@ -23,7 +19,4 @@ __all__ = [
|
|
|
23
19
|
'clearTerminal',
|
|
24
20
|
'load_yaml',
|
|
25
21
|
'loadConfig',
|
|
26
|
-
'clrz',
|
|
27
|
-
'set_default_colormap',
|
|
28
|
-
'get_default_colormap',
|
|
29
22
|
]
|
|
@@ -11,7 +11,6 @@ def set_default_maps(*maps):
|
|
|
11
11
|
def get_default_maps():
|
|
12
12
|
return _default_maps
|
|
13
13
|
|
|
14
|
-
|
|
15
14
|
# syntax patterns
|
|
16
15
|
class Syntax:
|
|
17
16
|
braces = r"\{([^{}]+)\}"
|
|
@@ -19,24 +18,20 @@ class Syntax:
|
|
|
19
18
|
angles = r"<([^<>]+)>"
|
|
20
19
|
percents = r"%([^%]+)%"
|
|
21
20
|
|
|
22
|
-
|
|
23
21
|
# base datamap
|
|
24
22
|
@dataclass(frozen=True)
|
|
25
23
|
class DataMap:
|
|
26
24
|
__syntax__: str = Syntax.braces
|
|
27
|
-
|
|
28
25
|
def as_map(self):
|
|
29
26
|
return {
|
|
30
27
|
f.name: getattr(self, f.name)
|
|
31
28
|
for f in fields(self)
|
|
32
29
|
if f.init and f.name != "__syntax__"
|
|
33
30
|
}
|
|
34
|
-
|
|
35
31
|
@classmethod
|
|
36
32
|
def get_syntax(cls):
|
|
37
33
|
return getattr(cls, "__syntax__", Syntax.braces)
|
|
38
34
|
|
|
39
|
-
|
|
40
35
|
# decorator
|
|
41
36
|
def datamap(_cls=None, *, syntax=Syntax.braces):
|
|
42
37
|
def wrap(cls):
|
|
@@ -45,36 +40,27 @@ def datamap(_cls=None, *, syntax=Syntax.braces):
|
|
|
45
40
|
return dataclass(frozen=True)(cls)
|
|
46
41
|
return wrap if _cls is None else wrap(_cls)
|
|
47
42
|
|
|
48
|
-
|
|
49
43
|
# core templating
|
|
50
44
|
def mapit(text: str, *maps, **runtime):
|
|
51
45
|
maps = (*get_default_maps(), *maps)
|
|
52
|
-
|
|
53
46
|
for m in maps:
|
|
54
47
|
if isinstance(m, type) and is_dataclass(m):
|
|
55
48
|
m = m()
|
|
56
|
-
|
|
57
49
|
if is_dataclass(m):
|
|
58
50
|
pattern = m.get_syntax()
|
|
59
51
|
d = m.as_map()
|
|
60
|
-
|
|
61
52
|
elif hasattr(m, "as_dict"):
|
|
62
53
|
pattern = Syntax.angles
|
|
63
54
|
d = m.as_dict()
|
|
64
|
-
|
|
65
55
|
elif isinstance(m, dict):
|
|
66
56
|
pattern = runtime.get("syntax")
|
|
67
57
|
if not pattern:
|
|
68
58
|
continue
|
|
69
59
|
d = m
|
|
70
|
-
|
|
71
60
|
else:
|
|
72
61
|
continue
|
|
73
|
-
|
|
74
62
|
def repl(match):
|
|
75
63
|
k = match.group(1)
|
|
76
64
|
return str(d.get(k, match.group(0)))
|
|
77
|
-
|
|
78
65
|
text = re.sub(pattern, repl, text)
|
|
79
|
-
|
|
80
66
|
return text
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
from datetime import datetime
|
|
4
|
-
from hungerlib.
|
|
4
|
+
from hungerlib.objects import ASCII_COLOR_MAP, MC_COLOR_MAP
|
|
5
|
+
from hungerlib import DataMap, Syntax, mapit
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
class MessageRouter:
|
|
@@ -70,13 +71,13 @@ class MessageRouter:
|
|
|
70
71
|
|
|
71
72
|
# routing primatives
|
|
72
73
|
def origin(self, msg):
|
|
73
|
-
colored =
|
|
74
|
+
colored = mapit(msg, self._origin_map)
|
|
74
75
|
print(colored)
|
|
75
76
|
|
|
76
77
|
def destination(self, msg):
|
|
77
78
|
if not self.server or not hasattr(self.server, "_rcon_send"):
|
|
78
79
|
return
|
|
79
|
-
colored =
|
|
80
|
+
colored = mapit(msg, self._destination_map)
|
|
80
81
|
self.server._rcon_send(
|
|
81
82
|
f'logtellraw targetless "{self.console_backspaces}{colored}"'
|
|
82
83
|
)
|
|
@@ -94,7 +95,7 @@ class MessageRouter:
|
|
|
94
95
|
|
|
95
96
|
def broadcast(self, msg):
|
|
96
97
|
if hasattr(self.server, "sendBroadcast"):
|
|
97
|
-
colored =
|
|
98
|
+
colored = mapit(msg, self._broadcast_map)
|
|
98
99
|
self.server.sendBroadcast(colored)
|
|
99
100
|
|
|
100
101
|
# high level router
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from .servers.generic import GenericServer
|
|
2
|
+
from .servers.minecraft import MinecraftServer
|
|
3
|
+
from .datamaps.colormaps import ColorMap, ASCII_COLOR_MAP, MC_COLOR_MAP
|
|
4
|
+
|
|
5
|
+
__all__ = [
|
|
6
|
+
"GenericServer",
|
|
7
|
+
"MinecraftServer",
|
|
8
|
+
"ColorMap",
|
|
9
|
+
"ASCII_COLOR_MAP",
|
|
10
|
+
"MC_COLOR_MAP",
|
|
11
|
+
]
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from hungerlib import datamap, Syntax, mapit, set_default_maps
|
|
2
2
|
|
|
3
|
-
#
|
|
4
|
-
@datamap(syntax=Syntax.angles)
|
|
3
|
+
@datamap(syntax=Syntax.angles) # produces <>
|
|
5
4
|
class ColorMap:
|
|
6
5
|
black: str = "\033[30m"
|
|
7
6
|
dark_blue: str = "\033[34m"
|
|
@@ -26,5 +25,28 @@ class ColorMap:
|
|
|
26
25
|
def as_dict(self):
|
|
27
26
|
return {f"<{k}>": getattr(self, k) for k in self.__dataclass_fields__}
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
# ASCII color map
|
|
30
29
|
ASCII_COLOR_MAP = ColorMap()
|
|
30
|
+
|
|
31
|
+
# Minecraft color map
|
|
32
|
+
MC_COLOR_MAP = ColorMap(
|
|
33
|
+
black="§0",
|
|
34
|
+
dark_blue="§1",
|
|
35
|
+
dark_green="§2",
|
|
36
|
+
dark_aqua="§3",
|
|
37
|
+
dark_red="§4",
|
|
38
|
+
dark_purple="§5",
|
|
39
|
+
gold="§6",
|
|
40
|
+
gray="§7",
|
|
41
|
+
dark_gray="§8",
|
|
42
|
+
blue="§9",
|
|
43
|
+
green="§a",
|
|
44
|
+
aqua="§b",
|
|
45
|
+
red="§c",
|
|
46
|
+
light_purple="§d",
|
|
47
|
+
yellow="§e",
|
|
48
|
+
white="§f",
|
|
49
|
+
reset="§r",
|
|
50
|
+
bold="§l",
|
|
51
|
+
italic="§o"
|
|
52
|
+
)
|
|
@@ -11,7 +11,6 @@ src/hungerlib.egg-info/dependency_links.txt
|
|
|
11
11
|
src/hungerlib.egg-info/requires.txt
|
|
12
12
|
src/hungerlib.egg-info/top_level.txt
|
|
13
13
|
src/hungerlib/addons/__init__.py
|
|
14
|
-
src/hungerlib/addons/colormap.py
|
|
15
14
|
src/hungerlib/addons/configloader.py
|
|
16
15
|
src/hungerlib/addons/mchelpers.py
|
|
17
16
|
src/hungerlib/addons/scheduler.py
|
|
@@ -24,8 +23,7 @@ src/hungerlib/api/databases.py
|
|
|
24
23
|
src/hungerlib/api/filemanager.py
|
|
25
24
|
src/hungerlib/api/schedule.py
|
|
26
25
|
src/hungerlib/api/startup.py
|
|
27
|
-
src/hungerlib/
|
|
28
|
-
src/hungerlib/
|
|
29
|
-
src/hungerlib/servers/
|
|
30
|
-
src/hungerlib/servers/
|
|
31
|
-
src/hungerlib/servers/minecraft.py
|
|
26
|
+
src/hungerlib/objects/__init__.py
|
|
27
|
+
src/hungerlib/objects/datamaps/colormaps.py
|
|
28
|
+
src/hungerlib/objects/servers/generic.py
|
|
29
|
+
src/hungerlib/objects/servers/minecraft.py
|
|
@@ -1,96 +0,0 @@
|
|
|
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
|
-
)
|
|
78
|
-
|
|
79
|
-
_DEFAULT_COLORMAP = ASCII_COLOR_MAP
|
|
80
|
-
|
|
81
|
-
def set_default_colormap(cmap):
|
|
82
|
-
global _DEFAULT_COLORMAP
|
|
83
|
-
_DEFAULT_COLORMAP = cmap
|
|
84
|
-
|
|
85
|
-
def get_default_colormap():
|
|
86
|
-
return _DEFAULT_COLORMAP
|
|
87
|
-
|
|
88
|
-
def clrz(text: str, cmap=None):
|
|
89
|
-
if cmap is None:
|
|
90
|
-
cmap = get_default_colormap()
|
|
91
|
-
if hasattr(cmap, "as_dict"):
|
|
92
|
-
cmap = cmap.as_dict()
|
|
93
|
-
for tag, code in cmap.items():
|
|
94
|
-
text = text.replace(tag, code)
|
|
95
|
-
reset = cmap.get("<reset>", "")
|
|
96
|
-
return text + reset
|
|
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
|
{hungerlib-3.0.dev9/src/hungerlib → hungerlib-3.0.dev11/src/hungerlib/objects}/servers/generic.py
RENAMED
|
File without changes
|
{hungerlib-3.0.dev9/src/hungerlib → hungerlib-3.0.dev11/src/hungerlib/objects}/servers/minecraft.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|